国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA 的TDC 測量中占用資源的研究

2022-12-20 07:07:02張雄林王文俊柏森洋
關(guān)鍵詞:計數(shù)法數(shù)目間隔

張雄林, 王文俊, 柏森洋

(中國兵器裝備集團 自動化研究所有限公司, 四川 綿陽 621000)

0 引言

所謂時間間隔就是一個事物持續(xù)的時間, 而時間是一個不可逆的物理量, 所以在時間頻率測量領(lǐng)域通常將時間信息轉(zhuǎn)換為可以觀測的物理量, 通過比對兩者之間的關(guān)系來實現(xiàn)對時間間隔的精密測量。 最常見的轉(zhuǎn)換方式就是將時間信號轉(zhuǎn)換為電信號, 再將攜帶時間信息的模擬信號轉(zhuǎn)換為數(shù)字信號,這也就是我們常說的時間-數(shù)字轉(zhuǎn)換(Time Interval Convert,TDC)過程。

隨著電子技術(shù)的蓬勃發(fā)展, 對時間間隔進(jìn)行精確測量的技術(shù)方法在導(dǎo)航、通信、光學(xué)測量、微電子等領(lǐng)域愈發(fā)成熟,基于FPGA 的TDC 設(shè)計也得到廣泛應(yīng)用。 然而目前對于基于FPGA 的TDC 技術(shù)研究,國內(nèi)外研究人員大多對TDC 的某一方面進(jìn)行研究。 普遍存在對于影響系統(tǒng)穩(wěn)定性的因素沒有得到解決導(dǎo)致TDC 精度較差以及TDC 系統(tǒng)占用FPGA 的邏輯資源過多以至于設(shè)計的TDC實用價值過低兩個問題。

本文針對項目過程中遇到以上問題提出利用改變進(jìn)位鏈中部分信號傳遞方式從而減少TDC 在FPGA 中占用過多資源的問題。

1 測量方法

時間間隔測量的基本原理是利用小時間間隔來測量大時間。 其方法根據(jù)適用的場合不同也分為多種:以直接計數(shù)法為代表的測量范圍大但無法達(dá)到理想分辨率的測量方法, 以及以內(nèi)插法為代表的測量分辨率能夠達(dá)到一個較高值但測量范圍受到限制的方法。

為了實現(xiàn)工程需要, 項目中通常采用將這兩種測量方法相結(jié)合的方式進(jìn)行設(shè)計。 將整個系統(tǒng)分為“粗”測量模塊和“細(xì)”測量模塊兩部分。

1.1 “粗”測量方法

“粗”測量是通過直接計數(shù)法來完成的,即測量出待測的兩個信號上升沿之間的時間間隔T 內(nèi)包含的計數(shù)器時鐘CLK 的時鐘周期數(shù)目N。 待測的時間間隔是由起始信號和終止信號兩部分組成的,當(dāng)時鐘周期為TCLK 時,起始信號的上升沿和終止信號的上升沿之前的時間間隔T 可以表示為:

其主要用于提高TDC 的測量周期。其原理圖見圖1。

圖1 “粗”測量原理

1.2 “細(xì)”測量方法

“細(xì)”測量采用以延遲為基礎(chǔ)的內(nèi)插法。 由于直接計數(shù)法無法對起始信號的上升沿與緊隨其后的計數(shù)器上升沿之間很小的時間間隔信號△t1,起始信號的上升沿與緊隨其后的計數(shù)器上升沿之間很小的時間間隔信號△t2,為提高精度,需要將這一小段時間進(jìn)行量化。以延遲為基礎(chǔ)的內(nèi)插法就時將數(shù)個延遲單元用特定技術(shù)將其級聯(lián)起來,再將待測時間間隔引入到該延遲鏈中,在接收到被測信號的起始信號時啟動延遲鏈, 信號依次通過延遲單元進(jìn)行傳遞,在接收到終止信號時關(guān)閉延遲鏈。此時信號會停留在延遲鏈上的某一延遲單元, 通過記錄此延遲單元的位置以及走過的延遲單

元數(shù)目即可知道被測信號時間間隔的長度。 其測量原理見圖2。

圖2 “細(xì)”測量原理

