版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
4.1CMOS門電路4.2時序與時序電路4.3時序電路設(shè)計(jì)4.4算術(shù)邏輯構(gòu)件設(shè)計(jì)4.5分析、仿真與驗(yàn)證4.6設(shè)計(jì)綜合與優(yōu)化4.7EDIF格式課程設(shè)計(jì)習(xí)題第4章數(shù)字電路設(shè)計(jì)技術(shù)
4.1CMOS門電路
對于CMOS工藝來說,最底層的單元都是屬于靜態(tài)全互補(bǔ)結(jié)構(gòu)。但實(shí)現(xiàn)同一個功能,仍可以采用不同的門級邏輯結(jié)構(gòu),其性能水平的差別仍然會比較大。設(shè)計(jì)好各種基本單元,仍然是展示創(chuàng)新的一個重要機(jī)會。需要注意,對于靜態(tài)邏輯電路而言,當(dāng)CMOS門的輸入端個數(shù)大于3時,其速度明顯變慢、芯片面積(以后簡稱面積)變大。因此除了CMOS標(biāo)準(zhǔn)門之外,其他經(jīng)常被采用的還有比率(Ratioed)邏輯或通路晶體管邏輯設(shè)計(jì),特別是基于傳輸門的設(shè)計(jì)較為普遍。此外被較多采用的還有動態(tài)邏輯電路,它靠高阻電路節(jié)點(diǎn)上的電容暫存信號值,其特點(diǎn)是簡捷、快速。然而動態(tài)邏輯對噪聲較為敏感,而且設(shè)計(jì)復(fù)雜度增加。上述這些電路與CMOS工藝是兼容的。
本節(jié)主要介紹CMOS組合邏輯電路。4.1.1邏輯功能函數(shù)
1.名詞解釋
所謂邏輯門,就是被用來計(jì)算某一種特定布爾函數(shù)的電路網(wǎng)絡(luò)。邏輯門設(shè)計(jì)就是尋找一種邏輯網(wǎng)絡(luò)結(jié)構(gòu),來計(jì)算指定的組合邏輯函數(shù)表達(dá)式。例如用一種或非門結(jié)構(gòu)來計(jì)算(a+b)!。表達(dá)式和邏輯門通常并非一一對應(yīng),其原因在于表達(dá)式有許多等價形式。雖然它們的功能等價,但物理門結(jié)構(gòu)卻明顯不同,隨之而來的版圖等后續(xù)重要派生特征,諸如延遲、面積、功耗、可測性等指標(biāo)均可能不同,因此必須引起足夠重視。下面舉例說明。如圖4-1所示,(a+b)!c、a!b!c、(a+b+c!)!表達(dá)式是等價的,但它們的網(wǎng)絡(luò)結(jié)構(gòu)卻不同。以CMOS門為例,圖4-1(a)中共包含10個晶體管,其中或非門用4個管子,后面的與門由4個管子的與非門和2個管子的反相器組成。圖4-1(b)要用12個管子,其中3個反相器是6個管子,一個三輸入與非門是6個管子。圖4-1(c)則僅用8個管子即可。圖4-1完成同樣功能的不同網(wǎng)絡(luò)結(jié)構(gòu)
2.完備性和無冗余性
下面介紹邏輯表達(dá)式的完備性(Completeness)和無冗余性(Irredundancy)。
稱某類邏輯函數(shù)是完備的,是指如果反復(fù)使用此類邏輯函數(shù),進(jìn)行同類組合的邏輯運(yùn)算,就可以實(shí)現(xiàn)所有布爾邏輯功能。事實(shí)上,只要驗(yàn)證用該類邏輯函數(shù)能否組合成全部的基本邏輯式(基本功能單元)即可得出結(jié)論。例如,反復(fù)用二輸入與非門NAND進(jìn)行與非運(yùn)算,就可以實(shí)現(xiàn)“1”、“0”和三種基本運(yùn)算功能:“非”——a!、“與”——ab(又寫作a·b)、“或”——a+b等全部基本邏輯公式,其中a、b為輸入邏輯變量,定義域?yàn)閇0,1]?,F(xiàn)證明如下:
·a!:(aa)!=a!
·1:(a(aa)!)!=(aa!)!=1(如圖4-2所示)
·0:((a(aa)!)!(a(aa)!)!)!=(11)!=0
·ab:((ab)!(ab)!)!=ab
·a+b:((aa)!(bb)!)!=(a!b!)!=a+b
對于輸入端多于兩個的與非門NAND,上述結(jié)論也成立。可見,NAND函數(shù)是完備的。同樣,或非門NOR也是完備的。NAND和NOR函數(shù)的完備性已經(jīng)成為門陣列結(jié)構(gòu)形式可行性的基本理論依據(jù)。但是要注意與門AND、或門OR則不是完備的,需要再加上非門NOT才行,以分別使{!,+}以及{!,·}均可實(shí)現(xiàn)。圖4-2二輸入與非門實(shí)現(xiàn)輸出為1的功能所謂無冗余,就是要求公式最簡化,用于化簡的武器還是狄·摩根(DeMorgan)定理。例如,冗余的ab+ab!可以化簡為無冗余的a。通常,化簡對于面積和延遲都是有效的。但是在冗余化簡時,要保證新的邏輯網(wǎng)絡(luò)對某些制造缺陷故障仍然是可測的。另外,無冗余并非總是最佳,也并非版圖一定是最小的。還有一些場合,無冗余引起的附加延遲和時序問題甚至需要用冗余來消除。4.1.2靜態(tài)邏輯CMOS門
1.CMOS門結(jié)構(gòu)與上拉/下拉網(wǎng)絡(luò)
我們習(xí)慣采用CMOS靜態(tài)全互補(bǔ)門,而不是動態(tài)門。靜態(tài)是指其邏輯功能靠門的導(dǎo)通與截止來實(shí)現(xiàn),與存儲電荷無關(guān),互補(bǔ)是指同時采用上拉P管網(wǎng)絡(luò)(通稱為上拉網(wǎng)絡(luò)(PUN,Pull-UpNetwork))和下拉N管網(wǎng)絡(luò)(通稱為下拉網(wǎng)絡(luò)(PDN,Pull-DownNetwork))。CMOS的優(yōu)點(diǎn)是噪聲容限高,靜態(tài)功耗低,適當(dāng)選取P管和N管尺寸可以使上升邊和下降邊時間接近。注意,CMOS的反相器要比同相緩沖器簡單,與非門要比與門簡單。例如,最簡單的反相器和與非門互補(bǔ)結(jié)構(gòu)如圖4-3所示。圖4-3反相器和與非門互補(bǔ)結(jié)構(gòu)對于復(fù)雜的CMOS網(wǎng)絡(luò)來說,N管串聯(lián)對應(yīng)的P管網(wǎng)絡(luò)必然為并聯(lián);反之亦然。設(shè)計(jì)時可以先設(shè)計(jì)N管邏輯網(wǎng)絡(luò),這時,串聯(lián)實(shí)現(xiàn)“與”,并聯(lián)實(shí)現(xiàn)“或”。然后再對偶地加以推廣,即可得到P管網(wǎng)絡(luò)。下面給出的對偶準(zhǔn)則,應(yīng)用于一般CMOS的PDN和PUN實(shí)現(xiàn)的展開過程,邏輯可綜合性能好。
完整的CMOS網(wǎng)絡(luò)由下拉網(wǎng)絡(luò)(PDN)和上拉網(wǎng)絡(luò)(PUN)兩部分組成,由PDN輸出強(qiáng)0、弱1,由PUN輸出強(qiáng)1、弱0,其互補(bǔ)關(guān)系如圖4-4所示。圖4-4下拉網(wǎng)絡(luò)PDN和上拉網(wǎng)絡(luò)PUN結(jié)合圖4-4,我們對CMOS上拉網(wǎng)絡(luò)和下拉網(wǎng)絡(luò)對偶性拓?fù)浣Y(jié)構(gòu)的設(shè)計(jì)原理說明如下。
為了研究網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),我們把PDN和PUN視為兩個開關(guān)網(wǎng)絡(luò)。其中PDN中的N管視為一個由高電平直接控制的正開關(guān);PUN中的P管也視為一個正開關(guān),不過是把上述控制電平反相后的信號作為其輸入信號。另一方面,可以將PDN的輸出端看做是整體反相(意味著當(dāng)輸入高電平致使下拉網(wǎng)絡(luò)導(dǎo)通時,該輸出點(diǎn)的電平反而為0);而PUN的輸出端則不再反相。所以這兩個網(wǎng)絡(luò)的根本不同之處可以歸結(jié)為:PDN是輸出反相;PUN是輸入反相。我們用D描述PDN網(wǎng)絡(luò)結(jié)構(gòu)的邏輯操作關(guān)系,用U描述PUN網(wǎng)絡(luò)結(jié)構(gòu)的邏輯操作關(guān)系,從而由輸出端、輸入端所確定的二者邏輯關(guān)系為
由狄·摩根定理可知,PDN和PUN的網(wǎng)絡(luò)結(jié)構(gòu)如果對偶的話,就正好能充分滿足上述關(guān)系(非必要條件),即
如果PDN中是串聯(lián)開關(guān)網(wǎng)絡(luò)(構(gòu)成“與”的關(guān)系),則PUN中對應(yīng)的為并聯(lián)開關(guān)網(wǎng)絡(luò)(構(gòu)成“或”的關(guān)系);反之亦然。對偶準(zhǔn)則可以擴(kuò)展到復(fù)雜的串并聯(lián)PDN對應(yīng)復(fù)雜的并串聯(lián)PUN結(jié)構(gòu)。
2.與或非(AOI)及或與非(OAI)結(jié)構(gòu)
在完成CMOS電路的底層設(shè)計(jì)時,首推下列兩種優(yōu)化的積之和以及和之積結(jié)構(gòu):與或非復(fù)合門結(jié)構(gòu)(AOI,And-Or-Inverter);或與非復(fù)合門結(jié)構(gòu)(OAI,Or-And-Inverter)。它們是兩種應(yīng)用最為普遍的CMOS電路底層結(jié)構(gòu)。在AOI的邏輯結(jié)構(gòu)中,OI是畫在一起的一個或非門,A的個數(shù)可以是1、2、3。AOI的表達(dá)式又分為AOI***、AOI**兩種。AOI**中的**表示前面兩個與門A的各自輸入端個數(shù),一般數(shù)字不得超過3,例如AOI32表示一個是三輸入與門,另一個是二輸入與門;AOI***則表示前面共有三個與門。AOI物理結(jié)構(gòu)的PUN部分是先串后并;對偶的PUN部分則是先并后串。AOI32共計(jì)10個管子即可;如果直接根據(jù)表達(dá)式構(gòu)成,則要18個管子。
OAI***、OAI**的含義和與或非復(fù)合門的含義類似。將圖4-3中的二輸入與非門對偶結(jié)構(gòu)加以推廣,就可以擴(kuò)展為一般與或非門(AOI)的對偶結(jié)構(gòu)設(shè)計(jì)。例如,圖4-5中的與或非門AOI21(這里的2表示其中一個與門是二輸入,1表示另一個與門是一輸入,即這個與門實(shí)際上是不存在的):B=((A1·A2)+A3)!。它是先在N管區(qū)(PDN)設(shè)計(jì)串并關(guān)系,然后根據(jù)對偶原理立即可得P管區(qū)(PUN)的并串關(guān)系設(shè)計(jì)。圖4-5與或非門AOI21結(jié)構(gòu)只要是積之和(先串-與,后并-或)的形式,就能直接用AOI結(jié)構(gòu)設(shè)計(jì)。如果是和之積(先或后與)的形式,則能直接用OAI結(jié)構(gòu)實(shí)現(xiàn)。這樣做,一般比通過許多NAND門或NOR門的連接組合實(shí)現(xiàn),在面積和速度上都要優(yōu)越得多。例如在圖4-5所示的電路中,總共需要6個管子即可,而不是10個管子。其他復(fù)雜的結(jié)構(gòu)設(shè)計(jì),可以如法炮制,舉一反三。
底層電路的綜合優(yōu)化需要結(jié)合版圖工藝特點(diǎn)在管子一級進(jìn)行。CMOS的AOI和OAI模塊結(jié)構(gòu)比較優(yōu)化,要盡量加以利用。采用AOI和OAI結(jié)構(gòu)形式就是最直接的優(yōu)化。此外,還有多米諾(Domino)一類將動態(tài)邏輯和靜態(tài)邏輯相結(jié)合的門電路結(jié)構(gòu)形式,在實(shí)際中也有不少應(yīng)用。這種結(jié)構(gòu)的優(yōu)點(diǎn)是面積小、速度快。由于多米諾邏輯不是完備集,它只有AND、OR,所以不可能只用多米諾邏輯就能完成所有的電路設(shè)計(jì)。
3.異或門結(jié)構(gòu)
下面給出異或門A
B一類的設(shè)計(jì)實(shí)例。目前這類底層設(shè)計(jì)工作已經(jīng)主要由EDA工具來實(shí)現(xiàn),而并非仍然由人工加以判斷、手工進(jìn)行化簡。不過設(shè)計(jì)師應(yīng)該明白其中的原理,而且也是可以控制和介入的。
異或門XOR和同或門XNOR在實(shí)際中應(yīng)用很多,我們以此為例進(jìn)一步說明底層設(shè)計(jì)技術(shù)。
注意,圖4-6中的門級結(jié)構(gòu)圖可以與版圖中管子級結(jié)構(gòu)直接對應(yīng),其中圖4-6(a)為異或門,圖4-6(b)為異或非門(又稱同或門)。圖4-6異或門及異或非門以圖4-6(a)為例,該異或門的實(shí)際版圖是由或非門及圖中虛線圈起的AOI21門組成的復(fù)合門結(jié)構(gòu),共計(jì)需要10個管子。如果不針對CMOS版圖結(jié)構(gòu)就設(shè)計(jì)不出面積和速度均為優(yōu)化的門級電路。假設(shè)直接按標(biāo)準(zhǔn)布爾方程式設(shè)計(jì),結(jié)果不僅規(guī)模大——需要22個管子,而且時序不佳,甚至還會有競爭現(xiàn)象。因此,應(yīng)充分利用狄·摩根定理進(jìn)行表達(dá)式的變換,以設(shè)計(jì)出最佳的電路。
圖4-6(b)異或非門(同或門)的情況與異或門類似,它是由與非門以及OAI21門組成的復(fù)合門結(jié)構(gòu),也是10個管子。不然的話,面積將會變大(12個管子,甚至22個管子),而且速度也低。
1)半加器
真實(shí)的半加器結(jié)構(gòu)如圖4-7所示。其中實(shí)現(xiàn)半加和的功能采用的是異或門電路,即圖4-7半加器結(jié)構(gòu)
2)奇偶校驗(yàn)
數(shù)字電路設(shè)計(jì)經(jīng)常用到奇偶校驗(yàn)這種數(shù)據(jù)判斷功能。數(shù)據(jù)傳輸中的奇校驗(yàn)定義如下:使傳輸?shù)男畔⑽慌c校驗(yàn)位中的“1”的個數(shù)之和為奇數(shù)。其編解碼的主要操作就是異或運(yùn)算。偶校驗(yàn)情況與此類似。奇偶校驗(yàn)可以采用異或門電路來實(shí)現(xiàn)。
在圖4-8中我們給出一個很特殊的異或門電路設(shè)計(jì)進(jìn)行奇偶校驗(yàn)。對圖中電路的工作原理加以分析可知,圖中輸出信號F右邊的傳輸門完成A;F的左邊完成。通過在F點(diǎn)的線或作用,它實(shí)現(xiàn)的功能為
F=A⊕B圖4-8特殊的異或門電路設(shè)計(jì)這種動靜結(jié)合的設(shè)計(jì)面積較小,包括信號B的反相器在內(nèi)僅有6個管子。這是一種包含有靜態(tài)傳輸門在內(nèi)的電路設(shè)計(jì),其中右邊的靜態(tài)傳輸門由P型、N型兩個通路晶體管組成。多個傳輸門串聯(lián)可以實(shí)現(xiàn)控制與邏輯;多個傳輸門并聯(lián)可以實(shí)現(xiàn)控制或邏輯,但是傳輸門不能實(shí)現(xiàn)非邏輯。由于寄生電容的影響,由傳輸門組成網(wǎng)絡(luò)的輸出還容易出錯。
就目前所知,異或門電路的設(shè)計(jì)還有幾種形式。例如,有一種12管電路的異或門XOR,就選用了異或門的等價形式——同或門加非門構(gòu)成。至于具體的CMOS晶體管電路網(wǎng)絡(luò)結(jié)構(gòu),讀者根據(jù)對偶原理,不難自行畫出,此處從略。4.1.3單級門及網(wǎng)絡(luò)延遲
設(shè)單級CMOS門的扇入(輸入端并接的門數(shù))為Fi,扇出(輸出端并接的門數(shù))為Fo,則根據(jù)參考文獻(xiàn)——Rabaey等原著,單級門延遲tp為
tp=a1Fi+a2Fi2+a3Fo
其中,a1、a2、a3為與工藝有關(guān)的加權(quán)系數(shù)。對與非門的延遲仿真可以證實(shí)上述方程中門延遲與扇入扇出關(guān)系的正確性。
建立在基本門基礎(chǔ)上的組合邏輯網(wǎng)絡(luò),重要的優(yōu)化指標(biāo)仍然是速度和面積。以下簡要討論網(wǎng)絡(luò)延遲等問題。
1.負(fù)載定義
標(biāo)準(zhǔn)負(fù)載電容——由一個反相器或二輸入與非門在其輸入端所呈現(xiàn)的電容。
壓擺率(InputSlewRate)——由于輸入端電容電壓不能突變造成的輸入波形斜坡。
壓擺率=
例如,如果一個20pF的輸入負(fù)載電容使得輸入波形在5ns內(nèi)變化5V,即壓擺率為1V/ns。
2.提高網(wǎng)絡(luò)速度
由邏輯門組成復(fù)雜網(wǎng)絡(luò)的延遲問題比單級門要復(fù)雜得多。提高網(wǎng)絡(luò)速度的措施有:
(1)改進(jìn)單級門的電路及版圖設(shè)計(jì),包括增大尺寸、降低寄生參數(shù),特別是負(fù)載電容。
(2)根據(jù)門級網(wǎng)表重新設(shè)計(jì)走線,以降低長路徑影響,即WireDelay。這里的線延遲采用較多的是Elmore的RC樹模型(見參考文獻(xiàn)——Rabaey等原著)。
(3)避免由小尺寸的門驅(qū)動幾個大負(fù)載門。因?yàn)槠湄?fù)載重,速度慢,造成所謂的FanoutDelay。這時可以重新設(shè)計(jì)電路,減少扇出。
(4)增加緩沖(Buffer)。這是提高扇出能力的有效途徑。
4.2時序與時序電路
這里,先回顧數(shù)字電路設(shè)計(jì)中的一些基本概念。
4.2.1組合電路與時序電路
通常將數(shù)字電路分為兩類:組合(Combinational)邏輯電路和時序(Sequential)邏輯電路。
我們將能存儲電路狀態(tài)的電路單元稱之為記憶單元,例如鎖存器、觸發(fā)器、寄存器、移位寄存器、RAM等。不包括記憶單元的電路屬于組合電路。由于門間反饋是形成記憶的一種途徑,如果輸出到輸入沒有反饋,完全由與、或、非、異或等不同的門組合實(shí)現(xiàn)各種功能,這種電路就是組合電路。常用的組合邏輯功能塊有:加法器,減法器,乘法器,除法器,編碼器,譯碼器,桶形移位器等。組合邏輯電路的輸入輸出信號模型為:Y=F(X),如圖4-9所示。圖4-9組合邏輯模型組合邏輯只與當(dāng)前輸入值有關(guān)。組合邏輯的輸入輸出關(guān)系可以用真值表、邏輯方程式、卡諾(Karnaugh)圖和電路圖等形式表示。
與之相對應(yīng),包括記憶單元的電路是時序電路。時序邏輯與當(dāng)前輸入和過去的輸入都有關(guān)。過去的輸入都反映在當(dāng)前的狀態(tài)之中,當(dāng)前的狀態(tài)包含了演繹未來的所有與過去相關(guān)的信息。但是時序電路不等于是有時鐘的電路。4.2.2電路中的時序
由于國內(nèi)譯名的不統(tǒng)一,術(shù)語的準(zhǔn)確性和標(biāo)準(zhǔn)性已經(jīng)造成不少問題。設(shè)計(jì)中一個很重要的概念——timing,它的本意是描述電路系統(tǒng)中各事件之間在時間軸上的定時順序和相互配合關(guān)系,也被稱之為“時序”,正好與前述已經(jīng)通用的時序電路用語相沖突和混淆。不過我們還將繼續(xù)保留這兩個習(xí)慣說法,但要特別提醒注意這兩個概念完全不同。不管是ASIC或是FPGA設(shè)計(jì),不管是組合邏輯電路或是時序邏輯電路,時序難題經(jīng)常纏身。有的是功能設(shè)計(jì)必需的,有的是屬于功能之外派生的,但它始終是系統(tǒng)設(shè)計(jì)師要應(yīng)對的主要問題。而解決時序問題又常常與電路設(shè)計(jì)、版圖設(shè)計(jì)密不可分。目前,描述所有時序的最常用手段是畫出時序波形圖,如果是同步時序電路,時鐘波形成為參照的標(biāo)準(zhǔn)。一般EDA軟件中常見的所謂“時序分析(TimingAnalysis)”模塊完成的就是這種分析。
時序(Timing)設(shè)計(jì)和分析所追求的目標(biāo)是:在正確的時刻(When)將正確的加工數(shù)據(jù)(What)加載到正確的單元電路(Where)中去。組合邏輯的時序波形給出了各點(diǎn)信號相互間的依存關(guān)系。
對于時序電路,單元電路指的就是記憶單元(存儲單元)。不管其有無時鐘,它最重要的一個特征就是所有的開關(guān)事件都將按嚴(yán)格的順序依次發(fā)生,否則就可能會將錯誤的數(shù)據(jù)寫到錯誤的記憶單元中去。
時序分析主要應(yīng)關(guān)注靜態(tài)和動態(tài)的競爭冒險和關(guān)鍵延遲路徑。在時序電路的時序分析中尤其更應(yīng)該關(guān)注數(shù)據(jù)的建立和保持時間。
通常說的靜態(tài)時序分析,實(shí)質(zhì)上就是穩(wěn)態(tài)分析。動態(tài)(瞬態(tài))分析關(guān)心的則是跳變過程。靜態(tài)時序分析是根據(jù)穩(wěn)態(tài)的輸入計(jì)算出穩(wěn)態(tài)的輸出。顯然在許多時間段中電平將沒有變化。如果在這些電平理應(yīng)為常值處出現(xiàn)短脈沖,這些短脈沖就被稱之為“毛刺(Glitch,假信號,電路故障)”。
毛刺是伴隨電路正常工作的副產(chǎn)品。它是由于時延配合不當(dāng)引起電路的競爭冒險或延遲錯位(Skew),進(jìn)而形成的一種非正常的短暫脈沖。有些毛刺影響正??煽康墓ぷ?,必須調(diào)整延遲以消除毛刺。還有很多毛刺,存在的時間可能很短,不一定影響正常的工作,但至少影響功耗。以加法器a+b+c+d的設(shè)計(jì)為例,消除毛刺的措施主要是:
(1)將電路的邏輯結(jié)構(gòu)或版圖的布局布線物理結(jié)構(gòu)合理設(shè)計(jì),減少由延遲不當(dāng)造成毛刺的機(jī)會。例如設(shè)計(jì)成并行結(jié)構(gòu)的(a+b)+(c+d)。
(2)將容易出現(xiàn)毛刺的支路盡量與其他支路減少耦合。例如a+b+c+d中,如果a經(jīng)常出現(xiàn)毛刺,則可以將其電路設(shè)計(jì)成a+(b+c+d)。
(3)盡量減少毛刺多發(fā)節(jié)點(diǎn)a處的線電容和負(fù)載電容,以減小延遲。
(4)刪除不必要的寄存器或其他負(fù)載,以化簡不必要的信號電平變化。
(5)在某一個邏輯塊的輸入處增加門控邏輯電路,用來切斷無用信號的傳播。目前大多數(shù)時序電路中都設(shè)計(jì)有時鐘信號,用這個全局分布式的時鐘信號分別確定各記憶單元鎖存數(shù)據(jù)的時刻。這些時刻將保證整個電路的狀態(tài)獲得同步的更新。這樣,對全局時鐘一致性的要求就相應(yīng)地非常苛刻,否則很容易造成芯片工作的不正常。4.2.3電路時序分析
描述時序關(guān)系可以用時序表,但主要手段是采用時序圖,如圖4-10和圖4-11所示。圖4-10輸入輸出因果信號延遲圖4-11最小最大延遲容差
1.因果表示
圖4-10描述的信號Sin和So1、So2是一種輸入輸出間的因果關(guān)系。輸入信號Sin就是前因,輸出信號So1、So2就是后果。在輸入和輸出信號之間存在有延遲。
這里要說明的是:
(1)延遲計(jì)算均以各邊沿的中值處為參考點(diǎn)。但是,由同一輸入信號到不同的輸出上升邊和輸出下降邊的延遲是不同的。
(2)從某一給定輸入信號到指定輸出信號的總延遲是各個分階段延遲的總和疊加。
(3)可能有些寄生的因果情況容易被忽視。
2.延遲容差
圖4-11描述的So1和So2,其前沿出現(xiàn)時刻有一個范圍,稱為容差現(xiàn)象,是客觀存在的信號延遲離散性。
這里要注意的是:
(1)為了保證電路在高頻率下可靠工作,需要分析不確定情況中的最壞可能延遲。
(2)需要對關(guān)鍵路徑進(jìn)行專門分析,按嚴(yán)重性分別列出不同的路徑形成的不同延遲,研究由此可能引起的各種競爭冒險情況。
(3)與設(shè)計(jì)過程相配合,需要重點(diǎn)研究的是邊沿觸發(fā)時的輸入信號在邊沿前的建立和邊沿后的保持時間是否滿足電路延遲最壞容差的需要。4.2.4同步與異步電路
1.分類
時序電路分為兩類:同步(Synchronous)電路和異步(Asynchronous)電路。
一般而言,具有統(tǒng)一時鐘的電路稱為同步電路,其時序關(guān)系受時鐘驅(qū)動的控制。沒有統(tǒng)一時鐘的電路稱為異步電路,異步電路間的時序是靠數(shù)據(jù)事件驅(qū)動和控制的。在同步電路中,時鐘或數(shù)據(jù)信號延遲的不確定性稱之為錯位,可分為時鐘錯位和信號錯位兩種。分析錯位現(xiàn)象的源頭,有助于找到解決錯位問題的辦法。信號錯位主要是因?yàn)椴煌窂竭^來的數(shù)據(jù)信號經(jīng)歷的延遲時間不一致性所造成。時鐘錯位主要是由于到達(dá)不同記憶單元時鐘信號的不一致以及時鐘和信號的不一致所造成。時鐘錯位和信號錯位是相對的,但調(diào)整起來的難度不盡相同,如果可以分別調(diào)整通常會容易一些。
異步,就是不同步。由于異步電路中省卻了時鐘,因此其速度比同類同步電路可能要快,但設(shè)計(jì)難度比較大。
法國Arteris公司在SOC設(shè)計(jì)中采用多個異步時鐘成功實(shí)現(xiàn)了片上網(wǎng)絡(luò)(NOC)系統(tǒng)。NOC方案為片上通信提供了一種全新的聯(lián)網(wǎng)手段,其性能大約為傳統(tǒng)總線的3倍。
2.同步電路模型
同步時序電路都含有記憶單元和時鐘,又進(jìn)一步分為兩種模型:密勒(Mealy)電路和摩爾(Moore)電路,如圖4-12所示。圖4-12兩類同步時序電路模型記當(dāng)前輸入變量為I,當(dāng)前狀態(tài)變量為S。對I及S進(jìn)行運(yùn)算產(chǎn)生新S的電路為輸入邏輯f。對I及S進(jìn)行運(yùn)算產(chǎn)生輸出變量O的電路為輸出邏輯g。同步電路的時鐘記為φ
。
我們將輸出O與當(dāng)前輸入I和狀態(tài)S都有關(guān)的電路稱為密勒電路,簡記為
O=g(I,S)
而將輸出O與當(dāng)前直接輸入I無關(guān),只依賴狀態(tài)變量S的電路稱為摩爾電路,簡記為
O=g(S)
兩類結(jié)構(gòu)都屬于具有統(tǒng)一時鐘φ的電路,它們之間只有一種連接關(guān)系上的差別,詳見圖4-12。圖4-12(b)中的虛線表示實(shí)際中沒有這個連接關(guān)系。描述上述兩種同步電路的手段有狀態(tài)圖、狀態(tài)表、現(xiàn)態(tài)次態(tài)轉(zhuǎn)換表、卡諾圖、算法狀態(tài)機(jī)(ASM,AlgorithmStateMachine)等。ASM借用程序流圖方式來表達(dá)時序電路各種操作間的關(guān)系。
4.3時序電路設(shè)計(jì)
時序邏輯電路的特點(diǎn)是,其輸出值不僅與當(dāng)前輸入值有關(guān),而且與當(dāng)前的狀態(tài),或者說以前的輸入歷史有關(guān)。因此時序邏輯必然包含記憶單元(或者稱記憶元件)。除了記憶單元之外,時序邏輯網(wǎng)絡(luò)中還包括有組合邏輯電路單元、I/O電路等;同步時序電路中還必須有時鐘。整個時序系統(tǒng)還會需要一些整形電路,例如施密特觸發(fā)器或者單穩(wěn)態(tài)觸發(fā)器等。下面,我們擇要加以介紹。4.3.1記憶單元
鎖存器(Latch)和觸發(fā)器(Flip-flop)是一種存儲時序狀態(tài)的常用邏輯記憶單元。記憶單元由內(nèi)部存儲和時序訪問控制兩部分組成。CMOS電路中的記憶功能通常由電容記憶保持,或者加上能量正反饋記憶保持來實(shí)現(xiàn)更可靠的記憶。
1.分類之一
記憶單元按時鐘的電平敏感和邊沿敏感分為鎖存器和觸發(fā)器兩種,寄存器則可以是分別由這兩種元件組成的兩種陣列,下面分別介紹。
(1)鎖存器(Latch)——受電平敏感的記憶單元稱之為鎖存器。例如TTL器件7475,靠輸入時鐘的高電平或低電平實(shí)現(xiàn)選通。
(2)觸發(fā)器(Flip-flop)——受邊沿敏感的記憶單元稱之為觸發(fā)器。例如TTL器件7474,靠輸入時鐘的上升或下降邊沿實(shí)現(xiàn)觸發(fā)。在許多資料中,將內(nèi)部存儲值由輸入數(shù)據(jù)透明地傳輸并設(shè)置稱之為鎖存器。觸發(fā)器,尤其是主從鎖存器,是指其輸入值的讀取和輸出值的改變是兩個不透明的獨(dú)立事件。這種輸入輸出之間的不透明,也導(dǎo)致了時鐘觸發(fā)邊沿作用的凸現(xiàn)。注意鎖存器、觸發(fā)器定義的不同反映了觀察視角的不同,但它們之間還是有聯(lián)系的?,F(xiàn)在改回比較流行的上述定義。
(3)寄存器(Register)——一般指多個觸發(fā)器組成的陣列,用來存儲多位數(shù)據(jù);也可能采用的是鎖存器陣列,例如數(shù)據(jù)總線。注意,個別場合也指單個的觸發(fā)器或鎖存器。
2.分類之二
記憶單元還可以按輸入端的類型來分類。
(1)?SR型——置位復(fù)位型可以細(xì)分為SR和兩種。以圖4-16所示的型為例。這時,以輸出Q端的狀態(tài)為準(zhǔn),記憶單元狀態(tài)要么被輸入端的0置位;要么被輸入端的0復(fù)位;如果、同時為1則狀態(tài)維持;但、不得同時為0。對于同樣狹義的SR型,情況與此相反。
(2)?JK型——與SR型類似,但J輸入端、K輸入端可以同時為1(狀態(tài)翻轉(zhuǎn))或0(狀態(tài)維持)。用JK型可以構(gòu)成其他類型的記憶單元。
(3)?D型——D輸入端提供數(shù)據(jù)(Data)。有的資料稱D是代表延遲。當(dāng)時鐘事件出現(xiàn)時,其輸出Q端值由輸入的D值透明地加以確定。
(4)?T型——可以將D型的接到D,將T作為時鐘?f
端的輸入而構(gòu)成。這時Q輸出的將是T時鐘信號的二分頻。對這種T型還可以加上分頻使能控制端。對于記憶單元而言,最重要的仍然是在正確的位置、正確的時刻存儲正確的數(shù)據(jù)。為了使記憶單元能可靠工作,兩個用以表征數(shù)據(jù)與時鐘制約關(guān)系的額定參數(shù)——數(shù)據(jù)建立時間和保持時間必須得到滿足。對于時鐘上升邊觸發(fā)的記憶單元電路而言,時鐘上升邊沿(也有文獻(xiàn)是取上升邊中點(diǎn))前的一段數(shù)據(jù)最小穩(wěn)定期稱之為建立(sp),之后的一段為保持(hp),如圖4-13所示。邏輯門級聯(lián)后的累計(jì)延遲因素往往破壞了記憶單元sp和hp的額定要求,從而限制了整個系統(tǒng)工作的最高速度。在波形分析時往往要對此備加關(guān)注。圖4-13數(shù)據(jù)穩(wěn)定期的建立(sp)和保持(hp)在有些觸發(fā)器的設(shè)計(jì)中,記憶單元的邊沿觸發(fā)存儲功能是靠巧妙控制電路中時間基準(zhǔn)的延遲量而實(shí)現(xiàn)的。要做到讓記憶單元只存儲時鐘?f
上升(下降)邊前夕數(shù)據(jù)線電路輸入端D的信息值。必要的延遲量是用延遲元件實(shí)現(xiàn)的,而延遲元件可以是RC網(wǎng)絡(luò)或者是邏輯門,這些值顯然是與工藝有關(guān)的。
在電路設(shè)計(jì)時,如果想分析這段波形,一般的數(shù)字仿真軟件不太合適,需要用SPICE或者專用時序分析軟件。
3.D鎖存器
下面介紹三種常見的D鎖存器。
1)動態(tài)鎖存器
進(jìn)行芯片設(shè)計(jì)時,要盡可能采用動態(tài)鎖存器。它由傳輸門和反相器構(gòu)成,其數(shù)據(jù)存儲在反相器的柵極電容Cg上,采用電容存儲的效果可以滿足實(shí)用的要求,如圖4-14所示。圖4-14動態(tài)D鎖存器這里用傳輸門作為主要的開關(guān)邏輯元件,傳輸門由全互補(bǔ)P和N通路晶體管組成。傳輸門的缺點(diǎn)是容易受到噪聲的干擾,嚴(yán)重時能夠形成非正常的導(dǎo)通。
上述動態(tài)鎖存器中全互補(bǔ)傳輸門(P管—N管對)的時鐘f和f!互為反相,互補(bǔ)的結(jié)果是傳輸1(主要靠P管,它單獨(dú)傳的是強(qiáng)1弱0)和0(靠的是N管,它單獨(dú)傳的是強(qiáng)0弱1)的效果相同。
此外,動態(tài)記憶單元最大的問題還是需要定時刷新以彌補(bǔ)電荷的泄漏。所有動態(tài)邏輯都需要增加時鐘信號控制。工作中分為預(yù)充電(Precharge)和評估(Evaluation)兩個階段。實(shí)際上預(yù)充電是一種輔助階段,不能算作真正的工作期。
2)鐘控動態(tài)鎖存器
另一種鎖存器是由鐘控反相器組成的鎖存器,如圖4-15,它也是利用電容作動態(tài)存儲。鐘控反相器就是在一般反相器的P管—N管對之間又加入一對P管—N管,令其柵極分別加入時鐘
f和f!實(shí)現(xiàn)鐘控。
上述結(jié)構(gòu)的高明之處就在于它實(shí)現(xiàn)了傳輸控制和邏輯功能的巧妙結(jié)合,從而構(gòu)成了比較好的反相D鎖存器。圖4-15鐘控反相器組成鎖存器
3)靜態(tài)D鎖存器
比較穩(wěn)定的靜態(tài)D鎖存器利用鎖存器組成JK鎖存器,再將JK鎖存器的J端反相后連到K端。將這時的J端作為唯一的輸入端,就是聞名的靜態(tài)D鎖存器。如圖4-16所示,左圖是一個鎖存器,右圖是一個靜態(tài)D鎖存器。當(dāng)?f
=0時維持不變;當(dāng)?f
=1選通時輸出端經(jīng)一定延遲而追隨輸入變化。圖4-16鎖存器和靜態(tài)D鎖存器
4.D觸發(fā)器之一——主從式D鎖存器
圖4-17所示的觸發(fā)器電路是ASIC設(shè)計(jì)制造中使用頗多的電路形式,即主從式D鎖存器。如果時鐘
f
的高電平為輸入透明寫入,則當(dāng)時鐘低電平時為輸出讀出??梢钥吹剑嬲i進(jìn)去更新數(shù)據(jù)的時刻是時鐘的下降邊。此外,在緊接著的低和高電平期間輸出端讀出前面鎖入的數(shù)據(jù)。它采用兩個準(zhǔn)靜態(tài)D鎖存器,分別完成主鎖存寫入輸入數(shù)據(jù)和從鎖存器輸出穩(wěn)定數(shù)據(jù),實(shí)現(xiàn)了有效的隔離。圖4-17主從式D鎖存器為了同時穩(wěn)定輸出同相和反相端,一般還要再引出兩個反相器。本電路就是一種負(fù)邊沿觸發(fā)器,具有16只晶體管。
還有一種由靜態(tài)CMOS組成的主從式D鎖存器(即D觸發(fā)器),如圖4-18所示,具有48只晶體管。它是將兩個圖4-16中右邊的D鎖存器D1、D2直接級聯(lián);而將時鐘?f
反相作為D1的時鐘,再反相作為D2的時鐘。其真值表如表4-1所示。圖4-18靜態(tài)CMOS觸發(fā)器
5.D觸發(fā)器之二——正邊沿D觸發(fā)器
7474系列正邊沿D觸發(fā)器的門級電路見圖4-19,具有26只晶體管。
當(dāng)f為低時,、為1,Q、保持不變。
當(dāng)f
為上升邊時,形成邊沿觸發(fā)如下:
(1)若D此時為0,則=1、=0,為復(fù)位狀態(tài),從而Q=0、
=1。
(2)若D此時為1,則=0、=1,為置位狀態(tài),從而Q=1、
=0。圖4-197474系列D觸發(fā)器電路圖4.3.2基本整形電路
1.施密特觸發(fā)器
時序電路里少不了施密特觸發(fā)器(Schmitt-trigger),其符號表示為,它主要用于整形電路,例如正弦波變成方波等。具體電路圖如圖4-20所示,采用CMOS工藝很容易實(shí)現(xiàn)。它通過如圖中所示的這種特殊連接形成反饋,以便在C處呈現(xiàn)不同信號電平時讓不同管子導(dǎo)通,形成反相器B處的N管TN與P管TP的有效晶體管比率動態(tài)變化,使得管子TN、TP開關(guān)閾值比正常值變大或變小,從而對不同的輸入電壓加以整形輸出。圖4-20施密特觸發(fā)器
2.單穩(wěn)態(tài)電路
單穩(wěn)態(tài)(Monostability)電路,又稱單穩(wěn)態(tài)觸發(fā)器,電路如圖4-21所示。一種是圖4-21(a)所示的單擊(OneShot)電路,它根據(jù)輸入端一次性電平階躍跳變來產(chǎn)生需要脈沖寬度的新脈沖,也可以認(rèn)為它是一種整形電路。這里通過改變元件的延遲τ,包括采用多級門或者RC網(wǎng)絡(luò)來實(shí)現(xiàn)脈沖寬度的調(diào)整。另一種是如圖4-21(b)所示的脈沖觸發(fā)單穩(wěn)態(tài)電路,它把一個窄脈沖的輸入變成由RC延遲決定寬度的脈沖輸出。圖4-21單穩(wěn)態(tài)電路施密特觸發(fā)器和單穩(wěn)態(tài)觸發(fā)器還可以有多種其他形式。它們都不是通常意義上的數(shù)字電路,但這些基本電路各有特點(diǎn),又經(jīng)常在時序邏輯電路設(shè)計(jì)中要用到。一般,EDA軟件的標(biāo)準(zhǔn)單元庫中應(yīng)有這一類單元,供系統(tǒng)設(shè)計(jì)師設(shè)計(jì)時選用。它們是在底層晶體管和版圖級別上精心完成的設(shè)計(jì)。如果庫中沒有,或者不適合選用,設(shè)計(jì)師完全可以根據(jù)需要自行設(shè)計(jì)版圖,驗(yàn)證后供使用。4.3.3時序網(wǎng)絡(luò)結(jié)構(gòu)和時鐘規(guī)則
1.時序系統(tǒng)結(jié)構(gòu)
同步時序電路系統(tǒng)的一般網(wǎng)絡(luò)結(jié)構(gòu)如圖4-22所示。它與圖4-12是相同的,這里給出了密勒和摩爾二種電路的統(tǒng)一概括表示。
時序系統(tǒng)通常由組合邏輯電路網(wǎng)絡(luò)和記憶單元組成。設(shè)計(jì)時序系統(tǒng)的原則是:記憶單元決不存儲不適當(dāng)?shù)臄?shù)據(jù);同時所設(shè)計(jì)的系統(tǒng)應(yīng)是可測的。圖4-22同步時序電路系統(tǒng)的一般網(wǎng)絡(luò)結(jié)構(gòu)
2.錯位問題
錯位(Skew,又稱擺動、偏斜、時滯等)是時序分析中的關(guān)鍵問題。一般將錯位分為兩類,——信號錯位和時鐘錯位。信號錯位是指多個數(shù)字信號的路徑延遲不一致等因素(包括串?dāng)_、反射、地彈等)造成數(shù)字波形上升與下降邊沿時刻的不確定性。時鐘錯位是指經(jīng)過不同的路徑延遲等因素(包括反射、抖動等)造成時鐘到來時刻的不確定性。除了一般的錯位之外,許多周期性波形,包括信號和時鐘在內(nèi)還會發(fā)生抖動(Jitter)。抖動是指信號或時鐘波形的相位和頻率在某一個值附近交替變化這種不穩(wěn)定性。
1)信號錯位
如果某一個門g的輸出連到記憶單元m的輸入端D,而g又是由許多輸入信號合成的組合邏輯。這些數(shù)據(jù)信號所經(jīng)過的路徑不同,帶來的延遲也不同。以致于對于同一時刻g的諸多輸入中,有的穩(wěn)定,有的仍在變化,從而造成記憶單元輸入端D的信號出現(xiàn)時刻的不確定性,這就是信號錯位。這樣,將會造成在時鐘工作期內(nèi),由于g輸出到記憶單元m的輸入端D的信號時刻不確定,導(dǎo)致可能存儲成不適當(dāng)?shù)臄?shù)據(jù)。
2)時鐘錯位
同樣,如果由于通往不同記憶單元上的時鐘經(jīng)過不同的路徑延遲,也會造成時鐘到來時刻的不確定性和與信號的不一致性,這就是時鐘錯位。其錯位的物理原因是導(dǎo)線長度分支不適當(dāng)、負(fù)載的過重或不均衡性以及串?dāng)_等。這時,它與外來數(shù)據(jù)信號在時鐘起作用的時間區(qū)間段內(nèi)相互時序配合不當(dāng),也會造起不適當(dāng)?shù)臄?shù)據(jù)存儲。如果錯位導(dǎo)致數(shù)據(jù)建立/保持時間條件的破壞,將會造成錯誤或不穩(wěn)定的輸出。
關(guān)于時鐘錯位的對策,在第8章中還將繼續(xù)討論。
3.對邏輯網(wǎng)絡(luò)的要求
在構(gòu)成時序系統(tǒng)的時候,對網(wǎng)絡(luò)結(jié)構(gòu)和輸入信號的要求,可以歸納為以下兩條準(zhǔn)則。
1)組合邏輯網(wǎng)絡(luò)不能無意間形成閉環(huán)
靜態(tài)邏輯的兩級或多級反相門級聯(lián),就會構(gòu)成記憶單元。如果組合邏輯形成閉環(huán),將可能變成是記憶單元,而不再是組合邏輯。因?yàn)檎f到底,記憶單元也是可以由組合邏輯構(gòu)成的。這一準(zhǔn)則的本質(zhì)是要求作為組合邏輯的設(shè)計(jì),其輸出不能與過去的輸入值有關(guān),而只能取決于當(dāng)前輸入值。
2)對所有電路單元和互連線必須限定其延遲值
為滿足這一準(zhǔn)則,那些常規(guī)的標(biāo)準(zhǔn)單元一般問題不大。需要特別關(guān)注的是,由標(biāo)準(zhǔn)單元進(jìn)一步組合出來的那些非常規(guī)電路單元,它們的延遲往往比較大。此外,對數(shù)據(jù)線的延遲也必須有一個限定值。
4.對記憶單元時鐘的要求
對記憶單元時鐘的要求,可以歸納為需要服從以下基本準(zhǔn)則。
以時鐘上升邊為數(shù)據(jù)存儲時刻的觸發(fā)器類記憶單元為例,要求主輸入數(shù)據(jù)在時鐘上升邊沿前后必須穩(wěn)定一段時間,變化在其他時間發(fā)生,以保證記憶單元存入的是適當(dāng)數(shù)據(jù)。在由單時鐘控制觸發(fā)器、存儲器的情況下,數(shù)據(jù)與時鐘的快慢不當(dāng)均會造成存儲不當(dāng)。
從圖4-22中可以看出,發(fā)生存儲不當(dāng)這類錯誤的一個潛在原因在于,組合邏輯與觸發(fā)器客觀上非常可能在無意中就會存在一個無形的反饋環(huán)。這時要求:
(1)觸發(fā)器的時鐘開啟時間要比最短的組合延遲還要小,以免形成正反饋振蕩。
(2)
觸發(fā)器的工作周期要比最長的組合延遲還要大,以保證下次時鐘事件前狀態(tài)數(shù)據(jù)已經(jīng)穩(wěn)定。
5.雙相時鐘系統(tǒng)
上述要求說起來容易,做起來難。一個比較通行的解決方案就是將原來的電路拆開,采用雙相時鐘分別控制兩排觸發(fā)器,如圖4-23所示。
圖4-23雙相時鐘系統(tǒng)規(guī)則由圖4-23引出如下的雙相時鐘(二時鐘相差180°)系統(tǒng)規(guī)則:所有經(jīng)由組合邏輯的閉環(huán)必須用雙相時鐘——粗體的f1(稱為紅色)、細(xì)體的?f2(稱為綠色)控制的兩組觸發(fā)器拆開。
這時雙相時鐘要和數(shù)據(jù)時序配合設(shè)計(jì),信號在一個時鐘的工作期變化從而為另一個時鐘工作期準(zhǔn)備輸入數(shù)據(jù)。因此數(shù)據(jù)和時鐘分為兩個陣營,在時序分析時根據(jù)時序不同,例如信號在f2工作期穩(wěn)定的信號記為Sf2
,采用兩種顏色標(biāo)注區(qū)別兩個陣營的時鐘和信號,暫時記為紅色和綠色兩個軍陣。這樣又引出如下幾條設(shè)計(jì)規(guī)則:
(1)同一觸發(fā)器的輸入和輸出顏色應(yīng)不同。
(2)觸發(fā)器的輸入信號和時鐘顏色應(yīng)相同。
(3)到同一邏輯單元的信號顏色應(yīng)相同。4.3.4狀態(tài)機(jī)分析與設(shè)計(jì)
1.狀態(tài)機(jī)
時序系統(tǒng)又統(tǒng)稱為狀態(tài)機(jī)(StateMachine),它在記憶單元上存有狀態(tài)值。整個系統(tǒng)或狀態(tài)機(jī)的當(dāng)前輸入又稱之為主輸入,總的當(dāng)前輸出稱之為主輸出。從狀態(tài)機(jī)的視野出發(fā),有助于對時序系統(tǒng)的理解與分析。多個時序子系統(tǒng)可以組成更大的時序系統(tǒng)。顯然,將大系統(tǒng)盡可能分解有助于分析和設(shè)計(jì)。如圖4-12所示,受時鐘控制的同步狀態(tài)機(jī)結(jié)構(gòu)區(qū)分為兩種。
(1)輸出也直接受輸入影響的密勒機(jī),用式子表示就是:
下一狀態(tài)Sn=f(輸入I,當(dāng)前狀態(tài)S)
輸出O=g(輸入I,當(dāng)前狀態(tài)S)
這時的主輸出同時是主輸入信號和狀態(tài)的函數(shù),這就是密勒系統(tǒng)。
(2)輸出與輸入沒有直接組合邏輯關(guān)系的摩爾機(jī),用式子表示就是:
下一狀態(tài)Sn=f(輸入I,當(dāng)前狀態(tài)S)
輸出O=g(當(dāng)前狀態(tài)S)
這時的主輸出只與狀態(tài)有關(guān),又稱之為摩爾系統(tǒng)。例如,一般的各種順序計(jì)數(shù)器就是摩爾系統(tǒng)。在這兩種系統(tǒng)中,由記憶單元存儲數(shù)據(jù),由統(tǒng)一的時鐘決定數(shù)據(jù)的同步存儲時刻,例如時鐘的上升邊沿時刻。新數(shù)據(jù)的存儲時刻就是數(shù)據(jù)改變的時刻,或者說是狀態(tài)改變的時刻。若記憶單元數(shù)為n,則系統(tǒng)狀態(tài)數(shù)等于2n。
2.設(shè)計(jì)舉例
移位寄存器和計(jì)數(shù)器是數(shù)字電路設(shè)計(jì)中兩類最基本的功能模塊。下面,以摩爾型計(jì)數(shù)器為例說明狀態(tài)機(jī)的設(shè)計(jì)思路。對比圖4-12(b)可知,這里的情況更為簡化,沒有輸入端I和輸出邏輯g,是一種最簡單的摩爾型電路。
計(jì)數(shù)器作為典型的時序電路,在DSP系統(tǒng)的數(shù)據(jù)通路程序計(jì)數(shù),尤其是時序控制器設(shè)計(jì)中占有重要地位。這里以六進(jìn)制計(jì)數(shù)器為例簡要說明。它的計(jì)數(shù)規(guī)律為
1→2→3→4→5→6→1→…
該計(jì)數(shù)器電路的一般結(jié)構(gòu)如圖4-24所示。這一結(jié)構(gòu)比較簡單,輸出量直接作為狀態(tài)量被反饋到輸入端;f為統(tǒng)一的時鐘。圖4-24計(jì)數(shù)器電路的結(jié)構(gòu)六進(jìn)制計(jì)數(shù)器狀態(tài)圖如圖4-25所示。經(jīng)過分析后可知,需要設(shè)計(jì)的內(nèi)容主要就是組合邏輯電路。
這里根據(jù)輸出數(shù)據(jù)的位數(shù)寬度,安排了三個D觸發(fā)器存儲數(shù)據(jù)。在時鐘的控制下,數(shù)據(jù)傳入D觸發(fā)器后,在窄的時鐘邊沿過后輸出處于保持狀態(tài),其輸入D和輸出Q之間斷開。三個Q端保留了系統(tǒng)的狀態(tài)值。表4-2表示三個組合邏輯電路C2~C0的輸入是Q2、Q1、Q0,而C2~C0的期望輸出是,中間箭頭所指下一行的D2、D1、D0。設(shè)計(jì)計(jì)數(shù)器的主要工作就是設(shè)計(jì)組合邏輯C2~C0的輸入Q與輸出D的關(guān)系式。圖4-25六進(jìn)制計(jì)數(shù)器狀態(tài)圖以D2為例,根據(jù)表4-3所示的卡諾圖可得其組合邏輯表達(dá)式為
D2=Q1Q0+Q2Q1!
D0、D1的邏輯表達(dá)式與D2類同,讀者不難給出。這些關(guān)于D0、D1、D2的表達(dá)式稱之為激勵方程(ExcitationEquations)。由于D觸發(fā)器的特點(diǎn),在下一個時鐘上升邊到來的時刻,這些D值就成為Q端的新值,即Q0*、Q1*
、Q2*
。這些描述下一個狀態(tài)與當(dāng)前狀態(tài)關(guān)系的表達(dá)式,例如Q2*=Q1Q0+Q2Q1!等,被稱之為轉(zhuǎn)換方程(TransitionEquations)。
一般情況下,應(yīng)該由轉(zhuǎn)移方程再來求激勵方程。需要特別指出,只有采用D觸發(fā)器作為狀態(tài)記憶單元,轉(zhuǎn)移方程與激勵方程才是等價的。這就是為什么絕大多數(shù)ASIC/FPGA的狀態(tài)機(jī)設(shè)計(jì)都采用D觸發(fā)器的原因。
4.4算術(shù)邏輯構(gòu)件設(shè)計(jì)
4.4.1引言
對于專用的DSP運(yùn)算處理系統(tǒng),在完成專用算法和體系結(jié)構(gòu)設(shè)計(jì)的前提和基礎(chǔ)上,需要重點(diǎn)設(shè)計(jì)好以下三類運(yùn)算部件:
(1)基本邏輯運(yùn)算部件:各種與、或、非、異或門、AOI、OAI、整形電路、多路開關(guān)、存儲記憶單元、移位寄存器、移位器、數(shù)值比較器、奇偶校驗(yàn)等。
(2)通用算術(shù)運(yùn)算部件:計(jì)數(shù)器、加(減)法器、定點(diǎn)或浮點(diǎn)乘法累加器(MAC)、除法器、平方、平方根等。其中MAC運(yùn)算是最重要的。
(3)專用的特殊運(yùn)算部件:坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算器(CORDIC)計(jì)算,包括三角函數(shù)、指數(shù)、對數(shù)、小波等。
算術(shù)邏輯構(gòu)件就是廣義的算術(shù)邏輯單元(ALU),主要指的是前兩類運(yùn)算部件。數(shù)據(jù)通路是在算術(shù)邏輯構(gòu)件基礎(chǔ)上發(fā)展起來的一個概念,數(shù)據(jù)通路比算術(shù)邏輯構(gòu)件的界定范圍更明晰、更具體。數(shù)據(jù)通路就是對數(shù)據(jù)集中進(jìn)行各種算術(shù)邏輯計(jì)算處理的構(gòu)件,它是區(qū)別各種處理器的核心構(gòu)件。除了RF/模擬電路之外,數(shù)據(jù)通路、存儲器、控制器、
輸入/輸出接口單元等是建造一個功能齊全的完整ASIC芯片的不同構(gòu)件。
1.?dāng)?shù)據(jù)通路(DataPaths)結(jié)構(gòu)
一個完整的通用微處理器或數(shù)字信號處理器結(jié)構(gòu)如圖4-26所示,它由數(shù)據(jù)通路、存儲器、控制器、I/O及互連等構(gòu)件模塊組成。其中存儲部分、控制部分(典型的有限狀態(tài)機(jī)FSM時序電路)、I/O互連網(wǎng)絡(luò)及總線部分,可以稱之為外圍支撐部分。
除此之外,一個重要的核心部分計(jì)算與處理功能就凸現(xiàn)出來了,即數(shù)據(jù)通路。這部分給出了數(shù)據(jù)的來龍去脈和加工過程,在這里完成數(shù)值計(jì)算和數(shù)據(jù)處理的任務(wù)。數(shù)據(jù)通路的名稱也反映出這一含義。圖4-26數(shù)字信號處理器結(jié)構(gòu)圖數(shù)據(jù)通路在總體上給出一種邏輯結(jié)構(gòu)關(guān)系,它的部件包括由與、或、非、異或門構(gòu)成的各種組合功能單元;以及加法、乘法一類的運(yùn)算單元。數(shù)據(jù)通路利用這些部件完成總的算術(shù)邏輯功能,例如:加法器等算術(shù)宏單元執(zhí)行算術(shù)運(yùn)算;移位器執(zhí)行位操作;計(jì)數(shù)器用來在程序中計(jì)數(shù);其中間結(jié)果數(shù)據(jù)存儲在內(nèi)部寄存器中。
數(shù)據(jù)通路部件之間的數(shù)據(jù)傳遞常常在一個或幾個數(shù)據(jù)總線或公用連接線上進(jìn)行。總線寬度(數(shù)據(jù)線或地址線個數(shù))是數(shù)據(jù)通路的主要設(shè)計(jì)參數(shù)。當(dāng)前各種總線標(biāo)準(zhǔn),例如芯片內(nèi)總線、PCI外總線、片上網(wǎng)絡(luò)(NOC)等的進(jìn)展,值得重視和研究。這是一類與數(shù)據(jù)通路有關(guān)的“設(shè)計(jì)可重用構(gòu)架”,在設(shè)計(jì)數(shù)字芯片和插卡式處理電路結(jié)構(gòu)時要注意選用。
2.系統(tǒng)與RTL級結(jié)構(gòu)
在設(shè)計(jì)數(shù)據(jù)通路時必然牽涉到系統(tǒng)或RTL級的體系架構(gòu),我們將在第8章進(jìn)一步闡述。這里,只是先將相關(guān)的概念作一簡介。
首先是控制算法決定的結(jié)構(gòu)。為了改善和提高數(shù)據(jù)通路的性能,首先要研究并改進(jìn)算法;同時要在盡可能高的系統(tǒng)及RTL結(jié)構(gòu)設(shè)計(jì)上投入精力進(jìn)行深入研究。如果能在寄存器以上的級別進(jìn)行結(jié)構(gòu)改進(jìn),其性能改善作用明顯增大。例如,將一般標(biāo)準(zhǔn)的乘法器改進(jìn)為Booth結(jié)構(gòu)的乘法器,乘法器的延遲就會降低50%以上。
其次還有數(shù)據(jù)安排決定的平行結(jié)構(gòu),我們在后面進(jìn)一步介紹。
3.流水線(Pipeline)結(jié)構(gòu)
流水線是數(shù)據(jù)通路中一種常見的數(shù)據(jù)并行處理結(jié)構(gòu),它將大塊的組合邏輯功能分解為許多組合邏輯片段電路,而每個片段的延遲與系統(tǒng)中其他部件的延遲近似相等。
在組合邏輯的斷開處,需要引入一組記憶單元。通常我們希望所有的輸出總是出現(xiàn)在同一時刻,也就是說,斷開處要將輸入、輸出劃分成不相交的兩個集合。整個流水線系統(tǒng)還是完成與以前相同的組合邏輯功能,但是該功能將要多花費(fèi)幾個時鐘周期來完成運(yùn)算。
采用流水線技術(shù)可以對已有的其他形式數(shù)據(jù)通路設(shè)計(jì)加以改進(jìn)。4.4.2組合桶形移位器
移位器(Shifter)不是移位寄存器。移位寄存器是時序邏輯,每來一個時鐘周期它就移動一個位置。它具有時序邏輯的特征,在需要寄存時候被采用。然而,在大多數(shù)算術(shù)運(yùn)算中并不采用它。通常我們只是希望在一個周期中能移動好幾位,而且移位長度可變。
這里的移位器是組合邏輯,用來傳遞數(shù)據(jù),在算術(shù)運(yùn)算的加法器和乘法器中作用最大。因?yàn)橐莆痪偷刃в诔艘?的某次方,例如浮點(diǎn)計(jì)算中就很需要移位;乘固定系數(shù)也要用到它。圖4-27所示為廣泛應(yīng)用的著名桶形(Barrel)移位器一位和整體結(jié)構(gòu)設(shè)計(jì)舉例,用于執(zhí)行普通移位和循環(huán)移位功能,它可以一次移0~N位。桶形移位器設(shè)計(jì)由美國國家半導(dǎo)體公司發(fā)明,主要用途是浮點(diǎn)運(yùn)算的對位。它的版圖設(shè)計(jì)也很獨(dú)特,可以進(jìn)行循環(huán)移、補(bǔ)充符號、補(bǔ)充0的位移??梢哉J(rèn)為補(bǔ)充位移接收的是2N位數(shù)據(jù)。移位器有N位控制信號,產(chǎn)生N位輸出。在2N位數(shù)據(jù)中,移位后將其中的N位片傳送到輸出端。移位控制決定所移的位數(shù),即決定所傳送的位片。
參見表4-4,下面給出補(bǔ)充符號向下移位器的設(shè)計(jì)舉例。圖4-27桶形(Barrel)移位器結(jié)構(gòu)如果將輸入上部的高位As看做是符號位(本例中s=3),在普通向下移位的情況下,輸入低位被不斷移出,高位As的值將不斷地補(bǔ)充到低位。舉例來說,假設(shè)所傳的輸入數(shù)據(jù)是4位A3~A0,輸出為B3~B0,控制位為sh0~sh3,則表4-4給出了向下移位的不同情況和結(jié)果。
桶形移位器采用通路晶體管組成的控制機(jī)構(gòu),利用控制線的不同互連,實(shí)現(xiàn)了各種不同位數(shù)的移位器設(shè)計(jì)。它的主要好處是任一個輸入到輸出只經(jīng)過一個通路晶體管的常數(shù)延遲(實(shí)際上線長不同也會影響延遲)。因此,總的版圖面積不是取決于晶體管的面積,而是由互連線占主導(dǎo)地位而確定。其他實(shí)用的還有對數(shù)移位器。它是在桶形移位器的基礎(chǔ)上加以改進(jìn),整個移位值分解為2的某冪次方,形成多級級連。例如,設(shè)總的移位寬度為M,則將其分解為lbM個級連而成。4.4.3加法器
相對而言,加法器是人們研究最多的數(shù)字電路。有許多種方案可以進(jìn)行加法運(yùn)算,它們的面積和時延均不相同。也有很多竅門用來提高加法器的速度,包括編碼、公因子復(fù)制和預(yù)充電等。正確的研究思路是在頂層先研究優(yōu)秀的相加算法和結(jié)構(gòu),然后再據(jù)此在底層設(shè)計(jì)具體電路。
以全加器為例,Ai、Bi為本級(i)輸入,Ci為下級向本級的進(jìn)位輸入,Ci+1為本級的進(jìn)位輸出,Si為本級和:
Si=Ai⊕Bi⊕Ci
Ci+1=AiBi+AiCi+BiCi對于一位全加器而言,可以用兩個異或門組成全加和電路;由AOI222再加一個反相器組成全加進(jìn)位電路;或者用半加器構(gòu)成。
由N個一位全加器組成的N位加法器稱之為脈動(Ripple,又稱“起泡”)進(jìn)位加法器?!捌鹋荨币辉~形象地表達(dá)了其進(jìn)位位的計(jì)算過程。
為了計(jì)算本級和,需要獲得本級的進(jìn)位輸入,各級的情況依此類推。由此可知,不管具體電路如何,N位全加器的關(guān)鍵
路徑為從最低位0級輸入C0直到N?-1級的輸入CN-1。因此,脈動進(jìn)位加法器的特點(diǎn)是簡單、面積??;隨著N的加大,其延遲愈加嚴(yán)重。加快加法器速度的首選途徑是加快進(jìn)位鏈。超前進(jìn)位加法器(Carry-look-aheadAdder)就是其中的一種。它將進(jìn)位計(jì)算分作兩步走。第一步是從計(jì)算本級兩個立即可以得到的中間值開始。這一步的實(shí)質(zhì)是只有兩個輸入Ai、Bi和兩個輸出Gi、Pi的半加器方案:如果Gi(產(chǎn)生)=Ai·Bi=1,則肯定本級有進(jìn)位,就產(chǎn)生一個進(jìn)位Ci+1=1;如果Pi(傳播)=Ai⊕Bi=1,則本級的進(jìn)位輸入直接在本級輸出繼續(xù)向高位傳播,形成轉(zhuǎn)變?yōu)楦咭患壍倪M(jìn)位輸入Ci+1,即Ci+1=Ci。注意,對于Ai、Bi的00、01、10、11四種輸入,只剩下00這種情況。它是不可能引起進(jìn)位的,不需要考慮。并且Gi與Pi不可能同時為1。下面,對于全加器的這一進(jìn)位算法做一簡介。若
Gi=AiBi
Pi=Ai⊕Bi
則本級和的輸出為
Si(Gi,Pi)=Pi⊕Ci
向高位的進(jìn)位輸出為
Ci+1(Gi,Pi)=Gi+PiCi,如圖4-28所示。這就是快速進(jìn)位的單級雛形。只要一級一級這樣串聯(lián)起來就是多位的快速進(jìn)位。
從上面兩個式子可見,它們在本級運(yùn)算的基礎(chǔ)上,都在等待輸入Ci的盡快確定。以一位為例,將上述四個式子合起來,就是由兩個半加器再加上一個或門組成一位全加器的行為描述,如圖4-29。其中Gi是半加進(jìn)位,Pi是半加和。圖4-28每一級加法器的進(jìn)位結(jié)構(gòu)圖4-29半加器加或門構(gòu)成的全加器當(dāng)然,實(shí)際情況中如果半加進(jìn)位輸出處采用的是與非門,這樣后面的或門可以用與非門取代。
對于多級中任意第k級情況,則有
Ck+1=f(Ak,Bk,Ck)=Gk+PkCk
繼續(xù)迭代可得
Ck+1=Gk
+PkCk=Gk+Pk(Gk-1+Pk-1Ck-1)
對于任意的k,將其完全展開可得
Ck+1=Gk+Pk(Gk-1+Pk-1(…+P1(G0+P0C0)))從上式可以看出,要實(shí)現(xiàn)第k位的快速超前進(jìn)位,其將多個本級中間值連接起來的快速方案立即可得。此外,關(guān)于各級的全加和Sk,也是在等待著Ck的確定。因此,只要實(shí)現(xiàn)了快速進(jìn)位,則全加器以及整個加法器就是快速的。
另外,還有跳躍進(jìn)位加法器(Carry-skipAdder)和選擇進(jìn)位加法器等。4.4.4廣義加法器
在上述基礎(chǔ)上改進(jìn)的加法器,既可以執(zhí)行算術(shù)運(yùn)算,也可以執(zhí)行按位操作的邏輯運(yùn)算。對擴(kuò)展加法器的運(yùn)算要求決定了電路設(shè)計(jì)。三模塊的廣義擴(kuò)展一位加法器電路方框圖如圖4-30
所示。
擴(kuò)展的一位加法器可以對兩個輸入A、B,或者S、C進(jìn)行16種可能的功能計(jì)算,因此最多需要四位操作控制碼。四位操作碼的可能操作有:0、1、緩沖(A、B)、非(A!、B!)、與(AB、AB!、A!B)、或(A+B)、異或(A⊕B)、與非(AB)!、或非(A+B)!、異或非(A⊕B)!。
它的核心還是加法器,根據(jù)實(shí)際需要,電路可以精簡。圖4-30三模塊的擴(kuò)展一位加法器方框圖4.4.5減法器與數(shù)值比較器
如果加法器采用補(bǔ)碼運(yùn)算,其輸入In1、In2均已經(jīng)表示為補(bǔ)碼形式,則使用如圖4-31所示的加法器也可以實(shí)現(xiàn)減法和數(shù)值比較器功能。
對于圖4-31(a)所示的N位(從0~(N-1))減法器,用第N-1位作符號位。注意減法的結(jié)果還是補(bǔ)碼表示。
對于圖4-31(b)所示的數(shù)值比較器,原理同減法器一樣,只取作為運(yùn)算符號位的第N-1位結(jié)果SN-1取反后來判斷,如果為1,則代表運(yùn)算結(jié)果的符號位為0,或者說相減的結(jié)果大于等于0,則可以得出In1≥In2的結(jié)論。圖4-31用加法器實(shí)現(xiàn)減法和數(shù)值比較此外,7485芯片中提供的四位A與B的比較器由下述兩類功能復(fù)合而成。
一類是四位等值比較器:
對每一位都進(jìn)行比較相等與否。當(dāng)A=B時,上述結(jié)果為1。一類是四位數(shù)值比較器,其中比較“大于”(>)的是:
從高位(A3、B3)開始到低位,依次比較是否大于。當(dāng)A>B時,上述結(jié)果為1。
將上述兩者結(jié)果再相“或”,就成為總的比較≥(大于或等于)的功能。4.4.6乘法器
1.原理
數(shù)字信號處理中最重要的是乘法累加運(yùn)算,這里介紹乘法器。設(shè)計(jì)乘法器要從研究乘法算法原理開始。假設(shè)被乘數(shù)為X,乘數(shù)為Y:其中,Xi、Yj
{0,1},如果不出現(xiàn)進(jìn)位,或者說在沒有溢出的情況下,乘積Z則為
注意,如果累加后有進(jìn)位,例如M=4位的X=15乘以N=4位的Y=15,結(jié)果Z=225為8位,而不是M+N-1=7位。我們現(xiàn)在來考察圖4-32給出的一個乘法示例,其中X=0110,Y=1001,乘積為Z。用乘法分列式給出具體的步驟。
在每一步,我們將乘數(shù)的某一位與被乘數(shù)的全部相乘,將結(jié)果適當(dāng)移位,并與部分積相加。當(dāng)所有乘數(shù)位操作完畢時,就完成了乘法運(yùn)算。
顯然,每一位的二進(jìn)制數(shù)相乘獲得部分積很容易,只需要執(zhí)行“與(AND)”運(yùn)算即可。下面就把每一位的“相乘”直接寫成“相與”。然而,如何將部分積累加成完全積,卻可以有不同的優(yōu)化途徑。為了能理解各種不同的乘法器改進(jìn)方案,我們首先對最基本的乘法器做一介紹和分析。圖4-32乘法算法原理一般乘法器的結(jié)構(gòu)如圖4-33所示。這是一種實(shí)現(xiàn)上述運(yùn)算的最簡單方案,被稱為串-并(Serial-Parallel)乘法器。在相乘過程中,乘數(shù)Y的N位,從低位到高位依次按位串行饋入,首先饋入的是最低位。在某一時刻,只有乘數(shù)Y的某一位值同時出現(xiàn)在M個相與器的各輸入端。而M位被乘數(shù)X則并行同時出現(xiàn),被乘數(shù)X的M位同時出現(xiàn)并分別保持在M個相與器的各輸入端,最高位在左邊,最低位在右邊。相與單元由于是對一位進(jìn)行,所以它就是一個簡單的與門(AND)。為了完整起見,前面的最高位也加上一個求和;后面加上一個記憶單元輸出。時鐘CK控制在正邊沿或高電平時往記憶單元中打入數(shù)據(jù),在負(fù)邊沿或者低電平時則完成求和運(yùn)算。假設(shè)各記憶單元首先清零。完整的求和操作包括一位帶記憶單元的全加器用作求和單元(參見圖4-33右下方的放大圖示);另外幾位分立的記憶單元用來存放部分積中的每一位全加和(等下一時鐘周期它給出的就是部分積中高一位的全加和)。圖4-33一般乘法器的結(jié)構(gòu)圖記憶單元鏈和帶記憶單元的全加器在時鐘作用下,共同執(zhí)行了巧妙的對位加,形成正確的部分積操作——移位后Q端代表部分積中的本位全加和作為一個輸入B;乘數(shù)Y的0/1與被乘數(shù)X的該位“相與”所得為本位輸入A。本位移位前的原來舊本位已經(jīng)是新的低位,所以它當(dāng)初的進(jìn)位,此時要看做是從低位全加進(jìn)位輸出而來,由于移位它成為了現(xiàn)在本位的進(jìn)位輸入,作為第三個輸入C。三者相加,形成部分積中的新本位全加和S再放在移位記憶單元鏈的各Q端;新本位全加進(jìn)位輸出進(jìn)內(nèi)部鎖存,在下個時鐘周期時它成為全加器的高一位(新新本位)的進(jìn)位輸入。
總的結(jié)果在乘法鏈的尾部先低位后高位依次串行輸出。
2.改進(jìn)
多年來,人們對乘法器進(jìn)行了多方面的改進(jìn),包括:
(1)?Baugh-Wooley乘法器,采用補(bǔ)碼進(jìn)行運(yùn)算。
(2)適合于VLSI實(shí)現(xiàn)的陣列(Array)乘法器。
(3)?Booth編碼方案使得一次可以執(zhí)行好幾步乘法。
(4)Wallace樹用保存進(jìn)位加法器構(gòu)成加法樹以便采用多個加法器加速部分積的累加過程。4.4.7數(shù)據(jù)通路版圖設(shè)計(jì)
數(shù)字濾波器是純數(shù)據(jù)的,簡單的通信協(xié)議是純控制的。一般的體系結(jié)構(gòu)中數(shù)據(jù)通路則離不開控制器。這時的數(shù)據(jù)通路包括規(guī)整的算術(shù)邏輯功能和存儲記憶單元;與之密切相關(guān)的控制器則包括隨機(jī)邏輯和狀態(tài)機(jī)。在體系結(jié)構(gòu)中對數(shù)據(jù)通路和控制器加以區(qū)分有利于狀態(tài)機(jī)的設(shè)計(jì)。但是,由于數(shù)據(jù)和控制是平等的,因此這種區(qū)分并不是嚴(yán)格和明確的。
數(shù)據(jù)通路既是一種邏輯結(jié)構(gòu)的概念,也同樣是一種物理結(jié)構(gòu)的概念。數(shù)據(jù)通路有兩類必不可少的設(shè)計(jì)要素:記憶單元(寄存器或RAM)以及總線。它們的形式根據(jù)不同的問題而有所不同。為了優(yōu)化數(shù)據(jù)通路設(shè)計(jì),目前主要采用全定制方式設(shè)計(jì)底層版圖結(jié)構(gòu)。關(guān)于數(shù)據(jù)通路的版圖設(shè)計(jì),歷來受到高度重視。在設(shè)計(jì)各種高性能微處理器的過程中,雖然已經(jīng)有自動化設(shè)計(jì)工具,但是大多數(shù)還要靠手工介入版圖設(shè)計(jì),主要是為了能同時做到高密度、高工作頻率和高可靠性。這時應(yīng)設(shè)法減少布線之間的寄生電容值,特別是關(guān)鍵信號線,要盡量避免長線。數(shù)據(jù)通路與控制電路不太一樣,控制電路的設(shè)計(jì)一般已經(jīng)做到以采用自動化設(shè)計(jì)為主,很少人工介入到版圖設(shè)計(jì)。在數(shù)據(jù)通路的版圖中,單元可以線性排列,數(shù)據(jù)信號線橫向走,電源線和控制線一般縱向走。例如,在一個按位拼接的四位數(shù)據(jù)通路版圖中,從上到下是Bit3~Bit0排列,當(dāng)橫向看每一位電路時,依次可能是多路選擇器、寄存器0、寄存器1、移位器、加法器、緩沖器等,這樣數(shù)據(jù)通路中的電路從左到右一個挨一個,其中加法器面積最大。而全部版圖的電源線和控制線都是從上到下走過。為了同時減少線長和寄生電容,有時需要在單元不動的情況下穿過單元布一根穿越(Feedthrough)線。這就要求能利用單元中空閑面積走穿越線。否則位片間由于需要留有較大的布線區(qū),總面積會因此而變得很大。
如果數(shù)據(jù)通路的底層結(jié)構(gòu)采用半定制形式,也不一定非要采用由初級的與非門組成可構(gòu)造陣列,而可以是由較大的算術(shù)單元組成的可構(gòu)造陣列。同樣,任何一種新的DSP算法仍然可以直接映射到這種宏單元陣列中,然后通過互連編程構(gòu)成完整的硬件電路。
4.5分析、仿真與驗(yàn)證
隨著電子設(shè)計(jì)的復(fù)雜度不斷增大,對于100萬門中型以上芯片的設(shè)計(jì),純粹的人工設(shè)計(jì)已經(jīng)不可能。由于規(guī)模難以駕馭,難以確保一次投片成功,因此,對自動化設(shè)計(jì)的依賴程度越來越高。但是,不管人工還是自動,按不同的有限目標(biāo),都可以將設(shè)計(jì)過程分成多次交互的四個主要階段,如圖4-34所示。圖4-34設(shè)計(jì)過程的四個階段
(1)設(shè)計(jì)創(chuàng)建——包括原理圖設(shè)計(jì)輸入和VHDL等語言文本設(shè)計(jì)輸入兩種方式,目前以人工為主。
(2)分析、仿真、驗(yàn)證——查驗(yàn)電路行為,確定電路響應(yīng)是否滿足預(yù)定要求。
仿真偏重于功能性的、全局性的;分析可以針對功能,也可以偏重性能,通常是針對特定局部細(xì)節(jié)內(nèi)容進(jìn)行的。例如,分析信號完整性,為的是提高速度;通過功耗分析,希望降低功耗。
這里我們再把分析驗(yàn)證分為兩個階段:常規(guī)意義上的分析驗(yàn)證往往隱含的是指物理綜合前的分析驗(yàn)證;而我們特別關(guān)注的是物理綜合完成后,對半成品的所謂后分析、后仿真、后驗(yàn)證。如果把后分析、后驗(yàn)證再加上面向制造和測試的設(shè)計(jì),還可以將其通稱為設(shè)計(jì)后工序階段,或者稱之為設(shè)計(jì)后處理。前分析驗(yàn)證的重點(diǎn)是功能正確性驗(yàn)證和基本的時序問題。一旦完成了邏輯結(jié)構(gòu)的雛形設(shè)計(jì),最好增加一次功耗分析。當(dāng)布局布線完成之后可以采用后仿真工具再做詳細(xì)的時序檢查,包括關(guān)鍵路徑延遲參數(shù)、由時鐘和信號兩種因素造成的錯位、建立保持時間檢查等。這時要注意設(shè)計(jì)庫中包含的與工藝有關(guān)的門電路和寄存器電路品種的差異會嚴(yán)重地制約設(shè)計(jì)的正確性。需要注意的是,分析、仿真和驗(yàn)證都與所建模型有極大的關(guān)系,需要專門研究。在討論用EDA軟件設(shè)計(jì)電子系統(tǒng)與電路時,經(jīng)常碰到分析、仿真(模擬)、驗(yàn)證等一些司空見慣的名詞。目前這些概念似乎有點(diǎn)混亂,可能一個概念會有幾個說法,也可能同一說法指的是不同的概念,為此,我們后面盡量把幾種實(shí)質(zhì)不同的概念用不同的名詞加以界定。
(3)綜合優(yōu)化——產(chǎn)生優(yōu)化的語言文本、電原理圖、網(wǎng)表或版圖。
利用布爾等價關(guān)系,可以化簡、降低規(guī)模。邏輯電路網(wǎng)絡(luò)的綜合優(yōu)化主要采用邏輯綜合工具完成,其優(yōu)劣程度主要取決于EDA軟件的水平,人工介入的較少。其中也充滿了許多不斷細(xì)化的反復(fù)迭代過程。
(4)可制造、可測試設(shè)計(jì)(DFM、DFT)——在給出制造工藝和測試方案的背景下進(jìn)行相關(guān)設(shè)計(jì)。
我們在第2章講過如何對電路芯片進(jìn)行測試,并分別描述了功能核實(shí)、故障診斷和性能評估等三類測試。那三類測試是對制造后電路芯片的實(shí)物測試。這里的DFM和DFT則是在實(shí)物制造之前,如何針對制造和測試的要求進(jìn)行設(shè)計(jì),例如插入掃描寄存器等測試電路。
DFM和DFT通過改進(jìn)電路和設(shè)計(jì)性能優(yōu)良的測試模板,提高制造和測試的質(zhì)量??芍圃旌涂蓽y試設(shè)計(jì)力圖在設(shè)計(jì)階段提前解決將來制造和測試中的問題。
目前這四個階段都是設(shè)計(jì)師,甚至設(shè)計(jì)小組借助于計(jì)算機(jī)輔助手段,采用正確的設(shè)計(jì)方法學(xué),通過創(chuàng)造性勞動和一系列攻關(guān)完成任務(wù)和目標(biāo)的。4.5.1分析
1.一般分析
分析是綜合過程中經(jīng)常使用的一種支撐保障技術(shù)。綜合是一個從無到有、從粗到精的過程,是將僅有的粗線條主意和概念設(shè)計(jì)映射變換成具體的電路設(shè)計(jì);分析則是對給定的某一電路,通過加入激勵信號,求出其某些方面的功能以及性能特征或指標(biāo),從輸出波形或其他數(shù)據(jù)中提取電路延遲、功耗計(jì)量、噪聲容限等參數(shù)。廣而言之,它可以包括電路冗余度、時序、容差、功耗熱分布、噪聲、串?dāng)_、電磁兼容、瞬態(tài)、非線性、系統(tǒng)性能等各種分析和后分析內(nèi)容。這里我們稱物理設(shè)計(jì)完成后的分析為后分析。
20世紀(jì)70年代由美國加州大學(xué)伯克利分校推出的電子CAA軟件SPICE是優(yōu)秀的電路分析軟件,對模擬電路和數(shù)字電路都適用。SPICE擁有比較完備和精確的器件模型,它對電路的功能和性能,包括對許多二階量的分析都很實(shí)用。但是它的分析速度太慢,不適合對大規(guī)模電路做晶體管級的模擬與分析。目前它主要被用來對底層設(shè)計(jì)的單元電路,特別是管級電路進(jìn)行深入分析。
如前所述,分析工具除了對底層電路功能模擬之外,許多是針對各種電路性能進(jìn)行的分析。性能是指在各種惡劣條件下,電路功能可以維持不變的能力和變壞程度的度量。這些惡劣條件包括噪聲干擾、溫度、潮濕、高速、高密度、機(jī)械外力、場輻射、使用時間和壽命等。
2.時序分析
時序分析是數(shù)字電路設(shè)計(jì)中非常重要的環(huán)節(jié)。
系統(tǒng)的關(guān)鍵路徑(CriticalPath)是指在寄存器轉(zhuǎn)移級結(jié)構(gòu)中,發(fā)生狀態(tài)轉(zhuǎn)移的寄存器之間一個最長延遲的路徑。這個最長的路徑將影響系統(tǒng)全局的性能指標(biāo),制約系統(tǒng)時鐘的最高頻率,或者說限制系統(tǒng)工作的最快速度。對關(guān)鍵路徑進(jìn)行分析是時序分析中的重點(diǎn)。時序分析工具掃描整個系統(tǒng)網(wǎng)絡(luò),對于不同的路徑,它按延遲的不同對路徑排序(例如2.0ns、1.5ns、1.0ns、0.7ns、0.5ns等不同等級),指出其中的關(guān)鍵路徑。一般,時序分析工具首先建立網(wǎng)絡(luò)的RC模型,再計(jì)算出RC等效網(wǎng)絡(luò)的延遲,這往往會花費(fèi)較長的時間。即使如此,也很難保證所標(biāo)識出的關(guān)鍵路徑一定是最壞的延遲情況。因?yàn)檠舆t還與激勵信號密切有關(guān),可以說是激勵信號的函數(shù),所用激勵不同,延遲也會不同。時序分析工具容易出現(xiàn)的一個錯誤就是提供假的關(guān)鍵路徑。因?yàn)橛械穆窂窖舆t雖大,但正常信號可能永遠(yuǎn)不會經(jīng)過那里,這也是CAD工具只能輔助不能代替人工的例證。這時,需要高明的設(shè)計(jì)師,憑借自己的電路知識和設(shè)計(jì)經(jīng)驗(yàn)加以判斷來排除。
為了能有效地分析大規(guī)模電路,必須適
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025工程設(shè)備租賃合同書模板
- 聘用合同范本標(biāo)準(zhǔn)版7篇
- 2025盈江婦幼中心工程建設(shè)工程委托監(jiān)理合同
- 2025勞動合同書(全國版)
- 2025網(wǎng)絡(luò)廣告服務(wù)合同(設(shè)計(jì)、制作、發(fā)布)
- 課題申報(bào)參考:考慮消費(fèi)者囤積和直播促銷長期影響的供應(yīng)鏈協(xié)調(diào)優(yōu)化策略研究
- 2024年電池組配件項(xiàng)目投資申請報(bào)告
- 家庭影音設(shè)備的使用技巧與體驗(yàn)提升
- 7年級道法試題 答案 7年級道法試題
- 國家森林公園景區(qū)信息化建設(shè)規(guī)劃方案
- 我的家鄉(xiāng)瓊海
- (2025)專業(yè)技術(shù)人員繼續(xù)教育公需課題庫(附含答案)
- 《互聯(lián)網(wǎng)現(xiàn)狀和發(fā)展》課件
- 【MOOC】計(jì)算機(jī)組成原理-電子科技大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年上海健康醫(yī)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 2024年湖北省武漢市中考語文適應(yīng)性試卷
- 非新生兒破傷風(fēng)診療規(guī)范(2024年版)解讀
- EDIFIER漫步者S880使用說明書
- 上海市華東師大二附中2025屆高二數(shù)學(xué)第一學(xué)期期末統(tǒng)考試題含解析
- IP授權(quán)合作合同模板
- 2024中華人民共和國農(nóng)村集體經(jīng)濟(jì)組織法詳細(xì)解讀課件
評論
0/150
提交評論