1、1电 子 科 技 大 学实 验 报 告学生姓名:ZYZ 学 号:2014060103026 指导教师:DJ一、实验项目名称: Verilog 组合逻辑设计二、实验目的:使用 ISE 软件和 Verilog 语言进行组合逻辑的设计与实现。三、实验内容:13-8 译码器的设计和实现。24 位并行进位加法器的设计和实现。3两输入 4 位多路选择器的设计和实现。实验要求如下:1采用 Verilog 语言设计,使用门级方式进行描述。2编写仿真测试代码。3编写约束文件,使输入、输出信号与开发板的引脚对应。4下载到 FPGA 开发板,拨动输入开关,观察 Led 灯的显示是否符合真值表。四、实验原理:174x
2、138 译码器是输出低有效的 3-8 译码器。表 1 所示为 74x138 译码器的真值表。表 1 74x138 译码器的真值表输入 输出G1 G2A_L G2B_L C B A Y7_L Y6_L Y5_L Y4_L Y3_L Y2_L Y1_L Y0_L0 x x x x x 1 1 1 1 1 1 1 1x 1 x x x x 1 1 1 1 1 1 1 1x x 1 x x x 1 1 1 1 1 1 1 11 0 0 0 0 0 1 1 1 1 1 1 1 01 0 0 0 0 1 1 1 1 1 1 1 0 11 0 0 0 1 0 1 1 1 1 1 0 1 121 0 0 0
3、1 1 1 1 1 1 0 1 1 11 0 0 1 0 0 1 1 1 0 1 1 1 11 0 0 1 0 1 1 1 0 1 1 1 1 11 0 0 1 1 0 1 0 1 1 1 1 1 11 0 0 1 1 1 0 1 1 1 1 1 1 1根据 3-8 译码器的真值表,可得输出的函数表达式为 2_12_345_67GALBYCLBAYCGLBA根据上述函数表达式,可画出逻辑电路图为。图 1 3-8 译码器的逻辑电路图32. 数据选择器的逻辑功能是根据地址选择端的控制,从多路输入数据中选择一路数据输出。因此,它可实现时分多路传输电路中发送端电子开关的功能,故又称为复用器(Multi
4、plexer ),并用 MUX 来表示。表 2 2 输入 1 位多路选择器的真值表数据输入D0 D1 选择控制 S 输出 Y0 0 0 00 1 0 01 0 0 11 1 0 10 0 1 00 1 1 11 0 1 01 1 1 12 选 1 数据选择器的真值表如表 1 所示,其中,D 0、D 1 是 2 路数据输入,S 为选择控制端, Y 为数据选择器的输出,根据真值表可写出它的输出函数表达式为:01YS如果输入再加上低有效的输入使能端,则输出的表达式变为 011_()_ENLDSS根据上述函数表达式,可画出 2 输入 4 位多路选择器的逻辑电路图为。4图 2 2 输入 4 位多路选择器
5、的逻辑电路图2. 1 位全加器的真值表如下表 3 1 位全加器的真值表输入变量 输出变量A B Ci Ci+1 S0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 10 1 1 1 0根据真值表,输出表达式为:对于 4 位并行加法器,可以按入下公式进行设计i+1()iiiiiiiiSABCABC510021003221102043321121()()(iiii igABpCgpCCggppCp0303210)()()iiiiiiiiiiiiigggpCSABCABp图 3 所示为 4 位并行进位加法器框
6、图,本实验中用 Verilog 语句来描述。6图 3 4 位并行进位加法器五、实验器材(设备、元器件):PC 机、Windows XP、Anvyl 或 Nexys3 开发板、Xilinx ISE 14.7 开发工具、Digilent Adept 下载工具。六、实验步骤:7实验步骤包括:建立新工程、原理图或代码输入、设计仿真、输入输出引脚设置、生成流代码与下载调试。七、关键源代码:1在 ISE 设计中可以直接输入如下 3-8 译码器的代码23-8 译码器的仿真测试代码仿真结果如下图所示。8图 4 译码器的仿真结果3译码器在 Nexys3 开发板上的约束文件44 位并行加法器的代码95加法器的仿真
7、测试代码仿真结果如下图所示。10图 5 加法器的仿真结果6加法器在 Nexys3 开发板上的约束文件117数据选择器的代码12module mux_2in4bit(input EN_L , S ,input4:1 D0 , D1 ,output4:1 Y);wire w0 , w1 , w2 , w3 , w4 , w5 , w6 , w7 , w8 , w9 ;wire S_L ;not ( S_L , S ) ;nor ( w0 , EN_L , S ) ;nor ( w1 , EN_L , S_L ) ;and ( w2 , D01 , w0 ) ;and ( w3 , D11 , w1
8、 ) ; and ( w4 , D02 , w0 ) ;and ( w5 , D12 , w1 ) ;and ( w6 , D03 , w0 ) ;and ( w7 , D13 , w1 ) ;and ( w8 , D04 , w0 ) ;and ( w9 , D14 , w1 ) ; or ( Y1 , w2 , w3 ) ;or ( Y2 , w4 , w5 ) ; or ( Y3 , w6 , w7 ) ;or ( Y4 , w8 , w9 ) ; endmodule8. 数据选择器的仿真测试代码/ Add stimulus here EN_L = 1 S = 1bx #100 EN_L
9、 = 0 S = 0 D0 = 4b0101 #100 EN_L = 0 S = 1 D1 = 4b101013仿真结果如下图所示。图 6 数据选择器的仿真结果9数据选择器在 Nexys3 开发板上的约束文件#Switch NET D01 LOC= T10; #SW0 NET D02 LOC= T9; #SW1 NET D03 LOC= V9; #SW2NET D04 LOC= M8; #SW3 NET D11 LOC= N8; #SW4 NET D12 LOC= U8; #SW5 NET D13 LOC= V8; #SW6 NET D14 LOC= T5; #SW7 #Led NET Y1 LOC=U16; #LED0 NET Y2 LOC=V16; #LED1 NET Y3 LOC=U15; #LED2 NET Y4 LOC=V15; #LED3 #Button Net S Loc= B8; #BTN0 Net EN_L Loc= C4; #BTNL八、实验结论:1415九、总结及心得体会:分析好逻辑关系后,在写代码。调试,有时候再运行一遍就可以。约束条件最容易出问题。16十、对本实验过程及方法、手段的改进建议:减少实验项目。报告评分:指导教师签字: