资源描述:
《杭州电子科技大学EDA第二次实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、杭州电子科技大学EDA实验报告第二次实验报告班级:140475**学号:1404******姓名:***实验一:计数器设计实验实验目的:熟悉QuartusII的Verilog文本设计流程全过程,学习计数器的设计、仿真和硬件测试,掌握原理图和文本设计方法。实验原理:参考5.5节。实验电路如图5・28所示,设计流程参考本章。实验任务:在QuartusII±对基于实验电路图的工程进行编辑、编译、综合、仿真。说明模块屮各语句的作用。根据各模块和所有信号的时序仿真波形,详细描述此设计的功能特点。从时序仿真图和编译报告中了解计数时钟输入至计数数据输出的
2、延时情况,包括设定不同优化约束后的改善情况。用例化语句,按上图连接成顶层设计电路。最终完成能实现上图结构的Verilog文件设计,并对其进行仿真。实验内容:建立一个Verilog文件,输入以下代码,保存为CNT10.V。moduleCNT10(CLK,RST,EN,LOAD,COUTDOUT,DATA);inputCLK,EN,RSTLOAD;input[3:0]DATA;output[3:0]DOUT;outputCOUT;reg[3:0]QI;regCOUT;assignDOUT=Q1;always@(posedgeCLKorneged
3、geRST)beginif(!RST)Ql<=0;elseif(EN)beginiff!LOAD)Q1<=DATA;elseif(Ql<9)Q1<=Q1+1;elseQl<=4,b0000;endendalways@(Ql)if(Ql==4'h9)COUT=l'bl;elseCOUT=l'bO;endmoduleRTI电路图如下仿真波形如下15.0W
4、心uqnsCLKBiir-1Tr=n1::11I3NB0BLJLOADB1□DATAH:3>(7□30UTHi0Xi2X3113XcovrBi11波形分析:该文件实验了十进制计数器的功能。由图
5、可见,在时钟每111现一个上升沿,输入数值逐个增加,由0计数到9之后再从0开始循环。当RST出现一个下降沿时,则置零,输出数值变为零。当计数器计到9时,COUT出现一个高电平表示进位。当时钟有效且LOAD为低电平有效时,置数,输出值为输入的DATA值。(2)建立一个Verilog文件,保存为DECL7S.V,代码如下。moduleDECL7S(A丄ED7S);input[3:0]A;output[6:0]LED7S;reg[6:0]LED7S;always@(A)case(A)4'bOOOO:LED7Sv=7'b01:ll:L:ll;4'b
6、OOOl:LED7S<=7'b0000110;4'bOOlO:LED7S<=7,bl011011;4'bOOll:LED7S<=7'bl001111;4'b0100:LED7Sv=7'bll001.:10;4'b0101:LED7Sv=7'bll01101;4'b0110:LED7S<=7'blllll01;4'bOlll:LED7S<=7,b0000111;4'blOOO:LED7S<=7'blllllll;4*bl001:LED7Sv=7'bll0111:L;4'blOlO:LED7Sv=7'bll:L01:U;4'blOll:LED7
7、S<=7'blllll00;4'bllOO:LED7Sv=7'b0111001;4'bllOl:LED7Sv=7'bl011110;4'blllO:LED7S<=7'bllll001;4^1111:LED7Sv=7'bll:10001;default:LED7Sv=7'b0111111;endcaseendmoduleRTL电路图如图所示仿真波形如下图所示(3)建立一个Verilog文件,用例化语句将实验原理图连接出来,保存为CNT2LED.V。代码如下moduleCNT2LED(clk,rst,en」oacLdata,dout」ed£ou
8、t);inputclk,rst,ereload;input[3:0]data;output[3:0]dout;output[6:0]led;outputcout;CNT10Ulfclk/s^enjoad^ou^dou^data);DECL7SU2(dout,led);Endmodule实验分析:由上图编译通过后的波形可看出,本次实验成功将实验原理电路图的功能实现了。当rst=O时,输出清零。输出从0计到9,led输出数值相対应的值,当load出现低电平,且适屮有效时(上升沿有效),输出数值为预置数值9;当load出现低电平,但时钟信号无效时
9、,输出数值不变。当计数计到9时,cout输出信号为高电平。实验二模可控计数器设计(1)建立一个Verilog文件,保存为count8.v,代码如下modulecount8(CLK