ICC - 数据准备
- 参考
1. 需要准备好的文件
- 逻辑层:需要.db、.sdc、.v文件
- .db:通常与DC使用的库是相同的,提供std_cell、IO、Macro时序、功耗和面积等信息,包含器件延迟,工艺角等信息。
- 需要设置相应的库为target_library和link_library。
- .sdc:由DC导出,可人工修改,使其满足设计要求。
- .v:由DC导出,门级网表文件。
- 除了可以读入.v文件还可以读入.ddc文件,.ddc中不仅包含了netlist、sdc,还可以包含一些物理信息:placement blockage,-spg信息等。
- -spg相关信息可以看这篇博客.
- 除了可以读入.v文件还可以读入.ddc文件,.ddc中不仅包含了netlist、sdc,还可以包含一些物理信息:placement blockage,-spg信息等。
- .db:通常与DC使用的库是相同的,提供std_cell、IO、Macro时序、功耗和面积等信息,包含器件延迟,工艺角等信息。
- 物理层:需要.mw、.tf、TLU文件
- Milkway:记录工艺和标准单元、macro、pad cell物理相关信息,以及这些单元在布局时需要的最小间隔和对绕线的要求等。
- 指定.tf文件以及mw_reference_library(包括使用的stdcell/IP等physical library)可通过下面指令。
create_mw_lib -tech $TECH_FILE -mw_reference_library $MW_REFERENCE_LIB_DIRS
- Milkway有多种view模式,可以看这篇文章。比较常用的是:CEL/FRAM,前者更为具体,而后者更抽象。
-
对于Stdcel:IP厂商一般会同时提供CEL View+FRAM View,以及GDS+LEF。
-
Macro(包括Memory,PLL,IO等):一般IP厂商只提供GDS+LEF,我们需要使用synopsys的Milkway工具将其转化为对应的CEL和FRAM文件,以便ICC使用。
细节 抽象 Encounter GDS LEF IC Compiler CEL View FRAM View
-
- 指定.tf文件以及mw_reference_library(包括使用的stdcell/IP等physical library)可通过下面指令。
- physical library :典型的ICC流程中,物理库的信息是被包含在Milkyway数据库中。
- .tf:工艺文件,提供了technology-specific信息以及tile的宽高,例如:每层金属的名称、物理和电学特性。另外,ICC要求TF必须包含Design Rules:包括width,pitch,spacing等值的定义。
- TLU+
- RC寄生模型文件,用于计算互连线RC,有多个corner的建模。
- 由工艺厂商提供,但如果工艺厂商仅提供了itf文件,可以通过工具StarRC使用grdgenxo将itf文件转换成tluplus文件。指令如下。
grdgenxo -itf2TLUPlus -i <ITF FILE> -o <TLU+ file>
- 在Signoff时,可以使用STARRC抽取的nxtgrd文件(该文件比tluplus有更详细的信息),导入pt中。
- Milkway:记录工艺和标准单元、macro、pad cell物理相关信息,以及这些单元在布局时需要的最小间隔和对绕线的要求等。
- IP库:.sldb文件
- synthetic_library:DesignWare的可重用IP库,将运算符号转换成特定的库。
2. 指定库文件
- set link_library:为网表中的每个子设计在ICC内存中找到相应的设计。
- set target_library:与DC一致,使用link library进行翻译,优化后映射到目标库中。
- set_min_library:同时指定bestcase用作保持时间分析以及指定worstcase用作建立时间分析。(用MCMM分析更好)
- MCMM(Multi Corner - Multi Mode):让ICC吃掉所有scenario的时序约束,让软件自行评估和优化;例如一条违例的路径可能出现在不同的scenario中,有不同的时序裕量,有的-1,有的-0.2,那么ICC会在裕量最差的那个scenario中进行修复。在后面ICC Placement处还会详细介绍。
set_min_library "./wc_ccs.db" -min_version "./bc_ccs.db"
3. 检查物理库和逻辑库的一致性(check_library)
- 默认检查命令:check_library
- 完整检查命令:set_check_library_options -all (还会检查UPF power的约束,MMMC,CCS电流源模型等)
4. 设置0互联延时
- 首先在最理想的情况下看是否存在setup的违规,如果违规则应返回前端修改设计。
set_zero_interconnect_delay_mode true
report_timing -delay_type max
set_zero_interconnect_delay_mode false