门控时钟的分类通过门控方式不同,一个门控时钟通常可以分为下面基类,
高有效(active high)门控时钟通常使用与门(and)或者与非门(nand)实现,
当使能信号为高的时候,时钟才可以被释放出去. 如果是nand,则输出的时钟是一个反向时钟的波形
低有效(active high)门控时钟通常使用与门(and)或者与非门(nand)实现,
当使能信号为低的时候,时钟才可以被释放出去. 如果是nor,则输出的时钟是一个反向时钟的波形
除过上述的情况,有时候也会使用复杂一些的clock gating结构,这里的波形就会复杂一些
xor结构的门控时钟
当enable信号为1的时候,输出是输入的反向,反之则是正向
mux结构的门控时钟
时钟传播单调性(unate)静态时序分析的基本原理是信号传播,对于拥有明确单调性的传播是构建正确sta环境的基础,数据通路对单调性(unate)通常不敏感,但是时钟通常是边沿敏感信号,所以时钟网络的单调性在sta时序分析的形态中尤为重要。sta工具也只有在单调性明确的时钟网络上做正确的时序分析,否则大概率会在实际芯片里边出现和sta不一致的情况。这点对于时钟网络的设计非常重要。
通过上述几种门控始终结构,从单调时钟的(unate)的角度来看,可以总结为下表
gating结构
所以,对于所有在时钟网络上的门控时钟,用户都需要明确其单调性,以便sta进行正确的分析。
门控时钟的的检查(clock gating check)通过上述描述,可以看到始终网络对于静态时序分析的重要性,所以在门控时钟在时钟网络的传播路径上的检查尤为重要。同样,基于clock gating的结构,对于active high,active low的门控时钟,通过sta工具。可以自动推断(infer)出相应的门控时钟检查(clock gating check),用户可以理解,这里的clock gating结构被sta所覆盖。所以用户在需要理解sta自动推断的原理,从而确保自己的时钟路径被sta覆盖
定义工具判断门控时钟的基本标准如下
输入的时钟到输出必须存在一个组合逻辑的传播路径。常规的与或非,或者常规的latch based 的clock gating结构(见下图),但是register的分频结构,就不是一个clock gating。
输入的端口必须包含clock,但是输入到输出的传播必须包含数据路径(gated 信号)。
示例1: 组合逻辑的输入都是clock,sta会自动将时钟传播到输出,这样输出的会看到四个clock,这样的结构是无法判定为clock gating结构的,需要用户在使用的时候,当clock1有效的时候,clock2/3/4需要维持一个常1,否则输出的clock会出现混乱
示例2: 输入都是clock,但是用户使用下列命令在输出创建了一个gen-clock
create_generated_clock -name clock1_gen_clk -divide_by 1 \\-source clock1 [get_pins u1/z]由于这个and只有clock1传播过去,sta会自动推断出这是一个clock gating结构,clock1到clock2的gating 检查,clock2信号就是一个门控信号(enable)
示例3 :对于一个复杂的门控时钟无法自动推断
这里的umux0满足clock gating的结构
但是由于mux结构是一个非单调性传播(none-unate),这样一个clock gating结构是无法自动推断(auto-infer)出来的,所以在clock 传播路径上存在风险,这样工具会给出如下的提示。需要用户进一步处理
挑战门控时钟是在clock的传播路径插入了与或非逻辑,设计人员通过一定的逻辑控制达到对时钟的操作:
时钟分频:使用低频门控信号与高频时钟和做and操作: clock_slow = clock_fast * slow_enable
时钟开合:使用半静态信号(近乎于始终关断控制): block_clock = sys_clock * block_enable
时钟选择:使用半静态信号(近乎于模式控制): clock_out =(sel==1'b0)?func_clock : scan_clock
或者使用latch/reg结构,设计一个防抖的时钟切换,但是无论门控信号的产生有多么复杂,只要符合门控适中的结构,最后的clock gating check的点位是不会发生变化的,只是一个好的时钟生成(clock-gen)的设计,可以对sta更友好的,推进项目质量和加速项目收敛,这也是一个有经验的设计工程师的基本修为。
时钟是周期的变化,如果和一个门控逻辑进行组合逻辑运算,通常会出现时钟波形传播的问题(clock crop 或者clock swallow):
在不同阶段出现的enable信号,会导致clock的波形发生畸变
注意:在sta的timing report中,用户是不会看到上述问题的影响的的,但是在实际芯片中,这种影响是真实发生的。 所以,clock-gating的逻辑,必须被clock-gating-check所覆盖,并且需要谨慎地进行彻底修复,对于工具不能自动推断出来的clock-gating点,需要用户重点关注和给出解决方案,否则在最后的芯片中会出现和sta完全不一致(无法通过sta定位)的时序问题。
未完待续… (to be continued …)
这样处理以后,lvs的std-cell的port mismatch也就完美解决了,
学好v2lvs,再也不用perl去patch source netlist了~~~~
【敲黑板划重点】理解门控时钟检查(clock-gating-check)和理解门控时钟(clock-gating)同等重要,任何在clock tree上做的动作都需要额外的小心。
苹果神速升级更新ios10.3.1,老用户表示相当贴心
探究PC104的某型航空发动机排气温度测试系统
高工系统集成商汇第一批会员入会仪式顺利举行
锂电池外观检测机重要性的简单说明
深度盘点二手工业机器人行业现状
门控时钟检查(clock gating check)的理解和设计应用
电线中铜线和铝线可以直接连接吗?
2020年数据中心将呈现六大行业趋势
用于碳水化合物跟踪、血糖监测和胰岛素给药的自动化一体化系统
中国三大电信运营商和设备商公布的5G发展计划详细资料概述
韩国5G套餐价格和服务范围虽饱受诟病,但在全球5G国家中排名第二
企业物联网项目成功指南
四节干电池串联电流是多少安
Allegro又与全球领先的半导体代工厂商联华电子签署长期协议
北京盛世宏博RJ45网口式温湿度传感器
论人工智能如何挽救人类的双眼…
华米AmazfitGTR智能手表有哪些卖点
力挺产品喷淋拒水测试仪
机皇之争!华为mate10即将发布:iphone8和三星note8没人买?华为mate10能否热卖
织物静水压测试仪的技术参数与技术优势