2 基于FPGA 的進(jìn)位鏈實現(xiàn)TDC

現(xiàn)場可編程門陣列(FPGA)是現(xiàn)階段數(shù)字設(shè)計應(yīng)用最廣的硬件平臺,它具有開發(fā)成本低,可以重復(fù)擦除和重寫,編寫軟件方便快捷等特點。 FPGA 內(nèi)部是由7 部分組成:可編程輸入輸出單元IOB、基本可編程邏輯單元CLB、豐富的布線、 時鐘數(shù)字管理模塊DCM、 嵌入塊式RAM/ROM 等。以Xilinx 公司的FPGA 為例,其基本的邏輯單元為CLB,每一個CLB 包含一個或兩個切片(Slice),每個切片提供8 個6 輸入的查找表(LUT)、16 個觸發(fā)器以及一個進(jìn)位鏈,切片中的查找表按列排列,見圖3。

圖3 FPGA 進(jìn)位鏈結(jié)構(gòu)

FPGA 內(nèi)部有許多底層邏輯單元,如LCELL 緩沖單元,非門邏輯單元等,可以串聯(lián)起來構(gòu)建延時鏈,但由于編譯器在執(zhí)行編譯過程中對邏輯單元所使用的布局布線資源的分配是自動完成的,不收人為干預(yù),所以往往得到的結(jié)果不收設(shè)計者所期望的。 如果邏輯單元數(shù)目較少,那么可以通過手動更改布局布線方式來完成,但面對數(shù)百個單元需要更改位置,需要的工作量非常大,而且很容易出錯,解決這一問題的方法就是利用級聯(lián)鏈、進(jìn)位鏈和寄存器陣列等部件構(gòu)建延時鏈。

延遲單元模塊由FPGA 內(nèi)部的加法進(jìn)位鏈來實現(xiàn),信號經(jīng)過加法進(jìn)位鏈中的進(jìn)位單元時會產(chǎn)生皮秒級別的延遲。 然后利用D 觸發(fā)器對延時不同的信號進(jìn)行鎖存,進(jìn)而可以得知被測信號到時鐘上升沿之間延遲單元的數(shù)目。 信號經(jīng)過D 觸發(fā)器時可能會產(chǎn)生亞穩(wěn)態(tài)現(xiàn)象,因此本系統(tǒng)采用兩級D 觸發(fā)器來避免亞穩(wěn)態(tài)的影響。

信號在經(jīng)過D 觸發(fā)器后的表示形式是延遲單元數(shù)目的溫度計碼形式,為了方便數(shù)據(jù)的處理,需要利用編碼電路將溫度計碼轉(zhuǎn)換為二進(jìn)制碼。 由于超前進(jìn)位鏈的存在,該溫度計碼不是嚴(yán)格的溫度計碼。采用二分法進(jìn)行計數(shù)會漏掉一部分?jǐn)?shù)據(jù), 直接對1 的數(shù)目進(jìn)行計數(shù)占用資源又過多。 因此本文的編碼電路采用二分法和直接計數(shù)法相結(jié)合的方法對溫度計碼進(jìn)行轉(zhuǎn)換。 具體做法是二進(jìn)制碼的最后2 位由直接計數(shù)法得到,其余位由二分法來得到。

3 系統(tǒng)測試與改進(jìn)

3.1 設(shè)計優(yōu)化

基于項目應(yīng)用需要, 實際設(shè)計過程中FPGA 中能夠給TDC 調(diào)用的資源有限,同時項目對時間間隔分辨率的要求也不高。 項目所用到的 “粗” 測量時鐘的頻率為400MHZ,即一個時鐘周期為2.5ns,為了實現(xiàn)“粗”“細(xì)”相結(jié)合的測量方法, 需要設(shè)計的 “細(xì)” 測量周期需滿足╭2.5ns。 然而經(jīng)過信號在FPGA 內(nèi)部經(jīng)過一個邏輯單元所用的時間大概為50ps,達(dá)到需求需要調(diào)用邏輯單元數(shù)N1為:

N1=2.5ns÷50ps≈50

