基于數(shù)字移相高精度脈寬測量系統(tǒng)
利用DLL功能可以非??焖俜奖愕貥嫿ㄒ葡嘤嫈?shù)模塊,實現(xiàn)本文前面介紹的測量方法。移相計數(shù)模塊結構如圖5所示。原始時鐘通過CLKDLL處理后得到的相位依次相差90°的四路時鐘輸出為CLK0、CLK90、CLKl80和CLK270,它們分別作為四個相同的16位計數(shù)器的計數(shù)時鐘,待測信號連接計數(shù)器的使能端,同時控制四個計數(shù)器的啟動和停止。有了各計數(shù)器的計數(shù)結果,再通過加法器得到累加的計數(shù)個數(shù),最后計算出信號脈寬值。
本文引用地址:http://www.ex-cimer.com/article/201702/338447.htm |
3仿真和精度分析
圖6給出了FPGA芯片內(nèi)部布線后用Modelsim進行仿真的結果。在RESET后就啟動移相計數(shù)模塊,開始對待測信號進行測量,完成一次測量后產(chǎn)生READY信號,同時輸出測量結果,以供后續(xù)部分使用。仿真的結果證明測試系統(tǒng)達到設計目標。
下面進一步對系統(tǒng)做深入的誤差分析。造成系統(tǒng)測量脈寬誤差的來源主要有系統(tǒng)原理誤差TS、時鐘相移誤差TP和信號延遲誤差Td以及計數(shù)時鐘抖晃TC,如圖7所示。
由前所述,當80MHz晶振時鐘輸入時,系統(tǒng)原理誤差Ts=3.125ns。時鐘相移誤差為從CLKDLL中出來的四路時鐘信號之間本身的相位偏移,根據(jù)芯片提供的參數(shù),其最大TP為200ps。計數(shù)時鐘抖晃是指從CLKDLL中輸出的時鐘信號本身周期的偏差,其最大TC為60ps。由于計數(shù)的時鐘周期數(shù)較多,故平均后其對整個系統(tǒng)的測量誤差影響可以忽略不計。
信號延遲誤差即為由于芯片內(nèi)部各信號傳輸延遲不一致而造成的四個計數(shù)器計數(shù)的同步誤差。為分析該誤差情況,用ISE 5.1提供的Timing Analyzer程序對關鍵路徑做進一步的時間分析,得到的結果如表1所示。
表中第一欄為從CLKDLL中出來的計數(shù)時鐘到各自計數(shù)器的延遲時間,第二欄為用來控制計數(shù)器啟動停止的HF信號到四個計數(shù)器的時間。由于需要的是各計數(shù)時鐘間相對延遲時間,故第三欄給出時鐘相對于HF信號到計數(shù)器的延遲,即為第一欄和第二欄的差值。由此得出信號延遲誤差Td=0.950ns。
故有系統(tǒng)測量誤差T為:
T=TS+TP+Td=4.275ns (2)
即脈寬測量最大誤差為±4.275ns。與脈沖計數(shù)法比較,同樣的80MHz時鐘輸入,最大測量誤差減小到原來的34.2%。
本文在數(shù)字移相技術的基礎上設計了一種高精度的脈寬測量系統(tǒng),使測量精度相對于脈沖計數(shù)法提高了多倍。若需進一步提高這種方法的測量精度,可以通過以下兩個方面進行改進:(1)繼續(xù)提高晶振頻率,尋求速度更快的FPGA芯片。晶振頻率越高,系統(tǒng)原理誤差越小。(2)減小信號延遲誤差。由前面可以看到,信號的延遲誤差對系統(tǒng)精度的影響占了很大的比例。減小各計數(shù)時鐘和待測信號到計數(shù)器的信號延遲的差異,可以有效地提高測量精度。由于FPGA內(nèi)部信號延遲的時間均可以很方便地得到,因此在設計時可以通過調(diào)整內(nèi)部各元件的放置位置以及連線來盡量減小延遲誤差,或者通過添加一些門電路來增加延時以使各信號延遲時間盡可能相同。
評論