前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >cadence genus版的综合脚本

cadence genus版的综合脚本

作者头像
ExASIC
发布2022-06-21 15:58:16
2.2K0
发布2022-06-21 15:58:16
举报
文章被收录于专栏:ExASICExASIC

再来问一问什么是逻辑综合?

简单地讲就是把RTL转成网表。这不过这里要强调两点:

  1. 满足内部和外部的约束条件。具体包括面积、时序、功耗等,其中时序是重点。
  2. 要映射成指定fab的标准单元库。

在《把riscv core代码变成网表最少需要几步》里,写过synopsys dc版本的脚本例子。今天我们再来写个cadence genus版本的综合脚本。为了简单说明,只做了worst corner,可以满足大部分老工艺的综合。

代码语言:javascript
复制

set TECH_LIB_PATH /data/fab/TSMC130/digital
set top digital_top

# global setting
set_db / .auto_ungroup none

# read library
set_design_mode -process 130
read_libs ${TECH_LIB_PATH}/Front_End/timing_power_noise/NLDM/wc.lib

# read rtl
read_hdl -languare v2001 {
    ../../rtl/a.v
    ../../rtl/b.v
    ../../rtl/digital_top.v
}

# elab
elaborate ${top}
check_design
uniquify ${top}

# constraints
read_sdc ../scr/normal_mode_max.sdc

# set dont touch to special insts in RTL
set_dont_touch [get_cells u_buf*]
set_dont_touch [get_cells u_icg*]
set_dont_touch [get_cells u_a/u_delaycell*]

# clock gates
set_db / .lp_insert_clock_gating true

# compile
syn_generic
syn_map
syn_opt

# check result
report_area
report_timing

# write result
write_hdl ${top} > ${top}_syn.v
write_sdc ${top} > normal_mode_max_out.sdc

初看与synopsys dc的版本也没有太大的区别,只是一些命令或者参数变了,但流程和要做的事情是一样的。有一点要注意的,genus默认是common ui,一些老命令不支持了,比如set_attribute,需要用set_db代替。

最后,通过下面的命令来运行综合:

代码语言:javascript
复制
genus -no_gui -files syn.tcl

安装目录下有用户手册可以参考:

genus/doc/genus_user/genus_user.pdf

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ExASIC 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档