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

下載本文檔

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

文檔簡(jiǎn)介

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í)電路。它可以接受多種輸入格式,如硬件描述語(yǔ)言、原理圖和 netlist 等,并產(chǎn)生多種性能報(bào)告,在縮短設(shè)計(jì)時(shí)間的同時(shí)提高讀者設(shè)計(jì)性能?;镜木C合流程:該基本綜合流程包含下列

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

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

4、通過(guò) read_file 或 read 命令讀入門級(jí)網(wǎng)表。Design Compiler 支持所有主要的門級(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 中該步驟下所列的一系列命令來(lái)定義設(shè)計(jì)環(huán)境。5. 設(shè)置設(shè)計(jì)約束Design Compiler 利用設(shè)計(jì)規(guī)則和最優(yōu)化約束來(lái)控制設(shè)

5、計(jì)的綜合。廠家工藝庫(kù)提供設(shè)計(jì)規(guī)則以保證產(chǎn)品符合規(guī)格、工作正常。典型的設(shè)計(jì)規(guī)則約束轉(zhuǎn)換時(shí)間(set_max_transition)、扇出負(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)化過(guò)程中,Design Compiler 試圖去滿足這些目標(biāo),但不會(huì)去違反任何設(shè)計(jì)規(guī)則。利用圖 2-4 中該步驟下所列的一系列命令來(lái)定義這些約束。為能夠正確地優(yōu)化設(shè)計(jì),必須設(shè)置更接近現(xiàn)實(shí)情況的約束。你選擇的編譯策略將

6、影響設(shè)計(jì)約束的設(shè)置。流程中的步驟 5 和步驟 6 是相互依賴的。6. 選擇編譯策略你可以用來(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)存里。在從下到上的策略里,分別對(duì)子設(shè)計(jì)進(jìn)行約束和編譯。在成功編譯后,這些設(shè)計(jì)都被賦予一個(gè) dont_touch 參數(shù),防止在隨后的編譯過(guò)程中對(duì)它們進(jìn)行進(jìn)一步的改變。然后這些編譯過(guò)的子設(shè)計(jì)組合成更高層次的設(shè)計(jì),再進(jìn)行編譯。編譯過(guò)程一直持續(xù)到頂層設(shè)計(jì)被綜 合

7、。由于 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ì)采用最合適的策略。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

