DC環(huán)境配置

DC環(huán)境配置文件

根據(jù)文章《Tcl與Design Compiler (四)——DC啟動(dòng)環(huán)境的設(shè)置》嘗試自己配置一個(gè)project的DC綜合啟動(dòng)環(huán)境。

創(chuàng)建project文件夾及其目錄文件夾管理

在桌面創(chuàng)建文件夾CG_Low_power,里面包含6個(gè)子文件夾,分別為doc、fm、pr、rtl、sim、syn。

主要關(guān)注兩個(gè)文件夾,一個(gè)是rtl:放置.v設(shè)計(jì)文件,一個(gè)是syn文件夾:綜合時(shí)的信息。

綜合文件夾syn包含6個(gè)子文件夾:

config是放置DC的一些配置文件,這里的設(shè)計(jì)沒(méi)有任何的配置文件,因此沒(méi)有進(jìn)行設(shè)置。

mapped是存放綜合完成之后的文件的目錄,這些文件是經(jīng)過(guò)綜合庫(kù)映射的。

unmaped是存放綜合時(shí)沒(méi)有經(jīng)過(guò)工藝庫(kù)映射所得到的文件目錄。

report是存放報(bào)告(比如時(shí)序報(bào)告、面積報(bào)告、DC啟動(dòng)報(bào)告等)的目錄。

script是存放約束腳本的目錄。

work就是啟動(dòng)DC的目錄了,在這個(gè)目錄里面,我們要進(jìn)行創(chuàng)建.synopsys_dc.setup文件并且編寫(xiě)這個(gè)文件。

編寫(xiě).synopsys_dc.setup、common_setup.tcldc_setup.tcl配置文件

進(jìn)入/CG_Low_power/syn/work路徑,新建synopsys_dc.setup文件。打開(kāi)terminal,輸入vi .synopsys_dc.setup

cd /home/IC/Desktop/CG_Low_power/syn/work
vi .synopsys_dc.setup

按快捷鍵‘i’,進(jìn)入vim的編輯模式,輸入以下代碼

source ./common_setup.tcl
source ./dc_setup.tcl

按‘Esc’退出編輯模式,進(jìn)入vim的命令模式,再輸入命令:wq,保存并退出

接下來(lái)新建common_setup.tcldc_setup.tcl配置文件,具體可參考Tcl與Design Compiler (三)——DC綜合的流程》和《Tcl與Design Compiler (四)——DC啟動(dòng)環(huán)境的設(shè)置》兩篇文章。

在當(dāng)前terminal,輸入vi common_setup.tcl,輸入下面的代碼

echo "**************************************************************"
echo "***************Start load .synopsys_dc.setup******************"
echo "**************************************************************"

echo "1=================  personal variables  ======================"

echo "2=========synthesis working path ========="
set SYN_ROOT_PATH   /home/IC/Desktop/CG_Low_power

echo "3=========synthesis rtl code path ========"
set RTL_PATH        $SYN_ROOT_PATH/rtl

echo "4======synthesis config files path ======="
set CONFIG_PATH     $SYN_ROOT_PATH/syn/config

echo "5=====synthesis script files path ========"
set SCRIPT_PATH     $SYN_ROOT_PATH/syn/script

echo "6=====synthesis unmapped files path ======"
set UNMAPPED_PATH   $SYN_ROOT_PATH/syn/unmapped

echo "7=====synthesis mapped files path ========"
set MAPPED_PATH     $SYN_ROOT_PATH/syn/mapped

echo "8=====synthesis report files path ========"
set REPORT_PATH     $SYN_ROOT_PATH/syn/report

echo "9=====Define work and DC's path directory===="
set WORK_PATH       /home/IC/Desktop/CG_Low_power/syn/work
set DC_PATH         /opt/Synopsys/Synplify2015
define_design_lib work  -path $WORK_PATH

