現(xiàn)場可編程邏輯系統(tǒng)的設(shè)計技巧_第1頁
已閱讀1頁,還剩123頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第5章 現(xiàn)場可編程邏輯系統(tǒng)的設(shè)計技巧,5.1 同步電路設(shè)計技巧 5.2 多級邏輯的設(shè)計技巧 5.3 數(shù)字系統(tǒng)設(shè)計中的可編程器件的選擇方案 5.4 數(shù)字系統(tǒng)設(shè)計中的低功耗設(shè)計原則,5.1 同步電路設(shè)計技巧,FPGA具有豐富的觸發(fā)器資源, 靈活、 低延時的多時鐘資源和三態(tài)的總線結(jié)構(gòu)資源, 有利于同步電路的設(shè)計實現(xiàn)。 同時, FPGA的也存在極大的弱點: 由內(nèi)部邏輯實現(xiàn)中的布局布線的不確定性所帶來的系統(tǒng)時延的不確定性。 因此, 特別是對

2、于時延關(guān)系要求苛刻的異步電路, 用FPGA實現(xiàn)起來相對較困難。,5.1.1 同步電路與異步電路的基本概念 數(shù)字系統(tǒng)的電路通常由組合邏輯、 時序邏輯或者兩者混合構(gòu)成。 對于時序邏輯電路, 其基本結(jié)構(gòu)如圖 5 - 1所示。,圖 5 - 1 時序邏輯電路的結(jié)構(gòu)框圖,時序邏輯電路一般由組合邏輯、 存儲器件和反饋網(wǎng)絡(luò)3部分組成。 圖5-1中, X1, …, Xn為時序邏輯電路的輸入或稱外部輸入;

3、 Z1, …, Zm 為時序電路的輸出或稱外部輸出; y1, …, yr為時序邏輯電路的狀態(tài)或稱內(nèi)部輸入; Y1, …, Yr為時序邏輯電路的激勵或稱內(nèi)部輸出。,時序邏輯電路的組合邏輯只用來產(chǎn)生電路的輸出和激勵, 存儲器部分是由其不同的狀態(tài)(y1, …, yr)來“記憶”電路過去的輸入情況的。 其邏輯功能的函數(shù)一般表達為: Zi=gi(X1,

4、 …, Xn, y1, …, yr) i=1, …, m (5.1) Yj=hj(X1, …, Xn, y1, …, yr) j=1, …, r (5.2) 時序邏輯電路按其工作方式可分為同步時序邏輯和異步時序邏輯, 其結(jié)構(gòu)如圖 5 - 2所示。,圖 5 - 2 時序電路結(jié)構(gòu)框圖 (a) 同步時序邏輯電路; (b) 異步時序邏輯電路,其中, 同步時序邏輯電路

5、中的存儲元件為觸發(fā)器, 而異步時序邏輯電路中的存儲元件往往是延遲元件。 從圖 5 - 2(a)中可見, 同步時序電路的存儲元件由鐘控觸發(fā)器組成, 時鐘脈沖信號加在每個觸發(fā)器的時鐘輸入端。 只有當時鐘信號到來時, 電路狀態(tài)(y1, …, yr)才能發(fā)生變化, 而且只改變1次。 如果時鐘信號非有效, 即使輸入發(fā)生變化, 電路的狀態(tài)也不會改變。,通常將時鐘到達之前的電路狀態(tài)稱為現(xiàn)態(tài), 記作y(n); 將時鐘到達之后

6、的電路狀態(tài)稱為次態(tài), 記為y(n+1)。 由于始終是時鐘信號起著同步作用, 故稱此電路為同步時序邏輯電路。,從圖 5 - 2(b)中可見, 異步時序電路的存儲元件主要由延遲元件組成, 電路中不需要統(tǒng)一的時鐘信號, 輸入的變化有時將直接導(dǎo)致電路狀態(tài)的變化。 時序邏輯電路的輸入信號有脈沖形式和電平形式兩種, 如圖 5 - 3所示。 按照輸入信號形式的不同, 時序邏輯電路又可分為脈沖型和電平型。,圖 5 - 3 時序邏輯電路的輸入信號波形,

7、同步時序邏輯電路的行為雖然可以由式(5.1)和式(5.2)描述, 但從這些表達式中并不能清楚地了解其輸入、 輸出、 現(xiàn)態(tài)、 次態(tài)之間的轉(zhuǎn)移關(guān)系。 在實際的電路設(shè)計和分析中, 我們通常采用所謂的狀態(tài)表和狀態(tài)圖的方式。 最流行的兩類時序邏輯電路模型是Mealy模型和 Moore模型。 如第1章的圖1-31和圖1-32所示, 當電路的輸出是輸入和現(xiàn)態(tài)的函數(shù), 即Zi=Fi(X1, …, Xn, y1, …, yr)

8、(i=1, …, m)時, 稱作Mealy型電路; 同樣, 當電路的輸出信號是現(xiàn)態(tài)的函數(shù), Zi=Fi(X , y1, …, yr)(i=1, …, m)時, 則稱該電路為Moore型電路。,5.1.2 FPGA現(xiàn)場集成中常見的問題 對于時序邏輯的系統(tǒng)要求, 可以采用時序邏輯電路的形式去實現(xiàn), 這可稱作硬件解決方案; 也可以采用基本微控制器、 微處理中的內(nèi)嵌微程序的時序操作形式來實現(xiàn), 這常稱作計算機型的解決方案

9、。 兩者在設(shè)計方式以及邏輯實現(xiàn)的形式上, 都有著不同之處和相異的性能特點。,在采用FPGA這樣已規(guī)范的可編程邏輯陣列和可編程連線的有限資源, 去實現(xiàn)不同功能的時序邏輯電路系統(tǒng)時, 如何把握隨機的布局、 布線帶來的時延對系統(tǒng)邏輯的影響, 如何避免局部邏輯資源時延特征和不同的時序電路形式的制約, 如何有效利用FPGA的特征邏輯結(jié)構(gòu)去優(yōu)化電路設(shè)計, 都是一個設(shè)計工程師在設(shè)計中必須考慮的問題。

