SynopsysDC中文培訓(xùn)實(shí)驗(yàn)_第1頁
SynopsysDC中文培訓(xùn)實(shí)驗(yàn)_第2頁
SynopsysDC中文培訓(xùn)實(shí)驗(yàn)_第3頁
SynopsysDC中文培訓(xùn)實(shí)驗(yàn)_第4頁
SynopsysDC中文培訓(xùn)實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、SYNOPSYSLab1Setup and Synthesis Flow縮略詞:Design Compile =DC;備注:UNIX%代表在linux終端下進(jìn)行操作,其余的代表在DC下進(jìn)行DC命令輸入前言: DC(Design Compiler)是Synopsys的logical synthesis優(yōu)化工具,它根據(jù)design description和constraints自動(dòng)綜合出一個(gè)優(yōu)化了的門級(jí)電路。它可以接受多種輸入格式,如硬件描述語言、原理圖和netlist等,并產(chǎn)生多種性能報(bào)告,在縮短設(shè)計(jì)時(shí)間的同時(shí)提高讀者設(shè)計(jì)性能?;镜木C合流程:該基本綜合流程包含下列步驟:1. 發(fā)展HDL文件輸入

2、Design Compiler的設(shè)計(jì)文件通常都是用諸如VHDL和Verilog HDL等硬件描述語言編寫。這些設(shè)計(jì)描述必須小心地編寫以獲得可能的最好的綜合結(jié)果。在編寫HDL代碼時(shí),你需要考慮設(shè)計(jì)數(shù)據(jù)的管理、設(shè)計(jì)劃分和HDL編碼風(fēng)格。劃分和編碼風(fēng)格直接影響綜合和優(yōu)化過程。雖然流程中包含該步驟,但實(shí)際上它并不是Design Compiler的一個(gè)步驟。你不能用Design Compiler工具來編寫HDL文件。2. 指定庫通過link_,target_,symbol_,和synthetic_library命令為Design Compiler指定鏈接庫、對(duì)象庫、符合庫和綜合庫。鏈接庫和對(duì)象庫是工藝庫

3、,詳細(xì)說明了半導(dǎo)體廠家提供的單元和相關(guān)信息,象單元名稱、單元管腳名稱、管腳負(fù)載、延遲、設(shè)計(jì)規(guī)則和操作環(huán)境等。符號(hào)庫定義了設(shè)計(jì)電路圖所調(diào)用的符號(hào)。如果你想應(yīng)用Design Analyzer圖形用戶界面,就需要這個(gè)庫。另外,你必須通過synthetic_library命令來指定任何一種特殊的有許可的設(shè)計(jì)工具庫(你不需要指定標(biāo)準(zhǔn)設(shè)計(jì)工具庫)。3. 讀入設(shè)計(jì)Design Compiler使用HDL Compiler將RTL級(jí)設(shè)計(jì)和門級(jí)網(wǎng)表作為設(shè)計(jì)輸入文件讀入。通過analyze和elaborate命令讀入RTL級(jí)設(shè)計(jì),通過read_file或read命令讀入門級(jí)網(wǎng)表。Design Compiler支持

4、所有主要的門級(jí)網(wǎng)表格式。如果你用read_file或read命令讀入RTL設(shè)計(jì),等于實(shí)現(xiàn)了組合3analyze和elaborate命令的功能。4. 定義設(shè)計(jì)環(huán)境Design Compiler要求設(shè)計(jì)者模擬出待綜合設(shè)計(jì)的環(huán)境。這個(gè)模型由外部的操作環(huán)境(制造流程、溫度和電壓)、負(fù)載、驅(qū)動(dòng)、扇出、線負(fù)載模型等組成。它直接影響到設(shè)計(jì)綜合和優(yōu)化的結(jié)果。利用圖2-4中該步驟下所列的一系列命令來定義設(shè)計(jì)環(huán)境。5. 設(shè)置設(shè)計(jì)約束Design Compiler利用設(shè)計(jì)規(guī)則和最優(yōu)化約束來控制設(shè)計(jì)的綜合。廠家工藝庫提供設(shè)計(jì)規(guī)則以保證產(chǎn)品符合規(guī)格、工作正常。典型的設(shè)計(jì)規(guī)則約束轉(zhuǎn)換時(shí)間(set_max_transiti

5、on)、扇出負(fù)載(set_max_fanout)和電容(set_max_capacitance)。這些規(guī)則指定了要求的工藝,你不能違反。當(dāng)然,你可以設(shè)置更嚴(yán)格的約束。最優(yōu)化約束則定義了時(shí)序(時(shí)鐘、時(shí)鐘錯(cuò)位、輸入延時(shí)和輸出延時(shí))和面積(最大面積)等設(shè)計(jì)目標(biāo)。在最優(yōu)化過程中,Design Compiler試圖去滿足這些目標(biāo),但不會(huì)去違反任何設(shè)計(jì)規(guī)則。利用圖2-4中該步驟下所列的一系列命令來定義這些約束。為能夠正確地優(yōu)化設(shè)計(jì),必須設(shè)置更接近現(xiàn)實(shí)情況的約束。你選擇的編譯策略將影響設(shè)計(jì)約束的設(shè)置。流程中的步驟5和步驟6是相互依賴的。6. 選擇編譯策略你可以用來優(yōu)化層次化設(shè)計(jì)的兩種基本編譯策略被稱為自頂向

