Управление программным обеспечением и задачами на процессоре

Процессорная система в этом приложении SoC считывает данные из внешней памяти после записи из FPGA в эту память. Поскольку FPGA записи и взаимодействие с внешней памятью являются асинхронными, процессор использует событийно-управляемую задачу, чтобы считать из памяти. Программное обеспечение также управляет регистром на FPGA, который задает коэффициент умножения, используемый в алгоритме FPGA.

Модель процессора

  1. Откройте новый Simulink® модель. Сохраните модель как soc_hwsw_proc.slx в новую подпапку с именем processor, в папке проекта. Добавьте soc_hwsw_proc.slx модель к проекту.

  2. В Simulink сконфигурируйте soc_hwsw_top.slx моделировать как приложение СоК. На вкладке Apps, под Setup to Run on Hardware, нажмите System on Chip (SoC).

  3. Во всплывающем System on Chip (SoC) окне выберите Hardware Board > Xilinx Zynq ZC706 evaluation kit. Нажмите Finish.

    Примечание

    Модель процессора должна использовать ту же аппаратную плату и настройки параметров конфигурации решателя, что и модель верхнего уровня.

  4. В модели, используя Function-Call Subsystem блок, Asynchronous Task Specification (Simulink Coder) блок, Inport блок и Outport блоки, создайте следующую систему.

  5. В dataTask блокируйте маску диалогового окна, проверяйте Signal Attributes > Output function call, чтобы показать порт вызова функции на внешней модели.

  6. В маске диалогового окна Asynchronous Task Specification блока задайте Task priority 50.

    Примечание

    Приоритет задачи блока Asynchronous Task Specification должен совпадать с приоритетом задачи в блоке Task Manager, управляющем этой задачей.

Обработка задач

The Processor Algorithm Wrapper Подсистема считывает данные из внешней памяти только после каждой записи во внешнюю память FPGA.

  1. Откройте Processor Algorithm Wrapper блок.

  2. Используя блок Stream Read, Constant блок, Data Type Conversion блок и Subsystem блоки, создайте следующую модель.

  3. Откройте маску диалогового окна с Stream Read блоком. Установите Number of buffers значение 6.

  4. Откройте маску диалогового окна блока Data Type Conversion и установите Output data type равным uint16.

  5. The Processor Algorithm подсистема служит основе для разработки собственного алгоритма обработки.

  6. Откройте Register Channel Write блок подсистемы.

  7. Добавьте блок Register Write, чтобы создать следующую модель.

  8. Откройте маску диалогового окна с Register Write блоком. Установите Device name значение /dev/mwsinewavegenerator_ip0 и Offset address к hex2dec('100').

Верхняя часть

  1. В папке проекта откройте модель soc_hwsw_top.slx.

  2. Добавьте блок Subsystem в Processor область и пометьте блок Processor.

  3. В Processor подсистема, используя блок Task Manager и блок Model, создает следующую систему.

  4. Откройте маску диалогового окна блока Model и установите Model name равным soc_hwsw_proc.slx.

  5. Откройте маску диалогового окна с Task Manager блоком. Установите Name задачи следующим образом dataReadTask и установите Priority равным 50. На вкладке Simulation установите Mean, Min и Max равными 8e-05. Нажмите OK.

См. также

Похожие темы