在低端FPGA中實(shí)現(xiàn)LVDS接口設(shè)計(jì)中的DPA功能
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在FPGA中,動(dòng)態(tài)相位調(diào)整(DPA)主要是實(shí)現(xiàn)LVDS接口接收時(shí)對(duì)時(shí)鐘和數(shù)據(jù)通道的相位補(bǔ)償,以達(dá)到正確接收的目的。ALTERA的高端FPGA,如STRATIX(r) 系列中自帶有DPA電路,但低端的FPGA,如CYCLONE(r)系列中是沒(méi)有的。本文主要闡述如何在低端FPGA中實(shí)現(xiàn)這個(gè)DPA的功能。
實(shí)現(xiàn)架構(gòu)
在LVDS輸入接收時(shí),時(shí)鐘和數(shù)據(jù)的相位可能是不確定的,因此我們需要將時(shí)鐘的相位作出調(diào)整,使得時(shí)鐘能穩(wěn)定的采集到輸入數(shù)據(jù)。工作的核心就是用鎖相環(huán)PLL的相位調(diào)整功能,產(chǎn)生若干個(gè)時(shí)鐘的不同相位,看哪些相位能準(zhǔn)確的采集到輸入數(shù)據(jù),然后取窗口中間的一個(gè)時(shí)鐘相位,作為正常工作時(shí)的采樣時(shí)鐘。比如通過(guò)PLL產(chǎn)生0,45,90,135,……,315度8個(gè)相移的時(shí)鐘,如果0,45,90度相移的時(shí)鐘能正確采樣到輸入,那么最后選取中間相位,即45度的時(shí)鐘作為采樣時(shí)鐘。這樣接口上具有最大的時(shí)序裕量,從而保證鏈路的可靠性。圖1為這個(gè)設(shè)計(jì)的基本結(jié)構(gòu),通過(guò)PLL調(diào)整相位的接口,產(chǎn)生了時(shí)鐘的不同相位來(lái)采集數(shù)據(jù),最后選擇一個(gè)最合適的相位。
CYCLONE系列的PLL的相位調(diào)整接口時(shí)序如圖2所示,當(dāng)用戶(hù)邏輯控制phasestep, phasecounterselect與phaseupdown信號(hào)時(shí),PLL的輸出時(shí)鐘C0就改變一次相位。在QII生成PLL時(shí),用戶(hù)必須選上create optional inputs for dynamic phase reconfigure,否則缺省是不會(huì)有這些管腳的,如圖3所示。另外必須在output clock tab中寫(xiě)入phase shift step resolution的值,這樣才能確定每次相位調(diào)整的步長(zhǎng)。
應(yīng)用實(shí)例
本例中的參考設(shè)計(jì)采用CYCLONE3器件,與ADI公司的ADS5277接口,已經(jīng)在硬件上測(cè)試過(guò),證明是有效的。ADS5277是一款8通道高速ADC芯片,主要用于超聲設(shè)備以及測(cè)試設(shè)備中。圖4是該參考設(shè)計(jì)電路框圖。
ADS5277送到FPGA的是一個(gè)192MHz的時(shí)鐘,8路LVDS數(shù)據(jù),速率是384Mbps。上電復(fù)位后ADS5277發(fā)送的數(shù)據(jù)是‘0101010101……’,F(xiàn)PGA啟動(dòng)DPA電路,準(zhǔn)確確定時(shí)鐘相位后再通過(guò)控制信號(hào),使得ADS5277發(fā)送‘000000111111……’這樣的PATTERN,F(xiàn)PGA可以確定字的邊界,這一步成功以后,F(xiàn)PGA就可以通過(guò)控制信號(hào)讓ADS5277發(fā)送正常工作時(shí)的數(shù)據(jù),因?yàn)榻?jīng)過(guò)了時(shí)鐘相位調(diào)整這一過(guò)程,以后的數(shù)據(jù)采樣是非常穩(wěn)定的,不會(huì)受到溫度電壓變化來(lái)的影響。
當(dāng)然這個(gè)設(shè)計(jì)可以和所有LVDS發(fā)送芯片接口,并不只限于ADS5277。甚至可以應(yīng)用于ALTERA高端FPGA中,比如STRATIX4的帶有DPA專(zhuān)用電路的管腳只分布在左右BANK,而用到這個(gè)設(shè)計(jì)的話(huà),上下BANK的IO也能使用。DPA設(shè)計(jì)所消耗的邏輯資源是非常小的,選用器件為3C16F256C8, 如表1所示。