首页 Verilog试验报告电子

Verilog试验报告电子

举报
开通vip

Verilog试验报告电子西安邮电大学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程序实现一个异或门,Modelism仿真,...

Verilog试验报告电子
西安邮电大学VerilogHDL大作业 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 学院名称:电子工程学院学生姓名:专业名称:电子信息工程实验一异或门设计一、实验目的(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程序实现一个异或门,Modelism仿真,观察效果。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_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,a2);Endmodulemodulestimulus;regX,Y;wireOUTPUT;MY_XORxor01(OUTPUT,X,Y);initialbegin$monitor($time,"X=%b,Y=%b---OUTPUT=%b\n",X,Y,OUTPUT);endinitialbeginX=1'bO;Y=1'b0;#5X==1'b1;Y==1'b0;#5X==1'b1;Y==1'b1;#5X==1'b0;Y==1'b1;endendmodule二、实验结果波形图:三、 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 和心得通过这次的实验,我基本熟悉Modelsim软件,掌握了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和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,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,B,C_IN);initialbegin$monitor($time,"A=%b,B=%b,C_IN=%b,---C_OUT=%b,SUM=%b\n",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'd1;C_IN=1'b1;#5A=1'd1;B=1'd0;C_IN=1'b0;#5A=1'd1;B=1'd0;C_IN=1'b1;#5A=1'd1;B=1'd1;C_IN=1'b0;#5A=1'd1;B=1'd1;C_IN=1'b1;End实验结果波形:分析和心得通过这次试验我熟悉了VerilogHDL元件例化语句的作用,并且熟悉全加器的工作原理。在一位全加器的过程中,也了解了如何调用模块。实验三使用JK触发器设计一个计数器一、实验目的(1)熟悉Modelsim软件(2)掌握Modelsim软件的编译、仿真方法(3)熟练运用Modelsim软件进行HDL程序设计开发二、实验内容一个同步计数器可以使用主从JK触发器来设计。设计一个同步计数器,其逻辑图和JK触发器的逻辑图如书中图所示。清零信号clear低电平有效,输入数据在时钟信号clock的上升沿被锁存,触发器在clock的下降沿输出;当count_enable信号为低电平时停止计数。写出同步计数器的Verilog描述和激励模块,在激励模块中使用clear和count_enable对计数器进行测试,并显示输出计数Q[3:0]。技术 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 :本次试验中共有三个模块,分别是JK主从触发器设计模块,计数器设计模块及激励模块。对于JK触发器,共有四个输入端(j,k,clear,clock),两个输出端(q,qbar),根据其实际电路结构做出相应的设计;对于计数器模块,有三个输入端(clear,clock,counter_clock),四个输出(Q[3:0]),使用的是四个JK触发器和门电路组合,采用同步清零和同步脉冲构成四位同步计数器;激励模块中根据技术模块输入端口进行相关赋值以便进行仿真观察;三.实验步骤:1.在modulesim软件中使用数据流建模进行四位计数器设计及输入;2.进行编译及仿真。四.源代码:JK触发器模块:modulem_c_jkff(q,qbar,J,K,clear,clock);outputq,qbar;inputJ,K,clear,clock;wirea,b,c,d,y,ybar,cbar;assigncbar=~clock;assign#1a=~(J&qbar&clock&clear),b=~(K&q&clock),y=~(a&ybar),ybar=~(y&b&clear),c=~(y&cbar),d=~(ybar&cbar);assign#1q=~(c&qbar);assign#1qbar=~(d&clear&q);endmodule计数器模块:modulefour_count_ff(Q,clear,clock,count_enable);output[3:0]Q;inputclear,clock,count_enable;wirea1,a2,a3;assigna1=count_enable&Q[0],a2=a1&Q[1],a3=a2&Q[2];m_c_jkffm1(Q[0],,count_enable,count_enable,clear,clock);m_c_jkffm2(Q[1],,a1,a1,clear,clock);m_c_jkffm3(Q[2],,a2,a2,clear,clock);m_c_jkffm4(Q[3],,a3,a3,clear,clock);endmodule激励模块:modulestimulus;regclock,clear,count_enable;wire[3:0]Q;initial$monitor($time,"CountQ=%bClear=%b",Q[3:0],clear);four_count_fff1(Q,clear,clock,count_enable);initialbeginclear=1'b0;count_enable=1'b1;#10clear=1'b1;//#1count_enable=1'b1;//#50clear=1'b0;//#100count_enable=1'b0;//#100clear=1'b0;//#50clear=1'b1;//#50count_enable=1'b1;endinitialbeginclock=1'b0;forever#20clock=~clock;endinitial#1000$finish;Endmodule波形图:实验四八功能算术运算单元一、实验目的熟悉Modelsim软件掌握Modelsim软件的编译、仿真方法熟练运用Modelsim软件进行HDL程序设计开发二、实验内容使用case语句设计八门功能的算术运算单元(ALU,输入信号a,b为4位,功能选择信号select为3位,输出信号out为5位。忽略输出结果中的上溢和下溢。三、实验步骤:1.在modulesim软件中使用case语句设计八门功能的算术运算单元(ALU2.进行编译及仿真。modulealu(out,a,b,select);output[4:0]out;input[3:0]a,b;input[2:0]select;reg[4:0]out;always@(aorborselect)begincase(select)3'b000:out=a;3'b001:out=a+b;3'b010:out=a-b;3'b011:out=a/b;3'b100:out=a%b;3'b101:out=a<<1;3'b110:out=a>>1;3'b111:out=a>b;default:$display("InvalidALUcontrolsignal");endcaseendendmodulemodulestimulus;reg[3:0]A,B;reg[2:0]SELECT;wire[4:0]OUT;initial%b$monitor($time,"A=%bB=%bSELECT=%bOUT=",A[3:0],B[3:0],SELECT[2:0],OUT[4:0]);alualu1(OUT,A,B,SELECT);initialbeginA=4'b0011;B=4'b1011;SELECT=3'b000;repeat(7)beginSELECT=#103'b001+SELECT;end#10A=4'b1111;B=4'b1001;SELECT=3'b000;repeat(7)beginSELECT=#103'b001+SELECT;end#10A=4'b0000;B=4'b0000;SELECT=3'b000;repeat(7)beginSELECT=#103'b001+SELECT;end#10A=4'b1111;B=4'b1111;SELECT=3'b000;repeat(7)beginSELECT=#103'b001+SELECT;endendendmodule波形图:实验中遇到的问题及解决方法“清零信号clear低电平有效,输入数据在时钟信号clock上升沿被锁存,触发器在clock下降沿输出;当count-enable为低电平时停止计数。”一开始不能理解,后来经过同学的指导明白了过程。总之,至此实验特别有意义。实验五八位ALU功能的函数一、实验目的(1)熟悉Modelsim软件(2)掌握Modelsim软件的编译、仿真方法(3)熟练运用Modelsim软件进行HDL程序设计开发二、实验内容设计一个实现八位ALU功能的函数,输入信号a,b为4位,功能选择信号select为3位,输出信号out为5位。忽略输出结果中的上溢和下溢。三、实验步骤:1.在modulesim软件中设计一个实现八位ALU功能的函数2.进行编译及仿真。modulebit8_ALU(out,a,b,select);output[4:0]out;input[3:0]a,b;input[2:0]select;reg[4:0]out;//reg[3:0]a,b;//reg[2:0]select;always@(aorborselect)beginout=bit8_function(a,b,select);end//??8?ALU????function[4:0]bit8_function;input[3:0]a,b;input[2:0]sel;parameterS0=3'b000,S1=3'b001,S2=3'b010,S3=3'b011,S4=3'b100,S5=3'b101,S6=3'b110,S7=3'b111;begincase(sel)S0:bit8_function=a;S1:bit8_function=a+b;S2:bit8_function=a-b;S3:bit8_function=a/b;S4:bit8_function=a%b;S5:bit8_function=a<<1;S6:bit8_function=a>>1;S7:bit8_function=(a>b);default:$display("InvalidALUcontrolsignal");endcaseendendfunctionendmodulemodulestimulus;reg[3:0]A,B;reg[2:0]SELECT;wire[4:0]OUT;bit8_ALUalu(OUT,A,B,SELECT);initialbeginSELECT=%b,$monitor($time,"A=%b,B=%b,OUT=%b\n",A,B,SELECT,OUT);endinitialbeginA=4'b0000;B=4'b0000;SELECT=3'b000;repeat(7)beginbeginSELECT=#10SELECT+3'b001;end#100A=4'b1111;B=4'b0000;SELECT=3'b000;repeat(7)beginSELECT=#10SELECT+3'b001;end#100A=4'b0000;B=4'b1111;SELECT=3'b000;repeat(7)beginSELECT=#10SELECT+3'b001;end#100A=4'b0011;B=4'b0011;SELECT=3'b000;repeat(7)beginSELECT=#10SELECT+3'b001;end#100A=4'b1111;B=4'b1111;SELECT=3'b000;repeat(7)beginSELECT=#10SELECT+3'b001;endendEndmodule1.在modulesim软件中使用同步有限状态自动机方法设计一个电路o波形图:nEinn实验中遇到的问题及解决方法:这个题目比较简单,因为与之前的实验内容基本相同,只是变化成为函数的形式而已,因此做实验时没有遇到什么大问题。实验六状态自动机一、实验目的(1)熟悉Modelsim软件(2)掌握Modelsim软件的编译、仿真方法(3)熟练运用Modelsim软件进行HDL程序设计开发二、实验内容使用同步有限状态自动机方法设计一个电路,它的引脚in接受一位的输入流。每当检测到模式10101时,输出引脚reset被赋值为高电平引脚。reset引脚以同步方式初始化电路。输入引脚clk用于给电路提供时针信号。使用身边现有的任何工艺库综合该电路,优化电路,使其达到最快速度。把同样的激励应用到RTL和们级网表上,比较它们的输出三、实验步骤:2.进行编译及仿真。moduleselect(in,clk,reset,match);inputin;inputclk;inputreset;outputmatch;wirematch;wire[4:0]NEXT_STATE;reg[4:0]PRES_STATE;parameters1=5'b00000;parameters2=5'b00001;parameters3=5'b00010;parameters4=5'b00101;parameters5=5'b01010;parameters6=5'b10101;function[5:0]fsm;inputfsm_in;input[4:0]fsm_PRES_STATE;regfsm_match;reg[4:0]fsm_NEXT_STATE;begincase(fsm_PRES_STATE)s1:beginif(fsm_in==1'b1)beginfsm_match=1'b0;fsm_NEXT_STATE=s2;endelseif(fsm_in==1'b0)beginfsm_match=1'b0;fsm_NEXT_STATE=s1;endends2:beginif(fsm_in==1'b1)beginfsm_match=1'b0;fsm_NEXT_STATE=s2;endelseif(fsm_in==1'b0)beginfsm_match=1'b0;fsm_NEXT_STATE=s3;endends3:beginif(fsm_in==1'b1)beginfsm_match=1'b0;fsm_NEXT_STATE=s4;endelseif(fsm_in==1'b0)beginfsm_match=1'b0;fsm_NEXT_STATE=s1;endends4:beginif(fsm_in==1'b1)beginfsm_match=1'b0;fsm_NEXT_STATE=s2;endelseif(fsm_in==1'b0)beginfsm_match=1'b0;fsm_NEXT_STATE=s5;endends5:beginif(fsm_in==1'b1)beginfsm_match=1'b0;fsm_NEXT_STATE=s6;endelseif(fsm_in==1'b0)beginfsm_match=1'b0;fsm_NEXT_STATE=s1;endends6:beginif(fsm_in==1'b1)beginfsm_match=1'b0;fsm_NEXT_STATE=s2;endelseif(fsm_in==1'b0)beginfsm_match=1'b0;fsm_NEXT_STATE=s5;endendendcasefsm={fsm_match,fsm_NEXT_STATE};endendfunctionassign{match,NEXT_STATE}=fsm(in,PRES_STATE);always@(posedgeclk)beginif(reset==1'b1)PRES_STATE<=s1;elsePRES_STATE<=NEXT_STATE;endendmodulemodulestimulus;regclk;regin;regreset;wirematch;selectse(in,clk,reset,match);initialbeginclk=0;in=0;reset=1;#100reset=0;#30in=1;#40in=1;#40in=0;#40in=1;#40in=0;#40in=1;#40in=1;#40in=1;#40in=0;#40in=0;#40in=1;#40in=1;#40in=0;#40in=0;#40in=1;#40in=0;#40in=1;#40in=0;#40in=1;#40in=1;#40in=1;#50$finish;endalwaysbegin#20clk=~clk;endendmodule波形图:实验中遇到的问题及解决方法在做这个实验时,我忽略了状态自动的方式,而是采用简单的门级网表建模,直到最后才明白自己的错误所在,与老师和同学交流了此题的正确解法后,我重新将此题做了一遍,收获良多。
本文档为【Verilog试验报告电子】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_179289
暂无简介~
格式:doc
大小:224KB
软件:Word
页数:0
分类:
上传时间:2019-05-18
浏览量:0