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

?

基于FPGA的時間數(shù)字轉(zhuǎn)換器的編碼器

2015-12-19 07:17:18王春娥
關(guān)鍵詞:編碼器

周 磊,王春娥

(1.鹽城工學院 電氣工程學院,江蘇 鹽城 224051;2.鹽城工學院 材料工程學院,江蘇 鹽城 224051)

?

基于FPGA的時間數(shù)字轉(zhuǎn)換器的編碼器

周磊1,王春娥2

(1.鹽城工學院 電氣工程學院,江蘇 鹽城224051;2.鹽城工學院 材料工程學院,江蘇 鹽城224051)

摘要:時間數(shù)字轉(zhuǎn)換器的編碼器需要把溫度計碼轉(zhuǎn)換1-0(0-1)跳變處的二進制位置碼。針對FPGA的查找表結(jié)構(gòu),實現(xiàn)了處理任意2m位溫度計碼的3種行為級編碼器(順序查找法、折半查找法和累加法)和4種數(shù)據(jù)流級編碼器(wallace樹、胖樹、MUX和ROM)的算法描述,并在EP3C25E144I7中實現(xiàn)。通過對比編碼器的LUT使用個數(shù)、最短路徑延時、最長路徑延時和毛刺,發(fā)現(xiàn)在FPGA上性能相近且最優(yōu)的是胖樹結(jié)構(gòu)和ROM結(jié)構(gòu)的編碼器。ROM結(jié)構(gòu)比胖樹結(jié)構(gòu)更易于被編程實現(xiàn)和移植。

關(guān)鍵詞:編碼器;時間數(shù)字轉(zhuǎn)換器;FPGA;胖樹;ROM

基于FPGA(Field Programming Gate Array,現(xiàn)場可編程門陣列)的時間數(shù)字轉(zhuǎn)換器[1-3](Time to Digital Converter, TDC)的基本結(jié)構(gòu)如圖1所示。在確保待測信號s到達延時鏈輸入端的傳輸延時和系統(tǒng)時鐘clk到達寄存器時鐘腳的傳輸延時一致的情況下,經(jīng)過延時鏈的s信號上升沿(下降沿)跳變被寄存器鎖存后的輸出tc[n-1:0]=1111…00000(0000…11111),稱為溫度計碼(Thermometer Code)。tc的1-0(0-1)跳變位置反映了s的跳變沿到時鐘的上升沿之間的延時,由溫度計碼編碼器(Thermometer Code Encoder,TCE)計算出tc跳變沿的位置bg[m-1:0],再累加tc跳變沿之前每個延時單元的延時,可得到s跳變沿到clk上升沿下降沿之間的延時。

延時鏈的總延時tdl大于時鐘周期Tclk時,TDC可以正確鎖存tc。TCE處于鎖存寄存器組和FIFO中間,為滿足寄存器的建立時間和保持時間約束,TCE最大路徑延時應該小于Tclk。由此,TCE的最大路徑延時越小,TDC的死時間越小,fclk就越高,Tclk就越小,tdl就可以越小,延時鏈的長度就可以越短,整個TDC的使用資源就越少,單片F(xiàn)PGA中的TDC通道數(shù)[3-4]就可以越多。而單周期的TCE允許TDC連續(xù)測量。

在ADC(Analog to Digital Converter,模數(shù)轉(zhuǎn)換器)設計中涉及的是16位及以下的TCE,主要實現(xiàn)方法有:Wallace樹[5-6]結(jié)構(gòu)、ROM結(jié)構(gòu)[7]、胖樹結(jié)構(gòu)[8]、MUX結(jié)構(gòu)[9]。設計選擇的目標芯片為Altera公司的EP3C25E144I7,它每個LAB(Logic Array Block,邏輯陣列塊)中有16個LE(Logic Elements,邏輯單元),每個LE由1個LUT(Look Up Table,查找表)和1個觸發(fā)器組成[10]。這就意味著在FPGA中采用任何結(jié)構(gòu)來實現(xiàn)TCE,最終都是由LUT基本單元以及單元之間固定的可編程連線資源構(gòu)成。另外,由于FPGA中延時鏈多采用一列上位置相鄰的LAB中LUT順序級聯(lián)實現(xiàn),單元延時都在ps級別,tc[n-1:0]的長度n=16k(k取決于Tclk,取自然數(shù))位。FPGA固定的連線資源、不變的最小組合邏輯單元LUT和任意的n,要求FPGA中的TCE設計需要對全定制ADC采用的編碼結(jié)構(gòu)進行拓展,找到一種通用性強、人工干預少、糾錯能力強、最大路徑延時小、使用LUT個數(shù)少和毛刺少的編碼算法。

