- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PCIE调试总结
Altera的pcie硬核从接口上来划分,有Avalon-ST和Avalon-MM两种。Avalon-ST的接口,即Stream模式,这种模式下,用户可以操作的接口很多,但是需要对pcie协议以及接口时序有比较深入的理解,这种模式对于刚接触pcie的同学来说比较有难度;而Avalon-MM接口,即Memory Map模式,相对来说则比较通俗易懂,用户侧的接口与双口RAM类似,有读写使能,读写时钟,读写地址,读写数据等;C260D这张卡使用了Avalon-MM这种接口模式,可以忽略pcie协议解析的部分。另外,由于Avalon总线位宽的限制,器件不同,pcie IPCore的生成接口也不同。比如arria II GX只能工作在Gen1x4模式下,而arria V GX则可以工作在Gen2x8的模式下,而且在产生IPCore的时候,arria II GX需要一个固定时钟125MHz,而arria V则不需要。
首先从Qsys系统的使用开始。由于altera fpga的SGDMA IPCore只有在Qsys系统下才能使用,所以整个pcie接口的设计需要借助Qsys系统来完成。至于Qsys系统的使用方法,需要各位同学上网查资料了解,这里不做详细描述。当然,也可以自己写SGDMA控制核,这样就不必使用Qsys系统了。据不准确考证,Qsys系统应该从Quartus11.0开始才出现的,所以各位同学要首先检查下自己的Quartus版本。介绍Qsys系统,首先从新建一个工程开始。打开Quartus之后,在页面的上方工具栏位置,可以看到以下图标:
其中即是Qsys工具的快捷图标,用鼠标点击该图标,即可进行Qsys系统的创建。
图1 Qsys系统新建页面
该图就是打开Qsys系统的初始界面。该图左上角的Library这个选项中,有各种Bridge,Adapter,Clock and Reset等Qsys系统提供的组件,以供搭建Qsys系统使用。当然,也可以自己创建一个组件component,这个会在后续的介绍中做说明。C260D的Qsys系统用到的component有一下几种:
:SGDMA IPCore,用于视频数据DMA传输;
:用于构建Qsys系统的时钟网络
:用于时钟域转换
:PCIE IPCore
图2 Qsys系统中的部分组件
这些component的例化很简单,从clock source开始介绍。双击Clock Source对应component图标,即可进入参数设置界面,如下图所示:
图3 Clock Source参数设置页面
然后点击右下角的Finish图标,即可完成component的添加。完成Clock Source这个component??加后,Qsys系统的界面如下:
图4 Clock Source在Qsys系统中的显示页面
下面介绍下clock source各部分参数的名称:
-clk_0:component的例化名称,会在最终生成的 Qsys文件中显示该名称,右键鼠标可以修改名称:
图5 clock source属性页面
双击名称位置,可以修改component属性:
图6 clock source属性页面
Export栏是供导出用的,右键或者双击可以修改导出信号的名称。
clk_in和clk_in_reset则是导出后用户能够看到的信号名称,用于连接用户自己的时钟;而clk和clk_reset则是经过桥接后的信号,分别与导出的两个信号相等,供 Qsys内部个模块使用。
下面介绍下SGDMA IPCore的component例化。双击上面描述的SGDMA的图标,弹出的界面如下:
图7 SGDMA参数设置页面
左边的是信号描述,也是在Qsys系统中能够看到的信号,点击左上角的Show signals可以看到更多的信号,这里不再赘述。
-CSR,control and status registers,用于读取SGDMA的状态,以及控制SGDMA的启动,停止等操作,CSR能够操作的寄存器共有16个,每个寄存器位宽为32bit。
表1 CSR寄存器定义
其中base可以认为为0,当多个dma核存在时,csr的地址也要进行地址偏移,一次偏移0x40字节。下面是各个寄存器中各bit位的说明。
表2 Control Register Bit Map
表3 Status Register Bit Map
对于base+8这个寄存器中的值,则是指向了第一个描述符所在的地址。这个地址是Avalon的地址,如果需要pcie的物理地址,还需要进行地址转义。有关地址转义的相关描述会在后续的章节中提及。
-csr_irq
这个信号是DMA I
文档评论(0)