基于FPGA的恒溫晶振頻率校準系統(tǒng)的設計
在XILINX公司FPGA的單元結構中,為了實現快速的數學運算設置了許多專用的進位邏輯資源。這些進位邏輯的延時很小,而且它們之間可以相互連接組成進位線,可以使用這種專用的進位線作為延遲線來實現時間內插。如圖3所示,設計中使用了Spartan-3系列的FPGA中專用的進位邏輯逐個連接組成延遲線,一個進位邏輯由查找表(LUT)、專用選通器(MUXCY)和專用異或門(XORCY)三部分構成。其總體結構上類似一個多位二進制加法器,兩個輸入的各位分別被置為1和0,進位信號沒來時加法器各位均為1。當進位信號到來時就會沿著進位線一級一級地傳輸,加法器每一位輸出值的變化就代表著信號的延遲信息,時鐘前沿到達時就可以將這些信息鎖存入觸發(fā)器中。圖4是在一個時鐘周期的仿真中延遲線單元輸出經過的延遲單元的個數,進行直線擬合后的結果為:
所以延遲線單元的測量分辨率約為1/8.257 4=0.121 ns.
1.4 計數器模塊的設計
圖5簡單描述了計數器模塊的基本構造。在計數器模塊的設計中,使用了Spartan-3系列的數字時鐘管理器,主要目的是將晶振時鐘信號倍頻后作為計數器的工作時鐘,保證時鐘周期小于延遲線的總延時。根據時序仿真所確定的延遲線單元的測量分辨率及長度參數,將晶振頻率倍頻為200 MHz。
時鐘前沿附近計數器輸出為亞穩(wěn)態(tài),如果1-pps信號恰好在這個時刻到達,便會將錯誤的計數值鎖存。為了解決這個問題,模塊中使用數字時鐘管理器輸出相位差為180°的兩路時鐘,分別驅動兩個計數器同時工作,這樣無論任何時刻都能保證其中之一的輸出為正確值,之后再對兩者進行判斷選擇。選擇信號由延遲線單元提供,通過統(tǒng)計1-pps信號經過延遲單元的個數來確定1-pps信號與時鐘前沿的時差,然后輸出select信號。
兩個計數器進行循環(huán)計數,每個計數器都連接著兩組寄存器,其中一組將GPS秒脈沖信號作為工作時鐘;另一組的時鐘信號與對應計數器的時鐘相連接,且其使能端與100 kHz分頻信號相連。當GPS秒脈沖和100 kHz信號到來時,便會將計數值送入相應的寄存器組。這樣可以充分利用FPGA的全局時鐘資源,使相應的寄存器組都使用同一時鐘,保證寄存器觸發(fā)的同步性。此外,使用循環(huán)計數的方式也解決了傳統(tǒng)起停型計數器由于啟動和停止信號不滿足建立保持時間而造成計數器輸出錯誤的問題。當1-pps信號與100 kHz信號的前沿都到達后,中斷單元將輸出中斷信號,用于通知PicoBlaze軟核讀取測量結果。
評論