基于Wallace树结构的温度计码解码器设计说明书_第1页
基于Wallace树结构的温度计码解码器设计说明书_第2页
基于Wallace树结构的温度计码解码器设计说明书_第3页
基于Wallace树结构的温度计码解码器设计说明书_第4页
基于Wallace树结构的温度计码解码器设计说明书_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

盐城工学院本科生毕业设计说明书(2015)基于wallace树结构的温度计码解码器设计摘 要:为了扩大时间数据转换的测量范围并提高其分辨率,确保时间测量结果的正确有效,本文介绍了一种基于Wallace结构的温度计码解码器。实现解码器解码的方法是利用wallace树结构来计算温度计码比较器的输出1的位置。用一个ones-counter可以快速融入到全面的气泡纠错中,同时结合 FPGA内部的Lcell的延时单元的方法可以缩小硬件电路的规模以降低成本。通过VHDL语言编写设计程序并进行了仿真,得出了仿真图并对其进行了分析。本文主要设计了8位、16位、32位、64位等基于wallace树结构温度计码解码器并进行了说明和仿真。本设计方法相较于传统的设计方法, wallace树温度计码解码器能够引入额外的气泡纠错电路, 这使得解码器运行速度快,分辨率高, 误码率低。关键词:Wallace tree;温度计码解码器;FPGA;VHDLA Design of Thermometer code Decoder Based on Wallace TreeAbstract:To enlarge the measuring range of time data transformation and improve the resolution, to ensure that the correct effective temperature measurement results, In this paper, a thermometer decoder based on Wallace tree is presented. An attractive approach for realizing the decoder is to count the ones in the thermometer coded comparator outputs with a Wallace tree. Such a ones-counter can be fast and it incorporate global bubble error correction.At the same time, the method of the delay element of the Lcell inside the FPGA reduces the scale of the circuit to Reduce the cost. Through the VHDL language, the design program is written, and the simulation is carried out. The simulation map is obtained and the simulation chart is analyzed.The 8bit, 16bit, 32bit, 64 bit thermometer code decoder based on Wallace tree are introduced and simulated. The design method of phase, compared with the traditional design method , for the same hardware cost, or less, as for the Wallace tree decoder, which have the extra bubble error correction. This makes the wallace tree decoder not only attractive to high-speed applications, but also to applications where low bit error rate and high resolution is crucial.Keywords: Wallace tree; thermometer code decoder; VHDL;FPGA目 录1 概述11.1 研究背景及意义11.2 研究现状11.3 VHDL语言与EDA软件21.4 本文主要研究内容与设计要求32 系统总体设计42.1 延时链测量原理42.2 温度计码的由来42.3 亚稳态42.4 系统的总体设计43 设计实现73.1 8位温度计码解码器的实现73.2 16位温度计码解码器的实现103.3 32位温度计码解码器的实现123.4 64位温度计码解码器的实现143.5 128位温度计码解码器的实现143.6 阻止亚稳态传播154 系统仿真174.1 8位WALLACE结构的温度计码的解码的仿真174.2 16位WALLACE结构的温度计码的解码的仿真174.3 32位WALLACE结构的温度计码的解码的仿真184.4 64位WALLACE结构的温度计码的解码的仿真194.5 128位WALLACE结构的温度计码的解码的仿真205 总结与展望21参考文献22致 谢24附 录25附录一: 16位technology视图25附录二: 32位technology视图26附录三: 64位technology视图28附录四: 128位technology视图30附录五: 基于wallace树结构的温度计码解码器设计源程序338位温度计码解码器源程序3316位温度计码解码器源程序3432位温度计码解码器源程序3564位温度计码解码器源程序37128位温度计码解码器源程序3801 概述1.1 研究背景及意义在电子信息及计算机技术快速发展的今天,在国家的很多领域需要高精密测量的技术支撑,而其中一种很重要的技术就当属于时间间隔测量技术,特别是对高分辨率、高精度的编码和解码技术的研究具有及其高的价值,不管是在信息通讯技术、电子仪表仪器方面、GPRS技术、航天和航空领域、天文领域,还是检测计量和电子技术等方面都必须要依靠高精度的信号编码和解码技术。时间测量技术的编码和解码是以比较平稳的周期性信号为基础,用标准周期倍数或者是分数作为时间单位来完成编码和解码的工作。而信号的编码或者解码技术是以时间间隔测量作为基础,一般我们测量时间有很多方式,比如钟表、原子钟表还有古代用于计时的沙漏等不同方式。国家日益富强,科学生产力也在不断提高,同时信息技术也有了质的飞跃,人们经过研究以时间为基本单位推出了一个新的物理量频率,后来人们在日常生产生活当中对频率的准确度和精度要求更加高,即对时间(或频率)测量的精度和分辨率的提出要求在不断提高。在激光测距中,其主要是通过测量电磁波所发射出去波与反射回来的波之间时间,来完成被测物之间的距离,测量距离的精度取决于时间测量的精度。现在高精度时间的间隔测量已成为军事通信、卫星定位等航空航天和国防军事中不可或缺的关键技术。在可编程逻辑器件(FPGA)单片上实现时间间隔测量已有大量成功的例子,相对于传统的设计方法,应用FPGA技术除了具有测量的准确度高和设备的稳定性强等优点外,设备比较稳定易扩展,更有系统较高的集成度、简单灵活、面积小、方便升级和价格低等优点,所以通过在 FPGA中编写程序实现高分辨率高精度的时间间隔测量具有重要意义。1.2 研究现状在经济和科技迅速发展的今天,高精度数字化的时间测量技术激光测距,军事上、化工上、医疗上、相位检测和测量频率方面以及电气工程及其自动化领域得到极其广泛的应用。亚洲、日本和美国、欧洲等国家都在时间间隔测量领域花了很多精力作了大量的研究和投入,在集成电路领域他们有很大优势,于是利用这个优势发展研究了相对成熟、相对较高分辨率的时间间隔测量技术,采用IC方法实现了TDC( Time to Digital Converter)。在美国每年举办一次的的PTTI年会都会对时间间隔测量开展专题讨论和研究,United States National Academy of Sciences(美国国家科学院)把它作为国家国防力量评估的重要指标,与此同时把这项技术列为国家重点发展的科学技术。相对的,我们国在这方面的技术的发展是相对落后的,一方面的原因是国外对 VLSI 技术的控制十分严格,我们国家缺少许多的技术交流和技术支持,完全是在几乎为零基础上开展研究的;另一方面主要的原因是由于当时国家社会发展滞后,我们对VLSI技术的研究太晚,一直到最近十多年才开始有相关教授或者专家来进行研究。在我国基于FPGA实现的时间间隔测量设计也有很多优秀成果,刘莉用 FPGA所设计的“游标时间内插器”测的时间分辨率可达到1ns;周渭在时间和频率的测量方面也做了深入的研究,在时间内插的方法上,使用量化时延技术可实现400ps的测量时间分辨率。10MHz石英晶体振荡器参数如下:显示6位LED时基精度10MHz+-30ppm;测量范围0-9999.9us;工作温度0-40摄氏度;相对湿度80%;计时分辨率0.1us。1.3 VHDL语言与EDA软件VHDL语言的语法和定义都是为硬件行为服务的,它和我们平常使用的C语言等语言不一样,因为VHDL此类语言主要是应用在硬件上,语言要被翻译成硬件电路运行。VHDL语言基本结构主要包括如下:赋值语句;数据流控制语句;模块化设计语句;仿真语句。随着vhdl的应用逐步深入,人们发现使用这种语言很方便。归纳起来VHDL 语言主要具有以下几个优点:a. VHDL 语言功能强大,覆盖面广VHDL具有较强的语法结构,只需要几句就可以描述硬件。同时有多层次设计描述功能。VHDL 语言设计方法灵活多样。主要有自顶向下的设计和自底向上的设计方法; 同时它还支持模块化设计和层次化设计方法。b. VHDL 语言易于理解我们读者在阅览VHDL语言时很容易理解。而且它可以被计算机接收。用VHDL语言写的源程序,它可以是工程师之间交换信息的文件,又可作为签约者相互交流的文件。c. VHDL 语言具有很强的移植能力VHDL 语言良好的可移植性体现在: 对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。本论文做的基于Wallace结构的温度计码解码器的设计主要是使用硬件描述语言VHDL进行编写,并且要进行综合仿真,因此要用到阿尔特拉公司的综合开发仿真软件Quartus13.1,同时使用专业软件Modelsim仿真。a.Quartus软件众所周知,在民用消费领域有两个生产巨头分别是阿尔特拉和赛灵思,而Quartus II 是阿尔特拉公司的综合性开发软件,原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,从设计到配置硬件的完整设计流程, 13.1版本是最后一个支持在Quaruts中进行时序仿真和功能仿真的版本了,13.1之后的版本取消了该项功能。此外,支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台,因此在本次设计中我们使用了Quartus软件。b.Modelsim软件Quaruts主要是一个FPGA开发软件,他的中心是在FPGA综合设计上,因此仿真不是他的强项,Quaruts主要是提供一些简单的基础的仿真,复杂的仿真显然并不在行,因此我们要想要完整的高功能的进行仿真,还需要Modesim来完成这个工作。ModelSim是一个比较优秀的仿真软件,仿真环境很友好。是业界唯一混合仿真的仿真器。它使用用优化的编译技术、Tcl/Tk技术,个性化的图形界面和用户接口。1.4 本文主要研究内容与设计要求基于FPGA的时间数字转换器在确保待测信号s到达延时链输入端的传输延时和系统时钟clk到达寄存器时钟脚的传输延时一致的情况下,经过延时链的s信号上升沿(下降沿)跳变被寄存器锁存后的输出温度计码。温度计码的1-0(0-1)跳变位置反映了s的跳变沿到时钟的上升沿之间的延时,由温度计码编码器计算出跳变沿的位置,然后累加跳变沿之前的每个延时单元的延时,可得到s跳变沿到clk上升沿之间的延时。时间数字转换器的编码器需要把温度计码转换1-0(0-1)跳变处的二进制位置码。针对FPGA的查找表结构,实现了处理任意2m位温度计码的基于Wallace树结构的温度计码解码器的设计。并在Quartus II+ModelSim仿真平台中进行验证。2 系统总体设计2.1 延时链测量原理该方法用于测量s信号的上升沿(下降沿)距离时钟clk的上升沿的时间差。在确保待测信号s到达延时链输入端的传输延时和系统时钟clk到达寄存器时钟脚的传输延时一致的情况下,s信号经过延迟单元延时后,出现在第1个延迟单元的输出端,每经一个,下一延迟单元输出端子就会出现上升沿(或者下降沿)的信号,而当时钟的信号上升沿来到时候,如果此时事件信号是高电平时,同步器将产生锁存的信号,而锁存的过程耗时也就等于补偿了延迟。锁存信号的上升沿锁定事件信号将经过各个延迟单元后。这个现象和水银柱型温度计表示温度类似,所以称Qi的编码是温度计编码。温度计码是一连串的高低电平信号。例如,信号s的上升沿(下降沿)经过延时链,延时链的输出为111.10.0(000.01.1)的二进制温度计吗。温度计码的1-0(0-1)跳变位置反映了s的跳变沿到时钟的上升沿之间的延时。由温度计码编码器经过计算,得出“1”(“0”)的个数,然后根据“1”(“0”)的个数累加跳变沿之前的每个延时单元的延时,计算出出跳变沿的位置,可得到s跳变沿到clk上升沿之间的延时。 如图2-1所示。图2-1 延时链测量原理2.2 温度计码的由来基于 FPGA(Field Programming Gate Array,现场可编程门阵列)的时间数字转换器1-3(Time to Digital Converter, TDC)的基本结构。在确保待测信s到达延时链输入端的传输延时和系统时钟clk到达寄存器时钟脚的传输延时一致的情况下,经过延时链的 s 信号上升沿(下降沿)跳变被寄存器锁存后的输出 tcn-1:0=111100000(000011111) ,称其为温度计码2.3 亚稳态亚稳态是触发器无法在某时间段内达到可确认的状态。当一个触发器进入亚稳态引时,没有办法知道该单元的输出电平。也无法预测何时输出才能稳定在某个正确的电平上。在这个稳态期间,触发器输出一些中间级电平。它可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。在同步系统中,系统时钟同步输入信号。同时要达到寄存器的时序要求,所以亚稳态不会发生。亚稳态问题通常发生在一些跨时钟域信号传输以及异步信号采集上2.4 系统的总体设计a.WALLACE树结构Wallace在1964年提出采用树形结构减少多个数累加次数的方法,成为wallace树结构加法器。Wallace树是利用全加器对tcn-1:0中的1进行累加,区别是 Wallace 树的每个全加器对应2个LUT,故其使用的资源数和路径延时均是可控的。 不过要达到最优的布局布线结果,需要人工锁定每个全加器的位置,增加了其在了其在 FPGA 中的实现难度。n-1 位的Wallace树结构的TCE如图2-2所示图2-2 wallace树结构TCEb.使用VHDL设计出WALLACE解码器根据温度计码的结构形式,我们可以知道,如果有多少个bit是1,就是这个数是多少,也就是说0011其中有两个bit是1,那么这个数字实际代表的是2。因此我们可以根据这个特性来进行计算,只需要将各位全部累加起来既可以,我们就可以得出我们需要的结果。我们分析了Wallace树结构的结构,由于VHDL的特性,我们可以使用全加器,以4位全加器为例,如果使用普通的加法运算语句,例如使用out=x1+x2+x3+x4,那么系统会进行自动编译,如下图为我们运行RTL视图的时候的计算结果图2-3 RTL视图因此如果我们需要让系统自动运行生成我们需要的Wallace结构的话,我们需要在程序上设计中继语句,就是通过认为的设计wire线结构来操作,来干预系统的编译运行,因此生成我们需要的wallace结构,我们设计了中继节点来进行,比如四位的全加器,我们需要设计两个中继节点,即使x1+x2和x3+x4先进行,然后结果temp1和temp2再相加然后输出结果即可。如下图为我们使用了中继语句并进行设计的出来的wallace结构的rtl视图。图2-4 Wallace树结构的RTL视图c.系统逻辑设计根据我们的需求进行了系统的逻辑设计,对于该逻辑系统最需要计算的两个关键问题是LUT的个数和关键路径长度。计算公式如下小号LUT的个数如公式2-1所示 (2-1)其中的m位是指温度计码的输入的m位,那我们在第三章介绍了包括8位的温度计码,16位的温度计码和32位的温度计码,分别带入m=3,4,5即可计算出分别需要的Lut的数量是8,22以及52 。计算关键路径广度计算公式如下2-2所示 (2-2)按照我们的计算,当m=3,4,5即可计算出分别出入境的长度分别为3,5,7。3 设计实现3.1 8位温度计码解码器的实现我们按照wallace数结构可以设计出我们想要的温度计码的解码器,系统进行全加时默认CSA结构的,我们如果需要使用wallace结构的,需要按照实际情况进行中间变量的计算。8位相加只需要两级单元即可完成全部的加法工作,需要四个两位的临时变量,分别命名为temp1,temp2,temp3,temp4和两个3位的临时变量,分别命名为temp5和temp 6。如下图3-1所示为我们设计的 8位的Wallace结构的温度计码解码器的综合过后的资源消耗图:图3-1 8位的温度计码解码器资源视图如上图所示,我们只用到了9个Logic单元,同时下图3-2和图3-3是我们设计的8位温度计码解码器RTL综合视图以及Technology图,可以看出我们设计的符合wallace树结构。8位wallace结构的解码器如下图3-2,我们首先用加法器将8位的输入相加得到4个结果,然后再使用加法器两两相加得到两个结果,最后将这两个结果相加得到输出结果。图3-2 8位的温度计码解码器RTL综合视图 图3-3 8位的温度计码解码器Technology综合视图3.2 16位温度计码解码器的实现按照wallace树结构设计温度计码的解码器,需要手动改变csa结构,16位相加,需三级单元进行加法工作,需要8个两位的临时变量,分别命名为temp1-temp8和4个3位的临时变量,分别命名为temp11-temp14,同时还需要2个4位的临时变量,命名为temp21-temp22。16位的温度计码解码器也要通过3个寄存器来进行3级缓存,避免亚稳态现象。如下图3-4 16位的Wallace结构的温度计码解码器的综合过后的资源消耗图:图3-4 16位的温度计码解码器资源视图如上图所示,我们只用到了25个Logic单元,同时下图3-5是我们设计的16位的温度计码解码器RTL综合视图以及Technology综合视图,如图所示我们的16位wallace结构的解码器,我们首先用图3-5加法器将16位的输入的两两相加得到8个结果,然后再使用加法器两两相加得到4个结果,然后这四个结果再使用加法器两两相加得到2个结果,最后两个结果相加得到我们的输出结果。16位的温度计码解码器TECHNOLOGY综合视图详见附录一。图3-5 16位的温度计码解码器RTL综合视图3.3 32位温度计码解码器的实现根据16位的MUX结构温度计码解码原理图,我们不难发现,在32位的解码设计中,第一级的二选一数据选择器的个数为15个,有32个输入端口,输出5位二进制码。32位相加,需要4级单元来进行加法工作,需要16个两位的临时变量,分别命名为temp1-tempg;需要8个3位的临时变量,命名为temp11-temp18,同时还需要4个4位的临时变量,命名为temp21-temp24;同时我们还需要两个五位的变量,命名为temp31-temp32。32位wallace结构的解码器我们要用加法器将32位的输入两两相加得到8组结果。同理最后两个结果输出的结果。如下图3-5所示设计的32位的Wallace结构的温度计码解码器的综合过后的资源消耗图:图3-7 32位的温度计码解码器资源视图如上图知,我们用到了55个Logic单元,同时下图3-8是我们设计的32位的温度计码解码器RTL综合视图, 32位的温度计码解码器Technology综合视图详见附录二。图3-8 32位的温度计码解码器RTL综合视图3.4 64位温度计码解码器的实现如进行64位的温度计码的解码设计,由于64位的设计如果使用常规的设计方式,编代码工作量大,不易实现,容易出错,所以我们使用了组合两个32位的加法结构来实现64位加法结构。64位进行相加需要5级单元即可完成全部的加法工作,相对于8,16,32的来讲,如果用一样的方式,则显得极其复杂,代码量太过庞大,因此我们需要用一种新的形式,因此我们选择组合两个32位的解码器的形式,减少我们的工作量。如图3-10 64位wallace结构的解码器我们调用了两个32位的加法结构将输入的64位分成高低32位的两路分别输入到两个32的wallace结构,最后两个输出结果相加得到我们的输出结果。如下图3-9为64位的Wallace结构的温度计码解码器的综合过后的资源消耗图:图3-9 64位温度计码解码器资源视图图3-10是我们设计的64位的温度计码解码器RTL综合视图, 64位的温度计码解码器Technology综合视图详见附录三。图3-10 64位的温度计码解码器RTL综合视图3.5 128位温度计码解码器的实现128位的温度计码解码器和之前的8位,16位,32位,64位大同小异了,首先定义输入输出的端口,像这种多位的输入,我们要灵活运用向量来简化操作。128位相加,要4级单元即可完成全部的加法工作,相对于8,16,32,64的来讲,如果用一样的方式,则显得极其复杂,代码量太过庞大,所以我们要用一种新颖的方式来解码,可以通过选择组合4个32位的解码器的形式,简化运算,减少工作量。如图3-12所示128位wallace结构的解码器需要调用4个32位的加法结构将输入的128位分成高低总共四组32位的四路路分别输入到4个32的wallace结构,得出的四组结果两两相加,最后两个输出结果相加得到输出结果。下图给出了128位的Wallace结构的温度计码解码器的综合过后的资源消耗图,如图3-11所示图3-11 128位温度计码解码器资源视图下图3-12是我们设计的128位的温度计码解码器RTL综合视图,可以看出我们设计的符合wallace树结构。128位的温度计码解码器technology综合视图详见附录四图3-12 128位的温度计码解码器RTL综合视图3.6 阻止亚稳态传播亚稳态问题通常发生在跨时钟域信号传输以及异步信号采集上。当数据在目的寄存器Tsu-Th时间窗口上发生了变化,也就是在数据的建立时间或者保持时间不满足时,亚稳态现象就可能发生。如图所示由图可知,当产生亚稳态后Tco时间后会有Tmet(决断时间)的振荡时间段,当振荡结束回到稳定状态时为“0”或者“1”,这个是随机的。因此会影响对电路的判断。图3-14 亚稳态现象为了尽可能减少亚稳态现象引发的问题,在目的时钟域中使用连续的寄存器(同步寄存器链或者同步装置)使信号同步到时钟域中。寄存器有额外的时间用于信号从亚稳态达到稳定值。在进行异步信号跨频提取边沿时候,一般采用多一级寄存器消除亚稳态,采用多级寄存器消除亚稳态。图3-15 两级同步寄存器链4 系统仿真4.1 8位WALLACE结构的温度计码的解码的仿真8位数据的解码有于位数较少,比较简单。根据要求我们建立并编写了了test文件,并针对性的进行了相关的仿真,使用了modelsim软件并且得出了仿真图,仿真结果图如图3-16所示。其中的处in就是我们生成的温度计码,可以看到他一直在递增变化的,其中处的clk是我们的原始二进制码的数据,总共是从00000001到11111111,temp数据是我们建立的临时的wire变量,为了让我们的加法结构遵循我们的wallace结构的,其中处out是我们根据我们的温度计码解码出来的数据,经过对比我们发现,我们原始的8位二进制码的数据和我们经过解析后生成的8位二进制码数据是完全一致的,证明我们的8位二进制码解码器工作的十分正确。图3-16清晰的说明了我们的仿真结果,其中,8位的温度计码的8种情况说明的非常清晰,其中的第一个数字in是使用二进制的形式表述的,可以清晰地看明白结果。它详细的说明了8位的8种状态,当处clk也就是原始的二进制码数据分别为0到7的时候,二级制码分别为00000001到1111111,此时解码分别为0到7,解码正确。图3-16 8位的wallace结构的温度计码解码器的modelsim仿真结果4.2 16位WALLACE结构的温度计码的解码的仿真16位的比8位稍繁琐一些,同理建立和编码和8位的相似,轻易得出了仿真图,仿真结果图如图所示,其中的in就是我们生成的温度计码,可以看到他一直在递增变化的,其中的clk是我们的原始二进制码的数据,总共是从0000000000000001到1111111111111111,temp数据是我们建立的临时的wire变量,为了让我们的加法结构遵循我们的wallace结构的,其中的out是我们根据我们的温度计码解码出来的数据,经过对比我们发现,我们原始的16位二进制码的数据和我们经过解析后生成的16位二进制码数据是完全一致的,证明我们的16位二进制码解码器工作的十分正确。下图3-17清晰的说明了我们的仿真结果,其中,16位的温度计码的16种情况说明的非常清晰,其中的第一个数字in是使用二进制的形式表述的,可以清晰地看明白结果。同时由于我们的16种情况比较多,我们截图的仿真结果只表述了几种结果用来进行展示。如图3-17详细的说明了16位解码的部分状态,以前三种为例,当处的clk,也就是原始的二进制码数据分别为0到2的时候,二进制码分别为处的0000000000000000到0000000000000011,此时解码分别为0到2,图3-17 16位的wallace结构的温度计码解码器的modelsim仿真结果4.3 32位WALLACE结构的温度计码的解码的仿真有了前面8,16位的经验,我们继续建立了test文件针对性的进行了相关的仿真得出了仿真图,如下图为我们的仿真结果图,其中的in就是我们生成的温度计码,可以看到他一直在递增变化的,其中的clk是我们的原始二进制码的数据,temp数据是我们建立的临时的wire变量,为了让我们的加法结构遵循我们的wallace结构的,其中的out是我们根据我们的温度计码解码出来的数据,经过对比我们发现,我们原始的32位二进制码的数据和我们经过解析后生成的32位二进制码数据是完全一致的,证明我们的2位二进制码解码器工作的十分正确。图3-18清晰的说明了我们的仿真结果,其中,32位的温度计码的8种情况说明的非常清晰,可以清晰地看明白结果。同时因为数据是在是太多,因此in一行我们没有使用二进制的形式表示,使用16进制的形式进行表示的。图3-18详细的说明了32位解码的部分状态,以前三种为例,当处的clk,也就是原始的二进制码数据分别为0到2的时候,二进制码分别为16进制显示的0,1,3即处,此时解码分别为0到2,即是处的数据,解码正确。图3-18 32位的wallace结构的温度计码解码器的modelsim仿真结果4.4 64位WALLACE结构的温度计码的解码的仿真64位的解码比较复杂,程序共有100行左右,写完后使用了modelsim并且得出了仿真图,仿真结果如图3-19所示,其中的in就是我们生成的温度计码,可以看到他是不断在变化的,同理处的clk是我们的原始二进制码的数据,temp数据是我们建立的临时的wire变量,我们使用wallace结构加法拓扑,其中的out是我们根据我们的温度计码解码规则仿真出来的数据,经过对比我们发现,我们原始的64位二进制码的数据和我们经过解析后生成的64位二进制码数据相吻合的的,证明我们的2位二进制码解码器工作的十分正确。下图3-19清晰的说明了我们的仿真结果,其中,64位的温度计码的8种情况说明的非常清晰,可以清晰地看明白结果。同时因为数据是在是太多了,因此in一行我们没有使用二进制的形式表示,使用16进制的形式进行表示的。图3-19说明了64位解码的部分状态,以前三种为例,当处的clk也就是原始的二进制码数据分别为18h到1ah变化的时候,二进制码分别为16进制显示的处ffffff,处1ffffff,处的3ffffff,此时解码分别为处18h到的1ah ,解码正确。图3-19 64位的wallace结构的温度计码解码器的modelsim仿真结果4.5 128位WALLACE结构的温度计码的解码的仿真128位的仿真代码较多,工作量大。如下图为我们的仿真结果图,其中的in就是我们生成的温度计码,可以看到他一直在递增变化的,其中的clk是我们的原始二进制码的数据,temp数据是我们建立的临时的wire变量,为了让我们的加法结构遵循我们的wallace结构的,其中的out是我们根据我们的温度计码解码出来的数据,发现我们原始的128位二进制码的数据和我们经过解析后生成的128位二进制码数据是一样的,说明我们的128位二进制码解码器工作顺利完成。图3-20向我们展示了仿真结果,其中128位的温度计码的几种情况说明的非常明了,从中可以看出结果和我们预想的是一致的。由于代码很多因此所有的数据都是用16进制的形式进行表示的,。图3-20说明了128位解码的几种状态,以前三种为例,当处clk,也就是原始的二进制码数据分别为72h到74h变化的时候,二进制码分别为16进制显示的处的3ffffffffffffffffff,处7ffffffffffffffffff, 处fffffffffffffffffff,此时解码分别为72h到74h,这证明了我们的解码是正确的。图3-20 128位的wallace结构的温度计码解码器的modelsim仿真结果5 总结与展望本次毕设主要是分析并仿真了一款基于wallace结构的温度计码解码器的设计,主要是分析了温度计码的理论设计,首先介绍了VHDL语言的相关的信息和Quaruts软件以及modelsim软件的使用,同时接扫了温度计码解码器的研究意义和发展现状。紧接着,本文做了理论分析,主要是分析了理论上的温度计码的意义,以及存在和发展,还有就是亚稳态的概念,并做了相关的分析。随后本文针对8位的基于wallace树的温度计码解码器,16位的基于wallace树的温度计码解码器,以及32位的基于wallace树的温度计码解码器的结构进行了分析,并且给出了RTL视图以及编译过后的资源消耗情况。随后对于8位的基于wallace树的温度计码解码器,16位的基于wallace树的温度计码解码器,以及32位和64一直到128位的wallace树的温度计码解码器进行了相关的modelsim仿真,并对结果进行了分析。参考文献1 Kaess F, Kanan R, Hochet B, et al. New encoding scheme for high-speed flash ADCsC. Circuits and Systems, 1997. ISCAS 97., Proceedings of 1997 IEEE International Symposium on, 1997: 5-8 vol.1.2 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 codeJ. Proceedings of the IEEE International Conference on Electronics, Circuits, and Systems, 1998, 2: 271-274.3 Daegyu L, Jincheol Y, Kyusun C, et al. Fat tree encoder design for ultra-high speed flash A/D convertersC. Circuits and Systems, 2002. MWSCAS-2002. The 2002 45th Midwest Symposium on, 2002: II-87-II-90 vol.2.4 Fries M D, Williams J J. High-Precision TDC in an FPGA using a 192-MHz Quadrature ClockC. 2002 IEEE Nuclear Science Symposium Conference Record, November 10, 2002 - November 16, 2002, 2002: 580-584.5 Wu J, Shi Z, Wang I Y. Firmware-only implementation of Time-to-Digital Converter (TDC) in field-programmable gate array (FPGA)C. 2003 IEEE Nuclear Science Symposium Conference Record - Nuclear Science Symposium, Medical Imaging Conference, October 19, 2003 - October 25, 2003, 2003: 177-181.6 Sail E, Vesterbacka M. A multiplexer based decoder for flash analog-to-digital convertersC. TENCON 2004. 2004 IEEE Region 10 Conference, 2004: 250-253 Vol. 4.7 Jian S, Qi A, Shubin L. A high-resolution time-to-digital converter implemented in field-programmable-gate-arraysJ. Nuclear Science, IEEE Transactions on, 2006, 53(1): 236-241.8 张骥, 曾云, 王铮, et al. 基于FPGA的高精度时间测量电路的实现J. 核电子学与探测技术, 2011, (05): 508-512. 黄秉英.时间频率的精确测量M.北京.中国计量出版社,1986,20(4):12- 28.9 梁勇飞.基于 FPGA 的时间序列采集器J.核电子学与探测技术,2006,26(3):355-357.10 郑业民,董晓舟.可编程逻辑器件开发软件 Quartus II M.北京:国防工业出版社,2006,11(9):76-114.11 张廷华,樊桂花,孙华燕.基于FPGA的高精度时间间隔测量方法研究与实现J.光学技术,2006,32:452-454.12 霍玉晶,陈千颂,潘志文.脉冲激光雷达的时间间隔测量综述J.激光与红外,2001,31:136-139.13 孙杰,潘继飞.高精度时间间隔测量方法综述J.计算机测量与控制,2007,15(2):145-148.14李大鹏,徐东明,陈文宣.基于门延时的数字TDC电路设计J.中国集成电路,2011.7:37-40.15夏雨闻.Verilog数字系统设计M.北京:北京航空航天大学出版社,2008.16余冬菊,苏玉萍,郑琼琼.基于FPGA的数字TDC设计J.中国科技信息,2008(8):122-123.17张延,黄佩诚.高精度时间间隔测量技术与方法J.天文学进展,2006,24(1):1-15.陈向东,蔡文学.基于分灾模式的结构防灾设计概念初探18王金庭,夏春华基于FPGA的多功能计数器设计J电子测量技术,2009,34(3):151-15319孙建东使用VHDL语言设计FPGA的几个常见问题的探讨J电子设计工程,2006,(7):3020 汤海.特殊时间间隔测量J.电子科技,2006,13 (2):40-43.致 谢经历了大约三个月后,终于完成了我的毕业设计,交出了大学的最后一份的答卷,非常希望这份答卷获得一个正面的评价,能为我的大学画上一个完美的句号。大学四年一眨眼就过去了,还记得大一刚刚入学时的懵懵懂懂,还记得大学的每一个清晨,终于在大学的最后交出了一份满意的答卷。首先还是应该感谢我的导师周老师,周老师给我了很多的帮助,没有周老师的帮助,这个毕业设计说明书也没办法完成的这么顺利这么快。也感谢电气学院教研室的每一个老师,没有老师们的细心教导,我也不可能在电子信息领域学到这么多这么全的专业课程知识。同时我也需要也需要感谢实验室的每个人,感谢陪伴我走过了大学的最后三个月的时光,实验室兄弟间的友情十分珍贵。希望这份友情能够天长地久,永远长存。我还需要感觉和我朝夕相伴四年的室友们,四年的情谊,四年的照顾弥足珍贵。愿兄弟们友谊长存。在未来的道路上,我还会继续努力,在科研的道路上获得新的成就。附 录附录一: 16位technology视图附录二: 32位technology视图附录三: 64位technology视图附录四: 128位technology视图附录五:基于wallace树结构的温度计码解码器设计源程序附录5.1 8位温度计码解码器源程序module wallace8(input7:0 in,output 2:0 out );wire1:0 temp1;wire1:0 temp2;wire1:0 temp3;wire1:0 temp4;wire2:0 temp5;wire2:0 temp6;assigntemp1=in0+in1;assigntemp2=in2+in3;assigntemp3=in4+in5;assigntemp4=in6+in7;assigntemp5=temp1+temp2;assigntemp6=temp3+temp4;assignout =temp5+temp6;endmodule8位温度计码解码器test程序module test8;reg 7:0 in;reg2:0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论