[转]FPGA使用LVDS差分信号的一些注意事项
最近在調(diào)試一個(gè)LVDS的屏顯功能,涉及到了一些LVDS的東東,簡(jiǎn)單地整理如下,后續(xù)會(huì)再補(bǔ)充。
(1)對(duì)于altera FPGA(CYCLONE III)
1、對(duì)于作為L(zhǎng)VDS傳輸?shù)腂ANK必須接2.5V的VCCIO;
2、左右BANK(即1/2/5/6 BANK)的LVDS發(fā)送差分對(duì)信號(hào)無(wú)需外接匹配電阻,而上下BANK(即3/4/7/8 BANK)則需要,如果硬件工程師忘了,還可以在FPGA的IO引腳分配時(shí)里加端接電阻設(shè)置;
3、分配管腳時(shí),左右BANK的LVDS差分信號(hào)腳在IO分配時(shí)選擇的IO電平標(biāo)準(zhǔn)是LVDS,而上下BANK的LVDS差分信號(hào)腳在IO分配時(shí)選擇的IO電平標(biāo)準(zhǔn)是LVDS_E_3R;
4、分配管腳時(shí),只要指定LVDS信號(hào)的p端(+),則n端(-)會(huì)自動(dòng)分配。在verilog代碼中只要一個(gè)信號(hào)接口即可,無(wú)需在代碼中定義一個(gè)差分對(duì)接口;
5、速度高時(shí)需用IP核(200MHz或400Mbps以上,串并轉(zhuǎn)換器),在altera FPGA內(nèi)使用的LVDS收發(fā)IP核是altlvds_rx和altlvds_tx,相應(yīng)的IP使用說(shuō)明在megawizard里有。
LVDS是一種高速串行接口。速度一般都是幾百M(fèi)HZ以上。Altera低端的Cyclone IVE/Cyclone III的LVDS速度都可以達(dá)到800Mbps以上,高端的更能上到1.6Gbps。因此,IO的性能是遠(yuǎn)遠(yuǎn)比FPGA內(nèi)部的LE性能要好的。這么高的速率情況下,你如果是用內(nèi)部的LE來(lái)移位再輸出到LVDS IO上,頂多能上到400Mbps(如果上DDIO的話(huà))就已經(jīng)不錯(cuò)了,再大的話(huà)是移不出來(lái)的。
這種情況下,你只有調(diào)用專(zhuān)用的串轉(zhuǎn)并/并轉(zhuǎn)串模塊,也就是LVDS RX/TX模塊。這個(gè)模塊是專(zhuān)用的解串電路,跟Tranceiver有點(diǎn)像,但是功能沒(méi)有Tranceiver多,性能沒(méi)有它好。
了解上面一點(diǎn)后,你的問(wèn)題其實(shí)就是數(shù)據(jù)對(duì)齊的問(wèn)題了。你輸入的是并行的數(shù)據(jù),轉(zhuǎn)成串行的數(shù)據(jù)以后,必然會(huì)有一個(gè)數(shù)據(jù)位對(duì)齊的問(wèn)題。說(shuō)來(lái)話(huà)有點(diǎn)多了,這個(gè)是高速鏈路的知識(shí)了。數(shù)據(jù)對(duì)齊有很多方式,Altera的LVDS模塊就是用bitslip來(lái)控制的,bitslip是移位控制,在LVDS上電訓(xùn)練鏈路的那個(gè)時(shí)間,用bitslip來(lái)控制移位,發(fā)現(xiàn)如果不是訓(xùn)練碼型的話(huà)就移一位直到能接收到正確的碼型為止。
數(shù)據(jù)對(duì)齊還有另外一種方法。做LVDS接口的一般都有一個(gè)隨路時(shí)鐘,這個(gè)時(shí)鐘是跟TX,RX的同源/同步的。移動(dòng)這個(gè)時(shí)鐘的相位也能起到數(shù)據(jù)對(duì)齊的作用。但是前提是時(shí)鐘頻率跟數(shù)據(jù)頻率的比例和串行因子一定要是相等的。例如,數(shù)據(jù)頻率是800Mbps,串行因子是8,那么參考時(shí)鐘頻率需要是100MHZ。
(2)對(duì)于xilinx FPGA
區(qū)別altera的地方在于首先在Verilog的代碼里,xilinx的LVDS信號(hào)需要定義一對(duì)差分對(duì)信號(hào),通過(guò)xilinx的原語(yǔ)進(jìn)行差分對(duì)轉(zhuǎn)單端或者單端轉(zhuǎn)成差分對(duì)信號(hào)。另外在IO引腳分配時(shí),xilinx的電平標(biāo)準(zhǔn)都是一樣的,比如都是LVDS_33。
下圖1是altera下的LVDS信號(hào)引腳分配,可見(jiàn)用戶(hù)只需要分配p端(+)引腳即可。
圖1 altera LVDS引腳分配情況
下圖2是xilinx的LVDS信號(hào)引腳分配,xilinx的LVDS引腳區(qū)分p端和n端。當(dāng)然在vivado下引腳分配可以只分配P端腳號(hào),N端腳號(hào)會(huì)自動(dòng)分配。而在代碼里都需要寫(xiě)明差分對(duì)信號(hào),再通過(guò)原語(yǔ)轉(zhuǎn)成單端信號(hào)。
圖2 xilinx下LVDS的引腳分配情況
總結(jié)
以上是生活随笔為你收集整理的[转]FPGA使用LVDS差分信号的一些注意事项的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android 系统倒计时显示时间,An
- 下一篇: android+建模工具,什么是适用于A