set_case_analysis/set_false_path/set_clock_groups/set_disable_timing/set_clock_sense区别


一、set_case_analysis

set_case_analysis用于给端口(或引脚)设置固定的逻辑值,然后时序分析会根据该结果优化原先的电路。
在这里插入图片描述
比如带DFT的design,选择function mode时,约束命令如下。

代码如下(示例):

set_case_analysis 0 [get_ports PIN_SCNTEST]
set_case_analysis 0 [get_ports PIN_SCN]

二、set_false_path

set_false_path 是用来设置 timing path,表示不用 check 这些 path 的 timing,但是依然会去计算这些 path 上的delay。
在这里插入图片描述
在这里插入图片描述
例如,对于异步时钟,当我们书写SDC时,可以使用set_false_path语句来指定由于异步时钟导致的timing exceptions。

代码如下(示例):

set_false_path -from [get_clocks CLKA] -to [get_clocks CLKB]]

上述只能指定单方向路径的timing exceptions。如果需要指定双向的timing exceptions,则需要如下设置。

代码如下(示例):

set_false_path -from [get_clocks CLKA]-to [get_clocks CLKB]]
set_false_path -from [get_clocks CLKB]-to [get_clocks CLKA]]

在大型设计中,可能有数百或数千个时钟。如果使用“set_fase_path”,则每个时钟对将需要2个约束,那么约束的语句将成倍增长!!!

三、set_clock_groups

set_clock_groups命令用于定义时钟域之间的关系,能够切断不同clock group中不相关时钟之间的时序。
在这里插入图片描述
在这里插入图片描述
与set_false_path相比,set_clock_groups能够更有效的指定设计中的异步时钟关系。

代码如下(示例):

set_clock_groups -asynchronous -group CLKA -group CLKB

四、set_disable_timing

set_disable_timing 用来disable 设计中某个timing arc 。设置disable timing之后,所有经过这个timing arc的timing path(data path/clock path),工具都不会去计算和分析。
在这里插入图片描述
例如:在 function mode 下不需要管 Test_Clk ,**除了设置case analysis,还可以把 MUX 的 a-y 这条 timing arc 设成 disable **。
在这里插入图片描述

代码如下(示例):

set_disable_timing  -from U1/a  -to  U1/y

但是不可以用 set_false_path -from Test_clk -to Int_Clk 来约束。因为 set_false_path 只对数据路径有效,而 [ -from Test_clk -to Int_Clk ] 这段 path 是 clock path,这样设置是无效的。

set_disable_timing 对timing arc起作用,使用set_disable_timing命令需要格外小心,因为它会删除通过指定引脚的所有时序路径,完全不去分析这条timing arc。另外,set_false_path 只对data path起作用, EDA 工具还会分析计算这条时序路径, 只是不报出来是否有时序违例。

五、set_clock_sense

时序分析时有两个很重要的概念:Timing Arc和Timing sense。

1. timing arc

如果两个pin之间在timing上存在因果关系,我们就把这种时序关系称为Timing arc,主要分为定义时序延迟和定义时序检查两种。为什么叫它时序弧?因为时序图中经常用一条弧形线段来表示它。如图所示,图中弧线部分都可以表示为时序弧。
在这里插入图片描述

时序延迟的Timing Arc

  1. Combinational Timing Arc:最基本的TimingArc。Timing Arc 如果不特别指明的话,就是属于此类。定义了从特定输入到特定输出(A到Z)的延迟时间。
    在这里插入图片描述
  2. Edge Timing Arc:定义时序组件Clock Active Edge 到数据输出的延迟时间,依据Clock上升或下降分为2类。
    在这里插入图片描述
  3. Reset and Clear Timing Arc:定义时序组件清除信号,依据清除信号上升或下降及是Reset或Clear分为4类。这个TimingArc 通常会被取消掉,因为它会造成信号路径产生回路,这对STA而言是不允许的。
    在这里插入图片描述
  4. Three State Enable & Disable Timing Arc:定义 Tri-State 组件致能信号(Enable)到输出的延迟时间,依据Enable或Disable分为2类。
    在这里插入图片描述

