在低端FPGA中實(shí)現LVDS接口設計中的DPA功能
在FPGA中,動(dòng)態(tài)相位調整(DPA)主要是實(shí)現LVDS接口接收時(shí)對時(shí)鐘和數據通道的相位補償,以達到正確接收的目的。ALTERA的高端FPGA,如STRATIX(r) 系列中自帶有DPA電路,但低端的FPGA,如CYCLONE(r)系列中是沒(méi)有的。本文主要闡述如何在低端FPGA中實(shí)現這個(gè)DPA的功能。
本文引用地址:http://dyxdggzs.com/article/190531.htm實(shí)現架構
在LVDS輸入接收時(shí),時(shí)鐘和數據的相位可能是不確定的,因此我們需要將時(shí)鐘的相位作出調整,使得時(shí)鐘能穩定的采集到輸入數據。工作的核心就是用鎖相環(huán)PLL的相位調整功能,產(chǎn)生若干個(gè)時(shí)鐘的不同相位,看哪些相位能準確的采集到輸入數據,然后取窗口中間的一個(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è)設計的基本結構,通過(guò)PLL調整相位的接口,產(chǎn)生了時(shí)鐘的不同相位來(lái)采集數據,最后選擇一個(gè)最合適的相位。
CYCLONE系列的PLL的相位調整接口時(shí)序如圖2所示,當用戶(hù)邏輯控制phasestep, phasecounterselect與phaseupdown信號時(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的值,這樣才能確定每次相位調整的步長(cháng)。
應用實(shí)例
本例中的參考設計采用CYCLONE3器件,與ADI公司的ADS5277接口,已經(jīng)在硬件上測試過(guò),證明是有效的。ADS5277是一款8通道高速ADC芯片,主要用于超聲設備以及測試設備中。圖4是該參考設計電路框圖。
ADS5277送到FPGA的是一個(gè)192MHz的時(shí)鐘,8路LVDS數據,速率是384Mbps。上電復位后ADS5277發(fā)送的數據是‘0101010101……’,FPGA啟動(dòng)DPA電路,準確確定時(shí)鐘相位后再通過(guò)控制信號,使得ADS5277發(fā)送‘000000111111……’這樣的PATTERN,FPGA可以確定字的邊界,這一步成功以后,FPGA就可以通過(guò)控制信號讓ADS5277發(fā)送正常工作時(shí)的數據,因為經(jīng)過(guò)了時(shí)鐘相位調整這一過(guò)程,以后的數據采樣是非常穩定的,不會(huì )受到溫度電壓變化來(lái)的影響。
當然這個(gè)設計可以和所有LVDS發(fā)送芯片接口,并不只限于A(yíng)DS5277。甚至可以應用于A(yíng)LTERA高端FPGA中,比如STRATIX4的帶有DPA專(zhuān)用電路的管腳只分布在左右BANK,而用到這個(gè)設計的話(huà),上下BANK的IO也能使用。DPA設計所消耗的邏輯資源是非常小的,選用器件為3C16F256C8, 如表1所示。
評論