6、下和從下上。在自頂向下的策略里,頂層設(shè)計(jì)和它的子設(shè)計(jì)一起進(jìn)行編譯。所有的環(huán)境和約束設(shè)置都根據(jù)頂層設(shè)計(jì)來定義。因此,它會(huì)自動(dòng)的考慮內(nèi)部模塊的依賴性。但對(duì)于大型設(shè)計(jì),這種方法并不實(shí)用,因?yàn)樗械脑O(shè)計(jì)必須同時(shí)貯存在內(nèi)存里。在從下到上的策略里,分別對(duì)子設(shè)計(jì)進(jìn)行約束和編譯。在成功編譯后,這些設(shè)計(jì)都被賦予一個(gè)dont_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)

7、部模塊的約束,更有代表性的是,你必須不停地編譯、改進(jìn)那些估計(jì),直到所有的子設(shè)計(jì)界面都是穩(wěn)定的。每一個(gè)策略都有其優(yōu)點(diǎn)和缺點(diǎn),這取決于你設(shè)計(jì)的特殊性和設(shè)計(jì)目標(biāo)。你可以選擇任意一個(gè)策略來進(jìn)行整個(gè)設(shè)計(jì),或者混合使用,對(duì)每一個(gè)子設(shè)計(jì)采用最合適的策略。7. 優(yōu)化設(shè)計(jì)利用compiler命令啟動(dòng)Design Compiler的綜合和優(yōu)化進(jìn)程。有幾個(gè)可選的編譯選項(xiàng)。初步編譯,如果你想對(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_ef

8、fort為medium。8. 分析和解決設(shè)計(jì)問題通常Design Compiler根據(jù)設(shè)計(jì)綜合和優(yōu)化的結(jié)果生成眾多的報(bào)告。你根據(jù)諸如面積、約束和時(shí)序報(bào)告來分析和解決任何設(shè)計(jì)問題,或者改進(jìn)綜合結(jié)果。你可以用check命令來檢查綜合過的設(shè)計(jì),也可用其他的check_命令。9. 保存設(shè)計(jì)數(shù)據(jù)利用write命令來保存綜合過的設(shè)計(jì)。Design Compiler在退出時(shí)并不自動(dòng)保存設(shè)計(jì)。你也可以在一個(gè)腳本文件里保存那些綜合過程中用過的設(shè)計(jì)參數(shù)和約束。腳本文件是用來管理設(shè)計(jì)參數(shù)和約束的理想工具。技術(shù)相關(guān)幫助:Linux下:vi filename :打開或新建文件;例如:vi m.tcl (m.tcl若存在

9、,則查看,反之為創(chuàng)建)創(chuàng)建/查看一個(gè)名為m的腳本文件。備注:按下鍵盤i時(shí)進(jìn)入編輯插入狀態(tài);退出時(shí)不保存,按下Esc并輸入“:q”;若退出時(shí)保存,按下Esc并輸入“:wq”,強(qiáng)制退出加上!vi -r filename :在上次正用vi編輯時(shí)發(fā)生系統(tǒng)崩潰,恢復(fù)filename mkdir filename :新建一個(gè)文件夾。rmdir filename :刪除一個(gè)文件夾。rm filename :刪除一個(gè)文件或路徑目錄或文件夾;rm r filename :刪除文件夾所有的東西,不可恢復(fù)。DC下:在命令行中,用man+ DC命令??梢缘玫竭@個(gè)DC命令的介紹。溫馨提示:在做實(shí)驗(yàn)前,請(qǐng)務(wù)必理解對(duì)應(yīng)的章

10、節(jié)!一、 實(shí)驗(yàn)?zāi)繕?biāo):1. 學(xué)會(huì)如何查看隱藏的文件,以及了解DC剛啟動(dòng)需要.synopsys_dc.setup文件來初始化信息。2. 懂得如何修改common_setup.tcl腳本里面的命令來配置DC相關(guān)的信息。3. 學(xué)會(huì)如何查看原理圖和符號(hào)圖。4. 使用dc_shell topo 模式或 design_vision topo 模式來啟動(dòng)DC工具二、 實(shí)驗(yàn)流程:1. 檢查.synopsys_dc.setup文件是否配置好DC啟動(dòng)時(shí)的相關(guān)信息2. 檢查common_setup.tcl和dc_serup.tcl這兩個(gè)文件,必要時(shí)修改common_setup.tcl文件3. 使用Design Vis