10、 在采用FPGA的數(shù)字時序邏輯的現(xiàn)場集成, 特別是對于同步電路的設(shè)計實現(xiàn)中, 我們常遇到的主要問題有以下幾種。,建立時間:在時鐘跳變前數(shù)據(jù)必須保持穩(wěn)定(無跳變)的時間。保持時間:在時鐘跳變后數(shù)據(jù)必須保持穩(wěn)定的時間。 如圖5-1所示。 每一種具有時鐘和數(shù)據(jù)輸入的同步數(shù)字電路都會在技術(shù)指標表中規(guī)定這兩種時間。,,圖5-1 建立時間和保持時間,數(shù)據(jù)穩(wěn)定傳輸必須滿足建立和保持時間的要求, 否則輸出數(shù)據(jù)就可能有錯誤, 或變得不穩(wěn)定。 在FPG

11、A設(shè)計中, 應(yīng)對信號的建立和保持時間做充分考慮, 盡量避免在數(shù)據(jù)建立時間內(nèi)或其附近讀取數(shù)據(jù)。 對于級聯(lián)的功能模塊或者數(shù)字邏輯器件, 后一模塊或器件的工作時鐘一般取前一模塊或器件工作時鐘的反相信號, 這樣就可以保證時鐘的邊沿位于數(shù)據(jù)的保持時間內(nèi)。 當數(shù)據(jù)剛好在時鐘邊緣前后發(fā)生變化時,此時的時鐘不知道時輸入邊沿前的數(shù)據(jù)還是邊沿后的數(shù)據(jù),完全取決于觸發(fā)器內(nèi)部的,這樣會導(dǎo)致亞穩(wěn)定性。如圖5-2,,圖5-2 違反建立和保持時間原則,解

12、決辦法:將非同源時鐘同步化 圖5-3 非同源時鐘同步化,時序波形圖,冒險現(xiàn)象 1)定義:數(shù)字電路設(shè)計中,當多路信號的電平值發(fā)生變化時, 在信號變化的瞬間, 組合邏輯的輸出狀態(tài)不確定, 往往會出現(xiàn)一些不正確的尖峰信號, 這些尖峰信號稱為“毛刺”。 如果一個組合邏輯電路中有“毛刺”出現(xiàn), 就說明該電路存在“冒險”。,2 )原因:(1)由

13、于延時所產(chǎn)生。 延時的大小與連線的長短和邏輯單元的數(shù)目有關(guān), 同時還受器件的制造工藝、 工作電壓、 溫度等條件的影響。(2)信號的高低電平轉(zhuǎn)換也需要一定的過渡時間。,3冒險的缺點: 影響到邏輯電路的穩(wěn)定性。時鐘端口,清零和置位端口對毛刺都十分敏感,任何一個毛刺都可能會使系統(tǒng)出錯。,4 避免毛刺的方法:(1)增加冗余項。(2)采用格雷碼計數(shù)器(3)采用同步電路(4)采用D觸發(fā)器輸出(5)采用脈沖在數(shù)據(jù)的保持時間內(nèi)采樣,采

14、用脈沖在數(shù)據(jù)的保持時間內(nèi)采樣,,,消除毛刺方法-:利用采樣信號及其波形,利用觸發(fā)器,消除毛刺方法二:利用觸發(fā)器及其波形,消除毛刺方法三:利用RC濾波器濾除毛刺,1. 在同步電路設(shè)計中, 如何使用時鐘(clock)使能信號的問題 所謂同步電路, 就是指電路在時鐘信號有效時, 來捕捉電路的輸入信號和輸出信號, 規(guī)范電路的狀態(tài)變化。,因此, 在同步電路設(shè)計中, 時鐘信號是至關(guān)重要的。 但是, 直接用門控時鐘來控制電路的狀

15、態(tài)變化, 由于各種原因造成的時鐘信號的毛刺將直接影響電路的正常工作, 特別對于高速FPGA的結(jié)構(gòu), 會影響電路邏輯的正常響應(yīng)。 因此, 在電路結(jié)構(gòu)中, 增加時鐘使能信號,無論對于防止時鐘信號隨機毛刺的影響, 還是嚴格規(guī)范電路邏輯的時序?qū)?yīng), 都是非常重要的。 圖 5 - 4 所示為時鐘使能信號CE的電路實現(xiàn)。,圖 5 - 4 時鐘使能信號電路,有的電路采用圖 5 - 5(a)所示的對觸發(fā)器增添CE腳的形式, 而有的設(shè)計則采用圖5 -

16、5(b)所示的附加邏輯控制端CE的方式來實現(xiàn)CE的控制功能。 不管采用何種形式, 如果在電路中不使用CE信號時, 則要將CE端接至高電平。 同樣, 當在設(shè)計中需要多重時鐘時, 時鐘使能也可用來維護電路狀態(tài)變化的同步性。 有時, 時鐘使能信號可由圖 5 - 4 的電路來實現(xiàn)。,圖 5-5 在電路中加入CE信號的形式 (a) 增添具有CE腳的觸發(fā)器; (b) 附加邏輯控制端CE,2. 在同步電路設(shè)計中, 如

17、何合理布置時鐘分配的問題 同步電路中的多時鐘產(chǎn)生, 往往采用時鐘分配電路來實現(xiàn)。 這時, 首先要關(guān)注的是如何降低分配時鐘之間的時鐘偏移問題。 對于如圖 5 - 6所示的時鐘分配電路, 為了減少時鐘CLK1和CLK2之間的時鐘偏移,可采用額外的緩沖器BUFG來降低CLK2的時鐘偏移。,但是, 這樣的電路并不能完全抑制時鐘波形的變形。 若需完全抑制CLK1和CLK2-CE之間的時鐘偏移, 可嘗試如圖 5 - 7所示的

