利用FPGA调试光纤的一些设计经验

利用fpga调试光纤接口接口:
由于与项目需要,前段时间调试了光纤接口,记录一些设计经验。
设计中采用fpga控制光纤模块完成光纤数据的收发,fpga采用xilinx公司的spartan6 lx45t,由于其内部自带的2个gtp收发器,能作为多种高速通信协议(千兆以太网、pci-e,sata等)的桥梁,且xilinx提供了免费的ip核,设计比较方便。
首先,建立ise工程,添加gtp核,(该过程可参考xilinx提供的文档:logicore ip spartan-6 fpga gtp transceiver wizard v1.11user guide)
选择spartan6 gtp收发器1.11版本,接下来进行gtp核的设置,
spartan6 lx45t系列fpga内部有2个gtp核,每个核又具有两个独立的通道,因此可根据自己的需要选择,
接下来配置gtp速率以及数据协议,很多高速传输中都采用的是aurora-8b10b协议(https://en.wikipedia.org/wiki/8b/10b_encoding),速率以及参考时钟都可以根据需要设置(本项目光纤最高速率1.25gbps),
接下来是协议的一些配置选项,各个选项的含义可以参考rocketio™ transceiver user guide 和 spartan-6 fpga gtp transceivers,里面有这些选项的详细说明,
这里选择数据传输中的逗号对齐,比较重要,主要是用于数据告诉传输中的数据对齐,后面几页的配置默认就可以。
最后工程生成以后可以直接打开gtp核工程,编译后便可进行modelsim仿真,仿真结果一般都不会出现问题。
最后,可根据自己的需要修改源代码,其中,比较关键的地方需要注意:
1、 txcharisk参数,该参数用于指明当前数据是否为对齐字符(k28.5,即0xbc),当发送对齐字符时,必须txcharisk=1,当然0xbc也可以作为实际数据,只要txcharisk=0,就不会认为该数据为对齐字符;
2、 数据宽度问题,在设置gtp速率及协议的时候,注意数据宽度的选择,若选择16bits或者32bits,则数据在接收端可能会发生错位现象,(发送0x0102,接收到为0x0201),仿真时不会出现问题,因为在frame_check中进行了判断,若发生错位,会得到纠正,但选择8bits则不会出现该问题,省去了后续的纠错任务;
3、 约束文件问题,打开gtp核工程后,可以看到有两个约束文件,一个是gtp属性,一个是顶层约束,
inst mgt1_0t1r_i/tile0_mgt1_0t1r_i/gtpa1_dual_i clkindc_b_0
net “tile0_txusrclk0_i” tnm_net = “tile0_txusrclk0_i”;
timespec “ts_tile0_txusrclk0_i” = period “tile0_txusrclk0_i” 8.0;
若设计者希望建立自己的顶层文件,并在顶层文件中例化gtp核,则需要在约束语句上加上顶层例化名称:
inst gtp_top_i/mgt1_0t1r_i/tile0_mgt1_0t1r_i/gtpa1_dual_i clkindc_b_0
net “ gtp_top_i/tile0_txusrclk0_i” tnm_net = “tile0_txusrclk0_i”;
timespec “ts_tile0_txusrclk0_i” = period “tile0_txusrclk0_i” 8.0;
其中,具体设计细节可参考上面提到的3个参考文档。在硬件实现上,主要需要配置gtp的差分时钟,光纤的rx、tx和gtp的rx、tx连接。

室内LED显示屏都有哪些工厂
电缆长度会影响天线的性能吗
一种具有反向折射率分布的新型增益光纤技术
RFID技术在高端酒类防伪追溯中的应用
海外展览设计与施工
利用FPGA调试光纤的一些设计经验
2004三维力控秋季全国巡演报道之广州站
魅族pro7什么时候上市?魅族pro7最新消息:两种背面副屏设计,魅族Pro7这次真的开大招了!
高性能小型化梳状腔体滤波器的仿真和设计分析
基于STM32F103RB微处理器和W5100芯片实现嵌入式Web服务器的设计
维修信号发生器N5182A校准不过
使用固态继电器驱动恒温器教程
简单介绍数字信号处理器的特点
探讨生成式AI与机器人技术中的未来
果粉悲剧了,iPhone7恐怕9月无法开卖
盐雾腐蚀试验检测怎么办理,深圳盐雾测试那里可以做
非洲最强超算或可杀入全球百强超算
北京协和与华为签署战略合作协议,共建研究型智慧医院
MLPerf评测完美收官,浪潮信息44项冠军成功领跑
科大讯飞ICDAR 2023收获四项冠军,图文识别理解能力持续进阶