参考来源:TB-6S-LX150T-IMG2_HWUserManual_1.02e.pdf
1、文档描述(类似摘要)
本文档介绍了LVDS数据传输参考设计,使用的载体有TB--6S-LX150T IMG2载体板和TB-FMCL-LVDS FPGA夹层板。
2、设计环境(开发平台和环境介绍)
(1)芯片的选择:
Device : XC6SLX150T (Spartan6 FPGA)
Speed Grade : -3
Package : FGG900
(2)开发板:TB-6S-LX150T-IMG2和TB-FMCL-LVDS
(3)开发环境:ISE12.4 (Windows XP 32-bit)
(4)硬件描述语言:Verilog HDL
(5)参考文档:Xilinx的应用笔记:XAPP1064“源同步序列化和反序列化(最多有519.75Mb/ S)”
3、原理图说明
图1 LVDS部分的整体原理图
相关子程序的说明:
lvds_7to1_tx是传输/发送一组LVDS数据流,接收六通道的并行数据,每通道能输出7位串行数据。
tx_datagen是用于产生LVDS数据模式,为产生输出模式集成一个内部ROM。
lvds_1to7_rx是接收一组LVDS数据流,接收六个输入通道,每通道能输出7位并行数据。
rx_datacmp 是接收数据与预期值数据进行比较输出,为进行接收数据与预期值数据的比较而集成了一个内部ROM
4、引脚说明
表1 信号说明
psw4_rst是异步复位,psw1是接收复位,psw2是Tx信号产生复位,led1是Rx标准完成。Led2是Rx期望值比较结果。
5、RTL目录
6、操作概述
下面介绍各个部分FPGA的实现,其中, lvds_7to1_tx和lvds_1to7_rx的相关信息参照Xilinx应用手册XAPP1064。
(1)tx_datagen
这个模块集成了一个内部ROM,用于生成LVDS的输出数据。内部ROM的大小是512word x44bit(保留两个最高位),内有自由运行的地址计数器,当复位信号无效时就开始输出ROM中的数据,数据通过6个7位的通道输出。
图2 Tx数据产生模块
(2)lvds_7to1_tx
图3 Tx模块
这个模块通过6个输出通道将7位串行数据输出,使用的时钟频率是74.25MHZ,数据传输速率是74.25*7=519.75。
(3)lvds_1to7_rx
图4 Rx时钟和数据块的原理图
这个模块可以校准(调整)传入的Rx时钟和Rx数据来输出并行数据和时钟。它设置了一个完整的校准标志来通知已经实现正常通信(串行传输)。
图5 Rx期望值比较模块的原理图
这个模块执行接收数据预期值比较基于上述完整的校准标志位(init_done)。由于这种设计规范假定一个LVDS传输回环(如图6所示),在TX端(tx_datagen)产生的ROM数据变成预期值数据。如果实际预期的数据比较错误就会使比较结果信号(cmp_ok)是无效,为低电平。
7、在实际环境中如何使用这个设计
下面介绍如何在实际环境中使用该设计。
(1)板的默认设置
图6 确认板操作前的默认设置
(2)如何确认板操作
图7 板操作和测试点
首先,按接收器的复位按钮(PSW1)。如果功能正常,LED26和LED27会亮起(正常接收状态)。
然后,按传输数据按钮(PSW2)。由于这个动作将使发送端的数据ROM复位,造成接收端数据不一致,这将使LED27关闭。