1編碼器的實現(xiàn)

如圖1,TCE的輸入為n位的tc[n-1:0],輸出為m位的bg[m-1:0]。考慮n=16k,以及MUX的結(jié)構(gòu)要求n=2m,設計實現(xiàn)了 k=[1 2 4 8 16 32],m=[4 5 6 7 8 9],n=[16 32 64 128 256 512]這6種情況的TCE,其他n位TCE可按照算法或結(jié)構(gòu)簡單的修改而得到。下文中如沒有特殊說明,n表示輸入的tc位數(shù),m表示輸出的二進制碼bg位數(shù)。

圖1 TDC原理框圖Fig.1 Schematic of TDC

由于隨機噪聲,或者違反時序造成的觸發(fā)器亞穩(wěn)態(tài)現(xiàn)象,在寄存器輸出的tc會有“火花”或者“氣泡”(bubble)現(xiàn)象[7],TCE應該予以考慮。以下算法處理的tc[n-1:0]均是形如1111…00000。

1.1 行為級編碼器

直接從算法的角度來實現(xiàn)TCE,具體的硬件結(jié)構(gòu)完全交給EDA軟件來實現(xiàn),稱為行為級編碼器。

1.1.1順序查找

利用for循環(huán),從tc的第0位依次遍歷到第1個0-1(1-0)跳變的位置,輸出跳變處的位置序號,完成編碼。順序查找算法比較直觀,無需任何外加電路就可以抑制bubble現(xiàn)象,缺點是最大循環(huán)次數(shù)為n次。

1.1.2折半查找

根據(jù)tc的特征,可以使用折半查找法查找0-1(1-0)跳變的位置。折半查找法的循環(huán)次數(shù)最大為m次,但是bubble現(xiàn)象會導致錯誤的輸出,故需要外加電路來消除bubble現(xiàn)象。

1.1.3累加法

通過累加tc中1的個數(shù)來判斷0-1(1-0)跳變的位置實現(xiàn)編碼。累加法需要循環(huán)累加n次,bubble現(xiàn)象引起的誤差在bg上體現(xiàn)為幾個LSB的誤差。

1.2 數(shù)據(jù)流級編碼器

從硬件結(jié)構(gòu)上找到一種最適宜的編碼算法,稱為數(shù)據(jù)流級編碼器。這不僅節(jié)省FPGA資源還能很好地控制最大路徑延時。

1.2.1Wallace 樹結(jié)構(gòu)

類似于1.1.3的累加法,Wallace樹是利用全加器對tc[n-1:0]中的1進行累加,區(qū)別是Wallace樹的每個全加器對應2個LUT,故其使用的資源數(shù)和路徑延時均是可控的。不過要達到最優(yōu)的布局布線結(jié)果,需要人工鎖定每個全加器的位置,增加了其在FPGA中的實現(xiàn)難度。n-1位的Wallace樹結(jié)構(gòu)的TCE如圖2所示,使用的LUT個數(shù)x(m-1)w和關(guān)鍵路徑長度c(m-1)w見公式(1)、(2)。Wallace樹結(jié)構(gòu)不能消除bubble現(xiàn)象帶來的編碼誤差。

圖2 Wallace樹結(jié)構(gòu)TCEFig.2 Wallace-tree TCE

(1)

(2)

1.2.2胖樹結(jié)構(gòu)

胖樹結(jié)構(gòu)TCE需要一個如圖3所示的1-out-of-n碼轉(zhuǎn)換電路,把tc[n-1:0]轉(zhuǎn)換成形如00010…00000的tcln[n-1:0],轉(zhuǎn)換電路可以消除2階及以下的bubble。n位胖樹結(jié)構(gòu)的TCE如公式(3)(4)所示。

(3)

圖3 1-out-of-n 轉(zhuǎn)換電路Fig.3 1-out-of-n circuit

其中OR表示每個元素連續(xù)相或。

tclni與tclni+1之間的關(guān)系如公式(4)所示,tcln0=tcln。

(4)

使用LUT的個數(shù)xmf和關(guān)鍵路徑長度cmf如公式(5)~(7)所示。其中xmff為一級可復用的4輸入LUT個數(shù)。由于在m>6以后會有二級及以下的4輸入LUT復用情況,故xmf與實際的綜合結(jié)果在m>6以后的誤差會有所增大。

(5)

(6)

(7)

1.2.3MUX結(jié)構(gòu)

