频率计—VHDL.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档