echo "10====Define the library directory========"
set SYMBOL_PATH      /opt/Foundary_Library/TSMC90/aci/sc-x/symbols/synopsys
set LIB_PATH        /opt/Foundary_Library/TSMC90/aci/sc-x/synopsys


新建dc_setup.tcl配置文件,在當(dāng)前terminal,輸入vi common_setup.tcl,輸入下面的代碼

echo "==================================================="

echo "11==============system variables setings=========="

echo"12========library path automatic search setings======"
set_app_var   search_path    [list . $search_path $LIB_PATH  \
                                $SYMBOL_PATH $RTL_PATH  \
                                $SCRIPT_PATH            \
                                ${DC_PATH}/libraries/syn]

echo "13=========synthetic DC's own library path ========"
set_app_var   synthetic_library   [list dw_foundation.sldb standard.sldb]

echo "14=========synthetic technology library name ======="
set_app_var   target_library      [list slow.db]

echo "15========synthetic technology library path ======="
# Specigy for cell resolution during link
set_app_var   link_library        [list * ${target_library} dw_foundation.sldb]

echo "16=====synthetic technology graphical library path====="
set_app_var   symbol_library      [list tsmc090.sdb]


echo "******************************************************************"
echo "*******************End of load .synopsys_dc.setup*****************"
echo "******************************************************************"

按‘Esc’退出編輯模式,進(jìn)入vim的命令模式,再輸入命令:wq,保存并退出。

啟動(dòng)DC,進(jìn)行基本的命令操作

  1. 使用具有GUI(圖形用戶界面)的方式啟動(dòng)DC
design_vision -topo
  1. 讀入設(shè)計(jì)前的檢查
  • 檢查庫(kù)是否正確設(shè)置

    printvar target_library
    printvar link_library
    printvar search_path
    
  • 檢查邏輯庫(kù)和物理庫(kù)的一致性

    (檢查可能不會(huì)通過(guò),結(jié)果不影響綜合的話,可以忽略)

check_library
  1. 讀入設(shè)計(jì)和查看設(shè)計(jì)
  • 讀入設(shè)計(jì)
read_file -format verilog ../../rtl/DC_EX_gen.v
  • 查看當(dāng)前設(shè)計(jì)
current_design
  • 設(shè)置當(dāng)前設(shè)計(jì), 要綜合哪個(gè)模塊,就把哪個(gè)模塊設(shè)置為當(dāng)前設(shè)計(jì)
current_design DC_EX_gen
  • 鏈接設(shè)計(jì),查看當(dāng)前要綜合的設(shè)計(jì)是否缺少子模塊,返回值是1,說(shuō)明子模塊完整
link
  • 以ddc的格式保存未映射的設(shè)計(jì)(注意需要先創(chuàng)建unmapped文件夾)
write -hierarchy -f ddc -out ../unmapped/DC_EX_gen.ddc
  • 查看內(nèi)存中的設(shè)計(jì)
list_designs
  • 查看當(dāng)前庫(kù)列表和庫(kù)的路徑
list_libs
  1. 約束設(shè)計(jì)
  • 執(zhí)行約束文件(tcl腳本)來(lái)約束設(shè)計(jì)
source ../script/dc.tcl
  1. 進(jìn)行綜合
compile_ultra
  1. 綜合后的檢查(報(bào)告)
report_constraint -all  (查看是否違規(guī))

report_timing (查看時(shí)序報(bào)告)

report_area (查看面積情況)
  1. 保存綜合后的設(shè)計(jì)(注意先創(chuàng)建mapped這個(gè)文件夾)
write -hierarchy -format ddc -output ../mapped/DC_EX_gen.ddc

參考文章

1.Tcl與Design Compiler (三)——DC綜合的流程

2.Tcl與Design Compiler (四)——DC啟動(dòng)環(huán)境的設(shè)置

文章出處 http://www.cnblogs.com/IClearner/ ,作者:IC_learner

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容