11、ion Topo模式來啟動(dòng)DC,即是 design_vision topo4. 讀入 rtl/TOP.v(或.vhd)文件,并查看符號(hào)圖和原理圖5. 用scripts/TOP.con的文件來對(duì)整個(gè)設(shè)計(jì)進(jìn)行約束6. 用compile_ultra 命令來對(duì)這個(gè)設(shè)計(jì)文件進(jìn)行綜合7. 生成一個(gè)timing報(bào)告和area報(bào)告,進(jìn)行分析8. 保存綜合后的設(shè)計(jì)文件到mapped/TOP.ddc并退出DC9. 換另外一種模式來啟動(dòng)DC GUI,即是dc_shell topo ;start_gui三、 實(shí)驗(yàn)步驟:Task1: Examine and modify the setup file1. 進(jìn)入實(shí)驗(yàn)文件l

12、ab1的目錄下,查看.synopsys_dc.setup 、common_setup.tcl和dc_setup.tcl,這三個(gè)文件。#/#語句分析開始#/#/# 1. cd lab1 ;進(jìn)入lab1目錄下#2. ls -al .synopsys* ;查看所有前面以”.synopsys”開頭的關(guān)鍵字的文件,-al代表查看所有的隱藏文件;#3. ls -al *setup* ;查看所有只要包含有關(guān)鍵字”setup”的文件,-al代表查看所有的隱藏文件;#/#語句分析結(jié)束#/#/#2. 請(qǐng)用一個(gè)文本編輯器(如vi)來修改commoc_setup.tcl里面的內(nèi)容,請(qǐng)結(jié)合上面的相關(guān)技術(shù)幫組和下表任務(wù)表

13、來完成該任務(wù)。Task2: Invoke Design Vision1. 進(jìn)入lab1的目錄下,以GUI topo模式來啟動(dòng)DC工具,使其更具可視化。 #/#語句分析開始#/#/# 1. pwd ;查看當(dāng)前路徑。這樣可以知道是否已經(jīng)進(jìn)入lab1的目錄下#2. design_vision -topo ;以可視化界面-topo模式來啟動(dòng)DC工具,你可以看到一些已讀入的信息,包括上一個(gè)步驟的配置信息,如搜索路徑,目標(biāo)庫,鏈接庫等等;這個(gè)因?yàn)楫?dāng)你啟動(dòng)DC工具時(shí),會(huì)自動(dòng)讀取”.synopsys_dc.setup”這個(gè)配置文件的,這個(gè)文件是隱藏在lab1目錄下的,這就是我們?yōu)槭裁匆趌ab1目錄下啟動(dòng)DC

14、工具。當(dāng)然,你也可以不再在這個(gè)目錄下啟動(dòng)DC,當(dāng)你啟動(dòng)DC后,可以讀進(jìn)配置信息文件的,例如“source .synopsys_dc.setup”#/#語句分析結(jié)束#/#/#2. 在DC的GUI界面視圖下,你將會(huì)看到以下的信息。3. 點(diǎn)擊File-Setup,可以查看一些信息,請(qǐng)回答以下的問題。問題一:請(qǐng)問這個(gè)工程的的目標(biāo)庫是什么?問題二:請(qǐng)問這個(gè)工程的的鏈接庫是什么?問題三:請(qǐng)問這個(gè)工程的的符號(hào)庫是什么?4. 從File-Setup 選擇圖標(biāo) 來使這個(gè)搜索路徑Search path選擇正確,當(dāng)你點(diǎn)擊進(jìn)去的時(shí)候,你會(huì)看到以下搜索路徑方向的列表,同時(shí)你可以修改搜索路徑。這里是默認(rèn)的搜索路徑方向。問