18、電路。 該電路中的BUFG為可選緩沖器。 當CLK2-CE信號是高扇出時, 可省略BUFG緩沖器。,圖 5 - 6 不好的時鐘分配電路,圖 5 - 7 好的時鐘分配電路,3. 在同步電路設(shè)計中應(yīng)嚴格避免時鐘信號(CLK)、置位(Set)/復(fù)位(Reset)信號的毛刺 由于亞微米技術(shù)的成熟, 目前的FPGA中的觸發(fā)器的響應(yīng)速度越來越快, 其可以響應(yīng)非常窄的時鐘脈沖。 因此, 往往觸發(fā)器會響應(yīng)時鐘信號中的毛刺, 導(dǎo)致

19、邏輯發(fā)生誤動作。,圖 5 - 8 門控時鐘的毛刺產(chǎn)生原理,為了避免時鐘等信號的毛刺, 在設(shè)計中應(yīng)嚴格注意不能采用所謂的“門控時鐘”, 即由組合邏輯輸出直接作為時鐘的現(xiàn)象發(fā)生。 如圖 5 - 8所示, 如果與門的MSB輸入連線較短, 則在計數(shù)器輸出信號“0111→1000”的瞬變, 在與門輸入端就可以瞬間出現(xiàn) “0111→1111→1000”的過程。 這個 “1111”的出現(xiàn), 將在觸發(fā)器FF的時鐘輸入端形成毛刺。,為了防止這類情況的發(fā)生

20、, 建議采用如圖 5 - 9所示的電路, 這樣便可以實現(xiàn)相同的邏輯功能, 卻不會導(dǎo)致時鐘產(chǎn)生毛刺。 也可以有意識地對與門輸入端引入一個CLB時延, 如圖 5 - 10所示, 同樣可以將門控時鐘毛刺形成的可能性降低。,圖 5 - 9 避免時鐘毛刺的電路,圖 5 - 10 對與門引入CLB的時延,在同步電路中, 異步清除或預(yù)置輸入信號的毛刺, 同樣會導(dǎo)致電路邏輯出錯。 如圖 5 - 11 所示中的“Reset”信號, 雖然是可執(zhí)行一個異步

21、的清除, 但由于其信號源于一個組合邏輯與門, 其中可能的毛刺會使電路出錯。,圖 5 - 11 異步“清除”電路,解決該問題的原則和上述克服時鐘信號毛刺的原則一樣, 如圖5 -12 所示。 可以采用方法A, 即采用同步化的Reset控制的觸發(fā)器FF; 也可采用方法B, 即在電路中將Reset信號改為時鐘使能信號來控制電路邏輯, 從而避免Reset信號中的毛刺。,圖 5 - 12 “清除”信號的同步化解決方案 (

22、a) 方法A; (b) 方法B,圖 5 - 12 “清除”信號的同步化解決方案 (a) 方法A; (b) 方法B,圖 5 - 13所示是對于具有異步復(fù)位的計數(shù)器, 如何避免復(fù)位信號中的毛刺影響的不同設(shè)計。 其中圖5 - 13(a)的設(shè)計不能克服異步復(fù)位信號中毛刺的影響, 而圖5 -13(b)的設(shè)計則可有效地克服異步復(fù)位信號中毛刺的影響。,圖 5 - 13 避免Set/Reset信號中

23、毛刺的影響的分析 (a) 不好的設(shè)計; (b) 好的設(shè)計,4. 在同步電路設(shè)計中, 時鐘偏移及不確定信號電平的影響 時序電路在FPGA中實現(xiàn)時, 由于各部分連線長短不一致, 導(dǎo)致其雖然多個觸發(fā)器共用一個時鐘信號, 但觸發(fā)器時鐘端的信號延時并不相同, 信號會發(fā)生不同的畸變, 構(gòu)成時鐘信號偏移。,如圖 5 - 14所示, 圖5 -14(a)中標出時鐘信號的不同時延, 對照圖5-14(c

24、)的信號波形, 可以分析, 由于時鐘信號到達觸發(fā)器的端口處的信號發(fā)生畸變和不同的時延, 該移位寄存器將不能正常工作。 在同步電路的設(shè)計實現(xiàn)中, 我們還應(yīng)注意信號建立和保持時間的需要, 特別是觸發(fā)器輸入信號的變化不能距離時鐘信號邊緣太近, 如圖 5 - 15所示。,圖 5 - 14 同步電路中時鐘偏移的影響,圖 5 - 15 時鐘信號建立與保持時間的影響,如果兩者太接近的話, 觸發(fā)器輸出將會形成如下3種情況:

25、 (1) 維護輸入D的原值; (2) 改變成輸入D的新值; (3) 輸出是不確定的。,圖 5 - 16 異步輸入信號同步化電路,5.1.3 同步邏輯電路設(shè)計中的基本技巧 1. 對于輸入信號是異步的情況 在同步邏輯電路設(shè)計中, 對于異步的輸入信號, 首先要做的工作是同步異步信號。 圖 5 - 16所示為異步輸入信號同步化的電路舉例。

26、 2. 兩個獨立時鐘的情況 在同步邏輯電路的系統(tǒng)中, 如果存在兩個時鐘信號, 且對于包容于CLK1和CLK2之間的信號, 需要和CLK2信號同步。,圖 5 - 17 雙CLK的電路,對于如圖 5 - 17所示電路, 前后兩個觸發(fā)器之間為某一邏輯功能, CLK1和CLK2分別是前后兩個觸發(fā)器的時鐘信號。 這時需要分兩種情況考慮: ·CLK1慢于CLK2(CLK1的

27、脈寬大于CLK2); ·CLK1快于CLK2(CLK1的脈寬小于CLK2)。,對于CLK1的脈寬大于CLK2的情況, 一般要求輸入信號脈沖至少為1個CLK2的周期以上(慢于CLK2); 同時, 在電路中需要附加一個觸發(fā)器, 以防止出現(xiàn)不確定態(tài), 如圖 5 - 18(a)所示, FF1是一個用于防止不確定態(tài)出現(xiàn)的觸發(fā)器, FF2輸出被同步于CLK2。 圖5 -18(b)為該電路各信

