對于不同的設(shè)計要求,工程師可以選擇使用半定制設(shè)計途徑,例如采用可編程邏輯器件(現(xiàn)場可編程邏輯門陣列等)或基于標(biāo)準(zhǔn)單元庫的專用集成電路來實現(xiàn)硬件電路;也可以使用全定制設(shè)計,控制晶體管版圖到系統(tǒng)結(jié)構(gòu)的全部細(xì)節(jié)。
全定制設(shè)計這種設(shè)計方式要求設(shè)計人員利用版圖編輯器來完成版圖設(shè)計、參數(shù)提取、單元表征,然后利用這些自己設(shè)計的單元來完成電路的構(gòu)建。通常,全定制設(shè)計是為了最大化優(yōu)化電路性能。如果標(biāo)準(zhǔn)單元庫中缺少某種所需的單元,也需要采取全定制設(shè)計的方法完成所需的單元設(shè)計。不過,這種設(shè)計方式通常需要較長的時間。半定制設(shè)計與全定制設(shè)計相對的設(shè)計方式為半定制設(shè)計。簡而言之,半定制集成電路設(shè)計是基于預(yù)先設(shè)計好的某些邏輯單元。例如,設(shè)計人員可以在標(biāo)準(zhǔn)組件庫(通??梢詮牡谌劫徺I)的基礎(chǔ)上設(shè)計專用集成電路,從中選取所需的邏輯單元(例如各種基本邏輯門、觸發(fā)器等)來搭建所需的電路。他們也可以使用可編程邏輯器件來完成設(shè)計,這類器件的幾乎所有物理結(jié)構(gòu)都已經(jīng)固定在芯片之中,僅剩下某些連線可以由用戶編程決定其連接方式。
與這些預(yù)先設(shè)計好的邏輯單元有關(guān)的性能參數(shù)通常也由其供應(yīng)商提供,以方便設(shè)計人員進(jìn)行時序、功耗分析。在半定制的現(xiàn)場可編程邏輯門陣列(FPGA)上實現(xiàn)設(shè)計的優(yōu)點是開發(fā)周期短、成本低??删幊踢壿嬈骷删幊踢壿嬈骷ǔS砂雽?dǎo)體廠家提供商品芯片,這些芯片可以通過JTAG等方式和計算機連接,因此設(shè)計人員可以用電子設(shè)計自動化工具來完成設(shè)計,然后將利用設(shè)計代碼來對邏輯芯片編程??删幊踢壿嬯嚵行酒诔鰪S前就提前定義了邏輯門構(gòu)成的陣列,而邏輯門之間的連接線路則可以通過編程來控制連接與斷開。隨著技術(shù)的發(fā)展,對連接線的編程可以通過EPROM(利用較高壓電編程、紫外線照射擦除)、EEPROM(利用電信號來多次編程和擦除)、SRAM、閃存等方式實現(xiàn)。現(xiàn)場可編程邏輯門陣列是一種特殊的可編程邏輯器件,它的物理基礎(chǔ)是可配置邏輯單元,由查找表、可編程多路選擇器、寄存器等結(jié)構(gòu)組成。查找表可以用來實現(xiàn)邏輯函數(shù),如三個輸入端的查找表可以實現(xiàn)所有三變量的邏輯函數(shù)。專用集成電路針對特殊應(yīng)用設(shè)計的專用集成電路(ASIC)的優(yōu)點是面積、功耗、時序可以得到最大程度地優(yōu)化。專用集成電路只能在整個集成電路設(shè)計完成之后才能開始制造,而且需要專業(yè)的半導(dǎo)體工廠的參與。
專用集成電路可以是基于標(biāo)準(zhǔn)單元庫,也可以是全定制設(shè)計。在后一種途徑中,設(shè)計人員對于晶圓上組件的位置和連接有更多的控制權(quán),而不像可編程邏輯器件途徑,只能選擇使用其中部分硬件資源,從而造成部分資源被浪費。專用集成電路的面積、功耗、時序特性通??梢缘玫礁玫膬?yōu)化。然而,專用集成電路的設(shè)計會更加復(fù)雜,并且需要專門的工藝制造部門(或者外包給晶圓代工廠)才能將GDSII文件制造成電路。一旦專用集成電路芯片制造完成,就不能像可編程邏輯器件那樣對電路的邏輯功能進(jìn)行重新配置。對于單個產(chǎn)品,在專用集成電路上實現(xiàn)集成電路的經(jīng)濟(jì)、時間成本都比可編程邏輯器件高,因此在早期的設(shè)計與調(diào)試過程中,常用可編程邏輯器件,尤其是現(xiàn)場可編程邏輯門陣列;如果所設(shè)計的集成電路將要在后期大量投產(chǎn),那么批量生產(chǎn)專用集成電路將會更經(jīng)濟(jì)。
隨著超大規(guī)模集成電路的復(fù)雜程度不斷提高,電路制造后的測試所需的時間和經(jīng)濟(jì)成本也不斷增加。以往,人們將絕大多數(shù)精力放在設(shè)計本身,而并不考慮之后的測試,因為那時的測試相對更為簡單。近年來,測試本身也逐漸成為一個龐大的課題。比如,從電路外部控制某些內(nèi)部信號使得它們呈現(xiàn)特定的邏輯值比較容易,而某些內(nèi)部信號由于依賴大量其它內(nèi)部信號,從外部很難直接改變它們的數(shù)值。此外,內(nèi)部信號的改變很多時候不能在主輸出端觀測(有時主輸出端的信號輸出看似正確,其實內(nèi)部狀態(tài)是錯誤的,僅觀測主輸出端的輸出不足以判斷電路是否正常工作)。以上兩類問題,即可控制性和可觀測性,是可測試性的兩大組成部分。