數(shù)字集成電路后端設計_第1頁
數(shù)字集成電路后端設計_第2頁
數(shù)字集成電路后端設計_第3頁
數(shù)字集成電路后端設計_第4頁
數(shù)字集成電路后端設計_第5頁
已閱讀5頁,還剩90頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

IC后端版圖設計行者無畏2009-10-2911/8/20241front-endVSback-end11/8/20242布局與布線(AutoPlacement&Route,AP&R)傳統(tǒng)上將布局與布線前的工作稱之為前端(FrontEnd),而布局與布線之后的工作稱為后端(BackEnd)。布局的目的在于產(chǎn)生制作掩膜所需的GDSII文件。同時也產(chǎn)生布局后的網(wǎng)表文件(Netlist)及標準延遲文件(SDF)。11/8/2024311/8/20244后端設計所用到的工具仿真工具:Mentormodelsim/Questasim綜合工具(帶DFT):SynopsysDC時序分析:SynopsysPT形式驗證:CadenceLEC后端APR(AutoPlacement&Route):CadenceSoCEncounter后端參數(shù)提?。篗entorCalibre11/8/20245IC設計全流程

1.設計輸入(Ultraedit,Vi等)2.仿真(前、后,Modelsim)3.綜合(DC,withDFT)4.形式驗證(Confrml,LEC)5.時序分析(PT,STA)6.后端APR(Encounter)7.參數(shù)提取、驗證(Calibre)11/8/20246理解流程,明確概念主要流程:

RTL

仿真綜合自動布局布線參數(shù)提取穿插時序分析,形式驗證等步驟11/8/20247列舉一例,演示一下流程!所選實例為:MY_CHIP.v

;功能前面已經(jīng)講過,不在重復!RTL

仿真綜合由姜講解!11/8/20248所使用的工藝為TSMC018關于庫的一些說明11/8/202491、數(shù)據(jù)準備1、新建一個文件夾(如:soce_pad)將所用到的庫copy進來:lib+addbonding.pl+addIoFiller.cmd+ioPad.list2、將要用到的源文件添加進來:MY_CHIP.vg+MY_CHIP_PAD.v+pad_locs.io+MY_CHIP_PAD.sdc3、實驗時使用TSMC0.18工藝,11/8/2024102、關于1中源文件的說明MY_CHIP.vg是DC綜合之后生成的門級網(wǎng)表文件。MY_CHIP_PAD.v是chip-levelNetlist

(自己編寫),就是輸入輸出端口,用以IC系統(tǒng)與外部環(huán)境的接口。與組成集成電路核心電路的單元不同,I/OPAD是直接與外部世界相連接的特殊單元。請參看文檔DTS-041028-00-000.pdf,列出了TSMC0.18所使用的P/GPad、I/OPad和Corner名稱。參看lib庫中tpz973g.lef技術庫,列出了相關Pad的宏模塊。結合所給例子MY_CHIP_PAD.v,編寫自己的chip-levelNetlist

。11/8/202411注意我們使用的是TSMC18工藝,pad名稱的部分截圖:11/8/202412pad_locs.io文檔就是編寫添加進來的pad的擺放位置,如圖示:11/8/202413輸入、輸出、電源和地的擺放位置示例11/8/202414MY_CHIP_PAD.sdc文件是DC綜合之后的時序約束文件,需要進行修改!只需保留clk和輸入輸出的延遲約束信息,其他刪除!修改輸入輸出信號:輸入信號前要加i,輸出信號前加o,clk信號不變。參考示例文件進行修改。11/8/202415本例修改后的時序約束文件:MY_CHIP_PAD.sdcsetsdc_version1.7set_wire_load_modetopset_wire_load_model-nametsmc18_wl10-libraryslowcreate_clock[get_ports

Clock_In]-namemy_clock-period20-waveform{010}set_input_delay-clockmy_clock-max10[get_ports

iReset]set_input_delay-clockmy_clock-max10[get_ports

iUp_DownF]set_output_delay-clockmy_clock-max10[get_ports{oCounter_Out[2]}]set_output_delay-clockmy_clock-max10[get_ports{oCounter_Out[1]}]set_output_delay-clockmy_clock-max10[get_ports{oCounter_Out[0]}]11/8/2024163、ImportData在linux終端執(zhí)行:encounter命令,進入圖形界面:11/8/202417將相關文件和庫導進去選擇Design—DesignImport

