外文翻译 .doc

基于胖树结构的温度计码解码器设计说明书

收藏

压缩包内文档预览:
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:81013456    类型:共享资源    大小:6.42MB    格式:ZIP    上传时间:2020-05-24 上传人:QQ14****9609 IP属地:陕西
20
积分
关 键 词:
基于 结构 温度计 解码器 设计 说明书
资源描述:
基于胖树结构的温度计码解码器设计说明书,基于,结构,温度计,解码器,设计,说明书
内容简介:
XXXXXXX设计任务书课题: 基于胖树结构的温度计码解码器设计专业学生姓名班级学号指导教师专业系主任发放日期XXX1. 毕业设计(论文)任务的内容和要求(包括原始数据、技术要求、工作要求)1、 主要内容以及技术参数基于胖树结构的时间数字转换器在确保待测信号s到达延时链输入端的传输延时和系统时钟clk到达寄存器时钟脚的传输延时一致的情况下,经过延时链的s信号上升沿(下降沿)跳变被寄存器锁存后的输出温度计码。温度计码的1-0(0-1)跳变位置反映了s的跳变沿到时钟的上升沿之间的延时,由温度计码编码器计算出跳变沿的位置,然后累加跳变沿之前的每个延时单元的延时,可得到s跳变沿到clk上升沿之间的延时。 时间数字转换器的编码器需要把温度计码转换1-0(0-1)跳变处的二进制位置码。针对FPGA的查找表结构,实现了处理任意2m位温度计码的基于胖树结构的温度计码解码器的设计。并在Quartus II+ModelSim仿真平台中进行验证。2、设计中要求做的工作a) 熟练掌握Quartus II与ModelSim软件。b) 灵活运用VHDL语言进行编程。c) 理解ROM结构解码的工作原理。d) 用VHDL编写解码器。e) 仿真调试f) 完成毕业设计论文的编写。3、 工作要求a) 对待设计工作要具有认真的态度、严谨的作风b) 要求每天按照计划保质保量地完成当天的任务c) 遵守设计场所的纪律制度,做好值日生工作2. 图纸内容及张数:1、顶层设计原理图 1张2、仿真波形图 2张3. 实物内容及要求(包括开题报告、毕业设计说明书(论文)、源程序、成果实物、资料光盘等):(1) 完成毕业实习报告一份。(2) 完成开题报告一份。写明课题研究的意义,设计或研究的思路,采用的主要器件,以及设计最终所获得的成果。详细列出在毕业设计期间各个时间段要完成的工作。(3) 完成8000字的资料摘要一份。(4) 完成与本课题相关的外文资料译文一份(3000汉字以上)。(5) 按照盐城工学院毕业设计(论文)教学工作手册中的要求完成毕业设计说明书一份。符合学校制定的本科毕业设计(论文)的格式要求、字数要求,文笔流畅、条理清晰,无原则性错误。任务书、开题报告、设计说明书等资料刻成光盘。4. 其他:无5. 参考文献: 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.6. 毕业设计(论文)进度计划起讫日期工 作 内 容备 注3月8日3月28日毕业实习以及毕业设计的前期工作,完成中文文献摘要、英文文献翻译、实习报告和设计的开题报告3月29日4月4日进行开题陈述和答辩,设计正式开题4月5日4月18日扫频信号源的工作原理4月19日4月25日DDS实现扫频信号源的思路4月26日5月8日编写系统程序5月9日5月23日系统仿真调试5月24日5月27日撰写毕业设计说明书,准备毕业答辩5月28日6月21日完成毕业答辩以及设计资料的归档工作7.教师签字: 制定日期: 年 月 日8. 审批专业系意见:专业系主任(签字) 年 月 日 XXXXXXXX设计开题报告课题: 基于胖树结构的温度计码解码器设计专业学生姓名班级学号指导教师专业系主任撰写日期电气工程学院课题名称: 基于胖树结构的温度计码解码器设计课题类型: () 应用型 ( ) 研究型1. 本课题的意义基于胖树结构的时间数字转换器在确保待测信号s到达延时链输入端的传输延时和系统时钟clk到达寄存器时钟脚的传输延时一致的情况下,经过延时链的s信号上升沿(下降沿)跳变被寄存器锁存后的输出温度计码。温度计码的1-0(0-1)跳变位置反映了s的跳变沿到时钟的上升沿之间的延时,由温度计码编码器计算出跳变沿的位置,然后累加跳变沿之前的每个延时单元的延时,可得到s跳变沿到clk上升沿之间的延时。 本文利用现代EDA设计方法学和VHDL语言及模块化的设计方法,设计了适合于基于胖树结构的温度计码解码器设计的硬件实现方案。不但克服了分立硬件电路带来的抗干扰性差和不易调整等缺陷,而且具有软件开发周期短,成本低,执行速度高,实时性强,升级方便等特点。提高了温度计解码器的频率实现连续测量,减少资源消耗,构建多通道。 2. 课题的基本内容: 时间数字转换器的编码器需要把温度计码转换1-0(0-1)跳变处的二进制位置码。针对FPGA的查找表结构,实现了处理任意2n位温度计码的基于胖树结构的温度计码解码器的设计。并在Quartus II+ModelSim仿真平台中进行验证。3. 课题的研究方法、技术路线、设计(研究)方案: 查找和本次设计相关的资料,确定整体设计方案;学习编解码器原理及仿真程序语言;查阅基于胖树结构的温度计码解码器设计的相关文献资料,设计编码器和解码器。系统学习VHDL语言,编写基于VHDL语言的仿真程序软件。设计方法:主要有实验法、观察法、比较法、假设法等等。在设计中实验法和假设法比较关键,因为在软件设计的时候比较抽象化,对于遇到的问题要从多个角度来分析,这时候就需要通过实验法和假设法来对问题的可能原因来分析和测试,找到问题的根源再进行处理。4. 课题的效果预测 1.输入的的是温度计码,输出的是二进制码。 2.最大工作频率300MHZ。 3.预测编码时间小于3ns,可以消除3阶以内的泡沫误差。 4.解码误差低于15. 毕业设计(论文)进度计划起讫日期工 作 内 容备 注3月8日3月28日毕业实习以及毕业设计的前期工作,完成中文文献摘要、英文文献翻译、实习报告和设计的开题报告3月29日4月4日进行开题陈述和答辩,设计正式开题4月5日4月18日延时链测量的工作原理4月19日4月25日胖树结构解码器的思路4月26日5月8日编写系统程序5月9日5月15日系统仿真调试5月16日6月4日撰写毕业设计说明书,准备毕业答辩6月5日6月15日完成毕业答辩以及设计资料的归档工作6. 开题报告审批意见指导教师意见:指导教师(签字):年 月 日专业系意见:专业系主任(签字):年 月 日4 基于胖树结构的温度计码解码器设计摘要:时间数字数字转换器的编码器需要把温度计码转换1-0(0-1)跳变处的二进制位置码。针对FPGA的查找表结构,采用胖树结构实现了高精度解码,确保了延时测量结果准确有效,实现了处理4位,8位,16位32位,64位,128位温度计码的基于胖树结构的温度计码解码器设计。结合FPGA内部lcell的延时单元的方法,缩小了电路规模,且可以方便地移植到其他系统中。克服了分立硬件电路带来的抗干扰性差和不易调整等缺陷,使用较少的逻辑资源达到了大量高精度的侧测量要求,并且具备软件开发周期短,降低成本,提高执行速度,实时性强,升级方便等特点。基于超前位延时链的测时原理,采用胖树结构提高了温度计解码器的频率实现连续测量,其性能优越,解码结果正确稳定。在Quattus ii软件中采用Verilog HDL语言进行编码设计并通过Modelsim仿真平台进行验证。关键字:胖树结构;时间间隔测量器;温度计码解码器;FPGA;The thermometer code decoder design based on fat tree structureAbstract: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 are 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 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 speed, 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 used in the II Quattus software to design and verify the Modelsim simulation platform.Key Word: Fat tree; Interval timer; Thermometer decoder; FPGA.目 录1 概 述11.1 研究背景与意义11.2 国内外研究和发展现状11.3 VHDL语言相关语法说明21.3.1实体表达21.3.2数据类型 BIT21.4 论文主要研究内容31.5设计要求:31.6设计思路32 系统设计42.1 延时链测时间间隔原理42.2亚稳态产生的原因42.3亚稳态解决的办法52.4胖树TC-To-BC解码52.4.1 One-out-of-N编码模块62.4.2 多级门胖树形结构解码实现62.5 FPGA综合RTL视图92.6综合后耗费的器件资源173 结果仿真及说明213.1 one-out-of-N编码模块仿真结果及说明213.2胖树解码器仿真结果及说明233.2.1 4位胖树结构仿真233.2.2 8位胖树结构仿真243.2.3 16位胖树结构仿真263.2.4 32位胖树结构仿真283.2.5 64位胖树结构仿真303.2.6 128位胖树结构仿真314 结束语34参考文献35致 谢36附录374位温度解码器代码378位温度解码器代码4016位温度解码器代码43 基于胖树结构的温度计码解码器设计1 概 述1.1 研究背景与意义由于现代科学信息技术的飞速发展,不管是在信息通讯技术、电子仪表仪器方面、GPRS技术、航天和航空领域、天文领域,还是检测计量和电子技术等特别是对于时间间隔测量技术方面都必须要依靠高精度的信号编码和解码技术。信号编码和解码技术是以稳定的、周期性信号为基础,以一个特定标准周期倍数或着是分数为一个时间单位进行编码或解码。而信号的编码或者解码技术是以时间间隔测量作为基础,人们对时间的测量有这样几种方式:机械钟表、圭表(钟)、石英钟表、原子钟表等不同方式。由于社会生产力的日益提高和科学信息技术的快速发展,人们利用时间为基本单位导出了新的一个物理量频率,同时人们对频率的准确度和精度要求变的更加高,即对时间(或频率)测量的精度和分辨率的提出要求在不断提高。高精度、短间隔测量是多学科、多技术领域交叉形成的专业技术,具有高精度、高速度的超声波测距技术、激光测距技术和雷达测量距离技术的基础性要求。激光测距的原理,主要是通过测量电磁波发射波与反射波之间的时间间隔来完成测量,测量的精确度取决于发射波和反射波测量的精确度。眼下高度准确间隔测量已成为军方通信、GPS等海陆空国防中不可或缺的枢纽技术。当今飞速发展的社会在苛刻的要求时间间隔测量的精度。在可编程逻辑器件(FPGA)单片上完成时段间隔测量已有大批成功实例,相对于老的设计方法,新技术除了具有高准确度、高稳定性等好处外,更拥有系统集成度高、结构单一灵活、设备个头小、容易升级扩展和经济实惠等长处,所以利用 FPGA编程来达到高精度时间间隔测量是具有划时代意义的。1.2 国内外研究和发展现状随着科学与技术的迅猛发展,高精度数字化的时间测量技术在激光探测技术、自动测量设备、医疗的图形化扫描、频率的测量和相位检测等研究方向和探索领域得到极其广泛的应用。欧洲、美国、日本和其他西方国家做了很多和时间间隔测量相关领域的投资研究,他们运用在集成电路的巨大优势,发展研究了各类相对成功的、精准的隔测量时间技术。TDC(数字转换时间)是由集成电路实现的。美国在每年年度会议上都会展开对它的专题讨论,国家科学院除了把它作为高价防御力评价的重要指标,还把这线技术列为国家重点发展的科学技术。相对的,我们国在这方面的技术的发展是相对落后的,一方面的原因是国外对 VLSI 技术的控制十分严格,我们国加缺少许多的技术交流和技术支持,完全是在几乎为零基础上开展研究的;另一方面原因是我们国家VLSI技术的研究起步晚,直到近十多年才开始有学者和专家在这个方面开展初步的研究和探索。这几年以来,可编程的ASIC技术、FPGA和CPLD极速发展,尤其在FPGA方面的发展极为明显,Xilinx公司的Virtex芯片,Virtex-E芯片和Virtex-II芯片,Altera公司的FPGA系列芯片都已经达到了ASIC的工艺水平。该芯片具有高集成度,并能稳定工作在告诉时钟芯片上,如Virtex-E已达到400Mhz的芯片。而今国外对于此类技术的运用已逐步成熟。1.3 VHDL语言相关语法说明1.3.1实体表达ENTITY e_name ISPORT (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的表达必须加单引号,否则会作为整体数据处理。BIT型数据可参与算数运算或逻辑运算,数据类型的定义包含在对应的程序包中。图1-1 VHDL程序设计基本结构PROCESS(clk); BEGIN IF CLKEVENT AND CLK=1 THEN Q1=D; END IF Q=D;END PROCESS当时钟信号发生变换时,进程语句被启动,语句将测定条件是否满足(即的上升沿是否到来),如果是,就执行,结束语句,最后执行。如果没有产生变换,亦或是语句不满足条件,那么跳过赋值语句,结束语句。1.4 论文主要研究内容本文在时间间隔测量的理论基础上,结合胖树结构设计了时间的间隔测量器,把温度计码转换1-0(0-1)跳变处的二进制位置码。针对FPGA的查找表结构,实现了处理任意2n位温度计码的基于胖树结构的温度计码解码器的设计。并让它在仿真平台中进行验证。1.5设计要求:1.输入的的是温度计码,输出的是二进制码。2.最大工作频率100MHZ。3.预测编码时间小于3ns。1.6设计思路学习了解胖树结构,明确其特点。掌握FPGA的基本理论知识、学习语言VerilogHDL语言,掌握相关软件的基本操作。完成前面所述内容,将温度计码解码器分为两部分实现:第一部分是延时链模块,第二部分基于胖树结构是时间间隔测量模块实现。最后将系统各模块组合仿真其结果并将结果进行分析。2 系统设计2.1 延时链测时间间隔原理该方法用于测量s信号的上升沿(下降沿)距离时钟clk的上升沿的时间差。在确保待测信号s到达延时链输入端的传输延时和系统时钟clk到达寄存器时钟脚的传输延时一致的情况下,s信号经过延迟单元延时后,出现在第一个延迟单元的结束,每经过一个,下一延迟单元的输出端子就会出现上升沿(或者下降沿)的信号,如果当时钟的信号上升沿来到时候,此时事件信号是高电平,那么同步器将产生锁存的信号,而锁存的过程耗时也就等于补偿了延迟。锁存信号的上升沿锁定事件信号将经过各个延迟单元后。这个现象和水银柱型温度计表示温度类似,所以称Qi的编码是温度计编码。温度计码是一连串的高低电平信号。例如,信号s的上升沿(下降沿)经过延时链,延时链的输出为111.10.0(000.01.1)的二进制温度计吗。温度计码的1-0(0-1)跳变位置反映了s的跳变沿到时钟的上升沿之间的延时。假定时钟周期,为事件信号与时钟信号之间的时间间隔,锁存结果反映了的量化值,量化单位(即分辨率)为。由温度计码编码器经过计算,得出“1”(“0”)的个数,然后根据“1”(“0”)的个数累加跳变沿之前的每个延时单元的延时,计算出出跳变沿的位置,可得到s跳变沿到clk上升沿之间的延时。 图2-1延时链测时间间隔原理图2.2亚稳态产生的原因亚稳态问题不会发生在同步系统中,因为同步系统中输入信号总是系统时钟保持一致,这一点保证了寄存器的时序要求,所以亚稳态不会发生。而当信号跨时钟域或者我们采集异步信号的时候,亚稳态问题就不可避免。它们由一下原因引起:a)当信号跨越时钟域传输时,由于源寄存器时钟和目的寄存器时钟相移未知,所以源寄存器数据发出数据,数据可能在任何时间到达异步时钟域的目的寄存器,所以无法保证满足目的寄存器Thu和Th的要求;b)而在采集异步信号时,因为异步信号可以随时随地地到达达目的寄存器,所以不能满足目的寄存器Tsu和Th的要求;当数据在目的寄存器Thu-Th时间窗口发生变化,也就是当数据的创建时间或者维持时间不能达到要求时,亚稳态现象就不可避免。我们从下面的图可以看到,当亚稳态产生时间后会有一个名为的反应时间,而系统会在这个振荡时间段之后恢复到稳定的“0”或“1”的状态,而由于这个是完全随机的,所以会对后续电路判断造成影响。图2-2亚稳态现象2.3亚稳态解决的办法为了减少异步信号传输的亚稳态问题,我们往往会将一连串使用在目标时钟域的寄存器信号同步到新的时钟域中。这些寄存器有额外的时间使信号从亚稳态回到正常状态。在提取异步信号边沿的时候,最普遍消除亚稳态的方法是多进行一次寄存器,这个方法做使用的寄存器数量和系统稳定性要求的高低成正比,系统稳定性要求越高,消除亚稳态就要使用更多级的寄存器。下图是一个两级的同步寄存器链。图2-3 亚稳态解决方案2.4胖树TC-To-BC解码胖树TC-To-BC解码器由两级组成。第一级是 one-out-of-N(N中取1)编码器,类似于地址解码,编码采用N个门并行转换N位。第二级采用多级门胖树形结构把编码好的one-out-of-N码转换为二进制码。图2-4胖树解码原理框图2.4.1 One-out-of-N编码模块One-out-of-N编码模块采用一个初始的p位x=(xp-1,xp-2,.,x1,x0)产生p+1位z=(zp,zp-1,.,z1,z0),其中,zi由下面的公式给出假设p=3,则,z1=x2x1x0+x2x1x0+x2x1x0。考虑温度计码的特点000.111,则对于一个温度计码00011111,根据上边的公式,对应的One-out-of-N码就是00100000,类似的可以扩展到16位。2.4.2 多级门胖树形结构解码实现16bit的one-out-of-N编码输入到树形结构的叶子节点,由根节点输出四位二进制编码,类似于一个树接一个树3D树形结构传递。一个节点的边沿数随着树形结构的高度的增加而增加,所以叫胖树结构。在算法上,胖树电路信号的延时是O(),ROM电路的信号延时位O(N),Wallace tree解码信号的延时位O(log1.5N),因此,胖树电路是速度最快的电路。图中,从任何叶子节点到根节点有3个或门的延时,从N-1个输入到n个输出的信号延时是一样的,这是个重要的特点允许没有流水线寄存器实现高速的波形流水线。不管速度的特点,或门结构的胖树是一个纯数字电路,不需要时钟,传感放大器,或者上拉电阻,因此,这个胖树结构可以比ROM电路有更高的噪声容纳,而且,胖树结构电路是静态的,数据驱动的,因此它的功耗比ROM电路低的多,抗干扰性也要好。图2-5输入为4位的胖树解码过程bit1=b0+b1+b2+b3=0bit2=c0+c1=0图2-6输入为8位的胖树解码过程bit0=a0+a1+a2+a3+a4+a5+a6+a7=1bit1=b0+b1+b2+b3=0bit2=c0+c1=0图2-7输入为16位胖树解码过程bit0=a0+a1+a2+a3+a4+a5+a6+a7=1bit1=b0+b1+b2+b3=0bit2=c0+c1=0bit3=d0=0以上4个公式为胖树解码计算公式。图2-8胖树转换电路胖树结构需要一个如图的转换电路,把tcn-1:0转换成tclnn-1:0,2阶及其以下的泡沫误差都可以被这个转换电路消除。N位胖树结构TCE公式如(1)(2)所示。 (1) 公式中OR表达的是每个元素之间是连续相或的。和的关系如公式(2)所示,。 (2)2.5 FPGA综合RTL视图图2-9 4位RTL总体视图图2-10 4位FatTree模块图2-11 4位 one-out-of-n编码模块图2-12 4位FatTreeEncode编码模块如图2-12所示FatTree模块分为两个部分:one-out-of-N编码模块如图2-11和FatTreeEncode编码模块如图2-12。图2-13 4位DelayLink编码模块如图2-13所示系统分为两大模块:延时链DelayLink模块如图2-13所示,和FatTree胖树解码模块如图2-10所示,其中延时链DelayLink模块为FatTree胖树解码模块提供温度计码。图2-14 4位Chip图图2-15 8位RTL总体视图图2-16 8位Fattree编码模块图2-17 8位one-out-of-n编码模块图2-18 8位FattreeEncode编码模块如图2-18所示FatTree模块分为两个部分:one-out-of-N编码模块如图2-17和FatTreeEncode编码模块如图2-18。图2-19 8位DelayLink编码模块如图2-19所示系统分为两大模块:延时链DelayLink模块如图2-19,和FatTree胖树解码模块如图2-16,其中延时链DelayLink模块为FatTree胖树解码模块提供温度计码。图2-20 8位Chip图图2-21 16位RTL总体视图图2-22 16位Fattree模块图2-23 16位DelayLink模块如图2-23所示系统分为两大模块:延时链DelayLink模块如图22所示,和FatTree胖树解码模块如图21所示,其中延时链DelayLink模块为FatTree胖树解码模块提供温度计码。图2-24 16位Chip图32位,64位,128位RTL视图请见附录。2.6综合后耗费的器件资源图2-25 4位胖树结构综合资源消耗图2-25为4位胖树结构的温度计码所消耗的资源,从图中我们可以看出total logic elements为52/81264,total registers数量为2,total pins位4/296。图2-26 8位胖树结构综合资源消耗图2-26位8位胖树结构的温度计码所消耗的资源,从图中我们可以看出total logic elements为59/81264,total registers数量为3,total pins位5/296。图2-27 16位胖树结构综合资源消耗图2-27为16位胖树结构的温度计码所消耗的资源,从图中我们可以看出total logic elements为79/68416,total registers数量为4,total pins位6/422。图2-28 32位胖树结构综合资源消耗图2-28为32位胖树结构的温度计码所消耗的资源,从图中我们可以看出total logic elements为100/81264,total registers数量为5/81264,total pins位7/296。图2-29 64位胖树结构综合资源消耗图2-29为64位胖树结构的温度计码所消耗的资源,从图中我们可以看出total logic elements为208/81264,total registers数量为6/81264,total pins位8/296。图2-30 128位胖树结构综合资源消耗图2-30为128位胖树结构的温度计码所消耗的资源,从图中我们可以看出total logic elements为417/81264,total registers数量为7/81264,total pins位9/296。图2-31 Total logic elements折线图上图为Total logic elements消耗折线图,可以看出随着位数的增加,Total logic elements也不断增加。图2-32 Total registers折线图上图为Total registers消耗折线图,可以看出随着位数的增加,Total registers成正比例增加。图2-33 Total pins折线图上图为Total pins消耗折线图,可以看出随着位数的增加,Total pins成正比例增加。3 结果仿真及说明本章主要对设计的胖树解码器进行仿真结果说明,以及在quartus中进行设计综合。胖树解码器分为两级,第一级为one-out-of-N编码,将16位温度计码进行们编码方便后一级的转换,第二级为胖树编码,将one-out-of-N编码进行转换,输出四位二进制码。设计采用的延时单元总共有4个,8个,16个,32个,64个,128个采样时钟clk频率为100M,时钟周期位10ns。输入信为clk_DUT。由于在把altera cycloneIII器件的仿真模型添加到modelsim中后进行仿真,无法体现出延时单元的延时,故此单独设计了延时单元时,加上了延时时间,在软件中可以调用库中的单元作为基本延时单元。每个延时单元的延时时间分别为:3.1 one-out-of-N编码模块仿真结果及说明本模块针对温度计码进行编码,仿真结果如下图所示:图3-1 4位one-out-of-n编码模块与胖树编码模块仿真结果图3-1中,lutt信号为温度计码(00.01.11),binary_code为one-out-of-N编码输出。输入的温度计码由0001到1111,由仿真波形图可以看到one-out-of-N编码模块很好的实现了功能。图3-1中对one-out-of-N编码模块输出binary_code进行解码转换,delaytime为二进制输出。输入的binary_code由0001到1000。在第图中,输入的binary_code为1000,表示编码的温度计码为11,其中温度计码中的“1”的个数为2,输出的DelayTime值为11,也就是十进制的3,仿真结果符合预期的目标。图3-2 8位one-out-of-n编码模块与胖树编码模块仿真结果图3-2中,lutt信号为温度计码(00.01.11),binary_code为one-out-of-N编码输出。输入的温度计码由00000001到11111111,由仿真波形图可以看到one-out-of-N编码模块很好的实现了功能。图3-2中对one-out-of-N编码模块输出binary_code进行解码转换,delaytime为二进制输出。输入的binary_code由00000001到10000000。在第图中,输入的binary_code为10000000,表示编码的温度计码为111,其中温度计码中的“1”的个数为3,输出的DelayTime值为111,也就是十进制的7,仿真结果符合预期的目标。图3-3 16位One-out-of-N编码模块与胖树编码模块仿真结果图3-3中,lutt信号为温度计码(00.01.11),binary_code为one-out-of-N编码输出。输入的温度计码由0000000000000001到1111111111111111,由仿真波形图可以看到one-out-of-N编码模块很好的实现了功能。图3-3中对one-out-of-N编码模块输出binary_code进行解码转换,delaytime为二进制输出。输入的binary_code由0000000000000000到10000000000000000。在第二幅图中,输入的binary_code为0000000000100000,表示编码的温度计码为0000000000011111,其中温度计码中的“1”的个数为5,输出的DelayTime值为0101,也就是十进制的5,仿真结果符合预期的目标。3.2胖树解码器仿真结果及说明3.2.1 4位胖树结构仿真本模块将one-out-of-N编码模块仿真与胖树编码模块仿真结合起来,实现胖树解码功能,将输入的4位温度计码解码为表示输入信号lutt位置的四位二进制码,仿真结果及说明如下所示。图3-4 4位胖树结构解码器仿真第一个周期如图3-4所示,在仿真刚开始的第一个时钟周期内,由于无法对延时单元的输入进行初始化,延时单元会输出未知值,在经过一个时钟周期后,延时单元的输出值会稳定,因此在测试平台中,clk_DUT信号上升沿出现在第二个时钟周期以后。图中,clk信号是采样时钟,clk_DUT信号是待测信号,binary_code是4位的延时链输出值,DelayTime信号是表示输入信号位置的二位二进制码。图3-5 输出01时的延时误差图3-5中,clk_DUT信号的上升沿距离时钟上升沿的距离为3996ps,DelayTime输出值为01(十进制的1),计算得到的距离为1*=1*2500=2500ps,误差为496ps。图3-6 输出11是的延时误差图3-6中,clk_DUT信号的上升沿距离时钟上升沿的距离为9021ps,DelayTime输出值为11(十进制的3),计算得到的距离为3*=3*2500=7500ps,误差为1521ps。图3-7 输出00时的延时误差图3-7中,clk_DUT信号的上升沿距离时钟上升沿的距离为0ps,DelayTime输出值为00(十进制的0),计算得到的距离为0*=0*2500=0ps,误差为0ps。图3-8 输出为10时的延时误差图3-8中,clk_DUT信号的上升沿距离时钟上升沿的距离为7005ps,DelayTime输出值为10(十进制的2),计算得到的距离为2*=2*2500=5000ps,误差为2005ps。3.2.2 8位胖树结构仿真本模块将one-out-of-N编码模块仿真与胖树编码模块仿真结合起来,实现胖树解码功能,将输入的8位温度计码解码为表示输入信号lutt位置的八位二进制码,仿真结果及说明如下所示。图3-9 8位胖树结构仿真的第一个周期如图3-9所示,在仿真刚开始的第一个时钟周期内,由于无法对延时单元的输入进行初始化,延时单元会输出未知值,在经过一个时钟周期后,延时单元的输出值会稳定,因此在测试平台中,clk_DUT信号上升沿出现在第二个时钟周期以后。图中,clk信号是采样时钟,clk_DUT信号是待测信号,binary_code是8位的延时链输出值,DelayTime信号是表示输入信号位置的三位二进制码。图3-10 输出100时的延时误差图3-10中,clk_DUT信号的上升沿距离时钟上升沿的距离为3997ps,DelayTime输出值为011(十进制的3),计算得到的距离为4*=3*1250=3750ps,误差为247ps。图3-11 输出110时的延时误差图3-11中,clk_DUT信号的上升沿距离时钟上升沿的距离为8003ps,DelayTime输出值为110(十进制的6),计算得到的距离为6*=6*1250=7500ps,误差为503ps。图3-12 输出101时的延时误差图3-12中,clk_DUT信号的上升沿距离时钟上升沿的距离为7002ps,DelayTime输出值为101(十进制的5),计算得到的距离为5*=5*1250=6250ps,误差为752ps。3.2.3 16位胖树结构仿真本模块将one-out-of-N编码模块仿真与胖树编码模块仿真结合起来,实现胖树解码功能,将输入的16位温度计码解码为表示输入信号lutt位置的十六位二进制码,仿真结果及说明如下所示。在仿真刚开始的第一个时钟周期内,由于无法对延时单元的输入进行初始化,延时单元会输出未知值,在经过一个时钟周期后,延时单元的输出值会稳定,因此在测试平台中,clk_DUT信号上升沿出现在第二个时钟周期以后。图中,clk信号是采样时钟,clk_DUT信号是待测信号,binary_code是16位的延时链输出值,DelayTime信号是表示输入信号位置的四位二进制码。图3-13 输出0100时的延时误差图3-13中,clk_DUT信号的上升沿距离时钟上升沿的距离为4998ps,DelayTime输出值为0111(十进制的7),计算得到的距离为7*=7*625=4375ps,误差为623ps。图3-14 速出0100时的延时误差图3-14中,clk_DUT信号的上升沿距离时钟上升沿的距离为3000ps,DelayTime输出值为0100(十进制的4),计算得到的距离为4*=4*625=2500ps,误差为500ps。图3-15 输出0001时的延时误差图3-15中,clk_DUT信号的上升沿距离时钟上升沿的距离为1002ps,DelayTime输出值为0001(十进制的1),计算得到的距离为1*=1*625=625ps,误差为377ps。图3-16 输出1110时的延时误差图3-16中,clk_DUT信号的上升沿距离时钟上升沿的距离为9002ps,DelayTime输出值为1110(十进制的14),计算得到的距离为14*=14*625=8750ps,误差为252ps。图3-17输出0111时的延时误差图3-17中,clk_DUT信号的上升沿距离时钟上升沿的距离为4998ps,DelayTime输出值为0111(十进制的7),计算得到的距离为7*=7*625=4375ps,误差为623ps。图3-18 输出0000延时误差图3-18中,clk_DUT信号的上升沿距离时钟上升沿的距离为0ps,DelayTime输出值为0000(十进制的0),计算得到的距离为0*=0*625=0ps,误差为0ps。胖树解码器输入的温度计码为16位,其测量精度为=0.625ns。如果想要更高精度的测量,则应该增加延时链的长度,这样的值会减小如32位64位128位,测量精度会上升。3.2.4 32位胖树结构仿真本模块将one-out-of-N编码模块仿真与胖树编码模块仿真结合起来,实现胖树解码功能,将输入的32位温度计码解码为表示输入信号lutt位置的32位二进制码,仿真结果及说明如下所示。图3-19 输出01111时的延时误差图3-19中,clk_DUT信号的上升沿距离时钟上升沿的距离为5005ps,DelayTime输出值为01111(十进制的15),计算得到的距离为15*=15*312.5=4687.5ps,误差为317.5ps。图3-20 输出01100时的延时误差图3-20中,clk_DUT信号的上升沿距离时钟上升沿的距离为4004ps,DelayTime输出值为01100(十进制的12),计算得到的距离为12*=12*312.5=3750ps,误差为254ps。图3-21 输出01001时的延时误差图3-21中,clk_DUT信号的上升沿距离时钟上升沿的距离为3002ps,DelayTime输出值为01001(十进制的9),计算得到的距离为9*=9*312.5=2812.5ps,误差为189.5ps。图3-22 输出00110时的延时误差图3-22中,clk_DUT信号的上升沿距离时钟上升沿的距离为1998ps,DelayTime输出值为00110(十进制的6),计算得到的距离为6*=6*312.5=1875ps,误差为123ps。3.2.5 64位胖树结构仿真本模块将one-out-of-N编码模块仿真与胖树编码模块仿真结合起来,实现胖树解码功能,将输入的64位温度计码解码为表示输入信号lutt位置的64位二进制码,仿真结果及说明如下所示。图3-23 输出000110时的延时误差图3-23中,clk_DUT信号的上升沿距离时钟上升沿的距离为998ps,DelayTime输出值为000110(十进制的6),计算得到的距离为6*=6*156.25=937.5ps,误差为60.5ps。图3-24 输出110010时的延时误差图3-24中,clk_DUT信号的上升沿距离时钟上升沿的距离为8003ps,DelayTime输出值为110010(十进制的50),计算得到的距离为50*=50*156.25=7812.5ps,误差为190.5ps。图3-25 输出111000时的延时误差图3-25中,clk_DUT信号的上升沿距离时钟上升沿的距离为8999ps,DelayTime输出值为111000(十进制的56),计算得到的距离为56*=56*156.25=8750ps,误差为249ps。图3-26 输出110010时的延时误差图3-26中,clk_DUT信号的上升沿距离时钟上升沿的距离为9998ps,DelayTime输出值为111110(十进制的62),计算得到的距离为62*=62*156.25=9687.5ps,误差为310.2ps。3.2.6 128位胖树结构仿真本模块将one-out-of-N编码模块仿真与胖树编码模块仿真结合起来,实现胖树解码功能,将输入的128位温度计码解码为表示输入信号lutt位置的128位二进制码,仿真结果及说明如下所示。图3-27 输出0011001时的延时误差图3-27中,clk_DUT信号的上升沿距离时钟上升沿的距离为1993ps,DelayTime输出值为0011001(十进制的25),计算得到的距离为25*=25*78.125=1953.125ps,误差为39.875ps。图3-28 输出0100110时的延时误差图3-28中,clk_DUT信号的上升沿距离时钟上升沿的距离为3001ps,DelayTime输出值为0100110(十进制的38),计算得到的距离为38*=38*78.125=2968.75ps,误差为32.25ps。图3-29 输出0110011时的延时误差图3-29中,clk_DUT信号的上升沿距离时钟上升沿的距离为3992ps,DelayTime输出值为0110011(十进制的51),计算得到的距离为51*=51*78.125=3984.375ps,误差为7.625ps。图3-30 输出1000000时的延时误差图3-30中,clk_DUT信号的上升沿距离时钟上升沿的距离为0ps,DelayTime输出值为000000(十进制的0),计算得到的距离为0*=0*78.125=05ps,误差为0ps。如果想要更高精度的测量,则应该增加延时链的长度,这样的值会减小如:,测量精度会上升。4 结束语本设计进行了高精度短时间温度码的间隔测量系统的设计。首先是传统时间间隔测量的介绍,之后阐述了高精度测量原理并对其误差进行理解和分析,利用信号发射和返回的间隔时间,通过VHDL编程,一个运用现场可编程门阵列芯片的高精度时间间隔测量系统被设计了出来,这个设计实用且可靠,达到开题报告中所预期的效果。比传统的方法更好的是,这个测量系统简化了电路板设计,大大提升了系统的实用性和可靠性,使数字系统的软件化,也符合了当代社会数字逻辑设计的发展趋势。本次毕业设计,我除了进行相关专业知识的回顾截相关实验操作,还有许多其他的收获,比如在绘制相关电路图的过程中,我还学会了Word绘图,Quartus ii+modelsim仿真,这次毕业设计不但让我有了这个专业的相关基础知识,还让我对书本上的知识进行了进一步的理解,提升了我的专业素养。本次毕业设计充分锻炼了我以前很多生疏的技能,如动手能力,处理问题的能力等。本文使用现代EDA设计方法和VHDL语言及模块化的设计方法,设计一款基于胖树结构的温度计码解码器设计的硬件实现方案。不但克服了分立硬件电路带来的抗干扰性差和不易调整等缺陷,而且拥有软件开发时间短,价格便宜,执行速度高,等优点。提高了温度计解码器的频率实现连续测量,减少资源消耗,构建多通道。毕业设计说明书作者签名: 日期: 年 月 日指导教师签名:日期: 年 月 日参考文献1 J Kalisz.Field Programmabl Gate Array based time-to-digital converter with 200ps resolutionJ . IEEE Transmission Instrument Meas,2000:51-53.2 R Szplet,J Kalisz and R Szymanowski. Interpolating time counter with 100ps resolution on a single FPGA deviceJ.IEEE Trans Instrum Meas,2000:79-83.3 黄秉英.时间频率的精确测量M.北京.中国计量出版社,1986,20(4):12- 28.4 梁勇飞.基于 FPGA 的时间序列采集器J.核电子学与探测技术,2006,26(3):355-357.5 郑业民,董晓舟.可编程逻辑器件开发软件 Quartus II M.北京:国防工业出版社,2006,11(9):76-114.6 汤海.特殊时间间隔测量J.电子科技,2006,13 (2):40-43.7 张廷华,樊桂花,孙华燕.基于FPGA的高精度时间间隔测量方法研究与实现J.光学技术,2006,32:452-454.8 霍玉晶,陈千颂,潘志文.脉冲激光雷达的时间间隔测量综述J.激光与红外,2001,31:136-139.9 孙杰,潘继飞.高精度时间间隔测量方法综述J.计算机测量与控制,2007,15(2):145-148.10李大鹏,徐东明,陈文宣.基于门延时的数字TDC电路设计J.中国集成电路,2011.7:37-40.11夏雨闻.Verilog数字系统设计M.北京:北京航空航天大学出版社,2008.12余冬菊,苏玉萍,郑琼琼.基于FPGA的数字TDC设计J.中国科技信息,2008(8):122-123.13张延,黄佩诚.高精度时间间隔测量技术与方法J.天文学进展,2006,24(1):1-15.14 郑业民,董晓舟.可编程逻辑器件开发软件 Quartus II M.北京:国防工业出版社,2006,11(9):76-114.15 汤海.特殊时间间隔测量J.电子科技,2006,13 (2):40-43.16 张廷华,樊桂花,孙华燕.基于FPGA的高精度时间间隔测量方法研究与实现J.光学技术,2006,32:452-454.17 霍玉晶,陈千颂,潘志文.脉冲激光雷达的时间间隔测量综述J.激光与红外,2001,31:136-139.18 孙杰,潘继飞.高精度时间间隔测量方法综述J.计算机测量与控制,2007,15(2):145-148.致 谢通过16周的努力,参阅了大量的文献、专著、和资料,才使我有了较为清晰的思路来完成本课题的设计。设计也引用了其中的部分内容,在此,对这些文献、专著和资料的作者和编著们表示感谢。在这里同时也要感谢指导老师周老师,由于对以前所学知识的遗忘,我在最初的一个星期里总是不知道该怎么入手,正是有了周老师的指点我的毕业设计才得以顺利进行。而且在整个论文的撰写过程中出现的问题周老师也给予了及时的指正,最后我的论文才得以顺利完成。在论文的撰写和设计模块的过程中,我也得到了很多同学和朋友的帮助与支持,在这里一并表示感谢。附 录4位温度解码器代码timescale 1ns/10psmodule TimeConvert(input wire clk,clk_DUT,output wire 1:0DelayTime);/-wire 3:0 lutt;/-component instance-DelayLink delay_unit(.lutt(lutt),.clk_DUT(clk_DUT);FatTree fattree_unit(.lutt(lutt),.clk(clk),.clk_DUT(clk_DUT),.DelayTime(DelayTime); /-endmodule#timescale 1ns/1psmodule DelayLink(output wire 3:0 lutt,input clk_DUT);/-1-delay dly0 (.in(clk_DUT), .out(lutt0);/-2- delay dly1 (.in(lutt0), .out(lutt1);/-3-delay dly2 (.in(lutt1), .out(lutt2);/-4-delay dly3 (.in(lutt2), .out(lutt3);endmodule/-delay cell-timescale 1ns/10psmodule delay(output out,input in);/assign #0.63 out = in;wire 10:0w;lcell ins1 (.in(in), .out(w0);lcell ins2 (.in(w0), .out(w1);lcell ins3 (.in(w1), .out(w2);lcell ins4 (.in(w2), .out(w3);lcell ins5 (.in(w3), .out(w4);lcell ins6 (.in(w4), .out(w5);lcell ins7 (.in(w5), .out(w6);lcell ins8 (.in(w6), .out(w7);lcell ins9 (.in(w7), .out(w8);lcell ins10 (.in(w8), .out(w9);lcell ins11 (.in(w9), .out(w10);lcell ins12 (.in(w10), .out(out);endmodule#timescale 1ns/10psmodule FatTree(input clk,input clk_DUT,input 3:0lutt,output reg 1:0DelayTime);wire 3:0 binary_code;wire 1:0 delaytime;one_out_of_N one_out_of_N_ins ( .Q(lutt), .binary_code(binary_code);FatTreeEncode FatTreeEncode_ins( .binary_code(binary_code), .DelayTime(delaytime);always (posedge clk) beginif(clk_DUT)DelayTime = delaytime;elseDelayTime = 4b0000;endendmodule#timescale 1ns/10psmodule one_out_of_N(input 3:0 Q,output reg 3:0 binary_code);integer i;wire 1:0 count;assign count = Q0+Q1+Q2+Q3; always (count) beginfor(i=0;i=3;i=i+1) beginif(i = count)binary_codei = 1b1;elsebinary_codei = 1b0;endendendmodule#timescale 1ns/10psmodule FatTreeEncode(input 3:0binary_code,output 1:0DelayTime);wire a1,a0,a1n;wire b0;/the first layer of FatTreeEncodeassign a1 = binary_code3;assign a1n = binary_code2;assign a0 = binary_code1;assign DelayTime0 = a0|a1;assign b0 = a1 | a1n;assign DelayTime1 = b0;endmodule8位温度解码器代码timescale 1ns/10psmodule TimeConvert(input wire clk,clk_DUT,output wire 2:0DelayTime);/-wire 7:0 lutt;/-component instance-DelayLink delay_unit(.lutt(lutt),.clk_DUT(clk_DUT);FatTree fattree_unit(.lutt(lutt),.clk(clk),.clk_DUT(clk_DUT),.DelayTime(DelayTime); /-endmodule#timescale 1ns/1psmodule DelayLink(output wire 7:0 lutt,input clk_DUT);/-1-delay dly0 (.in(clk_DUT), .out(lutt0);/-2- delay dly1 (.in(lutt0), .out(lutt1);/-3-delay dly2 (.in(lutt1), .out(lutt2);/-4-delay dly3 (.in(lutt2), .out(lutt3);/-5-delay dly4 (.in(lutt3), .out(lutt4);/-6-delay dly5 (.in(lutt4), .out(lutt5);/-7-delay dly6 (.in(lutt5), .out(lutt6);/-8-delay dly7 (.in(lutt6), .out(lutt7);endmodule/-delay cell-timescale 1ns/10psmodule delay(output out,input in);/assign #0.63 out = in;wire 4:0w;lcell ins1(.in(in), .out(w0);lcell ins2(.in(w0), .out(w1);lcell ins3(.in(w1), .out(w2);lcell ins4(.in(w2), .out(w3);lcell ins5(.in(w3), .out(w4);lcell ins6(.in(w4), .out(out);endmodule#timescale 1ns/10psmodule FatTree(input clk,input clk_DUT,input 7:0lutt,output reg 2:0DelayTime);wire 7:0 binary_code;wire 2:0 delaytime;one_out_of_N one_out_of_N_ins ( .Q(lutt), .binary_code(binary_code);FatTreeEncode FatTreeEncode_ins( .binary_code(binary_code), .DelayTime(delaytime);always (posedge clk) beginif(clk_DUT)DelayTime = delaytime;elseDelayTime = 3b000;endendmodule#timescale 1ns/10psmodule one_out_of_N(input 7:0 Q,output reg 7:0 binary_code);integer i;wire 2:0 count;assign count = Q0+Q1+Q2+Q3+Q4+Q5+Q6+Q7; always (count) beginfor(i=0;i=7;i=i+1) beginif(i = count)binary_codei = 1b1;elsebinary_codei = 1b0;endendendmodule#timescale 1ns/10psmodule FatTreeEncode(input 7:0binary_code,output 2:0DelayTime);wire a3,a2,a1,a0,a3n,a2n,a1n;wire b1,b0,b1n;wire c0;/the first layer of FatTreeEncodeassign a3 = binary_code7;assign a3n = binary_code6;assign a2 = binary_code5;assign a2n = binary_code4;assign a1 = binary_code3;assign a1n = binary_code2;assign a0 = binary_code1;assign DelayTime0 = (a0|a1)|(a2|a3);/ the second layer of FatTreeEncodeassign b1 = a3 | a3n;assign b1n = a2 | a2n;assign b0 = a1 | a1n;assign DelayTime1 = b0 | b1;/ the third layer of FatTreeEncodeassign c0 = b1 | b1n;assign DelayTime2 = c0;Endmodule16位温度解码器代码timescale 1ns/10psmodule TimeConvert(input wire clk,clk_DUT,output wire 3:0DelayTime);/-wire 15:0 lutt;/-component instance-DelayLink delay_unit(.lutt(lutt),.clk_DUT(clk_DUT);FatTree fattree_unit(.lutt(lutt),.clk(clk),.clk_DUT(clk_DUT),.DelayTime(DelayTime); /-endmodule#timescale 1ns/1psmodule DelayLink(output wire 15:0 lutt,input clk_DUT);/-1-delay dly0 (.in(clk_DUT), .out(lutt0);/-2- delay dly1 (.in(lutt0), .out(lutt1);/-3-delay dly2 (.in(lutt1), .out(lutt2);/-4-delay dly3 (.in(lutt2), .out(lutt3);/-5-delay dly4 (.in(lutt3), .out(lutt4);/-6-delay dly5 (.in(lutt4), .out(lutt5);/-7-delay dly6 (.in(lutt5), .out(lutt6);/-8-delay dly7 (.in(lutt6), .out(lutt7);/-9-delay dly8 (.in(lutt7), .out(lutt8);/-10- delay dly9 (.in(lutt8), .out(lutt9);/-11-delay dly10 (.in(lutt9), .out(lutt10);/-12-delay dly11 (.in(lutt10), .out(lutt11);/-13-delay dly12 (.in(lutt11), .out(lutt12);/-14-delay dly13 (.in(lutt12), .out(lutt13);/-13-delay dly14 (.in(lutt13), .out(lutt14);/-15-delay dly15 (.in(lutt14), .out(lutt15);endmodule/-delay cell-timescale 1ns/10psmodule delay(output out,input in);/assign #0.63 out = in;wire 1:0w;lcell ins1(.in(in), .out(w0);lcell ins2(.in(w0), .out(w1);lcell ins3(.in(w1), .out(out);endmodule#timescale 1ns/10psmodule FatTree(input clk,input clk_DUT,input 15:0lutt,output reg 3:0DelayTime);wire 15:0 binary_code;wire 3:0 delaytime;one_out_of_N one_out_of_N_ins ( .Q(lutt), .binary_code(binary_code);FatTreeEncode FatTreeEncode_ins( .binary_code(binary_code), .DelayTime(delaytime);always (posedge clk) beginif(clk_DUT)DelayTime = delaytime;elseDelayTime = 4b0000;endendmodule#timescale 1ns/10psmodule FatTreeEncode(input 15:0binary_code,output 3:0DelayTime);wire a7,a6,a5,a4,a3,a2,a1,a0,a7n,a6n,a5n,a4n,a3n,a2n,a1n;wire b3,b2,b1,b0,b3n,b2n,b1n;wire c1,c0,c1n;wire d;/the first layer of FatTreeEncodeassign a7 = binary_code15;assign a7n = binary_code14;as
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:基于胖树结构的温度计码解码器设计说明书
链接地址:https://www.renrendoc.com/p-81013456.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2024  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!