关于Cyclone IV的LVDS是如何入坑
记得刚用Altera的FPGA Cyclone IV那会,拿到规格书一看IO总览,靠,这么多LVDS IO,岂不是可以搞很多事。然后就美滋滋的一顿狂操作把原理图画好了,然后快速Layout送出去打样,当时一切都是那么顺利,但是板子回来测完电源开始RTL调试时就开始傻眼了,然后就开始踏一路的Altera的LVDS的坑,不过原因还是当时自己太年轻急躁,做事不够细心,Altera的FPGA的LVDS还是有很多有意思的地方。
关于Cyclone IV的LVDS IO
当时的整个电路不复杂,就是使用FPGA做信号源产生驱动LCD的LVDS信号测试LCD屏,当时拿到规格书的第一件事就是马上去找LVDS IO资源,从规格找到关于LVDS IO资源的表格如下图所示。

图1. Cyclone IV中的LVDS资源信息
当时使用器件是EP4CE6的器件,可以看到有21对LVDS IO,但是没注意去看LVDS的那个小上标(3),那个上标(3)在下面的Note 3中很清楚的说明了21对LVDS IO是专用LVDS和可模拟的LVDS总数,当时就输在这个Note上。
前面说到板子回来后调RTL就傻眼了,为什么傻眼呢?当时一波操作把RTL代码写好,仿真也做了,逻辑都很完美,但是一综合后Quartus就马上给我抛出了个错误,如下。

图2. Cyclone IV中的LVDS资源信息
看到这一篇红的错误内心是崩溃的,不过Quartus还是做得很好,报错后还是很友善的告诉你解决方法,在上面图2中可以看到,展开错误下面的绿色字体提示可以用LVDS_E_3R或者mini-LVDS_E_3R的IO类型。然后我就根据这个提示把IO类型改为LVDS_E_3R,重新综合后终于不再报错,顺利的综合完成,然后就把程序Down到FPGA上。测试LCD没反应,以为没信号输出,拿示波器测试信号线有信号输出,但是LCD就是死活不亮,没办法,重新看手册。

图3. Cyclone IV中可选的LVDS_E_3R IO类型
LVDS IO类型不可用的原因
重新看手册后发现了图1中的那个Note 3信息,参考描述在手册第133页的Table 6-8找到了Cycone IV E系列的真LVDS和模拟LVDS数量分布信息,如下,可以看到对于EP4CE6的EQPF-144封装只有8对Ture LVDS,剩下13对都是可模拟的LVDS。

图3. Cyclone IV中真LVDS和可模拟LVDS的IO数量分布
然后在手册的第136页找到了LVDS_E_3R的描述,这里的E是Emulated的意思,3R是Emulated LVDS IO需要使用3个电阻网络组合才能实现LVDS信号输出,如下图,电路设计时注意电阻取值。

图4. LVDS_E_3R的正确电路设计
当时看到这个信息后,马上对板子割线放了官方推荐的这个电阻网络,板子上电后LCD就马上正常被驱动工作起来。
当然,有了这个奇怪的电阻网络实现LVDS信号输出后,还是忍不住好奇原因,后面仔细的去读手册看LVDS和Emulated LVDS的电气参数,在手册第477页的Table 1-34和Table 1-35给出了答案。Emulated LVDS既然不是Ture LVDS,那么速率肯定是有所折扣的。可以看出,对于相同的Modes和相同的器件等级,比如我使用的是x7 Modes,C8的器件等级,True LVDS最高速率是640Mbps,而Emulated LVDS最高才550Mbs。这也是设计时需要注意的地方。

图5. True LVDS和Emulate LVDS的速率比较
同样在手册的第447页的Note中给出了关于如何确定Ture LVDS和Emulated LVDS的分布范围,如下图,可以看到True LVDS都在Row I/O Banks,所以很自然的就可以推论Emulated LVDS多数就分布在Column I/O Banks上,事实我在Quartus上尝试了多个器件的LVDS分配测试,Emulated LVDS都分布在Column I/O Banks上,但这个信息仅供参考,可能个别器件的Row I/O Banks上还是有的,毕竟查了好久的资料还是没找到明确描述。
本文主要从之前的项目经历引入Cyclone IV的LVDS IO不能出LVDS信号原因,顺便解释了LVDS_E_3R IO类型是什么,但对于一个硬件工程师来说,仅知道这些总感觉还是欠点什么。对的,为什么LVDS_E_3R使用电阻网络就能输出LVDS信号了,下篇文章将通过IBIS模型搭建电路,通过仿真看波形的方式来解析这个问题,如果文章质量给力的话请多多打赏支持,ecircuitlab会持续的输出更多硬件设计干货。
* 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
参考资料:[1].Intel/Altera:Cyclone IV Device Handbook,March 2016.