目录
一、coreConsultant生成PCIe IP核操作步骤 2
二、基于Xilinx GTX的PCIe仿真操作说明 4
三、基于Xilinx GTX的PCIe综合操作说明 5
四、上板调试步骤 5
4.1 chipsocpe观察PIPE接口数据 6
4.2 PCI Tree软件测试 6
4.3 Synopys软件测试 8
一、coreConsultant生成PCIe IP核操作步骤
在coreConsutant中,基于版本中附带的参数文件修改了配置参数中的其中几项:
1. Basic Features Config(PCIe) ->Phy Type ->Phy Selection:Custom PHY(external)
2. Basic Features Config(PCIe) ->Phy/Core Configuration and Compatability Check -> Core Gen2 Mode : Dynamic Frequency
3. Basic Features Config(PCIe) ->Phy/Core Configuration and Compatability Check -> Phy Gen2 Mode : Dynamic Frequency
4. Basic Features Config(PCIe) ->Phy/Core Configuration and Compatability Check -> Core Base Freq:62.5Mhz
5. Basic Features Config(PCIe) ->Phy/Core Configuration and Compatability Check -> Phy Base Freq:125Mhz
6. Basic Features Config(PCIe) ->Phy/Core Configuration and Compatability Check -> Maximum Link Width:1/2
7. Basic Features Config(PCIe) ->Technology ->FPGA -> √
8.Advanced PHY config -> PHY Timing -> PHY Timing -> Number of Fast Training(NFTS) Sequences : 255
9. Advanced PHY config -> PHY Timing -> PHY Timing ->NFTS when using common clock : 255
10. Advanced PHY config -> PHY Timing -> PHY Timing ->NFTS Sequences at 5Gb/s : 255
11. Advanced PHY config -> PHY Timing -> PHY Timing ->PHY Tx Delay:16
12. Advanced PHY config -> PHY Timing -> PHY Timing ->PHY Rx Delay:52
13. Device-Wide PCIe Features and Capabilities Config->PCIe Capability->PCIe Capability->L0S Exit Latency->More than 4us
14. Device-Wide PCIe Features and Capabilities Config->PCIe Capability->PCIe Capability->L0S Exit Latency(Common Clock)->More than 4us
15. Device-Wide PCIe Features and Capabilities Config->PCIe Capability->PCIe Capability->L1 Exit Latency->More than 64us
16. Device-Wide PCIe Features and Capabilities Config->PCIe Capability->PCIe Capability->L1 Exit Latency(Common Clock)->More than 64us
二、基于Xilinx GTX的PCIe仿真操作说明
进行仿真的文件夹中包含仿真使用的vip文件和vtb文件,使用vtb文件夹下的makefile文件进行仿真,进入vtb文件夹后使用make simep/simepdma/simrcbasic运行仿真,vtb/tb文件夹下chip_iip.v文件用于PCIe仿真,chip_iip_fpga.v用于PCIe综合。vtb/tc文件夹下是仿真使用的三个case:epbasic,epdma,rcbasic。仿真其他case需要自己调用task编写其他模式,目前tc中只实现上述三种模式的仿真。
仿真中用到的仿真模型描述如下:
1.sim_top作为最顶层模块,调用chip_iip.v和chip_vip.v两个模块。chip_iip.v为主核DWC_pcie_dm.v的顶层模型,相当于ASIC模型中的hr2_pcie_ctl_top.v;后者为验证模型,两个模块间由串行收发差分对相连。
2.PCIe PHY使用Xilinx公司的Virtex 7 GTX模块,该模块由pcie_gt_top.vp加密文件定义。这个FPGA PHY与ASIC PHY的主要差别在于集成位置不同。ASIC PHY采用Synopsys PHY集成在主核DWC_pcie_dm的内部,与控制逻辑cx_pl模块直接相连;FPGA PHY集成在主核DWC_pcie_dm外侧,两者由为PIPE标准接口相连。FPGA PHY的输入时钟为100MHz参考时钟,并向PIPE接口和PCIe的控制逻辑提供125MHz的系统时钟。
3.主核DWC_pcie_dm的应用层连接AMBA VIP模型,作为应用层的测试激励。
4.chip_iip.v下的clk_rst.v模块作为时钟和复位管理模块向DWC_pcie_dm.v、ram、PHY等模块提供具有相互依赖关系的时钟和复位。
三、基于Xilinx GTX的PCIe综合操作说明
发布的最终版工程文件夹中包含综合所用的全部文件,需要替换仿真下的chip_iip.v文件,在coreConsultant生成代码的基础上删除DW_minmax.v,加入RAM,修改chip_iip.v文件生成综合版chip_iip_fpga.v。其中chip_iip.v修改部分有:时钟和复位,pcie_dm顶层信号,GPIOLINK,替换RAM。具体修改操作如下:
1.时钟部分。chip_iip.v有两路差分输入时钟:host主机通过Cable线缆提供100MHz refclk作为GTX参考时钟、系统辅时钟、AXI接口时钟,HAPS提供100MHz参考时钟gpiolink_clk作为GPIO模块的驱动时钟。这两路差分输入时钟在使用前需通过特定的buf转为单端时钟。
2.复位部分。简化chip_iip.v外部复位信号为power_up_rst_n,由HAPS系统总复位驱动。该复位信号经计数器产生10us延时后生效,以防较host端过早复位。替换clk_rst中的延时模块DWC_pcie_bcm21为可综合的固定延时。
3.在chip_iip.v中增加GPIO模块HAPS70_2000T_GPIO,用于FPGA通过GPIO Link向host端提供WAKE_n和PRSNT_n两个信号。该模块在Synplify的器件库中,需在chip_iip.v中加入器件库路径。
4.为了方便集成SoC环境前的上板调试,确定链路建立功能,将DWC_pcie_dm.v模块的AXI、MSI、ELBI、SII等应用层接口中的输入部分置固定电平、输出部分悬空。
5.综合时,Synplify提示部分参数未定义。通过在chip_iip.v和cx_pl.v模块中加入include预编译指令指定参数的定义路径解决。
四、上板调试步骤
使用vivado进行后续的布局布线和最终生成上板调试文件,MGB子板跳线接downstream模式,bin文件下载后重启host端,使用PCItree软件扫描并进行数据读写测试。
4.1 chipsocpe观察PIPE接口数据
利用vavido chipsocpe观察PIPE接口数据,其中需要加入debug核的信号有:smlh_ltssm_state,smlh_link_up,mac_phy_txdata,mac_phy_txdatak,phy_mac_rxdata,phy_mac_rxelecidle,phy_txelecidle,phy_mac_rxdatak,mac_phy_txdetectrx_loopback,mac_phy_txcompliance,mac_phy_rxpolarity,mac_phy_txmargin,phy_mac_rxstatus,phy_mac_rxvaild。上板结果如下图所示:
4.2 PCI Tree软件测试
将bit文件下载到HAPS70开发板上,开发板和PC的连接如图所示:
MGB子板的状态灯显示正常后,重启PC端电脑,开机后会自动弹出找到新的硬件向导,系统提示你安装新的驱动设备,打开设备管理器可以找到新的设备名称为PCI设备的新设备,如下图所示:
右键点击更新驱动,将synopsys公司提供的驱动文件synps_pedd_win7_32.cat、synps_pedd_win7_32.inf、snps_pedd_win7_32.sys指定到驱动安装文件文件夹,系统自动安装驱动,安装完成后PCI设备名称会变成Synopsys eDMA Data R/W 32-bit。打开PCI Tree软件,在PCI/PCI设备下拉项中发现VID为x16C3 Insilicon Corporation,DID为xABCD的设备。如下图所示:
PCI Tree软件右侧可以修改基本配置寄存器,右下方是全部寄存器的功能分类,勾选Write ConfReg下方的写入后重刷新选项,写入一个随机值。如果需要对BAR组地址进行操作,例如BAR0,则点击右下方BAR0,会弹出一个子窗口,如下图所示:勾选自动读memory,右下方可以完成memory读写等测试。
选择连续写入memory地址,点击Write Memory按钮,测试结果如下图所示:
在完成单IP阶段测试后,需要重新生成SoC系统级bit文件进行后续测试,集成系统后利用Synopsys软件进行后续DMA测试,该软件测试界面如图所示,图中测试软件不断给待测设备发送TLP和DLLP数据包,由于截图在未连接设备的情况下,所有发送数据包均被忽略,在eDMA吞吐量这一栏中,可以实时监测当前DMA带宽大小和传输完成度。该软件可以完成DMA大数据量测试和压力测试。