0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

讲讲Latch的功能?Timing Path如何分析?

冬至子 来源:RTL2GDS 作者:老本 Benjamin 2023-06-27 14:55 次阅读

Latch功能

Latch的电路结构如下图:

图片

Latch电路结构

当 E = 1 时,latch直传(transparent),D端信号的变化会即时反应在Q端;

当 E = 0 时,latch关断(closed),Q端保持关断瞬间D端的值。

设计中使用Latch的好处是,相比寄存器的面积更小,功耗更低,可以从后级电路进行time borrowing,更容易满足setup time,然而坏处是STA分析不会那么直接,下面我们就看看引入了Latch的Timing Path如何分析。

Time Borrowing

在数字设计中,经常会碰到如下图所示的Path,两个寄存器(UFF0和UFF1)之间存在一个锁存器(ULAT1),这种情况工具会怎么分析path呢?不同STA工具的行为会有稍微的区别,我们先以PT传统的分析方法来解释。

图片

加入Latch后的电路图

图片

Time Borrowing示意图

根据Latch的特点,在CLKN为高电平时,ULAT1是transparent,ULAT1/D端的数据能即时地反映在ULAT1/Q端。上图中的情况是,UFF0->ULAT1/D的Path Delay使得ULAT1/D数据在CLKN的上升沿之后才到达,需要从后一级ULAT1->UFF1中借了1.81ns,使得原本违例的path满足了要求,而ULAT1->UFF1的timing path即使借出去1.81ns,也能够满足要求,具体的timing report如下:

图片

UFF0->ULAT1的Timing Path

图片

ULAT1->UFF1的Timing Path

这里需要指出的一点是,在计算setup timing的时候,在UFF0->ULAT1中,ULAT1的clock path是按照early/min模式计算的,而在ULAT1->UFF1中,ULAT1的clock path是按照late/max模式计算的,有一部分公共路径的CRPR是不会被排除掉的,所以现在的PT引入了一种新的latch timing分析的模式,它把latch当成一个组合逻辑,在分析UFF0->UFF1的path时可以穿过ULAT1,这里只提示一下可以通过下面这个选型来打开,从而可以减少悲观度:

set_app_var timing_enable_through_paths true

这种模式下,Latch的D Pin只能作为Endpoint,不能作为Startpoint,所以在report_timing的时候也要注意是用-to还是-through的区别:

report_timing -to $latch_d_pin
report_timing -through $latch_d_pin

需要注意的是,这种through模式只是针对setup,对hold分析还是保持不变。下面接着看一个用latch来解决跨时钟域hold timing问题的应用。

Lockup Latch in Scan Chain

为了芯片测试的需要,我们会用Scan Chain的方式将绝大部分的寄存器串链起来,在不影响功能的情况下,以简单的方式测试电路中寄存器的良率。但是存在一种情况,前后相邻的两级寄存器如果时钟不一样(跨时钟域),如下图所示:

图片

加入Lockup latch之前的电路图

由于CLK1和CLK2为不同的时钟域,很难保证他们同步,假如CLK2相比CLK1有一段不确定的延迟Tskew,可大可小,那么很有可能FF1/CLK1->FF1/Q->FF2/SI这段延时Tdata会比Tskew小,造成hold timing违例。

图片

加入Lockup latch之前的hold timing时序图

上一节提到Latch有time borrowing的功效,假如在两级寄存器之间加入一个latch,结构如下图所示:

图片

加入Lockup latch之后的电路图

CLK1低电平的时候,Lockup Latch是transparent,CLK1高电平的时候Lockup Latch一直保持上一拍的数据,这样即使CLK2有延迟,只要不超过CLK1高电平持续时间,就能保证hold timing没有问题。

图片

加入Lockup latch之后的hold timing时序图

DC中可以很方便的实现这一功能,具体会在RTL2GDS微信公众号的综合/DFT教程中详细介绍。

Clock Gating Check

Latch的另一个应用是作为门控时钟单元(Clock Gating Cell),通过避免部分寄存器不必要的时钟翻转,可以极大地节省电路的动态功耗。实际应用中,为了避免出现毛刺,会在Latch后面添加一个与门组成一个ICG(Integrated Clock Gating)。

图片

ICG电路结构

由于ICG是用在clock path上,STA工具默认会要求做CLKI到EN端的clock gating check,目的是保证时钟使能的时序满足要求,所以会存在REG2ICG的path。因为ICG的clock会比REG的clock delay要短,所以天然存在一个skew对setup不利,特别是假如有多级的ICG级联,更加加重了这种情况。在设计上,需要保证REG2ICG的数据路径不能太复杂,否则物理实现会存在困难。

在CTS之前,由于clock tree是ideal的,考虑不到这种skew的不利影响,所以往往需要通过SDC命令"set_clock_gating_check"人为地设置,让综合或者布局工具提前认识到这一点并提前优化。

