集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 3968|回复: 8

分频电路的verilog代码

[复制链接]
奋斗的小孩 发表于 2016-6-4 20:35:23 | 显示全部楼层 |阅读模式
系统时钟为50MHz,分出的时钟为1KHz。
module freq (clk, rst_n, clk_1k);


input clk;
input rst_n;

output reg clk_1k;


reg [14:0] cnt;

always @ (posedge clk or negedge rst_n)
begin
if (!rst_n)
begin
clk_1k <= 1;
cnt <= 0;
end
else
begin
if (cnt < 24_999)
begin
cnt <= cnt + 1;
end
else
begin
cnt <= 0;
clk_1k <= ~clk_1k;
end
end
end

endmodule
那么24999是怎么来的呢?这个是计算的关键,我是这么计算的:
50MHz的周期是20ns,1KHz的周期是1ms。那么1KHz的半个周期就是500us,经过计算是20ns的25000倍,
所以计数要24999。
这么计算可以,但是我们如果把计算的过程化简一下的话,就应该是:
计数值=((系统时钟频率/想要分频得出的频率)/2)-1;
 楼主| 奋斗的小孩 发表于 2016-6-4 20:36:04 | 显示全部楼层
敬请关注百度贴吧“奋斗的小孩fpga之旅”。
Esmiamor 发表于 2016-7-28 17:44:01 | 显示全部楼层
                     感谢分享,会持续关注
fpga_feixiang 发表于 2017-5-22 16:09:28 | 显示全部楼层
厉害,牛,很好的程序
fpga_wuhan 发表于 2017-5-24 10:53:32 | 显示全部楼层
分频电路的verilog代码
小舍YZ 发表于 2017-6-16 11:07:53 | 显示全部楼层
赞,,,,,,,,,,,,,,,,,谢谢分享。。。。。。。。。。。。。。。。。。。。。。
4798345 发表于 2017-6-16 13:58:26 | 显示全部楼层
感谢楼主分享
fpga_feixiang 发表于 2024-10-29 14:55:54 | 显示全部楼层
6                    
雷1314521景 发表于 2024-10-29 16:50:41 | 显示全部楼层
分频电路的verilog代码
http://www.fpgaw.com/forum.php?m ... 0&fromuid=59831
(出处: fpga论坛|fpga设计论坛)
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-23 11:42 , Processed in 0.070640 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表