静态时序分析:SDC约束命令set_ideal_network详解

相关阅读

静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm=1001.2014.3001.5482


set_ideal_network命令可以将当前设计中的一组端口或引脚标记为理想网络源(设置端口或引脚对象的ideal_network_source属性为true),且在一定情况下,理想属性会沿着组合逻辑进行传播。不要使用set_ideal_net设置理想线网,它已经被set_ideal_network命令替代。如果想要移除理想网络,使用remove_ideal_network命令。

本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。set_ideal_network命令的BNF范式(有关BNF范式,可以参考以往文章)为:

复制代码
set_ideal_network
    object_list
    [-dont_care_placement]
    [-no_propagate]
    //注:该命令的选项和参数顺序任意

指定理想网络源

指定一个对象列表,包含端口对象、线网对象或叶单元的引脚对象(不可以是层次单元的引脚),如果有多于一个对象,需要使用引号或大括号包围。

如果列表中包含线网对象,所有驱动该线网的端口/引脚将被标记为理想网络源,且必须使用-no_propagate选项。

指定不考虑布局

-dont_care_placement选项指定理想网络中的单元在布局过程中不会被考虑,而随机分配位置,理想网络中的线网视为未连接。默认情况下,理想网络在布局时优先级最低。

指定不传播

-no_propagate选项指定理想属性不会跨组合逻辑传播,但仍然可以跨层次结构传播。默认情况下,理想属性会跨组合逻辑传播,直到时序逻辑为止。

理想属性传播规则

从理想网络源开始,理想属性的传播规则如下:

组合逻辑单元被标记为理想:

1、当它的所有输入引脚要么是理想的,要么连接到常量线网(注意:case analysis属性不会被视为常量)。

引脚被标记为理想:

1、如果它是set_ideal_network命令指定的引脚。

2、如果它是驱动引脚,且它所属的单元是理想的。

3、如果它是负载引脚,且驱动它的线网是理想的。

线网被标记为理想:

1、所有驱动它的引脚都是理想的。

理想网络的影响

1、所有理想网络中的单元和线网都会被设置dont_touch属性,防止它们在优化过程中被修改。

2、理想网络源所属的单元(如有)会被设置size_only属性,这样可以确保理想网络源不会在综合过程中被优化掉(注意:该设置优先级高于set_size_only命令的设置)。

3、理想网络中的线网不会受到DRC约束,即max_capacitance、max_fanout和max_transition等约束。

4、理想网络中的线网和单元的延迟和转换时间默认为0,可以通过set_ideal_latency命令和set_ideal_transition命令人为指定。

简单使用

下面以图1为例说明set_ideal_network命令的使用。

图1 简单的例子

首先使用create_clock命令以clk端口为源对象创建一个周期为10的时钟。

复制代码
create_clock -period 10 [get_port clk]

接着使用set_input_delay命令在输入端口a、b、c上添加输入延迟,参考时钟为clk,此时经过端口a的时序报告如图2所示(注意,该时序报告使用了-input_pins选项来显示输入引脚)。

复制代码
set_input_delay 0.5 {a b c} -clock [get_clock clk]

图2 建立时间时序报告

然后使用set_ideal_network命令设置端口a为理想网络源,可以使用report_ideal_network命令报告所有的理想网络源,如图3所示(使用get_attribute ideal_network_source命令也可以确认一个对象是否是理想网络源)。

复制代码
set_ideal_network [get_port a]

图3 理想网络源报告

根据理想属性的传播规则,线网a变成了理想线网,可以使用report_ideal_network -net命令进行确认,如图4所示(使用report_net或get_attribute ideal_net命令也可以确认一个对象是否是理想线网)。

图4 理想线网报告

此时经过端口a的时序报告如图5所示,其中唯一的不同是线网a的延迟变成了0。

图5 建立时间时序报告

需要注意的是,此时只有端口a、线网a和引脚u1/A被标记为理想,但理想属性不会穿过单元u1,因为其另一个输入引脚不是理想的。

下面接着使用set_ideal_network命令设置端口b为理想网络源,如图6所示。

复制代码
set_ideal_network [get_port b]

图6 理想网络源报告

此时经过端口a的时序报告如图7所示,其中两个线网和一个单元的延迟为0。

图7 建立时间时序报告

此时被标记为理想的有:端口a、端口b、线网a、线网b、单元u1、单元u1的两个输入引脚、线网and_out、单元u2的输入引脚A,为了简略,这里不进行验证。

最后,set_ideal_network命令将单元u2的输出引脚Y设置为理想网络源,如图8所示。

复制代码
set_ideal_network [get_pin u2/Y]

图8 理想网络源报告

根据理想属性的传播规则,u2此时不是理想单元,所以不管是引脚A还是引脚B到引脚Y的延迟都不是0,此时经过端口a的时序报告如图9所示。

图9 建立时间时序报告

但是由于此时单元u2的输出引脚Y传播,线网logic_out变成了理想线网,而理想线网的电容为0,这也会间接影响u2的单元延迟,图10所示为report_delay_calculation命令的结果。

图10 单元延迟计算

相关推荐
独孤九剑打醒他2 小时前
【原创开源·航空篇】太阳能水闭环氢能航空:双燃料掺氢助燃与露天储氢安全模型
架构·开源·汽车·硬件工程·能源
深圳市恒锐丰科技杨生2 小时前
LR050N03TL4 N 沟道 MOSFET|龙夏电子 Long‑Tek
嵌入式硬件·硬件工程
ACP广源盛1392462567311 小时前
硬件选型笔记:国产 PCIe Gen2.1 交换芯片 IX6024@ACP,工控与存量设备国产化改造方案评估
笔记·硬件架构·硬件工程·pcie·国产芯片
HQB202615 小时前
CN6150|简芯维尔 6V/500mA 高速低噪声 CMOS‑LDO 线性稳压器
嵌入式硬件·硬件工程
匠行科技1 天前
6U‑VPX 高密度异构处理板硬件方案实践
fpga开发·硬件工程
深圳市恒锐丰科技杨生1 天前
LTK52201 立体声 D 类音频功率放大器|LTKCHIP 联辉科
嵌入式硬件·硬件工程
ACP广源盛139246256732 天前
硬件选型笔记|国产 PCIe4.0 交换芯片 IX8024@ACP,AI 边缘节点本地存储扩展方案探讨
人工智能·硬件架构·硬件工程·pcie·国产芯片
HQB20262 天前
LTK8324|单通道 H‑桥有刷直流电机驱动器 ESOP‑8
嵌入式硬件·硬件工程
深圳市恒锐丰科技杨生2 天前
# HT3310|集成锂电池充电 + 三档电机驱动控制芯片 SOT23‑6
嵌入式硬件·硬件工程
深圳市恒锐丰科技杨生2 天前
# CSM9118|芯晞微电 7.5V/1.5A 单通道 H 桥电机 / 线圈驱动
嵌入式硬件·硬件工程