- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA的简易数字频率计
湖北师范学院电工电子实验教学省级示范中心电子版实验报告
第 PAGE 11页,共 NUMPAGES 12页
EDA
简易数字频计
设计性实验
2008112020327 **
电子信息科学与技术
物电
2008.6.10
电工电子中心2009年5月绘制
湖北师范学院电工电子实验教学省级示范中心电子版实验报告
第 PAGE 2页,共 NUMPAGES 3页
简易数字频率计设计
一.任务解析
通过对选择题的分析,认为该简易数字频率计应该能达到以下要求:
准确测出所给的方波信号的频率(1HZ以上的信号)。
在显示环节上,应能实现高位清零功能。
另外还有一个总的清零按键。
二.方案论证
本实验中所做的频率计的原理图如上图所示。即在一个1HZ时钟信号的控制下,在每个时钟的上升沿将计数器的数据送到缓冲器中保存起来,再送数码管中显示出来。
在本实验中,用到过几中不同的方案,主要是在1HZ时钟信号的选择和计数器清零环节上:
在实验设计过程中,考滤到两种1HZ时钟信号其波形如下图所
对于上术的两种波形,可以调整各项参数来产生两种1HZ时钟信号。最后通过实验的验证发现第二种波形对于控制缓冲器获得数据和控制计数器清零更易实现。并且,用第二种波形做为时钟信号,可以在很短的高电平时间内对计数器清零,在低电平时间内让计数器计数,从面提高测量的精度。而用第一种波形则不易实现这个过程。
2.在计数器的清零过程中,也有两个方案,分别是能通过缓冲器反回一个清零信号,另一个是在时钟的控制下进行清零。最终通过实验发现,用时钟进行清零更易实现。因为如果用缓冲器反回一个清零信号,有一个清零信号归位问题,即当缓冲器反回一个低电平清零信号时,计数器实现清零,但不好控制让缓器冲的清零信号又回到高电平,否则计数器就一直处于清零状态面不能正常计数了。
三.实验步骤
通过上分析后,实验分为以下几步:
1.1HZ时钟信号的产生(产生该信号的模块如下):
module ones(clk,clkout);
input clk;
output clkout;
parameter N
parameter n=24;
reg [n:0]cnt;
reg clkout;
always @(posedge clk)begin
if(cnt==N) begin cnt=0; clkout=1; end
else begin cnt=cnt+1; clkout=0;end
end
endmodule
最终产生的信号的波形:
计数模块。其主要公能是在每个被测信号的上升沿自动加一,并且有一个清零信号的输入端,在1HZ时钟信号的高电平时间里进行清零。
模块如下:
module countsign,clr,b0,b1,b2,b3,b4,b5,b6,b7);
input sign,clr;
output [3:0]b0,b1,b2,b3,b4,b5,b6,b7;
reg [3:0]b0,b1,b2,b3,b4,b5,b6,b7;
always @(posedge sign or posedge clr)
if(clr) begin b0=0;b1=0;b2=0;b3=0;b4=0;b5=0;b6=0;b7=0; end
else
begin
if(b09)
b0=b0+1;
else begin
b0=0;
if(b19)
b1=b1+1;
else begin
b1=0;
if(b29)
b2=b2+1;
else begin
b2=0;
if(b39)
b3=b3+1;
else begin
b3=0;
if(b49)
b4=b4+1;
else begin
b4=0;
if(b59)
b5=b5+1;
else begin
b5=0;
if(b69)
b6=b6+1;
else begin
b6=0;
if(b79)
b7=b7+1;
else b7=0;
end
end
end
end
end
end
end
end
endmodule
如果要访真该模块,要设定较长的访真时间,故在此不进行软件访真,只在实验箱上进行实验。
数据缓冲模块。在每个秒级门
文档评论(0)