在Verilog

Netlist

中輸入:hardreg.vg

hardreg_pad.v;TopCell中選擇:ByUser:MY_CHIP_PAD;在時間庫中MaxTimingLibraries:slow.libtpz973gwc.libMintimingLibraries:fast.libtpz973gbc.lib;在物理庫LEFFiles中依次填寫:tsmc18_61m_cic.lef、tpz973g_51m_cic.lef、tsmc18_61m_antenna_cic.lef、antenna_6_cic.lef(注意庫的順序不能顛倒,否則加載報錯);TimingConstraintFile:MY_CHIP_PAD.sdc;IOAssignmentFile:pad_locs.io11/8/20241811/8/202419切換到Advanced頁面中,進行相關設置IPO/CTS:BufferName/Footprint:buf

DelayName/Footprint:dly1dly2dly3dly4veterName/Footprint:invPower:PowerNets:VDDGroundNets:VSSRC

Extraction:CapacitanceTableFile:tsmc018.capTb1;TechFile:icecaps_51m.tchSIAnalysis:Maxcdbfile:slow.cdbMincdbFile:fast.cdbCommoncdbFile:typical.cdb//說明:配置完后選擇save以.conf文件進行保存,下次使用時只需加載.conf文件即可,無需重新配置11/8/202420配置完后點OK后,就會看到初始floorplan11/8/2024214、floorplanning(布局規(guī)劃)a、設定核的長、寬以及到邊界的距離11/8/202422由DC綜合后,根據(jù)得到的面積的報表并結合下面的公式來設定核的長寬,一般設定為正方形。11/8/202423核到邊界的距離要設定合適本實例的配置步驟如下:選擇Floorplan—SpecifyFloorplanDimension:Width:120Height:120CoretoIOBoundary:均填:20;之后點OK,便可以看到core的布局。11/8/20242411/8/202425b、powerplanning(電源規(guī)劃)添加powerring和powerstripes原因及設定方法:加powerring主要是防止電流過高導致開路或短路;穩(wěn)定供壓加powerstripes主要防止IRdrop(就是電路中有過高的壓降會導致器件運行速度很慢)11/8/20242611/8/202427關于powerring和powerstripes的設定方法11/8/20242811/8/202429添加powerring(電源環(huán)一般放置在較低層的金屬上,包括電源環(huán)和接地環(huán))本實例參考步驟:選擇Power—AddRingsTop和Bottom的Layer均選擇:METAL1H;Left和Right均選擇:METAL2H;Width均選:4(指的是環(huán)的寬度),也可以指定電源環(huán)和接地環(huán)之間的距離spacing;Advanced:WireGroup-Usewiregroup-InterleavingNumberofbits:1(可選項);之后OK便可以看到core的周圍有電源環(huán)。//注意offset要選擇Centerinchannel否則后面有一組電源連接不上11/8/202430部分截圖11/8/202431添加powerstripes(電源條一般放置在較高的金屬層上,注意添加時要設置組數(shù),接地的和接電源的條)本實驗參考步驟:根據(jù)核的大小,一般把stripes放在中間位置選擇Power—AddStripesDirection:Vertical-Layer:METAL2;Width:2;Numberofsets:1;AbsolutelocationsStart(X):310;Sop(X):312;(根據(jù)core的坐標得到的)Direction:Horizontal-layer:METAL5;Width:2;AbsolutelocationsStart(Y):310;Sop(Y):312;之后OK便可以看見core的表面有stripes;11/8/20243211/8/202433可以看到電源環(huán)和電源條,地和地,電源和電源分別相連11/8/202434部分截圖11/8/2024355、globalnetconnection11/8/20243611/8/202437注意我們這里的GND應該為VSS11/8/202438本實例參考步驟選擇Floorplan—GlobalNetConnections分別加上:PIN/TieHigh/NetBasename:VDDToGlobalNet:VDDPin/Tielow/NetBasename:VSSToGlobalNet:VSS;注意:這里設定的VDD和VSS要和前面importdata時設定的Power和Gound相對應。11/8/20243911/8/2024406、connectcorepower11/8/20244111/8/202442本實驗參考步驟選擇Route—SpecialRouteRoute選項中選中PadpinsOk之后便可以看見core的電源pads連接到電源的環(huán)上。11/8/202443部分截圖11/8/2024447、StandardCellPlacement

