《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > EDA與制造 > 設(shè)計(jì)應(yīng)用 > 我對(duì)IC設(shè)計(jì)流程的一些理解(數(shù)字IC部分)
我對(duì)IC設(shè)計(jì)流程的一些理解(數(shù)字IC部分)
摘要: 在進(jìn)行通用型數(shù)字Asic設(shè)計(jì)時(shí)需要注意代碼的風(fēng)格,因?yàn)榇a風(fēng)格的好壞直接影響到綜合軟件的效果,風(fēng)格規(guī)范的代碼可以得到性能更高的芯片電路。另外,在寫(xiě)代碼時(shí)還要注意盡量使用可綜合的代碼和能夠避免系統(tǒng)出現(xiàn)毛刺與亞穩(wěn)態(tài)的電路描述方法。
關(guān)鍵詞: IC設(shè)計(jì) ASIC
Abstract:
Key words :

    我認(rèn)為IC設(shè)計(jì)流程按照功能和應(yīng)用場(chǎng)合不同大致可以劃分為三個(gè)部分進(jìn)行介紹,分別是數(shù)字IC、模擬IC和FPGA。這三者之間既有相同點(diǎn)又有相異點(diǎn)。在進(jìn)行設(shè)計(jì)時(shí),所使用的軟件工具也有相同和不同的。
1、數(shù)字ASIC設(shè)計(jì)" title="IC設(shè)計(jì)">IC設(shè)計(jì)流程前端到后端使用工具
 通用型數(shù)字ASIC" title="ASIC">ASIC(從上到下)
    在驗(yàn)證算法時(shí)一般使用C語(yǔ)言或者verilog來(lái)對(duì)系統(tǒng)算法進(jìn)行建模,使用行為級(jí)描述來(lái)對(duì)算法功能的正確與否進(jìn)行仿真。一般比較常用的方法是使用C語(yǔ)言在Matlab軟件環(huán)境下進(jìn)行算法驗(yàn)證。

    算法驗(yàn)證完成之后,需要進(jìn)行的工作就是將算法轉(zhuǎn)化為對(duì)應(yīng)的行為級(jí)或者寄存器傳輸級(jí)描述,并且對(duì)其進(jìn)行功能仿真驗(yàn)證。在該階段可以使用的工具有很多,常用的 有Active—HDL、Mentor的Modelsim系列軟件和QuestaSim系列(前者使用三個(gè)核進(jìn)行仿真,后者使用一個(gè)核,因此后者可以對(duì)不 同語(yǔ)言環(huán)境下的描述進(jìn)行混合仿真)。

    完成功能仿真之后需要進(jìn)行的工作就是根據(jù)foundry提供的標(biāo)準(zhǔn)數(shù)字單元工藝庫(kù),對(duì)前面得到的表述一定功能的代碼進(jìn)行綜合,得到代碼對(duì)應(yīng)的由標(biāo)準(zhǔn)單元庫(kù)中的門(mén)電路組成的實(shí)際電路映射。在綜合的過(guò)程中,要根據(jù)設(shè)計(jì)規(guī)范來(lái)制定各種約束以使綜合得到的電路映射能夠滿(mǎn)足設(shè)計(jì)的要求,同時(shí)也要注意綜合報(bào)告中所給出的違反約束的各個(gè)信息,并且利用這些信息來(lái)修改代碼或者算法。在綜合的過(guò)程中使用的工具最主要是Synopsys的DC和PC。

   做完綜合之后,利用綜合得到的實(shí)際電路映射、時(shí)序約束與foundry提供的與版圖有關(guān)的工藝庫(kù)就可以進(jìn)行自動(dòng)布局布線(xiàn)的操做了。此時(shí)常用的軟件有Synopsys的ASTRO和Cadence的Se工具。

   自動(dòng)布局布線(xiàn)完成后就可以根據(jù)產(chǎn)生的版圖文件信息提取寄生參數(shù)來(lái)進(jìn)行包含寄生參數(shù)與互聯(lián)延遲的后仿真了。一般常用的寄生參數(shù)提取工具有AVANTI的 STAR-RC和Cadence的DRECULA或Diva,兩者都需要將自動(dòng)布局布線(xiàn)得到的版圖和工藝庫(kù)文件導(dǎo)入軟件中進(jìn)行寄生參數(shù)提取。 Cadence的軟件還可以通過(guò)導(dǎo)入版圖,來(lái)對(duì)自動(dòng)布局布線(xiàn)得到的版圖中不滿(mǎn)意的地方進(jìn)行修補(bǔ)。

    寄生參數(shù)提取結(jié)束后將得到的寄生參數(shù)信息與自動(dòng)布局布線(xiàn)得到的網(wǎng)表導(dǎo)入PT進(jìn)行包含寄生參數(shù)的時(shí)序參數(shù)提取,然后利用所提取的時(shí)序參數(shù)在底層網(wǎng)表中反標(biāo)進(jìn) 行后仿真,觀察后仿真的時(shí)序是否滿(mǎn)足設(shè)計(jì)規(guī)范的要求。如果滿(mǎn)足則設(shè)計(jì)基本完成,不滿(mǎn)足還需要進(jìn)行迭代修改。產(chǎn)生反標(biāo)需要的時(shí)序文件的軟件是PT,而將時(shí)序 反標(biāo)文件反標(biāo)回綜合后的網(wǎng)表并且進(jìn)行后仿真的軟件比較多,比如Modelsim和Nclaunch(NC主要針對(duì)大型系統(tǒng),而Modelsim則主要是針 對(duì)小的設(shè)計(jì),因?yàn)榍罢叩墓ぷ髌脚_(tái)是工作站后者是PC)。

