在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5997|回复: 7

[讨论] 请问关于encounter的partition功能的问题

[复制链接]
发表于 2013-6-26 12:38:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请问partition的本质目的是什么呢?
在我原来的RTL描述里,顶层模块多次例化同一个底层模块
module TOP();
    myunit core1();
    myunit core2();
    myunit core3();
    ......
endmodule
用DC综合,也没有仔细设置,只是对TOP模块整个进行综合。
把生成的netlist读入到encounter里面,发现partition顶层模块的时候,可以分出 core1, core2, core3,看起来方块儿也一样大。
于是我就specify partition (全是default的设置),然后做P&R。
然而,虽然大概样子相仿,但是core1,core2,core3 细节的地方长得不是一模一样的。
于是我认为,以上的操作并不能保证对同一子模块的多个例化得出的layout一样。
原本,我想用partition实现多核的layout,而不是一整个flattened的版图。而且要求每个核的内部电路版图一模一样(reuse IP的思想)。
请问如何才能达到以上要求呢?
发表于 2013-6-26 15:12:32 | 显示全部楼层
partition主要是为太大的设计准备的
你的要求是bottom-up的流程,只要对一个core做P&R,然后在top用三次就可以,
发表于 2013-6-27 17:19:11 | 显示全部楼层
回复 2# 陈涛


    请教版主:bottom-up流程与partition流程有啥区别啊?
    谢谢!
 楼主| 发表于 2013-6-30 09:07:47 | 显示全部楼层
本帖最后由 ttxs2009 于 2013-6-30 09:08 编辑

回复 2# 陈涛

多谢版主。
Bottom-up的流程的话,我应该一直回退到DC逻辑综合的阶段吧?
起初我只是想把myCore生成为encounter的macro,然后在Topnetlist.v 里面例化这个macro,然后在用encounter来出版图(这个想法没有错吧?)。 但是我查了一下我的Topnetlist.v里面的代码,似乎完全被flatten掉了。。。分不出层次来了,因为DC综合阶段就是用的top-down。
请问版主,如果我重新DC综合,应该怎样设置才能算Bottom-up呢?
假如我DC综合Bottom-up成功,直接用encounter出layout能够达到区分多核的目的吗,还需要macro来把多核分开吗?
 楼主| 发表于 2013-6-30 10:59:01 | 显示全部楼层
我查到的bottom-up综合,就是:
subdesign 综合完了 写ddc出来,然后顶层模块link,再compile。
如果想综合结果中,同一个module的多个instance都能区分开,需要 link 后面uniquify,在TOP compile之前set_dont_touch module是吗?
我在TOP-DOWN的脚本里,也经常见到 link uniquify 和 set_dont_tough,但是为什么达不到分离多核的作用呢?
 楼主| 发表于 2013-6-30 12:56:12 | 显示全部楼层
本设计的层次图,如下图所示:
eetop.png
我照着网上的一个例子写了一个bottom-up综合的脚本,如下,请大侠看看是否正确,我理解是否有误。
此脚本目的是为了在encounter看layout的时候能分出两个core来。

remove_design –all

read_verilog DoubleCore.v

current_design AddressGenerator

Link

check_design

include subblocks.const

compile -map_effort high

report_timing -path full -delay max -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddc and sdf

write -hierarchy -format verilog -output"/home/AddressGenerator.v“

write -hierarchy -format ddc -output"/home/AddressGenerator.ddc“

write_sdf "/home/AddressGenerator.sdf“

report_power


current_design fixmultiply

Link

check_design

include subblocks.const

compile -map_effort high

report_timing -path full -delay max -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddc and sdf

write -hierarchy -format verilog -output "/home/fixmultiply.v“

write -hierarchy -format ddc -output "/home/fixmultiply.ddc“

write_sdf "/home/fixmultiply.sdf“

report_power



current_design expon

Link

check_design

include subblocks.const

compile -map_effort high

