講課-物理設計(4學時)_第1頁
講課-物理設計(4學時)_第2頁
講課-物理設計(4學時)_第3頁
講課-物理設計(4學時)_第4頁
講課-物理設計(4學時)_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

物理設計2物理設計是把電路信息轉換成foundry廠可用于掩膜的版圖信息的過程,它包括數(shù)據(jù)準備、布局、時鐘樹綜合、布線及DRC、LVS等步驟如右圖所示常用的布局布線工具有Synopsys公司的ICCompiler、Astro和Candance公司的SOC-Enconter。

3ICCompiler是synopsys公司繼Astro之后推出的另一款P&R工具(芯片設計的物理實施通常被簡稱為布局布線,placeandroute),本課件中出現(xiàn)的一些圖中的Astro工具可以當作ICCompiler來理解。如下頁圖1所示,輸入ICCompiler的有:門級網表、庫文件、時序約束。輸出ICCompiler的是layout(常用格式是GDSII)。4圖15圖267庫的建立做物理設計首先要建立referencelibraryReferencelibrary包括以下幾部分:standcelllibrary、padlibrary、macrocell(或IPlibrary)。Standcell包括inverters、buffers、ands、ors、nands、muxes、flip-flops等Padcell包括信號pad、電源地padMacro即設計中用到的一些宏模塊下頁以圖講解standcell、padcell、macro8四個conner位于芯片的四個角,起到連接四邊IOpad的作用。9布圖規(guī)劃floorplan(布圖規(guī)劃)的主要內容包含了對芯片大小(diesize)的規(guī)劃、芯片設計輸入輸出(IO)單元的規(guī)劃、宏模塊的規(guī)劃、電源網絡的設計等floorplan在整個流程中具有十分重要的地位,因為floorplan一旦確定,則整個芯片的面積就定下來了,同時它也與整個設計的timing和布通率(布線能否布通)有著密切的關系?;旧狭鞒讨械姆磸椭饕前l(fā)生在這一步中。如果這一步做得比較好,則后面oncepass的幾率就比較高,反之如果回溯到這一步,則花費的時間開銷就會很大。floorplan是物理設計中手工程度很大的工作10布圖規(guī)劃通常情況下,一個芯片由corearea和padarea組成11布圖規(guī)劃Padarea由以下幾個部分組成:1、Input/Output/InOutpads如右圖中Reset2、Powerpadsandconnerpads右圖上右上角那個CornerUR為一個connerpadsConnerpads的作用是連接其兩邊的Pads(連接襯底以及襯底以上的各個層)VDDVSS為Powerpads,其對外連接供電的封裝引腳,對芯片則起到供電的作用,Powerpads可以分為對core供電的pads和對IOpads供電的pads,所有的Pad都是由晶體管以及各層金屬構成的,Pad也是一個cell。12布圖規(guī)劃3、PadsfillersPadsfillers為圖中Filler所示,其作用為連接兩個兩鄰的pads(從襯底到各層金屬的相連)P/Grings所有信號pads、電源地pads、fillers、conners都是有電源地的引腳的,用金屬線把這些引腳相連,形成padarea上的一個環(huán),稱為P/Grings,如果所有的pads都是無縫排列的,那么pads上的自身的金屬已經相互連接成了P/Gring。13布圖規(guī)劃Floorplan階段在corearea內要確定macro的位置,可以通過飛線顯示macro的pins與io或其它macro的pins的連接關系,來幫助確定macro的位置Floorplan要進行預布線,即布電源地網絡。概述里面已經講到從floorplan

placement

clocktreesynthesisrouting的流程。有兩個地方做了布線的工作即floorplan階段的電源地網絡的布線、routing階段的信號的詳細布線。14布圖規(guī)劃Floorplan

