Система процессора в этом приложении SoC считывает данные из внешней памяти после записи от FPGA до той памяти. Поскольку записи FPGA и взаимодействие с внешней памятью являются асинхронными, процессор использует событийно-управляемую задачу читать из памяти. Программное обеспечение также управляет регистром на FPGA, который задает коэффициент умножения, который будет использоваться в алгоритме FPGA.
Откройте новую модель Simulink®. Сохраните модель как soc_hwsw_proc.slx
в новую подпапку, названную processor
, в папке проекта.
Откройте параметры конфигурации модели. Выберите вкладку Hardware Implementation и установите Hardware board на одну из поддерживаемых плат для SoC Blockset™, таких как Xilinx Zynq ZC706 evaluation kit
.
Модель процессора должна использовать ту же аппаратную плату и настройки параметра конфигурации решателя как модель верхнего уровня.
В модели, с помощью блока Function-Call Subsystem, блока Asynchronous Task Specification, блок Inport и блоки Выходного порта, создают следующую систему.
В диалоговой маске блока dataTask
проверяйте Signal Attributes> Output function call, чтобы представить порт вызова функции на внешней модели.
В диалоговой маске блока Asynchronous Task Specification, набор Task priority к 50
.
Приоритет задач блока Asynchronous Task Specification должен совпадать с приоритетом задачи в блоке Task Manager, управляющем этой задачей.
Подсистема Processor Algorithm Wrapper
считывает данные из внешней памяти только после каждой записи к внешней памяти FPGA.
Откройте блок Processor Algorithm Wrapper
.
Используя блок Stream Read, блок Constant, блок Data Type Conversion и блоки Subsystem, создают следующую модель.
Откройте диалоговую маску блока Stream Read. Установите Number of buffers на 6
.
Откройте диалоговую маску блока Data Type Conversion и установите Output data type на uint16
.
Подсистема Processor Algorithm
служит основой, чтобы разработать ваш собственный алгоритм обработки.
Откройте блок подсистемы Register Channel Write
.
Добавьте блок Register Write, чтобы создать следующую модель.
Откройте диалоговую маску блока Register Write. Установите Device name на /dev/mwsinewavegenerator_ip0
и Offset address к hex2dec('100')
.
В папке проекта откройте модель soc_hwsw_top.slx
.
Добавьте блок Subsystem в область Processor
и маркируйте блок Processor
.
В подсистеме Processor
, с помощью блока Task Manager и блока Model, создают следующую систему.
Откройте диалоговую маску блока Model и установите Model name на soc_hwsw_proc.slx
.
Откройте диалоговую маску блока Task Manager. Поставите задачу Name к dataReadTask
и установите Priority на 50
. Во вкладке Simulation, набор Mean, Min и Max к 8e-05
. Нажмите OK.