本节主要介绍: 逻辑综合概述 计算延时模型 综合目标 综合流程 综合基本命令 工艺库及其综合库
DC工作流程主要分为四步:
synthesis = translation + Constrain + logic optimization + gate mapping
.ddc文件包含许多丰富信息,如映射的门电路信息与网表、寄生参数、.v的网表、SDF标准延时信息、SDC约束、工作条件等信息。
吐出的网表文件,SDF延迟文件,并将其反标,可以用于做后仿。
一般流程是,dc先综合一版,用dc吐出的第一版信息,给后端做一版初步布局,利用ICC工具吐出的物理约束(包括某些器件的大概位置),DC启动拓扑结构模式,利用布局信息再进行综合,这样计算得到的延迟信息比较准确。
面积越小,速度越快;
通常在面积和延时之间折中,如果时序和面积不能同时实现,时序拥有更高的优先级。
综合时,首先DC的HDL compiler把HDL代码转化成DC自带的GTECH格式,然后DC的library compiler 根据标准设计约束(SDC)文件、IP-DW库、工艺库、图形库、(使用拓扑模式时,加入的ICC生成DEF模式,加载物理布局信息)进行时序优化、数据通路优化、功耗优化(DC的power compiler进行)、测试的综合优化(DC的DFT compiler),最后得到优化后的网表。
工艺库目录: /opt/Foundary_Library/SMIC_180/smic_180/SM00LB501-FE-00000-r0p0-00rel0/aci/sc-m/synopsys
其中:以ss_1v62_125c.lib,ss_1v62_125c.db为例:
打开ss_1v62_125c.lib文件:
/* documentation attributes */
revision : 1.0;
date : "Thu Oct 27 16:01:08 2005";
comment : "Copyright (c) 2005 Artisan Components, Inc. All Rights Reserved.";
/* unit attributes */
time_unit : "1ns";
voltage_unit : "1V";
current_unit : "1mA";
pulling_resistance_unit : "1kohm";
leakage_power_unit : "1pW";
capacitive_load_unit (1.0,pf);
/* operation conditions */
nom_process : 1;
nom_temperature : 125;
nom_voltage : 1.62;
operating_conditions(ss_1v62_125c) {
process : 1;
temperature : 125;
voltage : 1.62;
tree_type : balanced_tree
}
default_operating_conditions : ss_1v62_125c;
/* threshold definitions */
slew_lower_threshold_pct_fall : 30.0;
slew_upper_threshold_pct_fall : 70.0;
slew_lower_threshold_pct_rise : 30.0;
slew_upper_threshold_pct_rise : 70.0;
input_threshold_pct_fall : 50.0;
input_threshold_pct_rise : 50.0;
output_threshold_pct_fall : 50.0;
output_threshold_pct_rise : 50.0;
slew_derate_from_library : 0.5;
/* default attributes */
default_leakage_power_density : 0.0;
default_cell_leakage_power : 0.0;
default_fanout_load : 1.0;
default_output_pin_cap : 0.0;
default_inout_pin_cap : 0.0035;
default_input_pin_cap : 0.0035;
default_max_transition : 4.5;
/* templates */
lu_table_template(delay_template_7x1) {
variable_1 : input_net_transition;
index_1 ("1000, 1001, 1002, 1003, 1004, 1005, 1006");
}
power_lut_template(energy_template_7x1) {
variable_1 : input_transition_time;
index_1 ("1000, 1001, 1002, 1003, 1004, 1005, 1006");
}
/* pad attributes */
output_voltage(GENERAL) {
vol : 0.4;
voh : VDD - 0.4;
vomin : -0.5;
vomax : VDD + 0.5;
}
input_voltage(CMOS) {
vil : 0.3 * VDD;
vih : 0.7 * VDD;
vimin : -0.5;
vimax : VDD + 0.5;
}
input_voltage(TTL) {
vil : 0.8;
vih : 2;
vimin : -0.5;
vimax : VDD + 0.5;
}
/* wire-loads */
wire_load("smic18_wl20") {
resistance : 8.5e-8;
capacitance : 1.5e-4;
area : 0.7;
slope : 133.334;
fanout_length (1,133.334);
}
cell (ADDFHX1M) {
cell_footprint : addfh;
area : 59.270400;
pin(A) {
direction : input;
capacitance : 0.006299;
}
pin(B) {
direction : input;
capacitance : 0.012002;
}
pin(CI) {
direction : input;
capacitance : 0.004209;
}
pin(S) {
direction : output;
capacitance : 0.0
...
...
}
synthetic_library一般为synopsys的库:DesignWare library 和标准单元库;DesignWare library 为synopsys的IP库:
当使用到synopsys公司的IP核时,则需要定义此综合库;
目录:/opt/Synopsys/Synplify2015/libraries/syn:
—END—
“超高性价比且优质的UVM实战课程《芯片验证-UVM理论与实战》,通过视频讲解和文档笔记的方式进行理论学习,提供了仿真环境和实例代码进一步深入实战演习,课程言简意赅且通俗易懂,十分清楚的指出重点内容所在,基本没有废话浪费时间。每节课短短几分钟十几分钟,短小精悍,课程文档也写得很清楚,而且可以试听部分课程,推荐给验证方向的同学们~
程序员Marshall,东南大学,5年行业经验,已完成多款芯片验证并成功流片,主要方向为SoC系统级功能验证、DSP核心验证等工作;
付费后可私信数字ICer
小助手:备注课程已报名
付费后,向导师报数字ICer
,可享受100元专属粉丝优惠: