APP下载

基于FPGA的时间数字转换器的编码器

2015-12-19王春娥

关键词:编码器

周 磊,王春娥

(1.盐城工学院 电气工程学院,江苏 盐城 224051;2.盐城工学院 材料工程学院,江苏 盐城 224051)



基于FPGA的时间数字转换器的编码器

周磊1,王春娥2

(1.盐城工学院 电气工程学院,江苏 盐城224051;2.盐城工学院 材料工程学院,江苏 盐城224051)

摘要:时间数字转换器的编码器需要把温度计码转换1-0(0-1)跳变处的二进制位置码。针对FPGA的查找表结构,实现了处理任意2m位温度计码的3种行为级编码器(顺序查找法、折半查找法和累加法)和4种数据流级编码器(wallace树、胖树、MUX和ROM)的算法描述,并在EP3C25E144I7中实现。通过对比编码器的LUT使用个数、最短路径延时、最长路径延时和毛刺,发现在FPGA上性能相近且最优的是胖树结构和ROM结构的编码器。ROM结构比胖树结构更易于被编程实现和移植。

关键词:编码器;时间数字转换器;FPGA;胖树;ROM

基于FPGA(Field Programming Gate Array,现场可编程门阵列)的时间数字转换器[1-3](Time to Digital Converter, TDC)的基本结构如图1所示。在确保待测信号s到达延时链输入端的传输延时和系统时钟clk到达寄存器时钟脚的传输延时一致的情况下,经过延时链的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的使用资源就越少,单片FPGA中的TDC通道数[3-4]就可以越多。而单周期的TCE允许TDC连续测量。

在ADC(Analog to Digital Converter,模数转换器)设计中涉及的是16位及以下的TCE,主要实现方法有:Wallace树[5-6]结构、ROM结构[7]、胖树结构[8]、MUX结构[9]。设计选择的目标芯片为Altera公司的EP3C25E144I7,它每个LAB(Logic Array Block,逻辑阵列块)中有16个LE(Logic Elements,逻辑单元),每个LE由1个LUT(Look Up Table,查找表)和1个触发器组成[10]。这就意味着在FPGA中采用任何结构来实现TCE,最终都是由LUT基本单元以及单元之间固定的可编程连线资源构成。另外,由于FPGA中延时链多采用一列上位置相邻的LAB中LUT顺序级联实现,单元延时都在ps级别,tc[n-1:0]的长度n=16k(k取决于Tclk,取自然数)位。FPGA固定的连线资源、不变的最小组合逻辑单元LUT和任意的n,要求FPGA中的TCE设计需要对全定制ADC采用的编码结构进行拓展,找到一种通用性强、人工干预少、纠错能力强、最大路径延时小、使用LUT个数少和毛刺少的编码算法。

1编码器的实现

如图1,TCE的输入为n位的tc[n-1:0],输出为m位的bg[m-1:0]。考虑n=16k,以及MUX的结构要求n=2m,设计实现了 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可按照算法或结构简单的修改而得到。下文中如没有特殊说明,n表示输入的tc位数,m表示输出的二进制码bg位数。

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

由于随机噪声,或者违反时序造成的触发器亚稳态现象,在寄存器输出的tc会有“火花”或者“气泡”(bubble)现象[7],TCE应该予以考虑。以下算法处理的tc[n-1:0]均是形如1111…00000。

1.1 行为级编码器

直接从算法的角度来实现TCE,具体的硬件结构完全交给EDA软件来实现,称为行为级编码器。

1.1.1顺序查找

利用for循环,从tc的第0位依次遍历到第1个0-1(1-0)跳变的位置,输出跳变处的位置序号,完成编码。顺序查找算法比较直观,无需任何外加电路就可以抑制bubble现象,缺点是最大循环次数为n次。

1.1.2折半查找

根据tc的特征,可以使用折半查找法查找0-1(1-0)跳变的位置。折半查找法的循环次数最大为m次,但是bubble现象会导致错误的输出,故需要外加电路来消除bubble现象。

1.1.3累加法

通过累加tc中1的个数来判断0-1(1-0)跳变的位置实现编码。累加法需要循环累加n次,bubble现象引起的误差在bg上体现为几个LSB的误差。

1.2 数据流级编码器

从硬件结构上找到一种最适宜的编码算法,称为数据流级编码器。这不仅节省FPGA资源还能很好地控制最大路径延时。

1.2.1Wallace 树结构

类似于1.1.3的累加法,Wallace树是利用全加器对tc[n-1:0]中的1进行累加,区别是Wallace树的每个全加器对应2个LUT,故其使用的资源数和路径延时均是可控的。不过要达到最优的布局布线结果,需要人工锁定每个全加器的位置,增加了其在FPGA中的实现难度。n-1位的Wallace树结构的TCE如图2所示,使用的LUT个数x(m-1)w和关键路径长度c(m-1)w见公式(1)、(2)。Wallace树结构不能消除bubble现象带来的编码误差。