MUX結(jié)構(gòu)的TCE如公式(8)、(9)所示,它使用2選1選擇器個數(shù)x(m-1)m和關(guān)鍵路徑長度c(m-1)m如公式(10)、(11)所示。MUX結(jié)構(gòu)的缺點是高位的bg扇出數(shù)較多,這個問題在fpga中實現(xiàn)TCE顯得尤為突出。

(8)

其中,tcm=tc,nm=n。

(9)

(10)

(11)

1.2.4ROM結(jié)構(gòu)

ADC設計中的tc經(jīng)過圖3所示的1-out-of-n轉(zhuǎn)換電路轉(zhuǎn)換成tcln后經(jīng)ROM結(jié)構(gòu)編碼為二進制碼。ROM結(jié)構(gòu)實現(xiàn)TCE的算法如公式(12)所示,它使用4輸入或門(1個LUT)個數(shù)xmr和關(guān)鍵路徑長度cmr如公式(6)、(7)所示。

(12)

其中,OR表示多個元素連續(xù)相或,INT表示取整。ROM結(jié)構(gòu)的TCE最大優(yōu)點是,決定bg[i]的邏輯輸入直接取自tcln,并且每個bg[i]邏輯相或的tcln位數(shù)均為2m-1,每個bg[i]的路徑長度均為cmr,這使得ROM結(jié)構(gòu)的TCE具有最小的毛刺和最小的路徑延時。

盡管公式(6)和公式(12)給出的TCE算法不一樣,但是由于bg[i]均是2m-1位tcln相或的結(jié)果,以及FPGA中組合邏輯的基本實現(xiàn)單元是LUT,導致了ROM結(jié)構(gòu)和胖樹結(jié)構(gòu)的TCE的最終布局布線結(jié)構(gòu)非常相似。

2編碼器仿真結(jié)果分析

仿真軟件采用的是64位的Quartus II 13.1和ModelSim 10.2c。目標芯片是Altera 的Cyclone III系列中的EP3C25E144I7,仿真時序采用Fast 1200mV -40C Model,TCE時鐘為250 MHz。采用虛擬管腳和位置鎖定,使得TCE的輸入來自一列觸發(fā)器的輸出,TCE使用緊鄰觸發(fā)器所在列的后2列資源,個別需要3列。

取m∈{4,5,6,7,8,9},從LUT使用個數(shù)、最短路徑延時、最長路徑延時和輸出毛刺4個方面對比3種行為級編碼器:順序查找法(sf)、折半查找法(hf)和累加法(af)和4種數(shù)據(jù)流級編碼器:wallace樹(wt)、胖樹(ft)、MUX結(jié)構(gòu)(mc)和ROM結(jié)構(gòu)(rc),最終仿真結(jié)果如圖4~圖7所示,圖中每條折線均對應著同樣m值的不同編碼算法,相關(guān)的延時數(shù)據(jù)來自于TimeQuest分析。

圖4 使用LUT的個數(shù)Fig.4 The number of 4-LUT

圖5 最短路徑延時Fig.5 The minimum path delay

3結(jié)束語

比較7種TCE實現(xiàn)算法后發(fā)現(xiàn)胖樹結(jié)構(gòu)和ROM結(jié)構(gòu)在FPGA中布局布線的結(jié)果是一致的。圖4中可以看出胖樹結(jié)構(gòu)和ROM結(jié)構(gòu)的TCE使用的LUT個數(shù)均隨m的增加基本呈現(xiàn)倍增關(guān)系;圖5~圖7可以看出胖樹結(jié)構(gòu)和ROM結(jié)構(gòu)的TCE的最短路徑延時、最長路徑延時和毛刺隨m

圖6 最長路徑延時Fig.6 The maximum path delay

圖7 毛刺Fig.7 Noise

的增加變化不是很明顯,這說明胖樹結(jié)構(gòu)和ROM結(jié)構(gòu)在處理超寬位的tc時占絕對優(yōu)勢。對比胖樹結(jié)構(gòu)的算法描述公式(3)、(4)和ROM結(jié)構(gòu)的算法描述公式(12),可以發(fā)現(xiàn)ROM結(jié)構(gòu)的TCE在編程上程序語句更簡練,易于實現(xiàn)和在不同F(xiàn)PGA之間的移植。

參考文獻:

[1]Kalisz J, Szplet R, Pasierbinski J, et al. Field-programmable-gate-array-based time-to-digital converter with 200-ps resolution[J].Instrumentation and Measurement, IEEE Transactions on, IEEE, 1997,46(1):51-55.