28、號的波形示意。,圖 5 - 18 附加觸發(fā)器以防止出現(xiàn)不確定態(tài) (a) 電路圖; (b) 電路波形示意,圖 5 - 19 電路原理和波形示意,對于CLK1的脈寬小于CLK2時, 輸入脈沖寬度也許會小于1個時鐘周期寬度。 同樣, 如圖 5 - 19 所示, 需要再增加一個觸發(fā)器, 以防止出現(xiàn)不確定狀態(tài), 且輸出信號仍需同步于CLK2。 雙時鐘電路可用于異步輸入信號的同步化實現(xiàn)中。 當輸入脈沖寬于1個時鐘周期時

29、, 可使用CLK1慢于CLK2的信號同步化電路(如圖 5 - 19所示)。 同樣, 當輸入脈沖寬度小于1個時鐘周期時, 需要使用CLK1快于CLK2的信號同步化電路。,5.2 多級邏輯的設(shè)計技巧,FPGA主要由可編程邏輯單元模塊(CLB)、 可編程輸入/輸出模塊(IOB)和可編程內(nèi)連線(PI) 3 種基本資源構(gòu)成。 因此, 在采用FPGA來實現(xiàn)電路邏輯時, 其基本的時延來源于這3種基本資源。,其中, CLB和IOB內(nèi)的邏輯資源雖會隨不同

30、的邏輯需求而實現(xiàn)不同的重構(gòu), 但其單元時延的離散性不大。 而PI則根據(jù)不同的邏輯需求及不同的連線要求, 使各處連線的延時差異會非常大。 因此, 對FPGA實現(xiàn)中的延時分析, 需要根據(jù)具體情況, 具體地由這些基本時延的疊加來加以分析。,5.2.1 FPGA實現(xiàn)中的基本時延信號的延時 1定義: 由于信號傳輸路徑必須通過電晶體開關(guān), 因此產(chǎn)生連線延時。另外,信號每通過一個邏輯單元, 就會產(chǎn)生一定的延時。2 影響

31、因素:延時的大小除了受路徑長短的影響外, 還受器件內(nèi)部結(jié)構(gòu)特點、 制造工藝、 工作溫度、 工作電壓等條件的影響。,信號的延時,實際上, 在采用FPGA來實現(xiàn)同步邏輯電路時, 我們可以利用器件內(nèi)部資源的某些特征參數(shù)來預(yù)測電路設(shè)計的性能指標或評估電路性能是否優(yōu)化。 例如: 可以采用內(nèi)部單元模塊的時延作為評估網(wǎng)絡(luò)時延的基本依據(jù); 也可以反過來, 采用預(yù)期的時鐘頻率來決定電路設(shè)計中允許使用的CLB的串級數(shù)。 通過功能需求比較和設(shè)計修正, 來使設(shè)

32、計達到所需求的指標。,例如: 如果需要在XC4000XL-3的芯片中實現(xiàn)50 MHz時鐘頻率, 由于系統(tǒng)時鐘周期為20 ns, 如圖 5 - 20所示, 1級CLB的延時約8 ns(包括tCO+tNET+tSU), 還有時延冗余量12 ns。,圖 5 - 20 多級CLB的時延模型,考慮中間每個附加CLB的組合邏輯延時為6 ns(tPD+tNET), 則該系統(tǒng)中可串聯(lián)兩級內(nèi)嵌附加CLB組合邏輯。  那么,

33、 如圖 5 - 21所示的的三級串聯(lián)邏輯, 其中總的時延為多少? 最高能實現(xiàn)多高的系統(tǒng)頻率呢?,圖 5-21 內(nèi)嵌三級串聯(lián)邏輯的時延模型,稍作分析, 其總的延時是由串聯(lián)于其中的布線延時tNET和單級CLB組合延時tCLB1、 tCLB2、 tCLB3, 以及前后兩個觸發(fā)器的延時tCK0和tSU相疊加而成, 即 tTOTA1=tCK0+tNET+tCLB1+tNET1+tCLB2

34、 +tNET2+tCLB3+tNET3+tSU 考慮目標器件采用XC4000XL-09, 根據(jù)器件數(shù)據(jù)手冊查尋, 可知 tTOTA1=1.5 ns+1.2 ns+1.2 ns+1.2 ns+1.2 ns +1.2 ns+1.2 ns+1.2 ns +0.8 ns=10.7 ns 所以, 總的串聯(lián)延時為1

35、0.7 ns, 換算成系統(tǒng)頻率約為93 MHz。,5.2.2 流水線的基本概念 為了提高多級邏輯的系統(tǒng)速度, 在FPGA的邏輯實現(xiàn)中, 同樣可引入“流水線”的概念。 流水線設(shè)計的概念是把在一個時鐘周期內(nèi)執(zhí)行的邏輯操作分成幾步較小的操作, 并在多個較高速的時鐘內(nèi)完成。,圖 5 - 22 的數(shù)據(jù)通路中的邏輯被分為3小部分。 如果它的tPD 為x, 則該電路的最高時鐘頻率為1/x。 而在圖5 -22(b)中, 假設(shè)在理

36、想情況下每部分的tPD為x/3, 則它的時鐘頻率可提高到原來的3倍。 當然, 我們在計算中并沒有包括電路中寄存器的時鐘——輸出時延和信號建立時間, 因此實際的延遲應(yīng)比x/3稍大。 在忽略它們的情況下, 我們可以看到, 流水線技術(shù)可以用來提高系統(tǒng)的數(shù)據(jù)流量, 也就是在單位時間內(nèi)所處理的數(shù)據(jù)量。 但是, 采用這種方法的代價是輸出信號將相對于輸入滯后3個時鐘周期。 因此必須根據(jù)這種情況對設(shè)計進行修改。,圖 5 - 22 流水線技術(shù)的概念,總之

