《电子科技大学-数字逻辑综合实验-4个实验报告(共54页).doc》由会员分享,可在线阅读,更多相关《电子科技大学-数字逻辑综合实验-4个实验报告(共54页).doc(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上电子科技大学 计算机 学院标 准 实 验 报 告(实验)课程名称 数字逻辑综合实验 xxx20160xxxxxxxxx电子科技大学教务处制表电 子 科 技 大 学实 验 报 告 1学生姓名:xxx 学 号:指导教师:吉家成 米源 王华一、实验项目名称:中小规模组合逻辑设计二、实验目的:1掌握非门、或门、与非门、异或门、数据选择器的逻辑功能。2掌握常有逻辑门电路的引脚排列及其使用方法。3采用中小规模逻辑门进行组合逻辑设计,掌握组合逻辑的设计方法。三、实验内容:1逻辑输入采用实验箱的K1-K11,逻辑输出接L1-L10。测试实验箱上的HD74LS04P(非门)、SN74L
2、S32N(或门)、SN74LS00N(与非门)、SN74HC86N(异或门)、SN74HC153(数据选择器、多路复用器)的逻辑功能。2采用小规模逻辑器件设计一位数据比较器:设一位数据比较器的输入为A、B,比较AB,A=B,AB,A=B,AB,A=B,AB,输出三个比较结果,输出采用低电平有效。表15 一位数据比较器的测试结果输入输出实测输出是否符合逻辑功能ABAGTB_LAEQB_LALTB_L00HLH是01HHL是10LHH是11HLH是备注:1位数据比较器,输入1和输入2均为L时,此处为低电平有效,输出依次为H,L,H,指示灯亮,灭,亮。备注:1位数据比较器,输入1为L,输入2为H时,
3、此处为低电平有效,输出依次为H,H,L,指示灯亮,亮,灭。备注:1位数据比较器,输入1为H,输入2为L时,此处为低电平有效,输出依次为L,H,H,指示灯灭,亮,亮。备注:1位数据比较器,输入1为H,输入2为H时,此处为低电平有效,输出依次为H,L,H,指示灯亮,灭,亮。73输入多数表决器的设计设输入为A、B、C,当三个输入有两个或两个以上同意时,输出结果为同意 ,输入、输出的同意均为高电平有效。表16 3输入多数表决器的测试结果输入输出F实测输出是否符合逻辑功能ABC000L是001L是010L是011H是100L是101H是110H是111H是备注:3输入表决器,用与非门连接非门代替与门,输
4、入依次为L,H,H时,此处为高电平有效,输出为H,指示灯亮。备注:3输入表决器,用与非门连接非门代替与门,输入依次为H,L,H时,此处为高电平有效,输出为H,指示灯亮。备注:3输入表决器,用与非门连接非门代替与门,输入依次为H,H,L时,此处为高电平有效,输出为H,指示灯亮。备注:3输入表决器,用与非门连接非门代替与门,输入依次为H,H,H时,此处为高电平有效,输出为H,指示灯亮。八、实验结论:设计3输入多数表决器时,采用中规模逻辑器件进行组合逻辑电路的设计,可以有效地简化电路设计与实现过程,能够轻松地测试输出结果是否与预期相符,同时便于电路的修改。九、总结及心得体会:通过本次实验,我们巩固了
5、在数字逻辑课程上学到的几种门电路,以及如何设计特定功能的简单电路。在课堂知识的基础上,自己动手测试了非门,或门,异或门,4输入数据选择器等电路的输出和输入的关系,还利用真值表、卡诺图等工具来化简逻辑函数,设计出了1位数值比较器和三输入表决器。最后,改变输入状态,检查电路输出是否符合逻辑。十、对本实验过程及方法、手段的改进建议:本次实验我们完成了数字逻辑课程的部分实践,希望可以进行更深入的拓展,设计并实现功能更为全面的电路。 报告评分: 指导教师签字:电 子 科 技 大 学实 验 报 告 2学生姓名:xxx 学 号: 指导教师:吉家成 米源 王华一、实验项目名称: Verilog组合逻辑设计二、
6、实验目的:使用ISE软件和Verilog语言进行组合逻辑的设计与实现。三、实验内容:13-8译码器的设计和实现。24位并行进位加法器的设计和实现。3两输入4位多路选择器的设计和实现。实验要求如下:1采用Verilog语言设计,使用门级方式进行描述。2编写仿真测试代码。3编写约束文件,使输入、输出信号与开发板的引脚对应。4下载到FPGA开发板,拨动输入开关,观察Led灯的显示是否符合真值表。四、实验原理:174x138译码器是输出低有效的3-8译码器。表1所示为74x138译码器的真值表。表1 74x138译码器的真值表输入输出G1G2A_LG2B_LCBAY7_LY6_LY5_LY4_LY3_
7、LY2_LY1_LY0_L0xxxxx11111111x1xxxx11111111xx1xxx111111111000001111111010000111111101100010111110111000111111011110010011101111100101110111111001101011111110011101111111根据3-8译码器的真值表,可得输出的函数表达式为根据上述函数表达式,可画出逻辑电路图为。图1 3-8译码器的逻辑电路图2. 数据选择器的逻辑功能是根据地址选择端的控制,从多路输入数据中选择一路数据输出。因此,它可实现时分多路传输电路中发送端电子开关的功能,故又称为复
8、用器(Multiplexer),并用MUX来表示。表2 2输入1位多路选择器的真值表数据输入选择控制S输出YD0D100000100100111010010011110101111 2选1数据选择器的真值表如表1所示,其中,D0、D1是2路数据输入,S为选择控制端,Y为数据选择器的输出,根据真值表可写出它的输出函数表达式为: 如果输入再加上低有效的输入使能端,则输出的表达式变为根据上述函数表达式,可画出2输入4位多路选择器的逻辑电路图为。图2 2输入4位多路选择器的逻辑电路图2. 1位全加器的真值表如下表3 1位全加器的真值表输入变量输出变量ABCiCi+1S00000001010100101
9、11010001101101101011111根据真值表,输出表达式为:对于4位并行加法器,可以按入下公式进行设计图3所示为4位并行进位加法器框图,本实验中用Verilog语句来描述。图3 4位并行进位加法器五、实验器材(设备、元器件): PC机、Windows XP、Anvyl或Nexys3开发板、Xilinx ISE 14.7开发工具、Digilent Adept下载工具。六、实验步骤:实验步骤包括:建立新工程、原理图或代码输入、设计仿真、输入输出引脚设置、生成流代码与下载调试。七、关键源代码:1在ISE设计中可以直接输入如下3-8译码器的代码module lmx74138(G1, G2A
10、, G2B, A, B, C, Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7);/新建模块input G1, G2A, G2B, A, B, C;output Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7; /输入变量和输出变量and (G, G1, G2A, G2B); /按照38译码器电路图先与nand(Y0, A, B, C, G); /再与非nand(Y1, A, B, C, G);nand(Y2, A, B, C, G);nand(Y3, A, B, C, G);nand(Y4, A, B, C, G);nand(Y5, A, B, C, G);nan
11、d(Y6, A, B, C, G);nand(Y7, A, B, C, G);endmodule /结束模块23-8译码器的仿真测试代码initial begin /此处只附关键的激励代码/ Initialize InputsG1 = 0;G2A = 0;G2B = 0;A = 0;B = 0;C = 0;/ Wait 100 ns for global reset to finish#100; G1 = 1;G2A = 0;G2B = 0;A = 1;B = 1;C = 1;#100;G1 = 1;G2A = 0;G2B = 0;A = 1;B = 0;C = 0;#100;G1 = 1;G
12、2A = 0;G2B = 0;A = 1;B = 1;C = 0;end仿真结果如下图所示。输入从低位到高位为:111,输出Y7=0。(低电平有效):输入从低位到高位为:001,输出Y1=0。(低电平有效):输入从低位到高位为:011,输出Y3=0。(低电平有效):14位并行加法器的代码module lmx74283(A,B,C0,S,C4 ); /新建模块input3:0 A,B; /输入变量和输出变量input C0;output3:0 S;output C4;wire3:0 G;wire3:0 P;and(G0,A0,B0); /按照电路图原理先将输入接入与门得结果Gand(G1,A1,
13、B1);and(G2,A2,B2);and(G3,A3,B3);or(P0,A0,B0); /再接入或门得结果Por(P1,A1,B1);or(P2,A2,B2);or(P3,A3,B3);and(R1,P0,C0);or(C1,G0,R1); and(R2,P1,G0); /P和G再接入与门and(R3,P1,P0,C0);or(C2,R2,R3,G1);and(R4,P2,G1);and(R5,P2,R2);and(R6,R3,P2);or(C3,G2,R4,R5,R6);and(R7,P3,G2);and(R8,R4,P3);and(R9,R5,P3);and(R10,R6,P3);or
14、(C4,G3,R7,R8,R9,R10); xor(S0,A0,B0,C0); /最后异或xor(S1,A1,B1,C1);xor(S2,A2,B2,C2);xor(S3,A3,B3,C3);endmodule2加法器的仿真测试代码initial begin/ Initialize Inputs初始输入变量A = 0;B = 0;C0 = 0;/ Wait 100 ns for global reset to finish#100; A = 5;B = 6;C0 = 0;#100; A = 5;B = 4;C0 = 1;/ Add stimulus hereend 仿真结果如下图所示。输入为0
15、101和0110,输入进位为0输出1011,输出进位为0:输入为0101和0100,输入进位为1输出1010,输出进位为0:1数据选择器的代码module lmx74157(ENL,S,D10,D11,D20,D21,D30,D31,D40,D41,Y1,Y2,Y3,Y4 );input ENL,S,D10,D11,D20,D21,D30,D31,D40,D41;output Y1,Y2,Y3,Y4; /4个输出,进行选择的结果and(S1,ENL,S);and(S2,ENL,S);and(D1A,D10,S1); /输入D1和S1先接入与门,得中间变量D1A,D1Band(D1B,D11,S
16、2);or(Y1,D1A,D1B); /中间变量接入或门and(D2A,D20,S1); /类似上一段代码(D1和S1)and(D2B,D21,S2);or(Y2,D2A,D2B); and(D3A,D30,S1); /类似上一段代码(D1和S1)and(D3B,D31,S2);or(Y3,D3A,D3B);and(D4A,D40,S1); /类似上一段代码(D1和S1)and(D4B,D41,S2);or(Y4,D4A,D4B);endmodule2. 数据选择器的仿真测试代码initial begin /此处只附测试文件中的关键激励代码/ Initialize InputsENL = 0;
17、S = 0;D10 = 0;D11 = 0;D20 = 0;D21 = 0;D30 = 0;D31 = 0;D40 = 0;D41 = 0;/ Wait 100 ns for global reset to finish#100; ENL = 0;S = 0;D10 = 1;D11 = 0;D20 = 1;D21 = 0;D30 = 1;D31 = 0;D40 = 1;D41 = 0;#100; ENL = 0;S = 1;D10 = 1;D11 = 0;D20 = 1;D21 = 0;D30 = 1;D31 = 0;D40 = 1;D41 = 0;end 仿真结果如下图所示。S为0时,选择第
18、一组输入:S为1时,选择第二组输入:八、实验结论:Verilog电路描述语言可以帮助我们进行电路图的仿真。在实现真实电路之前,用ISE对电路图进行仿真测试,判断其功能是否满足预期,十分有必要。九、总结及心得体会:我们用verilog语言来对具有一定功能的电路图进行描述,并对调试通过的代码进行测试,判断输入输出是否满足预期的电路功能。通过本次实验,学习到了ISE的使用方法,和verilog基本语法,以及调试和测试的步骤。感受到了亲自对电路进行仿真的乐趣。十、对本实验过程及方法、手段的改进建议:本次实验我们用verilog语言进行电路仿真,希望可以进行更深入的拓展,设计并仿真功能更为全面的电路。
19、报告评分: 指导教师签字:电 子 科 技 大 学实 验 报 告 3学生姓名:xxx 学 号: 指导教师:吉家成 米源 王华一、实验项目名称: 中小规模时序逻辑设计二、实验目的:l 掌握74x161计数器的逻辑功能。l 掌握74x161计数器的级联使用方法。l 采用74x161计数器和小规模逻辑门设计60进制计数器。三、实验内容:实现模60计数器:1)用两片74x161分别实现模10和模6计数器,用数码管显示计数器的输出状态。2)再将两片74x161进行级联,实现模60计数器。四、实验原理:如下是74161计数器的引脚图:CP表示输入时钟脉冲,CR是清零端,LD是置数控制端 ,CTp和CTt是计
20、数器工作状态控制端,D0D3是并行输入数据端,CO是进位信号端,Q0Q3是计数器状态输出端。74161计数器的工作状态表已经给出:根据此状态表,可以知道74161的性能特点如下:1. 可以直接清零2. 数据可以并行预置,但需CP上升沿配合3. 可进行二进制同步计数4. 具有进位输出信号,可以串接计数使用5. 当进位输出为1111时,产生进位输出,CO=1,当下一个CP上升沿到来之时,内部4个触发器均翻转为0,计数器重新开始计数。反馈预置数法:该法是用译码电路检测计数器的状态,当计数器到达被检测的状态时,译码电路输出低电平或高电平,将其反馈到计数器的预置数端,使预置数端出现有效电平。利用预置数端
21、的异步/同步预置功能,将数据输入端所加的预置数装入计数器,从而实现预定模数的计数。反馈复位法:该法也是用译码电路(门电路)来检测计数器的状态,当计数器达到被检测的状态时,译码电路输出低电平或高电平,把该信号反馈到计数器的清零端(复位端),使清零端出现有效电平。五、实验器材(设备、元器件): 数字逻辑实验箱一台,HD74LS04P(非门)、SN74LS00N(与非门)、SN74HC161N(计数器)各1片。六、实验步骤:1) 选择合适的方法,绘制电路图:此处选择反馈预置数法,因为反馈复位法会出现持续时间过短,无法被观测到的情况。绘制电路图如下:左边一个为模10计数器,右边为模6计数器。选择左边7
22、4161的输出为10时的两个为1的输出位与非后连接LD,实现清零功能。左边74161的输出为10时的两个为1输出位与非后连接右边74161的CTt和CTp段,实现满10进位功能。右边74161则将输出端为6的两个为1的输出位与非后连接LD,实现整个计数器满59清零的功能。2) 按照电路图,对实验箱中元器件进行连接,注意接地和接高电平。3) 对连接好的试验箱进行通电,观察实验箱左上方数字显示的情况,如下图:4) 对显示的数字变化情况进行观察总结,判断电路是否完成了模60计数器的功能左边计数器满9归0,同时右边计数器进1,两边计数器达到59时,清零。上面两幅图显示了,左边计数器达到9以后就归0并重
23、新计数,右边计数器接受了进位,从0变为1的过程。七、实验结论:74161计数器可以通过反馈复位法和反馈预置数法实现模m计数器的功能。将一个模m计数器和一个模n计数器相连,可以实现模m*n计数器的功能。我们可以通过对一个元器件的性能进行分析,来设计满足特定需求的电路,如此处的模60计数器电路。答:这是一个模48的电路(16*3),输出显示的范围是047。九、总结及心得体会:本次实验中,我们自己设计并动手连接电路,最终用74161计数器和与非门实现了一个模60计数器。通过这次实验,我感受到了数字逻辑的知识在生活中的应用,我们可以通过对电路的分析与设计,实现具有特定功能(比如这次实现的计数器)的电路
24、。十、对本实验过程及方法、手段的改进建议:希望除了实现模m计数器以外,还可以设计满足其它更多功能的电路,对所学知识进行进一步巩固和拓展。 报告评分: 指导教师签字:电 子 科 技 大 学实 验 报 告 4学生姓名:xxx 学 号:指导教师:吉家成 米源 王华一、实验项目名称:Verilog时序逻辑设计二、实验目的:掌握边沿D触发器74x74、移位寄存器74x194的工作原理。采用移位寄存器74x194设计3位最大序列长度线性反馈移位寄存器LFSR计数器。三、实验内容:1设计边沿D触发器74x74。2设计通用移位寄存器74x194。3采用1片74x194和其它小规模逻辑门设计3位LFSR计数器。
25、l 采用Verilog语言设计,使用门级方式进行描述。l 编写仿真测试代码。l 编写约束文件,使输入、输出信号与开发板的引脚对应。l 下载到FPGA开发板,拨动输入开关和按钮,观察Led灯的显示是否符合设计要求。四、实验原理:174x74边沿D触发器下图是一个带有置位端和复位端的边沿D触发器的原理图。下图PR端和CLR端信号不同时有效时,触发器能在时钟CLK和输入信号D的控制下开始工作。边沿D触发器电路原理图2. 移位寄存器74x194四位移位寄存器的原理图如图所示。因为从时钟信号CP的上升沿加到触发器上开始到输出端新状态稳定地建立起来有一段延迟时间,所以当时钟信号同时加到四个触发器上时,每个
26、触发器接收的都是前一个触发器中原来的数据。通过调节CLR和S1,S0,可以实现74x194的移位寄存功能。4位通用移位寄存器74x194电路原理图3. LFSR计数器LFSR有2的n次方减1种有效状态,是一个产生二进制位序列的机制。这个寄存器由一个初始化矢量设置的一系列信元组成,寄存器行为被一个时钟调节。在每个定时时刻,这个寄存器信元的内容被移动到一个正确的位置,这个排外的或这个信元子集内的内容被放在最左边的信元中。LFSR计数器的一般结构如下图:LFSR的一般结构五、实验器材(设备、元器件): 计算机一台,Project Navigator软件一套,Adept软件一套,NEXYS 3开发板一
27、个。六、实验步骤:实验步骤包括:1. 在Project Navigator中新建一个项目2. 在项目中添加要实现的功能所对应的module3. 根据上述原理及电路图设计代码,定义输入和输出变量4. 添加约束文件5. 生成bit文件,用Adept将代码下载到开发板上,并查看其功能。七、实验数据:174x74边沿D触发器模块代码:module d74x74(CLK,D,PR_L,CLR_L,Q,QN );input PR_L,CLR_L,CLK,D; /置位端,复位端,时钟端,输入端output Q,QN; /Q和QN互为反变量 wire w1,w2,w3,w4; /中间变量 nand(w1,PR
28、_L,w4,w2); /根据电路原理图nand(w2,w1,CLR_L,CLK); /用与非门构造的D触发器nand(w3,w2,CLK,w4);nand(w4,w3,CLR_L,D);nand(Q,PR_L,w2,QN);nand(QN,Q,w3,CLR_L);endmodule测试代码:initial begin /此处只附关键激励测试代码 CLK = 0 ;PR_L = 1 ;CLR_L = 1 ;D = 0 ;#4 D = 1 ; /给D赋值不同的输入#2 D = 0 ;#8 D = 0 ;#2 D = 1 ;#13 CLR_L = 0 ;#10 CLR_L = 1 ;#10 PR_L
29、 = 0 ;#5 D = 0 ;#10 PR_L = 1 ;endalways begin #5 CLK = CLK ;end波形图:边沿D触发器的时序图如上图。PR_L端和CLR_L端同时为1时,边沿D触发器处在工作状态。D为0时,在钟控电平的下降沿,Q的值变为和D一样,也变为0。QN的值则和Q相反,为1,满足D触发器将输出置为D的功能。UCF文件:NET CLKLOC=V10; /钟控点平#SwitchNET CLR_L LOC= T10; /SW0表示输入CLR_LNET PR_L LOC= T9; /SW1表示输入PR_LNET D LOC= V9; /SW2表示输入D#LedNET QN LOC=T11; /LD7表示输出QNNET Q LOC=R11; /LD6表示输出Q开发板测试:输入CLR_L和PR_L同为低电平时,QN和Q都为高电平,电路处于禁用状态。一般情况下,不允许有这种输入:(如下图所示)输入CLR_L和PR_L同为高电平时,边沿型D触发器处于工作状态。此时,D端(即SWITCH2)输入为1,为高电平。表示Q的LD6(即输出R11)灯亮,即为高电平,输出为1。表示QN的LD7(即输出T11)灯灭,为与Q相反的低电平,输出为0(如下图所示):输入CLR_L和PR_L同为高电平时,边沿型D触发
限制150内