memory与DFF的时钟门控

门控对DFF降低功耗的原理

门控(clock gating)降低 DFF 功耗的本质,是减少无效翻转,从而降低动态功耗。
P = α · C · V² · f
其中,α:翻转率(关键!);C:负载电容;f:时钟频率

clock gating的原理

glitch定义

glitch是gated clock上出现的短暂毛刺信号,通常是因为enable信号在时钟高电平期间发生变化导致的。这种时钟信号的毛刺,会被DFF认为是额外的时钟边沿,从而引起触发错误。由于gated clock是全局敏感信号,glitch的危害远远大于普通数据路径上的危害。解决办法是在clock gating的设计中,使用latch-based clcok gating,在时钟低电平时采样enable信号,保证高电平期间控制信号是稳定的,从而可以避免glitch。

latch是时序元件,使用 “使能透明/保持”来描述它的功能。EN 有效时 Q 跟随输入,EN 无效时 Q 保持原值

EN D Q(next) 状态
0 X Q 保持
1 0 0 透明传输
1 1 1 透明传输

如果 clock gating 的 enable 信号来自另一个时钟域,直接使用会导致严重问题。首先,由于 enable 是异步信号,可能在时钟高电平期间变化,从而在 gated clock 上产生 glitch,相当于产生额外的时钟边沿;其次,enable 在跨域时可能引入亚稳态,进一步污染 gated clock。
正确做法是先将 enable 信号通过双级同步器同步到目标时钟域,再送入 clock gating 单元进行门控控制。latch 只用于避免 gating 过程中的 glitch,但不能替代 CDC 同步。

为什么memory做clock gating 不省功耗

对同步SRAM来说,动态功耗主要来自内部读写操作(bitline/wordline的切换),而不是clock网络。
因此降低 memory 功耗通常需要从减少访问次数、banking 或 power gating 等角度入手。

SRAM 的 bitline 设计成 precharge + differential

SRAM的bitline和wordline

bitline与wordline示意图

更准确的,bitline具有差分结构。

BL   ←→   BLB
 │         │
[cell][cell][cell]  ← 同一列
 │         │
 └──→ Sense Amplifier

赏

   转载规则


《memory与DFF的时钟门控》 由 HELLO WORLD 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
slice_pipeline_打拍 slice_pipeline_打拍
AXI register slice从Master –> Slaveforward path: data/validbackward path: ready light 模式当下游ready时,允许把上游数据打一拍出去;当下游数据不r
2026-05-04
下一篇 
基于FPGA实现多相滤波 基于FPGA实现多相滤波
使用ADC083000,量化位数是8bits, 最高采样率3.4GSPS(即3.4GHz),ADC083000配置为 DDR mode,随路时钟为 1/4 采样时钟。采用带通采样,带通采样定理 $$f_{S}=\frac{4 f_{0}
2022-08-05
  目录