37、, 流水線技術(shù)在提高系統(tǒng)處理速度的同時也造成了輸出滯后, 并且還需要額外的寄存器資源。 由于大多數(shù)FPGA器件的每個元胞中都有寄存器, 因此便于采用流水線設(shè)計; 相比之下, 在CPLD中每個寄存器對應(yīng)的組合邏輯資源較多, 因此其一級邏輯的規(guī)模要比FPGA大得多, 而這意味著在相同的時鐘周期內(nèi), 相對FPGA的元胞, 它可以實現(xiàn)更復(fù)雜的邏輯。 所以實際上往往沒有必要在CPLD中應(yīng)用流水線技術(shù)。,5.2.3 應(yīng)用流水線的設(shè)計

38、 采用流水線技術(shù), 是實現(xiàn)多級邏輯的系統(tǒng)時鐘提升的有效途徑。 其實際的狀態(tài)是, 采用了流水線結(jié)構(gòu), 該邏輯的第1個輸出有效將被延時, 這樣延時的時間取決于流水線的級數(shù)。 因為流水線的每一級都將附加一個時鐘的延時。 圖 5 - 23所示是一個原型電路實例, 在觸發(fā)器Source-FFS和Dest-FF之間存在兩個組合邏輯級, 實際的系統(tǒng)工作頻率為30 MHz。,圖 5 - 23 串聯(lián)兩級組合邏輯的原型電

39、路,將圖 5 - 23所示電路改為流水線的結(jié)構(gòu), 如圖 5 - 24 所示, 即在兩級串行組合邏輯之間嵌入觸發(fā)器PIPE-FFS。 由此, 系統(tǒng)的最大工作頻率可增至60 MHz。,圖 5 - 24 采用流水線技術(shù)的改進電路,利用流水線技術(shù), 可以進一步提高大型比較器的速度。 例如在加入了前面講的中間與門之后, 再將其輸出到一個寄存器, 然后利用該寄存器的輸出進行低位信號的比較。 為了保持邏輯的一致性, 在電路的其余部分也需要加入流水線寄

40、存器, 如圖 5 - 25 所示。 流水線技術(shù)也經(jīng)常用于計數(shù)器的設(shè)計之中。 例如, 二進制計數(shù)器有著直觀的計數(shù)次序, 但由于二進制譯碼需要寬位門來處理, 因此大容量二進制計數(shù)器速度較慢。 這就需要采用流水線的結(jié)構(gòu)來改進。,圖 5 - 25 流水線式的數(shù)值比較器,5.3 數(shù)字系統(tǒng)設(shè)計中的可編程器件的選擇方案,在實際的數(shù)字系統(tǒng)設(shè)計中, 可編程器件的選擇方案對系統(tǒng)實現(xiàn)的性能具有重要的影響。因為不同廠商的可編程器件結(jié)構(gòu)不盡相同、 延時特性不同、

41、 開發(fā)軟件不同, 同時, 這些可編程器件也沒有像通用邏輯器件那樣采用相同的引腳標準, 所以, 不同廠商的可編程器件不能完全兼容, 不能相互替換。 因此, 設(shè)計者在可編程器件的選擇上需要謹慎。 歸納起來, 基本的選擇原則有如下幾種。,5.3.1 從系統(tǒng)設(shè)計角度的目標器件選擇原則 (1) 電磁兼容設(shè)計的原則, 即對于中低速電路的系統(tǒng)設(shè)計, 盡量不要采用高速器件。 因為高速器件不僅價格高, 而且由于其速度高, 反會引發(fā)或增

42、加電磁干擾, 使系統(tǒng)工作難以穩(wěn)定。 (2) 主流芯片原則。 公開推出各種型號的芯片, 但由于生產(chǎn)或推廣策略的原因, 器件的價格往往并不是完全和器件的容量、 速度成比例關(guān)系, 而是和該器件是否是目前的主流推廣器件有關(guān)。,(3) 多片系統(tǒng)原則。 對于有的應(yīng)用設(shè)計, 不要一味追求單片化。 如果系統(tǒng)的局部適用于CPLD, 另一局部適用于FPGA, 則完全可采用多器件的復(fù)合

43、系統(tǒng)結(jié)構(gòu), 既有利于降低成本, 又能加快設(shè)計進程, 提供系統(tǒng)的穩(wěn)定性。 器件的選擇標準可以分如下幾條: 第一, 盡可能選擇同一家廠商的可編程器件, 以便對同一個研發(fā)團隊的設(shè)計者進行開發(fā)軟件操作的培訓(xùn), 在開發(fā)過程中吸取教訓(xùn), 交流經(jīng)驗, 提高設(shè)計水平。,第二, 對于經(jīng)驗不足的設(shè)計者, 先盡可能減小大規(guī)??删幊唐骷倪x擇, 采用多片中小規(guī)模的FPGA和CPLD結(jié)合使用的方案, 即多片F(xiàn)PGA(或CPLD)方案

44、, 實現(xiàn)各個子系統(tǒng)的功能驗證。 待功能驗證完成后, 再提高集成度, 采用大規(guī)模的FPGA芯片, 即單片F(xiàn)PGA方案。,第三, 利用FPGA芯片資源豐富的特點, 完成各種算法、 運算、 控制、 時序邏輯等功能, 提高集成度; 利用CPLD芯片速度快、 保密性好的特點, 完成快速譯碼、 控制、 加密等邏輯功能。 在一個復(fù)雜系統(tǒng)確定總體方案時, 總體設(shè)計者就應(yīng)該根據(jù)系統(tǒng)復(fù)雜度、 參研人員的研發(fā)能力、 對系統(tǒng)電路要求理

45、解的準確程度、 對FPGA(或CPLD)開發(fā)工具掌握程度、 FPGA(或CPLD)器件的性能價格比、 產(chǎn)品研制進度以及經(jīng)費等諸多因素, 確定采用單片F(xiàn)PGA(或CPLD)方案, 還是多片F(xiàn)PGA(或CPLD)方案。,5.3.2 從器件資源角度的目標器件選擇原則 當你進行任一個數(shù)字系統(tǒng)的FPGA設(shè)計與實現(xiàn)中, 也可以根據(jù)系統(tǒng)的要求, 從器件資源角度來考慮, 進行器件的選擇。 往往可從如下3方面來考慮。

