您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 数字系统设计综合实验报告
数字系统设计综合实验报告实验名称:1、加法器设计2、编码器设计3、译码器设计4、数据选择器设计5、计数器设计6、累加器设计7、交通灯控制器设计班级:姓名:学号:指导老师:实验1加法器设计1)实验目的(1)复习加法器的分类及工作原理。(2)掌握用图形法设计半加器的方法。(3)掌握用元件例化法设计全加器的方法。(4)掌握用元件例化法设计多位加法器的方法。(5)掌握用VerilogHDL语言设计多位加法器的方法。(6)学习运用波形仿真验证程序的正确性。(7)学习定时分析工具的使用方法。2)实验原理加法器是能够实现二进制加法运算的电路,是构成计算机中算术运算电路的基本单元。目前,在数字计算机中,无论加、减、乘、除法运算,都是化为若干步加法运算来完成的。加法器可分为1位加法器和多位加法器两大类。1位加法器有可分为半加器和全加器两种,多位加法器可分为串行进位加法器和超前进位加法器两种。(1)半加器如果不考虑来自低位的进位而将两个1位二进制数相加,称半加。实现半加运算的电路则称为半加器。若设A和B是两个1位的加数,S是两者相加的和,C是向高位的进位。则由二进制加法运算规则可以得到。(2)全加器在将两个1位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,即将两个对应位的加数和来自低位的进位三个数相加,这种运算称全加。实现全加运算的电路则称为全加器。若设A、B、CI分别是两个1位的加数、来自低位的进位,S是相加的和,C是向高位的进位。则由二进制加法运算规则可以得到:3)实验内容及步骤(1)用图形法设计半加器,仿真设计结果。(2)用原件例化的方法设计全加器,仿真设计结果(3)用原件例化的方法设计一个4为二进制加法器,仿真设计结果,进行定时分析。(4)用VerilogHDL语言设计一个4为二进制加法器,仿真设计结果,进行定时分析。(5)分别下载用上述两种方法设计4为加法器,并进行在线测试。4)设计1)用图形法设计的半加器,如下图1所示,由其生成的符号如图2所示。2)用元件例化的方法设计的全加器如图3所示,由其生成的符号如图4所示。图三:图四:5)全加器时序仿真波形如图下图所示6)心得体会:第一次做数字系统设计实验,老师给我们讲了用图形法设计的全过程。在这次过程中,我进一步加强对理论知识的学习,将理论与实践结合起来。实验过程中遇到了一个小问题是生成半加器符号,后来发现缺了File/CreateDefault这一步。通过这一次的失误,我明白了做事要认真!最后将实验做出来了,体味了成功的喜悦!通过这次实验我复习了加法器的分类及工作原理,并掌握了用图形法设计半加器的方法,掌握了用元件例化法设计全加器的方法,掌握了用元件例化法设计多位加法器的方法,掌握了用VerilogHDL语言设计多位加法器的方法,学习了运用波形仿真验证程序的正确性,学习定时分析工具的使用方法。实验2编码器设计1)实验目的(1)复习编码器的构成及工作原理。(2)掌握用VerilogHDL语言设计编码器的方法。(3)掌握用图形法设计优先编码器的方法。(4)掌握用VerilogHDL语言设计优先编码器的方法。(5)进一步学习运用波形仿真验证程序的正确性。2)实验原理编码器(Encoder)的逻辑功能是将输入的每一个高、低电平信号编成一个对应的二进制代码。目前,经常使用的编码器有普通编码器和优先编码器两类。(1)普通编码器在普通编码器中,任何时刻只允许输入一个编码信号,否则输出将发生混乱。图2.2.1是3位二进制编码器框图,它的输入是I0~I7八个高电平信号,输出是3位二进制代码Y2、Y1、Y0,为此,又称为8线-3线编码器。其输出与输入的对应关系如表2.2.1所示。(2)优先编码器在优先编码器(PriorityEncoder)中,允许同时输入两个以上的编码信号。不过在设计优先编码器时已将所有的输入信号按优先顺序进行排队,当几个输入信号同时出现时,只对其中优先权最高的一个进行编码。优先编码器经常用于具有优先级处理的数字系统中,例如,中断管理系统通常用优先编码器实现。8线-3线优先编码器74147的真值表如表2.2.2所示。3)实验内容及步骤(1)用VerilogHDL语言设计8线——3线普通编码器,仿真设计结果。(2)用图形法设计实现74148功能的优先编码器,仿真设计结果,进行定时分析。(3)用VerilogHDL语言设计8线——3线优先编码器,仿真设计结果,进行定时分析。(4)分别下载用上述两种方法所设计的优先编码器,并进行在线测试。2)用图形法设计的优先编码器74148原理图如下:4)优化编码器功能仿真波形如下图:5)心得体会:这一次做数电学过的优先编码器,感觉还是很轻松的。在实验过程中没怎么遇到太大的问题,感觉就是速度慢了一点,说明平时训练的少,所以我就想平时还需多练习,在确保正确的前提下,再提高速度!通过这次实验我复习编码器的构成及工作原理,掌握了用VerilogHDL语言设计编码器的方法,掌握了用图形法设计优先编码器的方法,掌握了用VerilogHDL语言设计优先编码器的方法,进一步学习运用波形仿真验证程序的正确性。实验3译码器设计1)实验目的(1)复习二进制译码器及显示译码器的构成及工作原理。(2)掌握用VerilogHDL语言设计二进制译码器的方法。(3)掌握用VerilogHDL语言设计显示译码器的方法。(4)进一步学习运用波形仿真验证程序的正确性。2)实验原理译码器是数字系统中常用的组合逻辑电路,其逻辑功能是将每个输入的二进制代码译成对应的高、低电平信号并输出。译码是编码的反操作。常用的译码器电路有二进制译码器、二-十进制译码器和显示译码器三类。(1)3线-8线译码器是二进制译码器的一种。其输入为一组3位二进制代码,而输出则是一路高、低电平信号。图2.3.1是3线-8线译码器74138的逻辑框图。其中,A2、A1、A0为3位二进制代码输入端,Y0’~Y7’是8个输出端,S1、S2’、S3’为3个输入控制端。它们之间的关系如表2.3.1所示。(2)七段数码显示译码器为了能以十进制数码直观地显示数字系统的运行数据,目前广泛使用七段数码显示译码器来显示字符,因这种字符显示器由七段可发光的线段拼合而成,又称为七段数码管。半导体数码管的每条线段都是一个发光二极管。如果七个发光二极管的公共端是阴极并且接在一起,则称为共阴极数码管,反之,称为共阳极数码管。半导体数码管可以用TTL或CMOS集成电路直接驱动。为此,就需要使用显示译码器将BCD代码译成数码管所需要的驱动信号,以便数码管以十进制数字显示出BCD代码所表示的数值。如图2.3.2所示。3)实验内容及步骤(1)用VerilogHDL语言设计3线——8线译码器,仿真设计结果。(2)用VerilogHDL语言设计七段数码显示译码器,仿真设计结果,进行定时分析。(3)下载七段数码显示译码器,并进行在线测试。用VerilogHDL语言设计的七段数码显示译码器程序decoder4_7如下:moduledecoder4_7(a,b,c,d,e,f,g,D3,D2,D1,D0);outputa,b,c,d,e,f,g;inputD3,D2,D1,D0;rega,b,c,d,e,f,g;always@(D3orD2orD1orD0)begincase({D3,D2,D1,D0})0:{a,b,c,d,e,f,g}=7'b1111110;1:{a,b,c,d,e,f,g}=7'b0110000;2:{a,b,c,d,e,f,g}=7'b1101101;3:{a,b,c,d,e,f,g}=7'b1111001;4:{a,b,c,d,e,f,g}=7'b0110011;5:{a,b,c,d,e,f,g}=7'b1011011;6:{a,b,c,d,e,f,g}=7'b1011111;7:{a,b,c,d,e,f,g}=7'b1110000;8:{a,b,c,d,e,f,g}=7'b1111111;9:{a,b,c,d,e,f,g}=7'b1111011;default:{a,b,c,d,e,f,g}=7'bx;endcaseendendmodule3)七段数码显示译码器的功能仿真波形如下图:4)心得体会:这次老师教了我们新的一种数字系统设计方式,用VerilogHDL语言来设计,刚开始有一点生疏,经过和同学们交流讨论下,顺利的完成了实验。实验过程中遇到了一些问题:输入代码时,出现漏字母,没区分大小写等等。实验效率和实验水平还待在平时加强练习,总结反思。通过这次实验我复习了二进制译码器及显示译码器的构成及工作原理,掌握了用VerilogHDL语言设计二进制译码器的方法,掌握了用VerilogHDL语言设计显示译码器的方法,进一步学习运用波形仿真验证程序的正确性。实验4数据选择器设计1)实验目的(1)复习数据选择器的构成及工作原理。(2)掌握用VerilogHDL语言设计数据选择器的方法。(3)进一步加深对仿真结果和仿真过程的理解。2)实验原理数据选择器又叫多路开关,简称MUX(Multiplexer).数据选择器的逻辑功能是在地址选择信号的控制下,从多路数据中选择一路数据作为输出信号,数据选择器原理示意图如图2.4.1所示。常用的数据选择器有双四选一数据选择器74153、八选一数据选择器74151。其中,74151的逻辑图如图2.4.2所示,其真值表如表2.4.1所示。3)实验内容及步骤(1)用VerilogHDL语言设计四选一数据选择器,仿真设计结果。(2)用VerilogHDL语言设计实现74151功能的数据选择器,仿真设计结果。(3)下载74151数据选择器,并进行在线测试。modulemux4_1(out,in0,in1,in2,in3,sel);outputout;inputin0,in1,in2,in3;input[1:0]sel;regout;always@(in0orin1orin2orin3orsel)beginif(sel==2'b00)out=in0;elseif(sel==2'b01)out=in1;elseif(sel==2'b10)out=in2;elseout=in3;endEndmodule3)四选一数据选择器的功能仿真波形如下图:4)心得体会:这次实验,我是在上课之前做好的,心里还是很有把握的!输入的代码经软件检查都没有问题,只是在实验过程中有一个问题没有解决,就是在做仿真图形时,sel的输入波形不会输入,经过自己看书解决了这个问题,就是在做图形仿真界面选时钟周期赋值,并将value赋予B11。通过这次实验我感到无比的自豪,也对这实验有了点自信!通过这次实验我复习了数据选择器的构成及工作原理,掌握了用VerilogHDL语言设计数据选择器的方法,进一步加深对仿真结果和仿真过程的理解。实验5计数器设计一、实验目的:1、复习计数器的构成及工作原理;2、掌握用VerilogHDL语言设计计数器的方法;3、掌握用图形法设计计数器的方法;4、进一步掌握时序逻辑电路的仿真方法。二、实验原理:计数器是数字系统中使用最多的时序电路。计数器最常见的用途是能对时钟脉冲进行计数。按计数器的计数容量来分类,计数器可分为二进制计数器、十进制计数器、任意进制的计数器三类,其中,二进制计数器的模值等于2……n(n为触发器个数)。可以用已有固定进制的计数器通过外电路的不同连接方式来构成任意进制的计数器,具体有反馈清零、反馈置数、同步级联(并行连接)、异步连接(串行连接)、整体置零、整体置数等方式。常见的计数器芯片有74160(十进制)、74161(4位二进制)、74192(双时钟可逆十进制)等。3)实验内容及步骤(1)用图形法设计一个十进制计数器,仿真设计结果。(2)用VerilogHDL语言设计一个十进制计数器(要求加法计数;时钟上升沿触发;异步清零,低电平有效;同步置数,高电平有效),并进行仿真验证。(3)下载所设计的十进制计数器,并进行在线测试。1)用图形法设计的十进制计数器如下图所示2)用VerilogHDL语言描
本文标题:数字系统设计综合实验报告
链接地址:https://www.777doc.com/doc-2425546 .html