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

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

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

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

  2. В Simulink сконфигурируйте soc_hwsw_top.slx модель к как приложение SoC. На вкладке Apps, под Setup to Run on Hardware, clickSystem 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, управляющем этой задачей.

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

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. 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.

Смотрите также

Похожие темы