DC實驗報告流程.doc_第1頁
DC實驗報告流程.doc_第2頁
DC實驗報告流程.doc_第3頁
DC實驗報告流程.doc_第4頁
DC實驗報告流程.doc_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗一DC(design compile)的基本使用流程Design Compiler是Synopsys綜合軟件的核心產品。它提供約束驅動時序最優(yōu)化,并支持眾多的設計類型,把設計者的HDL描述綜合成與工藝相關的門級設計;它能夠從速度、面積和功耗等方面來優(yōu)化組合電路和時序電路設計,并支持平直或層次化設計。Design Compiler的功能利用Design Compiler,設計者可以:l 利用用戶指定的門陣列、FPGA或標準單元庫,生成高速、面積優(yōu)化的ASIC;l 能夠在不同工藝技術之間轉換設計;l 探索設計的權衡,包括延時、面積和在不同負載、溫度、電壓情況的功耗等設計約束條件;l 優(yōu)化有限狀態(tài)機的綜合,包括狀態(tài)的自動分配和狀態(tài)的優(yōu)化;l 當?shù)谌江h(huán)境仍支持延時信息和布局布線約束時,可將輸入網(wǎng)表和輸出網(wǎng)表或電路圖整合在一起輸入至第三方環(huán)境;自動生成和分割層次化電路圖其完整的流程見圖-1。l圖 11) 建立設計環(huán)境1)在工作目錄下創(chuàng)建db(存放DC綜合生成的項目db文件)、lib_syn(存放庫文件)、log(存放綜合程序運行報告)、netlist(存放綜合網(wǎng)表)、rpt(存放綜合結果的數(shù)據(jù)報告)、script(存放腳本文件)文件夾,并將.synpsys_dc文件拷到工作目錄下。2)DC啟動時,會自動搜索工作目錄下的.synpsys_dc文件, 根據(jù)文件中的內容來設定綜合環(huán)境。因此,在啟動DC前,可以先修改.synpsys_dc中庫文件的路徑(也可以在進入DC后設置)。set search_path $search_path ./ref/db ./scripts 指明庫所在的路徑set target_library sc_max.db 目標庫set link_library * sc_max.db 鏈接庫set symbol_library sc.sdb 特征庫在上述環(huán)境建立所需的各類庫中,一般由生產商提供目標庫,庫中的各類cell用于邏輯映射,鏈接庫則包括一些已經(jīng)做好的設計和子模塊,還包括了當前設計的目標庫,門級網(wǎng)表實例化元件和單元都來自于它。2) 讀入設計(以下命令都可在DC中的里執(zhí)行)1)RTL代碼的讀入Design Compiler使用HDL Compiler將RTL級設計和門級網(wǎng)表作為設計輸入文件讀入。通過analyze和elaborate命令讀入RTL級設計,通過read_file或read命令讀入門級網(wǎng)表。Design Compiler支持所有主要的門級網(wǎng)表格式。如果你用read_file或read命令讀入RTL設計,等于實現(xiàn)了組合3analyze和elaborate命令的功能。2)指明設計頂層current_design命令利用這個命令可設置任何一個內存中的設計為當前設計:dc_shell current_design ANY_DESIGNCurrent design is ANY_DESIGN3)鏈接庫文件要完成一個設計,它就必須與涉及到的庫元件和設計鏈接。對于每一個子設計,必然有一個基準,將子設計或元件與鏈接庫相連。這個過程稱為設計鏈接或基準分解。Design Compiler執(zhí)行下列步驟來完成基準分解:(1)決定當前設計和它的層次引用哪些庫元件和子設計;(2)搜索鏈接庫,查找這些引用;(3)將設計與查找到的引用鏈接。Design Compiler首先搜索local_link_library參數(shù)定義的庫和設計文件,然后再搜索link_library變量中定義的庫和設計文件。在一個分層的設計中,Design Compiler只考慮頂層設計的局部鏈接庫,而忽略與子設計相關的局部鏈接庫。Design Compiler使用第一找到的基準。如果它查找到了具有相同名稱的額外的基準,將會產生一個警告信息來識別這個忽視的、重復的基準。如果Design Compiler沒有找到基準,警告信息建議該基準不能被分解。圖2.6顯示了在鏈接庫、單元和基準之間的鏈接過程,在這個例子里,Design Compiler在LIBRARY_2工藝庫里找到了庫元件NAND2;在設計文件里找到了子設計MULTIPLIER。圖2.6 分解基準你可以手動地或自動地進行設計的鏈接。(1)手動鏈接用link命令來手動地鏈接設計。在開始鏈接過程前,link命令移走現(xiàn)有的鏈接。(2)自動鏈接下列的dc_shell命令自動鏈接設計: compile create_schematic group check_design report_timing, report_constraints, and other report_* commands compare_design當執(zhí)行自動鏈接時,它并不移走現(xiàn)有的鏈接。自動鏈接過程只工作于未鏈接的元件(4)設計唯一實例化uniquify3) 定義時序約束、面積約束和綜合環(huán)境約束1) 設定時鐘約束create_clock -period 10 get_ports clk,其中“get_ports clk”為時鐘的來源,“-period 10”為時鐘的周期。通過時鐘定義約束了寄存器到寄存器之間的延遲。見圖4。圖 2set_dont_touch_network get_clocks clk一般需要告訴綜合器不要對時鐘網(wǎng)絡進行緩沖驅動,這一工作將在后續(xù)的版圖布局布線中進行。set_clock_uncertainty setup 0.3 get_clocks clkset_clock_uncertainty hold 0.3 get_clocks clk這兩句是設定時鐘的建立時間和保持時間。set_clock_latency -rise 3 get_clocks clkset_clock_latency -fall 3 get_clocks clk這兩句是設定時鐘的上升時間和下降時間。set_input_delay -max 0.6 -clock clk get_ports “A”set_output_delay -max 0.8 -clock clk get_ports “B”這兩句是設定特定端口“A”(或“B”)的輸入延時(或輸出延時)。如圖5。圖 32)設定面積約束 set_max_area 0,規(guī)定最大面積。3)設定輸出負載set_load 5 get_ports OUT1這句定義了輸出負載為5,當不知道輸出負載的值為多少時,可以用以下命令。 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的輸出負載等同于A,后一句是指OUT1的輸出負載等同于A*2.2。4)設定模塊的輸入驅動強度信息set_driving_cell -lib_cell ND2 get_ports IN1,綜合工具需要知道輸入的驅動能力來計算輸入的變化時延,見圖6。圖 45)設定綜合的操作條件 set_operating_condition best 或set_operating_condition slow6)設定布線延時set_wire_load_model “tc6a120m2”,通過設定線載模型來設定布線延時。4) 編譯和優(yōu)化選擇編譯策略你可以用來優(yōu)化層次化設計的兩種基本編譯策略被稱為自頂向下和從下上。在自頂向下的策略里,頂層設計和它的子設計一起進行編譯。所有的環(huán)境和約束設置都根據(jù)頂層設計來定義。因此,它會自動的考慮內部模塊的依賴性。但對于大型設計,這種方法并不實用,因為所有的設計必須同時貯存在內存里。(1) 在從下到上的策略里,分別對子設計進行約束和編譯。在成功編譯后,這些設計都被賦予一個dont_touch參數(shù),防止在隨后的編譯過程中對它們進行進一步的改變。然后這些編譯過的子設計組合成更高層次的設計,再進行編譯。編譯過程一直持續(xù)到頂層設計被綜合。由于Design Compiler不需要同時將所有未編譯的子設計裝載進內存,這種方法允許你編譯大型設計。然而,在每一個階段,你必須估計每個內部模塊的約束,更有代表性的是,你必須不停地編譯、改進那些估計,直到所有的子設計界面都是穩(wěn)定的。每一個策略都有其優(yōu)點和缺點,這取決于你設計的特殊性和設計目標。你可以選擇任意一個策略來進行整個設計,或者混合使用,對每一個子設計采用最合適的策略。(2) 優(yōu)化設計利用compiler命令啟動Design Compiler的綜合和優(yōu)化進程。有幾個可選的編譯選項。特別的,map_effort選項可以設置為low、mediu或high。初步編譯,如果你想對設計面積和性能有一個快速的概念,將map_effort設置為low;默認編譯,如果你在進行設計開發(fā),將map_effort設置為medium;當在進行最后設計實現(xiàn)編譯時,將map_effort設置為high。通常設置map_effort為medium。1) 檢查設計層次關系并進行單元映射check_designcompile2) 修復hold時序并重新編譯 set_fix_hold get_clocks clk compile only_hold_time五、導出分析報告使用report_lib命令來報告庫中的內容。report_lib命令能夠報告下列資料:庫單位;操作條件;線形負載模型和單元1、 檢查整體設計導出報告2、 導出設計面積報告 3、 導出設計違例報告4、 導出setup時序違例的詳細報告 5、 導出hold 時序違例的詳細報告 六、導出設計 write_lib命令能夠以Synopsys數(shù)據(jù)庫、EDIF和VHDL格式來保存一個編譯過的庫。生成綜合網(wǎng)表和pnr 所需的時序約束文件七、腳本文件介紹我們可以在一個腳本文件里保存那些綜合過程中用過的設計參數(shù)和約束。腳本文件是用來管理設計參數(shù)和約束的理想工具。設計實例的腳本文件下面這個例子是一個簡單的腳本,執(zhí)行了自頂向下的編譯過程。腳本中包含注釋,標明流程中的每一個步驟。/* specify the libraries */ 指定庫target_library = my_lib.dbsymbol_library = my_lib.sdblink_library = * + target_library/* read the design */ 讀入設計文件read -format verilog Adder16.v/* define the design environment */ 設置設計環(huán)境set_operating_conditions WCCOMset_wire_load_model 10x10set_load 2.2 soutset_load 1.5 coutset_driving_cell -cell FD1 all_inputs()set_drive 0 clk/* set the optimization constraints */ 設計最優(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 -max 2.4 -clock clk coutset_max_area 0/* map and optimize the design */ 映射和優(yōu)化uniquifycompile/* analyze and debug the design */ 分析和除錯report_constraint -all_violatorsreport_area/* save the design database */ 保存設計數(shù)據(jù)write -format db -hierarchy -output Adder16.db你可以按下列方式之一執(zhí)行這個腳本:(1)進入dc_shell,然后一行行地輸入命令;(2)進入dc_shell,利用include命令執(zhí)行腳本文件:dc_shell include run.scr(3)利用dc_shell的選項-f,在UNIX命令行執(zhí)行腳本文件: % dc_shell -f run.scr實驗二 掃描鏈基于掃描路徑法的可測性設計技術是可測性設計(DFT)技術的一個重要的方法,這種方法能夠從芯片外部設定電路中各個觸發(fā)器的狀態(tài),并通過簡單的掃描鏈的設計,掃描觀測觸發(fā)器是否工作在正常狀態(tài),以此來檢測電路的正確性。1 、掃描鏈原理數(shù)字電路由大量的組合元件和時序元件組成,時序元件具體體現(xiàn)為單個的觸發(fā)器。系統(tǒng)時鐘(來控制各個觸發(fā)器的數(shù)據(jù)端口相應數(shù)據(jù)的輸入輸出?;趻呙杪窂椒ǖ目蓽y性設計就是將電路中的時序元件觸發(fā)器替換為相應的可掃描的時序元件掃描觸發(fā)器;然后將上一級掃描觸發(fā)器的輸出端連接到下一級的數(shù)據(jù)輸入端,從而形成一個從輸入到輸出的測試串行移位

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論