【芯片前端】关于门控电路和逻辑做在D端还是EN端的思考

简介: 【芯片前端】关于门控电路和逻辑做在D端还是EN端的思考

最近在看《硬件架构的艺术——数字电路的设计方法与技术》,学习细化了很多之前模棱两可的知识点,偶尔来总结输出一下,今天就是这个主题——门控电路;

门控结构

相传在很多年前,时序逻辑里是没有门控电路的;

这句话我是听说的,估计我是没赶上那个时候,那时候最流行的触发器综合方式可能还是同步时钟使能结构:

这种结构呢在没有使能的情况下,触发器的D端是不会有信号跳变的。但是呢,此时时钟信号保持翻转触发器的内部电路也保持活跃,因此没有降低功耗的效果,于是后来进一步出现了门控时钟的结构;

最简单容易想到的门控时钟触发器的结构如下图:

通过en信号来控制时钟开关,当en信号当拍为0是,触发器时钟电路不翻转,Q端输出信号保持,功耗降低。但是这样做存在一个明显的问题,en信号显然是逻辑电路生成的,其满足建立时间和保持时间要求,但是当en信号维持时间过短时,时钟会被过早的关断:

或者说也有这种可能,产生时钟毛刺或误产生时钟脉冲:

因此作用clk1的en信号必须要能在时钟上升沿到时钟下降沿这个区间保持为一个常量,所以需要引入一个锁存结构:

clk信号作为锁存器的控制端,en信号为被锁存信号,当clk为1时锁存en信号,clk为0是透传en信号,对应的波形如下:

通过锁存器的锁存功能,en信号只要在上升沿附近保持稳定,即可保证产生完整的时钟脉冲;大部分的厂商会在标准单元库中提供“时钟门控单元”,比上面的结构会多一个test_se信号,在扫描测试时候使用:

当然,刚刚所说的只是在触发器级的时钟门控,门控时钟可以处于整个时钟树的任何节点,越靠近根部的门控时钟对于降低功耗的作用越明显,原因显而易见,整个电路结构的功耗整体由三部分组成:组合逻辑产生的功耗+触发器产生的功耗+时钟树功耗;靠近根部的门控结构不仅降低了大量触发器的功耗,同时降低了区域的时钟树功耗(时钟树功耗几乎占到了芯片功耗的50%);

逻辑做在D端还是EN端

复习完门控时钟后,回到我之前就思考的一个问题:组合逻辑是应该做在触发器的D端还是EN端?实话实说,目前我也没有答案,只能把我的认识写一下;

把信号更多的做在EN端使之为1的条件更为苛刻带来的好处是显而易见的:时钟被开启的概率更低,触发器的功耗更低;而困难的地方在于EN端的信号时序更加紧张,时序收敛更加困难;

关于EN端的信号时序更加紧张,时序收敛更加困难这个事情,看一下通常综合完的clk timing.rpt和clk gating timing.rpt对比下就会发现,gating的timing路径中一般会减去一个时间比如-100ps,那这个时间减的是什么呢?

说实话我不是非常确定,初步分析,D端的信号是相对clk_gating收时序,逻辑由clk_gating采样触发,在下一拍的clk_gating做建立和保持时间分析;而EN端的信号是相对clk收时序,由clk_gating采样触发,在下一拍的clk做建立和保持时间分析。而clk_gating相对clk是有向后的偏移量的,因此EN端信号由clk_gating触发在clk处收时序,减去100ps是不是合情合理的?

因此我的第一个认识就是:在EN端时序可以收敛的情况下,尽可能的把逻辑做在EN端,以降低功耗;

然而,插入门控电路是有面积和功耗损失的,毕竟平白无故的多了一个与门、一个或门、一个锁存器,因此一般只有在大于等于四个触发器共用一个门控结构才会有正收益;同时,越多的触发器共用一个门控结构,门控电路本身带来的面积与功耗代价就越小。那么,如果EN端逻辑做的过于复杂和专一,必然不利于触发器共用门控结构,因此如果一组信号EN信号相近,那么可以提取他们的公共EN部分逻辑做在EN端,其他逻辑做在各自的D端,来减少门控结构的数量

当然了,EN端越共用一般意味着控制粒度越粗,时钟开启的频率越高触发器功耗也更高,这两个方面本身相互制约,有时需要靠经验来选择了。


相关文章
|
前端开发 芯片
【芯片前端】关于门控电路和逻辑做在D端还是EN端的思考
【芯片前端】关于门控电路和逻辑做在D端还是EN端的思考
信道建模流程 | 带你读《大规模天线波束赋形技术原理与设计 》之二十八
本节将详细介绍衰落信道的整体建模流程,内容上与 3D 信道模 型 3GPP TR36.873 7.3 节和 3GPP TR38.901 的 7.5 节对应。两者在内容上大体相同,前者的目标为6GHz以下的信道建模(记为模型1),后者为0.5~100GHz 的信道建模(记为模型 2)。对于 6GHz 以下的信道建模,两者均可以使用, 在下文的描述中,两者不同的地方均会列出。
信道建模流程  | 带你读《大规模天线波束赋形技术原理与设计 》之二十八
路径损耗计算模型 | 带你读《大规模天线波束赋形技术原理与设计 》之二十五
本小节介绍 3D 信道的路损模型,是以 ITU 信道为基础拓展得到的。
12652 0
路径损耗计算模型  | 带你读《大规模天线波束赋形技术原理与设计 》之二十五
|
5月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块
升级版FPGA MSK调制解调系统集成AWGN信道模型,支持在Vivado 2019.2中设置不同SNR仿真误码率。示例SNR值从0到15,结果展示解调质量随SNR提升。MATLAB仿真验证了MSK性能,图片显示了仿真结果。 ### 理论概要 研究聚焦于软件无线电中的MSK调制解调,利用Verilog实现。MSK是一种相位连续、恒包络的二进制调制技术,优点包括频谱效率高。系统采用无核设计,关键模块包括调制器、解调器和误码检测。复位、输入数据、中频信号等关键信号通过Verilog描述,并通过Chipscope在线观察。
110 6
基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块
|
7月前
|
存储 算法 计算机视觉
FPGA:可编程逻辑器件的探索与实践
FPGA:可编程逻辑器件的探索与实践
154 1
|
7月前
|
人工智能 算法 自动驾驶
FPGA:可编程逻辑器件的新篇章
FPGA:可编程逻辑器件的新篇章
|
芯片
通讯电平转换电路中的经典设计
通讯电平转换电路中的经典设计
89 0
|
算法 网络安全 芯片
可编程逻辑器件的介绍
可编程逻辑器件(Programmable Logic Devices, PLDs)是一种集成电路芯片,具有可编程的逻辑功能。它们提供了一种灵活的硬件设计解决方案,能够满足不同应用需求。本文将介绍可编程逻辑器件的基本原理、分类和应用,并探讨其在电子设计中的重要性。 一、可编程逻辑器件的基本原理 可编程逻辑器件是一种使用可编程逻辑门阵列(Programmable Logic Array, PLA)或可编程逻辑阵列(Programmable Logic Array, PLA)来实现逻辑功能的集成电路。它们由一系列可编程逻辑门和触发器组成,通过编程将逻辑门和触发器连接起来,实现所需的逻辑功能。 可
299 0
|
存储 缓存 算法
m基于FPGA的交织解交织系统verilog实现,包含testbench
m基于FPGA的交织解交织系统verilog实现,包含testbench
312 0