电路function错误
数字后仿一般需要网标文件和对应的sdf 文件,将sdf 文件的信息反标到网标对应的cell中,
然后在仿真时进行timingcheck 。
这次想只验证网标的function,不进行timingcheck,所以没有对网标进行sdf 文件反标。
分别对综合后和pr 后的网标进行function 验证,发现 综合后网标function正确,而pr后网表
function已经改变了。后来加上sdf文件重新验证pr后的网表,发现function正确。
****很疑惑是什么原因造成的这个问题?****
sdf 文件中包含延时信息和timingcheck,这些在进行sdf 反标时会替换cell 中的 specify 块中约束。
如果没有进行反标,在仿真时网标的各种时间信息都是使用cell 中定义的数据。而pr 通常会在网表中加入
一些buff或者 inv 等cell 来对时序进行优化,所以cell 中specify 的一些延时就不符合pr后网表中的各个cell 的时间约束。如果按照cell 原来的延时进行仿真,电路时序就会出错,造成function错误。
**解决方法:**
1. 编译时加入 nospecify 选项 ,禁用cell 中的延时
2. 进行sdf 反标