15、題4:請(qǐng)問這個(gè)工程的搜索路徑有哪些?5. 返回到Design Vision界面,輸入以下命令來驗(yàn)證DC的一些庫、搜索路徑是否設(shè)置正確。6. 檢查邏輯庫與物理庫之間是否想匹配:Notice:從這個(gè)報(bào)告可知,這里有4個(gè)cell是沒有邏輯庫的,分別是“feedthrough”和“tap”cells,因?yàn)樗鼈兪窃谖锢戆鎴D中反映的,而不是在邏輯設(shè)計(jì)中反映,所以這個(gè)警告是可以忽略的。7. 檢查TLUPus和 Technology 文件之間是否相匹配:Notice: 你應(yīng)該能看到4個(gè)“pass!”Task3: Read the Design into DC Memory1. 點(diǎn)擊Read.的按鈕在左上角(o

16、r File-Read),選中rtl文件夾里的Top.v或TOP.vhd。Notice:在窗口的左上角,你可以看到“Logical Hierarchy”的列表框,該表框的頂頭是top-level 設(shè)計(jì)名,除了頂層,還包括底層的設(shè)計(jì)模塊單元。例如 I_FSM , I_DECODE , and I_COUNT 。2. 選中TOP(用鼠標(biāo)左鍵點(diǎn)擊選中它),在底下的日志區(qū)你能看到這個(gè)設(shè)計(jì)為:TOP。這是確保你的當(dāng)前設(shè)計(jì)為頂層水平的設(shè)計(jì)。3. Select File-Link Design-OK去連接這個(gè)設(shè)計(jì)和解決實(shí)例化引用的。簡單來說如果實(shí)例化的就是一個(gè)與非門,DC就從target library中找

17、到,如果例化的是一個(gè)fifo,DC就從fifo的庫中找到,如果例化的是一個(gè)模塊,DC就從內(nèi)存中找到,因?yàn)檫@個(gè)模塊的代碼在編譯過程中已經(jīng)讀進(jìn)內(nèi)存中去了4. 保存設(shè)計(jì)文件,格式為“.dcc”。#/#語句分析開始#/#/#該條語句的目的是把頂層文件保存,-hier 指的是以分層的模式保存 f 指的是file的意思 dcc 指的是保存的格式 out 指的是輸出 unmapped/TOP.ddc 指的是在路徑unmapped下保存TOP.ddc。#/#語句分析結(jié)束#/#/#5. 查看設(shè)計(jì)文件清單和相關(guān)的庫文件清單#/#語句分析開始#/#/#該條語句的目的是把保存的所有設(shè)計(jì)文件和相關(guān)的庫文件一一列出來#/

18、#語句分析結(jié)束#/#/#Task4: Constrain TOP with a Script file1. 打開頂層的符號(hào)視圖(用鼠標(biāo)選中TOP,然后點(diǎn)擊 Create Symbol View),在視圖中你能清晰看到各個(gè)端口的名。2. 把約束文件讀進(jìn)來,進(jìn)行對(duì)TOP設(shè)計(jì)文件的約束。Note: 如果發(fā)現(xiàn)讀進(jìn)“source TOP.con”這條命令時(shí),出現(xiàn)錯(cuò)誤信息。請(qǐng)你注意當(dāng)前路徑是否包含TOP.con,也就是說要確保當(dāng)前路徑的方向下包含TOP.con約束文件。例如也可以這樣解決“source scripts/TOP.con”,這里加上scripts的意思是該TOP.con的約束文件在script

19、s的路徑下。Task5: Compile or Map to Vendor-Specific Gates1. 對(duì)設(shè)計(jì)進(jìn)行綜合或映射到供應(yīng)商特定的門上,即是把RTL級(jí)綜合成門級(jí)。 #當(dāng)對(duì)設(shè)計(jì)文件進(jìn)行綜合的時(shí)候,你可以看到底下的日志區(qū)的信息,包括不同優(yōu)化綜合階段的的表。例如“AREA”指示這個(gè)設(shè)計(jì)的大?。弧癢ORST NEG SLACK”指示有多少的關(guān)鍵或糟糕的路徑在設(shè)計(jì)中是違反的;“TOTAL NEG SLACK”是所有路徑延時(shí)違反的總和等等#Task6: Generate Reports and Analyze Timing 1. 轉(zhuǎn)到頂層的符號(hào)視圖 Symbol View 2. 在desig

20、n_vision topo的命令行里輸入以下命令Notice:”rc”是一個(gè)引用別名,它的定義在.synopsys_dc.setup 的文件里,它執(zhí)行的是report_constrain all_violators ; 這個(gè)報(bào)告列出所有違反約束的事務(wù),你能看見“max_delay/setup”的違反同理: Notice:rt=report_timing,表示時(shí)序報(bào)告 當(dāng)你輸入以上這條命令時(shí),請(qǐng)問 Slack (VIOLATED)= #以上這個(gè)值為負(fù)數(shù),即表示違法時(shí)序約束,在這個(gè)實(shí)驗(yàn)?zāi)悴挥美聿鞘欠襁`反時(shí)序約束,接下來的實(shí)驗(yàn)會(huì)為你講解的#3. 生成一個(gè)面積報(bào)告,ra,然后回答以下的問題Total

