微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > reg的clk gating问题

reg的clk gating问题

时间:10-02 整理:3721RD 点击:
一般的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);

不是clkgate。1K分频啊,det_clk可以做使能信号比较省事。

det_clk应该算门控时钟,因为它是时钟信号clk_3与控制信号(&counter_clk)逻辑与生成的

通常理解的时钟门控,应该是使用专用器件完成的
时钟门控的基本要求是不能产生毛刺,只保持需要的脉冲,并且对原始时钟的特性不能有破坏
比如:脉冲宽度、transation时间等等

上面这段代码,实际上是拿一个脉宽的高电平和时钟做了组合逻辑,出来的信号波形应该是一个“凹”字形的脉冲
小编自己画一画看看
而且脉冲的高电平宽度都是很短的(~= 寄存器的CLK->Q延时)
即上面我所说的出现的毛刺
综上,上述代码不是时钟门控
只是用时钟和数据做了一个逻辑而已
其输出的det_clk根本无法作为后续寄存器的时钟用
因为它的脉冲都是毛刺

说错了
更正如下
=======================
“凹”型脉冲的前一个脉冲的宽度要大些
= T/2 - Tclk->q
后一个脉冲的宽度= Tclk->q
所以前一个脉宽的宽度比原始时钟的脉宽小了,而后一个是毛刺
=====================================
如寄存器采用negedge时钟沿,是可以完成门控,det_clk会输出一个正常脉宽的时钟沿
=====================================



  对的,我认为也是,这个det_clk很容易出现毛刺,不能作为clk给下级电路用。   如果用下降沿为counter进行采样,毛刺会好很多。个人感觉这就是个不成熟
  的脉冲检测信号?

请问Xilinx的FPGA做CLK GATING,用LZ这样的RTL综合后就自动实现了吗?
还有如果我对这个模块做CLK GATING,想LZ这样通过RTL代码,那么理论上是不是这个模块就没有动态功耗了呢?(Xilinx FPGA 能支持这个功耗的优化吗)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top