- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
频率计—VHDL
《数字系统课程设计-简易数字频率计》
专业综合设计报告
姓 名: 学 号:
专 业: 实 验 室:
组 别: 同组人员:
设计时间: 2009 年 8月 24日 —— 2009 年 9 月 18日
评定成绩: 审阅教师:
目 录
一. 设计目的与要求………………………………………………3
二.基本原理………………………………………………………3
三.方案实现………………………………………………………4
四.方案测试………………………………………………………9
一.设计目的与要求
1.课程设计目的:
1)基本掌握自顶向下的电子系统设计方法
2)学会使用PLD和硬件描述语言设计数字电路,掌握 Quartus II等开发工具的使用方法
3)培养学生自主学习、正确分析和解决问题的能力
2.课程设计要求:
1)频率测量范围10Hz~1MHz
2)量程自动转换,量程分为10KHz (1s) 、100KHz (0.1s) 、1MHz (10ms)三档。
转换规则如下:
当读数大于9999时,频率计处于超量程状态,下一次测量时,量程自动增大一档;
当读数小于0999时,频率计处于欠量程状态,下一次测量时,量程自动减小一档;
3)数据采用记忆显示方式,即计数过程中不显示数据,待计数过程结束以后,显示计数结果,并将
此显示结果保持到下一次计数结束。
4)用发光二极管显示量程
二.基本原理
要测量待测信号的频率,需要一个基准信号对其计数。我选择了系统自带的2MHz的时钟信号,通过分频器产生0.5Hz的基准信号,然后利用此信号高电平或低电平时对输入信号的上升沿计数,结果即1s内待测信号的上升沿数,即频率。
关于量程的显示,首先用1s的基准信号对待测信号计数,得到的计数值需要进行判断。判断过程如下:0cnt10000,量程10kHz,led1亮,en=0
10000cnt100000,量程100kHz,led2亮,en=1
100000cnt1000000,量程1MHz,led3亮,en=2
(cnt:计数值;led1~3:分别对应量程10kHz,100kHz,1MHz;en:选择信号,用于选择基准时钟)
通过en可以从三个分频器产生的1s,0.1s,0.01s三个中选择一个合适的时钟,通过计数模块得到计数值送到显示模块,最后的测量值为数码管显示值乘以量程代表值。
系统流程图如下:
系统采用自底向上的设计方法,最底层采用VerilogHDL硬件描述语言实现,尔后生成模块,连接,调试。
三. 方案实现
由流程图可以看到共分成8个模块。
clock1~3:三个分频器,分别产生1s,0.1s,0.01s的时钟信号,以clock1为例,clk_in为系统时钟,clk为分频产生信号。源代码如下:
module clock1 (clk_in,clk);
input clk_in;
output clk;
reg clk;
reg [20:0]k;
always @(negedge clk_in)
begin
if (k=2000000)
begin
clk=~clk;
k=0;
end
else
k=k+1;
end
endmodule
2)count1:计数模块,用1s时钟对待测信号计数,unknown为待测信号,cnt为计数值。源代码如下:
module count1 (clk,unknown,cnt);
input clk,unknown;
output [20:0]cnt;
reg [20:0]temp;
reg [20:0]cnt;
always @(posedge
文档评论(0)