Verilog频率计(低频)).docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Verilog频率计(低频))

日志档案发表于 2010/5/17 23:45:37标签:无标签Verilog频率计(低频)  小弟最近弄了个频率计,主要测量工频50HZ的。代码附在下边。  下面的代码,功能实现了,通过了modelsim仿真,实际测试也成功。还是存在一些问题,不是功能上的,而是实现方法上了,我总感觉我的这个设计肯定不是最好的,有一些除法,还有十进制书转化成BCD码的问题还须要很大的优化。但是小弟,刚学FPGA,一些问题也搞不清楚,。就发在网上,分享一下,也让大家指正一下。?//// Description 测量频率(工频50HZ? 13~ 59.9HZ)// Create Date: 2010- 05 -17// Engineer: 张书腾// Module Name: frequency////nate:该设计只是适用于50HZ左右的频率测量,采用的是测周发module frequency(clk, rst_n, fre,sm_bit, segment);input clk; //50M系统时钟input rst_n; //异步复位端input fre;//频率输入端output [3:0] sm_bit;//数码管位码output[7:0] segment; //数码管位码reg [3:0] sm_bit;//数码管位码寄存器reg [7:0] segment;//数码管位码寄存器////////////////////标准信号 F=100K,测周///////////////////////////?reg [9:0]count;//100K时钟分频计数器?always @ (posedge clk or negedge rst_n)?begin??if(!rst_n)???count = 1b0;??else?if(count 10d499)???count = count+1b1;??else???count = 1b0;?end??reg clk_100K;//100K时钟输出寄存器?always @ (posedge clk or negedge rst_n)?begin???? if(!rst_n)??????? clk_100K = 1b0;???? else?? if(count=249) //时钟的占空比为50%????????????? clk_100K = 1b0;???? else?? clk_100K = 1b1;???? end??? /////////////////////////////////////////////?? //待测频率进行2分频,2分频后,就可以只计二分频后信号的高电平或低电平?? //就可以了,如果不2分频,只记高电平或低电平的话,信号的占空比不同会导致结果不准确??? reg fre_2;?always @ (posedge fre or negedge rst_n)?begin?????? if(!rst_n)????????? fre_2 = 1b0;??????? else?? if(fre)??????? fre_2 = ~fre_2;//2分频?end?//////////////测周计数模块,计2分频后的待测频的高电平或低电平///////////////////////? //相当于在待测频率的整个周期内计数//////////////////////////////////////////////////////?reg [12:0] cnt;//计数寄存器//由于位宽的限制,最大计数值8192,所以测低频(低于14HZ时会出错)?always @ (posedge clk_100K or negedge rst_n)?begin??if(!rst_n)?begin??? cnt = 13d0;??end??else??? if(!fre_2) ?//低电平计数????cnt = cnt + 1b1;??else?begin????cnt?? = 13d0;//不为低电平时清零??end??end?////////锁存信号,上升沿有效//////////////////////////?reg load;?always @ (posedge fre_2 or negedge rst_n)?begin??if(!rst_n)?begin???load = 1b0;??end??else? load = ~load;//产生上升沿?end//////////////////////////////////?reg [12:0] cnt_r;//存储锁存的值?always @ (posedge load)//load上升沿锁存?begin??????? cnt_r = c

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档