8、;默認(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。8. 分析和解決設(shè)計(jì)問(wèn)題通常 Design Compiler 根據(jù)設(shè)計(jì)綜合和優(yōu)化的結(jié)果生成眾多的報(bào)告。你根據(jù)諸如面積、約束和時(shí)序報(bào)告來(lái)分析和解決任何設(shè)計(jì)問(wèn)題,或者改進(jìn)綜合結(jié)果。你可以用 check 命令來(lái)檢查綜合過(guò)的設(shè)計(jì),也可用其他的 check_命令。9. 保存設(shè)計(jì)數(shù)據(jù)利用 write 命令來(lái)保存綜合過(guò)的設(shè)計(jì)。Design Compiler 在退出時(shí)并不自動(dòng)保存設(shè)計(jì)。你也可以在一個(gè)腳本文件里

9、保存那些綜合過(guò)程中用過(guò)的設(shè)計(jì)參數(shù)和約束。腳本文件是用來(lái)管理設(shè)計(jì)參數(shù)和約束的理想工具。技術(shù)相關(guān)幫助:Linux 下:vi filename :打開或新建文件;例如:vi m.tcl (m.tcl 若存在,則查看,反之為創(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

10、filename :刪除一個(gè)文件或路徑目錄或文件夾; rm r filename :刪除文件夾所有的東西,不可恢復(fù)。DC 下:在命令行中,用 man+ DC 命令??梢缘玫竭@個(gè) DC 命令的介紹。溫馨提示:在做實(shí)驗(yàn)前,請(qǐng)務(wù)必理解對(duì)應(yīng)的章節(jié)!一、實(shí)驗(yàn)?zāi)繕?biāo):1. 學(xué)會(huì)如何查看隱藏的文件,以及了解 DC 剛啟動(dòng)需要.synopsys_dc.setup 文件來(lái)初始化信息。2. 懂得如何修改 common_setup.tcl 腳本里面的命令來(lái)配置 DC 相關(guān)的信息。3. 學(xué)會(huì)如何查看原理圖和符號(hào)圖。4. 使用 dc_shell topo 模式或 design_vision topo 模式來(lái)啟動(dòng) DC 工

11、具二、實(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 Vision Topo 模式來(lái)啟動(dòng) DC,即是 design_vision topo4. 讀入 rtl/TOP.v(或.vhd)文件,并查看符號(hào)圖和原理圖5. 用 scripts/TOP.con 的文件來(lái)對(duì)整個(gè)設(shè)計(jì)進(jìn)行約束6. 用 compile_ultra 命令來(lái)對(duì)這個(gè)設(shè)計(jì)文件進(jìn)行綜合7. 生成一個(gè) timing 報(bào)告和 area

12、報(bào)告,進(jìn)行分析8. 保存綜合后的設(shè)計(jì)文件到 mapped/TOP.ddc 并退出 DC9. 換另外一種模式來(lái)啟動(dòng) DC GUI,即是 dc_shell topo ;start_gui三、實(shí)驗(yàn)步驟:Task1: Examine and modify the setup file1. 進(jìn)入實(shí)驗(yàn)文件 lab1 的目錄下,查看.synopsys_dc.setup、common_setup.tcl 和dc_setup.tcl,這三個(gè)文件。UNIX%cdlab1UNIX%ls-al.synopsys*UNIX%ls-al*setup*#/#語(yǔ)句分析開始#/#/# 1. cdlab1;進(jìn)入 lab1 目錄下

13、#2.ls-al.synopsys*;查看所有前面以”.synopsys”開頭的關(guān)鍵字的文件,-al 代表查看所有的隱藏文件;#3.ls-al*setup*;查看所有只要包含有關(guān)鍵字”setup”的文件,-al 代表查看所有的隱藏文件;#/#語(yǔ)句分析結(jié)束#/#/#2. 請(qǐng)用一個(gè)文本編輯器(如 vi)來(lái)修改 commoc_setup.tcl 里面的內(nèi)容,請(qǐng)結(jié)合上面的相關(guān)技術(shù)幫組和下表任務(wù)表來(lái)完成該任務(wù)。User-definedDirectory or File NamesADDITIONAL_SEARCH_PACHAdditional s e a rc e _ p a th directorie

14、s for logic(db)libraries,desig n files,and scripts./ref/libs/mw_lib/sc/LM./rtl./scriptsT A R E G E T _ L IB R A R Y _ F IL E SLogical TechnologyLibrary filesc_max.dbS Y M B O L _ L IB R A R Y _ F IL E SS y m b o l library filesc.sdbM W _ D E S IG N _ L IBMilkyway Design LibraryNameT O P _ L IB(這個(gè)名字可

15、以用戶自定義)M W _ R E F E R E N C E _ L IB _ D IR SMilkyway referecelibraries (standard/macro/pad cells)./ref/libs/mw_lib/s cT E C H _ F IL EPhysical Technology file./ref/libs/tech/cb13_6m.tfT L U P L U S _ M A X _ F IL EMax TLUPlus file./ref/libs/tlup/cb13_6m_max.tlup lusM A P _ F IL ETLUPlus Layer Mapp

16、ingfile./ref/libs/tlup/cb13_6m.mapTask2: Invoke Design Vision1. 進(jìn)入 lab1 的目錄下,以 GUI topo 模式來(lái)啟動(dòng) DC 工具,使其更具可視化。UNIX%pwdUNIX%design_vision-topo#/#語(yǔ)句分析開始#/#/# 1.pwd;查看當(dāng)前路徑。這樣可以知道是否已經(jīng)進(jìn)入 lab1 的目錄下#2. design_vision-topo;以可視化界面-topo 模式來(lái)啟動(dòng) DC 工具,你可以看到一些已讀入的信息,包括上一個(gè)步驟的配置信息,如搜索路徑,目標(biāo)庫(kù),鏈接庫(kù)等等;這個(gè)因?yàn)楫?dāng)你啟動(dòng) DC 工具時(shí),會(huì)自動(dòng)讀取

17、”.synopsys_dc.setup”這個(gè)配置文件的,這個(gè)文件是隱藏在 lab1 目錄下的,這就是我們?yōu)槭裁匆?lab1 目錄下啟動(dòng) DC 工具。當(dāng)然,你也可以不再在這個(gè)目錄下啟動(dòng) DC,當(dāng)你啟動(dòng) DC 后,可以讀進(jìn)配置信息文件的,例如“source.synopsys_dc.setup”#/#語(yǔ)句分析結(jié)束#/#/#2. 在 DC 的 GUI 界面視圖下,你將會(huì)看到以下的信息。3. 點(diǎn)擊 File-Setup,可以查看一些信息,請(qǐng)回答以下的問(wèn)題。問(wèn)題一:請(qǐng)問(wèn)這個(gè)工程的的目標(biāo)庫(kù)是什么?問(wèn)題二:請(qǐng)問(wèn)這個(gè)工程的的鏈接庫(kù)是什么?問(wèn)題三:請(qǐng)問(wèn)這個(gè)工程的的符號(hào)庫(kù)是什么?./libraries/syn/m

18、inpower/syn/dw/syn_ver/dw/sim_ver4. 從 File-Setup 選擇圖標(biāo)來(lái)使這個(gè)搜索路徑 Search path 選擇正確,當(dāng)你點(diǎn)擊進(jìn)去的時(shí)候,你會(huì)看到以下搜索路徑方向的列表,同時(shí)你可以修改搜索路徑。這里是默認(rèn)的搜索路徑方向。問(wèn)題 4:請(qǐng)問(wèn)這個(gè)工程的搜索路徑有哪些?5. 返回到 Design Vision 界面,輸入以下命令來(lái)驗(yàn)證 DC 的一些庫(kù)、搜索路徑是否設(shè)置正確。printvar target_library printvar link_library printvar search_path alias6. 檢查邏輯庫(kù)與物理庫(kù)之間是否想匹配:check

19、_libraryNotice:從這個(gè)報(bào)告可知,這里有 4 個(gè) cell 是沒(méi)有邏輯庫(kù)的,分別是“feedthrough”和“tap”cells,因?yàn)樗鼈兪窃谖锢戆鎴D中反映的,而不是在邏輯設(shè)計(jì)中反映,所以這個(gè)警告是可以忽略的。7. 檢查 TLUPus 和 Technology 文件之間是否相匹配:check_tlu_plus_filesNotice: 你應(yīng)該能看到 4 個(gè)“pass!”Task3: Read the Design into DC Memory1. 點(diǎn)擊 Read.的按在左上角(or File-Read),選中 rtl 文件夾里的Top.v 或 TOP.vhd。Notice:在窗口