46、 1. 器件的邏輯資源和目標系統(tǒng)的邏輯需求相匹配 所謂器件的邏輯資源, 是指器件內(nèi)陳列排布的觸發(fā)器資源、 組合邏輯資源、 內(nèi)嵌存儲單元資源、 三態(tài)緩沖器資源等, 當然也包括各種布線資源。 但是, 由于器件內(nèi)布線資源的限制和邏輯單元內(nèi)可編程選擇開關(guān)的限制, 很難使器件內(nèi)的邏輯資源實現(xiàn)100%的利用。,因此, 根據(jù)系統(tǒng)的邏輯資源需求評估器件的選擇, 是衡量設(shè)計者設(shè)計經(jīng)驗的重要指標, 是降低成本的主要條件。

47、通常, 在目標器件的選擇上采用特征單元評估法。 所謂特征單元評估法, 其要點在于要消化和理解所設(shè)計的數(shù)字系統(tǒng), 整理出特征邏輯單元的數(shù)目要求。 而特征邏輯單元, 根據(jù)數(shù)字系統(tǒng)的功能特征, 可以是觸發(fā)器, 也可以是組合門、 RAM存儲單元或三態(tài)緩沖器。,總之, 根據(jù)設(shè)計要求來分析: 在必須集成入芯片的邏輯單元之中, 哪一種邏輯單元是受到芯片資源限制的主要因素。 如果該電路所使用的觸發(fā)器數(shù)目較多, 則可將觸發(fā)器作為特征單元來選擇相應(yīng)的器件;

48、 如果三態(tài)緩沖器的總線結(jié)構(gòu)是電路的主要特征, 則要以三態(tài)緩沖器作為特征單元來分析選擇目標器件。 選定特征單元, 并分析特征單元的總數(shù)后, 再查找相應(yīng)的FPGA器件數(shù)據(jù)手冊, 選擇能滿足其特征單元的數(shù)量要求、 速度性能要求的適應(yīng)的器件作為數(shù)字系統(tǒng)的目標載體。,由于數(shù)字系統(tǒng)還會受到布線資源和系統(tǒng)速度要求的限制, 故選擇器件時, 要留有邏輯資源冗余量。 一般根據(jù)其他附屬邏輯資源和要求的苛求程度, 選擇能提供特性邏輯單

49、元數(shù)為系統(tǒng)所需的該邏輯單元數(shù)的1.1~1.3倍的器件為宜。,2. 器件的I/O腳的數(shù)目需滿足目標系統(tǒng)的要求 所選擇的目標器件, 僅在邏輯單元的資源上符合系統(tǒng)要求還是不夠的。 器件的I/O腳的數(shù)目能否滿足系統(tǒng)的輸入/輸出器的數(shù)目要求, 是器件選擇上的另一個基本要求。 對于一個FPGA器件, 其管腳的組成主要分為三類。 其一是專用功能腳, 主要用于電源(VCC)、 接地(VSS)、 編程模

50、式定義(M0、 M1、 M2)等非用戶功能。 這些管腳是提供器件正常工作的基本配置, 不能用于器件的用戶功能的定義。,其二是用戶功能腳, 專門用于目標數(shù)字系統(tǒng)的輸入/輸出接口定義。 對于不同的器件, 其接腳特征的參數(shù)可編程定義的范圍也不一樣。 一般可提供CMOS電平或TTL電平接口; 有的可定義為直接輸入/輸出或寄存輸入/輸出; 有的有上拉電阻、 下拉電阻定義等。 其三是用戶功能/專用功能雙功能腳。 這類接腳可定義為用戶接口。 主要

51、注意兩點: 第一, 在器件加電時的短時間內(nèi), 器件處于內(nèi)部功能的下載定義、 重構(gòu)狀態(tài)時, 該腳屬專用功能腳, 處于專用功能所需的邏輯狀態(tài);第二, 用戶系統(tǒng)數(shù)據(jù)下載完成后, 該腳才轉(zhuǎn)為用戶功能。 因此, 為了使兩種不同的邏輯功能狀態(tài)需求互不干擾, 需要加一上接電阻或下拉電阻于該接腳。,3. 系統(tǒng)的時鐘頻率要滿足器件元胞、 布線的時延限制要求 當系統(tǒng)的時鐘頻率決定以后, 考慮到采用FPGA來實現(xiàn)系統(tǒng)邏輯時, 如果其內(nèi)

52、部邏輯單元級聯(lián)深度和布線時延(見5.2.1節(jié)舉例)接近或等于或大于系統(tǒng)時鐘的周期, 則采用該FPGA來實現(xiàn)的系統(tǒng)就很難保證有效地實現(xiàn)原系統(tǒng)規(guī)定的邏輯功能。 所以解決的方法有:,(1) 選擇具有更高速度的器件替代原器件, 以滿足器件內(nèi)部邏輯單元級聯(lián)深度和布線所產(chǎn)生的時延小于系統(tǒng)的時鐘周期時間的要求。 (2) 采用流水線等技術(shù)措施, 以滿足系統(tǒng)的時序和時延要求。,5.3.3 從器件管腳來確定方案

53、 在FPGA的設(shè)計實現(xiàn)中, 是否需要限定系統(tǒng)的I/O接腳, 是設(shè)計中值得探究的問題。 原則上來講, 如果設(shè)計者對用戶系統(tǒng)的各輸入/輸出端的FPGA接腳均給予限定, 那么, 在系統(tǒng)進行FPGA實現(xiàn)的布局布線時, 無形中就受到了較多的約束, 就有可能對系統(tǒng)的時延特性和系統(tǒng)的芯片面積的有效利用構(gòu)成負面影響。,所以, 在用戶系統(tǒng)的FPGA設(shè)計實現(xiàn)中, 一般的規(guī)則是: (1) 盡量避免人為固定I/O接腳, 除非是多次實現(xiàn)過

