微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > DC里set_dont_touch和set_ideal_network的问题

DC里set_dont_touch和set_ideal_network的问题

时间:10-02 整理:3721RD 点击:

在综合的过程中,为了不让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士大夫共和国

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top