20、的左上角,你可以看到“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í)例化引用的。簡(jiǎn)單來(lái)說(shuō)如果實(shí)例化的就是一個(gè)與非門,DC 就從 target library 中找到,如果例化的是一個(gè) fifo,DC 就從 fifo 的庫(kù)中找到,如果例化的是一個(gè)

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

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

23、/TOP.con”,這里加上 scripts 的意思是該 TOP.con 的約束文件在 scripts 的路徑下。Task5: Compile or Map to Vendor-Specific Gates1. 對(duì)設(shè)計(jì)進(jìn)行綜合或映射到供應(yīng)商特定的門上,即是把 RTL 級(jí)綜合成門級(jí)。compile_ultra#當(dāng)對(duì)設(shè)計(jì)文件進(jìn)行綜合的時(shí)候,你可以看到底下的日志區(qū)的信息,包括不同優(yōu)化綜合階段的的表。例如“AREA”指示這個(gè)設(shè)計(jì)的大小;“WORSTNEGSLACK”指示有多少的關(guān)鍵或糟糕的路徑在設(shè)計(jì)中是違反的;“TOTALNEGSLACK”是所有路徑延時(shí)違反的總和等等#Task6: Generate

24、Reports and Analyze Timing1. 轉(zhuǎn)到頂層的符號(hào)視圖 Symbol View2. 在 design_vision topo 的命令行里輸入以下命令rcNotice:”rc”是一個(gè)引用別名,它的定義在.synopsys_dc.setup的文件里,它執(zhí)行的是report_constrain all_violators ;這個(gè)報(bào)告列出所有違反約束的事務(wù),你能看見(jiàn)“max_delay/setup”的違反rt同理:Notice:rt=report_timing,表示時(shí)序報(bào)告當(dāng)你輸入以上這條命令時(shí),請(qǐng)問(wèn) Slack (VIOLATED)= #以上這個(gè)值為負(fù)數(shù),即表示違法時(shí)序約束,在