54、程中可能重復(fù)存在的不固定I/O接腳。 設(shè)計實現(xiàn)的工具在布局布線時, 可根據(jù)系統(tǒng)需求和器件邏輯資源來實現(xiàn)最大自由度的規(guī)劃。 (2) 應(yīng)盡量避免將相關(guān)的I/O接腳集中固定于相互靠近的位置。 因為這不利于FPGA內(nèi)部布線資源的均衡使用。 所以, 實際中應(yīng)該嘗試適當調(diào)整I/O腳, 以利于資源利用。,(3) 根據(jù)需要, 適當考慮使用或禁止雙功能配置腳。 如果系統(tǒng)要求較多的I/O接口, 則應(yīng)采用雙功能配置腳, 并注意對接腳加接

55、上拉或下拉電阻。 例如: 在Xilinx的SRAM FPGA器件中, 其M2腳是一個雙功能腳。 在編程時, M2腳是器件配置模式定義腳, 和M0、 M1配合使用, 定義器件編程時的配置模式。,當器件配置數(shù)據(jù)下載完成后, M2 是一個用戶腳。 因此, 該腳為了在硬件連接上同時滿足配置模式和用戶I/O功能的邏輯需求, 必須加接一上拉或下拉電阻(如圖5-26所示)。 當器件為串行主動模式時, M2 處需加一上拉電阻R

56、UP。 同樣, 當器件為串行主動模式時, M2 處需加一下拉電阻RDOWN。 試想, 如果不加上拉或下拉電阻, 為了滿足配置模式的電平需求, 則必須將M2 腳上接+5 V電源或接地, 這樣會將該腳鎖定在高電平或低電平, 于是, 該腳的用戶I/O功能將無法實現(xiàn)。,圖 5 - 26 FPGA為串行主動模式時, M2的連接方式,(4) 在FPGA設(shè)計實現(xiàn)中, 應(yīng)該注意到I/O接腳的固定一般有先從左到右, 再從上到下的設(shè)定習(xí)慣; 并且, 應(yīng)根據(jù)

57、邏輯容量的限制, 來決定輸入和輸出接腳相互分隔的距離。,5.4 數(shù)字系統(tǒng)設(shè)計中的低功耗設(shè)計原則,低功耗設(shè)計就像低的芯片操作溫度、 低的芯片封裝價格一樣, 能給芯片帶來很多額外的益處。 為了使可編程邏輯的現(xiàn)場集成設(shè)計的產(chǎn)品更具競爭力, 設(shè)計者往往需要對產(chǎn)品的性能、 功耗等進行綜合考慮。 可編程芯片的功耗包括靜態(tài)功耗和動態(tài)功耗兩部分。 靜態(tài)功耗主要是可編程芯片在非激活狀態(tài)下由漏電流引起的。,動態(tài)功耗主要是由于可編程芯片在激活狀態(tài)下由芯片內(nèi)部

58、節(jié)點或輸入、 輸出引腳上的電平轉(zhuǎn)換引起的。 可編程器件的功耗主要由以下因素決定: 芯片的供電電壓、 器件的結(jié)構(gòu)、 資源的利用率(互連線、 邏輯單元和I/O單元使用的數(shù)量)、 時鐘頻率、 信號翻轉(zhuǎn)速率、 輸出引腳的數(shù)量以及輸出驅(qū)動負載的大小等。,現(xiàn)場集成設(shè)計中功耗優(yōu)化的方法和技巧多種多樣, 基本可以概括為兩種思路。 一種是降低電源電壓。 由于功耗與電壓的二次方成正比, 因此, 這樣做能夠顯著降低功耗。 該方法雖然

59、直觀, 實現(xiàn)卻很復(fù)雜, 尤其是對于需要兼容老機型的升級產(chǎn)品, 采用新的電壓標準, 同時必須兼容現(xiàn)有電子系統(tǒng)的電壓標準是一件很困難的事情。 但是, 對于一個全新的產(chǎn)品研制, 應(yīng)該盡可能根據(jù)系統(tǒng)性能指標要求, 選擇較低的電壓標準, 實現(xiàn)低功耗設(shè)計。,另一種是利用數(shù)字集成電路常用的低功耗設(shè)計原理, 在電路設(shè)計過程中, 通過減小節(jié)點的電平轉(zhuǎn)換次數(shù)和節(jié)點的負載電容之積, 即減少節(jié)點的有效轉(zhuǎn)換電容來達到減小功耗的目的。 這種思路在具體運用中可以通過

60、各種方法來實現(xiàn)。 例如, 在行為級設(shè)計上選擇合適的算法, 在結(jié)構(gòu)級上選擇合適的結(jié)構(gòu)和劃分, 在門級上選擇合適的邏輯結(jié)構(gòu)。 以下是幾種常用的方法。,(1) 優(yōu)化操作。 對于一個給定的功能, 通過選擇合適的算法以減小操作的次數(shù), 可以有效地降低節(jié)點的電平轉(zhuǎn)換次數(shù)。 例如, 對于和常數(shù)相乘的操作, 采用變換操作的方法, 將乘法操作變換為加法操作和移位操作。 同時, 盡量減少常數(shù)中1的個數(shù), 這樣可以減少加法操作和移位操作的次數(shù)。 公因式提取

61、法也可以減少操作次數(shù), 在這里, 具有相同公因式的那部分操作將被共享。 還可以利用數(shù)據(jù)之間的相關(guān)性, 采用重新安排操作順序的方法減少數(shù)據(jù)通道的電平轉(zhuǎn)換次數(shù)。,當總線上的數(shù)據(jù)與寄存器相關(guān)時,經(jīng)常使用片選或時鐘使能邏輯來控制寄存器的使能。進一步來說,盡早對該邏輯進行“數(shù)據(jù)使能”,以阻止數(shù)據(jù)總線與時鐘使能寄存器組合邏輯之間不必要的轉(zhuǎn)換,如圖所示。紅色波形表示原設(shè)計;綠色波形表示修改后的設(shè)計。,另一種選擇是在電路板上而不是在芯片上進行這種“數(shù)據(jù)