需要注意的是,不仅仅ICG需要clock gating check,如果clock path上存在与门、或门等逻辑也需要进行clock gating check。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5327

    浏览量

    120081
  • 锁存器
    +关注

    关注

    8

    文章

    905

    浏览量

    41460
  • STA
    STA
    +关注

    关注

    0

    文章

    51

    浏览量

    18949
  • SDC
    SDC
    +关注

    关注

    0

    文章

    48

    浏览量

    15528
  • CLK
    CLK
    +关注

    关注

    0

    文章

    127

    浏览量

    17132
收藏 人收藏

    评论

    相关推荐

    Latch UP

    本帖最后由 不认识曹操 于 2011-12-16 17:07 编辑 [post][/post]Latch up 是指cmos晶片中, 在电源power VDD和地线GND(VSS)之间由于寄生
    发表于 12-16 16:37

    请问Latch到底是什么呢?

    我有看到说Latch是一个简单的电路用来存储一位的数据(或者状态),也就是说这个Latch是个名词(锁存器)。但是我在看MCU 8085的资料的时候在定时控制这一章节,有一个信号叫做ALE
    发表于 12-06 10:35

    Verilog基本功--flipflop和latch以及register的区别

    PrimeTime,是支持进行latch分析的.现在一些综合工具内置的STA分析功能也支持比如RTL compiler, Design Compiler. 除了ASIC里可以节省资源以
    发表于 08-27 08:30

    Timing Groups and OFFSET Const

    Timing Groups and OFFSET Constraints: •Use the Constraints Editor to create groups of path
    发表于 01-11 08:55 4次下载

    Achieving Timing Closure

    Achieving Timing Closure:Timing Reports• Timing reports enable you to determine how and why
    发表于 01-11 08:56 0次下载

    Path-Specific Timing Constrain

    Path-Specific Timing Constraints:Constraining Between Risingand Falling Clock Edges•
    发表于 01-11 08:56 10次下载

    逻辑分析仪中Timing-State存储方式的应用

    本内容介绍了逻辑分析仪中Timing-State存储方式的应用
    发表于 09-22 14:26 14次下载
    逻辑<b class='flag-5'>分析</b>仪中<b class='flag-5'>Timing</b>-State存储方式的应用

    基于FALSE PATH的设置

    总得来说,FALSE PATH就是我们在进行时序分析时,不希望工具进行分析的那些路径。一般不需要工具时序分析的路径指的是异步的路径,异步路径就是指的不同时钟域的路径。
    发表于 09-19 10:46 0次下载
    基于FALSE <b class='flag-5'>PATH</b>的设置

    详细介绍时序基本概念Timing arc

    时序分析基本概念介绍——Timing Arc
    的头像 发表于 01-02 09:29 2.4w次阅读
    详细介绍时序基本概念<b class='flag-5'>Timing</b> arc

    静态时序分析基础与应用

    STA的简单定义如下:套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制(Timing Constraint)。以分析的方式区分,可分为
    发表于 04-03 15:56 10次下载

    介绍的时序分析基本概念PBA分析模式

    和GBA模式相比,PBA要更加乐观,因为它会计算具体哪些路径是实际的路径。如下图中的timing path
    的头像 发表于 07-03 15:27 2459次阅读
    介绍的时序<b class='flag-5'>分析</b>基本概念PBA<b class='flag-5'>分析</b>模式

    AOCV时序分析概念介绍

    今天我们要介绍的时序分析概念是 **AOCV** 。全称Stage Based Advanced OCV。我们知道,在OCV分析过程中,我们会给data path,clock path
    的头像 发表于 07-03 16:29 1939次阅读
    AOCV时序<b class='flag-5'>分析</b>概念介绍

    什么是时序路径timing path呢?

    今天我们要介绍的时序分析概念是 **时序路径** (Timing Path)。STA软件是基于timing path
    的头像 发表于 07-05 14:54 2121次阅读
    什么是时序路径<b class='flag-5'>timing</b> <b class='flag-5'>path</b>呢?

    时序分析基本概念介绍—Timing Arc

    今天我们要介绍的时序基本概念是Timing arc,中文名时序弧。这是timing计算最基本的组成元素,在昨天的lib库介绍中,大部分时序信息都以Timing arc呈现。
    的头像 发表于 07-06 15:00 3354次阅读
    时序<b class='flag-5'>分析</b>基本概念介绍—<b class='flag-5'>Timing</b> Arc

    时序分析基本概念介绍&lt;Critical Path&gt;

    今天我们要介绍的时序分析概念是Critical Path。全称是关键路径。
    的头像 发表于 07-07 11:27 1244次阅读
    时序<b class='flag-5'>分析</b>基本概念介绍&lt;Critical <b class='flag-5'>Path</b>&gt;