25、這個(gè)實(shí)驗(yàn)?zāi)悴挥美聿鞘欠襁`反時(shí)序約束, 接下來(lái)的實(shí)驗(yàn)會(huì)為你講解的#3. 生成一個(gè)面積報(bào)告,ra,然后回答以下的問(wèn)題Total cell area: Task7: Save the Optimized Design1. 將綜合后的設(shè)計(jì)數(shù)據(jù)保存起來(lái)2. 返回到 TOP 的符號(hào)視圖3. 選擇菜單 File-Save As4. 雙擊在 mapped 的路徑5. 為文件命名“TOP.ddc”6. 點(diǎn)擊保存。7. 保存輸入的命令歷史,通過(guò)點(diǎn)擊 Save Contents As.Task8: Remove Designs and Exit Design Vision1. 清空所有的設(shè)計(jì)fr list_desi

26、gns#fr=”remove_design -designs”2. 顯示出當(dāng)前所有的命令歷史記錄h# h=”history”3. 退出軟件exit4. 另一種方式來(lái)啟動(dòng) dc 的圖形界面UNIX%dc_shell -topo start_guiNotice:在這個(gè)步驟,你不用理睬以下這個(gè)錯(cuò)誤信息“LibraryTOP_LIBalready exists”5. 如果你想回到 dc_shell 模式時(shí)可以 File-Close GUIstop_gui6. 退出軟件。Task9:Using analyze and elaborate to read in an HDL design1. 進(jìn)入到 la

27、b1 的當(dāng)前目錄下UNIX%pwdUNIX%dc_shell -topo2. 在 dc_shell 模式下,把 verilog 或 VHDL 讀進(jìn)來(lái)read_verilog./rtl/TOP.v current_design TOPlink3. 在 dc_shell 模式下,另一種方式把 verilog 或 VHDL 讀進(jìn)來(lái)file mkdir ./workdefine_design_lib WORK -path./workanalyze -format verilog -library WORK ./rtl/TOP.v elaborate TOP4. 讀取設(shè)計(jì)文件用 “-vcs”參數(shù)fran

28、alyze -vcs -verilog -y ./rtl +libext+.v./rtl/TOP.v elaborate TOPNotice : “-vcs”不能用于 VHDL 的設(shè)計(jì)Answers 問(wèn)題答案問(wèn)題 1 答案: * sc_max.db 問(wèn)題 2 答案: sc_max.db 問(wèn)題 3 答案: sc.sdb問(wèn)題 4 答案: ./ref/libs/mw_lib/sc/LM./rtl./scriptsLab2Design and Library ObjectsThere is NO LAB for this unit!Lab3一、 實(shí)驗(yàn)?zāi)康模篢iming Constraints1. 確定

29、用于目標(biāo)庫(kù)的時(shí)間單位2. 基于提供的原理圖或規(guī)格說(shuō)明創(chuàng)建一個(gè)新的 DC 時(shí)序約束的腳本3. 修改先前的語(yǔ)法約束去適應(yīng)一個(gè)符合要求的設(shè)計(jì)4. 為設(shè)計(jì)提供一個(gè)約束5. 驗(yàn)證所施加的約束的完整性和正確性二、 實(shí)驗(yàn)流程:1. 得到一個(gè)庫(kù)的報(bào)告去決定使用哪個(gè)單元2. 創(chuàng)建一個(gè)新的時(shí)序報(bào)告文件基于設(shè)計(jì)原理圖或規(guī)格說(shuō)明3. 對(duì)設(shè)計(jì)文件進(jìn)行約束,驗(yàn)證所施加的約束的完整性和正確性三、 實(shí)驗(yàn)步驟:DesignSpecification1.Clock c lk has a frequency of 3 3 3 .3 3 M h z2.The maximum external clock generator dela

30、y to the clock port is 7 0 0 p s (HINT:source latency)Clock3.The maximun insertion delay from the clock port to all the register clock pins is 3 0 0 p s + /- 3 0 p s (HINT:Treat the 300ps as networklatency and the +/-30ps as clock skew)Definition4.The clock period can fluctuate + /- 4 0 p s dueto ji

31、tter5.Apply 5 0 p s of setup marginto the clock period6.The worst case rise/fall transition time of any clock pin is 1 2 0 p sRegister Setup TimeAssume a maximun setup time of 0 .2 n s for any register in MY_DESIGNInput Ports (sequentia l logic)1. The maximum delay from ports d a ta l and d a ta 2th

32、rough the internal input logic S is 2 .2 n s2. The latest F3 data arrival time at the s e l portis 1 .4 n s absolute time.(HINT:Input delay is specified as relative time -relative to thelaunching clock edge)Output Ports (sequentia l logic)1.The maximum delay of the external combo logic at port o u t

33、1 is 4 2 0 p s ; F 6 has a setup time of 8 0 p s .2.The maximum internal delay to o u t2 is 8 1 0 p s3.The o u t3 port has a 4 0 0 p s setup time requirement with respect to its capturing register clock pinThe maximun delay from C in 1 and C in 2 to C o u tCombinatiois 2 .4 5 n s .(HINT:Use appropri

34、ate input andnal Logicoutput delay constraints with respect to clockclk)Task1. Determine the Target Librarys Time Unit1. 打開終端,進(jìn)入 lab3 文件夾的目錄下2. 用一個(gè)文本編輯器去查看 common_setup.tcl 文件,然后回答以下的問(wèn)題問(wèn)題一:目標(biāo)庫(kù)文件名稱是什么?3. 以 dc_shell 的模式啟動(dòng) DC 工具UNIX% dc_shell -topo | tee -i lab3.log4. 一般地,當(dāng)一個(gè)設(shè)計(jì)(read_verilog,read_vhdl,r

35、ead_ddc,or analyze/elaborate)被讀進(jìn)來(lái)的時(shí)候,目標(biāo)庫(kù)和連接庫(kù)是要事先被讀進(jìn) DC 內(nèi)存里面的。read_db Notice:你不要理睬關(guān)于“Overwritint design file ./sc_max.db”5. 確定該庫(kù)文件相關(guān)的庫(kù)名稱list_libs問(wèn)題二:目標(biāo)庫(kù)名?6. 生成一個(gè)庫(kù)的報(bào)告redirect -file lib.rptreport_lib 7. 退出 Design Compilerexit8. 用一個(gè)文本編輯器去查看 lib.rpt 的文件,并回答以下的問(wèn)題問(wèn)題三:這個(gè)目標(biāo)庫(kù)的的 Time Unit 是什么?Task2. Create a T

36、iming Constraints File1. 進(jìn)入 scripts 的路徑下,用一個(gè)文本編輯器去創(chuàng)建一個(gè)新的文件MY_DESIGN.con(即 viMY_DESIGN.con)問(wèn)題四: 推薦的第一個(gè)命令的任何約束文件是什么?2. 用 Design Specification and Design Schematic ,即是上面頁(yè)的表格,再選擇合適的時(shí)間單位,寫一個(gè)新的約束文件 MY_DESIGN.con(即在 MY_DESIGN.con 上添加內(nèi)容)Notice:當(dāng)你沒(méi)有頭緒的時(shí)候,你可以參考答案!答案是一個(gè)隱藏文件的,在.solutions/MY_DESIGN.con。Notice:可以

37、使用 DCs help 命令,man+命令,可以了解到 DC 命令的語(yǔ)法以及其意義和作用,也可以創(chuàng)建一個(gè) UNIX 的引用。例如UNIX% alias dcman /usr/bin/man -M $SYNOPSYS/doc/syn/man UNIX% dcman create_clock3. 完成編寫約束文件后,需要檢查其語(yǔ)法是否正確UNIX% dcprocheck scripts/MY_DESIGN.conNotice:dcprocheck 是一個(gè)可執(zhí)行的 Design Compile 語(yǔ)法檢查的實(shí)體,它決定是否啟動(dòng) DC。Task3. Apply Constrains and Valida

38、te1. 在啟動(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,并回答以下的問(wèn)題問(wèn)題 5:為什么沒(méi)有獲得一個(gè)錯(cuò)誤關(guān)于創(chuàng)建一個(gè)新的 MW design library(這個(gè)庫(kù)文件在之前已經(jīng)存在了)3. 將設(shè)計(jì)文件讀進(jìn) DC 去,Read,link and check the design rtl /MY_DESIG .v4. 正確地讀入約束文件source scripts/MY_DESIGN.con5. 檢查有沒(méi)有遺漏或矛盾的關(guān)鍵約束,例如ch

39、eck_timingNotice:存在一個(gè)警告“there are 21 input ports that only have partial input delayspecified” 這個(gè)警告不用理睬。6. 修改時(shí)鐘和端口約束,例如report_clock report_clock -skew report_port -verbose7. 寫出所施加的約束,例如write_script -out scripts/MY_DESIGN.wscr8. 確保你的約束文件是完整無(wú)誤的,通過(guò)與提供的 0 答案對(duì)比UNIX% tkdiff scripts/MY_DESIGN.wscr.solutions

40、/MY_DESIGN.wscr ORUNIX% diff scripts/MY_DESIGN.wscr.solutions/MY_DESIGN.wscr9. 如果“diff”這個(gè)命令不能被識(shí)別,請(qǐng)用編輯器查看對(duì)比這個(gè)“.solutions/MY_DESIGN.con”來(lái)檢查這個(gè)約束報(bào)告是否正確。10. 保存設(shè)計(jì)并退出write -format ddc -hier -out unmapped/MY_DESIGN.ddc exit問(wèn)題答案:?jiǎn)栴}一: sc_max.db問(wèn)題二:cb13fs120_tsmc_max 問(wèn)題三:1ns問(wèn)題四: reset_design問(wèn)題五:In the dc_setup

41、.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 ,you would get the following message :“Error:Library MY_DESIGN

42、_LIBalready existsLab4一、 實(shí)驗(yàn)?zāi)康模篍nvironmental Attributes1. 自定義一個(gè) DC 環(huán)境屬性基于提供的原理圖和規(guī)格說(shuō)明2. 對(duì)設(shè)計(jì)進(jìn)行環(huán)境屬性的約束3. 修改驗(yàn)證屬性二、 實(shí)驗(yàn)流程:參照實(shí)驗(yàn)三的每個(gè)步驟From the lab3/lib.rpt file write down the library Capacitive Load Unit:Copy and rename the lab3/scripts/MY_DESIGN.conconstraints file to lab4/scripts/MY_DESIGN.conAdd the envi

43、ronmental attributes from the Specification on page 4-4 to MY_DESIGN.conCheck and correct the syntax: help;man;UNIX% dcprocheckInvoke Design Compiler from the lab4 directory三、 設(shè)計(jì)規(guī)格說(shuō)明:2.The Cin* ports are chip-level inputs and have a 120psmaximum input transition1.Specify a drive on all inputs,except

44、 clk and Cin*,usingthe buffer bufbd1 in the libraryInput Ports (drivers)Output Ports1.All outputs,except Cout ,drive a maximun load equivalent(loads)to 2 times the capacitiance of the Ipin of the cellbufbd7(see Note below)2.The Cout port drives a maximun load of 25fF理睬,Notice:當(dāng)你運(yùn)行 dcprocheck 的時(shí)候,你可能

45、會(huì)得到一個(gè)語(yǔ)法上的警告。你可以不用use curly braces to avoid double substitution expr 2* load_of lib/cell/pin為了避免該警告的產(chǎn)生,可以鍵入:Expr 2*load_oflib/cell/pinLab5一、 實(shí)驗(yàn)?zāi)康模篠ynthesis Techniques1. 使用合適的綜合技術(shù),以滿足所要求的約束2. 在綜合之前,學(xué)會(huì)修改合適的指令參數(shù)和變量3. 學(xué)會(huì)分析門級(jí)水平的網(wǎng)表(確保滿足所有的約束條件,同時(shí)采用各種優(yōu)化綜合技術(shù))4. 學(xué)會(huì)求助 man 的指令應(yīng)用,使其能過(guò)分析每條 DC 命令的語(yǔ)句5. 使用 LayoutWin

46、dow 去修改物理約束(floorplan)和查看單元器件6. 執(zhí)行正式的形式驗(yàn)證通過(guò)使用 Formality 工具二、 綜合規(guī)格說(shuō)明:SynthesisSpecificationAvailabel Resources1. You will use a provided script ,num_core.sh,to determine how many cpu cores to use2. All Design Compiler features and related license are available;Two licenses are available for each feat

47、ureDsign and Constraint s Files1.RTL code location:rtl/ S T O T O . v 2.Design Name: S T O T O3. Constraints file location :s c rip ts / S T O T O . c o n4. These files may not be modifiedFloorplanFinal floorplan definition: 1.The core size is 150um X100um2. STOTO has no instantiated hard macros3. S

48、tandard cells can be placed anywhere inside the core area except for a 20um X 20um area in the upper-left corner,which is reserved for a different design block1.The I/O constraints are estimates and have beenconservatively constrained2.The final compiled design must meet setup timingon all internal

49、register-to-register paths3.The IN P U T block hierarchy should be preserved tofacilitate post-synthesis verification4.The P IP E L IN E block containts a purepipelineddesignDesign5.The output (P O U T )of P IP E L IN E must remainSpecificatregisteredion6.The positions of registers in the D O N T _ P IP E L IN Eblock are fixed and cannot be modified7.DRC violations should be fixed unless theyprevent setup timing constraints from being met8.Registers may be replicated to imp

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論