21、cell area:Task7: Save the Optimized Design 1. 將綜合后的設(shè)計(jì)數(shù)據(jù)保存起來2. 返回到TOP的符號(hào)視圖3. 選擇菜單File-Save As4. 雙擊在mapped的路徑5. 為文件命名“TOP.ddc”6. 點(diǎn)擊保存。7. 保存輸入的命令歷史,通過點(diǎn)擊Save Contents As.Task8: Remove Designs and Exit Design Vision 1. 清空所有的設(shè)計(jì)# fr=”remove_design -designs”2. 顯示出當(dāng)前所有的命令歷史記錄# h=”history”3. 退出軟件4. 另一種方式來啟動(dòng)dc

22、的圖形界面 Notice:在這個(gè)步驟,你不用理睬以下這個(gè)錯(cuò)誤信息“Library TOP_LIB already exists”5. 如果你想回到dc_shell模式時(shí)可以File-Close GUI6. 退出軟件。 Task9:Using analyze and elaborate to read in an HDL design1. 進(jìn)入到lab1的當(dāng)前目錄下2. 在dc_shell模式下,把verilog或VHDL讀進(jìn)來3. 在dc_shell模式下,另一種方式把verilog或VHDL讀進(jìn)來 4. 讀取設(shè)計(jì)文件用 “-vcs”參數(shù) Notice : “-vcs”不能用于VHDL的設(shè)計(jì)A

23、nswers 問題答案問題1答案: * sc_max.db問題2答案: sc_max.db問題3答案: sc.sdb問題4答案: ./ref/libs/mw_lib/sc/LM ./rtl ./scriptsLab2Design and Library ObjectsThere is NO LAB for this unit!Lab3Timing Constraints一、 實(shí)驗(yàn)?zāi)康模?. 確定用于目標(biāo)庫的時(shí)間單位2. 基于提供的原理圖或規(guī)格說明創(chuàng)建一個(gè)新的DC時(shí)序約束的腳本3. 修改先前的語法約束去適應(yīng)一個(gè)符合要求的設(shè)計(jì)4. 為設(shè)計(jì)提供一個(gè)約束5. 驗(yàn)證所施加的約束的完整性和正確性二、 實(shí)驗(yàn)

24、流程:1. 得到一個(gè)庫的報(bào)告去決定使用哪個(gè)單元2. 創(chuàng)建一個(gè)新的時(shí)序報(bào)告文件基于設(shè)計(jì)原理圖或規(guī)格說明3. 對(duì)設(shè)計(jì)文件進(jìn)行約束,驗(yàn)證所施加的約束的完整性和正確性三、 實(shí)驗(yàn)步驟:Task1. Determine the Target Librarys Time Unit1. 打開終端,進(jìn)入lab3文件夾的目錄下2. 用一個(gè)文本編輯器去查看common_setup.tcl文件,然后回答以下的問題問題一:目標(biāo)庫文件名稱是什么?3. 以dc_shell的模式啟動(dòng)DC工具4. 一般地,當(dāng)一個(gè)設(shè)計(jì)(read_verilog,read_vhdl,read_ddc,or analyze/elaborate)被讀

25、進(jìn)來的時(shí)候,目標(biāo)庫和連接庫是要事先被讀進(jìn)DC內(nèi)存里面的。Notice:你不要理睬關(guān)于“Overwritint design file ./sc_max.db”5. 確定該庫文件相關(guān)的庫名稱問題二:目標(biāo)庫名?6. 生成一個(gè)庫的報(bào)告7. 退出Design Compiler 8. 用一個(gè)文本編輯器去查看lib.rpt的文件,并回答以下的問題 問題三:這個(gè)目標(biāo)庫的的Time Unit 是什么? Task2. Create a Timing Constraints File1. 進(jìn)入scripts的路徑下,用一個(gè)文本編輯器去創(chuàng)建一個(gè)新的文件 MY_DESIGN.con(即 vi MY_DESIGN.co

26、n)問題四: 推薦的第一個(gè)命令的任何約束文件是什么?2. 用Design Specification and Design Schematic ,即是上面頁的表格,再選擇合適的時(shí)間單位,寫一個(gè)新的約束文件MY_DESIGN.con(即在MY_DESIGN.con上添加內(nèi)容)Notice:當(dāng)你沒有頭緒的時(shí)候,你可以參考答案!答案是一個(gè)隱藏文件的,在.solutions/MY_DESIGN.con。Notice:可以使用DCs help 命令,man+命令,可以了解到DC命令的語法以及其意義和作用,也可以創(chuàng)建一個(gè)UNIX的引用。例如 3. 完成編寫約束文件后,需要檢查其語法是否正確Notice:d

