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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2135|回复: 3

[原创] 关于bottom-up下的critical path问题

[复制链接]
发表于 2016-4-1 16:42:18 | 显示全部楼层 |阅读模式

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

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

x
请教各位前辈!我最近在用bottom-up的方式做综合,具体的流程与下面这段code一样,但是在timing上碰到了问题。我在synthesize 所有subblock的时候,DC给出的最长的路径不超过4ns,但是在做top-level synthesize的时候,最长的路径却变成了10ns,我对所有的subblock都做了set_dont_touch,但是貌似没有用。我参考的code如下:

remove_design –all

read_verilog DoubleCore.v

current_design AddressGenerator

Link

check_design

include subblocks.const

compile -map_effort high

report_timing -path full -delaymax -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddcand 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 -delaymax -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddcand 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 -delaymax -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddcand 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 -delaymax -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddcand 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 -delaymax -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddcand 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 -delaymax -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddcand 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 -delaymax -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddcand 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 -delaymax -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddcand 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 -delaymax -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddcand 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 -delaymax -max_paths 20 -nworst 100

#Generate Verilog Netlist and ddcand 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 -delaymax -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


来自 <http://bbs.eetop.cn/thread-404761-1-1.html>

 楼主| 发表于 2016-4-1 17:01:37 | 显示全部楼层
希望各位大神指点一下!
发表于 2016-4-1 23:55:46 | 显示全部楼层
猜测,是因为顶层考虑了各个子模块的互连问题导致的,这个时候他是会在连线上插buf之类的。
 楼主| 发表于 2016-4-2 14:12:25 | 显示全部楼层
回复 3# renxx333


   谢谢你的回复!   我又检查了一下top level的综合结果,发现最长的路径是在两个subblock之间,我怀疑是因为其中一个subblock的input没有加register,所以在做subblock单独综合的时候,timing constrain没有约束到该subblock input的combination logic。我现在想可以把那两个subblock合并成一个大的subblock来综合。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-26 07:00 , Processed in 0.017620 second(s), 8 queries , Gzip On, Redis On.

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