注意:這里我們選M1、M2

11/8/202445本實驗參考步驟選擇Place—SpecifyPlacementBlockageforStripandRoute選擇M1、M2;11/8/2024468、Placestandardcells11/8/20244711/8/202448本實驗參考步驟選擇Place—PlaceAdvanced中選擇:Medium11/8/2024499、Pre-CTS時序分析及優(yōu)化11/8/20245011/8/202451本實例參考步驟1、進行Pre–CTS時序分析:在終端中輸入下面命令:>>timeDesign–preCTS

將會產(chǎn)生一些時間報告并且保存到相關的文件中。2、進行Pre–CTS優(yōu)化;將會修改setupslack,setuptimes,DRVs;在終端中輸入下面命令:>>optDesign–preCTS

進一步優(yōu)化:>>optDesign–preCTS–incr11/8/20245210、ClockTreeSynthesis(時鐘樹綜合)11/8/202453加入時鐘樹后的效果11/8/202454clocktreesynthesis是asic設計中的一步,它的目的是使時鐘盡量在同一時刻去驅動所有的觸發(fā)器,這也就是所說的同步電路

11/8/202455本實驗參考步驟1、創(chuàng)建時鐘樹:選擇Clock–CreateClockTreeSpecBufferFootprint:clkbuf

InverterFootprint:clkinv

2、給時鐘樹分配指定文件:選擇Clock—SpecifyClockTreee

保存ClockTreeFile文件;3、綜合時鐘樹:選擇Clock–SynthesizeClockTree選擇OK即可;11/8/20245611、Post-CTSOptimization(加過時鐘樹后)11/8/202457本實驗參考步驟:1、Post–CTS時序分析:在終端輸入相關命令:>>timeDesign–postCTS>>timeDesign–postCTS–hold產(chǎn)生一些時間報表會保存在相關的文件下;2、Post-CTS優(yōu)化:改正一些違反設計規(guī)則;在命令行執(zhí)行下列指令:>>optDesign–postCTS

>>optDesign–postCTS-hold11/8/20245812、SRoute(連接標準單元的電源)11/8/202459本實驗參考步驟:選擇Route—Sroute:只選擇Standardcellpins11/8/20246013、添加IoFiller主要用于連接IOpad之間的金屬物本實驗參考步驟:在終端執(zhí)行下面命令:>>sourceaddIoFiller.cmd命令執(zhí)行完之后,會看見IOpad

之間的空隙被填充了。11/8/20246114、NanoRoute(真實布線)11/8/202462形成原因:11/8/202463在現(xiàn)代等離子體蝕刻工藝和離子注入過程中產(chǎn)生的積累電荷,如果得不到及時釋放,就會對CMOS器件的柵極產(chǎn)生擊穿并造成永久性的損傷,這就是天線工藝效應。為了預防工藝天線效應,在最終布線過程中,是通過連接天線二極管或跳轉到上一層金屬以增強柵極的靜態(tài)電荷承受能力來實現(xiàn)的。11/8/202464解決途徑:1、加跳線2、加天線二極管3、加緩沖器11/8/202465本實驗參考步驟:選擇Route—NanoRoute

選擇如下項:

FixAntenna;

InsertDiodes;DiodeCellName:ANTENNA;TimingDriven;SIDriven;11/8/20246615、Celtic(信號完整性分析)11/8/202467本實驗參考步驟:在終端里輸入如下命令:timeDesign–postRoute–si11/8/20246816、Post-RouteOptimization11/8/202469本實驗參考步驟:Post–Route時序分析:在終端里輸入如下命令:>>timeDesign–postRoute

>>timeDesign–postRout–holdPost–Route優(yōu)化:在終端里輸入如下命令:>>optDesign–postRoute

>>optDesign–postRoute-hold11/8/20247017、AddFiller(核內(nèi)部的填充物)注意要在參數(shù)提取和GDSII文件輸出之前添加。主要用于單元之間的連接11/8/202471本實驗參考步驟:執(zhí)行Place—Filler—AddFiller在AddFillerfrom里,按Select進入SelectFillerCellsfrom,選取右邊CellsList里全部的Filler,按Add加到左邊的SelectableellsList里,之后OK即可。11/8/20247218、AddBondingPad先執(zhí)行Design—Save---DEFFileName:MY_CHIP_PAD.def;另開一個終端并執(zhí)行命令:perl

addbonging.pl

MY_CHIP_PAD.def接著在原終端執(zhí)行BondPads.cmd;會將所需的BondingPads加上。//加BondingPad主要是引出引腳,為了焊接方便11/8/202473最后效果圖11/8/20247419、StreamOut11/8/202475本實驗參考步驟:選擇Design—save—GDS:在outputStreamfile:MY_CHIP.gds;MergeStreamFiles:tsmc18.gds2tmc18_core.gdstsmc18_io_final.gds3Units:100011/8/20247620、CalculateTiming11/8/202477本實驗參考步驟:1、ExtractRC:選擇Timing—ExtractRC即可;2、計算延遲:選擇Timing—CalculateDelay在SDFOutputFile中輸入:MY_CHIP_PAD.sdf;11/8/20247821、SaveNetlist(保存網(wǎng)表)11/8/202479本實驗步驟:保存后端布局仿真的網(wǎng)表:在終端里執(zhí)行下面的命令>>saveNetlist

MY_CHIP_PR.v保存LVS的網(wǎng)表:在終端里執(zhí)行下面的命令>>saveNetlist–includePhysicalInst–excludeLeafCell

MY_CHIP_LVS.v11/8/202480輸出文件的說明11/8/202481說明以上的運行的命令自動保存在encounter.cmd中,下次重起的時候直接sourceencounter.cmd即可。11/8/202482后端驗證DRC(DesignRuleCheck)ERC(ElectricalRuleCheck)LVS(LayoutversusSchematic)LPE/PRE(LayoutParasiticExtraction/ParasiticResistanceExtraction)andPost-LayoutSimulation.//我們只做DRC和LVS11/8/202483說明數(shù)字自動布局布線做好版圖之后,有DRC錯誤是很正常的,是需要自己手動修改的,主要靠經(jīng)驗積累。Metal與VIA的線寬、距離以及面積之類與工藝庫的規(guī)定不符合,所以會報錯,可以根據(jù)錯誤的描述進行相應的手動修改關于驗證方面本人還不是很熟,共同學習!11/8/202484DRC過程命令行方式編輯Calibre-drc-cur(CBDK中提供,拷貝到本地drc目錄下)執(zhí)行:calibre-drc-hier

Calibre-drc-cur查看DRC.rep報告

//7種密度相關錯誤可忽略11/8/202485圖形方式查看結果準備工作:新建文件夾drc設置calibre環(huán)境:拷貝IC工具自帶的.cdsinit文件到工作目錄drc下面cp/opt/asic_labs/apps/IC5141/tools.lnx86/dfII/cdsuser/.cdsinit.或者自己建立.cdsinit文件:內(nèi)容如下setSkillPath(".~/opt/calibre/shar

溫馨提示

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

評論

0/150

提交評論