学习目标:
数字IC设计实习
例如:
- 掌握数字IC设计入门知识
学习内容:
DC工具使用
例如:
- 掌握DC用法
- 掌握 基本语法
学习时间:
- 周一至周五早上 8点—晚上9点
- 周六上午 9 点-上午 11 点
- 周日下午 3 点-下午 6 点
学习产出:
一打开DC的方式:
1.页面的方式:design_vision
2.直接用命令的方式:de_shell
3.用脚本方式:dc_shell -f syn.tcl | tee -i syn.log
启动DC方法:
写脚本 .synopsys_dc.setup
其中包含:set_app_var target_library sc_max.db
set_app_var link_library " * sc_max.db"
set_app_var search_path “$search_path …/…/rtl …/lib …/scripts”
syn.sdc //时序约束文件
二 设置search_path
设置综合的路径
set_app_var search_path “$search_path ./rtl ./scripts ./libs”
EDA工具 tickle命令
三 设置库
target lib:综合过程中生成门级网表,指定使用的工艺库
eg:set_appr_var target_library 90nm_typical.db
.db 文件是DC工具使用的文件,有一个.lib文件,.lid文件是工程师看
link library :连接原来设计的工艺库
四 read_verilog
read_verilog “Top.v A.v B.v”
五指定设计顶层
current_design Top //Top指的是model的名字
六 timing constrain:调整时钟树
clock period create_clock -period 2 [get_ports Clk] //2ns
clock skew set_clock_uncertainty -setup 0.3 [get_clock CLK] //时钟裕度
clock transition set_clock_transition -max 0.15 [get_clock CLK] //由0跳转到1所需时间
clock latency set_clock_latency -max 0.7 [get_clock CLK]//晶振产生时钟,晶振到clk的延时是多少
set_input_delay -max 0.6 -clock Clk [get_ports A]
经过M的delay到A
优化MY_DESIGN内部的输入延迟N后满足STA(静态时序分析)
set_output_delay -max 0.8 -clock Clk [get_ports B]//0.8在架构设计的时候定
设置S+T的delay
七 environmental constrain
1.set_input_transition 0.12 [get_ports A]//由0跳变到1所需时间
2.电容载
set_load [expr {30.0/1000} ] [get_ports B] // 大小为0.03pF,单位需要参考电子工具内的单位大小
去优化B,使得它能够满足那么大的容载
八compile/compile_ultra
1.①.架构优化
②.logic优化
③.gate-level 优化
2.在满足时序约束的条件下minimize area
九 report_qor
综合质量的报告:Timing Cell count Area
(非组合逻辑:寄存器、存储器)
十 report_timing
包括DC的静态时序分析、单个的时序路径、最大延迟
如果满足时序约束,文档最后会出现slack(MET) 指的是裕度
不满足,出现violate
十一 output
write_sdc my_design.sdc //做约束的时候的约束文件
write -f ddc -hier -output my_ddc.ddc //
write f verilog -hier -outout my_design.gv//.v文件的网表,
时序电路
slope:下降的延时
做后仿需要的文件:
GVIM 中自动补齐信号名称:ctrl+n
查看set_app_var的用法:man set_app_var
DC综合面积报告中的面积单位是
u
m
2
um^2
um2 (微米)
- 技术笔记 2 遍
- CSDN 技术博客 1 篇