利用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连接。

FPGA调试光纤模块的更多相关文章

  1. FPGA调试技巧

    FPGA调试技巧 八月,一直在debug, 编译,查信号,几乎没机会,也没心思停留下来看点东西,静心思考,做点笔记.今天,在硬盘上翻到了保存已久,但一直没想起来读的一本手册.这是我初入职场,决定从硬件 ...

  2. FPGA调试技巧(Quartus 15.1 Standard平台)

    1.在SignalTap II Logic Analyzer(stp)观测信号,需要将待观察寄存器.网络节点的综合器属性设为synthesis noprune和synthesis keep,防止综合器 ...

  3. Lattice系列FPGA入门相关0(Lattice与Altera、Xilinx对比及入门)

    需求说明:Lattice系统FPGA入门 内容       :Lattice与Altera.Xilinx对比 来自       :时间的诗 1.Lattice与Altera.Xilinx对比 latt ...

  4. FPGA之SPI SD卡读操作

    这几天在FPGA调试与SD通信,读SD卡里的图片,之前接触32时没有去研究过SD卡,不太熟悉操作流程,在网上找了很多资料,也看了几个32开发板的资料,但大多数都讲得不是特别清楚,只能瞎操作了一番,在别 ...

  5. Vivado抓取信号

    作者:桂. 时间:2018-05-03  21:16:03 链接:www.cnblogs.com/xingshansi/p/8987608.html 前言 FPGA调试需要抓取特定信号,一个直观的思路 ...

  6. Chipscope使用

    作者:桂. 时间:2017-08-07  06:47:31 链接:http://www.cnblogs.com/xingshansi/p/7297482.html 前言 Chipscope在FPGA调 ...

  7. Lattice FPGA 板子 调试笔记

    最近在调试LATTICE  FPGA 做的视频板子,颇不顺利,所以记录下来作为以后的参考: 1.FPGA的IO口不是所有的都是双向的,有些有特殊作用的是单向的. 在查阅 LatticeECP3-17E ...

  8. fpga该驱动器调试dev_dbg 无输出

    近期需要调试fpga驾驶,整个是非常蛋疼.dev_dbg 我想用这个作为没有成功调试输出,它已被彻底打垮! 反射... 现在基于以下设置是不相关的打印,和网上说的有些出入,问题还得研究下. 驱动程序调 ...

  9. FPGA DDR3调试

    FPGA DDR3调试 Spartan6 FPGA芯片中集成了MCB硬核,它可以支持到DDR3.在Xilinx的开发工具Xilinx ISE中提供了MIG IP核,设计者可以用它来直接生成 DDR3 ...

随机推荐

  1. linux安装禅道的步骤

    linux一键安装禅道:1.禅道帮助文档:http://www.zentao.net/book/zentaopmshelp/90.html 2.修改Apache的端口号:/opt/zbox/zbox ...

  2. MIRO做发票校验时实现替代功能的多种方式

    http://blog.sina.com.cn/s/blog_3f2c03e30100ngje.html MIRO做发票校验时,如果需要对产生的会计凭证做某些字段的替代,可有多种方法. 1.GGB1替 ...

  3. css笔记-文本样式

    聊聊text-decoration.text-indent.text-transform.letter-spacing.word-spacing.vertical-align.下面是一些常用设置文本样 ...

  4. SQL 表结构操作

    数据库知识总结(表结构操作) 1.创建表Scores 1 create table Scores --表名 2 (Id int identity(1,1) primary key,--设置主键,并且行 ...

  5. redis基本教程

    http://www.runoob.com/redis/redis-tutorial.html

  6. 关于github在客户端不小心删除新仓库,重建后无法上传解决方法

    不小心删除了如果直接在客户端重建一个不行,首先找出本地新仓库,删除,然后在重新再客户端建立一个. 但此时如果两仓库名字一样,会发现无法上传. 此时应该在网页打开github,点击进入之前删除的仓库(云 ...

  7. LeetCode 283. Move Zeroes (移动零)

    Given an array nums, write a function to move all 0's to the end of it while maintaining the relativ ...

  8. trait与policy模板技术

    trait与policy模板技术 我们知道,类有属性(即数据)和操作两个方面.同样模板也有自己的属性(特别是模板参数类型的一些具体特征,即trait)和算法策略(policy,即模板内部的操作逻辑). ...

  9. Java IO编程全解(三)——伪异步IO编程

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7723174.html 前面讲到:Java IO编程全解(二)--传统的BIO编程 为了解决同步阻塞I/O面临 ...

  10. rem 单位

    rem(font size of the root element)是指相对于根元素的字体大小的单位.   主流的一些web app的适配解决方案: 流式布局: 流式布局在页面布局的时候都是通过百分比 ...