请选择 进入手机版 | 继续访问电脑版

芯片设计交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 407|回复: 0

icc2_block

[复制链接]

7

主题

0

回帖

28

积分

新手上路

积分
28
发表于 2024-6-13 16:07:51 | 显示全部楼层 |阅读模式
前言
本项目致力于免费分享基于ICC2的后端设计基本知识。鉴于绝大部分工艺库和设计信息都含有敏感的版权信息,能够找到比较合适的可公开资源并不容易。
Synopsys的这套SAED工艺库是免费获取的对后端工具支持比较全面的工艺库之一,同时也有比较丰富的官方Lab资源大量使用此套库,因此十分有利于初学者学习。
尽管官方Lab已经有比较多的素材,但是在没有详细文档指引的前提下对于初学者来说仍然不太友好。因此制作了这个Lab并配合一些简单的指引方便初学者学习。
Lab包含使用ICC2实现后端设计的所需步骤:从floorplan到chipfinish,不包含后续所需要的各种验证步骤。
本Lab的所有脚本全部是原创开发,不依赖现有的任何设计流程和官方Lab脚本,每条命令都是本人在考虑实际应用的前提前下选择使用的,几乎没有哪条命令是多余的,
因此也强烈建议初学者仔细学习每一条命令的含义和作用。
Lab基本信息
基于Synopsys SAED32/28nm工艺库的ICC2模块设计Lab,设计基本信息如下所示:

本套Lab的主要输入数据(网表、SDC、scandef和library等)是从官方Lab中直接拷贝,其余脚本和命令都属原创。
Lab测试环境和工具版本

Lab结构介绍
Lab的输入文件主要分为三个部分:library, scripts和data,其详细内如如下:
library: 包含所需要的库(ndm, lef等)、tech file(icc2, starrc, icv等)
scripts: 包含每个步骤需要的所有脚本
data : 包含所需要的输入文件(netlist, sdc, scandef, upf等)
输出文件将会在后续介绍。
快速上手步骤
  • 打开run_all.csh (vim/gvim/emac/notepad++等任意文本编辑器)
  • 修改以下部分
    a) 将以下粗体部分替换成icc2的安装目录,指定到bin一级目录(必须)
    set path = ( $path /your/icc2/path/to/bin )
    b) 将以下粗体部分替换成synopsys的license server或者license文件路径(必须)
    setenv SNPSLMD_LICENSE_FILE " /your/license/server/or/file "
    c) 如果系统安装了LSF,修改以下所有行的粗体部分,替换成想要使用的queue(可选)
    bsub -Ip -q *normal ** -n 2 icc2_shell -f scripts/ ...
    d) 如果系统并未安装LSF,则注释掉和上述行类似的所有行,同时将以下行首的注释取消(可选)
    #icc2_shell -f scripts/*
  • 运行run_all.csh
    ./run_all.csh
  • 查看结果
    a) 所有log会产生在./logs/目录下,需要查看每个步骤是否有Error
    routeopt的starrc in design默认会有Error,具体后续介绍
    b) 报告(reports)将会产生在./reports/*目录下,每个step分开产生
    c) 数据将会产生在./data目录下,每个step的ndm library放在./data/nlib下
主要脚本功能介绍scripts/00_common_initial_settings.tcl
通用设置,例如:设计名称、初始数据、各类目录、库和tech文件、scenario设置、filler/decap/endcap等physical only cell类型等
scripts/01_icc2_import_design.tcl
读入初始网表和UPF,其中UPF采用Golden UPF Flow。
关于Golden UPF Flow的概念如过不清楚请先查阅相关资料。
scripts/02_create_floorplan.tcl
生成floorplan信息:core/die形状,power domain,macro和pin的摆放,keepout margin,插入boundary cell和tap cell等
Floorplan形状默认是方形,可以根据实际需要练习多边形的floorplan,脚本中有简单的指引,也可以在icc2中man initialize_floorplan命令查看详细用法。
Port位置默认放在左右两边,建议练习更换摆放边和金属层。
Voltage Area的大小,位置和hard macro的位置建议作为重点练习,尝试更改macro的位置迭代place的结果。
scripts/03_power_routing.tcl
电源网络规划和绕线:standard cell区域和sram,不同voltage area内的电源生成等
电源绕线在ICC2中术语比较复杂的部分,由于要支持非常复杂的pattern,因此相关命令的用法也比较复杂。
本Lab使用的工艺比较成熟,因此没有使用非常复杂的pattern,但是每条命令仍然比较复杂,建议配合man信息逐条学习
scripts/04_placeopt.tcl
Pre-CTS的时序、面积和Congestion相关设置和优化
scripts/05_clock.tcl
时钟树综合,默认不开启CCD功能
scripts/06_clockopt.tcl
Post-CTS的时序、面积和Congestion相关设置和优化
scripts/07_route.tcl
绕线以及相关设置
scripts/08_routeopt.tcl
绕线后的时序、面积和Congestion相关设置和优化。默认开启starrc-in-design功能。
该功能需要进一步相关脚本,具体步骤请参考starrc_in_design.config.txt和starrc_in_design.corners.txt部分。
scripts/09_chipfinish.tcl
PnR结束前的最后一步,插入filler并生成后续验证需要的数据:网表、GDS/OASIS、DEF等。
starrc_in_design.config.txt
starrc-in-design功能简介:ICC2中的原生寄生抽取引擎与Signoff级别的工具StarRC并不相同,从而会导致PnR阶段的寄生参数和Signoff存在误差。
为了解决此问题,Synopsys公司开发了Fusion技术,其中之一就是在PnR工具ICC2中调用StarRC工具来抽取寄生参数。该功能的配置需要以下脚本的设置:
其内容包含以下四行:
SIGNOFF_IMAGE: /data/eda/synopsys/starrc/R-2020.09-SP3/bin/StarXtract
MAPPING_FILE: ./library/tech//starrc/saed32nm_tf_itf_tluplus.starrc_in_design.map
CORNER_GRD_FILE:./scripts/starrc_in_design.corners.txt
COMMAND_FILE:./scripts/starrc_in_design.cmd
其中SIGNOFF_IMAGE需要指定系统安装的starrc路径,指向StarXtract可执行文件,需要绝对路径;
MAPPING_FILE指定tf和nxtgrd的layer map文件,默认已经写好,建议转换成绝对路径;
CORNER_GRD_FILE指定starrc各个corner所需要的tech文件,后续详细介绍,建议转换成绝对路径;
COMMAND_FILE指定starrc的命令文件,默认已经写好,建议转换成绝对路径;
scripts/starrc_in_design.corners.txt
包含以下三行,用于定义不同corner对应使用的tech文件。默认已经写好,但是建议将tech文件转换成绝对路径;
ss0p75v125c_cmax ./library/tech/starrc/saed32nm_1p9m_Cmax.nxtgrd
ff0p95vm40c_cmin ./library/tech/starrc/saed32nm_1p9m_Cmin.nxtgrd
ff0p95v125c_cmin ./library/tech/starrc/saed32nm_1p9m_Cmin.nxtgrd
scripts/scenarios_setup.tcl
定义每个scenario的约束文件,包含mode, corner和scenario的创建以及每个scenario的详细约束。
此文件中定义了所有步骤中需要用到的scenario并做出了必要的判断,因此所有步骤通用此文件。
scripts/initialization_settings.tcl
初始化ICC2工具,定义如时间单位、site属性、默认绕线方向和绕线层等信息
结语
本Lab仅可用于了解和学习后端流程和工具基本用法,实际项目中更加详细的约束如DRV,uncertainty,OCV和signoff PVT条件等都没有考虑或不准确。
由于Synopsys ICC2在2019后有较大更新,因此EDA工具版本建议使用较新的2019以后的版本,新版本的优化结果更能体现真正的问题所在。
如果对本Lab的流程和脚本有任何意见和建议,欢迎反馈。

本帖子中包含更多资源

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

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|芯片设计交流论坛

GMT+8, 2024-7-16 22:45 , Processed in 0.041957 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表