赞
踩
源|https://blog.csdn.net/lxm920714/article/details/107942572
最近新做了一块板子,用到Spartan 7芯片对前级视频源叠加OSD菜单,前级会将HMDI转成LVDS送给FPGA处理,在原理图设计阶段没有仔细阅读fpga手册,导致LVDS BANK供电错误,应该接2.5V,实际接3.3V,且BANK供电没有用磁珠隔开,整板3.3V铺在一个平面,导致fpga lvds无法工作。搜集了相关资料,这里做下小结,避免后续再犯类似错误。
1、HR和HP banks基本介绍
Xilinx的7系列FPGA有两种IO Bank:HP(High Performace)和HR(High Range)。HP(high-performance)I/O banks的设计目的是为了获取更高的Memory及chip-to-chip间的传输速率;而HR(high-range)I/O banks的设计目的是为了更宽的I/O电平标准。两种BANK的IO口电压不同,其中HR I/O Banks的VCCO电压最大为3.3V,HP I/O banks的VCCO电压最大为1.8V。特别是初次使用7系列时,在硬件设计中特别要注意它们I/O口的最大工作电压,一不注意就会把电压搞错,导致FPGA不能正常工作。
2、HR和HP banks的LVDS电平
当两个banks的I/O口作为LVDS电平时,HR banks的I/O电压VCCO只能为2.5V,HP banks的I/O口电压为1.8V。两个banks支持LVDS的标准不同,HR I/O banks的I/O只能分配LVDS_25标准,HP分配为LVDS标准。
LVDS_25的直流特性如下表所示。
LVDS的直流特性如下表所示。
对比上述两表可知,虽然LVDS_25和LVDS的bank的工作电压不同,但是LVDS电平的直流特性一样。高速AD/DA的LVDS工作电压一般为1.8V,在初次使用7系列时,一些硬件工程师可能担心:HR bank的工作电压为2.5V,那么HR bank的LVDS是否可以直接连接工作电压为1.8V的AD/DA的LVDS接口,通过查看它们LVDS的直流特性,可知可以放心的直接连接。
3、HR banks电压接错LVDS还能使用吗
正如上述所描述,初次使用7系列的硬件工程师,需要把1.8V工作电压AD/DA的LVDS接口连接到FPGA时,设计人员把FPGA HR banks的I/O口电压VCCO直接设计跟AD/DA I/O一样的电压为1.8V,由于没有仔细查看FPGA的数据手册,导致设计存在缺陷。当电路板加工、贴片回来才知道设计有问题时,心里肯定忐忑不安,这样低级错误领导肯定得盘我了。此时,千万别慌张,不要想着立马重来一版,想着如何可以弥补,即使不能保证完全可用,也至少得验证一些功能,让此版电路板有所价值,不能做出一版废的电路板,这是大部分硬件工程师的愿望。笔者遇到过此问题,验证过即使HR I/O电压设计为1.8V,同样可以作为LVDS使用。也通过咨询过Xilinx官方技术人员,I/O电压主要影响LVDS的阻抗匹配。那么电压不对就无法保证LVDS速率达到理论速率,具体能到多少速率那就看自己的“人品”了。
xilinx 7系列芯片不再支持LVDS33电平,在VCCO电压为3.3V的情况下无法使用LVDS25接口。
有些设计者想通过在软件中配置为LVDS25,实际供电3.3V来实现LVDS33也是无效的,原因是xilinx 7系列芯片在IO配置方面增加了过压保护,因而无法通过欺骗综合软件的方式强行配置IO,具体参见
7-Series SelectIO Resources Guide(https://www.xilinx.com/support/documentation/user_guides/ug471_7Series_SelectIO.pdf), page 100, Note 2 states:
"if the voltage exceeds 2.85V, the outputs will be in a high-Z state. The device should always be operated within the recommended operating range as specified in the 7 series FPGA data sheets."
虽然在VCCO为3.3V情况下无法输出LVDS25,但可以作为输入进行使用,具体参见AR#43989 https://www.xilinx.com/support/answers/43989.html
即使VCCO电平不是1.8V,在HP I / O bank中也可以使用LVDS输入。LVDS输出(因此双向LVDS)只能用于1.8V供电的组。
同样,即使VCCO电平不是2.5V,也可以在HR I / O bank中使用LVDS_25输入。LVDS_25输出(因此双向LVDS_25)只能用于2.5V供电的bank。
查了上述说法之后,我们自己试验下:
实验验证:
Bank14为HR Bank,差分输入以及差分输出使用LVDS电平:
提示说明,LVDS电平不支持HRbank。
差分输入以及差分输出使用LVDS25电平:
提示VCCOs矛盾,输出差分时钟sys_clk_out_p,要求VCCO=2.5V,但对输入并没有这种要求。
验证了:
即使VCCO电平不是1.8V,在HP I / O bank中也可以使用LVDS输入。LVDS输出(因此双向LVDS)只能用于1.8V供电的组。
同样,即使VCCO电平不是2.5V,也可以在HR I / O bank中使用LVDS_25输入。LVDS_25输出(因此双向LVDS_25)只能用于2.5V供电的bank。
官方更详细说明:
1、Xilinx Customer Community
https://www.xilinx.com/support/answers/43989.html
2、Xilinx Customer Community
https://forums.xilinx.com/t5/Design-Entry/spartan7-power-wiring-LVDS-25/m-p/984802
//补充说明:FPGA中的 LVDS LVDS33 LVDS25
这仅仅是一种命名,对于XILINX FPGA来说,LVDS25意味着bank的供电电压VCCO采用的是2.5V,LVDS33意味着bank的供电电压VCCO采用的是3.3V,只是在代码中使用LVDS信号时,需要将管脚分别约束为LVDS25和LVDS33。但是!!FPGA引脚输出的LVDS电平都是标准LVDS电平,一般共模电压在1.25V,摆幅是350mV。下图是FPGA官方给出的ds926手册,可以看到LVDS25和LVDS真的只是VCCO不同而导致的命名不同,但FPGA引脚输出的电平都是标准LVDS。
这就会导致一些问题,经常会有人问LVDS25、和LVDS33以及LVDS的芯片(或者FPGA约束)到底能不能兼容?答案是可以的,因为现在市面上正常情况下大部分公司的产品就只会用一种标准的LVDS电平,也就是上述所说的。因此,在这次和对外对接的时候,对方的LVDS芯片使用的是3.3V供电电压,对方就说是自己的标准是LVDS33,而我这边FPGA是在HP BANK产生的LVDS信号,刚开始我也以为不兼容,但查看了网上的资料和对方使用的芯片的手册,也就发现了这个问题。一个小小的LVDS电平问题,直到今天遇到了问题才了解明白。
区别仅在于零件的内部。
LVDS33需要3.3V Vcco,LVDS25需要2.5 Vcco(或者对于较新的部件,它可能使用Vccaux)。
引脚上的信号接口是相同的。
即两种情况下的电压摆幅和共模电压相同,因此您可以将其视为LVDS。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。