IC Compiler II(ICC2) 后端设计流程简介
一、设计流程图
二、Overview
三、Start ICC2
库文件操作命令:
- 创建库文件
creat_lib name
-ref_libs {option} #参考库
-technology #导入技术文件
-use_technology_lib #使用技术库文件
-scale_factor #尺寸范围(或使用库技术文件定义:set_app_options -name lib.setting.use_tech_scale_factor -value true)
- 打开库文件
open_lib
No path :search by search_path variable .
Relative Path: (.)当前文件夹 (…) 上个文件夹
Absolute path: (/)
打开库文件时会自动打开所有的ref_lib
-read #只读模式打开
-ref_ libs_for_edit #参考库编辑
- 当前设计库
current_lib
- 获取所有打开的库
get_libs
get_libs -explicit
当前打开的库
get_libs -implicit
获取所有参考库 close_lib
关闭库save_lib
保存库(从memory 保存到disk)
-compress
以压缩文件形式保存
Using Application Options
naming convention: category[.subcategory].option_name
get_app_options #list all available application options
get_app_options timer.* # list all available timer application options
report_app_options # a report of application options
Man Pages
man report_timing #man the command of report_timing
man plan_options #man command followed by *category_options*
man plan.place_options # man command followed by *subcategory_options*
man PSYN-025 #查询错误信息
快捷键
快捷键 | Option |
---|---|
ctrl+l | 打开所选对象列表 |
ctrl+q | 查询对象信息 |
ctrl+h | 高亮 |
ctrl+m | 取消高亮 |
ctrl+r | 打开属性窗口 |
Floorplan
目标:
- 确定芯片的尺寸,形状
- I/O单元、填充和角落pad的位置
- 宏单元(hard marco,IP,Blocks)的放置和blockages的规划
- 电源规划
Placement and Opt
CTS and Postcts
Route & PostRoute
STA(修set_up 和hold violations)
修复策略:增大 clok path 延迟或者 减小 data path 的延迟。由于clock path的延迟会延伸到下一级,因此往往先考虑减小 data path的延迟。 减小data path的延迟可以首先考虑将HVT ,RVT的cell换成LVT的cell,通过增加一定的功耗,减少延迟。
Finish
ICC2中PR的常用命令:
- 手动修timing
get_alternative_lib_cells -current_lib lib_cell #从当前库中查找可以用来替换lib_cell的cell
get_alternative_lib_cells -libraries lib_cell #从给定库中查找可以用来替换lib_cell的cell (默认从全部库中查找)
size_cell instance_cell_name -lib_cell lib_cell_name #将该instance换成lib_cell
- 查看calibre drc 结果
read_drc_error_file
-drc_type calibre
#valid values are "calibre" and is default
-error_data error_data_name
#Default:find in the drc report file
-file calibre.report
#DRC error report to read in
Tips: error cell not saved.using followong commands:
save_block
#to save the error cell
close_drc_error_data -force
#close the error cell
remove_drc_error_data -force
#(to remove the error cell)