资源描述:
《Verilog实验报告(电子).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、西安邮电大学VerilogHDL大作业报告书学院名称:电子工程学院学生姓名:专业名称:电子信息工程班级:实验一异或门设计一、实验目的(1)熟悉Modelsim软件(2)掌握Modelsim软件的编译、仿真方法(3)熟练运用Modelsim软件进行HDL程序设计开发二、实验内容my_or,my_and和my_not门构造一个双输入端的xor门,其功能是计算z=x’y+xy’,其中x和y为输入,z为输出;编写激励模块对x和y的四种输入组合进行测试仿真1、实验要求用VerilogHDL程序实现一个异或门,Mode
2、lism仿真,观察效果。2、步骤1、建立工程2、添加文件到工程3、编译文件4、查看编译后的设计单元5、将信号加入波形窗口6、运行仿真实验描述如下:modulemy_and(a_out,a1,a2);outputa_out;inputa1,a2;wires1;nand(s1,a1,a2);nand(a_out,s1,1'b1);endmodulemodulemy_not(n_out,b);outputn_out;inputb;nand(n_out,b,1'b1);endmodulemodulemy_or(o_
3、out,c1,c2);outputo_out;inputc1,c2;wires1,s2;nand(s1,c1,1'b1);nand(s2,c2,1'b1);nand(o_out,s1,s2);endmodulemoduleMY_XOR(z,x,y);outputz;inputx,y;wirea1,a2,n1,n2;my_notSTEP01(n1,x);my_notSTEP02(n2,y);my_andSTEP03(a1,n1,y);my_andSTEP04(a2,n2,x);my_orSTEP05(z,a1
4、,a2);Endmodulemodulestimulus;regX,Y;wireOUTPUT;MY_XORxor01(OUTPUT,X,Y);initialbegin$monitor($time,"X=%b,Y=%b---OUTPUT=%b",X,Y,OUTPUT);endinitialbeginX=1'b0;Y=1'b0;#5X=1'b1;Y=1'b0;#5X=1'b1;Y=1'b1;#5X=1'b0;Y=1'b1;endendmodule二、实验结果波形图:三、分析和心得通过这次的实验,我基本熟悉M
5、odelsim软件,掌握了Modelsim软件的编译、仿真方法。同时在编写程序的过程中,加深了我对课上所讲的HDL的语法的认识。实验二二进制全加器设计一、实验目的(1)熟悉VerilogHDL元件实例化语句的作用(2)熟悉全加器的工作原理(3)用VerilogHDL语言设计一位二进制全加器,并仿真,验证其功能二、实验内容一位全加器使用乘积项之和的形式可以表示为:sum=a·b·c_in+a’·b·c_in’+a’·b’·c_in+a·b’·c_in’c_out=a·b+b·c_in+a·c_in其中a,b和
6、c_in为输入,sum和c_out为输出,只使用与门,或门,非门实现一个一位全加器,写出Verilog描述,限制是每个门最多只能有四个输入端。编写激励模块对其功能进行检查,并对全部的输入组合输入组合进行测试。实验要求用VerilogHDL语言描述一位全加器,并使用modelsim仿真验证结果。modulefulladd(sum,c_out,a,b,c_in);outputsum,c_out;inputa,b,c_in;wires1,s2,s3,s4,a1,b1,c_in1,c1,c2,c3;and(s1,a
7、,b,c_in);not(a1,a);not(b1,b);not(c_in1,c_in);and(s2,a1,b,c_in1);and(s3,a1,b1,c_in);and(s4,a,b1,c_in1);and(c1,a,b);and(c2,b,c_in);and(c3,a,c_in);or(sum,s1,s2,s3,s4);or(c_out,c1,c2,c3);endmodulemodulestimulus;regA,B,C_IN;wireSUM,C_OUT;fulladdFA1(SUM,C_OUT,A,
8、B,C_IN);initialbegin$monitor($time,"A=%b,B=%b,C_IN=%b,---C_OUT=%b,SUM=%b",A,B,C_IN,C_OUT,SUM);end//???????initialbeginA=1'd0;B=1'd0;C_IN=1'b0;#5A=1'd0;B=1'd0;C_IN=1'b1;#5A=1'd0;B=1'd1;C_IN=1'b0;#5A=1'd0;B=1