請參看PNR/scripts/run_icc_record.tcl中####Floorplan階段腳本Shell下鍵入icc_shell-64bit|teelog.1027啟動ICC把run_icc_record.tcl中####Floorplan以上部分復制粘貼入icc_shell中即可完成參考庫的調用、設計庫的創(chuàng)建的工作。由于floorplan階段手工活較多,故在此敘述也較詳細,并輔以視頻。15布圖規(guī)劃先從腳本中把derive_pg_connection–power_netVDD–power_pinVDD–ground_netVSS–ground_pinVSS和derive_pg_connection–power_netVDD–ground_netVSS–tie粘入icc_shell,這兩句告訴工具電源地的連接信息。再定義pad的擺放read_io_constraints../inputs/io.tdf,io.tdf文件中定義了pad的擺放。再按視頻中方式initializefloorplan16布圖規(guī)劃再擺放macro的位置,本實驗中為兩個sram,擺放的過程中利用到了飛線。接下來分別創(chuàng)建電源地網絡,包括以下:Corering:core的四周,用以給core供電Strap:實驗中可以看到是core內部的幾條豎直的VDDVSS電源線。其作用是把corering連接至core內Macroring:macro的周圍,用以給macro供電Rail:用以給標準單元供電,在本實驗中,你可以通過放大corearea處,觀察到眾多相對于strap要細很多的水平且平行的rail。17實驗中的電源地網絡18布局在floorplan結束后,芯片的大小,電源網絡,macro的位置已經確定了,接下來的工作是標準單元的布局工作。布局工作是時序驅動(timingdriven)的,即布局出來的結果要滿足時序的要求。ICC時序分析采用靜態(tài)時序分析(STA),STA必須要獲得單元延時(celldelay)和線延時(netdelay)19布局ICC會計算每個單元的延時和每條線的延時單元的延時信息由foundry提供的單元庫文件提供為了計算線延時,ICC必需知道每條線的寄生電阻和寄生電容20布局在布局階段,實際的金屬線是不存在的,故需要有一種估計的方法估計線延時。在由RTL代碼到門級網表的綜合過程中,也需要用到STA,綜合階段對延時的估計基于WLM(WireLoadModel)。根據(jù)fanout估計R和C,這顯然和最終的版圖的實際結果有很大出入。21布局布局過程中,每個單元是有自己的物理位置的,我們就不再采用WLM去估計延時了,我們采用虛擬布線(virtualrouting)技術去估計延時。22布局綜合階段的時鐘信號和高扇出信號被定義成理想的和don’t_touch(綜合工具不對其進行插buffer的操作)的布局階段對高扇出(如reset、set、enable等)要進行高扇出綜合(HFS)。ICC布局階段的一個命令place_opt內嵌了自動高扇出綜合(AutomaticHighFanoutSynthesis)時鐘樹的處理是在place之后,CTS(ClockTreeSynthesis)階段進行時鐘樹綜合的在布局階段我們需要模擬時鐘樹的影響23利用理想的時鐘網絡顯然過于樂觀,為了進一步接近實際的時鐘,skew,latency,transition的影響應當被模擬進來2425布局實際的時鐘樹網絡無法保證時鐘源點到該時鐘域內所有寄存器的clk端的延時是絕對相等的,時鐘源點到不同寄存器的clk端的延時之差稱之為skew(偏斜),我們用set_clock_uncertainty這個命令去模擬skew的影響。如set_clock_uncertainty0.3,單位是ns(取決.tf工藝文件里面所設單位)時鐘域內寄存器的clk端可以稱之為匯點(sink),時鐘源點(source)到匯點的延時稱為latency,我們可以用set_clock_latency命令去模擬源點到匯點的延時,如:set_clock_latency1實際的時鐘信號跳變時間是不可能為零的,所以我們可以用set_clock_transition去模擬這個跳變時間如set_clock_transition0.126布局Corearea內標準單元并不是可以隨意擺放的,所有的標準單元被設計成等高不等寬的,這樣所有的標準單元可以被放入同樣的placementrow里面,如圖所示27TimingdrivenplacementPlacement是時序驅動的,關鍵路徑上單元會被放得近一些,placement是時序驅動的同時,也是擁塞驅動(congestiondriven)的,標準單元的信號連接最終需要布線的,如果一個區(qū)域內布線要求大于布線資源的話,就導致了擁塞,顯然標準單元過密集得擺放在一起就容易導致?lián)砣瑃iming和congestion就變成了一對折衷的因素了。28在macro周圍我們會打上placementblockage,工具不會在placementblockage區(qū)域內擺放標準單元,macro處pin處需要較多的布線資源,如果macro周圍較近區(qū)域被放置了標準單元,就可能導致?lián)砣漠a生。故需要在macro周圍打上blockage,在實驗視頻中可以看到這一步。布局29時鐘樹綜合(CTS)在大規(guī)模集成電路中,大部分時序元件的數(shù)據(jù)傳輸是由時鐘同步控制的時鐘頻率決定了數(shù)據(jù)處理和傳輸?shù)乃俣龋瑫r鐘頻率是電路性能的最主要的標志。在集成電路進入深亞微米階段,決定時鐘頻率的主要因素有兩個,一是組合邏輯部分的最長電路延時,二是同步元件內的時鐘偏斜(clockskew),隨著晶體管尺寸的減小,組合邏輯電路的開關速度不斷提高,時鐘偏斜成為影響電路性能的制約因素。時鐘樹綜合的主要目的是減小時鐘偏斜。以一個時鐘域為例,一個時鐘源點(source)最終要扇出到很多寄存器的時鐘端(sink),從時鐘源扇出很大,負載很大,時鐘源是無法驅動后面如此之多的負載的。這樣就需要一個時鐘樹結構,通過一級一級的buffer去驅動最終的葉子結點(寄存器)。30在未進行時鐘樹綜合之前,時鐘樹未生成,時鐘結構邏輯上如上圖所示,一個時鐘源端最終扇出到很多寄存器的時鐘端。31上圖是時鐘樹綜合好之后的結果,上圖中有三級buffer構成了一個時鐘樹。32在sdc文件中用create_clock命令創(chuàng)建時鐘,同時定義了時鐘源點如:Create_clock[get_pinsU_TOP_PAD/Pad_inout_PF5_CAM_PCLK/C]–nameCPCK-period10–waveform{05}這條命令在U_TOP_PAD/Pad_inout_PF5_CAM_PCLK/C這個pin處創(chuàng)建了時鐘,這個pin就是名為CPCK的時鐘的時鐘源點時鐘樹綜合(CTS)33由于時鐘樹的重要性,工具采用不同于一般布線規(guī)則的時鐘樹自己的布線規(guī)則時鐘樹綜合(CTS)34首先定義nondefaultroutingrule再指定CTS使用定義的my_route_rule-layer_list定義了CTS使用哪幾層金屬走線時鐘樹綜合(CTS)35ICC在placement階段提供了一個命令place_opt,請參看run_icc_record.tcl,可以看出placement階段腳本結構是先進行一系列的設置,再通過place_opt命令讓工具根據(jù)設計者的設置約束等完成布局工作。ICC在時鐘樹綜合階段也提供了一個命令clock_opt,clock_opt命令根據(jù)設計者的設置和約束自動完成時鐘樹綜合的工作。布線階段也有一個類似的命令:route_opt整個流程中,除了floorplan階段需要較多的手工活之外,placement、CTS、routing階段可以說就是設計者通過修改腳本和約束,然后讓工具自動完成工作。這也是ICCompiler工具強大之處。時鐘樹綜合(CTS)36CTS在placement之后完成,就有可能對原來的placement的結果產生影響,如clock