图2 Wallace树结构TCEFig.2 Wallace-tree TCE

(1)

(2)

1.2.2胖树结构

胖树结构TCE需要一个如图3所示的1-out-of-n码转换电路,把tc[n-1:0]转换成形如00010…00000的tcln[n-1:0],转换电路可以消除2阶及以下的bubble。n位胖树结构的TCE如公式(3)(4)所示。

(3)

图3 1-out-of-n 转换电路Fig.3 1-out-of-n circuit

其中OR表示每个元素连续相或。

tclni与tclni+1之间的关系如公式(4)所示,tcln0=tcln。

(4)

使用LUT的个数xmf和关键路径长度cmf如公式(5)~(7)所示。其中xmff为一级可复用的4输入LUT个数。由于在m>6以后会有二级及以下的4输入LUT复用情况,故xmf与实际的综合结果在m>6以后的误差会有所增大。

(5)

(6)

(7)

1.2.3MUX结构

MUX结构的TCE如公式(8)、(9)所示,它使用2选1选择器个数x(m-1)m和关键路径长度c(m-1)m如公式(10)、(11)所示。MUX结构的缺点是高位的bg扇出数较多,这个问题在fpga中实现TCE显得尤为突出。

(8)

其中,tcm=tc,nm=n。

(9)

(10)

(11)

1.2.4ROM结构

ADC设计中的tc经过图3所示的1-out-of-n转换电路转换成tcln后经ROM结构编码为二进制码。ROM结构实现TCE的算法如公式(12)所示,它使用4输入或门(1个LUT)个数xmr和关键路径长度cmr如公式(6)、(7)所示。

(12)

其中,OR表示多个元素连续相或,INT表示取整。ROM结构的TCE最大优点是,决定bg[i]的逻辑输入直接取自tcln,并且每个bg[i]逻辑相或的tcln位数均为2m-1,每个bg[i]的路径长度均为cmr,这使得ROM结构的TCE具有最小的毛刺和最小的路径延时。

尽管公式(6)和公式(12)给出的TCE算法不一样,但是由于bg[i]均是2m-1位tcln相或的结果,以及FPGA中组合逻辑的基本实现单元是LUT,导致了ROM结构和胖树结构的TCE的最终布局布线结构非常相似。

2编码器仿真结果分析

仿真软件采用的是64位的Quartus II 13.1和ModelSim 10.2c。目标芯片是Altera 的Cyclone III系列中的EP3C25E144I7,仿真时序采用Fast 1200mV -40C Model,TCE时钟为250 MHz。采用虚拟管脚和位置锁定,使得TCE的输入来自一列触发器的输出,TCE使用紧邻触发器所在列的后2列资源,个别需要3列。

取m∈{4,5,6,7,8,9},从LUT使用个数、最短路径延时、最长路径延时和输出毛刺4个方面对比3种行为级编码器:顺序查找法(sf)、折半查找法(hf)和累加法(af)和4种数据流级编码器:wallace树(wt)、胖树(ft)、MUX结构(mc)和ROM结构(rc),最终仿真结果如图4~图7所示,图中每条折线均对应着同样m值的不同编码算法,相关的延时数据来自于TimeQuest分析。

图4 使用LUT的个数Fig.4 The number of 4-LUT

图5 最短路径延时Fig.5 The minimum path delay

3结束语

比较7种TCE实现算法后发现胖树结构和ROM结构在FPGA中布局布线的结果是一致的。图4中可以看出胖树结构和ROM结构的TCE使用的LUT个数均随m的增加基本呈现倍增关系;图5~图7可以看出胖树结构和ROM结构的TCE的最短路径延时、最长路径延时和毛刺随m

图6 最长路径延时Fig.6 The maximum path delay

图7 毛刺Fig.7 Noise

的增加变化不是很明显,这说明胖树结构和ROM结构在处理超宽位的tc时占绝对优势。对比胖树结构的算法描述公式(3)、(4)和ROM结构的算法描述公式(12),可以发现ROM结构的TCE在编程上程序语句更简练,易于实现和在不同FPGA之间的移植。

参考文献:

[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技术与应用。

基金项目:盐城工学院校级科研项目(XKR2011073);2014年度盐城工学院校级教改研究项目(JY2014C35)

收稿日期:2014-09-22

中图分类号:TN791

文献标识码:A

文章编号:1671-5322(2015)02-0015-05

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

猜你喜欢

编码器
融合CNN和Transformer编码器的变声语音鉴别与还原
编码器在门座式起重机中的应用与维修
舞台机械技术与设备系列谈(二)
——编码器
基于双增量码道的绝对式编码器设计
基于数字信号处理的脉冲编码器
光电编码器故障诊断技术研究现状与展望