27、cprocheck 是一個(gè)可執(zhí)行的Design Compile語法檢查的實(shí)體,它決定是否啟動(dòng)DC。Task3. Apply Constrains and Validate1. 在啟動(dòng)DC前,進(jìn)入lab3目錄下,你能發(fā)現(xiàn)一個(gè)名稱為“MY_DESIGN_LIB”的文件,這個(gè)文件是在任務(wù)1啟動(dòng)DC的時(shí)候被創(chuàng)建的。、2. 在lab3的路徑下,現(xiàn)在啟動(dòng)dc_shell,并回答以下的問題問題5:為什么沒有獲得一個(gè)錯(cuò)誤關(guān)于創(chuàng)建一個(gè)新的MW design library(這個(gè)庫文件在之前已經(jīng)存在了)3. 將設(shè)計(jì)文件讀進(jìn)DC去,Read,link and check the design rtl /MY_DES

28、IG .v4. 正確地讀入約束文件 5. 檢查有沒有遺漏或矛盾的關(guān)鍵約束,例如Notice:存在一個(gè)警告“there are 21 input ports that only have partial input delay specified” 這個(gè)警告不用理睬。6. 修改時(shí)鐘和端口約束,例如 7. 寫出所施加的約束,例如8. 確保你的約束文件是完整無誤的,通過與提供的0答案對(duì)比9. 如果“diff”這個(gè)命令不能被識(shí)別,請(qǐng)用編輯器查看對(duì)比這個(gè)“.solutions/MY_DESIGN.con”來檢查這個(gè)約束報(bào)告是否正確。10. 保存設(shè)計(jì)并退出問題答案:問題一: sc_max.db問題二:cb

29、13fs120_tsmc_max問題三:1ns問題四: reset_design問題五:In the dc_setup.tcl file there is an “if” statement which checks for the existence of a MW design library ,and skips the create_mw_lib command if it already exists. If the script were to execute the create_mw_lib command and the library already existed ,yo

30、u would get the following message :“Error:Library MY_DESIGN_LIBalready existsLab4Environmental Attributes一、實(shí)驗(yàn)?zāi)康模?.自定義一個(gè)DC環(huán)境屬性基于提供的原理圖和規(guī)格說明2.對(duì)設(shè)計(jì)進(jìn)行環(huán)境屬性的約束3.修改驗(yàn)證屬性二、實(shí)驗(yàn)流程:參照實(shí)驗(yàn)三的每個(gè)步驟Save the design in the unmapped directory and exit Design CompilerLook at .soulutions/MY_DESIGN.con and correct as neededWr

31、ite out (write_script)a constraints file and diffagainst .solutions/MY_DESIGN.wscrRead rtl/MY_DESIGN.vApply and verify the constraints and sttributes ; correct as needed: source;repor_port -v report_designInvoke Design Compiler from the lab4 directoryAdd the environmental attributes from the Specifi

32、cation on page 4-4 to MY_DESIGN.conCheck and correct the syntax: help;man;UNIX% dcprocheckFrom the lab3/lib.rpt file write down the library Capacitive Load Unit:Copy and rename the lab3/scripts/MY_DESIGN.con constraints file to lab4/scripts/MY_DESIGN.con三、設(shè)計(jì)規(guī)格說明:Input Ports(drivers)1.Specify a drive

33、 on all inputs,except clk and Cin*,using the buffer bufbd1 in the library2.The Cin* ports are chip-level inputs and have a 120ps maximum input transitionOutput Ports (loads)1.All outputs,except Cout ,drive a maximun load equivalent to 2 times the capacitiance of the Ipin of the cell bufbd7(see Note

34、below)2.The Cout port drives a maximun load of 25fFNotice:當(dāng)你運(yùn)行dcprocheck的時(shí)候,你可能會(huì)得到一個(gè)語法上的警告。你可以不用理睬,use curly braces to avoid double substitution expr 2* load_of lib/cell/pin為了避免該警告的產(chǎn)生,可以鍵入:Expr 2*load_of lib/cell/pinLab5Synthesis Techniques一、 實(shí)驗(yàn)?zāi)康模?. 使用合適的綜合技術(shù),以滿足所要求的約束2. 在綜合之前,學(xué)會(huì)修改合適的指令參數(shù)和變量3. 學(xué)會(huì)分析

35、門級(jí)水平的網(wǎng)表(確保滿足所有的約束條件,同時(shí)采用各種優(yōu)化綜合技術(shù))4. 學(xué)會(huì)求助man的指令應(yīng)用,使其能過分析每條DC命令的語句5. 使用LayoutWindow去修改物理約束(floorplan)和查看單元器件6. 執(zhí)行正式的形式驗(yàn)證通過使用Formality工具二、 綜合規(guī)格說明:三、 實(shí)驗(yàn)步驟: Task1. Synthesis of RTL design containing pipelines1. 使用提供的num_cores.sh的腳本,決定在你的計(jì)算機(jī)上有多少個(gè)核可用 問題一,請(qǐng)問你的計(jì)算機(jī)是多少核的?2. 對(duì)照綜合規(guī)格說明表,回答問題: 問題二,請(qǐng)問有多少個(gè)核是用來綜合的。3.

