版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)一DC(design compile)的基本使用流程Design Compiler是Synopsys綜合軟件的核心產(chǎn)品。它提供約束驅(qū)動(dòng)時(shí)序最優(yōu)化,并支持眾多的設(shè)計(jì)類型,把設(shè)計(jì)者的HDL描述綜合成與工藝相關(guān)的門級(jí)設(shè)計(jì);它能夠從速度、面積和功耗等方面來(lái)優(yōu)化組合電路和時(shí)序電路設(shè)計(jì),并支持平直或?qū)哟位O(shè)計(jì)。Design Compiler的功能利用Design Compiler,設(shè)計(jì)者可以:l 利用用戶指定的門陣列、FPGA或標(biāo)準(zhǔn)單元庫(kù),生成高速、面積優(yōu)化的ASIC;l 能夠在不同工藝技術(shù)之間轉(zhuǎn)換設(shè)計(jì);l 探索設(shè)計(jì)的權(quán)衡,包括延時(shí)、面積和在不同負(fù)載、溫度、電壓情況的功耗等設(shè)計(jì)約束條件;l 優(yōu)化有限狀
2、態(tài)機(jī)的綜合,包括狀態(tài)的自動(dòng)分配和狀態(tài)的優(yōu)化;l 當(dāng)?shù)谌江h(huán)境仍支持延時(shí)信息和布局布線約束時(shí),可將輸入網(wǎng)表和輸出網(wǎng)表或電路圖整合在一起輸入至第三方環(huán)境;自動(dòng)生成和分割層次化電路圖其完整的流程見圖-1。l圖 11) 建立設(shè)計(jì)環(huán)境1)在工作目錄下創(chuàng)建db(存放DC綜合生成的項(xiàng)目db文件)、lib_syn(存放庫(kù)文件)、log(存放綜合程序運(yùn)行報(bào)告)、netlist(存放綜合網(wǎng)表)、rpt(存放綜合結(jié)果的數(shù)據(jù)報(bào)告)、script(存放腳本文件)文件夾,并將.synpsys_dc文件拷到工作目錄下。2)DC啟動(dòng)時(shí),會(huì)自動(dòng)搜索工作目錄下的.synpsys_dc文件, 根據(jù)文件中的內(nèi)容來(lái)設(shè)定綜合環(huán)境。因此,
3、在啟動(dòng)DC前,可以先修改.synpsys_dc中庫(kù)文件的路徑(也可以在進(jìn)入DC后設(shè)置)。set search_path "$search_path ./ref/db ./scripts" 指明庫(kù)所在的路徑set target_library "sc_max.db" 目標(biāo)庫(kù)set link_library "* sc_max.db" 鏈接庫(kù)set symbol_library "sc.sdb" 特征庫(kù)在上述環(huán)境建立所需的各類庫(kù)中,一般由生產(chǎn)商提供目標(biāo)庫(kù),庫(kù)中的各類cell用于邏輯映射,鏈接庫(kù)則包括一些已經(jīng)做好的設(shè)計(jì)和
4、子模塊,還包括了當(dāng)前設(shè)計(jì)的目標(biāo)庫(kù),門級(jí)網(wǎng)表實(shí)例化元件和單元都來(lái)自于它。2) 讀入設(shè)計(jì)(以下命令都可在DC中的<design_vision-t>里執(zhí)行)1)RTL代碼的讀入Design Compiler使用HDL Compiler將RTL級(jí)設(shè)計(jì)和門級(jí)網(wǎng)表作為設(shè)計(jì)輸入文件讀入。通過analyze和elaborate命令讀入RTL級(jí)設(shè)計(jì),通過read_命令讀入門級(jí)網(wǎng)表。Design Compiler支持所有主要的門級(jí)網(wǎng)表格式。如果你用read_命令讀入RTL設(shè)計(jì),等于實(shí)現(xiàn)了組合3analyze和elaborate命令的功能。2)指明設(shè)計(jì)頂層current_design命令利用這個(gè)命令可設(shè)
5、置任何一個(gè)內(nèi)存中的設(shè)計(jì)為當(dāng)前設(shè)計(jì):dc_shell> current_design ANY_DESIGNCurrent design is ANY_DESIGN3)鏈接庫(kù)文件要完成一個(gè)設(shè)計(jì),它就必須與涉及到的庫(kù)元件和設(shè)計(jì)鏈接。對(duì)于每一個(gè)子設(shè)計(jì),必然有一個(gè)基準(zhǔn),將子設(shè)計(jì)或元件與鏈接庫(kù)相連。這個(gè)過程稱為設(shè)計(jì)鏈接或基準(zhǔn)分解。Design Compiler執(zhí)行下列步驟來(lái)完成基準(zhǔn)分解:(1)決定當(dāng)前設(shè)計(jì)和它的層次引用哪些庫(kù)元件和子設(shè)計(jì);(2)搜索鏈接庫(kù),查找這些引用;(3)將設(shè)計(jì)與查找到的引用鏈接。Design Compiler首先搜索local_link_library參數(shù)定義的庫(kù)和設(shè)計(jì)文件,然
6、后再搜索link_library變量中定義的庫(kù)和設(shè)計(jì)文件。在一個(gè)分層的設(shè)計(jì)中,Design Compiler只考慮頂層設(shè)計(jì)的局部鏈接庫(kù),而忽略與子設(shè)計(jì)相關(guān)的局部鏈接庫(kù)。Design Compiler使用第一找到的基準(zhǔn)。如果它查找到了具有相同名稱的額外的基準(zhǔn),將會(huì)產(chǎn)生一個(gè)警告信息來(lái)識(shí)別這個(gè)忽視的、重復(fù)的基準(zhǔn)。如果Design Compiler沒有找到基準(zhǔn),警告信息建議該基準(zhǔn)不能被分解。圖2.6顯示了在鏈接庫(kù)、單元和基準(zhǔn)之間的鏈接過程,在這個(gè)例子里,Design Compiler在LIBRARY_2工藝庫(kù)里找到了庫(kù)元件NAND2;在設(shè)計(jì)文件里找到了子設(shè)計(jì)MULTIPLIER。圖2.6 分解基準(zhǔn)你可
7、以手動(dòng)地或自動(dòng)地進(jìn)行設(shè)計(jì)的鏈接。(1)手動(dòng)鏈接用link命令來(lái)手動(dòng)地鏈接設(shè)計(jì)。在開始鏈接過程前,link命令移走現(xiàn)有的鏈接。(2)自動(dòng)鏈接下列的dc_shell命令自動(dòng)鏈接設(shè)計(jì): compile create_schematic group check_design report_timing, report_constraints, and other report_* commands compare_design當(dāng)執(zhí)行自動(dòng)鏈接時(shí),它并不移走現(xiàn)有的鏈接。自動(dòng)鏈接過程只工作于未鏈接的元件(4)設(shè)計(jì)唯一實(shí)例化uniquify3) 定義時(shí)序約束、面積約束和綜合環(huán)境約束1) 設(shè)定時(shí)鐘約束creat
8、e_clock -period 10 get_ports clk,其中“get_ports clk”為時(shí)鐘的來(lái)源,“-period 10”為時(shí)鐘的周期。通過時(shí)鐘定義約束了寄存器到寄存器之間的延遲。見圖4。圖 2set_dont_touch_network get_clocks clk一般需要告訴綜合器不要對(duì)時(shí)鐘網(wǎng)絡(luò)進(jìn)行緩沖驅(qū)動(dòng),這一工作將在后續(xù)的版圖布局布線中進(jìn)行。set_clock_uncertainty setup 0.3 get_clocks clkset_clock_uncertainty hold 0.3 get_clocks clk這兩句是設(shè)定時(shí)鐘的建立時(shí)間和保持時(shí)間。set_cl
9、ock_latency -rise 3 get_clocks clkset_clock_latency -fall 3 get_clocks clk這兩句是設(shè)定時(shí)鐘的上升時(shí)間和下降時(shí)間。set_input_delay -max 0.6 -clock clk get_ports “A”set_output_delay -max 0.8 -clock clk get_ports “B”這兩句是設(shè)定特定端口“A”(或“B”)的輸入延時(shí)(或輸出延時(shí))。如圖5。圖 32)設(shè)定面積約束 set_max_area 0,規(guī)定最大面積。3)設(shè)定輸出負(fù)載set_load 5 get_ports OUT1這句定義了
10、輸出負(fù)載為5,當(dāng)不知道輸出負(fù)載的值為多少時(shí),可以用以下命令。 set_load load_of ssc_core_slow/AN2/A get_ports OUT1 或set_load expr load_of ssc_core_slow/AN2/A*2.2 get_ports OUT1前一句是指OUT1的輸出負(fù)載等同于A,后一句是指OUT1的輸出負(fù)載等同于A*2.2。4)設(shè)定模塊的輸入驅(qū)動(dòng)強(qiáng)度信息set_driving_cell -lib_cell ND2 get_ports IN1,綜合工具需要知道輸入的驅(qū)動(dòng)能力來(lái)計(jì)算輸入的變化時(shí)延,見圖6。圖 45)設(shè)定綜合的操作條件 set_opera
11、ting_condition best 或set_operating_condition slow6)設(shè)定布線延時(shí)set_wire_load_model “tc6a120m2”,通過設(shè)定線載模型來(lái)設(shè)定布線延時(shí)。4) 編譯和優(yōu)化選擇編譯策略你可以用來(lái)優(yōu)化層次化設(shè)計(jì)的兩種基本編譯策略被稱為自頂向下和從下上。在自頂向下的策略里,頂層設(shè)計(jì)和它的子設(shè)計(jì)一起進(jìn)行編譯。所有的環(huán)境和約束設(shè)置都根據(jù)頂層設(shè)計(jì)來(lái)定義。因此,它會(huì)自動(dòng)的考慮內(nèi)部模塊的依賴性。但對(duì)于大型設(shè)計(jì),這種方法并不實(shí)用,因?yàn)樗械脑O(shè)計(jì)必須同時(shí)貯存在內(nèi)存里。(1) 在從下到上的策略里,分別對(duì)子設(shè)計(jì)進(jìn)行約束和編譯。在成功編譯后,這些設(shè)計(jì)都被賦予一個(gè)d
12、ont_touch參數(shù),防止在隨后的編譯過程中對(duì)它們進(jìn)行進(jìn)一步的改變。然后這些編譯過的子設(shè)計(jì)組合成更高層次的設(shè)計(jì),再進(jìn)行編譯。編譯過程一直持續(xù)到頂層設(shè)計(jì)被綜合。由于Design Compiler不需要同時(shí)將所有未編譯的子設(shè)計(jì)裝載進(jìn)內(nèi)存,這種方法允許你編譯大型設(shè)計(jì)。然而,在每一個(gè)階段,你必須估計(jì)每個(gè)內(nèi)部模塊的約束,更有代表性的是,你必須不停地編譯、改進(jìn)那些估計(jì),直到所有的子設(shè)計(jì)界面都是穩(wěn)定的。每一個(gè)策略都有其優(yōu)點(diǎn)和缺點(diǎn),這取決于你設(shè)計(jì)的特殊性和設(shè)計(jì)目標(biāo)。你可以選擇任意一個(gè)策略來(lái)進(jìn)行整個(gè)設(shè)計(jì),或者混合使用,對(duì)每一個(gè)子設(shè)計(jì)采用最合適的策略。(2) 優(yōu)化設(shè)計(jì)利用compiler命令啟動(dòng)Design C
13、ompiler的綜合和優(yōu)化進(jìn)程。有幾個(gè)可選的編譯選項(xiàng)。特別的,map_effort選項(xiàng)可以設(shè)置為low、mediu或high。初步編譯,如果你想對(duì)設(shè)計(jì)面積和性能有一個(gè)快速的概念,將map_effort設(shè)置為low;默認(rèn)編譯,如果你在進(jìn)行設(shè)計(jì)開發(fā),將map_effort設(shè)置為medium;當(dāng)在進(jìn)行最后設(shè)計(jì)實(shí)現(xiàn)編譯時(shí),將map_effort設(shè)置為high。通常設(shè)置map_effort為medium。1) 檢查設(shè)計(jì)層次關(guān)系并進(jìn)行單元映射check_designcompile2) 修復(fù)hold時(shí)序并重新編譯 set_fix_hold get_clocks clk compile only_hold_t
14、ime五、導(dǎo)出分析報(bào)告使用report_lib命令來(lái)報(bào)告庫(kù)中的內(nèi)容。report_lib命令能夠報(bào)告下列資料:庫(kù)單位;操作條件;線形負(fù)載模型和單元1、 檢查整體設(shè)計(jì)導(dǎo)出報(bào)告2、 導(dǎo)出設(shè)計(jì)面積報(bào)告 3、 導(dǎo)出設(shè)計(jì)違例報(bào)告4、 導(dǎo)出setup時(shí)序違例的詳細(xì)報(bào)告 5、 導(dǎo)出hold 時(shí)序違例的詳細(xì)報(bào)告 六、導(dǎo)出設(shè)計(jì) write_lib命令能夠以Synopsys數(shù)據(jù)庫(kù)、EDIF和VHDL格式來(lái)保存一個(gè)編譯過的庫(kù)。生成綜合網(wǎng)表和pnr 所需的時(shí)序約束文件七、腳本文件介紹我們可以在一個(gè)腳本文件里保存那些綜合過程中用過的設(shè)計(jì)參數(shù)和約束。腳本文件是用來(lái)管理設(shè)計(jì)參數(shù)和約束的理想工具。設(shè)計(jì)實(shí)例的腳本文件下面這個(gè)例
15、子是一個(gè)簡(jiǎn)單的腳本,執(zhí)行了自頂向下的編譯過程。腳本中包含注釋,標(biāo)明流程中的每一個(gè)步驟。/* specify the libraries */ 指定庫(kù)target_library = my_lib.dbsymbol_library = my_lib.sdblink_library = "*" + target_library/* read the design */ 讀入設(shè)計(jì)文件read -format verilog Adder16.v/* define the design environment */ 設(shè)置設(shè)計(jì)環(huán)境set_operating_conditions WCC
16、OMset_wire_load_model "10x10"set_load 2.2 soutset_load 1.5 coutset_driving_cell -cell FD1 all_inputs()set_drive 0 clk/* set the optimization constraints */ 設(shè)計(jì)最優(yōu)化約束create_clock clk -period 10set_input_delay -max 1.35 -clock clk ain, binset_input_delay -max 3.5 -clock clk cinset_output_delay
17、 -max 2.4 -clock clk coutset_max_area 0/* map and optimize the design */ 映射和優(yōu)化uniquifycompile/* analyze and debug the design */ 分析和除錯(cuò)report_constraint -all_violatorsreport_area/* save the design database */ 保存設(shè)計(jì)數(shù)據(jù)write -format db -hierarchy -output Adder16.db你可以按下列方式之一執(zhí)行這個(gè)腳本:(1)進(jìn)入dc_shell,然后一行行地輸入命令
18、;(2)進(jìn)入dc_shell,利用include命令執(zhí)行腳本文件:dc_shell> include run.scr(3)利用dc_shell的選項(xiàng)-f,在UNIX命令行執(zhí)行腳本文件: % dc_shell -f run.scr實(shí)驗(yàn)二 掃描鏈基于掃描路徑法的可測(cè)性設(shè)計(jì)技術(shù)是可測(cè)性設(shè)計(jì)(DFT)技術(shù)的一個(gè)重要的方法,這種方法能夠從芯片外部設(shè)定電路中各個(gè)觸發(fā)器的狀態(tài),并通過簡(jiǎn)單的掃描鏈的設(shè)計(jì),掃描觀測(cè)觸發(fā)器是否工作在正常狀態(tài),以此來(lái)檢測(cè)電路的正確性。1 、掃描鏈原理數(shù)字電路由大量的組合元件和時(shí)序元件組成,時(shí)序元件具體體現(xiàn)為單個(gè)的觸發(fā)器。系統(tǒng)時(shí)鐘(來(lái)控制各個(gè)觸發(fā)器的數(shù)據(jù)端口相應(yīng)數(shù)據(jù)的輸入輸出。基于掃描路徑法的可測(cè)性設(shè)計(jì)就是將電路中的時(shí)序元件觸發(fā)器替換為相應(yīng)的可掃描的時(shí)序元件掃描觸發(fā)器;然后將上一級(jí)掃描觸發(fā)器的輸出端連接到下一級(jí)的數(shù)據(jù)輸入端,從而形成一個(gè)從輸入到輸出的測(cè)試串行移位寄存器,即掃描鏈。2、實(shí)驗(yàn)步驟1, 修改setup文件,指定路徑到實(shí)驗(yàn)要求的工藝庫(kù)2, Source 1read_design.tcl 讀入設(shè)計(jì)3, 依次讀入read_gate_and_protocol.tcl constraints.t
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度光伏電站光伏組件回收利用合同
- 2025年度廣告禮品行業(yè)品牌戰(zhàn)略規(guī)劃合作合同
- 2025年度旅游產(chǎn)品居間銷售合同范本
- 2025年度合伙購(gòu)買二手車檢測(cè)維修服務(wù)合同
- 2025年國(guó)際貿(mào)易實(shí)務(wù)9合同簽訂與履約跟蹤服務(wù)
- 2025年度股權(quán)投資并購(gòu)中的特殊目的公司股權(quán)轉(zhuǎn)讓合同范本
- 2025年度人工智能輔助醫(yī)療診斷合同協(xié)議書
- 二零二五年度成都美食街特色上灶師父招聘與經(jīng)營(yíng)合作合同2篇
- 2025版暑假工勞務(wù)派遣合同模板3篇
- 2025年度互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)及處理合同范本
- 浙江省臺(tái)州市2021-2022學(xué)年高一上學(xué)期期末質(zhì)量評(píng)估政治試題 含解析
- 中國(guó)高血壓防治指南(2024年修訂版)解讀課件
- 2024年浙江省中考科學(xué)試卷
- 初三科目綜合模擬卷
- 高考志愿咨詢培訓(xùn)課件
- 《海峽兩岸經(jīng)濟(jì)合作框架協(xié)議》全文
- ArcGIS軟件入門培訓(xùn)教程演示文稿
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第十章動(dòng)作技能的指導(dǎo)與示范
- 偶函數(shù)講課課件
- 中醫(yī)治療“濕疹”醫(yī)案72例
- 交通工程公司乳化瀝青儲(chǔ)油罐拆除工程安全協(xié)議書
評(píng)論
0/150
提交評(píng)論