




已閱讀5頁(yè),還剩54頁(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)介
邏輯綜合,2,概述,綜合是將RTL源代碼轉(zhuǎn)換成門級(jí)網(wǎng)表的過(guò)程。電路的邏輯綜合一般由三個(gè)步驟組成,即綜合轉(zhuǎn)化邏輯優(yōu)化映射(見下頁(yè)圖)(SynthesisTranslationLogicOptimizationMapping)在綜合過(guò)程中,優(yōu)化進(jìn)程嘗試完成庫(kù)單元的組合,使組合成的電路能最好地滿足設(shè)計(jì)的功能、時(shí)序和面積的要求綜合是約束驅(qū)動(dòng)(constraintdriven)的,給定的約束是綜合的目標(biāo)。約束一般是在對(duì)整個(gè)系統(tǒng)進(jìn)行時(shí)序分析得到的,綜合工具會(huì)對(duì)電路進(jìn)行優(yōu)化以滿足約束的要求。綜合以時(shí)序路徑為基礎(chǔ)進(jìn)行優(yōu)化。常用的綜合工具有Synopsys公司的DesignCompiler和Candance公司的EnconterRTLCompiler,3,4,綜合過(guò)程中時(shí)序與面積的關(guān)系從下圖中可以看出面積與延遲的折衷關(guān)系,綜合工具以約束為指導(dǎo),在滿足時(shí)序的情況下獲得最小面積。如果不施加約束,綜合工具會(huì)產(chǎn)生非優(yōu)化的網(wǎng)表,而這是不能滿足要求的網(wǎng)表。所以約束對(duì)于綜合來(lái)說(shuō)是必不可少的。,5,綜合的基本流程1.準(zhǔn)備RTL代碼:RTL代碼經(jīng)過(guò)前端仿真后才能用于綜合。2.定義庫(kù):設(shè)定好所需要用到的綜合庫(kù)等多種庫(kù)。3.讀入設(shè)計(jì):綜合工具讀入RTL代碼并進(jìn)行分析。4.定義設(shè)計(jì)環(huán)境:設(shè)定設(shè)計(jì)的工作環(huán)境、端口的驅(qū)動(dòng)和負(fù)載,線負(fù)載模型等。5.設(shè)置設(shè)計(jì)約束:這是綜合的一個(gè)極其重要的環(huán)節(jié),設(shè)定好正確的約束才能得到正確的綜合結(jié)果。約束要適當(dāng),不能過(guò)緊或過(guò)松。主要是定義時(shí)鐘和I/O的約束。6.設(shè)置綜合策略:有top-down和bottom-up兩種策略,各有所長(zhǎng),對(duì)于不同的設(shè)計(jì)要具體分析。7.優(yōu)化設(shè)計(jì):綜合工具可以根據(jù)約束對(duì)電路進(jìn)行優(yōu)化,也可以人為地加入命令,改變優(yōu)化方法。8.分析和解決設(shè)計(jì)的問(wèn)題:在設(shè)計(jì)綜合(compile)后,根據(jù)報(bào)告來(lái)分析設(shè)計(jì)中出現(xiàn)的問(wèn)題,進(jìn)而修訂所出現(xiàn)的問(wèn)題。9.保存設(shè)計(jì)數(shù)據(jù):綜合完成后,保存各種數(shù)據(jù),以供后續(xù)的布局布線使用(需先通過(guò)驗(yàn)證)。,6,BasicFlow,DevelopHDLfiles,Specifylibraries,Readdesign,Definedesignenvironment,Setdesignconstraints,Selectcompilestrategy,Optimizethedesign,Analyzeandresolvedesignproblem,Savethedesigndatabase,7,DesignCompiler簡(jiǎn)介,DesignCompiler有兩種界面供用戶使用,一種是命令界面,一種是圖形界面。在UNIX命令行下分別執(zhí)行以下命令可以分別進(jìn)入上述兩種界面:unixdc_shell-t(命令界面)unixdesign_vision(圖形界面)DesignCompiler支持TCL(ToolCommandLanguage)語(yǔ)言,它是公開的業(yè)界標(biāo)準(zhǔn)界面語(yǔ)言。DC-Tcl在TCL的基礎(chǔ)上擴(kuò)展豐富了TCL,使用戶可以更加靈活方便地運(yùn)用TCL命令來(lái)對(duì)電路進(jìn)行分析和優(yōu)化。DC中包含了多種工具,如DFTCompiler,PowerCompiler,HDLCompiler,LibraryCompiler等,使得DC具有強(qiáng)大的功能,成為業(yè)界最流行的綜合工具。,8,目標(biāo)庫(kù)和初始環(huán)境的設(shè)置,DC啟動(dòng)時(shí)會(huì)先啟動(dòng).synopsys_dc.setup文件,它里面設(shè)定了綜合所需要的工藝庫(kù)的信息以及一些對(duì)于工具的設(shè)定命令。在綜合之前,要設(shè)定好所需要的庫(kù),如綜合庫(kù)、I/O單元庫(kù),IP核等。半導(dǎo)體廠商提供與DC兼容的工藝庫(kù)綜合庫(kù),它包含許多信息,如單元的功能、面積、時(shí)間、功耗、測(cè)試等,線負(fù)載模型,工作條件和設(shè)計(jì)規(guī)則約束等。在0.18um的工藝下,可采用非線性延遲模型(NLDM)來(lái)計(jì)算單元的延遲。單元的延遲與輸入的邏輯轉(zhuǎn)換時(shí)間和輸出負(fù)載有關(guān)。根據(jù)每個(gè)單元的輸入邏輯轉(zhuǎn)換時(shí)間和輸出負(fù)載,在工藝庫(kù)提供的查找表(Look-UpTable)中查出單元的延遲。,9,.synopsys_dc.setup文件主要包括各種庫(kù)的設(shè)定,變量的設(shè)定等。下面具體介紹各種庫(kù)的意義及如何設(shè)定。(實(shí)例)目標(biāo)庫(kù)(target_library):是DC在做編譯(compile)的時(shí)候來(lái)構(gòu)成電路圖的,將電路映射到具體的單元上。例如settarget_librarymy_tech.db鏈接庫(kù)(link_library):是將設(shè)計(jì)連接到對(duì)應(yīng)的庫(kù)上,一般包含目標(biāo)庫(kù)、宏單元、IP核等。例如:setlink_library“*my_tech.db”。其中“*”指明當(dāng)鏈接設(shè)計(jì)時(shí),DC先搜尋內(nèi)存中已有的庫(kù),然后再搜尋變量link_library中制定的其它庫(kù)。符號(hào)庫(kù)(symbol_library):定義了單元顯示的圖形庫(kù),當(dāng)用design_vision來(lái)查看圖形的時(shí)候使用。綜合庫(kù)(synthetic_library):是由Synopsys公司提供的DesignWare庫(kù),包含了許多IP核及運(yùn)算單元,用于實(shí)現(xiàn)verilog描述的運(yùn)算符,為電路的優(yōu)化起著重要的作用。搜尋路徑(search_path):指定各種庫(kù)的路徑,可以將所用的庫(kù)的路徑放入search_path中,在設(shè)定target_library和link_library時(shí)就不必加上庫(kù)的絕對(duì)路徑,DC會(huì)自動(dòng)在search_path中尋找所用到的庫(kù)的路徑從而讀入該庫(kù)。,.synopsys_dc.setup文件,10,變量的設(shè)定:設(shè)置的變量在DC啟動(dòng)時(shí)讀入,便于綜合的處理,同時(shí)有些DC的變量必須在設(shè)置文件中輸入。如可以設(shè)定命令的簡(jiǎn)寫,保存多少條命令等:aliascudcurrent_designaliasrptreport_timinghistorykeep300,11,綜合腳本實(shí)例(.synopsys_dc.setup),12,系統(tǒng)層次的劃分與基本概念,在DC中,每個(gè)設(shè)計(jì)由6個(gè)設(shè)計(jì)物體組成,它們分別是design,cell,port,pin,net和clock。其中clock是特別的端口,它存在DC內(nèi)存中,是用戶自己定義的物體。如下圖所示:,13,當(dāng)前設(shè)計(jì)為TOP。Port和Pin是與當(dāng)前設(shè)計(jì)有關(guān)的一對(duì)概念,如果當(dāng)前設(shè)計(jì)改變,相應(yīng)的port和pin也會(huì)不同,14,設(shè)計(jì)讀入,讀入設(shè)計(jì)有多種方法,DC支持讀入Verilog,VHDL,可以是RTL級(jí)代碼,也可以是門級(jí)網(wǎng)表,也可是ddc格式的文件。綜合前的設(shè)計(jì)不需用RTL格式(雖然也有其它格式)輸入到DC中??梢杂靡韵旅钭x入設(shè)計(jì):1.analyze和elaborate命令:這是兩個(gè)不同的命令,它使得設(shè)計(jì)人員可以在建立設(shè)計(jì)通用邏輯之前先對(duì)設(shè)計(jì)進(jìn)行語(yǔ)法錯(cuò)誤和RTL轉(zhuǎn)換分析。2.read_file命令:如:read_fileformatverilogsd_clk.v3.read_verilog或read_vhdl命令,這些是從read_file中分離出來(lái)的命令,如:read_verilogsd_clk.v讀入代碼后用命令current_design和link將讀入的設(shè)計(jì)和綜合庫(kù)連接起來(lái)。,15,電路的設(shè)計(jì)目標(biāo)與約束,RTL模塊綜合的流程如下圖所示。電路的約束分為設(shè)計(jì)環(huán)境和設(shè)計(jì)約束,DC以約束為目標(biāo)進(jìn)行電路優(yōu)化。,16,設(shè)計(jì)環(huán)境通過(guò)環(huán)境約束的設(shè)計(jì),將設(shè)計(jì)所處的真實(shí)環(huán)境因素包含進(jìn)去,使得設(shè)計(jì)可以正常工作在真實(shí)環(huán)境下。環(huán)境約束如下圖所示:,17,set_operating_conditions描述了設(shè)計(jì)的工藝、電壓及溫度條件。Synopsys庫(kù)包含這些條件的描述,通常為WORST,TYPICAL,BEST情況。工作條件的名稱可庫(kù)的名稱是相關(guān)的,如SMIC0.18um工藝提供slow.db,typical.db,fast.db三種工藝庫(kù),它們的工作條件分別是slow(WORST),typical(TYPICAL)和fast(BEST)。WORST情況通常用于綜合階段,而BEST情況通常用于修正保持時(shí)間違規(guī)。有時(shí)可能同時(shí)用WORST和BEST情況同時(shí)優(yōu)化設(shè)計(jì),這時(shí)使用命令:set_operating_conditions-maxslow-max_libraryslow-minfast-min_libraryfast可以用set_min_library指定best和worst兩種庫(kù),在設(shè)計(jì)中所用到的庫(kù)都可以指定。如:#為綜合用的sram庫(kù)指定最佳情況可最壞情況set_min_librarysram_slow.dbmin_visionsram_fast.db,18,set_wire_load_model命令為DC提供估計(jì)的線負(fù)載信息,反過(guò)來(lái)DC使用線載信息把連線延遲建模為負(fù)載的函數(shù),Synopsys工藝庫(kù)里提供了多種線載模型,每個(gè)模型代表一個(gè)特定大小的模塊。設(shè)計(jì)人員需要準(zhǔn)確地選擇線載模型。設(shè)置線載模型命令如下:set_wire_load_modelnamesmic18_wl10libraryslowset_wire_load_mode定義了三種同建模線負(fù)載模型相關(guān)的模式,分別是top,segmented和enclosed,如下圖所示:,19,1.top模式定義層次中所有連線將繼承和頂層模型同樣的線載模型。如上圖中,所有的連線都繼承頂層的線載模型50 x50。2.segmented模式用于跨越層次邊界的連線。如上圖中,子模塊A和子模塊B中的連線繼承各自的線載模型,而A與B之間的連線繼承模塊MID的線載模型。3.enclosed模式指定所有的連線(屬于子模塊的)將繼承完全包含該子模塊的模塊線載模型。如上圖中,整條連線處于模塊MID的完全包圍中,所以采用40 x40線載模型。其命令如下set_wire_load_modeenclosedset_driving_cell和set_drive用于設(shè)置模塊輸入端口的驅(qū)動(dòng)能力。set_drive命令用于指定輸入端口的驅(qū)動(dòng)強(qiáng)度,它主要用于模塊或芯片端口外驅(qū)動(dòng)電阻。set_driving_cell用于對(duì)輸入端口的驅(qū)動(dòng)電阻進(jìn)行建模,這一命令將驅(qū)動(dòng)單元的名稱作為其參數(shù)并將驅(qū)動(dòng)單元的所有設(shè)計(jì)規(guī)則約束應(yīng)用于模塊的輸入端口。set_driving_celllib_celland2a0get_portsIN1libraryslow,20,set_drive10get_portsData_in_0set_load將工藝庫(kù)中定義的單位(通常為pf)上的容性負(fù)載設(shè)置到設(shè)計(jì)的指定連線或端口,設(shè)置輸出端口的負(fù)載。set_load5get_portsOUT1set_loadload_ofmy_lib/and2a0/Aget_portsOUT1,21,設(shè)計(jì)約束描述了設(shè)計(jì)目標(biāo),包括時(shí)序和面積等。DC會(huì)依據(jù)約束來(lái)優(yōu)化電路。因?yàn)椴粚?shí)際的規(guī)范會(huì)導(dǎo)致面積增大、功耗增加和/或時(shí)序惡化,所以設(shè)計(jì)人員必須根據(jù)情況指定實(shí)際的約束,約束設(shè)計(jì)的基本命令如下圖所示。,設(shè)計(jì)約束,22,單周期同步設(shè)計(jì)的時(shí)序要求DC默認(rèn)的時(shí)序電路是單周期的,如下圖所示。假設(shè)FF3的建立時(shí)間為Tsetup,保持時(shí)間為Thold,觸發(fā)器FF2的時(shí)鐘端到Q端的延遲為Tclk-q,對(duì)于setup來(lái)說(shuō):clockperiodTclk-q+Tx-max+Tsetup對(duì)于hold來(lái)說(shuō):TholdTclk-q+Tx-min,時(shí)鐘,23,定義時(shí)鐘create_colckperiod10get_portclk對(duì)于時(shí)鐘(除了虛擬時(shí)鐘)的定義來(lái)說(shuō),時(shí)鐘周期和時(shí)鐘源(port或pin)是必不可少的,還可以定義時(shí)鐘的占空比,時(shí)鐘名等。定義虛擬時(shí)鐘時(shí),不必定義時(shí)鐘源。設(shè)定時(shí)鐘的uncertainty、latency和transition,其中uncertainty是用來(lái)模擬時(shí)鐘的skew和jetter,latency設(shè)定時(shí)鐘的延遲,transition設(shè)定時(shí)鐘的轉(zhuǎn)換時(shí)間。通過(guò)這些設(shè)定讓時(shí)鐘更加接近實(shí)際情況,更有利于綜合的準(zhǔn)確性,但過(guò)分約束會(huì)使得綜合起來(lái)比較困難。由于時(shí)鐘一般是高扇出(highfanout)的,DC不會(huì)對(duì)高扇出的連線做設(shè)計(jì)規(guī)則(DRC)的檢查和優(yōu)化。DC默認(rèn)的時(shí)鐘網(wǎng)絡(luò)是理想的。在綜合時(shí)不對(duì)時(shí)鐘的高扇出做處理,而是留在后續(xù)的布局布線中做時(shí)鐘樹綜合(CTS)。,24,sourcelatency是指實(shí)際的時(shí)鐘源到時(shí)鐘定義點(diǎn)的傳播延遲,而networklatency是指設(shè)計(jì)內(nèi)部從時(shí)鐘定義點(diǎn)到觸發(fā)器時(shí)鐘端的延遲。如下圖所示,設(shè)置如下:create_clockperiod10get_portsCLK#設(shè)置sourcelatency為3nsset_clock_latencysource3get_clocksCLK設(shè)置networklatency為1nsset_clock_latency1get_clocksCLK,25,set_clock_uncertainty命令讓用戶定義時(shí)鐘扭斜信息?;旧洗嗣钣糜诮o時(shí)鐘的建立時(shí)間和保持時(shí)間增加一定的余量。由時(shí)鐘的抖動(dòng)(jitter)可扭斜(skew)組成,如下圖:set_clock_uncertainty0.6get_clocksCLKset_clock_transition命令讓用戶定義時(shí)鐘的轉(zhuǎn)換時(shí)間。如下圖set_clock_transition0.45get_clocksCLK,26,除了create_clock命令,還有create_generated_clock命令用來(lái)創(chuàng)建產(chǎn)生的時(shí)鐘,如時(shí)鐘經(jīng)過(guò)分頻后的時(shí)鐘,在創(chuàng)建生成時(shí)鐘時(shí),要指定源時(shí)鐘的名字和端口,分頻數(shù)(倍頻數(shù)),生成時(shí)鐘的端口。create_generated_clocksourceclk2xdivied_by2get_pinsclk有時(shí)需要?jiǎng)?chuàng)建虛擬時(shí)鐘(virtualclock)用來(lái)說(shuō)明相對(duì)于時(shí)鐘的I/O端口的延遲,虛擬時(shí)鐘在設(shè)計(jì)里并不驅(qū)動(dòng)觸發(fā)任何寄存器。#建立虛擬時(shí)鐘,周期為10ns,命名為vclk,不需要定義時(shí)鐘源create_clockperiod10namevclk通常給時(shí)鐘加上dont_touch的約束,使得DC在綜合的時(shí)候不會(huì)給時(shí)鐘網(wǎng)絡(luò)加入BUFFER以滿足skew的要求,時(shí)鐘網(wǎng)絡(luò)通常留在布局布線階段進(jìn)行時(shí)鐘樹綜合(CTS)。set_dont_touch_networkget_clocksclk,27,I/O的約束,set_input_delay指定相對(duì)于時(shí)鐘的信號(hào)輸入的到達(dá)時(shí)間。它用在輸入端口,指定在時(shí)鐘沿后數(shù)據(jù)穩(wěn)定所需的時(shí)間。如下圖所示,設(shè)置的輸入延遲的值為Tclk-qTM。,28,例:根據(jù)外部邏輯的延遲設(shè)定輸入延遲#創(chuàng)建時(shí)鐘create_clockperiod20nameClkget_portsClk將時(shí)鐘設(shè)置為dont_touch_networkset_dont_touch_networkget_clocksClk設(shè)置輸入延遲,外部邏輯延遲最大值為7.4,加入-max選項(xiàng)用于setup分析(setup分析采用最慢的路徑延遲)set_input_delay7.4maxclockClkget_portsA,29,set_output_delay命令用于在輸出端口定義在時(shí)鐘邊沿來(lái)到之前數(shù)據(jù)有效所需時(shí)間。如下圖所示,設(shè)置輸出時(shí)間的值為TTTsetup,30,例:設(shè)置輸出延遲#創(chuàng)建時(shí)鐘create_clockperiod20nameClockget_portsClock將時(shí)鐘設(shè)置為dont_touch_networkset_dont_touch_networkget_clocksClock設(shè)置輸入延遲,外部邏輯setup要求為7.0,即為setup分析設(shè)定輸出延遲set_output_delay7.0maxclockClockget_portsB,31,DRC約束,DRC即DesignRuleConstraints,一般由半導(dǎo)體廠商提供,在使用工藝庫(kù)中的邏輯單元時(shí)對(duì)其連接所強(qiáng)加的限制,主要有:max_capacitance,max_transition,max_fanout為當(dāng)前設(shè)計(jì)設(shè)定最大電容值為0.5pfset_max_capacitance0.5current_design為當(dāng)前設(shè)計(jì)設(shè)定最大轉(zhuǎn)換時(shí)間為2.0ns,在整個(gè)設(shè)計(jì)上施加最大轉(zhuǎn)換時(shí)間延遲可以幫助防止在上連線上出現(xiàn)長(zhǎng)的轉(zhuǎn)換時(shí)間,也可以約束單元的輸出端的轉(zhuǎn)換時(shí)間以減少其功耗set_max_transition2.0current_design在當(dāng)前設(shè)計(jì)的所有單元的輸出引腳上設(shè)置max_fanoutset_max_fanout10current_design在DC優(yōu)化時(shí),DRC約束具有最高的優(yōu)先級(jí),DC會(huì)先讓電路滿足DRC,然后才是時(shí)序約束。,32,面積約束,我們用set_max_area來(lái)設(shè)定面積約束。例如set_max_area1000set_max_area0面積的單位由工藝庫(kù)定義,可以是:1.2輸入與非門2.晶體管數(shù)目3.平方微米設(shè)定了面積約束,DC會(huì)盡量?jī)?yōu)化到所設(shè)定的面積;當(dāng)沒有設(shè)定面積約束時(shí),DC會(huì)做最小限度的面積優(yōu)化;若設(shè)定為0,則DC會(huì)對(duì)面積做優(yōu)化直到再繼續(xù)優(yōu)化也沒有大的效果,這樣可以使得面積優(yōu)化最小,但運(yùn)行時(shí)間較長(zhǎng)??捎妹顁eport_area報(bào)告面積。,33,時(shí)序例外,時(shí)序例外有以下幾種:1.Falsepaths。用set_false_path來(lái)設(shè)定路徑使得DC不對(duì)其進(jìn)行時(shí)序分析,移除該路徑上的時(shí)序約束。通常異步電路的時(shí)鐘之間、邏輯上不存在的路徑等上設(shè)定為falstpath2.Minimumandmaximumpathdelayvalue。我們使用命令set_max_delay和set_min_delay來(lái)覆蓋默認(rèn)的用于setup和hold約束的最大/最小延遲。3.Multicyclepaths。由于DC默認(rèn)的是單周期,有時(shí)某些路徑可能需要多個(gè)周期的時(shí)間才能到達(dá),如在兩個(gè)寄存器之間進(jìn)行乘法操作可能需要多個(gè)周期才能完成,這時(shí)用命令set_muticycle_path來(lái)設(shè)定多周期路徑,以滿足時(shí)序要求。同時(shí)要注意setupcheck和holdcheck的設(shè)定。,34,綜合策略的選擇,綜合的策略有兩種:自頂向下和自底向上。1.自頂向下(top-down):在top-down的綜合方案中,頂層模塊和它的所有子模塊放在一起優(yōu)化,所有的限制條件和電路工作環(huán)境一般也都是針對(duì)頂層模塊設(shè)置的,因此,這種綜合方案能夠自動(dòng)將模塊之間的連接和依賴關(guān)系考慮到綜合中去,從而優(yōu)化綜合結(jié)果。但是,這種方法對(duì)于一個(gè)規(guī)模比較大的電路顯然不適合,因?yàn)樵诰C合的過(guò)程中,所有的模塊必須同時(shí)存在于存儲(chǔ)區(qū)中,而且運(yùn)行時(shí)間也會(huì)比較長(zhǎng)。2.自底向上(bottom-up):即分而治之的解決方法。從最底層模塊開始綜合優(yōu)化,必須對(duì)所有底層子模塊施加限制條件并且需要單獨(dú)優(yōu)化,這個(gè)過(guò)程一直延續(xù)到頂層模塊。其中每一個(gè)子模塊綜合完成之后,直接將該模塊集成到它的上一級(jí)中和上一級(jí)的其他模塊一起優(yōu)化,而且一般使用set_dont_touch命令讓DC不再改變?cè)撟幽K的結(jié)構(gòu)。使用這種方法進(jìn)行優(yōu)化的優(yōu)點(diǎn)是當(dāng)工作站的處理能力不足時(shí),可以分別進(jìn)行子模塊的優(yōu)化,而不需要將所有的模塊都放到存儲(chǔ)區(qū)中,這種做法的缺點(diǎn)是只能在子模塊內(nèi)部進(jìn)行優(yōu)化,無(wú)法考慮到模塊周圍的環(huán)境而將子模塊和其他的模塊一起優(yōu)化。,35,設(shè)計(jì)優(yōu)化,采用命令compile或compile_ultra來(lái)啟動(dòng)DC綜合和優(yōu)化的進(jìn)程。DC提供許多選項(xiàng)來(lái)設(shè)定進(jìn)行何種綜合。compile_ultra命令具有強(qiáng)大的功能,使用該命令可以得到更好的延遲質(zhì)量,特別適用于高性能的算術(shù)電路優(yōu)化。該命令包含了以時(shí)間為中心的優(yōu)化算法。compile_ultra命令主要的開關(guān)選項(xiàng)有:-scan做可測(cè)性設(shè)計(jì)編輯,加入掃描鏈-no_autoungroup關(guān)掉自動(dòng)取消劃分特性-no_boundary_oprimization不作邊界優(yōu)化-area_high_effort_script面積優(yōu)化-timing_high_effort_script時(shí)序優(yōu)化,36,電路的優(yōu)化分為三個(gè)階段:結(jié)構(gòu)級(jí)的優(yōu)化,邏輯級(jí)優(yōu)化和門級(jí)優(yōu)化,如下圖所示。,37,1.結(jié)構(gòu)級(jí)的優(yōu)化,包括:1.1設(shè)計(jì)結(jié)構(gòu)的選擇:在DesignWare中選擇最合適的結(jié)構(gòu)或算法實(shí)現(xiàn)電路的功能。1.2數(shù)據(jù)通路的優(yōu)化:選擇CSA等算法優(yōu)化數(shù)據(jù)通路的設(shè)計(jì)1.3共用子表達(dá)式:例如下面兩個(gè)等式:SUM1=A+B+C;Temp=A+B;SUM2=A+B+D;SUM1=Temp+C;SUM3=A+B+E;SUM2sourceechoverboseconstraints.tcl5.綜合,優(yōu)化dc_shellcompile_ultrano_autogroup6.查看報(bào)告dc_shellreport_constraintall_violarors7.保存文件dc_shellwriteformatddchierarchyoutputRecordchiptop.ddc,55,1.熟悉設(shè)計(jì),獲得設(shè)計(jì)目的和要求。輸入信號(hào):在小芯片中,輸入時(shí)鐘clk_128,時(shí)鐘頻率為128KHz。Read_ADPCM為輸入控制信號(hào),采樣速率為8K,類似于一個(gè)頻率為8K的時(shí)鐘,且占空比為50。另外就是8位的數(shù)據(jù)輸入信號(hào),reset信號(hào)。在這里還有inout信號(hào)CMD,DATA0,但不用作輸入,只用作輸出。輸出信號(hào):輸出SD卡輸入時(shí)鐘信號(hào)CLK,這里輸出的CLK配置成clk_128的兩分頻,即64K,和輸出數(shù)據(jù)DATA0信號(hào),輸出CMD信號(hào)。,56,2.設(shè)置.synopsys_dc.setup文件選擇要使用的工藝文件,這里采用SMIC的0.18um工藝,SMIC提供了slow.db,fast.db和typical.db三種標(biāo)準(zhǔn)單元的綜合庫(kù),我們選用slow和fast兩種庫(kù),其中slow用于最壞情況分析,fast用于最佳情況分析。芯片中的sram是IP核,提供了包含時(shí)序信息的綜合庫(kù)用于邏輯綜合,它也有最壞情況和最佳情況之分,另外用到的綜合庫(kù)還有標(biāo)準(zhǔn)的IO單元的綜合庫(kù)。具體設(shè)置可參見示例文件。3.啟動(dòng)DC,讀入RTL代碼,并寫出RTL級(jí)代碼的ddc文件。在unix的終端中鍵入dc_shell,即可啟動(dòng)DC,這時(shí)讀入代碼文件,可以一個(gè)一個(gè)的讀入,也可以寫成TCL語(yǔ)言的文本,用source命令在dc_shell中讀入。使用命令analyze和elaborate來(lái)讀入設(shè)計(jì)。讀入設(shè)計(jì)后用check_design命令來(lái)檢查設(shè)計(jì)存在的問(wèn)題,是否是可綜合的。具體命令可見腳本文件。4.設(shè)置約束。這是一個(gè)及其重要的環(huán)節(jié)。要在熟悉設(shè)計(jì)的前提下才能設(shè)置好正確的約束,約束的設(shè)置要參考與芯片輸入輸出有關(guān)的芯片的輸出/輸入信號(hào)時(shí)序,還要了解0.18工藝下如何選擇線負(fù)載模型,如何設(shè)置DRC規(guī)則等??梢韵仍O(shè)置工作條件,最壞情況采用slow,最佳情況采用fast,并對(duì)應(yīng)相應(yīng)的庫(kù),選擇wire_load_model,要根據(jù)設(shè)計(jì)的大小來(lái)選擇合適的線負(fù)載模型。,57,設(shè)置DRC規(guī)則,通常DRC約束由工藝廠商設(shè)定,我們可以選擇加緊約束以使得綜合出來(lái)的結(jié)果更加滿足各種約束條件。不同工藝下的DRC約束是不同的,可以根據(jù)經(jīng)驗(yàn)對(duì)設(shè)計(jì)加緊約束,但約束不可過(guò)緊,這樣會(huì)延長(zhǎng)綜合的時(shí)間,甚至導(dǎo)致綜合出的結(jié)果不可用。定義時(shí)鐘。定義兩個(gè)輸入時(shí)鐘和一個(gè)輸出時(shí)鐘。并設(shè)置時(shí)鐘的延遲,轉(zhuǎn)換時(shí)間和不確定時(shí)間,使得時(shí)鐘和真實(shí)的情況更加接近。綜合時(shí)通常對(duì)時(shí)鐘加緊約束,如加上10的余量,這樣綜合出的結(jié)果更加可信。I/O端
溫馨提示
- 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年自建房房屋租賃合同模板(含租賃期間維修費(fèi)用)
- 二零二五年度武漢市租賃房屋租賃期滿續(xù)約合同
- 2025年度車輛事故處理與車輛拖車服務(wù)合同
- 2025年度橋梁施工質(zhì)量檢測(cè)與驗(yàn)收合同
- 2025年度生物醫(yī)藥研發(fā)聘用高級(jí)技術(shù)專家合同
- 二零二五年度船舶抵押貸款中介傭金協(xié)議
- 2025至2031年中國(guó)鱈魚丸行業(yè)投資前景及策略咨詢研究報(bào)告
- 房子中介的合同范本
- 餅干供應(yīng)合同范本
- 商品購(gòu)銷意向合同范本
- 2024年下半年中國(guó)海油秋季校園招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 《京東家法》定稿
- 學(xué)前兒童發(fā)展心理學(xué)(第3版-張永紅)教學(xué)課件1754
- 特氣供應(yīng)系統(tǒng)的規(guī)劃與設(shè)計(jì)
- 中職《機(jī)械基礎(chǔ)》全套課件(完整版)
- 勞技-中國(guó)結(jié)PPT通用課件
- 溫庭筠《望江南》ppt課件
- 口腔正畸學(xué)單詞
- 內(nèi)襯修復(fù)用HTPO管材企標(biāo)
- 部編教材一年級(jí)下冊(cè)生字筆順筆畫
- 二維火收銀使用手冊(cè)
評(píng)論
0/150
提交評(píng)論