这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 如何通过时钟门控降低功耗?

共1条 1/1 1 跳转至

如何通过时钟门控降低功耗?

助工
2018-07-12 19:13:13     打赏
本文将讨论时钟门控的基本概念以及如何使用它来降低同步数字系统的功耗。

时钟门控是用于降低同步数字系统的功耗的众所周知的技术。在本文中,我们将讨论时钟门控的基本概念。

 寄存器文件:时钟门控的示例应用

在本节中,我们将检查寄存器文件的操作作为示例应用程序,其中时钟门控可以显着降低功耗。处理器利用寄存器文件作为快速临时存储设备。

 

图1.寄存器文件的框图。

 

如图1所示,寄存器文件的核心是D型触发器(DFF)阵列。我们可以将这些DFF设想为二维阵列。在图1中,有n行,其中每行由8个DFF组成。每行中的FF放在虚线框内。我们可以在这n行中的任何一行写入一个8位数据字,或从中读取一个8位数据字

要执行写/读操作,我们需要指定目标行。这是通过为寄存器文件的每一行指定地址来实现的。此外,由于一次只允许一次写入或读取操作,我们需要另一个输入来指定我们是写入还是读取文件。在图1中,代表写使能的一位输入wr_en确定操作类型。wr_en很高时,我们正在写作; 否则,寄存器文件处于读取模式。

在写入模式(wr_en = 1)下,“解码器”块将根据写地址w_addr的值选择其中一行这会将目标行多路复用器的选择输入设置为1 ,而将写入数据的w_data传递给行输入。在即将到来的时钟上升沿,w_data将存储在所选行的DFFICfans

要执行读取操作,我们再次需要选择目标行。这是使用寄存器文件输出端的多路复用器实现的。该多路复用器的选择输入连接到r_addr,后者指定读地址。此外,在读取操作期间,我们必须将存储在每一行中的数据返回到其输入,以使寄存器的内容在时钟边缘处不会无意地改变。换句话说,当处于读模式时,我们将寄存器的当前值指定为其下一个值。为此,双输入多路复用器放置在每行的输入端。在读操作期间,所有这些多路复用器的选择输入是逻辑低的,因此每个DFF的内容返回到其输入。

 读模式浪费电力

从功耗的角度来看,读取模式效率不高。在这种模式下,寄存器文件的内容不需要更新; 但是,对于每个时钟滴答,我们用它们的当前值更新寄存器。这需要将时钟信号应用于大量DFF。请记住,每个FF时钟输入都会引入一些寄生电容(让我们称之为电容)。

我们怎样才能避免对这个电容充电?在读取操作期间,寄存器文件的内容不得更改。上面显示的方法确保寄存器值不会改变,但我们可以通过简单地关闭时钟信号来实现相同的目的。这种称为时钟门控的技术可以显着降低功耗。但是,它也可能导致严重的问题。让我们仔细看看这种技术。

时钟门控

假设我们已决定为图2所示的DFF使用门控时钟。主时钟为ck,我们有一个使能信号en,它确定DFF何时应该工作(在寄存器文件示例中,写使能信号) ,wr_en,可用于时钟门控目的)。en为逻辑高电平时,门控时钟gck将等于ck这是时钟门控的基本概念。但是,如果en是逻辑低的呢?应该GCK在这种情况下,高还是低?我们应该使用什么电路而不是图2中标有问号的方框?

 

图2

 

由于图2所示的DFF对时钟的上升沿很敏感,因此我们假设en信号也来自于在时钟上升沿改变状态的器件。例如,在图3中,时钟信号ckt = t1时从低变为高一段时间后,en信号在t = t2时转变为高电平时间差t2-t1对应于产生en信号的电路的延迟作为示例,我们可以假设有限状态机(FSM)的特定输出生成en信号。在这种情况下,t2-t1将对应于存储FSM的这种特定状态的FF的延迟加上从FSM状态产生en信号的组合电路的延迟(我们假设系统是同步的并且FSM用ck改变状态)。因此,en的转换将在ck的上升沿之后的某个时间发生

 

