FPGA LVDS笔记1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA LVDS笔记1
日期:2016/8/10
LVDS为低压差差分信号,是数据传输的一种形式,即采用低压差差分对进行数据传输。
使用一对差分对(2根线)作为一路数据传输通道,比起单端信号(1根线)传输优势是抗干扰能力强,适用于长距离数据传输。
在FPGA中IOpin可以配置LVDS功能,BANK1,2,5,6为左右BANK,IO选用LVDS功能;BANK3,4,7,8为上下BANK,IO选用LVDS_E_3R功能,其需要在差
分对上增加匹配电阻。
本项目中采用BANK5,输出三路LVDS信号,使用PLL产生三
路时钟分别为50MHz,75MHz,100MHz经过三对IO(配置为LVDS)输出,其中IO
分别是BANK5的PIN_P21(PIN_P22),PIN_N19(PIN_N20),PIN_N18(PIN_N17)。
在FPGA中,一般使用Serders时会使用pug-in里面的LVDS_RX,LVDS_TX,这两个ip 模块主要作用时Serders,即串并转化器和并串转换器。
其中LVDS的通道可以设置,并行因子也可以设置,即并行数据的bit数。
其中数据传输速度为时钟*并行因子。
比
如数据传输数量为600Mbps,factor为8,则时钟频率为75MHz。
其中时钟可以使用LVDS_RX/LVDS_TX内部时钟,或者使用外部时钟,外部时钟就需要使用PLL产生SERDERS使用的时钟了。
关于时钟选择在配置LVDS_RX/LVDX_TX时可以选择。
SERDES设置参考官方LVDS SERDES教程。
使用SERDES功能时虽然使用了LVDS的
宏单元,但是其输入输出IO可以设置LVDS也可以设置TTL,一般情况下SERDES时使用LVDS数据传输模式,保证了数据传输的可靠性。
在FPGA中关于LVDS会让新手产生误解,即LVDS就是SERDES,其实这是两个不同
的概念,单单LVDS只是一种数据传输方式,在FPGA里面可以设置IO为LVDS,设置LVDS时只需要设置其中一个IO即可,在源代码里面也只需要定义一个port,另外在pin planner里面将IO改成LVDS,相应的LVDS的n通道会自动产生。
SERDES只是
利用FPGA的LVDS_RX/LVDS_TX两个IP配置而成,再将输入/输出的IO配置成LVDS 功能,一起实现并串转换/串并转化功能模块。
总结几个注意点:
1、LVDS的pad周围5pad之内禁止放置其他信号,但是可以配置LVDS
2、FPGA部分pad不支持差分对功能,也就不支持LVDS了
3、使用LVDS时尽量选用BANK1,2,5,6,另外BANK3,4,7,8没有验证过
个人经验总结:设计某一个电路模块,首先要尽可能地了解模组功能,思路尽量清晰,以参考官方提供的资料为主,尽量看英文文档,信息比中文资料准确。