单元库.lib文件内容的一点困惑,期望大神解答
时间:10-02
整理:3721RD
点击:
最近在研究单元库,有些困惑,还请前辈大神们指点一二。
单元库的.lib文件中对于时序的描述中,在related pin中使用了timing_sense : positive和negative_unate这两种,然后就是cell rise 、cell fall、rise transition、falltransition四种情况。但是我不明白的是,对于一个单元的某一个输入输出pin,它的positive_unate所对应的其他pin脚的状态可能有多种,所对应的延时也就有多种,我自己所理解的时序特征化是将所有的输入变化导致的输出变化时的延时测量并记录。但在lib文件中就只有一个related pin,而没有其他输入的状态。
可能说的不清楚,小弟在做一位全加器的特征化,以此为例输入A B CI输出S CO,那么lib中会有
pin (S) {
timing () {
related_pin : "A";
timing_type : "combinational";
timing_sense : "positive_unate";
cell_rise ("del_1_6_6") {。}
cell_fall ("del_1_6_6") {。}
rise_transition ("del_1_6_6") {。}
fall_transition ("del_1_6_6") {。}
但上面这个positive_unate所对应的B和CI的状态应该包含(00,11)两种情况,这两种情况下的延时应该是不一样的吧。那么.lib中只有一种是怎么回事?在两种中只取了一种吗?还是两者的平均值?
相似的疑惑是
internal_power () {
related_pin : "CI";
rise_power ("power_outputs_1") {。
计算功耗的时候为何也没有提到其他输入信号的状态?
单元库的.lib文件中对于时序的描述中,在related pin中使用了timing_sense : positive和negative_unate这两种,然后就是cell rise 、cell fall、rise transition、falltransition四种情况。但是我不明白的是,对于一个单元的某一个输入输出pin,它的positive_unate所对应的其他pin脚的状态可能有多种,所对应的延时也就有多种,我自己所理解的时序特征化是将所有的输入变化导致的输出变化时的延时测量并记录。但在lib文件中就只有一个related pin,而没有其他输入的状态。
可能说的不清楚,小弟在做一位全加器的特征化,以此为例输入A B CI输出S CO,那么lib中会有
pin (S) {
timing () {
related_pin : "A";
timing_type : "combinational";
timing_sense : "positive_unate";
cell_rise ("del_1_6_6") {。}
cell_fall ("del_1_6_6") {。}
rise_transition ("del_1_6_6") {。}
fall_transition ("del_1_6_6") {。}
但上面这个positive_unate所对应的B和CI的状态应该包含(00,11)两种情况,这两种情况下的延时应该是不一样的吧。那么.lib中只有一种是怎么回事?在两种中只取了一种吗?还是两者的平均值?
相似的疑惑是
internal_power () {
related_pin : "CI";
rise_power ("power_outputs_1") {。
计算功耗的时候为何也没有提到其他输入信号的状态?
1. 您这是extract timing model吧2. lib的格式和有关STA的属性,group定义,参考“Static Timing Analysis for nanometer design, a pratical approach”这本书可以解决你的问题
谢谢解答,我去看看这本书。能否请问一下,我查看了SMIC的库中的lib文件,确实是一种输入状态对应一个功耗或者时序的形式,这样的话,我所得到的这个lib文件是否是使用NCX特征化时的配置有问题导致的?还请您指教一下是用NCX特征化怎样才能得到含有所有状态的lib文件?
不好意思NCX没用过,但是应该互通,在siliconsmart中可是设置state_partition all来impose工具把所有condition都k
谢谢解答!
能不能帮助讲解一下操作步骤呢