[2]Wu Jinyuan, Shi Zonghan, Wang Irena Y. Firmware-only implementation of Time-to-Digital Converter (TDC) in field-programmable gate array (FPGA)[C].Nuclear Science Symposium Conference Record, 2003 IEEE, IEEE, 2003,1:177-181.

[3]Lichard P, Konstantinou G, Vilanueva A V, et al. Performance evaluation of multiple (32 channels) sub-nanosecond TDC implemented in low-cost FPGA[J].Journal of Instrumentation, IOP Publishing for Sissa Medialab, 2014,9(3):C03013.

[4]Buechele M, Fischer H, Gorzellik M, et al. A 128-channel Time-to-Digital Converter (TDC) inside a Virtex-5 FPGA on the GANDALF module[J].Journal of Instrumentation, IOP Publishing for Sissa Medialab, 2012,7(3):3-8.

[5]Wallace C S. A Suggestion for a Fast Multiplier[J].Electronic Computers, IEEE Transactions on, IEEE, 1964,13(1):14-17.

[6]Kaess F, Kanan R, Hochet B, et al. New encoding scheme for high-speed flash ADC's[C].Circuits and Systems, 1997. ISCAS '97., Proceedings of 1997 IEEE International Symposium on. IEEE, 1997,1:5-8.

[7]Padoan S, Boni A, Morandi C, et al. A Novel coding schemes for the ROM of parallel ADCs, featuring reduced conversion noise in the case of single bubbles in the thermometer code[J].Electronics, Circuits and Systems, 1998 IEEE International Conference on. IEEE, 1998,2:271-274.

[8]Lee D,Yoo J,Choi k,et al. Fat tree encoder design for ultra-high speed flash A/D converters[J].IEEE Midwest Symposiumon Circuits & Symposium on. IEEE, 2002,2:II-87-II-90.

[9]Sail E, Vesterbacka M. A multiplexer based decoder for flash analog-to-digital converters[C]∥TENCON 2004. 2004 IEEE Region 10 Conference. IEEE, 2004(4):250-253.

[10]Altera. Cyclone III Device Handbook[EB/OL]. (2012-8).http://www.altera.com.cn/literature/hb/cyc3/cyclone3_handbook.pdf.

FPGA-based Encoder of Time to Digital Converter

ZHOU Lei1, WANG Chun′e2

(責任編輯:李華云)

Abstract:Time to digital converter encoder needs to transform the 1-0 (0-1) jump in thermometer code to the binary position code. For the lookup table structure of FPGA, it describes 3 behavior-level encoders(sequential search method, the binary search and accumulation method) and 4 dataflow-level encoders(Wallace tree, fat tree, MUX and ROM) algorithm, and implements in the EP3C25E144I7. By comparing the number of LUT, the shortest path delay, the longest path delay and noise, it is found that fat-tree and ROM encoder achieve the best performance on the FPGA, and have the similar performance. ROM encoder is easier to be programmed and transplanted. than fat-tree encoder.

Keywords:Encoder; TDC; FPGA; Fat Tree; ROM

作者簡介:周磊(1980-),男,江蘇新沂人,講師,碩士,主要研究方向為EDA技術(shù)與應用。

基金項目:鹽城工學院校級科研項目(XKR2011073);2014年度鹽城工學院校級教改研究項目(JY2014C35)

收稿日期:2014-09-22

中圖分類號:TN791

文獻標識碼:A

文章編號:1671-5322(2015)02-0015-05

doi:10.16018/j.cnki.cn32-1650/n.201502003

猜你喜歡
編碼器
基于FPGA的同步機軸角編碼器
基于雙增量碼道的絕對式編碼器設計
基于PRBS檢測的8B/IOB編碼器設計
JESD204B接口協(xié)議中的8B10B編碼器設計
電子器件(2015年5期)2015-12-29 08:42:24
基于數(shù)字信號處理的脈沖編碼器
多總線式光電編碼器的設計與應用
白河县| 武平县| 梁平县| 乃东县| 内黄县| 凤阳县| 临猗县| 得荣县| 突泉县| 富宁县| 苗栗县| 石楼县| 获嘉县| 河南省| 天全县| 夏河县| 彭水| 股票| 嘉黎县| 屏东市| 塔城市| 穆棱市| 黑河市| 门源| 汉寿县| 个旧市| 宁化县| 泽州县| 师宗县| 西华县| 治多县| 漯河市| 神木县| 泽州县| 泰安市| 朝阳区| 福建省| 海口市| 鱼台县| 桐柏县| 明溪县|