Qsys

时间:2015-10-07 11:47:37

标签: fpga intel-fpga nios quartus qsys

使用Qsys(Quartus II x64 15.0.1 build 150)我用Nios2 / e和几个标准外围组件制作了一个系统。我还添加了自定义组件,包含1个MM-Slave和2个中断发送器。对于它们中的每一个,我在创建_hw.tcl文件期间在Component编辑器中将此slave设置为“Associated addressable interface”。

Qsys报告没有错误或警告,但后来我尝试使用New |在Eclipse中制作BSP项目Nios 2 BSP项目向导。我选择“SOPC信息文件名”,但“CPU”ComboBox保持为空并出现错误:“找不到Nios II CPU”。

然后我从主菜单启动BSP编辑器:Nios 2 | BSP编辑器并按文件|新Nios 2 BSP。我再次提供SOPC文件,这个工具找到CPU,但也报告错误:“最多只能有一个IRQ与模块”my_component“的以下从属相关联:mm_slave。”

然后我返回Qsys并删除其中一个中断发送器,这次一切正常,但我需要生成多个中断。

那么,如果您将Nios2 / e连接到带有1个MM从站的自定义外设和几个中断发送器,该怎么办?

我有一些想法,但不喜欢它们:

  1. 为每个irq添加MM-Slave(看起来浪费资源)。

  2. 不要在组件编辑器中指定“关联的可寻址接口”(顺便说一下,但是我不知道它是否会一直正常工作)。这个选项真的有用吗? 我不精确地说它会起作用,对不起。实际上可以生成qsys和BSP但是在BSP的system.h中.IRQ号将定义为-1,因此它不起作用。

  3. 将所有中断合并为一条线(它们都将共享相同的优先级)。

  4. 将中断发送器配置为宽度大于1的irq信号(组件编辑器允许执行此操作但报告警告:“interrupt_sender:irq类型的信号irq_many [4]必须具有宽度[1]”。案例2我不知道Altera的发生器/编译器会发生什么。 组件编辑器阶段完成后,Qsys不接受这样的系统。

  5. 请帮忙。

1 个答案:

答案 0 :(得分:1)

最后,我发现了以下内容:

一个。如果在一个自定义Qsys模块中需要许多IRQ发送器,则每个需要一个MM-Slave。从GUI组织看来,你似乎正在为IRQ分配MM-Slave,但是(据我所知)它直接相反:IRQ与MM-Slave绑定,它可能有一个最大的IRQ。我没有尝试实际运行它,但BSP文件看起来正确,一切都至少编译。 我希望,有(或将来)更好的方法来实现这一目标。

B中。如果您可以在所有中断之间共享相同的优先级,则可以通过仅使用1个中断发送器来避免此问题,因此只能使用1个MM从站。它适用于开发板。