ECO问题请教
时间:12-12
整理:3721RD
点击:
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Mon Jan 30 11:03:15 2012) 提到:
RTL的一处低级错误:
a <= 16'hD1
写为了
a <= 16'hE1
芯片已经流片,这种错误怎么能更改?
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 11:10:11 2012) 提到:
重新综合,比较网表,
【 在 Atheros (There is here) 的大作中提到: 】
: RTL的一处低级错误:
: a <= 16'hD1
: 写为了
: ...................
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Mon Jan 30 11:16:21 2012) 提到:
工作量巨大,除此之外别无他法?
【 在 wowotou (窝窝头) 的大作中提到: 】
: 重新综合,比较网表,
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Mon Jan 30 11:17:10 2012) 提到:
如果是同样的RTL,同样的综合脚本,DC在综合出来的东西是100%一样的吗?连那些随机编号wire也一样?
【 在 wowotou (窝窝头) 的大作中提到: 】
: 重新综合,比较网表,
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Mon Jan 30 11:22:13 2012) 提到:
搞不好连compress scan的decoder都会不一样的......
【 在 Atheros (There is here) 的大作中提到: 】
: 如果是同样的RTL,同样的综合脚本,DC在综合出来的东西是100%一样的吗?连那些随机编号wire也一样?
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 11:24:28 2012) 提到:
1,不一样。
2,你可以用eco tool。工具会帮你修。但是工具需要输入2个网表,1个是老的,1个是新的。然后吐出区别
【 在 Atheros (There is here) 的大作中提到: 】
: 如果是同样的RTL,同样的综合脚本,DC在综合出来的东西是100%一样的吗?连那些随机编号wire也一样?
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Mon Jan 30 11:25:02 2012) 提到:
有什么推荐的ECO工具吗?
【 在 wowotou (窝窝头) 的大作中提到: 】
: 1,不一样。
: 2,你可以用eco tool。工具会帮你修。但是工具需要输入2个网表,1个是老的,1个是新的。然后吐出区别
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 11:27:44 2012) 提到:
lec
【 在 Atheros (There is here) 的大作中提到: 】
: 有什么推荐的ECO工具吗?
☆─────────────────────────────────────☆
rockyflying (虽然灌水少,但是确实是主ID) 于 (Mon Jan 30 11:33:46 2012) 提到:
看版图,检查 D端走线。
问你的foundry, 看看这层是不是已经制造完毕。
如果都没有,而且reg a 没有其他逻辑,两根线换换位置就行。
【 在 Atheros (There is here) 的大作中提到: 】
: RTL的一处低级错误:
: a <= 16'hD1
: 写为了
: ...................
☆─────────────────────────────────────☆
ThinkpadX301 (Lenovo Thinkpad X301) 于 (Mon Jan 30 11:36:12 2012) 提到:
读懂网表,画出schematic,即使metal ECO都不会太麻烦。
【 在 Atheros 的大作中提到: 】
: RTL的一处低级错误:
: a <= 16'hD1
: 写为了
: ...................
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 11:38:20 2012) 提到:
是阿,连网表都读不懂,怎么好意思做ic。
【 在 ThinkpadX301 (Lenovo Thinkpad X301) 的大作中提到: 】
: 读懂网表,画出schematic,即使metal ECO都不会太麻烦。
☆─────────────────────────────────────☆
DegoMaradona (正牌魔都硬盘) 于 (Mon Jan 30 11:57:03 2012) 提到:
围观资深ic老前辈
【 在 wowotou 的大作中提到: 】
: 是阿,连网表都读不懂,怎么好意思做ic。
: 【 在 ThinkpadX301 (Lenovo Thinkpad X301) 的大作中提到: 】
: : 读懂网表,画出schematic,即使metal ECO都不会太麻烦。
: ...................
☆─────────────────────────────────────☆
m8d (8d) 于 (Mon Jan 30 12:24:53 2012) 提到:
至少把整个always block的RTL贴出来吧
如果这个错误出现在reset段,eco应该简单
其他情况得具体分析,也许根本没法ECO
【 在 Atheros (There is here) 的大作中提到: 】
: RTL的一处低级错误:
: a <= 16'hD1
: 写为了
: ...................
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 12:31:17 2012) 提到:
这个不会不能eco的。只涉及到1个ff而已。大不了整个逻辑在网表里重写一遍,把原来的d替换掉。体力活而已。
【 在 m8d (8d) 的大作中提到: 】
: 至少把整个always block的RTL贴出来吧
: 如果这个错误出现在reset段,eco应该简单
: 其他情况得具体分析,也许根本没法ECO
☆─────────────────────────────────────☆
benckey () 于 (Mon Jan 30 12:46:06 2012) 提到:
把整个always贴出来啊
【 在 Atheros (There is here) 的大作中提到: 】
: RTL的一处低级错误:
: a <= 16'hD1
: 写为了
: ...................
☆─────────────────────────────────────☆
m8d (8d) 于 (Mon Jan 30 12:47:30 2012) 提到:
如果有10+个a的assignment
而且都是if一坨东西后asign给a
a的逻辑复杂到只存在理论上ECO的可能
【 在 wowotou (窝窝头) 的大作中提到: 】
: 这个不会不能eco的。只涉及到1个ff而已。大不了整个逻辑在网表里重写一遍,把原来的d替换掉。体力活而已。
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 12:59:32 2012) 提到:
这个,也简单。写一个新module,只包含该always块,综合。然后得到新网表。
打断旧网表的d端,把新网表粘贴到旧网表,连上新d端。
eco是考验一个码农称职与否的很重要的指标。
【 在 m8d (8d) 的大作中提到: 】
: 如果有10+个a的assignment
: 而且都是if一坨东西后asign给a
: a的逻辑复杂到只存在理论上ECO的可能
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 13:03:52 2012) 提到:
提醒一下,这个新module的输入需要追溯到ff,很多情况下会不仅仅包含该alway block
【 在 wowotou 的大作中提到: 】
: 这个,也简单。写一个新module,只包含该always块,综合。然后得到新网表。
: 打断旧网表的d端,把新网表粘贴到旧网表,连上新d端。
:
: eco是考验一个码农称职与否的很重要的指标。
:
: 【 在 m8d (8d) 的大作中提到: 】
: : 如果有10+个a的assignment
: : 而且都是if一坨东西后asign给a
: : a的逻辑复杂到只存在理论上ECO的可能
:
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Mon Jan 30 13:17:56 2012) 提到:
整块eco scan怎么办
【 在 wowotou (窝窝头) 的大作中提到: 】
: 这个,也简单。写一个新module,只包含该always块,综合。然后得到新网表。
: 打断旧网表的d端,把新网表粘贴到旧网表,连上新d端。
: eco是考验一个码农称职与否的很重要的指标。
: ...................
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 13:20:11 2012) 提到:
和scan没关系阿。没有破坏scan阿。只剪切了纯组合逻辑的部分,没有动到ff。
【 在 PhaseLock (拿波里的发面饼@凹凸贞洁党) 的大作中提到: 】
: 整块eco scan怎么办
☆─────────────────────────────────────☆
m8d (8d) 于 (Mon Jan 30 13:20:54 2012) 提到:
这就是我说的“理论上可行”
【 在 wowotou (窝窝头) 的大作中提到: 】
: 这个,也简单。写一个新module,只包含该always块,综合。然后得到新网表。
: 打断旧网表的d端,把新网表粘贴到旧网表,连上新d端。
: eco是考验一个码农称职与否的很重要的指标。
: ...................
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 13:22:51 2012) 提到:
这个不是理论上啦。实际上也可行。这是常用手段。
【 在 m8d (8d) 的大作中提到: 】
: 这就是我说的“理论上可行”
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Mon Jan 30 13:24:20 2012) 提到:
你写了新module综合的时候不插scan那里边的ff没有链,完了搁进去,和原有的scan链能串起来么?要是插scan的话怎么能保证和原有的串起来了不大理解这环。如果这块看成shadow logic的话那可以理解
【 在 wowotou (窝窝头) 的大作中提到: 】
: 和scan没关系阿。没有破坏scan阿。只剪切了纯组合逻辑的部分,没有动到ff。
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Mon Jan 30 13:28:53 2012) 提到:
这个做法的确听说过,但我想不出scan砍断了之后这么生连上会不会有问题x
【 在 m8d (8d) 的大作中提到: 】
: 这就是我说的“理论上可行”
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 13:33:18 2012) 提到:
好吧。你还没有理解本质。我在说明一下。
新综合的网表里有没有scan没有任何关系。因为我们不需要把新网表的ff放到旧网表里去。我们要的是新网表ff的d端的net name(比如叫a吧)。整个新网表除了ff都放到旧网表里去。旧网表不要删掉任何逻辑,唯一需要改变的就是旧网表ff的d端。连到新网表的net name(a)上去。
【 在 PhaseLock (拿波里的发面饼@凹凸贞洁党) 的大作中提到: 】
: 你写了新module综合的时候不插scan那里边的ff没有链,完了搁进去,和原有的scan链能串起来么?要是插scan的话怎么能保证和原有的串起来了不大理解这环。如果这块看成shadow logic的话那可以理解
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Mon Jan 30 13:35:49 2012) 提到:
谢谢,我明白了。
【 在 wowotou (窝窝头) 的大作中提到: 】
: 好吧。你还没有理解本质。我在说明一下。
: 新综合的网表里有没有scan没有任何关系。因为我们不需要把新网表的ff放到旧网表里去。我们要的是新网表ff的d端的net name(比如叫a吧)。整个新网表除了ff都放到旧网表里去。旧网表不要删掉任何逻辑,唯一需要改变的就是旧网表ff的d端。连到新网表的net name(a)上去。
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Mon Jan 30 14:23:05 2012) 提到:
谢谢!
【 在 wowotou (窝窝头) 的大作中提到: 】
: 好吧。你还没有理解本质。我在说明一下。
: 新综合的网表里有没有scan没有任何关系。因为我们不需要把新网表的ff放到旧网表里去。我们要的是新网表ff的d端的net name(比如叫a吧)。整个新网表除了ff都放到旧网表里去。旧网表不要删掉任何逻辑,唯一需要改变的就是旧网表ff的d端。连到新网表的net name(a)上去。
☆─────────────────────────────────────☆
LeuSe (还是太冲动啊) 于 (Mon Jan 30 17:00:24 2012) 提到:
其实这个一点不难,就算手工综合,1,2个小时也搞完了。
【 在 m8d (8d) 的大作中提到: 】
: 这就是我说的“理论上可行”
☆─────────────────────────────────────☆
wyaaaa (飞翔的王胖子) 于 (Mon Jan 30 18:35:18 2012) 提到:
貌似这个会巨大计算。
【 在 wowotou 的大作中提到: 】
: 1,不一样。
: 2,你可以用eco tool。工具会帮你修。但是工具需要输入2个网表,1个是老的,1个是新的。然后吐出区别
: 【 在 Atheros (There is here) 的大作中提到: 】
: ...................
☆─────────────────────────────────────☆
magma (RTL2GDS) 于 (Mon Jan 30 18:57:49 2012) 提到:
这样做有两个问题:
1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处逻辑,并查看GDS,研究怎么改动能够以最小改动实现目的。在设计中可以加入一些spare gates,metal fix可以借助这些逻辑。
Good Luck.
【 在 wowotou (窝窝头) 的大作中提到: 】
: 这个,也简单。写一个新module,只包含该always块,综合。然后得到新网表。
: 打断旧网表的d端,把新网表粘贴到旧网表,连上新d端。
: eco是考验一个码农称职与否的很重要的指标。
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 21:28:49 2012) 提到:
1, 没错,我在后面专门发贴又着重强调了一下。
2,你说的也很对。这属于必杀技。都到tapout的地步了,还要修的bug,绝对属于致命错误。已经不用考虑成本了,能修出来就不错了。
【 在 magma (RTL2GDS) 的大作中提到: 】
: 这样做有两个问题:
: 1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
: 2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处逻辑,并查看GDS,研究怎么改动能够以最小改动实现目的。在设计中可以加入一些spare gates,metal fix可以借助这些逻辑。
: ...................
☆─────────────────────────────────────☆
giyim (hundred) 于 (Mon Jan 30 21:56:55 2012) 提到:
你们formal怎么过的,一般来说,这种逻辑在metal可以修掉
【 在 Atheros (There is here) 的大作中提到: 】
: RTL的一处低级错误:
: a <= 16'hD1
: 写为了
: ...................
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Mon Jan 30 22:03:59 2012) 提到:
请教,如果一个logic cone已经跨了module边界了,或者designer 已经flatten掉整个设计的结构了,这事儿似乎就不这么简单了......
wowotou的这个办法在freeze rtl之后是个好办法,到了tape out之后的确没见过有哪个designer能这么修改metal了。
【 在 magma (RTL2GDS) 的大作中提到: 】
: 这样做有两个问题:
: 1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
: 2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处
: ...................
☆─────────────────────────────────────☆
giyim (hundred) 于 (Mon Jan 30 22:12:48 2012) 提到:
base freeze以后不可能那么改,实际上就算没freeze也没见哪个会这么改
【 在 PhaseLock (拿波里的发面饼@凹凸贞洁党) 的大作中提到: 】
: 请教,如果一个logic cone已经跨了module边界了,或者designer 已经flatten掉整个设计的结构了,这事儿似乎就不这么简单了......
: wowotou的这个办法在freeze rtl之后是个好办法,到了tape out之后的确没见过有哪个designer能这么修改metal了。
☆─────────────────────────────────────☆
kerk (hehe) 于 (Tue Jan 31 14:47:32 2012) 提到:
说到metal fix时减少改动layer数的问题,我有个问题:
因为spare cell的pin是在M1上的,而M1不可能用于ECO route,
因此M1和VIA1-2基本上是metal fix时必动的。
后端有没有办法在投片前把spare cell的pin拉到M2以上?这样就能少该两层了
【 在 magma (RTL2GDS) 的大作中提到: 】
: 这样做有两个问题:
: 1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
: 2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处
: ...................
☆─────────────────────────────────────☆
ThinkpadX301 (Lenovo Thinkpad X301) 于 (Tue Jan 31 14:58:21 2012) 提到:
这跟formal没关系,是DV没有抓到
【 在 giyim 的大作中提到: 】
: 你们formal怎么过的,一般来说,这种逻辑在metal可以修掉
: 【 在 Atheros (There is here) 的大作中提到: 】
: : RTL的一处低级错误:
: ...................
☆─────────────────────────────────────☆
interarsenal (傻傻的鸬鹚) 于 (Tue Jan 31 15:02:18 2012) 提到:
必须可以把spare cell的pin拉到M2,甚至M3,M4都可以
【 在 kerk (hehe) 的大作中提到: 】
说到metal fix时减少改动layer数的问题,我有个问题:
因为spare cell的pin是在M1上的,而M1不可能用于ECO route,
因此M1和VIA1-2基本上是metal fix时必动的。
后端有没有办法在投片前把spare cell的pin拉到M2以上?这样就能少该两层了
【 在 magma (RTL2GDS) 的大作中提到: 】
: 这样做有两个问题:
: 1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
: 2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处
: ...................
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Wed Feb 1 20:29:03 2012) 提到:
谢谢
【 在 magma (RTL2GDS) 的大作中提到: 】
: 这样做有两个问题:
: 1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
: 2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处
: ...................
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Wed Feb 1 20:32:08 2012) 提到:
由于没有LEC工具,用Formality对修改后的网表和tape-out的网标做了对比,出现了40多处failing point,打开logic cone之后发现无法找出真正需要修改的地方,各为前辈有formality做ECO的经验吗?
【 在 magma (RTL2GDS) 的大作中提到: 】
: 这样做有两个问题:
: 1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
: 2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处
: ...................
☆─────────────────────────────────────☆
LeuSe (还是太冲动啊) 于 (Wed Feb 1 21:39:35 2012) 提到:
你改了几处?
【 在 Atheros (There is here) 的大作中提到: 】
: 由于没有LEC工具,用Formality对修改后的网表和tape-out的网标做了对比,出现了40多处failing point,打开logic cone之后发现无法找出真正需要修改的地方,各为前辈有formality做ECO的经验吗?
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Wed Feb 1 21:42:10 2012) 提到:
是这样的:
原来:
assign select = addr > `ADDR2 ? 1'b1 : 1'b0;
应该为:
assign select = addr > `ADDR3 ? 1'b1 :1'b0;
其中ADDR2 = 8'hD9;
ADDR3 = 8'hE1;
就这么一个改动
【 在 LeuSe (还是太冲动啊) 的大作中提到: 】
: 你改了几处?
☆─────────────────────────────────────☆
LeuSe (还是太冲动啊) 于 (Wed Feb 1 21:49:42 2012) 提到:
formal工具比较的是ff,你要想想你的变化对于ff来说有多少影响。
【 在 Atheros (There is here) 的大作中提到: 】
: 是这样的:
: 原来:
: assign select = addr > `ADDR2 ? 1'b1 : 1'b0;
: ...................
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Wed Feb 1 22:00:37 2012) 提到:
formality报出41个failing points,根本没法下手去改,logic cone view出现的都是无法类比的schemetic,这种错误有什么好的解决办法?
【 在 LeuSe (还是太冲动啊) 的大作中提到: 】
: formal工具比较的是ff,你要想想你的变化对于ff来说有多少影响。
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Wed Feb 1 22:11:14 2012) 提到:
rtl确认改对了的话,先report_unmatch_points 看看里边有没有多出来的unmatch DFF或者与原formality比出现了不该出现的DFF0或1,这些unmatch的dff有可能是坑,有必要的话要set_user_match试试。
【 在 Atheros (There is here) 的大作中提到: 】
: formality报出41个failing points,根本没法下手去改,logic cone view出现的都是无法类比的schemetic,这种错误有什么好的解决办法?
☆─────────────────────────────────────☆
LeuSe (还是太冲动啊) 于 (Wed Feb 1 22:39:43 2012) 提到:
你先想好你的改动在ff上应该有啥mismatch。你这种情况没有eco工具就直接去分析netlist吧。
【 在 Atheros (There is here) 的大作中提到: 】
: formality报出41个failing points,根本没法下手去改,logic cone view出现的都是无法类比的schemetic,这种错误有什么好的解决办法?
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Thu Feb 2 08:38:43 2012) 提到:
没有unmatched points,仅有41个failing point,用diognose一看是10个error candidate,assosiate的error都是41个,所以没法下手,难道只能对网表?
【 在 PhaseLock 的大作中提到: 】
: rtl确认改对了的话,先report_unmatch_points 看看里边有没有多出来的unmatch DFF或者与原formality比出现了不该出现的DFF0或1,这些unmatch的dff有可能是坑,有必要的话要set_user_match试试。
: 【 在 Atheros (There is here) 的大作中提到: 】
: : formality报出41个failing points,根本没法下手去改,logic cone view出现的都是无法类比的schemetic,这种错误有什么好的解决办法?
: ...................
☆─────────────────────────────────────☆
coverup ((——)!) 于 (Thu Feb 2 09:36:24 2012) 提到:
要不贵司出点小钱。我去帮你修把。
【 在 Atheros (There is here) 的大作中提到: 】
: 没有unmatched points,仅有41个failing point,用diognose一看是10个error candidate,assosiate的error都是41个,所以没法下手,难道只能对网表?
☆─────────────────────────────────────☆
giyim (hundred) 于 (Thu Feb 2 10:31:13 2012) 提到:
分析netlist,看pattern
【 在 Atheros (There is here) 的大作中提到: 】
: 由于没有LEC工具,用Formality对修改后的网表和tape-out的网标做了对比,出现了40多处failing point,打开logic cone之后发现无法找出真正需要修改的地方,各为前辈有formality做ECO的经验吗?
☆─────────────────────────────────────☆
G000933 (花生小酒是奢侈品) 于 (Thu Feb 2 13:57:49 2012) 提到:
SPARE CELL的输入PIN肯定要接到TIEHI或者TIELO的CELL上,所以这些PIN实际上在流片的时候已经是有ROUTING的。
如果METAL ECO规模比较大,工具自动做的,很难保证动到哪层不动哪层。
规模很小可以手动做的,想少动几层就要仔细看了,有时候还会改动ECO的网表来尽量少动METAL。
【 在 kerk (hehe) 的大作中提到: 】
: 说到metal fix时减少改动layer数的问题,我有个问题:
: 因为spare cell的pin是在M1上的,而M1不可能用于ECO route,
: 因此M1和VIA1-2基本上是metal fix时必动的。
: ...................
☆─────────────────────────────────────☆
heaven (海风) 于 (Sun Feb 5 23:11:36 2012) 提到:
这种组合电路是没法单独做ECO的呀,要看最终的FF的。
Atheros这么NB的公司连这个问题也解决不了?
【 在 Atheros (There is here) 的大作中提到: 】
: 是这样的:
: 原来:
: assign select = addr > `ADDR2 ? 1'b1 : 1'b0;
: ...................
Atheros (There is here) 于 (Mon Jan 30 11:03:15 2012) 提到:
RTL的一处低级错误:
a <= 16'hD1
写为了
a <= 16'hE1
芯片已经流片,这种错误怎么能更改?
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 11:10:11 2012) 提到:
重新综合,比较网表,
【 在 Atheros (There is here) 的大作中提到: 】
: RTL的一处低级错误:
: a <= 16'hD1
: 写为了
: ...................
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Mon Jan 30 11:16:21 2012) 提到:
工作量巨大,除此之外别无他法?
【 在 wowotou (窝窝头) 的大作中提到: 】
: 重新综合,比较网表,
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Mon Jan 30 11:17:10 2012) 提到:
如果是同样的RTL,同样的综合脚本,DC在综合出来的东西是100%一样的吗?连那些随机编号wire也一样?
【 在 wowotou (窝窝头) 的大作中提到: 】
: 重新综合,比较网表,
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Mon Jan 30 11:22:13 2012) 提到:
搞不好连compress scan的decoder都会不一样的......
【 在 Atheros (There is here) 的大作中提到: 】
: 如果是同样的RTL,同样的综合脚本,DC在综合出来的东西是100%一样的吗?连那些随机编号wire也一样?
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 11:24:28 2012) 提到:
1,不一样。
2,你可以用eco tool。工具会帮你修。但是工具需要输入2个网表,1个是老的,1个是新的。然后吐出区别
【 在 Atheros (There is here) 的大作中提到: 】
: 如果是同样的RTL,同样的综合脚本,DC在综合出来的东西是100%一样的吗?连那些随机编号wire也一样?
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Mon Jan 30 11:25:02 2012) 提到:
有什么推荐的ECO工具吗?
【 在 wowotou (窝窝头) 的大作中提到: 】
: 1,不一样。
: 2,你可以用eco tool。工具会帮你修。但是工具需要输入2个网表,1个是老的,1个是新的。然后吐出区别
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 11:27:44 2012) 提到:
lec
【 在 Atheros (There is here) 的大作中提到: 】
: 有什么推荐的ECO工具吗?
☆─────────────────────────────────────☆
rockyflying (虽然灌水少,但是确实是主ID) 于 (Mon Jan 30 11:33:46 2012) 提到:
看版图,检查 D端走线。
问你的foundry, 看看这层是不是已经制造完毕。
如果都没有,而且reg a 没有其他逻辑,两根线换换位置就行。
【 在 Atheros (There is here) 的大作中提到: 】
: RTL的一处低级错误:
: a <= 16'hD1
: 写为了
: ...................
☆─────────────────────────────────────☆
ThinkpadX301 (Lenovo Thinkpad X301) 于 (Mon Jan 30 11:36:12 2012) 提到:
读懂网表,画出schematic,即使metal ECO都不会太麻烦。
【 在 Atheros 的大作中提到: 】
: RTL的一处低级错误:
: a <= 16'hD1
: 写为了
: ...................
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 11:38:20 2012) 提到:
是阿,连网表都读不懂,怎么好意思做ic。
【 在 ThinkpadX301 (Lenovo Thinkpad X301) 的大作中提到: 】
: 读懂网表,画出schematic,即使metal ECO都不会太麻烦。
☆─────────────────────────────────────☆
DegoMaradona (正牌魔都硬盘) 于 (Mon Jan 30 11:57:03 2012) 提到:
围观资深ic老前辈
【 在 wowotou 的大作中提到: 】
: 是阿,连网表都读不懂,怎么好意思做ic。
: 【 在 ThinkpadX301 (Lenovo Thinkpad X301) 的大作中提到: 】
: : 读懂网表,画出schematic,即使metal ECO都不会太麻烦。
: ...................
☆─────────────────────────────────────☆
m8d (8d) 于 (Mon Jan 30 12:24:53 2012) 提到:
至少把整个always block的RTL贴出来吧
如果这个错误出现在reset段,eco应该简单
其他情况得具体分析,也许根本没法ECO
【 在 Atheros (There is here) 的大作中提到: 】
: RTL的一处低级错误:
: a <= 16'hD1
: 写为了
: ...................
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 12:31:17 2012) 提到:
这个不会不能eco的。只涉及到1个ff而已。大不了整个逻辑在网表里重写一遍,把原来的d替换掉。体力活而已。
【 在 m8d (8d) 的大作中提到: 】
: 至少把整个always block的RTL贴出来吧
: 如果这个错误出现在reset段,eco应该简单
: 其他情况得具体分析,也许根本没法ECO
☆─────────────────────────────────────☆
benckey () 于 (Mon Jan 30 12:46:06 2012) 提到:
把整个always贴出来啊
【 在 Atheros (There is here) 的大作中提到: 】
: RTL的一处低级错误:
: a <= 16'hD1
: 写为了
: ...................
☆─────────────────────────────────────☆
m8d (8d) 于 (Mon Jan 30 12:47:30 2012) 提到:
如果有10+个a的assignment
而且都是if一坨东西后asign给a
a的逻辑复杂到只存在理论上ECO的可能
【 在 wowotou (窝窝头) 的大作中提到: 】
: 这个不会不能eco的。只涉及到1个ff而已。大不了整个逻辑在网表里重写一遍,把原来的d替换掉。体力活而已。
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 12:59:32 2012) 提到:
这个,也简单。写一个新module,只包含该always块,综合。然后得到新网表。
打断旧网表的d端,把新网表粘贴到旧网表,连上新d端。
eco是考验一个码农称职与否的很重要的指标。
【 在 m8d (8d) 的大作中提到: 】
: 如果有10+个a的assignment
: 而且都是if一坨东西后asign给a
: a的逻辑复杂到只存在理论上ECO的可能
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 13:03:52 2012) 提到:
提醒一下,这个新module的输入需要追溯到ff,很多情况下会不仅仅包含该alway block
【 在 wowotou 的大作中提到: 】
: 这个,也简单。写一个新module,只包含该always块,综合。然后得到新网表。
: 打断旧网表的d端,把新网表粘贴到旧网表,连上新d端。
:
: eco是考验一个码农称职与否的很重要的指标。
:
: 【 在 m8d (8d) 的大作中提到: 】
: : 如果有10+个a的assignment
: : 而且都是if一坨东西后asign给a
: : a的逻辑复杂到只存在理论上ECO的可能
:
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Mon Jan 30 13:17:56 2012) 提到:
整块eco scan怎么办
【 在 wowotou (窝窝头) 的大作中提到: 】
: 这个,也简单。写一个新module,只包含该always块,综合。然后得到新网表。
: 打断旧网表的d端,把新网表粘贴到旧网表,连上新d端。
: eco是考验一个码农称职与否的很重要的指标。
: ...................
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 13:20:11 2012) 提到:
和scan没关系阿。没有破坏scan阿。只剪切了纯组合逻辑的部分,没有动到ff。
【 在 PhaseLock (拿波里的发面饼@凹凸贞洁党) 的大作中提到: 】
: 整块eco scan怎么办
☆─────────────────────────────────────☆
m8d (8d) 于 (Mon Jan 30 13:20:54 2012) 提到:
这就是我说的“理论上可行”
【 在 wowotou (窝窝头) 的大作中提到: 】
: 这个,也简单。写一个新module,只包含该always块,综合。然后得到新网表。
: 打断旧网表的d端,把新网表粘贴到旧网表,连上新d端。
: eco是考验一个码农称职与否的很重要的指标。
: ...................
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 13:22:51 2012) 提到:
这个不是理论上啦。实际上也可行。这是常用手段。
【 在 m8d (8d) 的大作中提到: 】
: 这就是我说的“理论上可行”
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Mon Jan 30 13:24:20 2012) 提到:
你写了新module综合的时候不插scan那里边的ff没有链,完了搁进去,和原有的scan链能串起来么?要是插scan的话怎么能保证和原有的串起来了不大理解这环。如果这块看成shadow logic的话那可以理解
【 在 wowotou (窝窝头) 的大作中提到: 】
: 和scan没关系阿。没有破坏scan阿。只剪切了纯组合逻辑的部分,没有动到ff。
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Mon Jan 30 13:28:53 2012) 提到:
这个做法的确听说过,但我想不出scan砍断了之后这么生连上会不会有问题x
【 在 m8d (8d) 的大作中提到: 】
: 这就是我说的“理论上可行”
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 13:33:18 2012) 提到:
好吧。你还没有理解本质。我在说明一下。
新综合的网表里有没有scan没有任何关系。因为我们不需要把新网表的ff放到旧网表里去。我们要的是新网表ff的d端的net name(比如叫a吧)。整个新网表除了ff都放到旧网表里去。旧网表不要删掉任何逻辑,唯一需要改变的就是旧网表ff的d端。连到新网表的net name(a)上去。
【 在 PhaseLock (拿波里的发面饼@凹凸贞洁党) 的大作中提到: 】
: 你写了新module综合的时候不插scan那里边的ff没有链,完了搁进去,和原有的scan链能串起来么?要是插scan的话怎么能保证和原有的串起来了不大理解这环。如果这块看成shadow logic的话那可以理解
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Mon Jan 30 13:35:49 2012) 提到:
谢谢,我明白了。
【 在 wowotou (窝窝头) 的大作中提到: 】
: 好吧。你还没有理解本质。我在说明一下。
: 新综合的网表里有没有scan没有任何关系。因为我们不需要把新网表的ff放到旧网表里去。我们要的是新网表ff的d端的net name(比如叫a吧)。整个新网表除了ff都放到旧网表里去。旧网表不要删掉任何逻辑,唯一需要改变的就是旧网表ff的d端。连到新网表的net name(a)上去。
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Mon Jan 30 14:23:05 2012) 提到:
谢谢!
【 在 wowotou (窝窝头) 的大作中提到: 】
: 好吧。你还没有理解本质。我在说明一下。
: 新综合的网表里有没有scan没有任何关系。因为我们不需要把新网表的ff放到旧网表里去。我们要的是新网表ff的d端的net name(比如叫a吧)。整个新网表除了ff都放到旧网表里去。旧网表不要删掉任何逻辑,唯一需要改变的就是旧网表ff的d端。连到新网表的net name(a)上去。
☆─────────────────────────────────────☆
LeuSe (还是太冲动啊) 于 (Mon Jan 30 17:00:24 2012) 提到:
其实这个一点不难,就算手工综合,1,2个小时也搞完了。
【 在 m8d (8d) 的大作中提到: 】
: 这就是我说的“理论上可行”
☆─────────────────────────────────────☆
wyaaaa (飞翔的王胖子) 于 (Mon Jan 30 18:35:18 2012) 提到:
貌似这个会巨大计算。
【 在 wowotou 的大作中提到: 】
: 1,不一样。
: 2,你可以用eco tool。工具会帮你修。但是工具需要输入2个网表,1个是老的,1个是新的。然后吐出区别
: 【 在 Atheros (There is here) 的大作中提到: 】
: ...................
☆─────────────────────────────────────☆
magma (RTL2GDS) 于 (Mon Jan 30 18:57:49 2012) 提到:
这样做有两个问题:
1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处逻辑,并查看GDS,研究怎么改动能够以最小改动实现目的。在设计中可以加入一些spare gates,metal fix可以借助这些逻辑。
Good Luck.
【 在 wowotou (窝窝头) 的大作中提到: 】
: 这个,也简单。写一个新module,只包含该always块,综合。然后得到新网表。
: 打断旧网表的d端,把新网表粘贴到旧网表,连上新d端。
: eco是考验一个码农称职与否的很重要的指标。
☆─────────────────────────────────────☆
wowotou (窝窝头) 于 (Mon Jan 30 21:28:49 2012) 提到:
1, 没错,我在后面专门发贴又着重强调了一下。
2,你说的也很对。这属于必杀技。都到tapout的地步了,还要修的bug,绝对属于致命错误。已经不用考虑成本了,能修出来就不错了。
【 在 magma (RTL2GDS) 的大作中提到: 】
: 这样做有两个问题:
: 1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
: 2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处逻辑,并查看GDS,研究怎么改动能够以最小改动实现目的。在设计中可以加入一些spare gates,metal fix可以借助这些逻辑。
: ...................
☆─────────────────────────────────────☆
giyim (hundred) 于 (Mon Jan 30 21:56:55 2012) 提到:
你们formal怎么过的,一般来说,这种逻辑在metal可以修掉
【 在 Atheros (There is here) 的大作中提到: 】
: RTL的一处低级错误:
: a <= 16'hD1
: 写为了
: ...................
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Mon Jan 30 22:03:59 2012) 提到:
请教,如果一个logic cone已经跨了module边界了,或者designer 已经flatten掉整个设计的结构了,这事儿似乎就不这么简单了......
wowotou的这个办法在freeze rtl之后是个好办法,到了tape out之后的确没见过有哪个designer能这么修改metal了。
【 在 magma (RTL2GDS) 的大作中提到: 】
: 这样做有两个问题:
: 1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
: 2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处
: ...................
☆─────────────────────────────────────☆
giyim (hundred) 于 (Mon Jan 30 22:12:48 2012) 提到:
base freeze以后不可能那么改,实际上就算没freeze也没见哪个会这么改
【 在 PhaseLock (拿波里的发面饼@凹凸贞洁党) 的大作中提到: 】
: 请教,如果一个logic cone已经跨了module边界了,或者designer 已经flatten掉整个设计的结构了,这事儿似乎就不这么简单了......
: wowotou的这个办法在freeze rtl之后是个好办法,到了tape out之后的确没见过有哪个designer能这么修改metal了。
☆─────────────────────────────────────☆
kerk (hehe) 于 (Tue Jan 31 14:47:32 2012) 提到:
说到metal fix时减少改动layer数的问题,我有个问题:
因为spare cell的pin是在M1上的,而M1不可能用于ECO route,
因此M1和VIA1-2基本上是metal fix时必动的。
后端有没有办法在投片前把spare cell的pin拉到M2以上?这样就能少该两层了
【 在 magma (RTL2GDS) 的大作中提到: 】
: 这样做有两个问题:
: 1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
: 2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处
: ...................
☆─────────────────────────────────────☆
ThinkpadX301 (Lenovo Thinkpad X301) 于 (Tue Jan 31 14:58:21 2012) 提到:
这跟formal没关系,是DV没有抓到
【 在 giyim 的大作中提到: 】
: 你们formal怎么过的,一般来说,这种逻辑在metal可以修掉
: 【 在 Atheros (There is here) 的大作中提到: 】
: : RTL的一处低级错误:
: ...................
☆─────────────────────────────────────☆
interarsenal (傻傻的鸬鹚) 于 (Tue Jan 31 15:02:18 2012) 提到:
必须可以把spare cell的pin拉到M2,甚至M3,M4都可以
【 在 kerk (hehe) 的大作中提到: 】
说到metal fix时减少改动layer数的问题,我有个问题:
因为spare cell的pin是在M1上的,而M1不可能用于ECO route,
因此M1和VIA1-2基本上是metal fix时必动的。
后端有没有办法在投片前把spare cell的pin拉到M2以上?这样就能少该两层了
【 在 magma (RTL2GDS) 的大作中提到: 】
: 这样做有两个问题:
: 1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
: 2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处
: ...................
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Wed Feb 1 20:29:03 2012) 提到:
谢谢
【 在 magma (RTL2GDS) 的大作中提到: 】
: 这样做有两个问题:
: 1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
: 2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处
: ...................
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Wed Feb 1 20:32:08 2012) 提到:
由于没有LEC工具,用Formality对修改后的网表和tape-out的网标做了对比,出现了40多处failing point,打开logic cone之后发现无法找出真正需要修改的地方,各为前辈有formality做ECO的经验吗?
【 在 magma (RTL2GDS) 的大作中提到: 】
: 这样做有两个问题:
: 1)不应是仅仅这一个always模块,而应该包含整个logic cone,即向前追到上一级寄存器的输出或者芯片的输入端口,将这部分组合逻辑重新综合以替换原有逻辑。wowotou应该是这个意思,但表述的不清楚;
: 2)实际上,芯片tape-out之后,尤其是已经流片,用上述办法并不是最优选择,往往大家都希望改动尽可能少,上述办法很可能会动到扩散层,意味着几乎所有的mask都要重新制造,但一般希望仅仅通过metal fix来解决问题,而且metal/via层数动的越少越好,因此要仔细分析该处
: ...................
☆─────────────────────────────────────☆
LeuSe (还是太冲动啊) 于 (Wed Feb 1 21:39:35 2012) 提到:
你改了几处?
【 在 Atheros (There is here) 的大作中提到: 】
: 由于没有LEC工具,用Formality对修改后的网表和tape-out的网标做了对比,出现了40多处failing point,打开logic cone之后发现无法找出真正需要修改的地方,各为前辈有formality做ECO的经验吗?
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Wed Feb 1 21:42:10 2012) 提到:
是这样的:
原来:
assign select = addr > `ADDR2 ? 1'b1 : 1'b0;
应该为:
assign select = addr > `ADDR3 ? 1'b1 :1'b0;
其中ADDR2 = 8'hD9;
ADDR3 = 8'hE1;
就这么一个改动
【 在 LeuSe (还是太冲动啊) 的大作中提到: 】
: 你改了几处?
☆─────────────────────────────────────☆
LeuSe (还是太冲动啊) 于 (Wed Feb 1 21:49:42 2012) 提到:
formal工具比较的是ff,你要想想你的变化对于ff来说有多少影响。
【 在 Atheros (There is here) 的大作中提到: 】
: 是这样的:
: 原来:
: assign select = addr > `ADDR2 ? 1'b1 : 1'b0;
: ...................
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Wed Feb 1 22:00:37 2012) 提到:
formality报出41个failing points,根本没法下手去改,logic cone view出现的都是无法类比的schemetic,这种错误有什么好的解决办法?
【 在 LeuSe (还是太冲动啊) 的大作中提到: 】
: formal工具比较的是ff,你要想想你的变化对于ff来说有多少影响。
☆─────────────────────────────────────☆
PhaseLock (拿波里的发面饼@凹凸贞洁党) 于 (Wed Feb 1 22:11:14 2012) 提到:
rtl确认改对了的话,先report_unmatch_points 看看里边有没有多出来的unmatch DFF或者与原formality比出现了不该出现的DFF0或1,这些unmatch的dff有可能是坑,有必要的话要set_user_match试试。
【 在 Atheros (There is here) 的大作中提到: 】
: formality报出41个failing points,根本没法下手去改,logic cone view出现的都是无法类比的schemetic,这种错误有什么好的解决办法?
☆─────────────────────────────────────☆
LeuSe (还是太冲动啊) 于 (Wed Feb 1 22:39:43 2012) 提到:
你先想好你的改动在ff上应该有啥mismatch。你这种情况没有eco工具就直接去分析netlist吧。
【 在 Atheros (There is here) 的大作中提到: 】
: formality报出41个failing points,根本没法下手去改,logic cone view出现的都是无法类比的schemetic,这种错误有什么好的解决办法?
☆─────────────────────────────────────☆
Atheros (There is here) 于 (Thu Feb 2 08:38:43 2012) 提到:
没有unmatched points,仅有41个failing point,用diognose一看是10个error candidate,assosiate的error都是41个,所以没法下手,难道只能对网表?
【 在 PhaseLock 的大作中提到: 】
: rtl确认改对了的话,先report_unmatch_points 看看里边有没有多出来的unmatch DFF或者与原formality比出现了不该出现的DFF0或1,这些unmatch的dff有可能是坑,有必要的话要set_user_match试试。
: 【 在 Atheros (There is here) 的大作中提到: 】
: : formality报出41个failing points,根本没法下手去改,logic cone view出现的都是无法类比的schemetic,这种错误有什么好的解决办法?
: ...................
☆─────────────────────────────────────☆
coverup ((——)!) 于 (Thu Feb 2 09:36:24 2012) 提到:
要不贵司出点小钱。我去帮你修把。
【 在 Atheros (There is here) 的大作中提到: 】
: 没有unmatched points,仅有41个failing point,用diognose一看是10个error candidate,assosiate的error都是41个,所以没法下手,难道只能对网表?
☆─────────────────────────────────────☆
giyim (hundred) 于 (Thu Feb 2 10:31:13 2012) 提到:
分析netlist,看pattern
【 在 Atheros (There is here) 的大作中提到: 】
: 由于没有LEC工具,用Formality对修改后的网表和tape-out的网标做了对比,出现了40多处failing point,打开logic cone之后发现无法找出真正需要修改的地方,各为前辈有formality做ECO的经验吗?
☆─────────────────────────────────────☆
G000933 (花生小酒是奢侈品) 于 (Thu Feb 2 13:57:49 2012) 提到:
SPARE CELL的输入PIN肯定要接到TIEHI或者TIELO的CELL上,所以这些PIN实际上在流片的时候已经是有ROUTING的。
如果METAL ECO规模比较大,工具自动做的,很难保证动到哪层不动哪层。
规模很小可以手动做的,想少动几层就要仔细看了,有时候还会改动ECO的网表来尽量少动METAL。
【 在 kerk (hehe) 的大作中提到: 】
: 说到metal fix时减少改动layer数的问题,我有个问题:
: 因为spare cell的pin是在M1上的,而M1不可能用于ECO route,
: 因此M1和VIA1-2基本上是metal fix时必动的。
: ...................
☆─────────────────────────────────────☆
heaven (海风) 于 (Sun Feb 5 23:11:36 2012) 提到:
这种组合电路是没法单独做ECO的呀,要看最终的FF的。
Atheros这么NB的公司连这个问题也解决不了?
【 在 Atheros (There is here) 的大作中提到: 】
: 是这样的:
: 原来:
: assign select = addr > `ADDR2 ? 1'b1 : 1'b0;
: ...................