report_timing -path full -delay max -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddc and sdf

write -hierarchy -format verilog -output "/home/expon.v“

write -hierarchy -format ddc -output "/home/expon.ddc“

write_sdf "/home/expon.sdf“

report_power


current_design MMU

Link

check_design

include subblocks.const

compile -map_effort high

report_timing -path full -delay max -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddc and sdf

write -hierarchy -format verilog -output "/home/MMU.v“

write -hierarchy -format ddc -output "/home/MMU.ddc“

write_sdf "/home/MMU.sdf“

report_power




current_design FSM

Link

check_design

include subblocks.const

compile -map_effort high

report_timing -path full -delay max -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddc and sdf

write -hierarchy -format verilog -output "/home/FSM.v“

write -hierarchy -format ddc -output "/home/FSM.ddc“

write_sdf "/home/FSM.sdf“

report_power


current_design MUX_A

Link

check_design

include subblocks.const

compile -map_effort high

report_timing -path full -delay max -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddc and sdf

write -hierarchy -format verilog -output "/home/ MUX_A.v“

write -hierarchy -format ddc -output "/home/ MUX_A.ddc“

write_sdf "/home/ MUX_A.sdf“

report_power



current_design MUX_D

Link

check_design

include subblocks.const

compile -map_effort high

report_timing -path full -delay max -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddc and sdf

write -hierarchy -format verilog -output "/home/ MUX_D.v“

write -hierarchy -format ddc -output "/home/ MUX_D.ddc“

write_sdf "/home/ MUX_D.sdf“

report_power


current_design GlobalFSM

Link

check_design

include subblocks.const

compile -map_effort high

report_timing -path full -delay max -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddc and sdf

write -hierarchy -format verilog -output "/home/ GlobalFSM.v“

write -hierarchy -format ddc -output "/home/ GlobalFSM.ddc“

write_sdf "/home/ GlobalFSM.sdf“

report_power



current_design LayerTrans

Link

check_design

include subblocks.const

compile -map_effort high

report_timing -path full -delay max -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddc and sdf

write -hierarchy -format verilog -output "/home/ LayerTrans.v“

write -hierarchy -format ddc -output "/home/ LayerTrans.ddc“

write_sdf "/home/ LayerTrans.sdf“

report_power


current_design Core

Link

check_design

include subblocks.const

compile -map_effort high

report_timing -path full -delay max -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddc and sdf

write -hierarchy -format verilog -output "/home/ Core.v“

write -hierarchy -format ddc -output "/home/Core.ddc“

write_sdf "/home/ LearningUnit.sdf“

report_power



remove_design –all

read_ddc [list "/home/LearningUnit.ddc"]

read_ddc [list "/home/MMU.ddc"]

read_ddc [list "/home/FSM.ddc"]

read_ddc [list "/home/MUX_A.ddc"]

read_ddc [list "/home/MUX_D.ddc"]

read_ddc [list "/home/GlobalFSM.ddc"]

read_ddc [list "/home/LayerTrans.ddc"]

read_verilog [list "/home/TOP.v"]

current_design TOP

set_dont_touch Learning

set_dont_touch MMU

set_dont_touch FSM

set_dont_touch MUX_A

set_dont_touch MUX_D

set_dont_touch GlobalFSM

set_dont_touch LayerTrans

check_design

include top.const

compile -map_effort high

report_timing -path full -delay max -max_paths 20 -nworst 100

write_sdc "/home/TOP.sdc“

write -hierarchy -format verilog -output"/home/TOP_nl.v“

write_sdf "/home/TOP.sdf"report_power

发表于 2013-7-1 11:01:13 | 显示全部楼层
发表于 2015-1-5 16:47:58 | 显示全部楼层
回复 6# ttxs2009
是否已经解决?最近在做三维ic,所以同求,感谢啦啦啦啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 04:14 , Processed in 0.034233 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表