基于ASIC設(shè)計(jì)的手工綜合研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著專用集成電路(Application Specific Integrat-ed Circuit)設(shè)計(jì)的迅速發(fā)展,將寄存器傳輸級(jí)(RTL)描述的手工綜合成門(mén)級(jí)網(wǎng)表,是IC前端設(shè)計(jì)中的關(guān)鍵技術(shù)。在當(dāng)前IC設(shè)計(jì)中,通常在行為級(jí)功能驗(yàn)證后,采用軟件進(jìn)行自動(dòng)綜合的方式。這種方式雖然縮短了ASIC設(shè)計(jì)的周期,但是利用軟件綜合的門(mén)級(jí)電路存在很大的冗余,從而影響到整個(gè)芯片的版圖面積和延時(shí)。如果采用手工綜合,則會(huì)得到最簡(jiǎn)的電路結(jié)構(gòu)和最少的線路延時(shí)。在總體上,手工邏輯綜合可分為時(shí)序邏輯綜合和組合邏輯綜合。
在此,以成功開(kāi)發(fā)的無(wú)線發(fā)碼遙控編碼芯片為實(shí)例,詳細(xì)介紹手工綜合RTL級(jí)代碼的理論依據(jù)和實(shí)用方法,重點(diǎn)介紹時(shí)序邏輯綜合的實(shí)現(xiàn)方法,將時(shí)序邏輯綜合的實(shí)現(xiàn)方法歸納出各種描述的一般特征,將用戶多種多樣的描述歸整為五種形式,避免了綜合過(guò)程中的盲目性,使得整個(gè)綜合過(guò)程有據(jù)可依,從而提高綜合的效率和準(zhǔn)確性,并對(duì)手工綜合進(jìn)行深入的研究。
1 組合邏輯綜合
組合邏輯綜合的功能是對(duì)組合邏輯函數(shù)的描述形式進(jìn)行一系列轉(zhuǎn)換和優(yōu)化,求取實(shí)現(xiàn)該邏輯函數(shù)性能最佳的組合邏輯結(jié)構(gòu)形式,并生成與邏輯功能描述相等價(jià)的優(yōu)化的邏輯級(jí)結(jié)構(gòu)描述。由于行為級(jí)描述或寄存器傳輸級(jí)描述經(jīng)轉(zhuǎn)換后所得到的邏輯級(jí)的邏輯函數(shù)表示通常都是非優(yōu)化的表示,因此就需要使用邏輯優(yōu)化工具對(duì)其進(jìn)行綜合和優(yōu)化。
組合邏輯綜合的目標(biāo)通常有:其一是為了在滿足延遲的約束下將面積最小化;其二是為了提高電路的可測(cè)試性。
組合邏輯電路設(shè)計(jì)是數(shù)字電路設(shè)計(jì)的基礎(chǔ)。相對(duì)時(shí)序邏輯電路而言其綜合過(guò)程要簡(jiǎn)單,可參考上面的手工綜合步驟,在這里設(shè)計(jì)了兩個(gè)電路對(duì)ASIC的手工綜合進(jìn)行具體研究。
1.1 單增量加法器(4位)
所謂單增量加法器,就是在二進(jìn)制計(jì)算中,行使代碼換算的任務(wù),即二進(jìn)制計(jì)算中若輸出有N值存在,接下來(lái)的數(shù)值就是N+1,為了把輸出值從N變?yōu)镹+1就必須做一個(gè)電路。若其Verilog HDL描述語(yǔ)言為:
counter_disp<=counter_disp+4'd1;
則綜合步驟為:
(1)列出真值表(略);
(2)從真值表可以得出其邏輯表達(dá)式為:
(3)綜合后的電路圖如圖1所示。
1.2 數(shù)值比較器(4位)
完成A<B的檢測(cè)功能,其中:A=counter disp[3:0],B=number light[3:0],其原理為:兩個(gè)4位數(shù)的比較是先從A的最高位A3和B的最高位B3進(jìn)行比較,如果A3<B3,則該位的比較結(jié)果作為兩數(shù)的比較結(jié)果,若最高位A3=B3,則再比較次高位A2和B2,以此類推。
對(duì)應(yīng)的描述語(yǔ)言為:
if(counter disp<number light)
(1)列出真值表(見(jiàn)表1)。其中“X”表示任意值。
(2)從真值表寫(xiě)出比較結(jié)果的邏輯表達(dá)式,再通過(guò)化簡(jiǎn)得到最簡(jiǎn)表達(dá)式為:
A_small_B=A3n·B3+(B2⊙82)A2n·B2+(A3⊙83)(A2⊙B2)A1n·B1+(A3⊙B3)(A2⊙B2)(A1⊙B1)·A0n·B0
(3)畫(huà)出綜合后的電路圖(見(jiàn)圖2)。
2 時(shí)序邏輯綜合
時(shí)序邏輯綜合的主要研究集中于同步時(shí)序電路的設(shè)計(jì)綜合。異步時(shí)序電路由于其設(shè)計(jì)和控制過(guò)程的復(fù)雜性,自動(dòng)綜合十分困難。同步時(shí)序電路邏輯綜合研究的內(nèi)容主要有:同步時(shí)序電路的綜合方法(即有限狀態(tài)機(jī)的綜合)、時(shí)序的優(yōu)化以及時(shí)鐘系統(tǒng)的設(shè)計(jì)優(yōu)化等。有限狀態(tài)機(jī)綜合的主要任務(wù)是根據(jù)給定的邏輯功能,選取觸發(fā)器和鎖存器等時(shí)序元件,尋求優(yōu)化的時(shí)序狀態(tài)激勵(lì)函數(shù)。同步時(shí)序電路綜合的目標(biāo)是獲得芯片面積優(yōu)化的高性能電路結(jié)構(gòu)形式,其中包括時(shí)序重構(gòu)和時(shí)序邏輯優(yōu)化等方面。時(shí)序優(yōu)化與時(shí)鐘系統(tǒng)的優(yōu)化通過(guò)分析時(shí)序電路的數(shù)據(jù)傳輸行為,設(shè)置合理的參數(shù),提高系統(tǒng)的效率,消除時(shí)序錯(cuò)誤,解決時(shí)序沖突。優(yōu)化電路,得到最終的門(mén)級(jí)電路網(wǎng)表。
在進(jìn)行了格式判別,確定采用何種時(shí)序元件后,就可以從相應(yīng)的目標(biāo)庫(kù)中提取相應(yīng)的元件,組織成符合最終輸出形式的網(wǎng)表格式。在提取元件時(shí)應(yīng)當(dāng)根據(jù)用戶的輸入描述取得最優(yōu)化的結(jié)果,當(dāng)然,這種優(yōu)化問(wèn)題也可以在得到最終的數(shù)據(jù)通道之后進(jìn)行。對(duì)于同步/異步復(fù)位及上升/下降沿觸發(fā)的問(wèn)題,在一般的目標(biāo)庫(kù)中,都有各種不同類型的時(shí)序邏輯電路元件,同步/異步復(fù)位元件為其中之一。同步/異步復(fù)位觸發(fā)器的綜合與其他元件的綜合有所不同,綜合時(shí)考慮的不僅是某一條賦值語(yǔ)句,而是將用戶的描述作為一個(gè)整體來(lái)考慮。在提取賦值語(yǔ)句時(shí),同時(shí)分析相互有關(guān)聯(lián)的語(yǔ)句以及這些語(yǔ)句的相關(guān)條件,根據(jù)上下文語(yǔ)義得出最終的結(jié)論。下面針對(duì)上述理論用一實(shí)例來(lái)說(shuō)明:在采用上面的綜合步驟預(yù)處理和綜合實(shí)現(xiàn)算法后,得到輸出信號(hào)outA的賦值情況如下:
條件X1成立時(shí)outA≤0;條件X2成立時(shí)outA≤0;條件Y1成立時(shí)outA≤1;條件Y2成立時(shí)OutA≤in1;其他條件下outA保持。
其處理過(guò)程如下:
(1)將所有使輸出信號(hào)為0的條件標(biāo)識(shí)為A1,A2等A類(A1=X1,A2=X2);
(2)將所有使輸出信號(hào)為1的條件標(biāo)識(shí)為B1,B2等B類(B1=Y1);
(3)將所有使輸出信號(hào)為某個(gè)輸入信號(hào)或中間信號(hào)值的條件標(biāo)識(shí)為C1,C2等C類(C1=Y(jié)2);
(4)寫(xiě)出其邏輯表達(dá)式:
(5)將目標(biāo)信號(hào)的邏輯表達(dá)式進(jìn)行畫(huà)簡(jiǎn)(這里設(shè)定已為最簡(jiǎn)式);
(6)畫(huà)出對(duì)應(yīng)的邏輯電路圖(見(jiàn)圖3):(其中in1_not表示為in1的非,其余類同。)
具有數(shù)據(jù)通道的有限狀態(tài)機(jī)是描述數(shù)字系統(tǒng)的最常用的模型。有限狀態(tài)機(jī)分為兩個(gè)部分:數(shù)據(jù)通道部分和控制部件部分。數(shù)據(jù)通道部分包括數(shù)據(jù)的處理部件、存儲(chǔ)部件、傳輸部件及其互連。控制部分主要完成數(shù)據(jù)通道的時(shí)序控制,以及根據(jù)當(dāng)前狀態(tài)、外部控制輸入和數(shù)據(jù)通道內(nèi)部狀態(tài)產(chǎn)生外部控制輸出和數(shù)據(jù)通道控制信號(hào)等。邏輯綜合接受算法級(jí)行為描述,通過(guò)將其編譯轉(zhuǎn)換成為內(nèi)部表示形式,然后經(jīng)過(guò)操作調(diào)度和硬件資源分配等處理過(guò)程,最終產(chǎn)生表示數(shù)據(jù)通道的寄存器傳輸級(jí)網(wǎng)表,并根據(jù)調(diào)度的需要提取控制信息產(chǎn)生控制部件的行為描述(即有限狀態(tài)機(jī)的描述,一般為狀態(tài)轉(zhuǎn)換表/圖)??刂屏骶C合對(duì)行為描述的有限狀態(tài)機(jī)進(jìn)行分解、化簡(jiǎn)、分配等處理,選取時(shí)序元件,導(dǎo)出狀態(tài)轉(zhuǎn)換函數(shù)和控制輸出函數(shù)。
下面以一個(gè)實(shí)例來(lái)介紹控制部分的邏輯綜合過(guò)程和方法。按照前面的步驟,分析Verilog HDL代碼,已得出該控制流部分的狀態(tài)轉(zhuǎn)換圖(見(jiàn)圖4),在這里只列出用符號(hào)代替的狀態(tài)轉(zhuǎn)移條件,未寫(xiě)出各輸出端信號(hào)。
這是IED驅(qū)動(dòng)控制芯片核心模塊(顯示和鍵掃控制模塊)的狀態(tài)轉(zhuǎn)換圖,下面以DISPLAY狀態(tài)為目標(biāo)求其狀態(tài)轉(zhuǎn)移電路圖,如圖5所示。
(1)根據(jù)狀態(tài)轉(zhuǎn)移圖列出與DISPLAY狀態(tài)相關(guān)的狀態(tài)轉(zhuǎn)換條件:
當(dāng)A=1,DISPLAY=1 D=1時(shí),DISPLAY=1;
當(dāng)B=1,DISPLAY=0 C=1時(shí),DISPLAY=0
(2)推斷出DISPLAY狀態(tài)保持的條件,設(shè)為E:E=(B&&DISPLAY)||(C&&DISPLAY)+H=BC&&DISPLAY+H=BC&&DISPLAY
(3)化簡(jiǎn)并得出DISPLAY的邏輯表達(dá)式:
DISPLAY≤A+D+E
(4)畫(huà)出其邏輯電路圖(狀態(tài)機(jī)采用獨(dú)熱碼編碼方式)。
3 結(jié) 語(yǔ)
在此歸納出一套手工邏輯綜合的方法和綜合步驟,該方法適用于中小規(guī)模和超大規(guī)模中的核心電路部分的電路綜合。同時(shí)手工綜合后的效果與自動(dòng)綜合軟件相比,其電路可靠且使用的門(mén)電路規(guī)模減少,功耗降低,延時(shí)達(dá)到最小。