芯片設(shè)計(jì)流程
集成電路設(shè)計(jì)可以大致分為數(shù)字集成電路設(shè)計(jì)和模擬集成電路設(shè)計(jì)兩大類。不過,實(shí)際的集成電路還有可能是混合信號(hào)集成電路,因此不少電路的設(shè)計(jì)同時(shí)用到這兩種流程。模擬集成電路集成電路設(shè)計(jì)的另一個(gè)大分支是模擬集成電路設(shè)計(jì),這一分支通常關(guān)注電源集成電路、射頻集成電路等。由于現(xiàn)實(shí)世界的信號(hào)是模擬的,所以,在電子產(chǎn)品中,模-數(shù)、數(shù)-模相互轉(zhuǎn)換的集成電路也有著廣泛的應(yīng)用。模擬集成電路包括運(yùn)算放大器、線性整流器、鎖相環(huán)、振蕩電路、有源濾波器等。相較數(shù)字集成電路設(shè)計(jì),模擬集成電路設(shè)計(jì)與半導(dǎo)體器件的物理性質(zhì)有著更大的關(guān)聯(lián),例如其增益、電路匹配、功率耗散以及阻抗等等。模擬信號(hào)的放大和濾波要求電路對(duì)信號(hào)具備一定的保真度,因此模擬集成電路比數(shù)字集成電路使用了更多的大面積器件,集成度亦相對(duì)較低。
在微處理器和計(jì)算機(jī)輔助設(shè)計(jì)方法出現(xiàn)前,模擬集成電路完全采用人工設(shè)計(jì)的方法。由于人處理復(fù)雜問題的能力有限,因此當(dāng)時(shí)的模擬集成電路通常是較為基本的電路,運(yùn)算放大器集成電路就是一個(gè)典型的例子。在當(dāng)時(shí)的情況下,這樣的集成電路可能會(huì)涉及十幾個(gè)晶體管以及它們之間的互連線。為了使模擬集成電路的設(shè)計(jì)能達(dá)到工業(yè)生產(chǎn)的級(jí)別,工程師需要采取多次迭代的方法以測(cè)試、排除故障。重復(fù)利用已經(jīng)設(shè)計(jì)、驗(yàn)證的設(shè)計(jì),可以進(jìn)一步構(gòu)成更加復(fù)雜的集成電路。1970年代之后,計(jì)算機(jī)的價(jià)格逐漸下降,越來越多的工程師可以利用這種現(xiàn)代的工具來輔助設(shè)計(jì),例如,他們使用編好的計(jì)算機(jī)程序進(jìn)行仿真,便可獲得比之前人工計(jì)算、設(shè)計(jì)更高的精確度。SPICE是第一款針對(duì)模擬集成電路仿真的軟件(事實(shí)上,數(shù)字集成電路中標(biāo)準(zhǔn)單元本身的設(shè)計(jì),也需要用到SPICE來進(jìn)行參數(shù)測(cè)試),其字面意思是“以集成電路為重點(diǎn)的仿真程序(英語(yǔ):Simulation Program with Integrated Circuit Emphasis)” 基于計(jì)算機(jī)輔助設(shè)計(jì)的電路仿真工具能夠適應(yīng)更加復(fù)雜的現(xiàn)代集成電路,特別是專用集成電路。使用計(jì)算機(jī)進(jìn)行仿真,還可以使項(xiàng)目設(shè)計(jì)中的一些錯(cuò)誤在硬件制造之前就被發(fā)現(xiàn),從而減少因?yàn)榉磸?fù)測(cè)試、排除故障造成的大量成本。此外,計(jì)算機(jī)往往能夠完成一些極端復(fù)雜、繁瑣,人類無法勝任的任務(wù),使得諸如蒙地卡羅方法等成為可能。實(shí)際硬件電路會(huì)遇到的與理想情況不一致的偏差,例如溫度偏差、器件中半導(dǎo)體摻雜濃度偏差,計(jì)算機(jī)仿真工具同樣可以進(jìn)行模擬和處理。
總之,計(jì)算機(jī)化的電路設(shè)計(jì)、仿真能夠使電路設(shè)計(jì)性能更佳,而且其可制造性可以得到更大的保障。盡管如此,相對(duì)數(shù)字集成電路,模擬集成電路的設(shè)計(jì)對(duì)工程師的經(jīng)驗(yàn)、權(quán)衡矛盾等方面的能力要求更嚴(yán)格。數(shù)字電路粗略地說,數(shù)字集成電路可以分為以下基本步驟:系統(tǒng)定義、寄存器傳輸級(jí)設(shè)計(jì)、物理設(shè)計(jì)。而根據(jù)邏輯的抽象級(jí)別,設(shè)計(jì)又分為系統(tǒng)行為級(jí)、寄存器傳輸級(jí)、邏輯門級(jí)。設(shè)計(jì)人員需要合理地書寫功能代碼、設(shè)置綜合工具、驗(yàn)證邏輯時(shí)序性能、規(guī)劃物理設(shè)計(jì)策略等等。在設(shè)計(jì)過程中的特定時(shí)間點(diǎn),還需要多次進(jìn)行邏輯功能、時(shí)序約束、設(shè)計(jì)規(guī)則方面的檢查、調(diào)試,以確保設(shè)計(jì)的最終成果合乎最初的設(shè)計(jì)收斂目標(biāo)。系統(tǒng)定義系統(tǒng)定義是進(jìn)行集成電路設(shè)計(jì)的最初規(guī)劃,在此階段設(shè)計(jì)人員需要考慮系統(tǒng)的宏觀功能。設(shè)計(jì)人員可能會(huì)使用一些高抽象級(jí)建模語(yǔ)言和工具來完成硬件的描述,例如C語(yǔ)言、C++、SystemC、SystemVerilog等事務(wù)級(jí)建模語(yǔ)言,以及Simulink和MATLAB等工具對(duì)信號(hào)進(jìn)行建模。
盡管主流是以寄存器傳輸級(jí)設(shè)計(jì)為中心,但已有一些直接從系統(tǒng)級(jí)描述向低抽象級(jí)描述(如邏輯門級(jí)結(jié)構(gòu)描述)轉(zhuǎn)化的高級(jí)綜合(或稱行為級(jí)綜合)、高級(jí)驗(yàn)證工具正處于發(fā)展階段。系統(tǒng)定義階段,設(shè)計(jì)人員還對(duì)芯片預(yù)期的工藝、功耗、時(shí)鐘頻率頻率、工作溫度等性能指標(biāo)進(jìn)行規(guī)劃 [2] 。寄存器傳輸級(jí)設(shè)計(jì)集成電路設(shè)計(jì)常常在寄存器傳輸級(jí)上進(jìn)行,利用硬件描述語(yǔ)言來描述數(shù)字集成電路的信號(hào)儲(chǔ)存以及信號(hào)在寄存器、存儲(chǔ)器、組合邏輯裝置和總線等邏輯單元之間傳輸?shù)那闆r。在設(shè)計(jì)寄存器傳輸級(jí)代碼時(shí),設(shè)計(jì)人員會(huì)將系統(tǒng)定義轉(zhuǎn)換為寄存器傳輸級(jí)的描述。設(shè)計(jì)人員在這一抽象層次最常使用的兩種硬件描述語(yǔ)言是Verilog、VHDL,二者分別于1995年和1987年由電氣電子工程師學(xué)會(huì)(IEEE)標(biāo)準(zhǔn)化。正由于有著硬件描述語(yǔ)言,設(shè)計(jì)人員可以把更多的精力放在功能的實(shí)現(xiàn)上,這比以往直接設(shè)計(jì)邏輯門級(jí)連線的方法學(xué)(使用硬件描述語(yǔ)言仍然可以直接設(shè)計(jì)門級(jí)網(wǎng)表,但是少有人如此工作)具有更高的效率。