OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5597|回复: 5

谁来帮我讲讲时钟分频程序,看不懂了,新手小白

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2019-7-2
在线时间
1 小时
发表于 2019-7-11 17:13:56 | 显示全部楼层 |阅读模式
1金钱
谁能帮我讲讲这个时钟分频程序啊,50mhz,十分频,clk_divide=4'd10
always @(posedge clk or negedge rst_n) begin
50       if(!rst_n) begin
51            clk_cnt <= 4'd0;//不懂这个clk_cnt是什么
52            dri_clk <= 1'b1;
53      end
54      else if(clk_cnt == CLK_DIVIDE/2 - 1'd1) begin
55             clk_cnt <= 4'd0;
56             dri_clk <= ~dri_clk;
57      end
58      else begin
59            clk_cnt <= clk_cnt + 1'b1;

60            dri_clk <= dri_clk;
61      end
62 end


最佳答案

查看完整内容[请看2#楼]

clk_cnt就是计数用的,就是说当计数达到CLK_DIVIDE一半的时候,dri_ick就由高变为低或者由低变高,计数计的时clk的上升沿个数
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2019-3-8
在线时间
10 小时
发表于 2019-7-11 17:13:57 | 显示全部楼层
clk_cnt就是计数用的,就是说当计数达到CLK_DIVIDE一半的时候,dri_ick就由高变为低或者由低变高,计数计的时clk的上升沿个数
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2019-7-12 01:52:16 | 显示全部楼层
帮顶
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2019-7-10
在线时间
1 小时
发表于 2019-7-13 23:14:56 | 显示全部楼层
if(!rst_n)begin
      clk_cnt<=4'd0;//这是复位,时钟计数初始值为零
      dri_clk<= 1'b1;//分频系数为1,也就是说不分频
------------------------------------------
后面的代码您确定没有错吗?
回复

使用道具 举报

4

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2016-11-1
在线时间
22 小时
发表于 2019-7-15 15:31:59 | 显示全部楼层
CJYCJY 发表于 2019-7-13 23:14
if(!rst_n)begin
      clk_cnt

dri_clk<= 1'b1;不是指分频系数,这是指时钟信号初始状态为高电平。
回复

使用道具 举报

4

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2016-11-1
在线时间
22 小时
发表于 2019-7-15 15:33:50 | 显示全部楼层
试着画个时序图,画完就理解了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 09:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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