王小華,羅曉曙,殷嚴(yán)剛
摘 要:針對(duì)IC前端設(shè)計(jì)中的關(guān)鍵技術(shù),即將寄存器傳輸級(jí)(RTL)描述的手工綜合成門級(jí)網(wǎng)表,通過(guò)人工參與的方式,運(yùn)用數(shù)字電路設(shè)計(jì)知識(shí)將行為級(jí)代碼用一些最基本的邏輯門(比如與非門、非門、或非門等)按照對(duì)應(yīng)的綜合電路模型得出其相應(yīng)的門級(jí)電路。在ASIC設(shè)計(jì)過(guò)程中運(yùn)用這種方法,不僅優(yōu)化電路的結(jié)構(gòu),且能保證邏輯功能的正確性,同時(shí)可降低傳輸過(guò)程中的延遲,提高芯片設(shè)計(jì)的可靠性。因此,研究ASCI設(shè)計(jì)中的手工綜合具有重要的實(shí)用價(jià)值。
關(guān)鍵詞:專用集成電路;寄存器傳輸級(jí);門級(jí)網(wǎng)表;可靠性;手工綜合
中圖分類號(hào):TN402.22文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2009)20-004-03
Research on Manual Synthesis Based on ASIC Design
WANG Xiaohua,LUO Xiaoshu,YIN Yangang
(College of Physics and Electronic Engineering,Guangxi Normal University,Guilin,541004,China)
Abstract:With the development of ASIC design rapidly,it is key technology of the front-end IC design that the register transfer level description is manually synthesized the register transfer level.Through artificial participation,behave-level code by some of the most basic logic gates(such as nand-door,non-door,nor-door,etc.) gets the corresponding gate-level circuit according to the corresponding synthesized circuit model.Such methods used in ASIC design not only can optimize the circuit structure,but also can guarantee the correct logic function.At the same time,it can reduce the transmission delay and improve the reliability of chip design.Therefore,research on the ASCI design by manual synthesis is of practical value.
Keywords:application specific integrated circuit;register transfer level;register transfer level;reliability;manual synthesis
0 引 言
隨著專用集成電路(Application Specific Integrated Circuit)設(shè)計(jì)的迅速發(fā)展,將寄存器傳輸級(jí)(RTL)描述的手工綜合成門級(jí)網(wǎng)表,是IC前端設(shè)計(jì)中的關(guān)鍵技術(shù)[1]。在當(dāng)前IC設(shè)計(jì)中,通常在行為級(jí)功能驗(yàn)證后,采用軟件進(jìn)行自動(dòng)綜合的方式。這種方式雖然縮短了ASIC設(shè)計(jì)的周期,但是利用軟件綜合的門級(jí)電路存在很大的冗余,從而影響到整個(gè)芯片的版圖面積和延時(shí)。如果采用手工綜合,則會(huì)得到最簡(jiǎn)的電路結(jié)構(gòu)和最少的線路延時(shí)。在總體上,手工邏輯綜合可分為時(shí)序邏輯綜合和組合邏輯綜合[2]。
在此,以成功開(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)確性[3],并對(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è)試性[4]。
組合邏輯電路設(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á)式為:
sum[0]=NOT disp[0]sum[1]= disp[0] XOR disp[1]
sum[2]= disp[2] XOR (disp[0] AND disp[1])
sum[3]= disp[3] XOR (disp[0] ANDdisp[1]AND disp[2])
(3) 綜合后的電路圖如圖1所示。
圖1 單增量加法器手工綜合后電路
1.2 數(shù)值比較器(4位)
完成A
對(duì)應(yīng)的描述語(yǔ)言為:
if(counter disp (1) 列出真值表(見(jiàn)表1)。其中“X”表示任意值。 (2) 從真值表寫(xiě)出比較結(jié)果的邏輯表達(dá)式,再通過(guò)化簡(jiǎn)得到最簡(jiǎn)表達(dá)式為: A_small_B =A3n?B3+(B2⊙B2)A2n?B2+(A3⊙B3)(A2⊙B2)A1n?B1+(A3⊙B3)(A2⊙B2)(A1⊙B1)?A0n?B0 (3) 畫(huà)出綜合后的電路圖(見(jiàn)圖2)。 表1 真值表 輸入輸出 A3B3A2B2A1B1A0B0A A3>B3XXX0 A3 A3=B3A2>B2XX0 A3=B3A2 A3=B3A2=B2A1>B1X0 A3=B3A2=B2A1 A3=B3A2=B2A1=B1A0>B00 A3=B3A2=B2A1=B1A0 A3=B3A2=B2A1=B1A0=B00
圖2 數(shù)值比較器手工綜合后電路
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í)序沖突[6]。優(yōu)化電路,得到最終的門級(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ù)位元件為其中之一[7]。同步/異步復(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=Y2);
(4) 寫(xiě)出其邏輯表達(dá)式:
outA=(A1+A2+in1_not C1)(B1+in1?C1+outA)
=(X1+X2+in1_not Y2)(Y1+in1?Y2+outA)
(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的非,其余類同。)
圖3 綜合后電路
具有數(shù)據(jù)通道的有限狀態(tài)機(jī)是描述數(shù)字系統(tǒng)的最常用的模型。有限狀態(tài)機(jī)分為兩個(gè)部分:數(shù)據(jù)通道部分和控制部件部分。數(shù)據(jù)通道部分包括數(shù)據(jù)的處理部件、存儲(chǔ)部件、傳輸部件及其互連[8]??刂撇糠种饕瓿蓴?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)換表/圖)[9]??刂屏骶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)。
圖4 狀態(tài)轉(zhuǎn)移圖
這是LED驅(qū)動(dòng)控制芯片核心模塊(顯示和鍵掃控制模塊)的狀態(tài)轉(zhuǎn)換圖,下面以DISPLAY狀態(tài)為目標(biāo)求其狀態(tài)轉(zhuǎn)移電路圖,如圖5所示。
圖5 狀態(tài)DISPLAY 綜合后電路
(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)綜合軟件相比,其電路可靠且使用的門電路規(guī)模減少,功耗降低,延時(shí)達(dá)到最小。
參考文獻(xiàn)
[1]蔡彭慈,周強(qiáng).超大規(guī)模集成電路設(shè)計(jì)導(dǎo)論[M].北京:清華大學(xué)出版社,2005.
[2]劉麗華,辛德祿,李本俊.專用集成電路設(shè)計(jì)方法[M].北京:北京郵電大學(xué)出版社,2001.
[3]汪慶寶,宿昌厚.超大規(guī)模規(guī)模集成電路設(shè)計(jì)技術(shù)從電路到芯片[M].北京:電子工業(yè)出版社,1996.
[4]Martin,Kenneth W.Digital Integrated Circuit Design[M].Beijing:Pub.House of Electronics Industry,2002.
[5]Christopher Saint,Judy Saint.IC Layout Basic[M].北京:清華大學(xué)出版社,2003.
[6]Michael John Sebastian Smith.Application-specific Integrated Circuits[M].北京:清華大學(xué)出版社,2006.
[7]R Jccob Baker,Harry W Li,David E Boyce.CMOS Circuit Design,Layoutand Simulation[M].北京:機(jī)械工業(yè)出版社,2005.
[8]Christopher Saint,Judy Saint.IC Mask Design[M].北京:清華大學(xué)出版社,2006.
[9]Mehmet A Cirit.Characterizing a VLSI Standard Cell Library[A].Custerm Integrated Circuits Conference[C].IEEE,1991.