在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3965|回复: 6

[讨论] reg的clk gating问题

[复制链接]
发表于 2015-1-30 12:20:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
一般的gated clk 都是用的latch,但是下面这个电路是 gated clk么,还有应该是FF应该是下降沿吧

reg[9:0] counter_clk;
always @(negedge resetn or posedge clk_3) begin
  if(~resetn)
    counter_clk <= 10'd0;
  else
    counter_clk <= counter_clk + 1'b1;
end
assign det_clk = clk_3 & (&counter_clk);
发表于 2015-1-30 13:22:10 | 显示全部楼层
不是clkgate。1K分频啊,det_clk可以做使能信号比较省事。
发表于 2015-1-30 23:27:52 | 显示全部楼层
det_clk应该算门控时钟,因为它是时钟信号clk_3与控制信号(&counter_clk)逻辑与生成的
发表于 2015-1-31 12:02:42 | 显示全部楼层
通常理解的时钟门控,应该是使用专用器件完成的

时钟门控的基本要求是不能产生毛刺,只保持需要的脉冲,并且对原始时钟的特性不能有破坏
比如:脉冲宽度、transation时间等等

上面这段代码,实际上是拿一个脉宽的高电平和时钟做了组合逻辑,出来的信号波形应该是一个“凹”字形的脉冲
楼主自己画一画看看

而且脉冲的高电平宽度都是很短的(~= 寄存器的CLK->Q延时)
即上面我所说的出现的毛刺

综上,上述代码不是时钟门控
只是用时钟和数据做了一个逻辑而已
其输出的det_clk根本无法作为后续寄存器的时钟用
因为它的脉冲都是毛刺
发表于 2015-1-31 12:13:01 | 显示全部楼层
本帖最后由 maoqiu 于 2015-1-31 18:11 编辑

说错了
更正如下
=======================
“凹”型脉冲的前一个脉冲的宽度要大些
= T/2 - Tclk->q

后一个脉冲的宽度= Tclk->q

所以前一个脉宽的宽度比原始时钟的脉宽小了,而后一个是毛刺
=====================================

如寄存器采用negedge时钟沿,是可以完成门控,det_clk会输出一个正常脉宽的时钟沿

=====================================
 楼主| 发表于 2015-2-1 09:20:08 | 显示全部楼层
回复 5# maoqiu


  对的,我认为也是,这个det_clk很容易出现毛刺,不能作为clk给下级电路用。   如果用下降沿为counter进行采样,毛刺会好很多。个人感觉这就是个不成熟
  的脉冲检测信号?
发表于 2015-2-1 14:24:12 | 显示全部楼层
请问Xilinx的FPGA做CLK GATING,用LZ这样的RTL综合后就自动实现了吗?

还有如果我对这个模块做CLK GATING,想LZ这样通过RTL代码,那么理论上是不是这个模块就没有动态功耗了呢?(Xilinx FPGA 能支持这个功耗的优化吗)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-24 20:12 , Processed in 0.020410 second(s), 10 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表