62、使能”。以盡可能減小處理器時鐘周期。此概念是使用CPLD從處理器卸載簡單任務(wù),以便使其更長時間地處于待機模式。,(2) 優(yōu)化控制。 從狀態(tài)轉(zhuǎn)換圖STG向邏輯結(jié)構(gòu)綜合的過程 中, 常采用變換的手段優(yōu)化出一個結(jié)構(gòu)。 這里的變換包括重新安排控制信號, 將一個大的STG結(jié)構(gòu)分解成若干個小的STG, 減少STG中的狀態(tài)數(shù)以及對STG狀態(tài)的重新分配。 例如, 根據(jù)STG中狀態(tài)轉(zhuǎn)移概率的描述, 對于那些相互之間轉(zhuǎn)移概率大的狀態(tài), 編碼時盡量減小它們

63、之間的布爾距離。 這樣, 就可以減少狀態(tài)轉(zhuǎn)移時狀態(tài)線上的電平轉(zhuǎn)換, 從而減少有效轉(zhuǎn)換電容。,(3) 優(yōu)化編碼。 選擇恰當?shù)木幋a也是一種行之有效的方法。根據(jù)預(yù)測的下一狀態(tài)條件列舉狀態(tài)機,并選擇常態(tài)之間轉(zhuǎn)換位較少的狀態(tài)值。這樣,您就能夠盡可能減少狀態(tài)機網(wǎng)絡(luò)的轉(zhuǎn)換量(頻率)。確定常態(tài)轉(zhuǎn)換和選擇適當?shù)臓顟B(tài)值,是降低功耗且對設(shè)計影響較小的一種簡單方法。編碼形式越簡單(一位有效編碼或格雷碼),使用的解碼邏輯也會越少。,例如, 對于數(shù)據(jù)通道, 可以

64、采用符號編碼代替補碼。 符號編碼采用一位代表變量的符號, 其余各位代表變量的大小。 補碼對于0到-1的變化是所有位都翻轉(zhuǎn), 而符號編碼只有符號位翻轉(zhuǎn)。 對于地址線的編碼方法, 可以采用格雷碼等做地址編碼。 這里所要注意的一個問題是, 譯碼電路的功耗不能超過這些方法節(jié)省的功耗。,讓我們來看一個在狀態(tài)7和狀態(tài)8之間頻繁進行狀態(tài)轉(zhuǎn)換的狀態(tài)機。如果您為該狀態(tài)機選擇二進制編碼,將意味著對于每次狀態(tài)7和狀態(tài)8之間的狀態(tài)轉(zhuǎn)換,將有四位需要改變狀態(tài),如

65、表所示。如果狀態(tài)機采用格雷碼而不是二進制碼來設(shè)計,則這兩個狀態(tài)之間的轉(zhuǎn)移所需的邏輯轉(zhuǎn)換的數(shù)量將降至僅一位。另外,如果將狀態(tài)7和8分別編碼為0010和0011,也可以達到同樣的效果。,(4) 優(yōu)化結(jié)構(gòu)。 采用平行結(jié)構(gòu)和流水線結(jié)構(gòu)降低電路延時。 由于電路存在延時, 將使某些節(jié)點出現(xiàn)毛刺, 從而使這些節(jié)點增加了額外的電平轉(zhuǎn)換, 這就是所謂的毛刺功耗。 為了減少毛刺功耗, 必須平衡各通路。 樹型結(jié)構(gòu)的電路比鏈型結(jié)構(gòu)的電路毛刺功耗小。 但是,

66、樹型結(jié)構(gòu)的電路所需寄存器的數(shù)目多, 寄存器的功耗增加。 因此, 在實際運用中, 必須對雙方權(quán)衡考慮, 采用一種最優(yōu)結(jié)構(gòu), 使總功耗最小。 為了優(yōu)化面積和減少資源, 常用的一種方法是復(fù)用某些模塊, 但這樣會使有效轉(zhuǎn)換電容增加。 因此可采用對稱結(jié)構(gòu), 以面積為代價, 達到優(yōu)化功耗的目的。,(5) 優(yōu)化邏輯。 在不改變電路功能的前提下, 變換寄存器在電路中的位置, 使得變換后的電路結(jié)構(gòu)有利于阻止毛刺的蔓延。 當電路的某一部分邏輯在一段時間內(nèi)

67、不起作用的時候, 就可以關(guān)閉這部分電路以降低功耗。 為了節(jié)省由觸發(fā)器輸出翻轉(zhuǎn)增加的功耗, 盡可能采用時鐘端帶有使能信號CE的觸發(fā)器。 當CE信號無效時, 所有時鐘沿的變化都不引起觸發(fā)器輸出的翻轉(zhuǎn); 當CE信號有效時, 觸發(fā)器才正常輸出操作。,(6) 優(yōu)化時鐘。 動態(tài)功耗的很大部分是時鐘頻率引起的。 讓時鐘運行在高出所需的頻率上就是浪費功率。 節(jié)省功耗就不要讓時鐘運行在高出所需的頻率。 可采用附加邏輯電路控制時鐘, 或者從原來電路內(nèi)就存

68、在的信號中選擇控制時鐘電路關(guān)閉的信號, 而不必增加額外的控制邏輯。,在一個設(shè)計的所有吸收功耗的信號當中,時鐘是罪魁禍首。雖然一個時鐘可能運行在100MHz,但從該時鐘派生出的信號卻通常運行在主時鐘頻率的較小分量(通常為12%~15%)。此外,時鐘的扇出一般也比較高——這兩個因素顯示,為了降低功耗,應(yīng)當認真研究時鐘。,如果設(shè)計的某個部分可以處于非活動狀態(tài),則可以考慮使用一個BUFG-MUX來禁止時鐘樹翻轉(zhuǎn),而不是使用時鐘使能。時鐘使能將阻

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論