




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
SYNOPSYSLabiSetupandSynthesisFlow縮略詞:DesignCompile=DC;備注:UNIX%代表在linux終端下進行操作,其余的代表在DC下進行DC命令輸入前言:DC(DesignCompiler)是Synopsys的logicalsynthesis優(yōu)化工具,它根據(jù)designdescription和constraints自動綜合出一個優(yōu)化了的門級電路。它可以接受多種輸入格式,如硬件描述語言、原理圖和netlist等,并產(chǎn)生多種性能報告,在縮短設(shè)計時間的同時提高讀者設(shè)計性能?;镜木C合流程:□ev-Bl^pHIDLFID咕苫LibraryObjact&□.inklibrax^ytarqet1iZtax-ai■了□1L讓HuryuS^TiLhcticlibra:ry□MgD^E-ignEnvironimerit條□ev-Bl^pHIDLFID咕苫LibraryObjact&□.inklibrax^ytarqet1iZtax-ai■了□1L讓HuryuS^TiLhcticlibra:ry□MgD^E-ignEnvironimerit條t
□esignCcnstrairktsD^&ignRule仁口m斟tbraiint#act—transitdon.■■nE—AnEaciQUtsec.aapificitanceDB^ignpi:imizatione口n璃屹int寫create_cl口uka?lsetsetgetactact□ct/dDtrk,l-sfceaicyprop-agatedcrLockclack,uncerfiaiiity=dark(Tra^EitiMiiin.pu.tdelay□utputde1ayTj3DCareaS4k?tCoiripilQStrategyTapDawnBaHemUpOptimizeEheAnaDyz-s^nd[Resolirs□白gignPmblem&checkdesignreporfzareareportco:natiraintreport^tiedng-the-□frEignDatabasewTi~e:該基本綜合流程包含下列步驟:發(fā)展HDL文件輸入DesignCompiler的設(shè)計文件通常都是用諸如VHDL和VerilogHDL等硬件描述語言編寫。這些設(shè)計描述必須小心地編寫以獲得可能的最好的綜合結(jié)果。在編寫HDL代碼時,你需要考慮設(shè)計數(shù)據(jù)的管理、設(shè)計劃分和HDL編碼風(fēng)格。劃分和編碼風(fēng)格直接影響綜合和優(yōu)化過程。雖然流程中包含該步驟,但實際上它并不是DesignCompiler的一個步驟。你不能用DesignCompiler工具來編寫HDL文件。指定庫通過link_,target_,symbol_和synthetic_library命令為DesignCompiler指定鏈接庫、對象庫、符合庫和綜合庫。鏈接庫和對象庫是工藝庫,詳細(xì)說明了半導(dǎo)體廠家提供的單元和相關(guān)信息,象單元名稱、單元管腳名稱、管腳負(fù)載、延遲、設(shè)計規(guī)則和操作環(huán)境等。符號庫定義了設(shè)計電路圖所調(diào)用的符號。如果你想應(yīng)用DesignAnalyzer圖形用戶界面,就需要這個庫。另外,你必須通過synthetic_library命令來指定任何一種特殊的有許可的設(shè)計工具庫(你不需要指定標(biāo)準(zhǔn)設(shè)計工具庫)。讀入設(shè)計DesignCompiler使用HDLCompiler將RTL級設(shè)計和門級網(wǎng)表作為設(shè)計輸入文件讀入。通過analyze和elaborate命令讀入RTL級設(shè)計,通過read_file或read命令讀入門級網(wǎng)表。DesignCompiler支持所有主要的門級網(wǎng)表格式。如果你用read_file或read命令讀入RTL設(shè)計,等于實現(xiàn)了組合3analyze和elaborate命令的功能。定義設(shè)計環(huán)境DesignCompiler要求設(shè)計者模擬出待綜合設(shè)計的環(huán)境。這個模型由外部的操作環(huán)境(制造流程、溫度和電壓)、負(fù)載、驅(qū)動、扇出、線負(fù)載模型等組成。它直接影響到設(shè)計綜合和優(yōu)化的結(jié)果。利用圖2-4中該步驟下所列的一系列命令來定義設(shè)計環(huán)境。設(shè)置設(shè)計約束DesignCompiler利用設(shè)計規(guī)則和最優(yōu)化約束來控制設(shè)計的綜合。廠家工藝庫提供設(shè)計規(guī)則以保證產(chǎn)品符合規(guī)格、工作正常。典型的設(shè)計規(guī)則約束轉(zhuǎn)換時間(set_max_transition)、扇出負(fù)載(set_max_fanout)和電容(set_max_capacitance)。這些規(guī)則指定了要求的工藝,你不能違反。當(dāng)然,你可以設(shè)置更嚴(yán)格的約束。最優(yōu)化約束則定義了時序(時鐘、時鐘錯位、輸入延時和輸出延時)和面積(最大面積)等設(shè)計目標(biāo)。在最優(yōu)化過程中,DesignCompiler試圖去滿足這些目標(biāo),但不會去違反任何設(shè)計規(guī)則。利用圖2-4中該步驟下所列的一系列命令來定義這些約束。為能夠正確地優(yōu)化設(shè)計,必須設(shè)置更接近現(xiàn)實情況的約束。你選擇的編譯策略將影響設(shè)計約束的設(shè)置。流程中的步驟5和步驟6是相互依賴的。選擇編譯策略你可以用來優(yōu)化層次化設(shè)計的兩種基本編譯策略被稱為自頂向下和從下上。在自頂向下的策略里,頂層設(shè)計和它的子設(shè)計一起進行編譯。所有的環(huán)境和約束設(shè)置都根據(jù)頂層設(shè)計來定義。因此,它會自動的考慮內(nèi)部模塊的依賴性。但對于大型設(shè)計,這種方法并不實用,因為所有的設(shè)計必須同時貯存在內(nèi)存里。在從下到上的策略里,分別對子設(shè)計進行約束和編譯。在成功編譯后,這些設(shè)計都被賦予一個dont_touch參數(shù),防止在隨后的編譯過程中對它們進行進一步的改變。然后這些編譯過的子設(shè)計組合成更高層次的設(shè)計,再進行編譯。編譯過程一直持續(xù)到頂層設(shè)計被綜合。由于DesignCompiler不需要同時將所有未編譯的子設(shè)計裝載進內(nèi)存,這種方法允許你編譯大型設(shè)計。然而,在每一個階段,你必須估計每個內(nèi)部模塊的約束,更有代表性的是,你必須不停地編譯、改進那些估計,直到所有的子設(shè)計界面都是穩(wěn)定的。每一個策略都有其優(yōu)點和缺點,這取決于你設(shè)計的特殊性和設(shè)計目標(biāo)。你可以選擇任意一個策略來進行整個設(shè)計,或者混合使用,對每一個子設(shè)計采用最合適的策略。優(yōu)化設(shè)計利用compiler命令啟動DesignCompiler的綜合和優(yōu)化進程。有幾個可選的編譯選項。初步編譯,如果你想對設(shè)計面積和性能有一個快速的概念,將map_effort設(shè)置為low;默認(rèn)編譯,如果你在進行設(shè)計開發(fā),將map_effort設(shè)置為medium;當(dāng)在進行最后設(shè)計實現(xiàn)編譯時,將map_effort設(shè)置為high。通常設(shè)置map_effort為medium。分析和解決設(shè)計問題通常DesignCompiler根據(jù)設(shè)計綜合和優(yōu)化的結(jié)果生成眾多的報告。你根據(jù)諸如面積、約束和時序報告來分析和解決任何設(shè)計問題,或者改進綜合結(jié)果。你可以用check命令來檢查綜合過的設(shè)計,也可用其他的check—命令。保存設(shè)計數(shù)據(jù)利用write命令來保存綜合過的設(shè)計。DesignCompiler在退出時并不自動保存設(shè)計。你也可以在一個腳本文件里保存那些綜合過程中用過的設(shè)計參數(shù)和約束。腳本文件是用來管理設(shè)計參數(shù)和約束的理想工具。技術(shù)相關(guān)幫助:Linux下:vifilename:打開或新建文件;例如:vim.tcl(m.tcl若存在,則查看,反之為創(chuàng)建)創(chuàng)建/查看一個名為m的腳本文件。備注:按下鍵盤i時進入編輯插入狀態(tài);退出時不保存,按下Esc并輸入“:q”;若退出時保存,按下Esc并輸入“:wq”,強制退出加上!vi-rfilename:在上次正用vi編輯時發(fā)生系統(tǒng)崩潰,恢復(fù)filenamemkdirfilename:新建一個文件夾。rmdirfilename:刪除一個文件夾。rmfilename:刪除一個文件或路徑目錄或文件夾;rm-rfilename:刪除文件夾所有的東西,不可恢復(fù)。DC下:在命令行中,用man+DC命令。可以得到這個DC命令的介紹。溫馨提示:在做實驗前,請務(wù)必理解對應(yīng)的章節(jié)?。?!、實驗?zāi)繕?biāo):1.學(xué)會如何查看隱藏的文件,以及了解DC剛啟動需要.synopsys_dc.setup文件來初始化信息。懂得如何修改common_setup.tcl腳本里面的命令來配置DC相關(guān)的信息。學(xué)會如何查看原理圖和符號圖。使用dc_shell-topo模式或design_vision-topo模式來啟動DC工具、實驗流程:檢查.synopsys_dc.setup文件是否配置好DC啟動時的相關(guān)信息檢查common_setup.tcl和dc_serup.tcl這兩個文件,必要時修改common_setup.tcl文件使用DesignVisionTopo模式來啟動DC,即是design_vision-topo讀入rtl/TOP.v或.vhd)文件,并查看符號圖和原理圖用scripts/TOP.con的文件來對整個設(shè)計進行約束用compile_ultra命令來對這個設(shè)計文件進行綜合生成一個timing報告和area報告,進行分析保存綜合后的設(shè)計文件到mapped/TOP.ddc并退出DC換另外一種模式來啟動DCGUI,即是dc_shell-topo;start_gui三、實驗步驟:Taskl:Examineandmodifythesetupfile進入實驗文件lab1的目錄下,查看.synopsys_dc.setup、common_setup.tcl和dc_setup.tcl,這三個文件。UNIX%cdlab1UNIX%ls-al.synopsys*UNIX%ls-al*setup*########////////////######i吾句分析開始###########/########/////////////////////###################1.cdlab1;進入lab1目錄下#####2.ls-al.synopsys*;查看所有前面以”.synopsys”開頭的關(guān)鍵字的文件,-al代表查看所有的隱藏文件;#####3.ls-al*setup* ;查看所有只要包含有關(guān)鍵字"setup”的文件,-al代表查看所有的隱藏文件;
########////////////######語句分析結(jié)束###########/########/////////////////////##############2.請用一個文本編輯器(如vi)來修改commoc_setup.tcl里面的內(nèi)容,請結(jié)合上面的相關(guān)技術(shù)幫組和下表任務(wù)表來完成該任務(wù)。User-definedDirectoryorFileNamesADDITIONAL_SEARCH_PACHAdditionalsearce_pathdirectoriesforlogic(db)libraries,designfiles,andscripts../ref/libs/mw_lib/sc/LM./rtl./scriptsTAREGET_LIBRARY_FILESsc_max.dbLogicalTechnologyLibraryfileSYMBOL_LIBRARY_FILESSymbollibraryfilesc.sdbMW_DESIGN_LIBMilkywayDesignLibraryNameTOP_LIB (這個名字可以用戶自定義)MW_REFERENCE_LIB_DIRS../ref/libs/mw_lib/scMilkywayreferecelibraries(standard/macro/padcells)TECH_FILEPhysicalTechnologyfile../ref/libs/tech/cb13_6m.tfTLUPLUS_MAX_FILEMaxTLUPlusfile../ref/libs/tlup/cb13_6m_max.tluplusMAP_FILETLUPlusLayerMappingfile../ref/libs/tlup/cb13_6m.mapTask2:InvokeDesignVision進入峨1的目錄下,以GUI-topo模式來啟動DC工具,使其更具可視化。UNIX%pwdUNIX%design_vision-topo########////////////######i吾句分析開始###########/########/////////////////////###################1.pwd;查看當(dāng)前路徑。這樣可以知道是否已經(jīng)進入labl的目錄下#####2.design_vision-topo;以可視化界面-topo模式來啟動DC工具,你可以看到一些已讀入的信息,包括上一個步驟的配置信息,如搜索路徑,目標(biāo)庫,鏈接庫等等;這個因為當(dāng)你啟動DC工具時,會自動讀取”.synopsys_dc.setup”這個配置文件的,這個文件是隱藏在lab1目錄下的,這就是我們?yōu)槭裁匆趌ab1目錄下啟動DC工具。當(dāng)然,你也可以不再在這個目錄下啟動DC,當(dāng)你啟動DC后,可以讀進配置信息文件的,例如“source.synopsys_dc.setup"########////////////######吾句分析結(jié)束###########/########/////////////////////##############在DC的GUI界面視圖下,你將會看到以下的信息。點擊File-Setup,可以查看一些信息,請回答以下的問題。問題一:請問這個工程的的目標(biāo)庫是什么?問題二:請問這個工程的的鏈接庫是什么?問題三:請問這個工程的的符號庫是什么?4.從File->Setup…選擇圖標(biāo) …來使這個搜索路徑Searchpath選擇正確,當(dāng)你點擊進去的時候,你會看到以下搜索路徑方向的列表,同時你可以修改搜索路徑。這里是默認(rèn)的搜索路徑方向。/<tool_installation_directory>/libraries/syn/<tool_installation_directory>/minpower/syn/<tool_installation_directory>/dw/syn_ver/<tool_installation_directory>/dw/sim_ver問題4:請問這個工程的搜索路徑有哪些?5.返回到DesignVision界面,輸入以下命令來驗證DC的一些庫、搜索路徑是否設(shè)置正確。printvartarget_libraryprintvarlink_libraryprintvarsearch_pathalias6,檢查邏輯庫與物理庫之間是否想匹配:check_libraryNotice:從這個報告可知,這里有4個cell是沒有邏輯庫的,分別是“feedthrough”和“tap”cells,因為它們是在物理版圖中反映的,而不是在邏輯設(shè)計中反映,所以這個警告是可以忽略的。7.檢查TLUPus和Technology文件之間是否相匹配:check_tlu_plus_filesNotice:你應(yīng)該能看到4個“pass!”Task3:ReadtheDesignintoDCMemory點擊Read...的按鈕,在左上角(orFile->Read),選中rtl文件夾里的Top.v或TOP.vhdoNotice:在窗口的左上角,你可以看到“LogicalHierarchy”的列表框,該表框的頂頭是top-level設(shè)計名,除了頂層,還包括底層的設(shè)計模塊單元。例如I_FSM,I_DECODE,andI_COUNT。選中TOP(用鼠標(biāo)左鍵點擊選中它),在底下的日志區(qū)你能看到這個設(shè)計為:TOP。這是確保你的當(dāng)前設(shè)計為頂層水平的設(shè)計。SelectFile->LinkDesign->OK去連接這個設(shè)計和解決實例化引用的。簡單來說如果實例化的就是一個與非門,DC就從targetlibrary中找到,如果例化的是一個fifo,DC就從fifo的庫中找到,如果例化的是一個模塊,DC就從內(nèi)存中找到,因為這個模塊的代碼在編譯過程中已經(jīng)讀進內(nèi)存中去了保存設(shè)計文件,格式為“.dcc”。write-hier-fdcc-outunmapped/TOP.ddc########////////////######i吾句分析開始###########/########/////////////////////###################該條語句的目的是把頂層文件保存,-hier指的是以分層的模式保存-f指的是file的意思dcc指的是保存的格式-out指的是輸出unmapped/TOP.ddc指的是在路徑unmapped下保存TOP.ddc。########////////////######語句分析結(jié)束###########/########/////////////////////##############查看設(shè)計文件清單和相關(guān)的庫文件清單list_designslistlibs#########////////////######語句分析開始###########/#######/////////////////////###################該條語句的目的是把保存的所有設(shè)計文件和相關(guān)的庫文件一一列出來########////////////######語句分析結(jié)束###########/########/////////////////////##############Task4:ConstrainTOPwithaScriptfile打開頂層的符號視圖(用鼠標(biāo)選中TOP然后點擊CreateSymbolView),在視圖中你能清晰看到各個端口的名。把約束文件讀進來,進行對TOP設(shè)計文件的約束。sourceTOP.conNote:如果發(fā)現(xiàn)讀進“sourceTOP.con”這條命令時,出現(xiàn)錯誤信息。請你注意當(dāng)前路徑是否包含TOP.con,也就是說要確保當(dāng)前路徑的方向下包含TOP.con約束文件。例如也可以這樣解決“sourcescripts/TOP.con”,這里加上scripts的意思是該TOP.con的約束文件在scripts的路徑下。Task5:CompileorMaptoVendor-SpecificGates對設(shè)計進行綜合或映射到供應(yīng)商特定的門上,即是把RTL級綜合成門級。compile_ultra###############################################################################當(dāng)對設(shè)計文件進行綜合的時候,你可以看到底下的日志區(qū)的信息,包括不同優(yōu)化綜合階段的的表。例如“AREA”指示這個設(shè)計的大?。弧癢ORSTNEGSLACK”指示有多少的關(guān)鍵或糟糕的路徑在設(shè)計中是違反的;“TOTALNEGSLACK”是所有路徑延時違反的總和等等#############################################################################Task6:GenerateReportsandAnalyzeTiming轉(zhuǎn)到頂層的符號視圖SymbolView在design_vision-topo的命令行里輸入以下命令rcNotice:”rc”是一個引用別名,它的定義在.synopsys_dc.setup的文件里,它執(zhí)行的是report_constrain-all_violators;這個報告列出所有違反約束的事務(wù),你能看見"max_delay/setup”的違反同理:rtNotice:rt=report_timing,表示時序報告當(dāng)你輸入以上這條命令時,請問Slack(VIOLATED)=###########################################################################以上這個值為負(fù)數(shù),即表示違法時序約束,在這個實驗?zāi)悴挥美聿鞘欠襁`反時序約束,接下來的實驗會為你講解的##########################################################################生成一個面積報告,ra,然后回答以下的問題Totalcellarea:Task7:SavetheOptimizedDesign
將綜合后的設(shè)計數(shù)據(jù)保存起來返回到TOP的符號視圖選擇菜單File->SaveAs雙擊在mapped的路徑為文件命名“TOP.ddc”點擊保存。保存輸入的命令歷史,通過點擊SaveContentsAs.Task8:RemoveDesisTask8:RemoveDesisandExitDesignVisioni.清空所有的設(shè)計frlist_designs##########################################################################fr=”remove_design-designs”顯示出當(dāng)前所有的命令歷史記錄#############################################################################h=''history”3,退出軟件exit另一種方式來啟動dc的圖形界面UNIX%dc_shell-topostart_guiNotice:在這個步驟,你不用理睬以下這個錯誤信息“Library‘TOP_LIB’alreadyexists”如果你想回到dc_shell模式時可以File->CloseGUIstop_gui6.退出軟件。Task9:UsinganalyzeandelaboratetoreadinanHDLdesign1.進入到lab1的當(dāng)前目錄下UNIX%pwdUNIX%dc_shell-topo2,在dc_shell模式下,把verilog或VHDL讀進來read_verilog./rtl/TOP.vcurrent_designTOPlink3.在dc_shell模式下,另一種方式把verilog或VHDL讀進來filemkdir./workdefine_design_libWORK-path./workanalyze-formatverilog-libraryWORK./rtl/TOP.velaborateTOP4.讀取設(shè)計文件用“-vcs”參數(shù)franalyze-vcs〃-verilog-y./rtl+libext+.v〃\./rtl/TOP.velaborateTOPNotice:“-vcs”不能用于VHDL的設(shè)計Answers問題答案問題1答案:*sc_max.db問題2答案:sc_max.db問題3答案:sc.sdb問題4答案:../ref/libs/mw_lib/sc/LM./rtl./scriptsLab2DesignandLibraryObjectsThereisNOLABforthisunit!Lab3TimingConstraints一、 實驗?zāi)康模捍_定用于目標(biāo)庫的時間單位基于提供的原理圖或規(guī)格說明創(chuàng)建一個新的DC時序約束的腳本3?修改先前的語法約束去適應(yīng)一個符合要求的設(shè)計4-為設(shè)計提供一個約束驗證所施加的約束的完整性和正確性二、 實驗流程:得到一個庫的報告去決定使用哪個單元創(chuàng)建一個新的時序報告文件基于設(shè)計原理圖或規(guī)格說明對設(shè)計文件進行約束,驗證所施加的約束的完整性和正確性三、 實驗步驟:
DesignSpecificationClockDefinitionClockclkhasafrequencyof333.33MhzThemaximumexternalclockgeneratordelaytotheclockportis700ps(HINT:sourcelatency)Themaximuninsertiondelayfromtheclockporttoalltheregisterclockpinsis300ps+/-30ps(HINT:Treatthe300psasnetworklatencyandthe+/-30psasclockskew)Theclockperiodcanfluctuate+/-40psduetojitterApply50psof"setupmargin〃totheclockperiodTheworstcaserise/falltransitiontimeofanyclockpinis120psRegisterSetupTimeAssumeamaximunsetuptimeof0.2nsforanyregisterinMY_DESIGNInputPorts(sequentiallogic)Themaximumdelayfromportsdatalanddata2throughtheinternalinputlogicSis2.2nsThelatestF3dataarrivaltimeattheselportis1.4nsabsolutetime.(HINT:Inputdelayisspecifiedasrelativetime-relativetothelaunchingclockedge)OutputPorts(sequentiallogic)Themaximumdelayoftheexternalcombologicatportout1is420ps;F6hasasetuptimeof80ps.Themaximuminternaldelaytoout2is810psTheout3porthasa400pssetuptimerequirementwithrespecttoitscapturingregisterclockpinCombinationalLogicThemaximundelayfromCin1andCin2toCoutis2.45ns.(HINT:Useappropriateinputandoutputdelayconstraintswithrespecttoclockclk)
Taskl.DeterminetheTargetLibrary’sTimeUnit1-打開終端,進入lab3文件夾的目錄下2.用一個文本編輯器去查看common_setup.tcl文件,然后回答以下的問題問題一:目標(biāo)庫文件名稱是什么?3-以dc_shell的模式啟動DC工具4.UNIX%dc_shell-topo|tee-ilab3.log4.一般地,當(dāng)一個設(shè)計(read_verilog,read_vhdl,read_ddc,oranalyze/elaborate)被讀進來的時候,目標(biāo)庫和連接庫是要事先被讀進DC內(nèi)存里面的。read_db<target_library_FILE>Notice:你不要理睬關(guān)于“Overwritintdesignfile../sc_max.db”5.確定該庫文件相關(guān)的庫名稱list_libs問題二:目標(biāo)庫名?生成一個庫的報告redirect-filelib.rpt{report_lib<library_NAME>}退出DesignCompilerexit8-用一個文本編輯器去查看lib.rpt的文件,并回答以下的問題問題三:這個目標(biāo)庫的的TimeUnit是什么?Task2.CreateaTimingConstraintsFile1-進入scripts的路徑下,用一個文本編輯器去創(chuàng)建一個新的文件MY_DESIGN.con(即viMY_DESIGN.con)問題四:推薦的第一個命令的任何約束文件是什么?2.用DesignSpecificationandDesignSchematic,即是上面頁的表格,再選擇合適的時間單位,寫一個新的約束文件MY_DESIGN.con(即在MY_DESIGN.con上添加內(nèi)容)Notice:當(dāng)你沒有頭緒的時候,你可以參考答案!答案是一個隱藏文件的,在.solutions/MY_DESIGN.con。Notice:可以使用DC’shelp命令,man+命令,可以了解到DC命令的語法以及其意義和作用,也可以創(chuàng)建一個UNIX的引用。例如UNIX%aliasdcman""/usr/bin/man-M$SYNOPSYS/doc/syn/manUNIX%dcmancreate_clock完成編寫約束文件后,需要檢查其語法是否正確UNIX%dcprocheckscripts/MY_DESIGN.conNotice:dcprocheck是一個可執(zhí)行的DesignCompile語法檢查的實體,它決定是否啟動DC。Task3.ApplyConstrainsandValidate在啟動DC前,進入lab3目錄下,你能發(fā)現(xiàn)一個名稱為“MY_DESIGN_LIB”的文件,這個文件是在任務(wù)1啟動DC的時候被創(chuàng)建的。、在lab3的路徑下,現(xiàn)在啟動dc_shell,并回答以下的問題問題5:為什么沒有獲得一個錯誤關(guān)于創(chuàng)建一個新的MWdesignlibrary(這個庫文件在之前已經(jīng)存在了)將設(shè)計文件讀進DC去,Read,linkandcheckthedesignrtl/MY_DESIG.v
正確地讀入約束文件sourcescripts/MY_DESIGN.con檢查有沒有遺漏或矛盾的關(guān)鍵約束,例如check_timingNotice:存在一個警告“thereare21inputportsthatonlyhavepartialinputdelayspecified"這個警告不用理睬。6.修改時鐘和端口約束,例如6.修改時鐘和端口約束,例如report_clockreport_clock-skewreport_port-verbose寫出所施加的約束,例如write_script-outscripts/MY_DESIGN.wscr確保你的約束文件是完整無誤的,通過與提供的0答案對比UNIX%tkdiffscripts/MY_DESIGN.wscr.solutions/MY_DESIGN.wscrORUNIX%diffscripts/MY_DESIGN.wscr.solutions/MY_DESIGN.wscr如果“diff”這個命令不能被識別,請用編輯器查看對比這個“.solutions/MY_DESIGN.con”來檢查這個約束報告是否正確。10?保存設(shè)計并退出write-formatddc-hier-outunmapped/MY_DESIGN.ddcexit問題答案:問題一:sc_max.db問題二:cb13fs120_tsmc_max問題三:1ns問題四:reset_design問題五:Inthedc_setup.tclfilethereisan"if'statementwhichchecksfortheexistenceofaMWdesignlibrary,andskipsthecreate_mw_libcommandifitalreadyexists.Ifthescriptweretoexecutethecreate_mw_libcommandandthelibraryalreadyexisted,youwouldgetthefollowingmessage:“Error:Library'MY_DESIGN_LIB'alreadyexistsLab4EnvironmentalAttributes一、 實驗?zāi)康模鹤远x一個DC環(huán)境屬性基于提供的原理圖和規(guī)格說明對設(shè)計進行環(huán)境屬性的約束修改驗證屬性二、 實驗流程:參照實驗三的每個步驟SavethedesignintheunmappeddirectoryandexitDesignCompiler三、設(shè)計規(guī)格說明:InputPorts(drivers)1.Specifyadriveonallinputs,exceptclkandCin*,usingthebufferbufbd1inthelibrary2.TheCin*portsarechip-levelinputsandhavea120psmaximuminputtransitionOutputPorts(loads)Alloutputs,exceptCout,driveamaximunloadequivalentto2timesthecapacitianceoftheT'pinofthecellbufbd7(seeNotebelow)TheCoutportdrivesamaximunloadof25fFNotice:當(dāng)你運行dcprocheck的時候,你可能會得到一個語法上的警告。你可以不用理睬,???usecurlybracestoavoiddoublesubstitutionexpr2*[load_oflib/cell/pin]為了避免該警告的產(chǎn)生,可以鍵入:Expr{2*[load_oflib/cell/pin]}Lab5SynthesisTechniques?、實驗?zāi)康模??使用合適的綜合技術(shù),以滿足所要求的約束2-在綜合之前,學(xué)會修改合適的指令參數(shù)和變量學(xué)會分析門級水平的網(wǎng)表(確保滿足所有的約束條件,同時采用各種優(yōu)化綜合技術(shù))學(xué)會求助man的指令應(yīng)用,使其能過分析每條DC命令的語句5?使用Layoutwindow去修改物理約束(floorplan)和查看單元器件6.執(zhí)行正式的形式驗證通過使用Formality工具
SynthesisSpecificationAvailabelResourcesYouwilluseaprovidedscript,num_core.sh,todeterminehowmanycpucorestouseAllDesignCompilerfeaturesandrelatedlicenseareavailable;TwolicensesareavailableforeachfeatureDsignandConstraintsFilesRTLcodelocation:rtl/STOTO.vDesignName: STOTOConstraintsfilelocation:scripts/STOTO.conThesefilesmaynotbemodifiedFloorplanFinalfloorplandefinition:1.Thecoresizeis150umX100um2.STOTOhasnoinstantiatedhardmacros3.Standardcellscanbeplacedanywhereinsidethecoreareaexceptfora20umX20umareaintheupper-leftcorner,whichisreservedforadifferentdesignblockDesignSpecificationTheI/OconstraintsareestimatesandhavebeenconservativelyconstrainedThefinalcompileddesignmustmeetsetuptimingonallinternalregister-to-registerpathsTheINPUTblockhierarchyshouldbepreservedtofacilitatepost-synthesisverificationThePIPELINEblockcontaintsa〃pure〃pipelineddesignTheoutput(POUT)ofPIPELINEmustremainregisteredThepositionsofregistersinthe DONT_PIPELINEblockarefixedandcannotbemodifiedDRCviolationsshouldbefixedunlesstheypreventsetuptimingconstraintsfrombeingmetRegistersmaybereplicatedtoimprovetimingThenetlisttopologyshouldbe"congestionfriendly"Wouldliketoachievegoodtimingcorrelationtopost-placementtimingICCompilerThelogicpositionsofregistersmaybemodifiedunlessexpresslyprohibitedbyabovespecs12.ScaninsertionwillbeperformedbytheTestgroupafterthedesignhasmetthesespecifications三、實驗步驟:Taskl.SynthesisofRTLdesigncontainingpipelines1.使用提供的num_cores.sh的腳本,決定在你的計算機上有多少個核可用UNIX%./num_cores.sh問題一,請問你的計算機是多少核的?2-對照綜合規(guī)格說明表,回答問題:問題二,請問有多少個核是用來綜合的。進入lab5路徑下,啟動DC(dc_shell-topo)在scripts路徑下,創(chuàng)建一個新的文件dc.tclo該文件是用來記錄你操作的每一個步驟命令的(即將你輸入進DC的命令,Copy一份到該文件里)當(dāng)你遇到困難的時候,你可以參考runscript部分和compileflow部分來做實驗(即參考答案)6,在讀進設(shè)計前,指定一個SVF的文件,使其所有的retiming(andotherUItra)轉(zhuǎn)換能被捕獲進入一個文件名叫做STOTO.svfsetsvfSTOTO.svf參考設(shè)計約束文件和綜合的的規(guī)格說明(SynthesisSpecification)來執(zhí)行以下步驟。在dc_shell的環(huán)境里,進行read,link,andcheck這個設(shè)計文件STOTO,然后source和check這個時序約束文件。Notice:1.提示信息“preferrredroutingdirection”是正常的,可以不予理睬。當(dāng)輸入check_timing時,出現(xiàn)TIM-212關(guān)于“74inputportsthatonlyhavepartialinputdelayspecified”可以不理睬。Notice:請記得“copyandpaste”Dc的命令進入runscript文件dc.tcl參考綜合規(guī)格說明表布局部分,Source以下的文件進行物理約束。sourceSTOTO.pcon請輸入恰當(dāng)?shù)拿睿蛊浞显O(shè)計說明規(guī)格的第1步到第7步,同時把輸入的命令復(fù)制粘貼到你的腳本去。Notice:當(dāng)你遇到不懂的時候,可以參照答案“RunScriptandCompileFlow”輸入以下的命令,驗證是否符合你的要求,包括各個屬性等report_path_groupget_attribute[get_designs"INPUT"]ungroupget_attribute[get_designs"PIPELINE"]\optimize_registersget_attribute[get_cells\I_MIDDLE/I_PIPELINE/z_reg*]don’t_retimeget_attribute[get_cells\I_MIDDLE/I_DONT_PIPELINE]dont_retimeget_attribute[get_designs"STOTO"]cost_priority問題3:除了每個檢查結(jié)果之外,你還能發(fā)現(xiàn)什么?11.保存你的設(shè)計文件為STOTO.dcc到unmapped的文件目錄下。輸入恰當(dāng)?shù)拿钍蛊淅糜嬎銠C多核優(yōu)化設(shè)計,請對照問題2的答案!查閱設(shè)計說明規(guī)格#8?#12,并且回答以下問題問題4:Compile_ultra的選項參數(shù)有那些?14?把設(shè)計文件進行綜合,用問題4的選項參數(shù)進行綜合。15-借助設(shè)計原理圖回答以下倆個問題。問題5:對于綜合設(shè)計來說,這個設(shè)計是否很好地模塊劃分?為什么?問題6:對于設(shè)計來說,哪一個子設(shè)計需要被打散來獲得理想的模塊劃分?16.當(dāng)綜合完成后,根據(jù)日志信息,回答以下幾個問題。問題7:有多少個計算機核被使用?問題8:有什么是被暗示這個設(shè)計是retimed?問題9:那個子模塊是自動分組到compile_ultar中?17-驗證設(shè)計文件的層次報告。report_hierarchy-noleaf18-生成一個約束報告(rc)。redirect-tee-filerc_compile_ultra.rpt{rc}問題10,是否存在違反約束的?如果是,請列舉出來。問題11:是否應(yīng)該關(guān)注這些違反約束的?并解釋?19.記錄建立時間”WNS"or"worstnegativeslack”max_delay/setuptimingWNS:20-檢查是否有同樣名字的寄存器,若有請修改,結(jié)束帶上”_rep#”#verifytheregisterreplicationnamingstyleprintvarregister_replication_naming_style#List_replicatedregisters,ifany;filter_collection[all_registers]\〃full_name=~*_rep*〃問題12:是否存在同名的寄存器?21-生成一個時序報告:redirect-tee-filert_compile_ultra.rpt{rt}22-查看從“Startpoint”到OUTPUTS組。留意“I_MIDDLE/I_DONT_PIPELINE/IRANDOM???.”包括被分組的子模塊。保存設(shè)計STOTO.ddc到mapped文件目錄下。對于驗證在SVF文件將停止記錄設(shè)計的改變。set_svf-off輸入以下命令,如果返回有cells,這個證實了這些寄存器被移走通過registerretiming.get_cells-hier*r_REG*_s*根據(jù)返回的cells,回答以下問題問題13:在子模塊里是否存在retimedregisters?問題14:你修改那些OUTPUT寄存器在PIPELINE,即z_reg*是否移動?26-輸入以下命令,如果返回有cells,這個證實了這些寄存器被移走通過adaptiveretiming.get_cells-hierR_*問題15寄存器在INPUT子模塊設(shè)計是否被影響通過adaptiveretiming,如果是,是否是-retime選項參數(shù)?問題16,寄存器在PIPELINE子模塊設(shè)計是否被影響通過adaptiveretiming,如果是,是否是-retime選項參數(shù)?問題17:是否所有的寄存器在INPUT子模塊設(shè)計被影響通過adaptiveretiming?27,查閱”CompileFlow”小節(jié),尋求幫組去回答以下倆個問題。問題18:在初始化綜合后,如果一直存在違反,我們建議去做的步驟是什么?問題19:基于設(shè)計規(guī)格說明,請你列出滿足要求的命令。2&通過加default是否修正DRC的違反.set_cost_priority-defaultcompile_ultra-retime-scan-incremental29-生成一個約束報告redirect-tee-filerc_incr_compile.rpt{rc}問題20:是否有DRC違反被修正?30.記錄建立時間“WNS”or“worstnegativeslack“max_delay/settimingWNS:問題21:在綜合后,比較前后的WNS.31-打開一個版圖窗口。dc_shell-topo>start_guiDesignVisionGUI:Window->NewLayoutWindowlab7增加的約束選項實驗?zāi)康模涸谕瓿蛇@個實驗后你應(yīng)該能夠:在下面的情況下約束一個設(shè)計約束上升沿和下降沿觸發(fā)的寄存器輸入/輸出端口被多路徑驅(qū)動或捕獲外部輸入/輸出路徑?jīng)]有默認(rèn)的延時輸入驅(qū)動的扇出有增加額外的負(fù)載編譯已經(jīng)約束好的設(shè)計’把時序報告中的點與相應(yīng)的約束聯(lián)系起來實驗步驟:1、 復(fù)制和重命名約束文件lab4/scripts/MY_DESIGN.con為lab7/scripts/MY_DESIGN.con2、 基于下一頁的規(guī)范和電路原理圖修改約束。3、 參考lab3和lab4例子檢查和糾正約束語句的語法4、從lab7目錄里啟動DC綜合工具問題:1、 生成一個約束報告:report_constraint-all_violators問題1:這個設(shè)計有時序或設(shè)計規(guī)則檢查的違反嗎?2、針對包含輸出端口out1的路徑生成一個時序報告。時序報告中包括如下選項:nettransitiontimes>netdelay和fanout并且精確到小數(shù)點第6位:report_timing-trans-input-sig6-nets\-to[get_portsout1]3、使用報告來定位和填寫以下要求的數(shù)據(jù)。這些數(shù)據(jù)應(yīng)該滿足你的約束。問題2:這個報告中時序路徑的起點是什么?問題3:從這份報告中找出下列起始點值或數(shù)據(jù)發(fā)射值。其中包括生成各報告值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 母嬰護理初級復(fù)習(xí)試題含答案(一)
- 高級育兒試卷復(fù)習(xí)測試卷含答案
- 環(huán)保行業(yè)運營流程優(yōu)化作業(yè)指導(dǎo)書
- 護師及主管護師練習(xí)卷含答案
- 奶茶店品牌評估營銷手冊
- 項目開發(fā)進度管理與計劃安排
- 分析法律制定中權(quán)利約束邊界
- 員工培訓(xùn)計劃與實施細(xì)則
- 醫(yī)療敷料貼合度提高方法
- 三農(nóng)村環(huán)境治理綜合方案
- 研究生學(xué)術(shù)英語寫作 課件 Chapter 7 Abstract;Chapter 8 Citation and Reference
- ISO45001管理體系培訓(xùn)課件
- 心力衰竭患者利尿劑抵抗診斷及管理中國專家共識2024解讀
- 主任臨床查房程序規(guī)范及評分標(biāo)準(zhǔn)
- 《望海潮》《揚州慢》導(dǎo)學(xué)案(含答案) 統(tǒng)編版高中語文選擇性必修下冊
- 土壤有機質(zhì)的測定 編制說明
- 蔣詩萌小品《誰殺死了周日》臺詞完整版
- 醫(yī)美機構(gòu)轉(zhuǎn)讓合同模板
- 全國基層退役軍人服務(wù)中心(站)工作人員職業(yè)技能競賽考試題庫-上(單選、多選題)
- 2024年高考文綜(海南卷)政治試題及答案
- DL 5190.2-2019 電力建設(shè)施工技術(shù)規(guī)范 第2部分:鍋爐機組
評論
0/150
提交評論