最近调试芯片遇到一个选择题,需要决定数据接口的接口标准,是选用LVDS差分接口还是CMOS单端接口。说实话,之前接触多的还是CMOS单端接口,只是看到过很多资料介绍过LVDS差分接口。
官方说法里,它的主要优点有:抗干扰能力强,具有更高的数据传输速率
更好的信号完整性
降低了电平幅度和电路功耗
既然有这么多优点,这次我们就选用LVDS差分接口,看看我们能不能感受到LVDS的优势。
每对LVDS信号是一个差分信号对,一个信号用两个相反的p,n信号线表示,通过差值
传输数据,这样可以有效减小共模噪声的干扰,信号线传输如下图:图中含有DATA_CLK, RX_FRAME两个LVDS信号对
而FPGA内部处理信号肯定还是需要使用单端信号,这时就需要经过一个差分转单端的“工具”,将差分信号转换为FPGA更方便处理的单端信号。
在Xilinx中,我们可以用IBUFDS原语,可以在Language Template中找到这个原语的示例,经过修改一番后,可以将差分的data_clk转换为单端的data_clk, 原语如下:
IBUFDS #(
.DIFF_TERM("FALSE"), // Differential Termination .IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest performance="FALSE" .IOSTANDARD("DEFAULT")