您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文档 > 华中科技大学Verilog语言实验报告
专业:计算机科学与技术班级:CS1409学号:U201414813姓名:唐礼威电话:15827505005邮件:1770723422@qq.com完成日期:2016.6.132016Verilog语言·实验报告·计算机科学与技术学院I华中科技大学课程实验报告目录1数据通路实验.......................................................................................11.1实验目的...........................................................................................11.2实验内容及要求................................................................................11.3实验方案...........................................................................................21.4实验步骤...........................................................................................21.5故障及分析.......................................................................................21.6仿真与结果.......................................................................................31.7心得与体会.......................................................................................42FSM实验..............................................................................................62.1实验目的...........................................................................................62.2实验内容及要求................................................................................62.3实验方案...........................................................................................72.4实验步骤...........................................................................................72.5故障及分析.......................................................................................82.6仿真与结果.......................................................................................82.7心得与体会.......................................................................................93意见和建议.........................................................................................114附录....................................................................................................131华中科技大学课程实验报告1数据通路实验1.1实验目的综合应用掌握的简单组合电路和时序电路的设计方法,完成一个简单的数据通路的设计。1.2实验内容及要求1.根据下图给出的数据通路(图中R0、R1和ACC是寄存器,+是加法器,其它则是多路选择器),完成相应的Verilog程序设计,图中数据线的宽度为8位,要求可以扩充至16位或者是32位;2.根据下图给出的数据通路(图中SUM和NEXT是寄存器,Memory是存储器,+是加法器,==0是比较器,其它则是多路选择器),完成相应的Verilog程序设2华中科技大学课程实验报告计,图中数据线的宽度为8位,要求可以扩充至16位或者是32位。实验要求:程序必须自己编写,满足数据通路设计要求,综合结果正确。1.3实验方案根据要求,先把选择器、加法器、寄存器、比较器和存储器分模块编写,在主模块中根据数据通路调用即可。题目中要求数据线宽度为8位,并且可以扩充至16位或32位,所以在前面定义WIDTH,利用parameter的参数传递功能来实现。1.4实验步骤1.分模块编写代码(见附录)2.运行综合RunSynthesis3.综合成功后检查RTLAnalysis中的电路图Schematic1.5故障及分析刚开始跑出来很多线是断的,后来发现是引脚对应部分的代码没有写完整。后来加法器和ACC的参数顺序写错,导致接线与题给的不一致,发现问题后及时改3华中科技大学课程实验报告正了。1.6仿真与结果Schematic图形如下:第一个数据通路:4华中科技大学课程实验报告第二个数据通路:由以上两图可得,成功完成了要求的数据通路的设计,满足了各基本器件的输入输出链接要求;改变数据线宽度后再检查电路图,发现数据线做出相应改变,完成该实验。1.7心得与体会对数据通路的设计有了更好的理解,明白了数据通路的基本器件构成,熟悉了这些器件的功能和端口,掌握了Verilog完成基本运算器件的设计,完成了数据通路的设计。5华中科技大学课程实验报告6华中科技大学课程实验报告2FSM实验2.1实验目的掌握用Verilog语言进行FSM设计、实现和仿真的方法。2.2实验内容及要求5.1_1、用FSM实现一个mealy型序列检测器,对一位的串行输入序列中的“1”的数量进行检测。如果“1”的总数可以被3整除,输出“1”,否则输出“0”。5.1_2、用FSM实现一个moore型序列检测器,对两位的串行输入序列进行检测。输入01,00时,输出0,输入11,00时,输出1,输入10,00时,输出反向。5.1_3、用FSM实现一个计数器(采用存储器),对一位的输入进行计数。计数序列为:000,001,011,101,111,010。5.2、用FSM实现一个序列识别器,该FSM的状态转移图如下所示,它能够对一位的串行输入序列中的“1”的数量进行检测。如果FSM发现输入“1”的总数可以被3整除时,输出“1”;否则,输出“0”。同时针对“01011011101”输入序列,写出相应的仿真程序并进行真波测试。7华中科技大学课程实验报告2.3实验方案先根据要求画出状态图,根据状态图编写程序,根据程序编写仿真程序,最后得出结果和结论。2.4实验步骤5.1_1状态图:in=1/1in=1/0in=0/0in=1/0in=1/0in=0/0in=1/1in=0/05.1_2状态图:in=00in=01in=10in=11in=00in=00in=00S0S1S4S3S0S1S2S3S4S5S68华中科技大学课程实验报告out=0out翻转out=15.1_3状态图:1.根据以上状态图编写源程序(见附录)2.运行综合RunSynthesis3.综合正确后编写仿真程序4.仿真,得到仿真波形,验证结果2.5故障及分析无故障2.6仿真与结果5.1_1:如图,1的个数是3的倍数时输出1与预期一致5.1_2:如图,输入01后再输入00,输出0;输入11后再输入00,输出1;输入10后再输入00,输出翻转:9华中科技大学课程实验报告与预期一致5.1_3:如图,输出序列为000,001,011,101,111,010(重复)与预期一致5.2:如图,1的个数是3的倍数时输出1与预期一致2.7心得与体会这次实验通过FSM设计明白了设计的过程和步骤,首先要知道分为哪些状态,设计的是何种电路,如何选择用mealy还是moore型电路,状态转移要如何实现。知道了mealy型和moore型电路的区别:当要求输出对输入快速响应并希望电路简10华中科技大学课程实验报告单时选择mealy型,当要求时序输出稳定,能接受输出序列晚一个周期,即选择moore型电路不增加电路复杂性时,选择moore型电路。11华中科技大学课程实验报告3意见和建议建议老师上课还是用中文PPT比较好,另外作业练习也用中文给出来,题目要求也尽量具体些,这样会减少我们学习的成本,更加有效的学习这门课。12华中科技大学课程实验报告13华中科技大学课程实验报告4附录源程序:4.1(第一个数据通路)//主模块moduletext4(S0,S1,S2,S3,Clk,reset,load,outR0,outR1,outACC,outS0,outS1,outS2,outS3,outA);parameterWIDTH=8;//位宽8位inputS0,S1,S2,S3,Clk,reset,load;output[WIDTH-1:0]outR0,outR1,outACC,outS0,outS1,outS2,outS3,outA;register#(8)R0(inR0,Clk,reset,load,outR0);register#(8)R1(inR1,Clk,reset,load,outR1);register#(8)ACC(inACC,Clk,reset,load,outACC);mux#(8)S0(S0,inS00,inS01,outS0);mux#(8)S1(S1,inS10,inS11,outS1);mux#(8)S2(S2,inS20,inS21,outS2);mux#(8)S3(S3,inS30,inS31,outS3);add#(8)W1(inA0,inA1,outA);assigninS00=outS3;assigninS10=outS3;assigninS01=outR0;assigninS20=outR0;assigninS11=outR1;assigninS21=outR1;assigninA0=outACC;assigninS31=outACC;assigninACC=outA;assigninA1=outS2;assigninS30=outS2;14华中科技大学课程实验报告assigninR1=outS1;assigninR0=outS0;endmodule//加法器模块moduleadd(A,B,C);parameterWIDTH=8;input[WIDTH-1:0]A,B;output[WIDTH-1:0]C;wire[WIDTH:0]DATA;assignDATA=A+B;assignC=DATA[7:0];endmodule//寄存器模块moduleregister(D,Clk,reset,load,Q);parameterWIDTH=8;input[WIDTH-1:0]D;inputClk,reset,load;outputreg[WIDTH-1:0]Q;always@(posedgeClk)if(rese
本文标题:华中科技大学Verilog语言实验报告
链接地址:https://www.777doc.com/doc-5092233 .html