资源描述:
《实验五数字频率计设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验五数字频率计设计(2)【实验目的】1.掌握数字频率计的Verilog描述方法;2.学习设计仿真工具的使用方法;3.学习层次化设计方法;【实验内容】1.编制仿真测试文件,对实验四设计的频率计并进行功能仿真。2.下载并验证分频器功能【程序源代码】(加注释)moduleCNTL(clk,CNT_EN,CNT_RST,load);//控制器模块inputclk;//定义输入控制模块的计数时钟和输出使能、复位、装载信号及寄存器类型outputCNT_EN,CNT_RST,load;regDIV2clk,CNT_EN,CNT_RST,load;always@(posed
2、geclk)//过程语句并将posedgeclk设为敏感变量DIV2clk=~DIV2clk;//分频器取反always@(DIV2clk)//过程语句并将DIV2clk设为敏感变量beginCNT_EN<=DIV2clk;//为使能信号和装载信号赋值load<=~DIV2clk;endalways@(clk)//过程语句并将clk设为敏感变量beginif(clk==1'b0&&DIV2clk==1'b0)//若clk和使能信号同时为高电平,复位信号置一CNT_RST=1'b1;elseCNT_RST=1'b0;//否则,复位信号清零endendmodulem
3、oduleCNT10(clk,EN,RST,COUT,DOUT);//计数器模块inputclk,EN,RST;//定义输入输出信号和中间变量信号及寄存器类型outputCOUT;output[3:0]DOUT;regCOUT;reg[3:0]Q1;always@(posedgeclkorposedgeRST)//过程语句并将posedgeclkorposedgeRST设为敏感变量beginif(RST)beginQ1<=0;COUT=0;end//RST为高电平,Q1清零,将0赋给COUTelseif(EN)//否则,在EN为高电平的前提下if(Q1<9)be
4、ginQ1=Q1+1;COUT=0;end//Q1<9时,循环计数elsebeginQ1=0;COUT=1;end//计数器计满一个周期endassignDOUT=Q1;//计数器未计满endmodulemoduleREG4B(load,DIN,DOUT);//锁存器模块inputload;//定义输入输出信号和中间变量信号及寄存器类型input[3:0]DIN;output[3:0]DOUT;reg[3:0]DOUT;always@(posedgeload)//过程语句并将posedgeload设为敏感变量beginDOUT=DIN;//输出赋值语句enden
5、dmodulemoduleLEDS7(in,leds);//七段数码管模块input[3:0]in;//定义输入、输出变量及中间变量noutput[6:0]leds;reg[6:0]leds;always@(in)begincase(in)//显示16进制数对应的二极管不同状态4'b0000:leds=7'b0111111;//04'b0001:leds=7'b0000110;//14'b0010:leds=7'b1011011;//24'b0011:leds=7'b1001111;//34'b0100:leds=7'b1100110;//44'b0101:le
6、ds=7'b1101101;//54'b0110:leds=7'b1111101;//64'b0111:leds=7'b0000111;//74'b1000:leds=7'b1111111;//84'b1001:leds=7'b1101111;//94'b1010:leds=7'b1110111;//A4'b1011:leds=7'b1111100;//B4'b1100:leds=7'b0111001;//C4'b1101:leds=7'b1011110;//D4'b1110:leds=7'b1111001;//E4'b1111:leds=7'b1110001;
7、//Fdefault:leds=7'b0111111;endcaseendendmodulemoduleFREQUENCE(clk,uclk,led0,led1,led2,led3,rst_cnt,en_cnt,load);//顶层模块inputclk,uclk;outputrst_cnt,en_cnt,load;//定义输入输出信号output[6:0]led0,led1,led2,led3;wirein_en,in_load,in_rst,c0,c1,c2;wire[3:0]dout0,dout1,dout2,dout3;//将输入输出定义为网线性wire[
8、3:0]in0,in1,