1、 毕业设计说明书 基于胖树结构的温度计码解码器设计 专业 电气工程及其自动化 学 生 姓 名 班级 学号 指 导 教 师 专业系主任 撰 写 日 期 盐城工学院本科生毕业论文 基于胖树结构的温度计码解码器设计 摘要: 时间数字数字转换器的编码器需要把温度计码转换 1-0( 0-1)跳变处的二进制位置码。针对 FPGA 的查找表结构,采用胖树结构实现了高精度解码,确保了延时测量结果准确有效,实现了处理 4 位, 8位, 16位 32 位 ,64 位, 128位温度计码的基于胖树结构的温度计码解码器设计。 结合 FPGA 内部 lcell 的延时单元的方法,缩小了电路规模,且可以方便地移植到其他系
2、统中。克服了分立硬件电路带来的抗干扰性差和不易调整等缺陷,使用较少的逻辑资源达到了大量高精度的侧测量要求,并且具备软件开发周期短,降低成本,提高执行速度,实时性强,升级方便等特点。基于超前位延时链的测时原理,采用胖树结构提高了温度计解码器的频率实现连续测量,其性能优越,解码结果正确稳定。在 Quattus ii软件中采用 Verilog HDL 语言进行编码设计并通过 Modelsim仿真平台进行验证。 关键字: 胖树结构;时间间隔测量器;温度计码解码器; FPGA; 盐城工学院本科生毕业论文 (2015) The thermometer code decoder design based o
3、n fat tree structure Abstract:Time digital digital converter encoder needs to transform the thermometer code 1-0 (0 and 1) jump in the position of the binary code.For FPGA lookup table structure, uses a fat tree structure to achieve the high precision decoding, ensure the delay measurement results a
4、re accurate and effective, can process the arbitrary 4-bit, 8-bit, 16 bit or 32-bit, 64 bit, 128 bit thermometer code based on fat tree structure of the thermometer decoder design. The method of combining the delay element of FPGA with the lcell is reduced, and the circuit size can be easily ported
5、to other systems.Overcome the discrete hardware circuit of anti-interference and not easy to adjust the defects, use less logic resources to meet the requirements of a large number of high precision measurement of lateral, and have software development cycle short, reduce costs, improve execution sp
6、eed, strong real-time, easily upgrading characteristics.Based on the principle of the lead time delay chain, the weight tree structure is used to improve the frequency of the thermometer decoder, and its performance is superior, the decoding results are correct and stable.The HDL Verilog language is
7、 used in the II Quattus software to design and verify the Modelsim simulation platform. Key Word: Fat tree; Interval timer; Thermometer decoder; FPGA. 盐城工学院本科生毕业论文 目 录 1 概 述 . 1 1.1 研究背景与意义 . 1 1.2 国内外研究和发展现状 . 1 1.3 VHDL 语言相关语法说明 . 2 1.3.1 实体表达 . 2 1.3.2 数据类型 BIT . 2 1.4 论文主要研究内容 . 3 1.5 设计要求: . 3
8、1.6 设计思路 . 3 2 系统设计 . 4 2.1 延时链测时间间隔原理 . 4 2.2 亚稳态产生的原因 . 4 2.3 亚稳态解决的办法 . 5 2.4 胖树 TC-To-BC 解码 . 5 2.4.1 One-out-of-N 编码模块 . 6 2.4.2 多级门胖树形结构解码实现 . 6 2.5 FPGA 综合 RTL 视图 . 9 2.6 综合后耗费的器件资源 . 17 3 结果仿真及说明 . 21 3.1 one-out-of-N 编码模块仿真结果及说明 . 21 3.2 胖树解码器 仿真结果及说明 . 23 3.2.1 4 位胖树结构仿真 . 23 3.2.2 8 位胖树结构
9、仿真 . 24 3.2.3 16 位胖树结构仿真 . 26 3.2.4 32 位胖树结构仿真 . 28 3.2.5 64 位胖树结构仿真 . 30 3.2.6 128 位胖树结构仿真 . 31 4 结束语 . 34 参考文献 . 35 致 谢 . 36 附录 . 37 4位温度解码器代码 . 37 8位温度解码器代码 . 40 16位温度解码器代码 . 43 盐城工学院本科生毕业论文 (2015) 1 基于胖树结构的温度计码解码器设计 1 概 述 1.1 研究背景与意义 由于现代科学信息技术的飞速发展,不管是在信息通讯技术、电子仪表仪器方面、 GPRS 技术、航天和航空领域、天文领域,还是检测
10、计量和电子技术等特别是对于时间间隔测量技术方面都必须要依靠高精度的信号编码和解码技术。 信号编码和解码技术是以稳定的、周期性信号为基础,以 一个特定标准周期倍数或着是分数为一个时间单位进行编码或解码。而信号的编码或者解码技术是以时间间隔测量作为基础,人们对时间的测量有这样几种方式:机械钟表、圭表(钟)、石英钟表、原子钟表等不同方式。由于社会生产力的日益提高和科学信息技术的快速发展,人们利用时间为基本单位导出了新的一个物理量 频率,同时人们对频率的准确度和精度要求变的更加高,即对时间(或频率)测量的精度和分辨率的提出要求在不断提高。高精度、短间隔测量是多学科、多技术领域交叉形成的专业技术,具有高
11、精度、高速度的超声波测距技术、激光测距技术和雷达测 量距离技术的基础性要求。激光测距的原理,主要是通过测量电磁波发射波与反射波之间的时间间隔来完成测量,测量的精确度取决于发射波和反射波测量的精确度。眼下高度准确间隔测量已成为军方通信、 GPS 等海陆空国防中不可或缺的枢纽技术。当今飞速发展的社会在苛刻的要求时间间隔测量的精度。在可编程逻辑器件 (FPGA)单片上完成时段间隔测量已有大批成功实例,相对于老的设计方法,新技术除了具有高准确度、高稳定性等好处外,更拥有系统集成度高、结构单一灵活、设备个头小、容易升级扩展和经济实惠等长处,所以利用 FPGA编程来达到高精度 时间间隔测量是具有划时代意义
12、的。 1.2 国内外研究和发展现状 随着科学与技术的迅猛发展,高精度数字化的时间测量技术在激光探测技术、自动测量设备、医疗的图形化扫描、频率的测量和相位检测等研究方向和探索领域得到极其广泛的应用。欧洲、美国、日本和其他西方国家做了很多和时间间隔测量相关领域的投资研究,他们运用在集成电路的巨大优势,发展研究了各类相对成功的、精准的隔测量时间技术。 TDC(数字转换时间)是由集成电路实现的。美国在每年年度会议上都会展开对它的专题讨论,国家科学院除了把它作为高价防御力评价的重要指标,还把 这线技术列为国家重点发展的科学技术。相对的,我们国在这方面的技术的发展是相对落后的,一方面的原因是国外对 VLS
13、I 技术的控制十分严格,我们国加缺少许多的技术交流和技术支持,完全是在几乎为零基础上开展研究的;另一方面原因是我们国家 VLSI 技术的研究起步晚,直到近十多年才开始有学者和专家在这个方面开展初步的研究和探索。 基于胖树结构的温度计码解码器设计 2 这几年以来,可编程的 ASIC 技术、 FPGA 和 CPLD 极速发展,尤其在 FPGA方面的发展极为明显, Xilinx 公司的 Virtex 芯片 ,Virtex-E 芯片和 Virtex-II 芯片,Altera 公 司的 FPGA 系列芯片都已经达到了 ASIC 的工艺水平。该芯片具有高集成度,并能稳定工作在告诉时钟芯片上,如 Virte
14、x-E 已达到 400Mhz的芯片。而今国外对于此类技术的运用已逐步成熟。 1.3 VHDL 语言相关语法说明 1.3.1 实体表达 ENTITY e_name IS PORT (p_name:port_m data_type; . P_name i:port_m data_type); END ENDTITY e_name; 一个基本单元设计的实体说明以“ Entity 实体名 IS”开始至“ END Entity 实体名”结束。 1.3.2 数据类型 BIT 上面的例子中, data_type 是数据的类型名, BIT 数据类型的信号规定的取值范围是逻辑位 1和 0。逻辑位 0 和 1 的
15、表达必须加单引号,否则会作为整体数据 (integer) 处理。 BIT 型数据可参与算数运算或逻辑运算,数据类型的定义包含在对应的程序包中。 图 1-1 VHDL 程序设计基本结构 PROCESS(clk); BEGIN IF CLKEVENT AND CLK=1 THEN 盐城工学院本科生毕业论文 (2015) 3 Q1=D; END IF Q=D; END PROCESS 当时钟信号 clk 发生变换时,进程语句被启动, if 语句将测定条件是否满足(即 clk 的上升沿是否到来),如果是 true“ ,就执行 DQ1 ,结束 IF 语句,最后执行 Q1Q 。 如果 clk 没有产生变换
16、,亦或是 IF 语句不满足条件,那么跳过赋值 DQ1 语句,结束 IF 语句。 1.4 论文主要研究内容 本文在时间间隔测量的理论基础上,结合胖树结构设计了时间的间隔测量器,把温度计码转换 1-0( 0-1)跳变处的二进制位置码。针对 FPGA 的查找表结构,实现了处理任意 2n 位温度计码的基于胖树结构的温度计码解码器的设计。并让它在 M o d e ls imIIQ u a rtu s 仿真平台中进行验证。 1.5 设计要求: 1.输入的的是温度计码,输出的是二进制码。 2.最大工作频率 100MHZ。 3.预测编码时间小于 3ns。 1.6 设计思路 学习了解胖树结构,明确其特点。掌握
17、FPGA 的基本理论知识、学习语言VerilogHDL 语言,掌握相关软件的基本操作。完成前面所述内容,将温度计码解码器分为两部分实现:第一部分是延时链模块,第二部分基于胖树结构是时间间隔测量模块实现。最后将系统各模块组合仿真其结果并将结果进行分 析。 基于胖树结构的温度计码解码器设计 4 2 系统设计 2.1 延时链测时间间隔原理 该方法用于测量 s 信号的上升沿(下降沿)距离时钟 clk 的上升沿的时间差。在确保待测信号 s到达延时链输入端的传输延时和系统时钟 clk到达寄存器时钟脚的传输延时一致的情况下, s信号经过延迟单元延时后,出现在第一个延迟单元的结束,每经过一个,下一延迟单元的输
18、出端子就会出现上升沿(或者下降沿)的信号,如果当时钟的信号上升沿来到时候,此时事件信号是高电平,那么同步器将产生锁存的信号,而锁存的过程耗时也就等于补偿了延迟。锁存信号的上升沿锁 定事件信号将经过各个延迟单元后。这个现象和水银柱型温度计表示温度类似,所以称 Qi 的编码是温度计编码。温度计码是一连串的高低电平信号。例如,信号 s的上升沿(下降沿)经过延时链,延时链的输出为 111.10.0( 000.01.1)的二进制温度计吗。温度计码的 1-0( 0-1)跳变位置反映了 s的跳变沿到时钟的上升沿之间的延时。假定时钟周期 nTclk , 为事件信号与时钟信号之间的时间间隔, clkT0 ,锁存
19、结果 N)i(0Qi 反映了 的量化值,量化单位 (即分辨率 )为 。由温度计码编码器经过计算,得出“ 1”(“ 0”)的个数,然后根据“ 1”(“ 0”)的个数累 加跳变沿之前的每个延时单元的延时,计算出出跳变沿的位置,可得到 s 跳变沿到 clk 上升沿之间的延时。 c l ks1 1 11 1 0 0fs图 2-1延时链测时间间隔原理图 2.2 亚稳态产生的原因 亚稳态问题不会发生在同步系统中,因为同步系统中输入信号总是系统时钟保持一致,这一点保证了寄存器的时序要求,所以亚稳态不会发生。而当信号跨时钟域或者我们采集异步信号的时候,亚稳态问题就不可避免。它们由一下原因引起: a)当信号跨越
20、时钟域传输时,由于源寄存器时钟和目的寄存器时钟相移未知,所以源寄存器数 据发出数据,数据可能在任何时间到达异步时钟域的目的寄存器,所以无法保证满足目的寄存器 Thu 和 Th 的要求; b)而在采集异步信号时,因为异步信号可以随时随地地到达达目的寄存器,所以不能满足目的寄存器 Tsu 和 Th 的要求; 盐城工学院本科生毕业论文 (2015) 5 当数据在目的寄存器 Thu-Th时间窗口发生变化,也就是当数据的创建时间或者维持时间不能达到要求时,亚稳态现象就不可避免。我们从下面的图可以看到,当亚稳态产生 Tco 时间后会有一个名为 Tmet 的反应时间,而系统会在这个振荡时间段之后恢复到稳定的
21、“ 0”或“ 1”的状态,而由于这个是完全随机的,所以会对后续电路判断造成影响。 图 2-2 亚稳态现象 2.3 亚稳态解决的办法 为了减少异步信号传输的亚稳态问题,我们往往会将一连串使用在目标时钟域的寄存器信号同步到新的时钟域中。这些寄存器有额外的时间使信号从亚稳态回到正常状态。在提取异步信号边沿的时候,最普遍消除亚稳态的方法是多进行一次寄存器,这个方法做使用的寄存器数量和系统稳定性要求的高低成正比,系统稳定性要 求越高,消除亚稳态就要使用更多级的寄存器。下图是一个两级的同步寄存器链。 图 2-3 亚稳态解决方案 2.4 胖树 TC-To-BC 解码 胖树 TC-To-BC 解码器由两级组成
22、。第一级是 one-out-of-N(N 中取 1)编码器,类似于地址解码,编码采用 N 个门并行转换 N 位。第二级采用多级门胖树形结构把编码好的 one-out-of-N 码转换为二进制码。 基于胖树结构的温度计码解码器设计 6 0100000000111111O n e - o u t - o f - NC o d eG e n e r a t o rF a t t r e eE n c o d e101图 2-4胖树解码原理框图 2.4.1 One-out-of-N 编码模块 One-out-of-N 编码模 块采用一个初始的 p 位 x=(xp-1,xp-2,.,x1,x0)产生p+
23、1 位 z=(zp,zp-1,.,z1,z0),其中, zi 由下面的公式给出假设 p=3,则, z1=x2x1 x0+x2 x1x0 +x2x1 x0。考虑温度计码的特点 000.111,则对于一个温度计码 00011111,根据上边的公式,对应的 One-out-of-N码就是 00100000,类似的可以扩展到 16位。 2.4.2 多级门胖树形结构解码实现 16bit 的 one-out-of-N 编码输入到树形结构的叶子节点,由根节点输出四 位二进制编码,类似于一个树接一个树 3D树形结构传递。一个节点的边沿数随着树形结构的高度的增加而增加,所以叫胖树结构。在算法上,胖树电路信号的延
24、时是 O( Nlog2 ),ROM 电路的信号延时位 O(N),Wallace tree 解码信号的延时位O(log1.5N),因此,胖树电路是速度最快的电路。图中,从任何叶子节点到根节点有 3个或门的延时,从 N-1 个输入到 n 个输出的信号延时是一样的,这是个重要的特点允许没有流水线寄存器实现高速的波形流水线。 不管速度的特点,或门结构的胖树是一个纯数字电路,不需要时钟,传感放大器,或者上拉电阻,因此,这个胖树结构可以比 ROM 电路有更高的噪声容纳,而且,胖树结构电路是静态的,数据驱动的,因此它的功耗比 ROM 电路低的多,抗干扰性也要好。 c 0c 1b it2b i t 1b 0b 1b 2b 3图 2-5输入为 4 位的胖树解码过程