主要内容

触发通过FPGA软件任务中断

这个例子展示了如何建模算法分区之间的硬件和软件。硬件IP是在FPGA中实现织物,并触发一个软件任务实现的嵌入式处理器。设计、模拟和SoC的硬件上实现一个完整的设计。

金宝app支持硬件平台:

  • Xilinx®Zynq®ZC706评估工具

  • Xilinx Zynq UltraScale™+ MPSoC ZCU102评估工具

  • Xilinx Zynq UltraScale™+ RFSoC ZCU111评估工具

  • ZedBoard™zynq - 7000开发板

  • 阿尔特拉®气旋®V SoC开发工具包

  • 阿尔特拉Arria®10 SoC开发工具包

介绍

许多芯片系统(SoC)应用程序需要触发异步任务的硬件设备的处理器。这个功能可以实现低延迟时有用的控制回路,硬件和软件之间的跨度。在处理紧急的硬件请求也是有用的软件。等设计,硬件设备提出了一个中断请求数据的中断控制器表示准备采取行动任务处理器的软件。

设计任务

这个例子包括两个硬件FPGA IP核。这些IP核生成异步中断信号。中断触发两个独立的处理器上的任务,每个硬件IP核。处理器任务访问硬件设备的读写寄存器。

模型结构

顶部模型sw_hw_interrupt_top包括FPGA模型sw_hw_interrupt_fpga和处理器模型sw_hw_interrupt_proc模型引用。顶部模型还包括中断数据传输通道并注册通道块模型从处理器的FPGA。

FPGA模型实现了两个IP核心,根据递增生成中断32 bit-counter值。第一个IP核心产生一个中断时16或18位的计数器值从0到1的变化。第二个IP核心产生一个中断时14或16位计数器的值从0变为1。计数器的值时产生中断注册和使用注册通道块转移到处理器。处理器模型实现了两个软件的任务,一个用于每个IP核心,读取计数器值,由FPGA以前注册的。

模拟

模拟系统0.03秒和开放范围块顶部模型可视化的计数器值读取处理器。

下一个,模拟选项卡上,单击数据检查查看各种事件的时机触发中断。在顶视图中添加interrupt1和interruptTask1信号,并添加interrupt2和interruptTask2信号在底部视图中。模拟图显示,每次触发一个中断,执行相应的任务。在时间0.01802秒,interrupt2提出,需要100微秒过程中断通道块和触发相应的interruptTask2,将500微秒。

时间0.01966秒,interrupt1 & interrupt2提出与此同时,他们是通过处理器基于他们的相对优先级。自从interrupt1连接第一次中断通道块的输入端口,它比interrupt2有更高的优先级。interruptTask2等待执行而interruptTask1仍执行interrupt1由于更高的优先级。

实现和硬件上运行

这些产品都是下载188bet金宝搏需要这部分:

  • 高密度脂蛋白编码器™

  • 嵌入式编码器®

  • SoC Blockset 金宝appXilinx设备支持包,或者SoC Blockset为英特尔设备支持包

关于支持包的更多信息,请参阅金宝appSoC Blockset支金宝app持硬件

实现模型支持的SoC板上使用金宝appSoC建设者工具。默认情况下,模型将实现ZedBoard因为它是配置了董事会。打开SoC建设者点击“配置、构建和部署”按钮在将来发布和遵循这些步骤:

  1. 选择构建模型设置屏幕上。点击下一个

  2. 点击下一个审查任务地图屏幕上。

  3. 检查内存映射屏幕上,单击查看/编辑内存映射查看内存映射。点击下一个

  4. 指定的项目文件夹选择项目文件夹屏幕上。点击下一个

  5. 选择建立、加载外部模式选择构建操作屏幕上。点击下一个

  6. 验证模型屏幕上,单击验证检查模型实现的兼容性。点击下一个

  7. 构建模型屏幕上,单击构建开始构建的模型。外部壳打开当FPGA合成开始。点击下一个

  8. 点击测试连接连接硬件屏幕与SoC测试主机的连接板。点击下一个运行应用程序屏幕上。

FPGA合成可能需要超过30分钟才能完成。为了节省时间,你可能想要使用提供的预生成的比特流通过以下步骤:

  1. 关闭外部shell终止合成。

  2. pregenerated比特流复制到项目文件夹中运行拷贝文件下面的命令

  3. 点击加载并运行加载pregenerated比特流在SoC董事会和运行模式

拷贝文件(fullfile (matlabshared.sup金宝appportpkg.getSupportPackageRoot,“工具箱”,“soc”,“金宝appsupportpackages”,“xilinxsoc”,“xilinxsocexamples”,“比特流”,“soc_hwsw_interrupt_top-zedboard.bit”),”。/ soc_prj ');

加载比特流后,运行生成的软件模型soc_hwsw_interrupt_sw在外部模式。从模型工具栏,打开数据检查并添加interruptTask1在前视图和interruptTask2底部视图。注意到,每次触发一个中断执行相应的任务。

实现在其他董事会:实现模型支持董事会除了ZedBoard,首先配置模型来支持金宝app董事会,然后设置参数的例子如下。

  • 硬件选项卡上,单击硬件设置打开配置参数窗口。

  • 硬件实现选项卡上,选择你的董事会硬件板顶部和处理器模式。

  • 目标硬件资源>FPGA设计(顶级)选项卡使包括MATLAB作为基于主机的交互AXI主IP并设置IP核心的时钟频率(MHz)10 MHz。

接下来,单击配置、构建和部署在将来发布开放SoC建设者并按照上面的步骤如前所述ZedBoard。修改拷贝文件命令匹配相对应的比特流你的董事会。在阿尔特拉Arria®10 SoC开发工具包,阿尔特拉气旋®V SoC开发工具包使用下面拷贝文件命令对应你的董事会。在阿尔特拉Arria®10 SoC开发工具包,.periph副本”。rbf’和‘.core。rbf的文件。

拷贝文件(fullfile (matlabshared.sup金宝appportpkg.getSupportPackageRoot,“工具箱”,“soc”,“金宝appsupportpackages”,“intelsoc”,“intelsocexamples”,“比特流”,“soc_hwsw_interrupt_top-c5soc.rbf”),”。/ soc_prj ');

以下是可用的预生成的位流文件:

  • “soc_hwsw_interrupt_top-zc706.bit”

  • “soc_hwsw_interrupt_top-zedboard.bit”

  • “soc_hwsw_interrupt_top-zcu102.bit”

  • “soc_hwsw_interrupt_top-XilinxZynqUltraScale_RFSoCZCU111EvaluationKit.bit”

  • “soc_hwsw_interrupt_top-c5soc.rbf”

  • “soc_hwsw_interrupt_top-a10soc.periph.rbf”

  • “soc_hwsw_interrupt_top-a10soc.core.rbf”

总之,这个例子展示了中断处理器的FPGA触发动作。使用SoC Blockset你模仿的行为,经历了SoC设备上实现它所需的工作流。

另请参阅

|