加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]PCIe/RapidIO 控制器基于FPGA操作说明(RapidIO 部分

(2014-09-04 00:10:57)
标签:

转载

分类: FPGA
谢谢分享

一、Mobiveil RapidIO 2.2核仿真操作说明 3

二、基于Xilinx GTXRapidIO可综合wrapper设计说明 4

三、上板调试步骤 4

3.1 chipsocpe观察RapidIO Outbound和 Inbound接口数据 5

3.2 SoC系统调试操作说明 5

 一、Mobiveil RapidIO 2.2仿真操作说明

Mobiveil RapidIO源代码需要对其仿真环境进行设置才能完成仿真过程,原因是Mobivieil RapidIO测试激励system verilog代码只能在32位操作系统中运行,且有些操作系统缺少相应仿真运行环境库。具体仿真修改操作如下:

1. 建立64位操作系统镜像,选择rhel-server-6.3-x86_64-dvd.iso为操作系统安装所用操作系统镜像。在现有的操作系统下键入以下命令进行操作系统光盘挂载:mount -o loop ~ver7/rhel-server-6.3-x86_64-dvd.iso /home/RHEL6.3/

2. 在系统etc/yum/repos.d/目录下建立文件名为rhel6-3.repo的文件,文件内键入以下内容:

#[rhel-source]

#name=Red Hat Enterprise Linux $releasever $basearch Source

[6.3image]

Name=Red Hat Enterprise Linux 6.3

Baseurl=file:///home/RHEL6.3

Enable=1

gpgcheck=0

3. 使用如下命令查看VCSDVE软件缺少的库文件:

ldd /export/COREDATA/eda_tools/synopsys/tool_collection/VCS_MX/2011.12/linux/bin/vcs1

ldd /export/COREDATA/eda_tools/synopsys/tool_collection/VCS_MX/2011.12/gui/dve/linux/bin/dve.exe

4. .bashrc中设置库搜索的路径,键入以下RapidIOVCSverdi库路径:

export  LD_LIBRARY_PATH= $NOVAS_HOME/share/PLI/VCS/LINUX:$RAPIDIO_SO:/export/COREDATA/ eda_tools/synopsys/tool_collection/VCS_MX/2011.12/linux/lib :/export/COREDATA/eda_tools/Novas/novas-201210p3/share/FsdbWriter/LINUXAMD64:

5. 搜索缺少的库,键入如下命令:Yum search X11。其中X11为需要安装的库名称。

6. 安装缺少的库,一般32位库为有i868的标志,安装后能自动解决库的关联问题,例如键入以下命令进行库安装:Yum install libX11.i686 libX11-common.noarch libX11-devel.i686

7. 部分.so库操作系统不带有该安装包,需要单独下载安装,安装路径为/home/RHEL6.3/Packages/,比如:Rpm -i /home/RHEL6.3/Packages

安装完成后,进入rapidIO/dv/rundir文件夹下运行./RUN命令进行仿真,各个仿真功能点命令放在rapidIO/dv/config文件夹下,仿真结果如下图所示:

http://s4/mw690/001OUzCqzy6Kox5EUcrd3&690控制器基于FPGA操作说明(RapidIO 部分" TITLE="[转载]PCIe/RapidIO 控制器基于FPGA操作说明(RapidIO 部分" />

图 1-1

二、基于Xilinx GTXRapidIO可综合wrapper设计说明

基于Xilinx GTXRapidIO可综合wrapper设计包括以下几个步骤:

1. 生成支持RapidIO协议的GTX

生成支持RapidIO协议的GTX,需要使用Xilinx CORE generator生成支持virtex-7系列GTX/GTH,需要注意在gtwizard中第2页的protocol template选项中选择srio multi lane。由于RapidIO协议部分包含PCS部分,且可综合,因此GTX不使用PCS层,PCS层设置全部选择bypass,在gtwizard第三页TXRX 外部数据宽度都选择20bits。第四页中使用字符对齐,可选端口中需要勾选ENPCOMMAALIGNENMCOMMAALIGN

Gtwizard中还需要考虑的是差分时钟频率选择的问题,理论上GTX支持SRIO所有标准速率传输需求,但由于FPGA本身最高频率的限制,我们选用1.25Gbps3.125Gpbs的串行速率进行测试,差分时钟选择156.25Mhz,相应选项在gtwizard第二页。

设置完成后,点击Generategtwizard会自动生成GTX代码,使用该代码完成后续工作。

2. 设计10b20b模块。

Mobiveil RapidIO单通道为10b并行,而GTX单通道至少为16b,因此需要考虑设计一个10b20b的位宽转换模块,经讨论协商,可以选择的方案有以下几种:

(1) 10位宽度的数据发送两遍变成20位的数据,交由GTX发出,接收方向收到两遍数据只选取低10位或者高10位数据。

(2) 接收两个10位数据后再将数据统一发出,GTX端并串转换前速率是RapidIO PCS层速率的两倍,跨时钟域需要添加FIFO模块来满足时序要求。

3. 关于Xilinx GTXRapidIO wrapper设计。

RapidIO wrapper设计包括RapidIO控制器,Xilinx GTX wrapper10b20b模块,AMBA桥模块等,设计使用顶层将这些模块包含其中,完成简单的对外接口以便上板调试使用。由于RapidIO使用四通道进行传输,每个通道又包含发送和接收两个模块,需要例化四个GTX模块,每个发送和接收模块都需要一个10b20b模块,使用上述第二种方法完成位宽转换过程,设计完成可综合仿真结果如下图所示:

http://s5/mw690/001OUzCqzy6Kox9wx1O64&690控制器基于FPGA操作说明(RapidIO 部分" /> 

图 2-1

三、 上板调试步骤

使用vivado进行后续的布局布线和最终生成上板调试文件,两片FPGA使用MGBPCIe cable线连接,FPGA MGB子板跳线接downstream模式,另一边接upstream模式,先下载hostbin文件,再下载devicebin文件,完成后重启device端设备。

3.1 chipsocpe观察RapidIO Outbound和 Inbound接口数据

利用vavido chipsocpe观察RapidIO PCSOutbound 和 Inbound接口数据,其中需要加入debug核的信号有:fifo_char_8b_0fifo_char_8b_1fifo_char_8b_2fifo_char_8b_3uli_lane_oe_0uli_lane_oe_1uli_lane_oe_2uli_lane_oe_3rxd0_ph_0rxd1_ph_0rxd2_ph_0rxd3_ph_0ism_state。下图为RapidIO SOC环境下上板调试结果:

http://s2/mw690/001OUzCqzy6Koxdzofnb1&690控制器基于FPGA操作说明(RapidIO 部分" /> 图 3-1

3.2 SoC系统调试操作说明

通过chipscope抓取信号和观察串口打印信息来判断RapidIO环境是否正常,也可以使用双RapidIO方案进行RapidIO链路建立测试,所测结果定性相同,下图是复位后DDR初始化完成和RapidIO链路建立后情况,dfi_init_complete信号被拉高:

http://s12/mw690/001OUzCqzy6Koxc2nTJ6b&690控制器基于FPGA操作说明(RapidIO 部分" /> 图 4-1

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有