36、 進(jìn)入lab5路徑下,啟動(dòng)DC(dc_shell -topo) 4. 在scripts路徑下,創(chuàng)建一個(gè)新的文件dc.tcl。該文件是用來記錄你操作的每一個(gè)步驟命令的(即將你輸入進(jìn)DC的命令,Copy一份到該文件里)5. 當(dāng)你遇到困難的時(shí)候,你可以參考run script部分和compile flow部分來做實(shí)驗(yàn)(即參考答案)6. 在讀進(jìn)設(shè)計(jì)前,指定一個(gè)SVF的文件,使其所有的retiming(and other Ultra)轉(zhuǎn)換能被捕獲進(jìn)入一個(gè)文件名叫做 STOTO.svf7. 參考設(shè)計(jì)約束文件和綜合的的規(guī)格說明(Synthesis Specification)來執(zhí)行以下步驟。在dc_shel

37、l的環(huán)境里,進(jìn)行read ,link ,and check這個(gè)設(shè)計(jì)文件STOTO,然后source 和check這個(gè)時(shí)序約束文件。Notice:1.提示信息“preferrred routing direction”是正常的,可以不予理睬。 2.當(dāng)輸入check_timing時(shí),出現(xiàn)TIM-212關(guān)于“74 input ports that only have partial input delay specified”可以不理睬。Notice:請(qǐng)記得“copy and paste”Dc的命令進(jìn)入run script 文件dc.tcl8. 參考綜合規(guī)格說明表布局部分,Source以下的文件進(jìn)行

38、物理約束。9. 請(qǐng)輸入恰當(dāng)?shù)拿?,使其符合設(shè)計(jì)說明規(guī)格的第1步到第7步,同時(shí)把輸入的命令復(fù)制粘貼到你的腳本去。 Notice:當(dāng)你遇到不懂的時(shí)候,可以參照答案“Run Script and Compile Flow”10. 輸入以下的命令,驗(yàn)證是否符合你的要求,包括各個(gè)屬性等問題3:除了每個(gè)檢 查結(jié)果之外,你還能發(fā)現(xiàn)什么?11. 保存你的設(shè)計(jì)文件為 STOTO.dcc到unmapped的文件目錄下。12. 輸入恰當(dāng)?shù)拿钍蛊淅糜?jì)算機(jī)多核優(yōu)化設(shè)計(jì),請(qǐng)對(duì)照問題2的答案!13. 查閱設(shè)計(jì)說明規(guī)格#8#12,并且回答以下問題問題4:Compile_ultra的選項(xiàng)參數(shù)有那些?14. 把設(shè)計(jì)文件進(jìn)行綜

39、合,用問題4的選項(xiàng)參數(shù)進(jìn)行綜合。15. 借助設(shè)計(jì)原理圖回答以下倆個(gè)問題。問題5:對(duì)于綜合設(shè)計(jì)來說,這個(gè)設(shè)計(jì)是否很好地模塊劃分?為什么?問題6:對(duì)于設(shè)計(jì)來說,哪一個(gè)子設(shè)計(jì)需要被打散來獲得理想的模塊劃分?16. 當(dāng)綜合完成后,根據(jù)日志信息,回答以下幾個(gè)問題。問題7:有多少個(gè)計(jì)算機(jī)核被使用?問題8:有什么是被暗示這個(gè)設(shè)計(jì)是retimed?問題9:那個(gè)子模塊是自動(dòng)分組到compile_ultar中?17. 驗(yàn)證設(shè)計(jì)文件的層次報(bào)告。18. 生成一個(gè)約束報(bào)告(rc)。問題10,是否存在違反約束的?如果是,請(qǐng)列舉出來。問題11:是否應(yīng)該關(guān)注這些違反約束的?并解釋?19. 記錄建立時(shí)間”WNS”or”wors

40、t negative slack”max_delay/setup timing WNS: 20. 檢查是否有同樣名字的寄存器,若有請(qǐng)修改,結(jié)束帶上”_rep#” 問題12:是否存在同名的寄存器?21. 生成一個(gè)時(shí)序報(bào)告: 22. 查看從“Startpoint”到OUTPUTS組。留意“I_MIDDLE/I_DONT_PIPELINE/IRANDOM.”包括被分組的子模塊。23. 保存設(shè)計(jì)STOTO.ddc到mapped文件目錄下。24. 對(duì)于驗(yàn)證在SVF文件將停止記錄設(shè)計(jì)的改變。25. 輸入以下命令,如果返回有cells,這個(gè)證實(shí)了這些寄存器被移走通過register retiming.根據(jù)返

