Процессорная система в этом приложении SoC считывает данные из внешней памяти после записи из FPGA в эту память. Поскольку FPGA записи и взаимодействие с внешней памятью являются асинхронными, процессор использует событийно-управляемую задачу, чтобы считать из памяти. Программное обеспечение также управляет регистром на FPGA, который задает коэффициент умножения, используемый в алгоритме FPGA.
Откройте новый Simulink® модель. Сохраните модель как soc_hwsw_proc.slx
в новую подпапку с именем processor
, в папке проекта. Добавьте soc_hwsw_proc.slx
модель к проекту.
В Simulink сконфигурируйте soc_hwsw_top.slx
моделировать как приложение СоК. На вкладке Apps, под Setup to Run on Hardware, нажмите System on Chip (SoC).
Во всплывающем System on Chip (SoC) окне выберите Hardware Board > Xilinx Zynq ZC706 evaluation kit. Нажмите Finish.
Примечание
Модель процессора должна использовать ту же аппаратную плату и настройки параметров конфигурации решателя, что и модель верхнего уровня.
В модели, используя Function-Call Subsystem блок, Asynchronous Task Specification (Simulink Coder) блок, Inport блок и Outport блоки, создайте следующую систему.
В dataTask
блокируйте маску диалогового окна, проверяйте Signal Attributes > Output function call, чтобы показать порт вызова функции на внешней модели.
В маске диалогового окна Asynchronous Task Specification блока задайте Task priority 50
.
Примечание
Приоритет задачи блока Asynchronous Task Specification должен совпадать с приоритетом задачи в блоке Task Manager, управляющем этой задачей.
The 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
.
The 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.