静态时序分析: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 单元延迟计算

相关推荐
与光同尘 大道至简9 小时前
中国嵌入式单片机就业形势分析
arm开发·python·单片机·嵌入式硬件·github·硬件工程
土豆198910211 天前
简记_开关电源基础知识(一)
硬件工程
weixin_535854223 天前
快手,蓝禾,优博讯,三七互娱,顺丰,oppo,游卡,汤臣倍健,康冠科技,作业帮,高途教育25届春招内推
java·前端·python·算法·硬件工程
Leiditech__4 天前
浅谈汽车系统电压优缺点分析
嵌入式硬件·汽车·硬件工程·emc·mosfet
贝塔实验室4 天前
FPGA 配置原理
经验分享·笔记·其他·fpga开发·硬件架构·硬件工程·fpga
陌夏微秋5 天前
STM32单片机芯片与内部111 STM32 DSP内核 介绍 功能 库与源码
stm32·单片机·嵌入式硬件·硬件架构·硬件工程·信息与通信·智能硬件
weixin_535854226 天前
优博讯,蓝禾,三七互娱,顺丰,oppo,游卡,汤臣倍健,康冠科技,作业帮,高途教育25届春招内推
java·嵌入式硬件·算法·硬件工程·软件工程
电子科技圈7 天前
Imagination通过最新的D系列GPU IP将效率提升至新高度
人工智能·嵌入式硬件·硬件工程·图形渲染
国产化嵌入式平台解决方案7 天前
高效能计算与高速数据传输的完美结合:飞腾D2000处理器与复旦微双FPGA集成主板
linux·嵌入式硬件·fpga开发·硬件架构·硬件工程·pcb工艺