41、回的cells,回答以下問題問題13:在子模塊里是否存在retimed registers?問題14:你修改那些OUTPUT寄存器在PIPELINE,即z_reg*是否移動(dòng)?26. 輸入以下命令,如果返回有cells,這個(gè)證實(shí)了這些寄存器被移走通過adaptive retiming.問題15 寄存器在INPUT子模塊設(shè)計(jì)是否被影響通過adaptive retiming ,如果是,是否是 retime 選項(xiàng)參數(shù)?問題16. 寄存器在PIPELINE子模塊設(shè)計(jì)是否被影響通過adaptive retiming ,如果是,是否是 retime 選項(xiàng)參數(shù)?問題17:是否所有的寄存器在INPUT子模塊設(shè)計(jì)

42、被影響通過adaptive retiming?27. 查閱”Compile Flow”小節(jié),尋求幫組去回答以下倆個(gè)問題。問題18:在初始化綜合后,如果一直存在違反,我們建議去做的步驟是什么?問題19:基于設(shè)計(jì)規(guī)格說明,請(qǐng)你列出滿足要求的命令。28. 通過加 default是否修正DRC的違反.29. 生成一個(gè)約束報(bào)告問題20:是否有DRC違反被修正?30. 記錄建立時(shí)間“WNS”or “worst negative slack“max_delay/set timing WNS : 問題21:在綜合后,比較前后的WNS.31. 打開一個(gè)版圖窗口。lab7增加的約束選項(xiàng)1. 實(shí)驗(yàn)?zāi)康模涸谕瓿蛇@個(gè)實(shí)

43、驗(yàn)后你應(yīng)該能夠:1. 在下面的情況下約束一個(gè)設(shè)計(jì)- 約束上升沿和下降沿觸發(fā)的寄存器- 輸入/輸出端口被多路徑驅(qū)動(dòng)或捕獲- 外部輸入/輸出路徑?jīng)]有默認(rèn)的延時(shí)- 輸入驅(qū)動(dòng)的扇出有增加額外的負(fù)載2. 編譯已經(jīng)約束好的設(shè)計(jì)3. 把時(shí)序報(bào)告中的點(diǎn)與相應(yīng)的約束聯(lián)系起來2. 實(shí)驗(yàn)步驟:1、 復(fù)制和重命名約束文件lab4/scripts/MY_DESIGN.con為lab7/scripts/MY_DESIGN.con2、 基于下一頁的規(guī)范和電路原理圖修改約束。3、 參考lab3和lab4例子檢查和糾正約束語句的語法4、 從lab7目錄里啟動(dòng)DC綜合工具問題:1、 生成一個(gè)約束報(bào)告:問題1:這個(gè)設(shè)計(jì)有時(shí)序或設(shè)計(jì)

44、規(guī)則檢查的違反嗎?2、 針對(duì)包含輸出端口out1的路徑生成一個(gè)時(shí)序報(bào)告。時(shí)序報(bào)告中包括如下選項(xiàng): net transition times、net delay 和fanout并且精確到小數(shù)點(diǎn)第6位:3、 使用報(bào)告來定位和填寫以下要求的數(shù)據(jù)。這些數(shù)據(jù)應(yīng)該滿足你的約束。問題2:這個(gè)報(bào)告中時(shí)序路徑的起點(diǎn)是什么?問題3:從這份報(bào)告中找出下列起始點(diǎn)值或數(shù)據(jù)發(fā)射值。其中包括生成各報(bào)告值的約束文件的命令:Clock my_clkLaunch edge time _ Rising or falling? _Command(s) _Clock network delay = _Command(s) _Clock

45、 pin transition time = _Command(s) _問題4:從這份報(bào)告中找出下列終點(diǎn)值或數(shù)據(jù)捕獲值。其中包括生成各報(bào)告值的約束文件的命令:Clock my_clkCapture edge time _ Rising or falling? _Command(s) _Clock network delay = _Command(s) _Clock uncertainty = _Command(s) _Output external delay = _Command(s) _問題5:為什么是相對(duì)于時(shí)鐘下降沿輸出定時(shí)?問題6:為什么uncertainty 和 output external delay 的報(bào)告值和對(duì)應(yīng)約束時(shí)的值都是負(fù)的?4、 生成一個(gè)徑路從the sel input 到 the Cout output的時(shí)序報(bào)告。時(shí)序報(bào)告中包括如下選項(xiàng):transition times、net delays 并且精確到小數(shù)點(diǎn)第6位。使用報(bào)告來定位和填寫以下要求的數(shù)據(jù)。這些數(shù)據(jù)應(yīng)該滿足你的約束。問題7:從這份報(bào)告中找出下列起始點(diǎn)值。其中包括生成各報(bào)告值的約束文件的命令:Clock my_clkLaunch edge time _ Rising

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論