实验报告模板:实验四 数字频率计设计_第1页
实验报告模板:实验四 数字频率计设计_第2页
实验报告模板:实验四 数字频率计设计_第3页
实验报告模板:实验四 数字频率计设计_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《EDA与数字系统设计》实验报告2011~2012学年第一学期2009级电子信息科学与技术专业班级:学号:姓名:PAGE第4-页共4页实验四数字频率计设计(1)【实验目的】掌握数字频率计的Verilog描述方法;学习设计仿真工具的使用方法;学习层次化设计方法;【实验内容】用4位十进制计数器对用户输入时钟进行计数,计数间隔为1秒,计数满1秒后将计数值(即频率值)锁存到4位寄存器中显示,并将计数器清0,再进行下一次计数。为上述设计建立元件符号【实验原理】根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1S的输入信号脉冲计数允许的信号;一秒计数结束后,计数值被锁入锁存器,计数器清零,为下一测频技术周期做好准备。【程序源代码】(加注释)【一】moduleCNTL(CLK,CNL_EN,RST_CNL,LOAD);//控制器模块inputCLK;//输入控制模块的计数器时钟outputCNL_EN,RST_CNL,LOAD;//输出使能、复位、装载信号regCLK2DIV,CNL_EN,LOAD,RST_CNL; //寄存器类型always@(posedgeCLK)beginCLK2DIV=~CLK2DIV;//分频器取反endalways@(posedgeCLK)//产生使能信号和装载信号beginCNL_EN=CLK2DIV;//使能信号赋值LOAD=~CLK2DIV;//装载信号赋值endalways@(CLK)//产生复位信号beginif(CLK==1'b0&&CNL_EN==1'b0)RST_CNL=1;//复位信号置一elseRST_CNL=0;//复位信号清零endendmodule【二】moduleCNT10(CLK,RST,EN,COUT,DOUT);//计数器模块inputCLK,RST,EN;outputCOUT;//输出进位信号output[3:0]DOUT;reg[3:0]Q;//中间变量regCOUT;assignDOUT=Q;always@(posedgeCLKorposedgeRST)//中间变量Q的产生beginif(RST)Q=0;//Q被置为零elseif(EN)if(Q<9)Q=Q+1;//循环计数elseQ=0;endalways@(Q)//Q为时钟控制信号,电平触发,产生进位信号beginif(Q==4'b1001)COUT=1;//计数器已计满一周期elseCOUT=0;//计数器没计满endendmodule【三】moduleRGB4(DIN,LOAD,DOUT);//锁存器模块inputLOAD;input[3:0]DIN;output[3:0]DOUT;reg[3:0]DOUT;always@(posedgeLOAD)//LOAD为时钟控制信号,产生输出信号DOUT=DIN;//输出赋值endmodule【四】modulefreg(CLK1HZ,UCLK,led0,led1,led2,led3,rst,en,load);//主模块inputCLK1HZ,UCLK;//输入信号output[3:0]led0,led1,led2,led3;outputrst,en,load;wirein_load,in_rst,in_en;//定义为网线性wire[3:0]dout0,dout1,dout2,dout3;//定义为网线性wirec0,c1,c2;assignrst=in_rst,load=in_load,en=in_en;//给信号赋值CNTLu1(.CLK(CLK1HZ),.CNL_EN(in_en),.RST_CNL(in_rst),.LOAD(in_load));//元件例化(控制模块)CNT10u2(.CLK(UCLK),.EN(in_en),.RST(in_rst),.COUT(c0),.DOUT(dout0));//元件例化(计数模块)CNT10u3(.CLK(c0),.EN(in_en),.RST(in_rst),.COUT(c1),.DOUT(dout1));//元件例化(计数模块)CNT10u4(.CLK(c1),.EN(in_en),.RST(in_rst),.COUT(c2),.DOUT(dout2));//元件例化(计数模块)CNT10u5(.CLK(c2),.EN(in_en),.RST(in_rst),.DOUT(dout3));//元件例化(计数模块)RGB4u6(.DIN(dout0),.LOAD(in_load),.DOUT(led0));//元件例化(锁存器模块)RGB4u7(.DIN(dout1),.LOAD(in_load),.DOUT(led1));//元件例化(锁存器模块)RGB4u8(.DIN(dout2),.LOAD(in_load),.DOUT(led2));//元件例化(锁存器模块)RGB4u9(.DIN(dout3),.LOAD(in_load),.DOUT(led3));//元件例化(锁存器模块)endmodule【元件符号与总框图】仿真结果:由此图可以看出,CLK1HZ是周期为1S的时钟脉冲,为上升沿,是频率的时钟信号;UCLK是周期为100ms的时钟脉冲,它是输入变量,此模块的功能就是对UCLK进行频率测量;EN为使能信号,RST为复位信号,LOAD为装载信号,此模块通过CLK2DIV信号产生这些信号,其中当CLK有效时,把CLK2DIV赋值给EN,把CLK2DIV取反以后赋值给LOAD信号,当CLK为低电平而且EN为低电平时,对RST赋值。led0,l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论