- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
EDA简易数字频率计设计
湖北师范学院电工电子实验教学省级示范中心电子版实验报告
简易数字频率计的设计一(实验内容
根据我们已经学习的有关Verilog的有关知识,如计数器、锁存器、扫
描器、译码器、分频器等,再根据频率的定义,我们来设计一个简易的数字
频率计,它的计数范围在0z之间,并让误差尽可能的小,因为
我们知道频率就是一秒内信号所重复的次数,所以根据这个定义我们很容易
想到它所用到的核心原理与模块。
二(方案设计
下面是简易数字频率计的设计思想框图:
这次设计的关键程序是0计数器,计数器对输入信号进行计数,然
后通过1Hz精密时钟的控制,每1秒钟向显示数据缓冲Buffer(实质上是一个寄存
器)中传一次数据,1Hz精密时钟又通过对Buffer的控制,让Buffer每隔1秒向
扫描显示模块传输一次数据,扫描时钟控制显示模块的输出。此程序的1Hz精密时
钟应做到十分准确,该时钟对门控电路(此实验中用与非门)的控制是与计数器的控
制正好相反的,当计数器计数的数据传向Buffer时,门控电路因时钟
第2页,共11页
对与非门输入“1时”,输入被隔,输出为“0”,此时计数器不计数;当时钟
对与非门输入“0时”,被测信号输入计数器,且在计数前,精密时钟已对计数器
清零。这样不断反复,便可及时更新显示数据。
时钟频率为1Hz,即周期为1秒,使计数器在1秒内计数的次数即为被测信号
的频率。
整体设计实现的方框图:
三(实验步骤
本实验我给出实验当中关键的几个模块的设计,它们分别如下所述:
1)my模块
此程序实现的方法一:
modulemy2(clk,clr,q);
inputclk,clr;
output[31:0]q;
reg[31:0]q;
always@(posedgeclkornegedgeclr)
begin
if(!clr)q=0;
elsebegin
if(q[3:0]9)q[3:0]=q[3:0]+1;
elsebeginq[3:0]=0;
if(q[7:4]9)q[7:4]=q[7:4]+1;
elsebeginq[7:4]=0;
if(q[11:8]9)q[11:8]=q[11:8]+1;
elsebeginq[11:8]=0;
if(q[15:12]9)q[15:12]=q[15:12]+1;
elsebeginq[15:12]=0;
if(q[19:16]9)q[19:16]=q[19:16]+1;
elsebeginq[19:16]=0;
if(q[23:20]9)q[23:20]=q[23:20]+1;
elsebeginq[23:20]=0;
if(q[27:24]9)q[27:24]=q[27:24]+1;
elsebeginq[27:24]=0;
if(q[31:28]9)q[31:28]=q[31:28]+1;
elseq[31:28]=0;
end
end
end
end
end
end
end
end
end
endmodule
方法一仿真波形如下所示:
方法二:
modulemyclk,clr,q);
inputclk,clr;
output[31:0]q;
reg[31:0]q;
always@(posedgeclkornegedgeclr)
begin
if(!clr)q=0;
elseif(q[3:0]9)q[3:0]=q[3:0]+1;
elseif(q[7:4]9)beginq[7:4]=q[7:4]+1;q[3:0]=0;endelseif
(q[11:8]9)beginq[11:8]=q[11:8]+1;q[7:4]=0;endelseif
(q[15:
文档评论(0)