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