pcie调试总结 下载本文

内容发布更新时间 : 2024/11/15 12:49:54星期一 下面是文章的全部内容请认真阅读。

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的图标,弹出的界面如下: