[转]FPGA使用LVDS差分信号的一些注意事项

摘要:
最近,我在调试LVDS的屏幕显示功能,这涉及LVDS的一些方面。以下是简要总结,稍后将对其进行补充。因此,IO的性能远远优于FPGA内部的LE性能。xilinx FPGA与altera的区别在于,首先,在Verilog代码中,xilinx的LVDS信号需要定义一对差分对信号,可以通过xilinx原语将其从差分对转换为单端或单端转换为差分对。图1 AlteraLVDS引脚分配图2显示了xilinx的LVDS信号引脚分配。xilinx的LVDS引脚区分p端和n端。

最近在调试一个LVDS的屏显功能,涉及到了一些LVDS的东东,简单地整理如下,后续会再补充。

(1)对于altera FPGA(CYCLONE III)

1、对于作为LVDS传输的BANK必须接2.5V的VCCIO;

2、左右BANK(即1/2/5/6 BANK)的LVDS发送差分对信号无需外接匹配电阻,而上下BANK(即3/4/7/8 BANK)则需要,如果硬件工程师忘了,还可以在FPGA的IO引脚分配时里加端接电阻设置;

3、分配管脚时,左右BANK的LVDS差分信号脚在IO分配时选择的IO电平标准是LVDS,而上下BANK的LVDS差分信号脚在IO分配时选择的IO电平标准是LVDS_E_3R;

4、分配管脚时,只要指定LVDS信号的p端(+),则n端(-)会自动分配。在verilog代码中只要一个信号接口即可,无需在代码中定义一个差分对接口;

5、速度高时需用IP核(200MHz或400Mbps以上,串并转换器),在altera FPGA内使用的LVDS收发IP核是altlvds_rx和altlvds_tx,相应的IP使用说明在megawizard里有。

LVDS是一种高速串行接口。速度一般都是几百MHZ以上。Altera低端的Cyclone IVE/Cyclone III的LVDS速度都可以达到800Mbps以上,高端的更能上到1.6Gbps。因此,IO的性能是远远比FPGA内部的LE性能要好的。这么高的速率情况下,你如果是用内部的LE来移位再输出到LVDS IO上,顶多能上到400Mbps(如果上DDIO的话)就已经不错了,再大的话是移不出来的。

这种情况下,你只有调用专用的串转并/并转串模块,也就是LVDS RX/TX模块。这个模块是专用的解串电路,跟Tranceiver有点像,但是功能没有Tranceiver多,性能没有它好。

了解上面一点后,你的问题其实就是数据对齐的问题了。你输入的是并行的数据,转成串行的数据以后,必然会有一个数据位对齐的问题。说来话有点多了,这个是高速链路的知识了。数据对齐有很多方式,Altera的LVDS模块就是用bitslip来控制的,bitslip是移位控制,在LVDS上电训练链路的那个时间,用bitslip来控制移位,发现如果不是训练码型的话就移一位直到能接收到正确的码型为止。

数据对齐还有另外一种方法。做LVDS接口的一般都有一个随路时钟,这个时钟是跟TX,RX的同源/同步的。移动这个时钟的相位也能起到数据对齐的作用。但是前提是时钟频率跟数据频率的比例和串行因子一定要是相等的。例如,数据频率是800Mbps,串行因子是8,那么参考时钟频率需要是100MHZ。


(2)对于xilinx FPGA

区别altera的地方在于首先在Verilog的代码里,xilinx的LVDS信号需要定义一对差分对信号,通过xilinx的原语进行差分对转单端或者单端转成差分对信号。另外在IO引脚分配时,xilinx的电平标准都是一样的,比如都是LVDS_33。

下图1是altera下的LVDS信号引脚分配,可见用户只需要分配p端(+)引脚即可。

[转]FPGA使用LVDS差分信号的一些注意事项第1张

                                                              图1 altera LVDS引脚分配情况

下图2是xilinx的LVDS信号引脚分配,xilinx的LVDS引脚区分p端和n端。当然在vivado下引脚分配可以只分配P端脚号,N端脚号会自动分配。而在代码里都需要写明差分对信号,再通过原语转成单端信号。

[转]FPGA使用LVDS差分信号的一些注意事项第2张

                                                              图2 xilinx下LVDS的引脚分配情况

免责声明:文章转载自《[转]FPGA使用LVDS差分信号的一些注意事项》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇彻底搞懂Spring类加载(注解方式)批量文件编码格式转化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

FPGA 移交代码学习——Map错误 ODDR2 使用问题

这段时间一直忙贴片生产相关事情,又是搬家,都没有什么时间好好整整。 前人移交过来的记录仪代码,发现一个BUG , 1 wire [8:0] fchk_shift_r1 = fenergy_chk<<1; 2 wire [9:0] fchk_shift_r2 = fenergy_chk<<2; 3 wire [10:0]fchk_sh...

vivado/FPGA 使用小纪

1、使用FPGA做为外部控制器的总线译码时,将总线时钟接在全局时钟脚上(MRCC),就算接在了局部时钟(SRCC)上,也要通过BUFG转为全局时钟走线,否则会因为local clk到各部分的时延较大引起各种问题(时序不稳、观测信号无法正常加载等,血泪教训!) 2、VIO使用时要注意IO及信号走向要在同一时钟域,一个VIO的信号跨时钟域会带来不可预知的问题(...

GPU 、APU、CUDA、TPU、FPGA介绍

购买显卡主要关注:显存、带宽和浮点运算数量 GPU :图形处理器(英语:Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。 用途是将计算机系统所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,控制显...

深入理解CPU和异构计算芯片GPU/FPGA/ASIC (下篇)

3.2.1 CPU计算能力分析 这里CPU计算能力用Intel的Haswell架构进行分析,Haswell架构上计算单元有2个FMA(fused multiply-add),每个FMA可以对256bit数据在一个时钟周期中做一次乘运算和一次加运算,所以对应32bit单精度浮点计算能力为:(256bit/32bit) 2(FMA) 2(乘和加) = 32 S...

【FPGA篇章八】FPGA硬件加速:详述FPGA的硬件加速器设计思想

欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 硬件加速是指利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性。 硬件加速实质上是通过增加运算并行性达到加速的目的的。 常常采用流水线和硬件复制的方法。 1 流水线 1.1 适合流水线的场景 如果某个设计的处理流程分为若干步骤,而且整个数据处理是“单向流”的,前一个步骤的输出是下一个步骤的...

基于FPGA的XPT2046触摸控制器设计

基于FPGA的XPT2046触摸控制器设计 小梅哥编写,未经许可,文章内容和所涉及代码不得用于其他商业销售的板卡 本实例所涉及代码均可通过向 xiaomeige_fpga@foxmail.com 发送邮件获取。 XPT2046是一款设计用于移动电话、个人数字助理、便携式一起、付款中断设备、触摸屏显示器等设备的4线制电阻触摸屏控制器。该芯片实质为一个多通道...