1、实验五Verilog设计组合电路实验五Verilog设计组合电路一、实验目的1、学习非门、与门、与非门、或门、或非门、异或门和异或非门的VerilogHDL描述;2、掌握基本组合逻辑电路的实现方法;3、进一步了解always语句的设计方法;4、学习用case语句设计数据优先编码器/译码器的实现方法;二、实验内容1、参考教材4.4节,用VerilogHDL分别设计并仿真基本门电路1位全加器f_adder.v,基本门电路如下图所示。(自己选择一种描述方式:数据流描述方式、结构描述方式或行为描述方式)2、用VerilogHDL设计法设计并仿真8-3线优先编码器encode.v,其真值表如下表所示。3
2、、用Verilog语言编写3-8译码器的程序,符号如图所示,其中g1,g2a,g2b是使能控制输入端,当g1为高电平,g2a,g2b为低电平时,译码器工作,其他状态时,译码器被禁止工作,全部输出均为无效电平(高电平1)。当CBA=000时,Y0N=0,其余为1;当CBA=001时,Y1N=0,其余为1;依此类推,文件命名为decoder3_8.v。(选做)三、实验步骤:第一个实验:1、打开QuartusII,新建一个工程f_adderyjq2、新建一个VerilogHDL 文件 3、输入程序(数据流方式):module f_adder1(a,b,cin,s,co); input a,b,cin
3、; output s,co;assign s=(ab)cin;assign co=(a&b)|(cin&(ab);endmodule4、设置顶层实体名(点settingsgeneral 下拉选)5、编译6、新建一个VerilogHDL文件输入文件f_adder2.v7、输入程序(结构描述方式):module f_adder2(a,b,cin,s,co); input a,b,cin; output s,co;wire s1,s2,s3;xor (s1,a,b);and (s2,s1,cin);and (s3,a,b);xor (s,cin,s1);or (co,s2,s3);endmodule
4、8、设置顶层实体名(点settingsgeneral 下拉选)9、编译10、新建一个VerilogHDL文件输入文件f_adder3.v11、输入程序(行为描述方式): module f_adder3(a,b,cin,s,co); input a,b,cin; output s,co;reg s,co;always (a,b,cin) begin case(a,b,cin) b000: s=0; b001: s=1; b010: s=1; b011: s=0; b100: s=1; b101: s=0; b110: s=0; b111: s=1; endcase case(a,b,cin) b
5、000: co=0; b001: co=0; b010: co=0; b011: co=1; b100: co=0; b101: co=1; b110: co=1; b111: co=1; endcaseendendmodule12、设置顶层实体名(点settingsgeneral 下拉选)13、编译14、执行fileCreate/UpdateCreate Symbol Files for Current Flie为VHDI设计文件生成原件符号 15、建立波形文件8、导入引脚9、仿真结果如下: 总结根据电路图分析可知: a b cs co0000000110010100110110010101
6、011100111111 与仿真的波形相符。第二个实验:1、打开QuartusII,新建一个工程encodeyjq2、新建一个VerilogHDL文件输入文件encodeyjq.v3、输入程序module encode(y,a);input7:0 a;output2:0 y;reg2:0 y;always (a) begin if(a7) y=b111; else if(a6) y=b110; else if(a5) y=b101; else if(a4) y=b100; else if(a3) y=b011; else if(a2) y=b010; else if(a1) y=b001; e
7、lse if(a0) y=b000; endendmodule4、设置顶层文件(点settingsgeneral 下拉选)5、编译6、执行fileCreate/UpdateCreate Symbol Files for Current Flie为VHDI设计文件生成原件符号 7、建立波形文件8、导入引脚9、仿真结果如下:总结:结果与图片相同,仿真正确。第三个实验1、打开QuartusII,新建一个工程decoderyjq2、新建一个VerilogHDL文件输入文件decoderyjq.v3、输入程序module decoder(g1,g2a,g2b,A,B,C,y);input A,B,C,g
8、1,g2a,g2b;output7:0 y;reg7:0 y;always (g1 or g2a or g2b or A or B or C)begin if (g1!=1|g2a!=0|g2b!=0) y = b11111111; else begin case(C,B,A) b000: y=b11111110; b001: y=b11111101; b010: y=b11111011; b011: y=b11110111; b100: y=b11101111; b101: y=b11011111; b110: y=b10111111; b111: ygeneral 下拉选)5、编译6、执行fileCreate/UpdateCreate Symbol Files for Current Flie为VHDI设计文件生成原件符号 7、建立波形文件8、导入引脚9、仿真仿真结果与实验要求相同,故仿真正确。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1