我認為IC設(shè)計流程按照功能和應(yīng)用場合不同大致可以劃分為三個部分進行介紹,,分別是數(shù)字IC,、模擬IC和FPGA,。這三者之間既有相同點又有相異點。在進行設(shè)計時,,所使用的軟件工具也有相同和不同的,。
1、數(shù)字ASIC設(shè)計" title="IC設(shè)計">IC設(shè)計流程前端到后端使用工具
通用型數(shù)字ASIC" title="ASIC">ASIC(從上到下)
在驗證算法時一般使用C語言或者verilog來對系統(tǒng)算法進行建模,,使用行為級描述來對算法功能的正確與否進行仿真,。一般比較常用的方法是使用C語言在Matlab軟件環(huán)境下進行算法驗證。
算法驗證完成之后,,需要進行的工作就是將算法轉(zhuǎn)化為對應(yīng)的行為級或者寄存器傳輸級描述,,并且對其進行功能仿真驗證。在該階段可以使用的工具有很多,,常用的 有Active—HDL,、Mentor的Modelsim系列軟件和QuestaSim系列(前者使用三個核進行仿真,后者使用一個核,,因此后者可以對不 同語言環(huán)境下的描述進行混合仿真),。
完成功能仿真之后需要進行的工作就是根據(jù)foundry提供的標準數(shù)字單元工藝庫,對前面得到的表述一定功能的代碼進行綜合,,得到代碼對應(yīng)的由標準單元庫中的門電路組成的實際電路映射,。在綜合的過程中,要根據(jù)設(shè)計規(guī)范來制定各種約束以使綜合得到的電路映射能夠滿足設(shè)計的要求,,同時也要注意綜合報告中所給出的違反約束的各個信息,,并且利用這些信息來修改代碼或者算法。在綜合的過程中使用的工具最主要是Synopsys的DC和PC,。
做完綜合之后,,利用綜合得到的實際電路映射、時序約束與foundry提供的與版圖有關(guān)的工藝庫就可以進行自動布局布線的操做了,。此時常用的軟件有Synopsys的ASTRO和Cadence的Se工具,。
自動布局布線完成后就可以根據(jù)產(chǎn)生的版圖文件信息提取寄生參數(shù)來進行包含寄生參數(shù)與互聯(lián)延遲的后仿真了。一般常用的寄生參數(shù)提取工具有AVANTI的 STAR-RC和Cadence的DRECULA或Diva,,兩者都需要將自動布局布線得到的版圖和工藝庫文件導入軟件中進行寄生參數(shù)提取,。 Cadence的軟件還可以通過導入版圖,來對自動布局布線得到的版圖中不滿意的地方進行修補,。
寄生參數(shù)提取結(jié)束后將得到的寄生參數(shù)信息與自動布局布線得到的網(wǎng)表導入PT進行包含寄生參數(shù)的時序參數(shù)提取,,然后利用所提取的時序參數(shù)在底層網(wǎng)表中反標進 行后仿真,觀察后仿真的時序是否滿足設(shè)計規(guī)范的要求,。如果滿足則設(shè)計基本完成,,不滿足還需要進行迭代修改。產(chǎn)生反標需要的時序文件的軟件是PT,,而將時序 反標文件反標回綜合后的網(wǎng)表并且進行后仿真的軟件比較多,,比如Modelsim和Nclaunch(NC主要針對大型系統(tǒng),,而Modelsim則主要是針 對小的設(shè)計,因為前者的工作平臺是工作站后者是PC),。
全定制數(shù)字Asic或者混合信號ASIC(從下到上與從上到下結(jié)合)
當需要制作全定制的數(shù)字芯片時,,傳統(tǒng)的從上到下的設(shè)計流程就不完全奏效了。其中最大的不同就是全定制芯片為了實現(xiàn)更小的體積與功耗,,更高的集成度將可能不采用廠家提供的標準數(shù)字單元庫而是通過與foundry溝通自己設(shè)計滿足自己需要的工藝庫,。比如Xilinx的FPGA芯片的設(shè)計采用的就是全定制的設(shè)計方法。
對于全定制設(shè)計而言,,也需要采用算法驗證,、功能描述與仿真驗證、綜合,、寄生參數(shù)提取與后仿真的過程,,但是相對通用型Asic的設(shè)計而言,在做后仿真時全定 制可以使用模擬仿真的方法進行后仿真而不需要進行時序反標的過程,,因為在設(shè)計全定制Asic時使用的不是foundry提供的標準數(shù)字工藝庫而是根據(jù)設(shè)計 需要自己設(shè)計的數(shù)字工藝庫,。因此對于全定制的Asic設(shè)計而言,它的后仿真需要采用foundry提供的標準模擬庫,,由于不使用時序的反標而采用模擬仿真 的方法后仿真得到最終版圖對應(yīng)信息,,因此耗時可能比設(shè)計通用型的Asic更長。
全定制設(shè)計流程的使用軟件有,,算法驗證與功能仿真的軟件同通用型使用的基本相同,。但是在綜合這一步就不太一樣了,對于全定制的設(shè)計而言一般在設(shè)計時采用 Cadence的軟件比較多,,因為全定制設(shè)計更象模擬電路設(shè)計。在綜合這一步之前先要根據(jù)設(shè)計規(guī)范對每個模塊進行時序與功耗的分配,,并且最好能夠細化到每 個門級電路,。然后根據(jù)要求來構(gòu)建設(shè)計所需要的設(shè)計者需要的單元庫。因為全定制的ic綜合這一步更象是利用設(shè)計者自己定義的庫來搭積木的過程,,人為的控制因 素與經(jīng)驗也更加重要,,在這里良好的布局可以使搭出的電路效率更高。
在這里可以先使用cadence的 版圖與電路圖輸入工具Virtuoso來根據(jù)設(shè)計規(guī)范的要求構(gòu)建建立在單管基礎(chǔ)上的基本單元庫,,然后再根據(jù)已經(jīng)驗證的算法和功能描述,,利用所構(gòu)建的基本單 元庫來得到整個芯片的電路圖布局結(jié)構(gòu),最后根據(jù)芯片內(nèi)各個信號的關(guān)系來進行電路布線的操作,。以上的操作都可以在Cadence的IC 5.1集成設(shè)計環(huán)境下的Virtuoso中完成,,當完成布局布線后全定制Asic的版圖基本就確定了,然后根據(jù)基于基本單元庫所對應(yīng)版圖的全芯片電路來搭 建全芯片電路對應(yīng)的全芯片版圖,。此時可以利用Cadence的Diva或者Drucla工具進行DRC,、ERC,、LVS檢查,并且可以根據(jù)版圖利用上述工 具進行參數(shù)提取,。然后將提取得到的參數(shù)與搭建全芯片時所得到的全芯片網(wǎng)表或者全芯片電路進行后仿真,。如果在后仿真時不想使用Cadence或者系統(tǒng)太大仿 真不了時,可以使用Hsim進行仿真,。Hsim在使用時需要根據(jù)版圖提取寄生參數(shù)和全芯片電路基于基本單元庫的網(wǎng)表,。(還有不詳細的地方,回來需要具體再 闡述下),。
在進行通用型數(shù)字Asic設(shè)計時需要注意代碼的風格,,因為代碼風格的好壞直接影響到綜合軟件的效果,風格規(guī)范的代碼可以得到性能更高的芯片電路,。另外,,在寫代碼時還要注意盡量使用可綜合的代碼和能夠避免系統(tǒng)出現(xiàn)毛刺與亞穩(wěn)態(tài)的電路描述方法。
在進行全定制數(shù)字Asic設(shè)計時一定要注意單元庫的建立,,在建立時除了滿足基本的邏輯功能外還要注意寬長比與所構(gòu)造單元的功耗和延遲之間的關(guān)系,,最好能夠 建立基于verilog和電路圖等多種不同表達方式的電路結(jié)構(gòu)。這樣便于后面的進一步分析與仿真,。另外,,在全定制數(shù)字IC設(shè)計中經(jīng)常會把數(shù)字電路當成模擬 電路來分析功耗與延遲,所以可以使用模數(shù)混合的方法來對所設(shè)計的基于自建單元庫的電路進行仿真,,從而可以相對全電路模擬仿真大幅度提高仿真的速度,,相對全 電路數(shù)字仿真得到更精確的延時信息。不過對于功耗的仿真還是只能使用全電路的模擬仿真,。最為重要的一點是通用型數(shù)字IC的版圖布局可以利用軟件實現(xiàn)自動 化,,而全定制則更多的依靠有經(jīng)驗的版圖設(shè)計師來實現(xiàn)。
以上是數(shù)字IC部分的,,一點個人的看法與大家共同研究,,歡迎各位達人指出錯誤與不足的地方!,!