Buffers插入之后,就有可能導致?lián)砣漠a生,為了插入clockbuffers可能會輕微移動原來的placement階段放置的標準單元,原來的placement是時序驅動的,移動就可能導致時序的不滿足,產生違規(guī)(violation)。37Clock_opt完成之后,一般都應該使用一個命令psynopt去做一次增量優(yōu)化,psynopt這個命令的作用就是在原有基礎上做增量優(yōu)化。在placement階段,place_opt之后,也需要用psynopt做一次增量優(yōu)化,可以參考看run_icc_record.tcl腳本。在做完CTS之后,實驗中也就是跑完run_icc_record.tcl里面至CTS部分結束,可以報出時序信息,通過以下命令報時序信息:report_constraint–all報出所有時序違規(guī)(violations),我們暫且只關注setup違規(guī),setup違規(guī)直接制約頻率能跑多高,對于hold的違規(guī)只需要通過插buffer增加延時就可以解決。report_clocks報出時鐘的信息report_timing–from-to報出具體路徑的時序信息以上命令都可以加-help選項查看幫助信息,如report_timing–help想查看一個命令的詳細用法,可以man命令,如manreport_timing時鐘樹綜合(CTS)38Routing39Routing時鐘樹結束之后,接下來的工作是布線(routing)Floorplan階段,生成電源地網絡時已經完成了電源地網絡的布線,routing階段主要是標準單元的信號線的連接,floorplan階段給標準單元供電的rail已經生成,place結束后標準單元上下兩邊都放在了rail上面。實驗中采用6層金屬工藝,層與層之間通過via孔相連40先介紹基于格點的布線理論Routing41在上頁圖中,黃色和藍色的虛線稱之為track,track是沒有實際寬度的,但兩條track之間有間距稱之為pitch,基于格點的布線要求所有的金屬走線要走在track之上,而實際走出的金屬線稱之為trace,trace是有寬度的。不同的金屬線走線方向是不同的,奇數(shù)層金屬默認走水平方向,偶數(shù)層默認走豎直方向。兩條track的交點稱之為gridpoint標準單元的高寬都被設計成了pitch的整數(shù)倍,而在布局時標準單元的pin都被放在了gridpoint上面這樣都為布線作好了準備Routing42Routing主要由以下四個步驟完成:GlobalroutingTrackassignmentDetailRoutingSearchandrepairRouting43Globalrouting(全局布線)。全局布線是為設計中還沒有布線的連線規(guī)劃出布線路徑,確定其大體位置及走向,并不做實際的連線,全局布線已經把布線路徑映射到了特定的鋁線層,下圖是全局布線之后的版圖,我們可以看出布線路徑是沒有實際寬度的線條,圖中不同的顏色代表了不同的鋁線層,并給出了孔的位置。Routing44Trackassignment(track分配)Trackassignment把每一連線分配到一定的track上,并且對連線進行實際布線,在布線時,盡可能使金屬線長,減少孔的個數(shù),在這個階段不做DRC設計規(guī)則檢查(如兩條金屬線的最小間距)。從下圖看出己有實際的金屬線,jog是為了減少孔的個數(shù)。Jog是指小范圍內改變布線的方向。Routing45Trackassignment是不考慮DRC違規(guī)的,所以trackassignment之后會有很多DRC的違規(guī),比如金屬線最小間距違規(guī)、槽口違規(guī)。Routing46Detailrouting(詳細布線)詳細布線使用全局布線和track分配過程中產生的路徑進行布線和布孔。由于track分配時只考慮盡量走長線,所以會有很多DRC違規(guī)產生,詳細布線時使用固定尺寸的sbox來修復違規(guī)(下頁圖),sbox是整個版圖平均劃分的小格子,小格子內部違規(guī)會被修復但小格子邊界的DRC違規(guī)就修復不了,這就需要在接下來的步驟中完成修復。SearchandrepairSearchandrepair修復在詳細布線中沒有完全消除的DRC違規(guī),在此步驟中通過尺寸逐漸加大的的sbox來尋找和修復DRC違規(guī)的。Routing474849時鐘樹布線有更高的優(yōu)先權,時鐘樹的布線要在其它信號線布線之前,這樣時鐘樹布線的時候就會有更多的布線資源可用。route_zrt_group-all_clock_nets此條命令即可給時鐘樹布線ICC提供了route_opt這個命令完成routesignalnets和optimize的工作。Routing50可制造性設計和物理驗證布線工作完成之后,主體工作已經完成了,下面介紹一些重要的可制造性(designformanufacturing)的問題。問題和解決方法歸納如下:GateOxideintegrity->antennafixingViaresistanceandreliability->extracontactsRandomParticledefect(隨機微粒缺陷)->Wirespreading(增加線間距和線寬)Metalerosion(金屬侵蝕)->metalslotting(挖槽)Metalliftoff(金屬翹起)->metalslotting(挖槽)MetalOver-Etching(金屬過刻蝕)->metalfill(用金屬填充空白區(qū)域)51如下圖所示,如果在MOS管的柵和襯底之間電場強度過大,就可能引起柵氧的擊穿,這種擊穿問題可能發(fā)生在工藝制造過程中,在深亞微米工藝中常用等離子刻蝕工藝刻蝕金屬和多晶硅,在芯片制造工藝中暴露的金屬線或多晶硅等導體,像一根根天線,會收集電荷(如等離子刻蝕工藝產生的帶電粒子)導致與其相連的柵電位升高,最終導致強電場擊穿柵氧。這稱之為天線效應(processantennaeffect,PAE),又稱為等離子導致柵氧損傷(plasmainducedgateoxidedamage,PID)。可制造性設計和物理驗證52裸露的導體收集電荷的多少與其暴露在等離子束下的導體面積成正比,為了解決天線效應問題,常有以下兩種解決方法:跳線法、添加反偏二極管。跳線法(圖):天線效應只發(fā)生在芯片制造過程中,并非芯片的使用過程中,因為等離子刻蝕應用于工藝制造過程中。比如一條金屬線過長,就可能導致天線效應,跳線法斷開這條線,通過via孔連到上一層金屬,再從上一層金屬通過via孔連下來。(也可向下跳線,但通常采用向上跳線法),不同層金屬是不同時形成的,故爾消除了天線效應。添加反偏二級管(圖):給“天線”添加反偏二級管,反偏二級管的阻抗小于柵氧絕緣層阻抗,反偏二級管會泄放掉“天線”上的電荷,使“天線”不足以收集到能夠擊穿柵氧的電荷。(顯然不能加正偏二極管,因為正偏二極管會把金屬線電位拉到接近襯底電位上)可制造性設計和物理驗證535455ICC在布線階段會考慮到天線效應,會盡量在布線時避免天線效應。但ICC不是signoff級(最終版)的工具。Signoff級的時序工具是PrimeTime(PT),StarRCXT從ICC提供的版圖中提取寄生參數(shù)提供給PrimeTime,PrimeTime報出的時序滿足要求才行。ICC做完P&R之后,需要Calibre在virtuoso平臺下做物理驗證(physicalverification),Calibre是signoff級的,物理驗證要修復DRC、LVS、天線效應等的違規(guī)??芍圃煨栽O計和物理驗證56Foundry流片有個良率(yield)的問題,如果兩條不同層金屬線只通過一個via孔相連,那么如果這個via孔在制造過程中制造失敗的話,那么就導致了層間互連失敗可以通過增加via孔的數(shù)量來解決這個問題,由于via孔的電阻率是大于金屬線的,增加并連的via孔數(shù)可以減小電阻,減小延時,改善時序。可制造性設計和物理驗證57可制造性設計和物理驗證RandomParticleDefect(隨機微粒缺陷):兩條過于靠近的金屬線之間,如果有導電性顆粒在制造過程中落入二者之間,可能導致短路問題,解決辦法是加大線間距;一條過于窄的金屬線如果在制造過程中落入不導電的微粒,那么就會導致斷路問題,解決辦法是增加線寬。58MetalErosion(金屬侵蝕)芯片制造過程的金屬線成形過程中,在氧化層上淀積一層金屬,刻掉不需要的部分,再在被刻掉的部分上氧化出與金屬等高的氧化層,接下來需要做一次化學機械拋光(CMP)來平坦化芯片表面(每一層都要做平坦化)。氧化層和金屬對CMP的反應程度是不一樣的,金屬更容易被CMP刻蝕掉,所有金屬的密度不能太大,否則被CMP刻蝕掉形成的凹槽過大可制造性設計和物理驗證59可制造性設計和物理驗證Metalliftoff(金屬翹起)由于金屬和氧化層的熱膨脹系數(shù)的不同,氧化層上的金屬可能會產生翹起現(xiàn)象,金屬線越寬越容易產生這種現(xiàn)象,所以必需控制金屬密度。60可制造性設計和物理驗證解決metalerosion和metalliftoff的辦法是metalslotting(挖槽)電源地線寬于普通信號線,電源地線也就經??梢栽谧罱K版圖上看到如下圖所示的槽。61可制造性設計和物理驗證Metalover-etching(金屬過刻蝕)金屬線的成形,是通過刻蝕工藝完成的,稀疏的金屬線比較緊密的金屬線更容易被過刻蝕。如下圖,故爾對最小金屬密度也有要求62可制造性設計和物理驗證Metalover-etching的解決辦法:MetalFill用金屬填充空白區(qū)域63設計規(guī)則檢查(DesignRuleChecking,DRC)版圖完成后需要做物理驗證(physi

溫馨提示

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

評論

0/150

提交評論