资源描述:
《电子科大-计算机学院-数字逻辑实验报告--Verilog组合逻辑设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、电子科技大学实验报告学生姓名:郫县阿基王学号:66指导教师:唐明一、实验项目名称:Verilog组合逻辑设计二、实验目的:使用ISE软件和Verilog语言进行组合逻辑的设计与实现。三、实验内容:1.3-8译码器的设计和实现。2.4位并行进位加法器的设计和实现。3.两输入4位多路选择器的设计和实现。实验要求如下:1.采用Verilog语言设计,使用门级方式进行描述。2.编写仿真测试代码。3.编写约束文件,使输入、输出信号与开发板的引脚对应。4.下载到FPGA开发板,拨动输入开关,观察Led灯的显示是否符合真值表。四、实
2、验原理:1.74x138译码器是输出低有效的3-8译码器。表1所示为74x138译码器的真值表。表174x138译码器的真值表输入输出G1G2A_LG2B_LCBAY7_LY6_LY5_LY4_LY3_LY2_LY1_LY0_L0xxxxx11111111x1xxxx11111111xx1xxx111111111000001111111010000111111101100010111110111000111111011110010011101111100101110111111001101011111110011101
3、111111根据3-8译码器的真值表,可得输出的函数表达式为根据上述函数表达式,可画出逻辑电路图为。图13-8译码器的逻辑电路图2.数据选择器的逻辑功能是根据地址选择端的控制,从多路输入数据中选择一路数据输出。因此,它可实现时分多路传输电路中发送端电子开关的功能,故又称为复用器(Multiplexer),并用MUX来表示。表22输入1位多路选择器的真值表数据输入选择控制S输出YD0D1000001001001110100100111101011112选1数据选择器的真值表如表1所示,其中,D0、D1是2路数据输入,S为
4、选择控制端,Y为数据选择器的输出,根据真值表可写出它的输出函数表达式为:如果输入再加上低有效的输入使能端,则输出的表达式变为根据上述函数表达式,可画出2输入4位多路选择器的逻辑电路图为。图22输入4位多路选择器的逻辑电路图2.1位全加器的真值表如下表31位全加器的真值表输入变量输出变量ABCiCi+1S000000010101001011101000110110110101111101110根据真值表,输出表达式为:对于4位并行加法器,可以按入下公式进行设计图3所示为4位并行进位加法器框图,本实验中用Verilog语句
5、来描述。图34位并行进位加法器五、实验器材(设备、元器件):PC机、WindowsXP、Anvyl或Nexys3开发板、XilinxISE14.7开发工具、DigilentAdept下载工具。六、实验步骤:实验步骤包括:建立新工程、原理图或代码输入、设计仿真、输入输出引脚设置、生成流代码与下载调试。七、关键源代码:1.在ISE设计中可以直接输入如下3-8译码器的代码moduledecoder_74x138(G1,G2A_L,G2B_L,C,B,A,Y7_L,Y6_L,Y5_L,Y4_L,Y3_L,Y2_L,Y1_L,Y
6、0_L);inputG1,G2A_L,G2B_L;inputC,B,A;outputY7_L,Y6_L,Y5_L,Y4_L,Y3_L,Y2_L,Y1_L,Y0_L;wireG1_L;wireG;wireA_L,B_L,C_L;wireA_H,B_H,C_H;not(G1_L,G1);nor(G,G1_L,G2A_L,G2B_L);not(A_L,A);not(B_L,B);not(C_L,C);not(A_H,A_L);not(B_H,B_L);not(C_H,C_L);nand(Y0_L,C_L,B_L,A_L,G)
7、;nand(Y1_L,C_L,B_L,A_H,G);nand(Y2_L,C_L,B_H,A_L,G);nand(Y3_L,C_L,B_H,A_H,G);nand(Y4_L,C_H,B_L,A_L,G);nand(Y5_L,C_H,B_L,A_H,G);nand(Y6_L,C_H,B_H,A_L,G);nand(Y7_L,C_H,B_H,A_H,G);endmodule2.3-8译码器的仿真测试代码//AddstimulushereG1=0;G2A_L=1'bx;G2B_L=1'bx;C=1'bx;B=1'bx;A=1'
8、bx;#100;G1=1'bx;G2A_L=1;G2B_L=1'bx;C=1'bx;B=1'bx;A=1'bx;#100;G1=1'bx;G2A_L=1'bx;G2B_L=1;C=1'bx;B=1'bx;A=1'bx;#100;G1=1;G2A_L=0;G2B_L=0;C=0;B=0;A=0;#100;G1=1;G2A_L=0;G