全定制數(shù)字Asic或者混合信號(hào)ASIC(從下到上與從上到下結(jié)合)
    當(dāng)需要制作全定制的數(shù)字芯片時(shí),傳統(tǒng)的從上到下的設(shè)計(jì)流程就不完全奏效了。其中最大的不同就是全定制芯片為了實(shí)現(xiàn)更小的體積與功耗,更高的集成度將可能不采用廠(chǎng)家提供的標(biāo)準(zhǔn)數(shù)字單元庫(kù)而是通過(guò)與foundry溝通自己設(shè)計(jì)滿(mǎn)足自己需要的工藝庫(kù)。比如Xilinx的FPGA芯片的設(shè)計(jì)采用的就是全定制的設(shè)計(jì)方法。

    對(duì)于全定制設(shè)計(jì)而言,也需要采用算法驗(yàn)證、功能描述與仿真驗(yàn)證、綜合、寄生參數(shù)提取與后仿真的過(guò)程,但是相對(duì)通用型Asic的設(shè)計(jì)而言,在做后仿真時(shí)全定 制可以使用模擬仿真的方法進(jìn)行后仿真而不需要進(jìn)行時(shí)序反標(biāo)的過(guò)程,因?yàn)樵谠O(shè)計(jì)全定制Asic時(shí)使用的不是foundry提供的標(biāo)準(zhǔn)數(shù)字工藝庫(kù)而是根據(jù)設(shè)計(jì) 需要自己設(shè)計(jì)的數(shù)字工藝庫(kù)。因此對(duì)于全定制的Asic設(shè)計(jì)而言,它的后仿真需要采用foundry提供的標(biāo)準(zhǔn)模擬庫(kù),由于不使用時(shí)序的反標(biāo)而采用模擬仿真 的方法后仿真得到最終版圖對(duì)應(yīng)信息,因此耗時(shí)可能比設(shè)計(jì)通用型的Asic更長(zhǎng)。

   全定制設(shè)計(jì)流程的使用軟件有,算法驗(yàn)證與功能仿真的軟件同通用型使用的基本相同。但是在綜合這一步就不太一樣了,對(duì)于全定制的設(shè)計(jì)而言一般在設(shè)計(jì)時(shí)采用 Cadence的軟件比較多,因?yàn)槿ㄖ圃O(shè)計(jì)更象模擬電路設(shè)計(jì)。在綜合這一步之前先要根據(jù)設(shè)計(jì)規(guī)范對(duì)每個(gè)模塊進(jìn)行時(shí)序與功耗的分配,并且最好能夠細(xì)化到每 個(gè)門(mén)級(jí)電路。然后根據(jù)要求來(lái)構(gòu)建設(shè)計(jì)所需要的設(shè)計(jì)者需要的單元庫(kù)。因?yàn)槿ㄖ频膇c綜合這一步更象是利用設(shè)計(jì)者自己定義的庫(kù)來(lái)搭積木的過(guò)程,人為的控制因 素與經(jīng)驗(yàn)也更加重要,在這里良好的布局可以使搭出的電路效率更高。

   在這里可以先使用cadence的 版圖與電路圖輸入工具Virtuoso來(lái)根據(jù)設(shè)計(jì)規(guī)范的要求構(gòu)建建立在單管基礎(chǔ)上的基本單元庫(kù),然后再根據(jù)已經(jīng)驗(yàn)證的算法和功能描述,利用所構(gòu)建的基本單 元庫(kù)來(lái)得到整個(gè)芯片的電路圖布局結(jié)構(gòu),最后根據(jù)芯片內(nèi)各個(gè)信號(hào)的關(guān)系來(lái)進(jìn)行電路布線(xiàn)的操作。以上的操作都可以在Cadence的IC 5.1集成設(shè)計(jì)環(huán)境下的Virtuoso中完成,當(dāng)完成布局布線(xiàn)后全定制Asic的版圖基本就確定了,然后根據(jù)基于基本單元庫(kù)所對(duì)應(yīng)版圖的全芯片電路來(lái)搭 建全芯片電路對(duì)應(yīng)的全芯片版圖。此時(shí)可以利用Cadence的Diva或者Drucla工具進(jìn)行DRC、ERC、LVS檢查,并且可以根據(jù)版圖利用上述工 具進(jìn)行參數(shù)提取。然后將提取得到的參數(shù)與搭建全芯片時(shí)所得到的全芯片網(wǎng)表或者全芯片電路進(jìn)行后仿真。如果在后仿真時(shí)不想使用Cadence或者系統(tǒng)太大仿 真不了時(shí),可以使用Hsim進(jìn)行仿真。Hsim在使用時(shí)需要根據(jù)版圖提取寄生參數(shù)和全芯片電路基于基本單元庫(kù)的網(wǎng)表。(還有不詳細(xì)的地方,回來(lái)需要具體再 闡述下)。

   在進(jìn)行通用型數(shù)字Asic設(shè)計(jì)時(shí)需要注意代碼的風(fēng)格,因?yàn)榇a風(fēng)格的好壞直接影響到綜合軟件的效果,風(fēng)格規(guī)范的代碼可以得到性能更高的芯片電路。另外,在寫(xiě)代碼時(shí)還要注意盡量使用可綜合的代碼和能夠避免系統(tǒng)出現(xiàn)毛刺與亞穩(wěn)態(tài)的電路描述方法。

   在進(jìn)行全定制數(shù)字Asic設(shè)計(jì)時(shí)一定要注意單元庫(kù)的建立,在建立時(shí)除了滿(mǎn)足基本的邏輯功能外還要注意寬長(zhǎng)比與所構(gòu)造單元的功耗和延遲之間的關(guān)系,最好能夠 建立基于verilog和電路圖等多種不同表達(dá)方式的電路結(jié)構(gòu)。這樣便于后面的進(jìn)一步分析與仿真。另外,在全定制數(shù)字IC設(shè)計(jì)中經(jīng)常會(huì)把數(shù)字電路當(dāng)成模擬 電路來(lái)分析功耗與延遲,所以可以使用模數(shù)混合的方法來(lái)對(duì)所設(shè)計(jì)的基于自建單元庫(kù)的電路進(jìn)行仿真,從而可以相對(duì)全電路模擬仿真大幅度提高仿真的速度,相對(duì)全 電路數(shù)字仿真得到更精確的延時(shí)信息。不過(guò)對(duì)于功耗的仿真還是只能使用全電路的模擬仿真。最為重要的一點(diǎn)是通用型數(shù)字IC的版圖布局可以利用軟件實(shí)現(xiàn)自動(dòng) 化,而全定制則更多的依靠有經(jīng)驗(yàn)的版圖設(shè)計(jì)師來(lái)實(shí)現(xiàn)。

以上是數(shù)字IC部分的,一點(diǎn)個(gè)人的看法與大家共同研究,歡迎各位達(dá)人指出錯(cuò)誤與不足的地方??!
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。