门控时钟
某些模块不需要工作的时候,为了降低功耗,需要关闭该模块的时钟,节省触发器的翻转功耗。采用门控时钟电路来控制时钟的关断。
本文大量引用了知乎门控时钟的图片和一些文字描述
简单的与门
最初的思路是采用一个使能信号en和一个与门来控制时钟的开关。
![请添加图片描述](https://img-blog.csdnimg.cn/4e345ecb34064af58c1377cb4c8ca5a1.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VlZnJlc2hlcg==,size_16,color_FFFFFF,t_70)
采用与门来控制
缺点
但是这样做会有很多缺点
如图所示
![在这里插入图片描述](https://img-blog.csdnimg.cn/98292ba1c3f5493e95ba83e1f2c442d2.png#pic_center)
波形图1
-
en信号不受控制,随时可能能发生信号跳变,未经过时钟同步,和clk信号直接相与极容易产生毛刺
-
时钟clk为高电平时,en信号的毛刺会传播到时钟信号GCLK中
解决思路,通过一个寄存器或触发器来同步en信号,且clk为高电平时,寄存器或触发器的输出不变化
二.采用锁存器同步en信号
![在这里插入图片描述](https://img-blog.csdnimg.cn/0763fca0588a41c793b7100a90370a39.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VlZnJlc2hlcg==,size_16,color_FFFFFF,t_70#pic_center)
锁存器和与门作为IGC电路
如图所示,锁存器的为低电平有效传输,当时钟clk为低点电平时,D端口上en信号的变化会传输到Q端口,即使此时有毛刺传输进来,clk低电平控制了与门的传输,毛刺无法通过与门到达GCLK信号,当时钟clk为高电平时,Q端口的值会锁存住,一直保持clk上升沿前一时刻输入D端口的值。波形如下图所示
![在这里插入图片描述](https://img-blog.csdnimg.cn/10c250ad628c4ba780c13901af6db362.png#pic_center)
毛刺
因为clk时钟达到触发器的en端口和与门的时间可能会不一样,有可能会产生毛刺
![在这里插入图片描述](https://img-blog.csdnimg.cn/aa7e119547e94e549950394db77d7c68.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VlZnJlc2hlcg==,size_16,color_FFFFFF,t_70#pic_center)
图5.锁存器clk延时带来的毛刺
图5右上角图所示,clk先到达a点,后到达b点,并且clk skew大于锁存器的D->Q延时时间,会产生毛刺。避免产生毛刺,因该使得clk skew < D->Q delay
图5右下角图所示,clk先到达b点,后到达a点,且clk skew大于Setup — D->Qdelay,也会产生毛刺,避免毛刺,应该满足|clk_skew| < Setup — D->Qdelay。
三.寄存器同步en信号
同理也可以通过寄存器来同步en信号
![img](https://img-blog.csdnimg.cn/img_convert/6542579877a6c9bd0ecea703fa1420b1.png)
与锁存器的对比
共同点
- 在clk为高电平时,输出端口的值为时钟上升沿前一刻的值并保持这个值。
不同:
- clk为低电平时,en信号的变化和毛刺,不会被寄存器采样到en端口
- clk为低电平时,en信号的变化和毛刺,会被锁存器采样到en端口 (但此时clk为低电平,en信号变化和毛刺无法通过与门)
波形图如下图所示
![在这里插入图片描述](https://img-blog.csdnimg.cn/1ce46a956a5c478fb346c178097c68a4.png#pic_center)
毛刺信号
实际电路中,由于寄存器存在的D->Q延时,当en信号的下降沿传输时,寄存器也会产生毛刺
![在这里插入图片描述](https://img-blog.csdnimg.cn/24d0e37895974d7d896f5577fd7f7a82.png#pic_center)
如何避免毛刺信号呢?
![在这里插入图片描述](https://img-blog.csdnimg.cn/67310dc28859492999324ea14dc37618.jpg#pic_center)
- b点的clk skew(到达与门的时钟信号延迟) 高于D->Q的时钟延时
四 选用 寄存器 or 锁存器?
通常时采用锁存器,因为锁存器占用的面积更少,随然锁存器对clk的延时和锁存器的延时有一定的要求,当在综合室,IGC电路作为一个常用的模块,其内部的延时是固定的,能满足延时的要求.