pcie调试总结(4)

2019-03-28 12:26

表10 Address 0x0040 interrupt status register

我们用到的是配置空间里面地址为0x0040寄存器中的第16bit,也就是说,本设计的Qsys系统最多只能支持16个中断。该地址寄存器是只读寄存器,也即cpu 通过配置空间的该寄存器获取当前中断的状态。

表11 interrupt enable register

本设计中,使用的是Qsys的中断方式,配置空间中的该地址寄存器的低16bit是中断使能寄存器,该寄存器与地址寄存器0x0040中Qsys系统下的中断是一一对应的。

配置空间里面的这两个地址寄存器是产生虚拟pcie中断的前提,在配置空间里面还有

个寄存器需要设置:

表12 Command Register (Offset 04h)

这个寄存器是控制pcie产生INTX中断的。

表12 Status Register (Offset 06h)

从这个寄存器的状态,可以获知当前有没有INTx类型的虚拟中断产生。

只有把以上有关中断相关的寄存器都设置对了,才能正确的将fpga fabric产生的中断通过pcie接口反馈到cpu端。

以上内容补充了CRA,地址转换,中断等相关内容,下面补充下如何创建自己的component.

启动Qsys,双击左上角的New Componet或者File->New Component,如下图所示:

图16 new component示意图

双击New Componet,弹出的页面如17,

图17 new component参数页面

Component type下各参数含义如下: -Name

Component的名字,可以以任何你喜欢的名字命名,英文字母在前,可以有下划线。 -Display Name

component对外显示的名称,最好与Name一样。 -Version

版本号,方便维护 -Group

图18 Group分类选项

Component的分类,可根据实际用途选择类别。 -Description

对当前Component的描述,比如功能啥的。 -Icon

Component图标,可空白。 -Document

当前Component的参考文档,可以空白。

Files下各参数含义如下:

图19 Files页面示意图

这个页面要求用户选择需要创建component的verilog/VHDL源文件。这个源文件可以使用该页面最上面的Templates选项来选择,如图20所示:

图20 Templates选项

这里面有好多现成的例子可用,只要选中对应列即可。 另外一种方法是自己写源文件,然后点击图21中左下角的+号,选择文件的位置即可。

图21 源文件选择页面 当选则了源文件之后,“Analyze Synthesis Files”这个选项就变成黑色的了,如图22所示:

图22 选择文件之后的页面 选择的文件是自己是写的源代码,代码结构如下:

源文件是带有中断的slave module,其中各信号说明如下: Address :地址总线,位宽根据需要来定 Read :读命令 Readdata :读数据 Write :写命令 Writedata :写数据 Waitrequest :反馈信号 Clk :时钟 Reset :复位信号 ins_irq0_irq :中断信号

以上信号中,时钟是必须的,其余的最好都留着,且这些信号都必须符合Avalon总线的时序要求。但对于各信号的定义,除了时钟信号,复位信号,中断信号是有固定还以外,其余各信号可以根据需要自己定义,随意使用,只要满足Avalon总线时序即可。

在选择好了文件以后,必须进行的一项工作是综合,即点击图22中的“Analyze Synthesis Files”按钮,让Qsys系统先分析下源文件,以确定各信号的含义以及属性。至于后面的


pcie调试总结(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:当鲜花绽放于阳光之下

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: