本Lab包含所有脚本不收取任何费用,同时也不承担任何技术支持的义务,但是接受合理的问题反馈并适时更新。
本套脚本仅供学习交流,很多实际中可能遇到的问题细节和约束并未体现在本套脚本中,因此 切不可用于实际项目的signoff,否则后果自负 。
问题反馈方法:
所有需要的EDA工具请支持正版。
本项目致力于免费分享基于ICC2的后端设计基本知识。鉴于绝大部分工艺库和设计信息都含有敏感的版权信息,能够找到比较合适的可公开资源并不容易。
Synopsys的这套SAED工艺库是免费获取的对后端工具支持比较全面的工艺库之一,同时也有比较丰富的官方Lab资源大量使用此套库,因此十分有利于初学者学习。
尽管官方Lab已经有比较多的素材,但是在没有详细文档指引的前提下对于初学者来说仍然不太友好。因此制作了这个Lab并配合一些简单的指引方便初学者学习。
Lab包含使用ICC2实现后端设计的所需步骤:从floorplan到chipfinish,不包含后续所需要的各种验证步骤。
本Lab的所有脚本全部是原创开发,不依赖现有的任何设计流程和官方Lab脚本,每条命令都是本人在考虑实际应用的前提前下选择使用的,几乎没有哪条命令是多余的,
因此也强烈建议初学者仔细学习每一条命令的含义和作用。
基于Synopsys SAED32/28nm工艺库的ICC2模块设计Lab,设计基本信息如下所示:
本套Lab的主要输入数据(网表、SDC、scandef和library等)是从官方Lab中直接拷贝,其余脚本和命令都属原创。
Lab的输入文件主要分为三个部分:library, scripts和data,其详细内如如下:
library: 包含所需要的库(ndm, lef等)、tech file(icc2, starrc, icv等)
scripts: 包含每个步骤需要的所有脚本
data : 包含所需要的输入文件(netlist, sdc, scandef, upf等)
输出文件将会在后续介绍。
通用设置,例如:设计名称、初始数据、各类目录、库和tech文件、scenario设置、filler/decap/endcap等physical only cell类型等
读入初始网表和UPF,其中UPF采用Golden UPF Flow。
关于Golden UPF Flow的概念如过不清楚请先查阅相关资料。
生成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的结果。
电源网络规划和绕线:standard cell区域和sram,不同voltage area内的电源生成等
电源绕线在ICC2中术语比较复杂的部分,由于要支持非常复杂的pattern,因此相关命令的用法也比较复杂。
本Lab使用的工艺比较成熟,因此没有使用非常复杂的pattern,但是每条命令仍然比较复杂,建议配合man信息逐条学习
Pre-CTS的时序、面积和Congestion相关设置和优化
时钟树综合,默认不开启CCD功能
Post-CTS的时序、面积和Congestion相关设置和优化
绕线以及相关设置
绕线后的时序、面积和Congestion相关设置和优化。默认开启starrc-in-design功能。
该功能需要进一步相关脚本,具体步骤请参考starrc_in_design.config.txt和starrc_in_design.corners.txt部分。
PnR结束前的最后一步,插入filler并生成后续验证需要的数据:网表、GDS/OASIS、DEF等。
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的命令文件,默认已经写好,建议转换成绝对路径;
包含以下三行,用于定义不同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
定义每个scenario的约束文件,包含mode, corner和scenario的创建以及每个scenario的详细约束。
此文件中定义了所有步骤中需要用到的scenario并做出了必要的判断,因此所有步骤通用此文件。
初始化ICC2工具,定义如时间单位、site属性、默认绕线方向和绕线层等信息
本Lab仅可用于了解和学习后端流程和工具基本用法,实际项目中更加详细的约束如DRV,uncertainty,OCV和signoff PVT条件等都没有考虑或不准确。
由于Synopsys ICC2在2019后有较大更新,因此EDA工具版本建议使用较新的2019以后的版本,新版本的优化结果更能体现真正的问题所在。
如果对本Lab的流程和脚本有任何意见和建议,欢迎反馈。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。