版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第5章 現(xiàn)場可編程邏輯系統(tǒng)的設(shè)計(jì)技巧,5.1 同步電路設(shè)計(jì)技巧 5.2 多級(jí)邏輯的設(shè)計(jì)技巧 5.3 數(shù)字系統(tǒng)設(shè)計(jì)中的可編程器件的選擇方案 5.4 數(shù)字系統(tǒng)設(shè)計(jì)中的低功耗設(shè)計(jì)原則,5.1 同步電路設(shè)計(jì)技巧,FPGA具有豐富的觸發(fā)器資源, 靈活、 低延時(shí)的多時(shí)鐘資源和三態(tài)的總線結(jié)構(gòu)資源, 有利于同步電路的設(shè)計(jì)實(shí)現(xiàn)。 同時(shí), FPGA的也存在極大的弱點(diǎn): 由內(nèi)部邏輯實(shí)現(xiàn)中的布局布線的不確定性所帶來的系統(tǒng)時(shí)延的不確定性。 因此, 特別是對(duì)
2、于時(shí)延關(guān)系要求苛刻的異步電路, 用FPGA實(shí)現(xiàn)起來相對(duì)較困難。,5.1.1 同步電路與異步電路的基本概念 數(shù)字系統(tǒng)的電路通常由組合邏輯、 時(shí)序邏輯或者兩者混合構(gòu)成。 對(duì)于時(shí)序邏輯電路, 其基本結(jié)構(gòu)如圖 5 - 1所示。,圖 5 - 1 時(shí)序邏輯電路的結(jié)構(gòu)框圖,時(shí)序邏輯電路一般由組合邏輯、 存儲(chǔ)器件和反饋網(wǎng)絡(luò)3部分組成。 圖5-1中, X1, …, Xn為時(shí)序邏輯電路的輸入或稱外部輸入;
3、 Z1, …, Zm 為時(shí)序電路的輸出或稱外部輸出; y1, …, yr為時(shí)序邏輯電路的狀態(tài)或稱內(nèi)部輸入; Y1, …, Yr為時(shí)序邏輯電路的激勵(lì)或稱內(nèi)部輸出。,時(shí)序邏輯電路的組合邏輯只用來產(chǎn)生電路的輸出和激勵(lì), 存儲(chǔ)器部分是由其不同的狀態(tài)(y1, …, yr)來“記憶”電路過去的輸入情況的。 其邏輯功能的函數(shù)一般表達(dá)為: Zi=gi(X1,
4、 …, Xn, y1, …, yr) i=1, …, m (5.1) Yj=hj(X1, …, Xn, y1, …, yr) j=1, …, r (5.2) 時(shí)序邏輯電路按其工作方式可分為同步時(shí)序邏輯和異步時(shí)序邏輯, 其結(jié)構(gòu)如圖 5 - 2所示。,圖 5 - 2 時(shí)序電路結(jié)構(gòu)框圖 (a) 同步時(shí)序邏輯電路; (b) 異步時(shí)序邏輯電路,其中, 同步時(shí)序邏輯電路
5、中的存儲(chǔ)元件為觸發(fā)器, 而異步時(shí)序邏輯電路中的存儲(chǔ)元件往往是延遲元件。 從圖 5 - 2(a)中可見, 同步時(shí)序電路的存儲(chǔ)元件由鐘控觸發(fā)器組成, 時(shí)鐘脈沖信號(hào)加在每個(gè)觸發(fā)器的時(shí)鐘輸入端。 只有當(dāng)時(shí)鐘信號(hào)到來時(shí), 電路狀態(tài)(y1, …, yr)才能發(fā)生變化, 而且只改變1次。 如果時(shí)鐘信號(hào)非有效, 即使輸入發(fā)生變化, 電路的狀態(tài)也不會(huì)改變。,通常將時(shí)鐘到達(dá)之前的電路狀態(tài)稱為現(xiàn)態(tài), 記作y(n); 將時(shí)鐘到達(dá)之后
6、的電路狀態(tài)稱為次態(tài), 記為y(n+1)。 由于始終是時(shí)鐘信號(hào)起著同步作用, 故稱此電路為同步時(shí)序邏輯電路。,從圖 5 - 2(b)中可見, 異步時(shí)序電路的存儲(chǔ)元件主要由延遲元件組成, 電路中不需要統(tǒng)一的時(shí)鐘信號(hào), 輸入的變化有時(shí)將直接導(dǎo)致電路狀態(tài)的變化。 時(shí)序邏輯電路的輸入信號(hào)有脈沖形式和電平形式兩種, 如圖 5 - 3所示。 按照輸入信號(hào)形式的不同, 時(shí)序邏輯電路又可分為脈沖型和電平型。,圖 5 - 3 時(shí)序邏輯電路的輸入信號(hào)波形,
7、同步時(shí)序邏輯電路的行為雖然可以由式(5.1)和式(5.2)描述, 但從這些表達(dá)式中并不能清楚地了解其輸入、 輸出、 現(xiàn)態(tài)、 次態(tài)之間的轉(zhuǎn)移關(guān)系。 在實(shí)際的電路設(shè)計(jì)和分析中, 我們通常采用所謂的狀態(tài)表和狀態(tài)圖的方式。 最流行的兩類時(shí)序邏輯電路模型是Mealy模型和 Moore模型。 如第1章的圖1-31和圖1-32所示, 當(dāng)電路的輸出是輸入和現(xiàn)態(tài)的函數(shù), 即Zi=Fi(X1, …, Xn, y1, …, yr)
8、(i=1, …, m)時(shí), 稱作Mealy型電路; 同樣, 當(dāng)電路的輸出信號(hào)是現(xiàn)態(tài)的函數(shù), Zi=Fi(X , y1, …, yr)(i=1, …, m)時(shí), 則稱該電路為Moore型電路。,5.1.2 FPGA現(xiàn)場集成中常見的問題 對(duì)于時(shí)序邏輯的系統(tǒng)要求, 可以采用時(shí)序邏輯電路的形式去實(shí)現(xiàn), 這可稱作硬件解決方案; 也可以采用基本微控制器、 微處理中的內(nèi)嵌微程序的時(shí)序操作形式來實(shí)現(xiàn), 這常稱作計(jì)算機(jī)型的解決方案
9、。 兩者在設(shè)計(jì)方式以及邏輯實(shí)現(xiàn)的形式上, 都有著不同之處和相異的性能特點(diǎn)。,在采用FPGA這樣已規(guī)范的可編程邏輯陣列和可編程連線的有限資源, 去實(shí)現(xiàn)不同功能的時(shí)序邏輯電路系統(tǒng)時(shí), 如何把握隨機(jī)的布局、 布線帶來的時(shí)延對(duì)系統(tǒng)邏輯的影響, 如何避免局部邏輯資源時(shí)延特征和不同的時(shí)序電路形式的制約, 如何有效利用FPGA的特征邏輯結(jié)構(gòu)去優(yōu)化電路設(shè)計(jì), 都是一個(gè)設(shè)計(jì)工程師在設(shè)計(jì)中必須考慮的問題。
10、 在采用FPGA的數(shù)字時(shí)序邏輯的現(xiàn)場集成, 特別是對(duì)于同步電路的設(shè)計(jì)實(shí)現(xiàn)中, 我們常遇到的主要問題有以下幾種。,建立時(shí)間:在時(shí)鐘跳變前數(shù)據(jù)必須保持穩(wěn)定(無跳變)的時(shí)間。保持時(shí)間:在時(shí)鐘跳變后數(shù)據(jù)必須保持穩(wěn)定的時(shí)間。 如圖5-1所示。 每一種具有時(shí)鐘和數(shù)據(jù)輸入的同步數(shù)字電路都會(huì)在技術(shù)指標(biāo)表中規(guī)定這兩種時(shí)間。,,圖5-1 建立時(shí)間和保持時(shí)間,數(shù)據(jù)穩(wěn)定傳輸必須滿足建立和保持時(shí)間的要求, 否則輸出數(shù)據(jù)就可能有錯(cuò)誤, 或變得不穩(wěn)定。 在FPG
11、A設(shè)計(jì)中, 應(yīng)對(duì)信號(hào)的建立和保持時(shí)間做充分考慮, 盡量避免在數(shù)據(jù)建立時(shí)間內(nèi)或其附近讀取數(shù)據(jù)。 對(duì)于級(jí)聯(lián)的功能模塊或者數(shù)字邏輯器件, 后一模塊或器件的工作時(shí)鐘一般取前一模塊或器件工作時(shí)鐘的反相信號(hào), 這樣就可以保證時(shí)鐘的邊沿位于數(shù)據(jù)的保持時(shí)間內(nèi)。 當(dāng)數(shù)據(jù)剛好在時(shí)鐘邊緣前后發(fā)生變化時(shí),此時(shí)的時(shí)鐘不知道時(shí)輸入邊沿前的數(shù)據(jù)還是邊沿后的數(shù)據(jù),完全取決于觸發(fā)器內(nèi)部的,這樣會(huì)導(dǎo)致亞穩(wěn)定性。如圖5-2,,圖5-2 違反建立和保持時(shí)間原則,解
12、決辦法:將非同源時(shí)鐘同步化 圖5-3 非同源時(shí)鐘同步化,時(shí)序波形圖,冒險(xiǎn)現(xiàn)象 1)定義:數(shù)字電路設(shè)計(jì)中,當(dāng)多路信號(hào)的電平值發(fā)生變化時(shí), 在信號(hào)變化的瞬間, 組合邏輯的輸出狀態(tài)不確定, 往往會(huì)出現(xiàn)一些不正確的尖峰信號(hào), 這些尖峰信號(hào)稱為“毛刺”。 如果一個(gè)組合邏輯電路中有“毛刺”出現(xiàn), 就說明該電路存在“冒險(xiǎn)”。,2 )原因:(1)由
13、于延時(shí)所產(chǎn)生。 延時(shí)的大小與連線的長短和邏輯單元的數(shù)目有關(guān), 同時(shí)還受器件的制造工藝、 工作電壓、 溫度等條件的影響。(2)信號(hào)的高低電平轉(zhuǎn)換也需要一定的過渡時(shí)間。,3冒險(xiǎn)的缺點(diǎn): 影響到邏輯電路的穩(wěn)定性。時(shí)鐘端口,清零和置位端口對(duì)毛刺都十分敏感,任何一個(gè)毛刺都可能會(huì)使系統(tǒng)出錯(cuò)。,4 避免毛刺的方法:(1)增加冗余項(xiàng)。(2)采用格雷碼計(jì)數(shù)器(3)采用同步電路(4)采用D觸發(fā)器輸出(5)采用脈沖在數(shù)據(jù)的保持時(shí)間內(nèi)采樣,采
14、用脈沖在數(shù)據(jù)的保持時(shí)間內(nèi)采樣,,,消除毛刺方法-:利用采樣信號(hào)及其波形,利用觸發(fā)器,消除毛刺方法二:利用觸發(fā)器及其波形,消除毛刺方法三:利用RC濾波器濾除毛刺,1. 在同步電路設(shè)計(jì)中, 如何使用時(shí)鐘(clock)使能信號(hào)的問題 所謂同步電路, 就是指電路在時(shí)鐘信號(hào)有效時(shí), 來捕捉電路的輸入信號(hào)和輸出信號(hào), 規(guī)范電路的狀態(tài)變化。,因此, 在同步電路設(shè)計(jì)中, 時(shí)鐘信號(hào)是至關(guān)重要的。 但是, 直接用門控時(shí)鐘來控制電路的狀
15、態(tài)變化, 由于各種原因造成的時(shí)鐘信號(hào)的毛刺將直接影響電路的正常工作, 特別對(duì)于高速FPGA的結(jié)構(gòu), 會(huì)影響電路邏輯的正常響應(yīng)。 因此, 在電路結(jié)構(gòu)中, 增加時(shí)鐘使能信號(hào),無論對(duì)于防止時(shí)鐘信號(hào)隨機(jī)毛刺的影響, 還是嚴(yán)格規(guī)范電路邏輯的時(shí)序?qū)?yīng), 都是非常重要的。 圖 5 - 4 所示為時(shí)鐘使能信號(hào)CE的電路實(shí)現(xiàn)。,圖 5 - 4 時(shí)鐘使能信號(hào)電路,有的電路采用圖 5 - 5(a)所示的對(duì)觸發(fā)器增添CE腳的形式, 而有的設(shè)計(jì)則采用圖5 -
16、5(b)所示的附加邏輯控制端CE的方式來實(shí)現(xiàn)CE的控制功能。 不管采用何種形式, 如果在電路中不使用CE信號(hào)時(shí), 則要將CE端接至高電平。 同樣, 當(dāng)在設(shè)計(jì)中需要多重時(shí)鐘時(shí), 時(shí)鐘使能也可用來維護(hù)電路狀態(tài)變化的同步性。 有時(shí), 時(shí)鐘使能信號(hào)可由圖 5 - 4 的電路來實(shí)現(xiàn)。,圖 5-5 在電路中加入CE信號(hào)的形式 (a) 增添具有CE腳的觸發(fā)器; (b) 附加邏輯控制端CE,2. 在同步電路設(shè)計(jì)中, 如
17、何合理布置時(shí)鐘分配的問題 同步電路中的多時(shí)鐘產(chǎn)生, 往往采用時(shí)鐘分配電路來實(shí)現(xiàn)。 這時(shí), 首先要關(guān)注的是如何降低分配時(shí)鐘之間的時(shí)鐘偏移問題。 對(duì)于如圖 5 - 6所示的時(shí)鐘分配電路, 為了減少時(shí)鐘CLK1和CLK2之間的時(shí)鐘偏移,可采用額外的緩沖器BUFG來降低CLK2的時(shí)鐘偏移。,但是, 這樣的電路并不能完全抑制時(shí)鐘波形的變形。 若需完全抑制CLK1和CLK2-CE之間的時(shí)鐘偏移, 可嘗試如圖 5 - 7所示的
18、電路。 該電路中的BUFG為可選緩沖器。 當(dāng)CLK2-CE信號(hào)是高扇出時(shí), 可省略BUFG緩沖器。,圖 5 - 6 不好的時(shí)鐘分配電路,圖 5 - 7 好的時(shí)鐘分配電路,3. 在同步電路設(shè)計(jì)中應(yīng)嚴(yán)格避免時(shí)鐘信號(hào)(CLK)、置位(Set)/復(fù)位(Reset)信號(hào)的毛刺 由于亞微米技術(shù)的成熟, 目前的FPGA中的觸發(fā)器的響應(yīng)速度越來越快, 其可以響應(yīng)非常窄的時(shí)鐘脈沖。 因此, 往往觸發(fā)器會(huì)響應(yīng)時(shí)鐘信號(hào)中的毛刺, 導(dǎo)致
19、邏輯發(fā)生誤動(dòng)作。,圖 5 - 8 門控時(shí)鐘的毛刺產(chǎn)生原理,為了避免時(shí)鐘等信號(hào)的毛刺, 在設(shè)計(jì)中應(yīng)嚴(yán)格注意不能采用所謂的“門控時(shí)鐘”, 即由組合邏輯輸出直接作為時(shí)鐘的現(xiàn)象發(fā)生。 如圖 5 - 8所示, 如果與門的MSB輸入連線較短, 則在計(jì)數(shù)器輸出信號(hào)“0111→1000”的瞬變, 在與門輸入端就可以瞬間出現(xiàn) “0111→1111→1000”的過程。 這個(gè) “1111”的出現(xiàn), 將在觸發(fā)器FF的時(shí)鐘輸入端形成毛刺。,為了防止這類情況的發(fā)生
20、, 建議采用如圖 5 - 9所示的電路, 這樣便可以實(shí)現(xiàn)相同的邏輯功能, 卻不會(huì)導(dǎo)致時(shí)鐘產(chǎn)生毛刺。 也可以有意識(shí)地對(duì)與門輸入端引入一個(gè)CLB時(shí)延, 如圖 5 - 10所示, 同樣可以將門控時(shí)鐘毛刺形成的可能性降低。,圖 5 - 9 避免時(shí)鐘毛刺的電路,圖 5 - 10 對(duì)與門引入CLB的時(shí)延,在同步電路中, 異步清除或預(yù)置輸入信號(hào)的毛刺, 同樣會(huì)導(dǎo)致電路邏輯出錯(cuò)。 如圖 5 - 11 所示中的“Reset”信號(hào), 雖然是可執(zhí)行一個(gè)異步
21、的清除, 但由于其信號(hào)源于一個(gè)組合邏輯與門, 其中可能的毛刺會(huì)使電路出錯(cuò)。,圖 5 - 11 異步“清除”電路,解決該問題的原則和上述克服時(shí)鐘信號(hào)毛刺的原則一樣, 如圖5 -12 所示。 可以采用方法A, 即采用同步化的Reset控制的觸發(fā)器FF; 也可采用方法B, 即在電路中將Reset信號(hào)改為時(shí)鐘使能信號(hào)來控制電路邏輯, 從而避免Reset信號(hào)中的毛刺。,圖 5 - 12 “清除”信號(hào)的同步化解決方案 (
22、a) 方法A; (b) 方法B,圖 5 - 12 “清除”信號(hào)的同步化解決方案 (a) 方法A; (b) 方法B,圖 5 - 13所示是對(duì)于具有異步復(fù)位的計(jì)數(shù)器, 如何避免復(fù)位信號(hào)中的毛刺影響的不同設(shè)計(jì)。 其中圖5 - 13(a)的設(shè)計(jì)不能克服異步復(fù)位信號(hào)中毛刺的影響, 而圖5 -13(b)的設(shè)計(jì)則可有效地克服異步復(fù)位信號(hào)中毛刺的影響。,圖 5 - 13 避免Set/Reset信號(hào)中
23、毛刺的影響的分析 (a) 不好的設(shè)計(jì); (b) 好的設(shè)計(jì),4. 在同步電路設(shè)計(jì)中, 時(shí)鐘偏移及不確定信號(hào)電平的影響 時(shí)序電路在FPGA中實(shí)現(xiàn)時(shí), 由于各部分連線長短不一致, 導(dǎo)致其雖然多個(gè)觸發(fā)器共用一個(gè)時(shí)鐘信號(hào), 但觸發(fā)器時(shí)鐘端的信號(hào)延時(shí)并不相同, 信號(hào)會(huì)發(fā)生不同的畸變, 構(gòu)成時(shí)鐘信號(hào)偏移。,如圖 5 - 14所示, 圖5 -14(a)中標(biāo)出時(shí)鐘信號(hào)的不同時(shí)延, 對(duì)照?qǐng)D5-14(c
24、)的信號(hào)波形, 可以分析, 由于時(shí)鐘信號(hào)到達(dá)觸發(fā)器的端口處的信號(hào)發(fā)生畸變和不同的時(shí)延, 該移位寄存器將不能正常工作。 在同步電路的設(shè)計(jì)實(shí)現(xiàn)中, 我們還應(yīng)注意信號(hào)建立和保持時(shí)間的需要, 特別是觸發(fā)器輸入信號(hào)的變化不能距離時(shí)鐘信號(hào)邊緣太近, 如圖 5 - 15所示。,圖 5 - 14 同步電路中時(shí)鐘偏移的影響,圖 5 - 15 時(shí)鐘信號(hào)建立與保持時(shí)間的影響,如果兩者太接近的話, 觸發(fā)器輸出將會(huì)形成如下3種情況:
25、 (1) 維護(hù)輸入D的原值; (2) 改變成輸入D的新值; (3) 輸出是不確定的。,圖 5 - 16 異步輸入信號(hào)同步化電路,5.1.3 同步邏輯電路設(shè)計(jì)中的基本技巧 1. 對(duì)于輸入信號(hào)是異步的情況 在同步邏輯電路設(shè)計(jì)中, 對(duì)于異步的輸入信號(hào), 首先要做的工作是同步異步信號(hào)。 圖 5 - 16所示為異步輸入信號(hào)同步化的電路舉例。
26、 2. 兩個(gè)獨(dú)立時(shí)鐘的情況 在同步邏輯電路的系統(tǒng)中, 如果存在兩個(gè)時(shí)鐘信號(hào), 且對(duì)于包容于CLK1和CLK2之間的信號(hào), 需要和CLK2信號(hào)同步。,圖 5 - 17 雙CLK的電路,對(duì)于如圖 5 - 17所示電路, 前后兩個(gè)觸發(fā)器之間為某一邏輯功能, CLK1和CLK2分別是前后兩個(gè)觸發(fā)器的時(shí)鐘信號(hào)。 這時(shí)需要分兩種情況考慮: ·CLK1慢于CLK2(CLK1的
27、脈寬大于CLK2); ·CLK1快于CLK2(CLK1的脈寬小于CLK2)。,對(duì)于CLK1的脈寬大于CLK2的情況, 一般要求輸入信號(hào)脈沖至少為1個(gè)CLK2的周期以上(慢于CLK2); 同時(shí), 在電路中需要附加一個(gè)觸發(fā)器, 以防止出現(xiàn)不確定態(tài), 如圖 5 - 18(a)所示, FF1是一個(gè)用于防止不確定態(tài)出現(xiàn)的觸發(fā)器, FF2輸出被同步于CLK2。 圖5 -18(b)為該電路各信
28、號(hào)的波形示意。,圖 5 - 18 附加觸發(fā)器以防止出現(xiàn)不確定態(tài) (a) 電路圖; (b) 電路波形示意,圖 5 - 19 電路原理和波形示意,對(duì)于CLK1的脈寬小于CLK2時(shí), 輸入脈沖寬度也許會(huì)小于1個(gè)時(shí)鐘周期寬度。 同樣, 如圖 5 - 19 所示, 需要再增加一個(gè)觸發(fā)器, 以防止出現(xiàn)不確定狀態(tài), 且輸出信號(hào)仍需同步于CLK2。 雙時(shí)鐘電路可用于異步輸入信號(hào)的同步化實(shí)現(xiàn)中。 當(dāng)輸入脈沖寬于1個(gè)時(shí)鐘周期時(shí)
29、, 可使用CLK1慢于CLK2的信號(hào)同步化電路(如圖 5 - 19所示)。 同樣, 當(dāng)輸入脈沖寬度小于1個(gè)時(shí)鐘周期時(shí), 需要使用CLK1快于CLK2的信號(hào)同步化電路。,5.2 多級(jí)邏輯的設(shè)計(jì)技巧,FPGA主要由可編程邏輯單元模塊(CLB)、 可編程輸入/輸出模塊(IOB)和可編程內(nèi)連線(PI) 3 種基本資源構(gòu)成。 因此, 在采用FPGA來實(shí)現(xiàn)電路邏輯時(shí), 其基本的時(shí)延來源于這3種基本資源。,其中, CLB和IOB內(nèi)的邏輯資源雖會(huì)隨不同
30、的邏輯需求而實(shí)現(xiàn)不同的重構(gòu), 但其單元時(shí)延的離散性不大。 而PI則根據(jù)不同的邏輯需求及不同的連線要求, 使各處連線的延時(shí)差異會(huì)非常大。 因此, 對(duì)FPGA實(shí)現(xiàn)中的延時(shí)分析, 需要根據(jù)具體情況, 具體地由這些基本時(shí)延的疊加來加以分析。,5.2.1 FPGA實(shí)現(xiàn)中的基本時(shí)延信號(hào)的延時(shí) 1定義: 由于信號(hào)傳輸路徑必須通過電晶體開關(guān), 因此產(chǎn)生連線延時(shí)。另外,信號(hào)每通過一個(gè)邏輯單元, 就會(huì)產(chǎn)生一定的延時(shí)。2 影響
31、因素:延時(shí)的大小除了受路徑長短的影響外, 還受器件內(nèi)部結(jié)構(gòu)特點(diǎn)、 制造工藝、 工作溫度、 工作電壓等條件的影響。,信號(hào)的延時(shí),實(shí)際上, 在采用FPGA來實(shí)現(xiàn)同步邏輯電路時(shí), 我們可以利用器件內(nèi)部資源的某些特征參數(shù)來預(yù)測電路設(shè)計(jì)的性能指標(biāo)或評(píng)估電路性能是否優(yōu)化。 例如: 可以采用內(nèi)部單元模塊的時(shí)延作為評(píng)估網(wǎng)絡(luò)時(shí)延的基本依據(jù); 也可以反過來, 采用預(yù)期的時(shí)鐘頻率來決定電路設(shè)計(jì)中允許使用的CLB的串級(jí)數(shù)。 通過功能需求比較和設(shè)計(jì)修正, 來使設(shè)
32、計(jì)達(dá)到所需求的指標(biāo)。,例如: 如果需要在XC4000XL-3的芯片中實(shí)現(xiàn)50 MHz時(shí)鐘頻率, 由于系統(tǒng)時(shí)鐘周期為20 ns, 如圖 5 - 20所示, 1級(jí)CLB的延時(shí)約8 ns(包括tCO+tNET+tSU), 還有時(shí)延冗余量12 ns。,圖 5 - 20 多級(jí)CLB的時(shí)延模型,考慮中間每個(gè)附加CLB的組合邏輯延時(shí)為6 ns(tPD+tNET), 則該系統(tǒng)中可串聯(lián)兩級(jí)內(nèi)嵌附加CLB組合邏輯。 那么,
33、 如圖 5 - 21所示的的三級(jí)串聯(lián)邏輯, 其中總的時(shí)延為多少? 最高能實(shí)現(xiàn)多高的系統(tǒng)頻率呢?,圖 5-21 內(nèi)嵌三級(jí)串聯(lián)邏輯的時(shí)延模型,稍作分析, 其總的延時(shí)是由串聯(lián)于其中的布線延時(shí)tNET和單級(jí)CLB組合延時(shí)tCLB1、 tCLB2、 tCLB3, 以及前后兩個(gè)觸發(fā)器的延時(shí)tCK0和tSU相疊加而成, 即 tTOTA1=tCK0+tNET+tCLB1+tNET1+tCLB2
34、 +tNET2+tCLB3+tNET3+tSU 考慮目標(biāo)器件采用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)延時(shí)為1
35、0.7 ns, 換算成系統(tǒng)頻率約為93 MHz。,5.2.2 流水線的基本概念 為了提高多級(jí)邏輯的系統(tǒng)速度, 在FPGA的邏輯實(shí)現(xiàn)中, 同樣可引入“流水線”的概念。 流水線設(shè)計(jì)的概念是把在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行的邏輯操作分成幾步較小的操作, 并在多個(gè)較高速的時(shí)鐘內(nèi)完成。,圖 5 - 22 的數(shù)據(jù)通路中的邏輯被分為3小部分。 如果它的tPD 為x, 則該電路的最高時(shí)鐘頻率為1/x。 而在圖5 -22(b)中, 假設(shè)在理
36、想情況下每部分的tPD為x/3, 則它的時(shí)鐘頻率可提高到原來的3倍。 當(dāng)然, 我們在計(jì)算中并沒有包括電路中寄存器的時(shí)鐘——輸出時(shí)延和信號(hào)建立時(shí)間, 因此實(shí)際的延遲應(yīng)比x/3稍大。 在忽略它們的情況下, 我們可以看到, 流水線技術(shù)可以用來提高系統(tǒng)的數(shù)據(jù)流量, 也就是在單位時(shí)間內(nèi)所處理的數(shù)據(jù)量。 但是, 采用這種方法的代價(jià)是輸出信號(hào)將相對(duì)于輸入滯后3個(gè)時(shí)鐘周期。 因此必須根據(jù)這種情況對(duì)設(shè)計(jì)進(jìn)行修改。,圖 5 - 22 流水線技術(shù)的概念,總之
37、, 流水線技術(shù)在提高系統(tǒng)處理速度的同時(shí)也造成了輸出滯后, 并且還需要額外的寄存器資源。 由于大多數(shù)FPGA器件的每個(gè)元胞中都有寄存器, 因此便于采用流水線設(shè)計(jì); 相比之下, 在CPLD中每個(gè)寄存器對(duì)應(yīng)的組合邏輯資源較多, 因此其一級(jí)邏輯的規(guī)模要比FPGA大得多, 而這意味著在相同的時(shí)鐘周期內(nèi), 相對(duì)FPGA的元胞, 它可以實(shí)現(xiàn)更復(fù)雜的邏輯。 所以實(shí)際上往往沒有必要在CPLD中應(yīng)用流水線技術(shù)。,5.2.3 應(yīng)用流水線的設(shè)計(jì)
38、 采用流水線技術(shù), 是實(shí)現(xiàn)多級(jí)邏輯的系統(tǒng)時(shí)鐘提升的有效途徑。 其實(shí)際的狀態(tài)是, 采用了流水線結(jié)構(gòu), 該邏輯的第1個(gè)輸出有效將被延時(shí), 這樣延時(shí)的時(shí)間取決于流水線的級(jí)數(shù)。 因?yàn)榱魉€的每一級(jí)都將附加一個(gè)時(shí)鐘的延時(shí)。 圖 5 - 23所示是一個(gè)原型電路實(shí)例, 在觸發(fā)器Source-FFS和Dest-FF之間存在兩個(gè)組合邏輯級(jí), 實(shí)際的系統(tǒng)工作頻率為30 MHz。,圖 5 - 23 串聯(lián)兩級(jí)組合邏輯的原型電
39、路,將圖 5 - 23所示電路改為流水線的結(jié)構(gòu), 如圖 5 - 24 所示, 即在兩級(jí)串行組合邏輯之間嵌入觸發(fā)器PIPE-FFS。 由此, 系統(tǒng)的最大工作頻率可增至60 MHz。,圖 5 - 24 采用流水線技術(shù)的改進(jìn)電路,利用流水線技術(shù), 可以進(jìn)一步提高大型比較器的速度。 例如在加入了前面講的中間與門之后, 再將其輸出到一個(gè)寄存器, 然后利用該寄存器的輸出進(jìn)行低位信號(hào)的比較。 為了保持邏輯的一致性, 在電路的其余部分也需要加入流水線寄
40、存器, 如圖 5 - 25 所示。 流水線技術(shù)也經(jīng)常用于計(jì)數(shù)器的設(shè)計(jì)之中。 例如, 二進(jìn)制計(jì)數(shù)器有著直觀的計(jì)數(shù)次序, 但由于二進(jìn)制譯碼需要寬位門來處理, 因此大容量二進(jìn)制計(jì)數(shù)器速度較慢。 這就需要采用流水線的結(jié)構(gòu)來改進(jìn)。,圖 5 - 25 流水線式的數(shù)值比較器,5.3 數(shù)字系統(tǒng)設(shè)計(jì)中的可編程器件的選擇方案,在實(shí)際的數(shù)字系統(tǒng)設(shè)計(jì)中, 可編程器件的選擇方案對(duì)系統(tǒng)實(shí)現(xiàn)的性能具有重要的影響。因?yàn)椴煌瑥S商的可編程器件結(jié)構(gòu)不盡相同、 延時(shí)特性不同、
41、 開發(fā)軟件不同, 同時(shí), 這些可編程器件也沒有像通用邏輯器件那樣采用相同的引腳標(biāo)準(zhǔn), 所以, 不同廠商的可編程器件不能完全兼容, 不能相互替換。 因此, 設(shè)計(jì)者在可編程器件的選擇上需要謹(jǐn)慎。 歸納起來, 基本的選擇原則有如下幾種。,5.3.1 從系統(tǒng)設(shè)計(jì)角度的目標(biāo)器件選擇原則 (1) 電磁兼容設(shè)計(jì)的原則, 即對(duì)于中低速電路的系統(tǒng)設(shè)計(jì), 盡量不要采用高速器件。 因?yàn)楦咚倨骷粌H價(jià)格高, 而且由于其速度高, 反會(huì)引發(fā)或增
42、加電磁干擾, 使系統(tǒng)工作難以穩(wěn)定。 (2) 主流芯片原則。 公開推出各種型號(hào)的芯片, 但由于生產(chǎn)或推廣策略的原因, 器件的價(jià)格往往并不是完全和器件的容量、 速度成比例關(guān)系, 而是和該器件是否是目前的主流推廣器件有關(guān)。,(3) 多片系統(tǒng)原則。 對(duì)于有的應(yīng)用設(shè)計(jì), 不要一味追求單片化。 如果系統(tǒng)的局部適用于CPLD, 另一局部適用于FPGA, 則完全可采用多器件的復(fù)合
43、系統(tǒng)結(jié)構(gòu), 既有利于降低成本, 又能加快設(shè)計(jì)進(jìn)程, 提供系統(tǒng)的穩(wěn)定性。 器件的選擇標(biāo)準(zhǔn)可以分如下幾條: 第一, 盡可能選擇同一家廠商的可編程器件, 以便對(duì)同一個(gè)研發(fā)團(tuán)隊(duì)的設(shè)計(jì)者進(jìn)行開發(fā)軟件操作的培訓(xùn), 在開發(fā)過程中吸取教訓(xùn), 交流經(jīng)驗(yàn), 提高設(shè)計(jì)水平。,第二, 對(duì)于經(jīng)驗(yàn)不足的設(shè)計(jì)者, 先盡可能減小大規(guī)??删幊唐骷倪x擇, 采用多片中小規(guī)模的FPGA和CPLD結(jié)合使用的方案, 即多片F(xiàn)PGA(或CPLD)方案
44、, 實(shí)現(xiàn)各個(gè)子系統(tǒng)的功能驗(yàn)證。 待功能驗(yàn)證完成后, 再提高集成度, 采用大規(guī)模的FPGA芯片, 即單片F(xiàn)PGA方案。,第三, 利用FPGA芯片資源豐富的特點(diǎn), 完成各種算法、 運(yùn)算、 控制、 時(shí)序邏輯等功能, 提高集成度; 利用CPLD芯片速度快、 保密性好的特點(diǎn), 完成快速譯碼、 控制、 加密等邏輯功能。 在一個(gè)復(fù)雜系統(tǒng)確定總體方案時(shí), 總體設(shè)計(jì)者就應(yīng)該根據(jù)系統(tǒng)復(fù)雜度、 參研人員的研發(fā)能力、 對(duì)系統(tǒng)電路要求理
45、解的準(zhǔn)確程度、 對(duì)FPGA(或CPLD)開發(fā)工具掌握程度、 FPGA(或CPLD)器件的性能價(jià)格比、 產(chǎn)品研制進(jìn)度以及經(jīng)費(fèi)等諸多因素, 確定采用單片F(xiàn)PGA(或CPLD)方案, 還是多片F(xiàn)PGA(或CPLD)方案。,5.3.2 從器件資源角度的目標(biāo)器件選擇原則 當(dāng)你進(jìn)行任一個(gè)數(shù)字系統(tǒng)的FPGA設(shè)計(jì)與實(shí)現(xiàn)中, 也可以根據(jù)系統(tǒng)的要求, 從器件資源角度來考慮, 進(jìn)行器件的選擇。 往往可從如下3方面來考慮。
46、 1. 器件的邏輯資源和目標(biāo)系統(tǒng)的邏輯需求相匹配 所謂器件的邏輯資源, 是指器件內(nèi)陳列排布的觸發(fā)器資源、 組合邏輯資源、 內(nèi)嵌存儲(chǔ)單元資源、 三態(tài)緩沖器資源等, 當(dāng)然也包括各種布線資源。 但是, 由于器件內(nèi)布線資源的限制和邏輯單元內(nèi)可編程選擇開關(guān)的限制, 很難使器件內(nèi)的邏輯資源實(shí)現(xiàn)100%的利用。,因此, 根據(jù)系統(tǒng)的邏輯資源需求評(píng)估器件的選擇, 是衡量設(shè)計(jì)者設(shè)計(jì)經(jīng)驗(yàn)的重要指標(biāo), 是降低成本的主要條件。
47、通常, 在目標(biāo)器件的選擇上采用特征單元評(píng)估法。 所謂特征單元評(píng)估法, 其要點(diǎn)在于要消化和理解所設(shè)計(jì)的數(shù)字系統(tǒng), 整理出特征邏輯單元的數(shù)目要求。 而特征邏輯單元, 根據(jù)數(shù)字系統(tǒng)的功能特征, 可以是觸發(fā)器, 也可以是組合門、 RAM存儲(chǔ)單元或三態(tài)緩沖器。,總之, 根據(jù)設(shè)計(jì)要求來分析: 在必須集成入芯片的邏輯單元之中, 哪一種邏輯單元是受到芯片資源限制的主要因素。 如果該電路所使用的觸發(fā)器數(shù)目較多, 則可將觸發(fā)器作為特征單元來選擇相應(yīng)的器件;
48、 如果三態(tài)緩沖器的總線結(jié)構(gòu)是電路的主要特征, 則要以三態(tài)緩沖器作為特征單元來分析選擇目標(biāo)器件。 選定特征單元, 并分析特征單元的總數(shù)后, 再查找相應(yīng)的FPGA器件數(shù)據(jù)手冊, 選擇能滿足其特征單元的數(shù)量要求、 速度性能要求的適應(yīng)的器件作為數(shù)字系統(tǒng)的目標(biāo)載體。,由于數(shù)字系統(tǒng)還會(huì)受到布線資源和系統(tǒng)速度要求的限制, 故選擇器件時(shí), 要留有邏輯資源冗余量。 一般根據(jù)其他附屬邏輯資源和要求的苛求程度, 選擇能提供特性邏輯單
49、元數(shù)為系統(tǒng)所需的該邏輯單元數(shù)的1.1~1.3倍的器件為宜。,2. 器件的I/O腳的數(shù)目需滿足目標(biāo)系統(tǒng)的要求 所選擇的目標(biāo)器件, 僅在邏輯單元的資源上符合系統(tǒng)要求還是不夠的。 器件的I/O腳的數(shù)目能否滿足系統(tǒng)的輸入/輸出器的數(shù)目要求, 是器件選擇上的另一個(gè)基本要求。 對(duì)于一個(gè)FPGA器件, 其管腳的組成主要分為三類。 其一是專用功能腳, 主要用于電源(VCC)、 接地(VSS)、 編程模
50、式定義(M0、 M1、 M2)等非用戶功能。 這些管腳是提供器件正常工作的基本配置, 不能用于器件的用戶功能的定義。,其二是用戶功能腳, 專門用于目標(biāo)數(shù)字系統(tǒng)的輸入/輸出接口定義。 對(duì)于不同的器件, 其接腳特征的參數(shù)可編程定義的范圍也不一樣。 一般可提供CMOS電平或TTL電平接口; 有的可定義為直接輸入/輸出或寄存輸入/輸出; 有的有上拉電阻、 下拉電阻定義等。 其三是用戶功能/專用功能雙功能腳。 這類接腳可定義為用戶接口。 主要
51、注意兩點(diǎn): 第一, 在器件加電時(shí)的短時(shí)間內(nèi), 器件處于內(nèi)部功能的下載定義、 重構(gòu)狀態(tài)時(shí), 該腳屬專用功能腳, 處于專用功能所需的邏輯狀態(tài);第二, 用戶系統(tǒng)數(shù)據(jù)下載完成后, 該腳才轉(zhuǎn)為用戶功能。 因此, 為了使兩種不同的邏輯功能狀態(tài)需求互不干擾, 需要加一上接電阻或下拉電阻于該接腳。,3. 系統(tǒng)的時(shí)鐘頻率要滿足器件元胞、 布線的時(shí)延限制要求 當(dāng)系統(tǒng)的時(shí)鐘頻率決定以后, 考慮到采用FPGA來實(shí)現(xiàn)系統(tǒng)邏輯時(shí), 如果其內(nèi)
52、部邏輯單元級(jí)聯(lián)深度和布線時(shí)延(見5.2.1節(jié)舉例)接近或等于或大于系統(tǒng)時(shí)鐘的周期, 則采用該FPGA來實(shí)現(xiàn)的系統(tǒng)就很難保證有效地實(shí)現(xiàn)原系統(tǒng)規(guī)定的邏輯功能。 所以解決的方法有:,(1) 選擇具有更高速度的器件替代原器件, 以滿足器件內(nèi)部邏輯單元級(jí)聯(lián)深度和布線所產(chǎn)生的時(shí)延小于系統(tǒng)的時(shí)鐘周期時(shí)間的要求。 (2) 采用流水線等技術(shù)措施, 以滿足系統(tǒng)的時(shí)序和時(shí)延要求。,5.3.3 從器件管腳來確定方案
53、 在FPGA的設(shè)計(jì)實(shí)現(xiàn)中, 是否需要限定系統(tǒng)的I/O接腳, 是設(shè)計(jì)中值得探究的問題。 原則上來講, 如果設(shè)計(jì)者對(duì)用戶系統(tǒng)的各輸入/輸出端的FPGA接腳均給予限定, 那么, 在系統(tǒng)進(jìn)行FPGA實(shí)現(xiàn)的布局布線時(shí), 無形中就受到了較多的約束, 就有可能對(duì)系統(tǒng)的時(shí)延特性和系統(tǒng)的芯片面積的有效利用構(gòu)成負(fù)面影響。,所以, 在用戶系統(tǒng)的FPGA設(shè)計(jì)實(shí)現(xiàn)中, 一般的規(guī)則是: (1) 盡量避免人為固定I/O接腳, 除非是多次實(shí)現(xiàn)過
54、程中可能重復(fù)存在的不固定I/O接腳。 設(shè)計(jì)實(shí)現(xiàn)的工具在布局布線時(shí), 可根據(jù)系統(tǒng)需求和器件邏輯資源來實(shí)現(xiàn)最大自由度的規(guī)劃。 (2) 應(yīng)盡量避免將相關(guān)的I/O接腳集中固定于相互靠近的位置。 因?yàn)檫@不利于FPGA內(nèi)部布線資源的均衡使用。 所以, 實(shí)際中應(yīng)該嘗試適當(dāng)調(diào)整I/O腳, 以利于資源利用。,(3) 根據(jù)需要, 適當(dāng)考慮使用或禁止雙功能配置腳。 如果系統(tǒng)要求較多的I/O接口, 則應(yīng)采用雙功能配置腳, 并注意對(duì)接腳加接
55、上拉或下拉電阻。 例如: 在Xilinx的SRAM FPGA器件中, 其M2腳是一個(gè)雙功能腳。 在編程時(shí), M2腳是器件配置模式定義腳, 和M0、 M1配合使用, 定義器件編程時(shí)的配置模式。,當(dāng)器件配置數(shù)據(jù)下載完成后, M2 是一個(gè)用戶腳。 因此, 該腳為了在硬件連接上同時(shí)滿足配置模式和用戶I/O功能的邏輯需求, 必須加接一上拉或下拉電阻(如圖5-26所示)。 當(dāng)器件為串行主動(dòng)模式時(shí), M2 處需加一上拉電阻R
56、UP。 同樣, 當(dāng)器件為串行主動(dòng)模式時(shí), M2 處需加一下拉電阻RDOWN。 試想, 如果不加上拉或下拉電阻, 為了滿足配置模式的電平需求, 則必須將M2 腳上接+5 V電源或接地, 這樣會(huì)將該腳鎖定在高電平或低電平, 于是, 該腳的用戶I/O功能將無法實(shí)現(xiàn)。,圖 5 - 26 FPGA為串行主動(dòng)模式時(shí), M2的連接方式,(4) 在FPGA設(shè)計(jì)實(shí)現(xiàn)中, 應(yīng)該注意到I/O接腳的固定一般有先從左到右, 再從上到下的設(shè)定習(xí)慣; 并且, 應(yīng)根據(jù)
57、邏輯容量的限制, 來決定輸入和輸出接腳相互分隔的距離。,5.4 數(shù)字系統(tǒng)設(shè)計(jì)中的低功耗設(shè)計(jì)原則,低功耗設(shè)計(jì)就像低的芯片操作溫度、 低的芯片封裝價(jià)格一樣, 能給芯片帶來很多額外的益處。 為了使可編程邏輯的現(xiàn)場集成設(shè)計(jì)的產(chǎn)品更具競爭力, 設(shè)計(jì)者往往需要對(duì)產(chǎn)品的性能、 功耗等進(jìn)行綜合考慮。 可編程芯片的功耗包括靜態(tài)功耗和動(dòng)態(tài)功耗兩部分。 靜態(tài)功耗主要是可編程芯片在非激活狀態(tài)下由漏電流引起的。,動(dòng)態(tài)功耗主要是由于可編程芯片在激活狀態(tài)下由芯片內(nèi)部
58、節(jié)點(diǎn)或輸入、 輸出引腳上的電平轉(zhuǎn)換引起的。 可編程器件的功耗主要由以下因素決定: 芯片的供電電壓、 器件的結(jié)構(gòu)、 資源的利用率(互連線、 邏輯單元和I/O單元使用的數(shù)量)、 時(shí)鐘頻率、 信號(hào)翻轉(zhuǎn)速率、 輸出引腳的數(shù)量以及輸出驅(qū)動(dòng)負(fù)載的大小等。,現(xiàn)場集成設(shè)計(jì)中功耗優(yōu)化的方法和技巧多種多樣, 基本可以概括為兩種思路。 一種是降低電源電壓。 由于功耗與電壓的二次方成正比, 因此, 這樣做能夠顯著降低功耗。 該方法雖然
59、直觀, 實(shí)現(xiàn)卻很復(fù)雜, 尤其是對(duì)于需要兼容老機(jī)型的升級(jí)產(chǎn)品, 采用新的電壓標(biāo)準(zhǔn), 同時(shí)必須兼容現(xiàn)有電子系統(tǒng)的電壓標(biāo)準(zhǔn)是一件很困難的事情。 但是, 對(duì)于一個(gè)全新的產(chǎn)品研制, 應(yīng)該盡可能根據(jù)系統(tǒng)性能指標(biāo)要求, 選擇較低的電壓標(biāo)準(zhǔn), 實(shí)現(xiàn)低功耗設(shè)計(jì)。,另一種是利用數(shù)字集成電路常用的低功耗設(shè)計(jì)原理, 在電路設(shè)計(jì)過程中, 通過減小節(jié)點(diǎn)的電平轉(zhuǎn)換次數(shù)和節(jié)點(diǎn)的負(fù)載電容之積, 即減少節(jié)點(diǎn)的有效轉(zhuǎn)換電容來達(dá)到減小功耗的目的。 這種思路在具體運(yùn)用中可以通過
60、各種方法來實(shí)現(xiàn)。 例如, 在行為級(jí)設(shè)計(jì)上選擇合適的算法, 在結(jié)構(gòu)級(jí)上選擇合適的結(jié)構(gòu)和劃分, 在門級(jí)上選擇合適的邏輯結(jié)構(gòu)。 以下是幾種常用的方法。,(1) 優(yōu)化操作。 對(duì)于一個(gè)給定的功能, 通過選擇合適的算法以減小操作的次數(shù), 可以有效地降低節(jié)點(diǎn)的電平轉(zhuǎn)換次數(shù)。 例如, 對(duì)于和常數(shù)相乘的操作, 采用變換操作的方法, 將乘法操作變換為加法操作和移位操作。 同時(shí), 盡量減少常數(shù)中1的個(gè)數(shù), 這樣可以減少加法操作和移位操作的次數(shù)。 公因式提取
61、法也可以減少操作次數(shù), 在這里, 具有相同公因式的那部分操作將被共享。 還可以利用數(shù)據(jù)之間的相關(guān)性, 采用重新安排操作順序的方法減少數(shù)據(jù)通道的電平轉(zhuǎn)換次數(shù)。,當(dāng)總線上的數(shù)據(jù)與寄存器相關(guān)時(shí),經(jīng)常使用片選或時(shí)鐘使能邏輯來控制寄存器的使能。進(jìn)一步來說,盡早對(duì)該邏輯進(jìn)行“數(shù)據(jù)使能”,以阻止數(shù)據(jù)總線與時(shí)鐘使能寄存器組合邏輯之間不必要的轉(zhuǎn)換,如圖所示。紅色波形表示原設(shè)計(jì);綠色波形表示修改后的設(shè)計(jì)。,另一種選擇是在電路板上而不是在芯片上進(jìn)行這種“數(shù)據(jù)
62、使能”。以盡可能減小處理器時(shí)鐘周期。此概念是使用CPLD從處理器卸載簡單任務(wù),以便使其更長時(shí)間地處于待機(jī)模式。,(2) 優(yōu)化控制。 從狀態(tài)轉(zhuǎn)換圖STG向邏輯結(jié)構(gòu)綜合的過程 中, 常采用變換的手段優(yōu)化出一個(gè)結(jié)構(gòu)。 這里的變換包括重新安排控制信號(hào), 將一個(gè)大的STG結(jié)構(gòu)分解成若干個(gè)小的STG, 減少STG中的狀態(tài)數(shù)以及對(duì)STG狀態(tài)的重新分配。 例如, 根據(jù)STG中狀態(tài)轉(zhuǎn)移概率的描述, 對(duì)于那些相互之間轉(zhuǎn)移概率大的狀態(tài), 編碼時(shí)盡量減小它們
63、之間的布爾距離。 這樣, 就可以減少狀態(tài)轉(zhuǎn)移時(shí)狀態(tài)線上的電平轉(zhuǎn)換, 從而減少有效轉(zhuǎn)換電容。,(3) 優(yōu)化編碼。 選擇恰當(dāng)?shù)木幋a也是一種行之有效的方法。根據(jù)預(yù)測的下一狀態(tài)條件列舉狀態(tài)機(jī),并選擇常態(tài)之間轉(zhuǎn)換位較少的狀態(tài)值。這樣,您就能夠盡可能減少狀態(tài)機(jī)網(wǎng)絡(luò)的轉(zhuǎn)換量(頻率)。確定常態(tài)轉(zhuǎn)換和選擇適當(dāng)?shù)臓顟B(tài)值,是降低功耗且對(duì)設(shè)計(jì)影響較小的一種簡單方法。編碼形式越簡單(一位有效編碼或格雷碼),使用的解碼邏輯也會(huì)越少。,例如, 對(duì)于數(shù)據(jù)通道, 可以
64、采用符號(hào)編碼代替補(bǔ)碼。 符號(hào)編碼采用一位代表變量的符號(hào), 其余各位代表變量的大小。 補(bǔ)碼對(duì)于0到-1的變化是所有位都翻轉(zhuǎn), 而符號(hào)編碼只有符號(hào)位翻轉(zhuǎn)。 對(duì)于地址線的編碼方法, 可以采用格雷碼等做地址編碼。 這里所要注意的一個(gè)問題是, 譯碼電路的功耗不能超過這些方法節(jié)省的功耗。,讓我們來看一個(gè)在狀態(tài)7和狀態(tài)8之間頻繁進(jìn)行狀態(tài)轉(zhuǎn)換的狀態(tài)機(jī)。如果您為該狀態(tài)機(jī)選擇二進(jìn)制編碼,將意味著對(duì)于每次狀態(tài)7和狀態(tài)8之間的狀態(tài)轉(zhuǎn)換,將有四位需要改變狀態(tài),如
65、表所示。如果狀態(tài)機(jī)采用格雷碼而不是二進(jìn)制碼來設(shè)計(jì),則這兩個(gè)狀態(tài)之間的轉(zhuǎn)移所需的邏輯轉(zhuǎn)換的數(shù)量將降至僅一位。另外,如果將狀態(tài)7和8分別編碼為0010和0011,也可以達(dá)到同樣的效果。,(4) 優(yōu)化結(jié)構(gòu)。 采用平行結(jié)構(gòu)和流水線結(jié)構(gòu)降低電路延時(shí)。 由于電路存在延時(shí), 將使某些節(jié)點(diǎn)出現(xiàn)毛刺, 從而使這些節(jié)點(diǎn)增加了額外的電平轉(zhuǎn)換, 這就是所謂的毛刺功耗。 為了減少毛刺功耗, 必須平衡各通路。 樹型結(jié)構(gòu)的電路比鏈型結(jié)構(gòu)的電路毛刺功耗小。 但是,
66、樹型結(jié)構(gòu)的電路所需寄存器的數(shù)目多, 寄存器的功耗增加。 因此, 在實(shí)際運(yùn)用中, 必須對(duì)雙方權(quán)衡考慮, 采用一種最優(yōu)結(jié)構(gòu), 使總功耗最小。 為了優(yōu)化面積和減少資源, 常用的一種方法是復(fù)用某些模塊, 但這樣會(huì)使有效轉(zhuǎn)換電容增加。 因此可采用對(duì)稱結(jié)構(gòu), 以面積為代價(jià), 達(dá)到優(yōu)化功耗的目的。,(5) 優(yōu)化邏輯。 在不改變電路功能的前提下, 變換寄存器在電路中的位置, 使得變換后的電路結(jié)構(gòu)有利于阻止毛刺的蔓延。 當(dāng)電路的某一部分邏輯在一段時(shí)間內(nèi)
67、不起作用的時(shí)候, 就可以關(guān)閉這部分電路以降低功耗。 為了節(jié)省由觸發(fā)器輸出翻轉(zhuǎn)增加的功耗, 盡可能采用時(shí)鐘端帶有使能信號(hào)CE的觸發(fā)器。 當(dāng)CE信號(hào)無效時(shí), 所有時(shí)鐘沿的變化都不引起觸發(fā)器輸出的翻轉(zhuǎn); 當(dāng)CE信號(hào)有效時(shí), 觸發(fā)器才正常輸出操作。,(6) 優(yōu)化時(shí)鐘。 動(dòng)態(tài)功耗的很大部分是時(shí)鐘頻率引起的。 讓時(shí)鐘運(yùn)行在高出所需的頻率上就是浪費(fèi)功率。 節(jié)省功耗就不要讓時(shí)鐘運(yùn)行在高出所需的頻率。 可采用附加邏輯電路控制時(shí)鐘, 或者從原來電路內(nèi)就存
68、在的信號(hào)中選擇控制時(shí)鐘電路關(guān)閉的信號(hào), 而不必增加額外的控制邏輯。,在一個(gè)設(shè)計(jì)的所有吸收功耗的信號(hào)當(dāng)中,時(shí)鐘是罪魁禍?zhǔn)?。雖然一個(gè)時(shí)鐘可能運(yùn)行在100MHz,但從該時(shí)鐘派生出的信號(hào)卻通常運(yùn)行在主時(shí)鐘頻率的較小分量(通常為12%~15%)。此外,時(shí)鐘的扇出一般也比較高——這兩個(gè)因素顯示,為了降低功耗,應(yīng)當(dāng)認(rèn)真研究時(shí)鐘。,如果設(shè)計(jì)的某個(gè)部分可以處于非活動(dòng)狀態(tài),則可以考慮使用一個(gè)BUFG-MUX來禁止時(shí)鐘樹翻轉(zhuǎn),而不是使用時(shí)鐘使能。時(shí)鐘使能將阻
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 可編程邏輯器件設(shè)計(jì)技巧
- 現(xiàn)場可編程邏輯門陣列建模方法的研究.pdf
- 現(xiàn)場可編程邏輯門陣列(FPGA)技術(shù)的應(yīng)用研究.pdf
- 可編程邏輯控制器plc
- 可編程邏輯電路設(shè)計(jì)教學(xué)組
- 可編程邏輯器件加密設(shè)計(jì)與實(shí)現(xiàn).pdf
- 0.18umfpga可編程邏輯單元設(shè)計(jì)與實(shí)現(xiàn)
- 外文翻譯---可編程邏輯控制器
- 可編程邏輯控制器 外文翻譯
- 外文翻譯--可編程邏輯控制器
- 外文翻譯--可編程邏輯控制器
- 多值可編程邏輯陣列的優(yōu)化設(shè)計(jì)研究.pdf
- 可編程邏輯控制器外文翻譯
- 外文翻譯----可編程邏輯控制器
- FPGA中可編程邏輯單元的設(shè)計(jì)與研究.pdf
- 可編程邏輯控制器耐壓測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 現(xiàn)場可編程門陣列綜述【文獻(xiàn)綜述】
- 現(xiàn)場可編程數(shù)?;旌详嚵醒芯?pdf
- 現(xiàn)場可編程模擬器件研究.pdf
- 現(xiàn)場可編程小車迷宮算法研究
評(píng)論
0/150
提交評(píng)論