EDA如何實(shí)現(xiàn)并行化?如何邁向更好的應(yīng)用方向?
EDA的出現(xiàn)和發(fā)展與半導(dǎo)體技術(shù)的發(fā)展密切相關(guān)。20世紀(jì)50年代,隨著半導(dǎo)體技術(shù)的發(fā)展,電路設(shè)計(jì)變得越來(lái)越復(fù)雜,手工設(shè)計(jì)已經(jīng)無(wú)法滿足設(shè)計(jì)需求。在20世紀(jì)60年代初期,計(jì)算機(jī)開始被用于電路設(shè)計(jì)中。最初的電路設(shè)計(jì)軟件是由電子工程師們自己編寫的,這些軟件主要用于計(jì)算電路元件的參數(shù)和特性。20世紀(jì)70年代,EDA開始成為一個(gè)獨(dú)立的領(lǐng)域,電路設(shè)計(jì)軟件開始向通用化和自動(dòng)化的方向發(fā)展。20世紀(jì)80年代,EDA技術(shù)得到了迅速的發(fā)展,出現(xiàn)了許多EDA軟件,如原理圖編輯器、布局編輯器、模擬器、綜合器、靜態(tài)和動(dòng)態(tài)時(shí)序分析器等。20世紀(jì)90年代,EDA技術(shù)進(jìn)一步發(fā)展,出現(xiàn)了更加高級(jí)的EDA工具和技術(shù),如高級(jí)綜合、邏輯合成、形式驗(yàn)證、物理設(shè)計(jì)自動(dòng)化等。
在IC設(shè)計(jì)中,并行化指的是利用并行處理技術(shù)來(lái)加速設(shè)計(jì)過(guò)程的方法。具體來(lái)說(shuō),IC設(shè)計(jì)的并行化可以通過(guò)以下幾種方式實(shí)現(xiàn):數(shù)據(jù)并行,將不同的數(shù)據(jù)處理任務(wù)分配給不同的處理單元或線程,同時(shí)進(jìn)行處理。這種方式可以利用多核CPU或多線程處理器的優(yōu)勢(shì),提高整體數(shù)據(jù)處理效率??刂撇⑿?,在IC設(shè)計(jì)中,控制并行指的是利用不同的控制信號(hào)并行控制不同的處理單元或線程,以加速數(shù)據(jù)處理過(guò)程。數(shù)據(jù)流并行,將設(shè)計(jì)中的各個(gè)階段進(jìn)行并行處理,盡可能減少串行步驟,從而縮短整個(gè)設(shè)計(jì)流程的時(shí)間。例如,在數(shù)字前端設(shè)計(jì)流程中,可以將綜合、布局和布線等步驟進(jìn)行并行處理,以加快整體設(shè)計(jì)速度。并行仿真和驗(yàn)證,在設(shè)計(jì)和測(cè)試階段,可以利用多線程、多進(jìn)程等技術(shù)將仿真和驗(yàn)證過(guò)程并行化,從而減少整體測(cè)試時(shí)間。
在過(guò)去的幾年中,諸如“多線程”,“多處理”和由此衍生出的市場(chǎng)術(shù)語(yǔ)等術(shù)語(yǔ)已開始作為現(xiàn)有電子設(shè)計(jì)自動(dòng)化(EDA)軟件的功能出現(xiàn)。同時(shí),廉價(jià)的計(jì)算資源的可用性(最好地體現(xiàn)在當(dāng)今可用的多核中央處理器(CPU)中)可以提供一種經(jīng)濟(jì)有效的方式來(lái)減少EDA軟件的運(yùn)行時(shí)間。
物理設(shè)計(jì)和物理驗(yàn)證軟件是需要此類技術(shù)的計(jì)算密集型EDA應(yīng)用程序的示例。一個(gè)示例是典型的蒙版,其中可能包含數(shù)十億個(gè)物理幾何形狀。必須創(chuàng)建掩模布局中的每個(gè)幾何圖形,設(shè)計(jì)自定義庫(kù),然后放置和布線,并將其組裝成完整的芯片。每種幾何形狀都必須經(jīng)過(guò)驗(yàn)證,以符合鑄造廠的制造要求,同時(shí)還要面對(duì)越來(lái)越多的復(fù)雜設(shè)計(jì)規(guī)則。對(duì)于現(xiàn)代設(shè)計(jì),單CPU運(yùn)行時(shí)間很容易超過(guò)數(shù)百小時(shí)。顯然需要并行處理。
EDA(電子設(shè)計(jì)自動(dòng)化)的并行化可以通過(guò)以下幾種方式實(shí)現(xiàn):
1.進(jìn)程語(yǔ)句:EDA語(yǔ)言中最具特色的語(yǔ)句是進(jìn)程語(yǔ)句,它提供了一種用算法描述硬件行為的方法。進(jìn)程語(yǔ)句可以并行執(zhí)行,因?yàn)樗鼈兪窍嗷オ?dú)立的,可以在不同的CPU核心上同時(shí)運(yùn)行。
2.并行信號(hào)賦值語(yǔ)句:在EDA語(yǔ)言中,信號(hào)賦值語(yǔ)句也可以并行執(zhí)行。這是因?yàn)檫@些語(yǔ)句的功能是同時(shí)對(duì)多個(gè)信號(hào)進(jìn)行賦值操作,而這些操作可以同時(shí)執(zhí)行。
3.元件例化語(yǔ)句:元件例化語(yǔ)句可以在不同的CPU核心上同時(shí)運(yùn)行,實(shí)現(xiàn)并行化處理。
4.生成語(yǔ)句:生成語(yǔ)句可以在不同的CPU核心上同時(shí)運(yùn)行,實(shí)現(xiàn)并行化處理。這是因?yàn)樯烧Z(yǔ)句的功能是根據(jù)一組條件生成一組操作,而這些操作可以同時(shí)執(zhí)行。
隨著多核CPU的普及,使用并行化EDA工具可以顯著縮短設(shè)計(jì)時(shí)間。例如,在芯片物理設(shè)計(jì)和物理驗(yàn)證階段,需要進(jìn)行大量的計(jì)算和模擬,使用并行化EDA工具可以大大加快這些過(guò)程。此外,在數(shù)字前端設(shè)計(jì)流程中,可以將綜合、布局和布線等步驟進(jìn)行并行處理,以加快整體設(shè)計(jì)速度。使用并行化EDA工具可以提高設(shè)計(jì)效率和質(zhì)量,縮短設(shè)計(jì)周期。