占用資源過大。此外,項目所用FPGA 的CLB 一列邏輯單元數(shù)為20 個, 這就意味著如果想要調(diào)用全部50 個邏輯單元,需要進(jìn)行換列操作,而信號經(jīng)過不同列之間的邏輯單元的時間間隔和同列間的時間間隔是不一致的,這勢必會對TDC 的測量精度產(chǎn)生影響。

為了能夠減少誤差并且降低FPGA 實現(xiàn)TDC 功能時所調(diào)用的資源, 需要增加信號在FPGA 進(jìn)位鏈中每一邏輯模塊的留存時間。 在進(jìn)位鏈第一個全加器處的進(jìn)位信號不直接進(jìn)入下一級,而是通過C0 輸出,經(jīng)過外部的延時電路再從下一級的S1 口輸入,這樣會使整個過程多出一段輸入信息在進(jìn)位鏈外的時間。 通過這種方式可以將TDC 模塊的分辨率縮小, 達(dá)到分辨率要求所需的級數(shù)也相應(yīng)的減少, 從而降低了FPGA 實現(xiàn)TDC 功能時所占用的系統(tǒng)資源總量。

根據(jù)上述分析所設(shè)計的進(jìn)位鏈部分軟件程序,見圖4。

3.2 測試仿真

根據(jù)圖4所設(shè)計的軟件利用Vivado 軟件進(jìn)行仿真可以得到, 經(jīng)過處理后的邏輯模塊中一段信號的通過時間為297ps。根據(jù)之前的分析修改后需要的Slice 邏輯單元數(shù)目N2為:

圖4 進(jìn)位鏈關(guān)鍵部分軟件

N2=2.5ns÷297ps≈9

可見實現(xiàn)TDC 實際功能所需的邏輯模塊數(shù)目大幅減少, 且此數(shù)目小于CLB 一列所包含的邏輯單元數(shù)目,不需要再考慮換列對時間間隔測量精度的影響。 設(shè)計仿真結(jié)果見圖5、圖6。 通過Xilinx 公司系列FPGA 進(jìn)行所提設(shè)計方法的實驗驗證,取得的結(jié)果與仿真結(jié)果相仿,說明本文所提設(shè)計思路有效解決了在分辨率要求不高時TDC 在FPGA 中所占用資源過大的問題。

圖5 軟件設(shè)計仿真

圖6 時間間隔仿真結(jié)果

4 結(jié)論

本文設(shè)計了基于FPGA 的TDC,并利用進(jìn)位鏈內(nèi)外信號轉(zhuǎn)換有效解決了進(jìn)位鏈過于占用系統(tǒng)資源導(dǎo)致實際應(yīng)用過程中使用效果不佳的問題。 并基于Xilinx 公司系列FPGA 利用Vivado 軟件進(jìn)行數(shù)據(jù)仿真, 實際測得經(jīng)過優(yōu)化后的進(jìn)位鏈在資源占用方面得到明顯優(yōu)化,為FPGA其他功能的實現(xiàn)節(jié)省出足夠的資源。

猜你喜歡
計數(shù)法數(shù)目間隔
有機物“同分異構(gòu)體”數(shù)目的判斷方法
顯微鏡手工計數(shù)法在低值血小板計數(shù)中的應(yīng)用
間隔問題
神奇的計數(shù)法
間隔之謎
“宇宙之大,粒子之微”盡顯“科學(xué)計數(shù)法”的魅力
《哲對寧諾爾》方劑數(shù)目統(tǒng)計研究
牧場里的馬
時變計數(shù)法模型及其驗證
上樓梯的學(xué)問
中超| 大方县| 衡东县| 扎赉特旗| 江油市| 海淀区| 崇信县| 海宁市| 卢湾区| 镇江市| 温宿县| 马尔康县| 凤阳县| 南溪县| 临江市| 巴塘县| 河间市| 平阴县| 皮山县| 景宁| 金山区| 黎川县| 沂南县| 竹山县| 团风县| 上饶县| 乌拉特中旗| 沙洋县| 陈巴尔虎旗| 海淀区| 迭部县| 平舆县| 枣阳市| 五家渠市| 霞浦县| 金沙县| 酉阳| 山西省| 徐州市| 定兴县| 宁波市|