时序检查的Timing Arc

  1. Setup Timing Arc:定义时序组件(Sequential Cell,如Flip-Flop、Latch 等)所需的Setup Time。
    在这里插入图片描述
  2. Hold Timing Arc:定义时序组件所需的 Hold Time。
    在这里插入图片描述
  3. Recovery Timing Arc:定义时序组件Clock Active Edge 之前,清除信号不准启动的时间。
    在这里插入图片描述
  4. Removal Timing Arc:定义序向组件Clock Active Edge 之后,清除信号不准启动的时间。
    在这里插入图片描述
  5. Width Timing Arc:定义信号需维持稳定的最短时间。
    在这里插入图片描述

2. timing sense

Timing sense这个概念和timing arc是对应的,每一个时序弧会有一个timing sense,表征的是输入如何影响输出
PrimeTime会自动track clock tree中的inverter和buffer,从而得到每个register的clock sense。
如果clock tree中,只有buffer和inverter,输出由唯一输入决定PT认为timing sense是unate,到达register clock的clock signal分别为positive unate(rising edge的clock source引起register clock pin的rising edge)和negative unate(rising edge的clock source引起register clock pin的falling edge)。
而异或逻辑中,输出clock的极性跟另一个input也有关PT认为timing sense是non-unate
在这里插入图片描述
在这里插入图片描述

3. set_clock_sense

set_clock_sense命令可以设置clock sense是否传递下去
在这里插入图片描述
在这里插入图片描述
set_clock_sense设置在non-unate的情况下,需要分析的clock状态;如果施加在unate的情况下,和clock本身冲突,则会报错。

例如,指定只有positive sense的clock传递到mux1的Z端,-clock来指定pin上的clock,一个pin上可能有多个clock source。

代码如下(示例):

set_clock_sense -positive -clock [get_clocks CLK] [get_pins mux1/Z] 

例如,让clock从某个pin不往下propagate,如下所示只有I0端的clock输出到Z。

代码如下(示例):

set_clock_sense -stop_propagation -clock [get_clocks CLK] [get_pins mux1/I1] 
set_disable_timing是一种约束命令,用于禁用特定路径的时序分析。它通常用于要求某个库单元之间的时序关系不被考虑。例如,使用set_disable_timing -from cell.输入 -to cell.输出可以禁用从输入到输出的时序路径的分析。这在一些特定情况下是有用的,比如对于异步端口之间的时序关系,因为这些端口没有时钟,时序无法分析相关的路径。\[3\] 与set_false_path相比,set_disable_timing更加具体和局部化。set_false_path是一种全局的时序例外命令,用于覆盖一个或多个周期的时序关系。如果一个例外是set_false_path,而另一个例外不是,那么set_false_path具有更高的优先级。\[1\] 如果需要解除set_false_path的影响,可以使用reset_path或reset_design命令。另外,可以使用report_timing_requirements命令列出所有的point-to-point例外,以便进行进一步的分析。\[5\] #### 引用[.reference_title] - *1* [DC综合基本概念-timing exception:set_false_path,set_disable_timing,set_multicycle_path](https://blog.csdn.net/weixin_52822919/article/details/129998679)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-99b5c134546dd4fed731a53263024813.142^v90^control_2,239^v3^control"}} ] [.reference_item] - *2* [IC基本知识学习](https://blog.csdn.net/weixin_43755290/article/details/107940622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-99b5c134546dd4fed731a53263024813.142^v90^control_2,239^v3^control"}} ] [.reference_item] - *3* [set_disable_timingset_data_check,相关一条efuse时序违反路径的梳理。](https://blog.csdn.net/u011729865/article/details/120621951)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-99b5c134546dd4fed731a53263024813.142^v90^control_2,239^v3^control"}} ] [.reference_item] - *4* [set_false_pathset_disable_timing区别](https://blog.csdn.net/u011729865/article/details/119959417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-99b5c134546dd4fed731a53263024813.142^v90^control_2,239^v3^control"}} ] [.reference_item] - *5* [DC综合基本概念-timing exception:set_false_path,set_disable_timing,set_multicycle_path](https://blog.csdn.net/weixin_52822919/article/details/129998679)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-99b5c134546dd4fed731a53263024813.142^v90^control_2,239^v3^control"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值