本節主要介紹:
邏輯綜合概述
計算延時模型
綜合目標
綜合流程
綜合基本命令
工藝庫及其綜合庫
邏輯綜合概述
DC工作流程主要分為四步:
synthesis = translation + Constrain + logic optimization + gate mapping
Translation :翻譯功能,主要把RTL級的代碼,首先通過轉換器GTECH將代碼轉換成統一用門級描述的電路(Generic Boolean Gates)或者沒有映射的ddc格式;
Constrain :加載約束,設置時鐘頻率,輸入延遲,輸出延遲,負載,工作電壓等
Logic optimization :邏輯優化, 用統一的門級描述電路對面積和時序進行優化。
Gate mapping :門級映射,dc用工藝庫廠商的工藝庫把電路給映射成基本單元,工藝庫包括不同觸發器、邏輯門等標準單元,不同類型的標準單元驅動能力和延遲均不同;在約束文件的作用下,DC編譯出的網表可以符合特定場景下的功能要求,最終得到一個.ddc文件;
.ddc文件包含許多豐富信息,如映射的門電路信息與網表、寄生參數、.v的網表、SDF標準延時信息、SDC約束、工作條件等信息。
吐出的網表文件,SDF延遲文件,并將其反標,可以用于做后仿。
計算延時模型
線負載延遲模型:根據連線掛載的負載數量進行計算;
拓撲結構模型:通過物理約束(phy)和物理庫(lib),給dc工具提供大概布局,得出延遲,比較精確;
一般流程是,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為例:
.db文件是給DC讀取,對應的.lib文件是供人參考;
Library Compiler工具可將.lib文件轉換為.db文件;
ff最快工藝工藝角,ss最差工藝角,tt典型工藝角(fast、、slow、typical工作模式)
1v62電壓1.62V,125c溫度125攝氏度。
電壓越低速度越慢,溫度越高速度越慢。
打開ss_1v62_125c.lib文件:
版本信息和日期:
/*documentationattributes*/ revision:1.0; date:"ThuOct2716082005"; comment:"Copyright(c)2005ArtisanComponents,Inc.AllRightsReserved.";
單位信息:時間、電流、電壓、電阻、漏電功耗和負載電容單位信息
/*unitattributes*/ time_unit:"1ns"; voltage_unit:"1V"; current_unit:"1mA"; pulling_resistance_unit:"1kohm"; leakage_power_unit:"1pW"; capacitive_load_unit(1.0,pf);
工作環境:溫度、電壓
/*operationconditions*/ 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;
縮放因子:當溫度變化時,根據縮放因子做出調整
/*thresholddefinitions*/ 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;
默認屬性:工藝庫的最大電容、最大扇出、輸入輸出電容、漏電功耗等信息
/*defaultattributes*/ 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"); }
工作電壓: GENERAL、CMOS、TTL
/*padattributes*/ 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:
審核編輯:湯梓紅
-
轉換器
+關注
關注
27文章
8728瀏覽量
147442 -
DC
+關注
關注
9文章
3650瀏覽量
679768 -
觸發器
+關注
關注
14文章
2000瀏覽量
61224 -
命令
+關注
關注
5文章
688瀏覽量
22057
原文標題:綜合概述及工藝庫
文章出處:【微信號:數字芯片設計工程師,微信公眾號:數字芯片設計工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論