以前做的只有standard cell,现在加了SRAM,基础定义反而不清晰了,求助~~
不过抱着认真的态度,有没有人可以说一下, set_operating_conditions是不是只是针对标准单元?
(2)同样,在用memory compiler生成SRAM的fast slow模型文件时,里面的library名字都是我定义的SRAM的名字。说的再清楚一点,就是不论SRAM的fast模型,还是slow模型的library名字都相同,这样做可以吗?是不是要我手动修改一下。
我看foudary提供的标准单元的slow模型和fast模型下面的library名字并不相同。
(3)最后问一下,0.18um工艺的max_transition和max_capacitance大家设置的都是多少,可以共享一下不~
我自己后来又研究了一下,看了看lib文件,看来这个set_operating_conditions设置的是PVT,即process,voltage和temperature,
所以整体设计的slow和fast模式各只需要一种PVT就可以了
那么问题又出来了~设置PVT干啥啊?
正常咱们算延时的时候,不是直接根据相应fast和slow的那个input transition和output load的二维表来算延时的,好像和这个PVT没啥关系啊~
最关键的是,SRAM的PVT和标准单元的PVT还不一致,是不是我自己得手动改了啊?
自己顶~
哎~
帮小编顶一个,知道的高手解答一下
谢谢啊
看到这个问题,我只能帮顶了
谢谢谢谢
我自己先抛砖引玉吧,对于我第二个问题,由于DC和PT在算延时的时候只是根据其中一个corner,也就是说它会根据set_min_library中的max_lib找到相应的器件(这里是SRAM),然后看算的是不是最小延迟,如果是最小延迟的话,再看有没有定义min_lib,如果有定义min_lib,那么min_lib中的pin脚是否能对应上,如果上面的条件都符合的话,就改用min_lib来分析最小延时。
所以也就不需要改min_lib.db中的library名字了
所以set_min_library实际上是在建立一个max_lib.db和min_lib.db一个对应的关系
说得直白一点就是,先找max_lib.db,如果找到了,那么再看是不是在算最小延时,如果是的话,就找min_lib中是不是也有相应的器件,如果找到的话,就用min_lib中定义的二维表来计算延迟
对于第一个问题,我认为PVT会scale到input_transition和output_load的二维表上。
通常应该每个lib中会有一个nominal PVT,算延时的时候,先根据set_min_library找到算延时的lib上,然后看这个lib中的nominal PVT与定义的PVT一不一样,不一样的话,就会scale到相应的二维表上~
也就是说可能,在算最小延时的时候,set_min_library找到了max_lib(因为min_lib中没有相应的元件),但你定义的是fast的PVT,那么DC会将该PVT值与max_lib的nominal PVT作比较,然后scale上去
不知道我这么理解对不对~
对于第三个问题,就真的没有好心人么?
小编呢
顶小编 好问题
谢谢分享
这么久的事情了,现在都专职做memory controller的设计了物是人非~
我现在也和你当初遇到同样的问题?
请问小编现在这个三个问题是什么结论?
还请不吝赐教