DC里set_dont_touch和set_ideal_network的问题
在综合的过程中,为了不让DC工具自动优化一些我们不希望其优化的模块(比如CLK)我们通常都会设置set_ideal_network和set_dont_touch,我理解为前者在timing_report的时候忽略延迟,后者阻止DC插入buffer。
那么dont_touch的属性,能不能穿过logic?
set_dont_touch和set_dont_touch_network有什么区别,为什么普遍认为set_dont_touch_network会造成未知问题而不推荐使用?
对于ideal_net的这个属性,是不是说直接忽略了延迟,忽略了DRC,如果将clk设定为ideal_net,是不是就不用再设定dont_touch了?
说的有点混乱,请各位大神技术支持,小弟不胜感激!
遇见熟人了,呵呵
set_dont_touch不会穿过logic,可以用于cells, nets, references, 和 designs。你不希望DC碰的地方,都可以用它。
set_dont_touch_network可以穿过logic,可以用于clocks, pins, 或 ports,比上面的范围小。当你对设计不十分熟悉时,这个属性可能会传到你不希望的地方去。
ideal_net 顾名思义就是把这条net完全理想化--无穷大的驱动能力,没有延迟。有时会和上面的命令一起用。当你知道了它们的意思,如何使用取决于你的目的和得到的结果
谢谢小编的解答!
对于Ideal_net这个属性,设置的时候有个no_propagate的属性,对于net来说一定要设这个,是不是就是为了阻止其穿过逻辑?那如果我设的是pin并且不加上no_propagate能穿过逻辑吗?
在建立clock的时候,我看到它会自动的设为ideal_net,但是却还是会计算延迟,会不会因为clock path有逻辑的原因?
set_ideal_net = set_ideal_network -no_propagate
clock net 如果被用作data,就会有delay,那是因为net上面挂的clk pin的负载,不是ideal net本身
我大体上明白了,clk在创建的时候,会默认为ideal net的,但当clk接入到data path的时候,D端就会考虑我clk上的负载,但并不会影响clk的ideal net的属性。
假如我的clk需要门电路做gating,gating后的时钟也有很大的扇出,那我为了忽略掉延迟,是不是需要在gating后重新给clk定义ideal net?因为ideal net不能穿过逻辑。
受教了.謝謝!
如果你的CG集成好的标准单元,它会自动继承ideal的属性
涛哥威武,明白了!
假如你clk后面的gate的net是有这个ideal属性··那么到p&r需要管它吗?
到PR阶段的时候,就已经不存在什么ideal net这种东西了,做CTS就是为了平衡时钟路径的高负载高延迟。
在看DC的东西,又长了点知识
Mark, thanks for you guys discussions.
学习学习,不错。
小编解答的很好,学习了~
mark一哈
问题1:set_ideal_network :当object是一个net的时候,必须加上-no_propagate选项,不然dc会ignore该命令,是不是说用set_ideal_network 声明ideal net时候,dc不让attribute 传递,为什么要这么要求?set_ideal_net被抛弃?
问题2:
在什么场景下需要使用set_ideal_network net_name -no_propagate场景1.当gate logic cell中的latch的output与ideal clock做与的时候,与门的output 不会是ideal,如果需要output 为ideal,需要强制的设定latch output net为ideal。
还有其他的场景吗?
问题3:
set_ideal_network和set_dont_touch_network在什么场景下需要配合使用;场景1:set_ideal_network,对design 内部soft reset network声明ideal network的时候,由于reset net被一个组合逻辑驱动,无法找到相关的pin,只好声明reset_net为ideal network,但是这样的话要使用set_ideal_network -nopropagate,导致ideal attribute无法spread,这时候只能使用set_dont_touch_network将reset_net声明为dont touch ,但是整个reset network没有完全声明为ideal,没有声明为reset network的部分还会做timing check&drc,甚至报violation,这种场景存在吗?该如何解决啊
小编好,请问使用了set_dont_touch以后,为何一个design在综合的前后,其关键路径是不一样的?如何使得综合前后电路的连接关系不变、关键路径都是一样的呢?
谢谢
先mark一下,回头好好看看
学习下~
好好看了一遍,有点明白了,学习啦~
set_ideal_net = set_ideal_network -no_propagate
set_ideal_net不会把ideal_net属性往后传
set_ideal_network会把ideal_net属性往后传
那也就是说set_ideal_network -no_propagate只作用于当前net咯?
“假如我的clk需要门电路做gating,gating后的时钟也有很大的扇出”我现在的设计就是有这个问题,fanout太大,超出100-200,请问是什么原因?是要把clk或gating后的时钟设为no idea吗?
“假如我的clk需要门电路做gating,gating后的时钟也有很大的扇出”我现在的设计就是有这个问题,fanout太大,超出100-200,请问是什么原因?是要把clk或gating后的时钟设为no idea吗?谢谢!
“假如我的clk需要门电路做gating,gating后的时钟也有很大的扇出”我现在的设计就是有这个问题,fanout太大,超出100-200,请问是什么原因?是要把clk或gating后的时钟设为no idea吗?谢谢!
rdtyuy士大夫共和国