图3

 

让我们使用上面的示例波形来找到一个可以产生适当的门控时钟gck的电路,如图2所示。从t2t4en信号为高电平,gck必须等于ck如果en逻辑低怎么办?应该GCK在这种情况下,高还是低?首先,我们假设,对于en = 0gck设置为低。然后,我们将得到如图4所示的红色波形。为了生成这个波形,我们用AND门替换图2的未知电路,如图5所示。

 

图4

 

图5

 

这种时钟门控存在一些问题。首先,t = t2时,我们真的需要gck的上升沿吗?一个可能认为的上升沿GCKt = t2时是的上升沿的延迟版本CKT = T1 ; 但请注意,在t = t1时,我们有en = 0,因此,ck的时钟边沿不得到达FF。因此,该选通装置产生不希望的上升沿转变。

另一个问题是从t2t5的脉冲宽度ck的脉冲宽度脉冲很短会导致DFF发生故障。我们将很快讨论这项技术的第三个问题。

让我们来看看下一个可能性:当en为逻辑高电平时,门控时钟gck将等于ck,但是对于en = 0gck将设置为高电平。然后,我们将得到如图6所示的绿色波形。为了生成这个波形,我们可以使用图7所示的电路。

 

图6

 

图7

 

正如可以看到的,不像GCK图4中,GCK在图6中生成的不具有在上升沿t = t2时利用图7的电路,仅当en为高并且在ck上出现上升沿时才向DFF 提供上升沿而且,产生的脉冲宽度不能短于原始时钟的脉冲宽度。

图7的时钟门控具有与图5的时钟门控相比的另一个重要优点,即,它对en信号上的毛刺更具弹性如上所述,我们假设我们的同步系统在时钟的上升沿触发变化。此外,我们假设生成en信号的逻辑的延迟小于ck周期的一半这意味着en将在ck的上升沿(t = t1之后立即开始改变状态,并且将在ck的下一个下降沿之前,即在t = t5之前达到其最终值但是,在达到最终值之前,en信号可能有毛刺。让我们看看如果我们将时钟门控与经历不希望的转换的使能信号一起使用会发生什么。图8显示了5的电路的示例波形。

 

图8

 

如您所见,en的毛刺直接传递到门控时钟。这些毛刺可能导致gckck的单个正边缘具有多个上升沿,在某些情况下这可能是灾难性的,例如,假设这个门控时钟应用于计数器。计数器的输出将取决于上升沿的数量GCK,反过来,依赖于毛刺。此外,使用时钟门控的主要目标是通过消除不必要的ck转换来降低功耗,但现在,我们正在使情况更糟,因为en毛刺也在时钟路径中引入了额外的不希望的转换。检查图7的电路,我们观察到该电路对于在ck的高状态期间发生的毛刺具有弹性

 

图9

 

上面的讨论表明,对于其中逻辑由时钟的上升沿驱动的同步系统,我们应该使用图7中的基于OR的电路。但是,对于其中逻辑由下降驱动的同步系统在时钟的边沿,我们应该使用AND门来产生门控时钟。

 FPGA中的时钟门控

时钟门控是用于在专用集成电路(ASIC)设计环境中降低功耗的常用技术。但是,在FPGA中,我们通常会避免选通时钟。这主要是因为在FPGA中,利用专用网络和缓冲器将时钟信号适当地路由到芯片的不同部分。时钟门控可能干扰时钟分配网络,例如,通过强制时钟信号通过通用查找表。如果在FPGA中使用时钟门控,则由设计人员检查合成电路是否安全。

然而,功率优化软件包可用于应用时钟门控的概念,以便降低电路的功耗。例如,Xilinx有一个称为“ 智能时钟门控 ” 的选项,它使用片中的时钟使能引脚来中和多余的开关活动。该技术不同于本文讨论的经典时钟门控,因为智能时钟门控实际上并不创建新的时钟。相反,Xilinx的技术使用片的时钟使能引脚来禁用在给定时钟周期内对电路操作没有贡献的寄存器。




关键词: 半导体     ICfans     时钟门控    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]