分享

几条综合命令的解释

 毕杰lb7q1kq7pr 2020-12-15

对几条常用但又比较迷惑的命令,做如下讨论:
set_max_transition:
这条命令是用来给指定的时钟组(clock group)、端口(input/output ports)或者设计(design)设置max_transition属性。其单位由工艺库(technology library)定义,一般是纳秒(nanosecond)。缺省的情况下,input or output ports没有max_transition属性约束,其max_transition的值由被驱动单元的输入端口或者驱动单元的输出端口决定。 set_max_transition和set_max_capacitance两者的约束有很多重叠部分,一般设置set_max_capacitance属性就可以了,clock group可以由set_max_transition设置下max_transition属性。

set_max_capacitance:
这条命令是用来给指定的输入端口(input ports)或者设计(design)设置max_capacitance属性。其单位由工艺库(technology library)定义,一般是皮法(picofarad)。缺省的情况下,input ports or design没有max_capacitance属性约束,综合工具会自动在technology library中查找。需要注意的是,不要施加过度保守的约束,以免限制DC对设计的优化,因为DRC约束的优先级最高。一般不建议使用驱动能力(drive capability)过弱过强的单元(cell),所以可以选择X4驱动强度的BUFFER的max_capacitance作为参考。

set_max_fanout:
    这条命令是用来给指定的输入端口(input ports)或者设计(design)设置max_fanout属性。如果technology library没有default_max_fanout设定的话,缺省的情况下,综合工具认为是没有上限的。需要注意的是,这条命令使用的单位是fanout_load,而不是绝对的the number of fanout。扇出负载值表示输入引脚相对负载的数目,它并不表示真正的电容负载,而是个无量纲的数字。约束:指定端口所驱动的输入引脚网络或者指定设计中所有网络的fanout_load之和小于max_fanout设定值。库中如果没有默认的扇出负载属性(default_fanout_load)则其将不受扇出负载设计规则的约束。

Note:max_capacitacne、max_fanout属性不能添加到output or bidirectional ports。max_transition、max_capacitance和max_fanout是设计规则约束(DRC:design rule constraint),is must be met。恰当的DRC约束,也可以在POST-ROUTING之后,得到更小的clock skew的CTS。

set_load:
    这条命令是用来给指定的端口(ports)或者网络(net)设置load属性。其单位由工艺库(technology library)定义,一般是皮法(picofarad)。一般使用这条命令约束输出端口,选用比设计规格上所要求的输出端口更大电容负载作为load属性。

set_driving_cell:
    这条命令是用来通过指定的library cell给指定的输入端口(input ports)或者输入输出端口(inout ports)设置驱动属性。一般选用驱动能力较弱的单元,以便综合工具在输入端口后面增加BUFFER TREE增强该输入端口的驱动能力。

业务联系请加个人微信号:jack_eetop 或 QQ:228265511

全力打造中国电子工程师微信第一品牌!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多