本文轉載自: MYMINIEYE微信公眾號
1.差分信號簡介
1.1差分信號
區別於傳統的一根信號線一根地線的做法,差分傳輸在兩根線上都傳輸信號,這兩個信號的振幅相同,相位相反,在這兩根線上的傳輸的信號就是差分信號。信號接收端通過比較這兩個電壓的差值來判斷發送端發送的邏輯狀態。在電路板上,差分走線必須是等長、等寬、緊密靠近、且在同一層面的兩根線。

1.2差分信號的抗干擾原理
在實際線路傳輸中,線路存在干擾,並且同時出現在差分線對上,線路傳輸干擾同時存在於走線相同的差分對上,可認為一對差分線上所收到的干擾是相同的,但是兩根傳輸線之間的電壓差是不變的,因此差分信號有較強的抗干擾能力。

2.Xilinx7系列IO實現差分信號
2.1特點
Xilinx7系列FPGA的HR和HPbank,每個bank有50個I/O管腳,每個I/O管腳都可配置成輸入、輸出。每個bank的首尾管腳只能作為單端I/O,其余48個I/O則可配置成24對差分I/O。在差分信號的實現過程中,管腳分配應選擇相應電平標准的bank中除首尾以外的其他48個IO。
2.2實現
Xilinx7系列的差分信號的實現主要通過IBUFDS、OBUFDS、IOBUFDS等原語的調用,在程序中直接進行原語的例化,以IBUFDS和OBUFDS為例:
2.2.1IBUFDS
IBUFDS:用於將差分輸入信號轉化成標准單端信號,且可加入可選延遲。在IBUFDS原語中,輸入信號為I、IB,一個為主,一個為從,二者相位相反。

源碼

仿真結果

2.2.2OBUFDS
OBUFDS:將標准單端信號轉換成差分信號,輸出端口需要直接對應到頂層模塊的輸出信號,和IBUFDS為一對互逆操作。

源碼

仿真結果

3.GOWIN高雲IO實現差分信號
3.1特點
與xilinx7系列相比Gowin高雲半導體FPGA產品所有分區都支持差分輸入,所有分區支持模擬LVDS差分輸出,但需要使用外部電阻網絡,模擬LVDS差分輸出使用外部電阻匹配和差分LVCMOS緩存輸出實現,特定分區支持真LVDS差分輸出和差分輸入匹配。GW1N系列FPGA產品在分區1/2/3支持真LVDS差分輸出,分區0支持100歐姆輸入差分匹配電阻。
3.2實現
GowinFPGA通過TLVDS_IBUF和ELVDS_IBUF(真差分/模擬差分輸入緩沖器)、TLVDS_OBUF和ELVDS_OBUF(真差分/模擬差分輸出緩沖器)等原語的調用實現差分信號。以TLVDS_IBUF和TLVDS_OBUF為例。
3.2.1TLVDS_IBUF
TLVDS_IBUF:真差分輸入緩沖器,其中端口I和IB為差分輸入信號,O為輸出的單端信號。


源碼

仿真結果

3.2.2TLVDS_OBUF
TLVDS_OBUF:真差分輸出緩沖器,其中端口I為單端輸入信號,O和OB為輸出的差分信號。

源碼

仿真結果

4.差分信號的應用
差分信號的抗干擾能力強,干擾噪聲一般會等值、同時的被加載到兩根信號線上,噪聲對信號的邏輯意義不產生影響。由於差分信號抗干擾能力強、受外界影響小,並且差分信號在傳輸速率上遠勝於單端信號,在信號比較微弱、噪聲較高的情況下有明顯的優勢,因此差分信號在高速數字串行接口中非常常見,比如LVDS、Mini_LVDS、RSDS、PPDS、BLVDS、differenTIalHSTL、SSTL等。除此之外,差分信號能有效抑制電磁干擾(EMI)並且信號時序定位准確。