版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第 1 章 高速度結(jié)構(gòu)設(shè)計在采用任意編碼方式時,高級工具的優(yōu)化程度常常不足以滿足大多數(shù)設(shè)計約束的要求。本章討論數(shù)字設(shè)計中三個主要物理特性的第一個:速度。本章也討論在FPGM結(jié)構(gòu)優(yōu)化的方法。根據(jù)問題的內(nèi)容不同,速度有三種基本定義:流量( Throughput) 、時滯 (Latency) 和時序(Tinung)o在FPGAb理數(shù)據(jù)的內(nèi)容中,流量定義為每個時鐘周期處理的數(shù)據(jù)量。流量的通常度量是每秒的位數(shù)。時滯定義為數(shù)據(jù)輸入與處理的數(shù)據(jù)輸出之間的時間。時滯的一般度量是時間或時鐘周期。時序定義為時序元件之間的邏輯延時,當(dāng)一個設(shè)計沒有“滿足時序”時,意味著關(guān)鍵路徑的延時,即觸發(fā)器之間的最大延時比預(yù)定的時
2、鐘周期大,這些延時由組合邏輯延時、時鐘到輸出延時、布線延時、建立時間、時鐘偏移等組成。時序的標(biāo)準(zhǔn)度量是時鐘周期和頻率。在本章的課程中,將詳細(xì)討論以下的內(nèi)容: 高流量結(jié)構(gòu)使設(shè)計每秒可以處理的位數(shù)最大化。 低時滯結(jié)構(gòu)使一個模塊輸入端到輸出端的延時最小化。 時序優(yōu)化可減少關(guān)鍵路徑的組合延時。 添加寄存器層次分割組合邏輯結(jié)構(gòu); 并行結(jié)構(gòu)使分開的時序執(zhí)行操作成為并行操作; 把邏輯結(jié)構(gòu)規(guī)定展平成特權(quán)編碼信號; 寄存器平衡使圍繞流水線的寄存器重新分配組合邏輯; 重新安排路徑把關(guān)鍵路徑的操作轉(zhuǎn)到非關(guān)鍵的路徑。1.1 高流量高流量設(shè)計是與穩(wěn)定狀態(tài)數(shù)據(jù)率有關(guān)的設(shè)計,但很少涉及任何規(guī)定的數(shù)據(jù)段通過設(shè)計要求的傳播時間
3、(時滯)。高流量設(shè)計的概念與福特提出制造大量汽車的裝配線的概念相同。在處理數(shù) 據(jù) 的 數(shù) 字 設(shè) 計 中 , 定 義 這 個 概 念 為 較 抽 象 的 術(shù) 語 : 流 水 線 ( pi pel i ne)。流水線設(shè)計概念上十分類似于裝配線運行,其中原材料或輸人數(shù)據(jù)進(jìn)入前端,然后通過制造和處理的各個級,最后作為完成的產(chǎn)品或輸出數(shù)據(jù)退出。流水線設(shè)計的優(yōu)越性是新數(shù)據(jù)在前面的數(shù)據(jù)完成之前就可以進(jìn)行處理,就像汽車在裝配線上加工一樣。流水線幾乎應(yīng)用于所有高性能的器件中,且對各種規(guī)定的結(jié)構(gòu)是無限制的,例如包括CPU1令集、網(wǎng)絡(luò)協(xié)議堆棧、密碼引擎等。從算法的觀點看,在流水線設(shè)計中一個重要的概念是“拆開環(huán)路”
4、。作為一個例子,考慮以下一段代碼,它類似于在軟件實現(xiàn)求X的三次事中使用的代碼,即在微處理器中一組順序指令 執(zhí)行的指令。XPower=1 ;for i=0; i<3 ;i+)XPower=X*XPower;注意上面的代碼是一個遞歸的算法。相同的變量和地址被存取直到計算完成。因為微處理器一次只執(zhí)行一個指令,所以沒有利用并行性。(為討論的目的,只考慮單核的處理器o) 一個類似的實現(xiàn)可以在硬件中產(chǎn)生??紤]下面相同算法的Verilog語言實現(xiàn)(沒有考慮輸出范圍)omodule power3( output 【7:0 】XPower, output finished, input 7:0 X, in
5、put clk, start); /he duration of start is asingle clock reg【7: 0】ncount;reg【7: 0】 XPower;assign finished= (ncount=0); always (posedge clk) if(start) begin XPower<=X; ncount<=2 ; end else if(!finished) begin ncount<=ncount -1;XPower<=XPower*X ; end endmodule在上面的例子中,相同的寄存器和計算資源被重新利用,直到計算完成
6、,如圖1-1所示。由于這類迭代實現(xiàn),新的計算直到前面的計算已經(jīng)完成才可以開始。這個迭代方案十分類似于 軟件實現(xiàn),也應(yīng)注意,要求某些握手信號來表示開始和完成一次計算。外部模塊也必須利用這個 握手信號來傳遞新數(shù)據(jù)到模塊并接收一個完成的計算。這個實現(xiàn)的性能是流量=8/3,或2.7位/時鐘時滯=3時鐘時序=關(guān)鍵路徑中一個乘法器延時與相同算法的流水線版本對比:module power3(out put r e g 7 : 0 XPo we r ,input clk,i n p u t【7:0】 X);reg 7:0 XPowerl, XPower2;r eg7:0 X1 , X2;al ways (po
7、s ed ge cl k) be gin/ Pipeline stage lX1 <=X;XPowerl<=X ;/ Pipeline stage 2X2 <=X1;XPower2<=XPowerl *X1;/ Pipeline stage 3XPower<=XPower2 *X2; end endmodule在上面的實現(xiàn)中,X的數(shù)值傳遞到兩個流水線級,每級獨立的資源計算相應(yīng)的乘法操作。注意,當(dāng)X在第二級流水線 用來計算最后的 三次事的同時,X的下一個數(shù)值 可以送到第一級 流水線,如圖1-2所示。X3 的最 后計算(Xpower3資源) 和X下一數(shù)值的第一次計算(
8、XPower2資源)二者同時進(jìn) 行,這個設(shè)計的性能是:流量=8/1 ,或8位/時鐘時滯=3時鐘時序=關(guān)鍵路徑中一個乘法器延時流量的性能增加超過了迭代實現(xiàn)的3倍。通常,如果要求 n次迭代環(huán)路的算法拆開后,流水線實現(xiàn)將呈現(xiàn)n倍的流量性能增加。因為流水線實現(xiàn)仍要求3個時鐘來傳播最后的計算結(jié)果,就時滯而論性能沒有損失。類似地,因為關(guān)鍵路徑仍然只包含一個乘法器,所以時序并沒有惡化。拆開一個迭代環(huán)路會增加流量。為如此拆開環(huán)路所付出的代價是增加面積。迭代實現(xiàn)要求單個寄存器和乘法器(一些控制信號沒有表示在圖中),但是流水線實現(xiàn)要求為X和XPower二者分開的寄存器,為每個流水線級分開的乘法器。面積優(yōu)化在第2章
9、討論。拆開一個遮代環(huán)路的代價是成比例地增加面積。1.2 低時滯低時滯設(shè)計是通過最小化中間處理的延時來盡可能快速地把數(shù)據(jù)從輸入端傳遞到輸出端的 設(shè)計。通常,低時滯設(shè)計將要求并行性、去除流水線、縮短邏輯,可能減少設(shè)計中的流量或降低 最大時鐘速度。返回到三次事的例子,沒有對迭代實現(xiàn)進(jìn)行明顯的時滯優(yōu)化,因為每個接連的乘法操作必 須為下一步操作進(jìn)行寄存。但是,流水線實現(xiàn)有明顯的路徑來減少時滯。注意每個流水線級,每 個乘法的積必須等待下一個時鐘沿到來才傳遞到下一級。去除流水線寄存器可以使輸入到輸出 時序最小化。module power3 Ioutput 7: 0 XPower , input【7: 0】X
10、); reg【7:0 XPowerl, XPowereg【7:0 Xl, X2;assign XPower=XPower2 *X2; always*begin Xl =X ;XPowerl=X; end always e*begin X2 =X1;XPower2=XPowerl*Xl; end endmodule在上面的例子中,寄存器 從流水線中分離 出去,每一級是前級的組合表達(dá) 式,如圖I一3所示。這時的設(shè)計性能為:流量=8位/時鐘(假設(shè)每個時鐘一個新的輸入)時滯=在l和2個乘法器延時之間,0時鐘時序=關(guān)鍵路徑中2個乘法器延時由于移去流水線寄存器,這個設(shè)計的時滯已經(jīng)減少到低于單個時鐘周期 可
11、以通過移去流水線寄存器未減少時滯。在時序上的損失是明顯的,前面的實現(xiàn)理論上可以運行到系統(tǒng)對鐘周期接近單個乘法器的延時,但是在低時滯實現(xiàn)中,時鐘周期必須至少是2個乘法器的延時(取決于其實現(xiàn))加上在關(guān)鍵路徑中的任何外部邏輯。移去流水線寄存器的損失是增加寄存器之問的組合延時。1.3 時序時序指的是一個設(shè)計的時鐘速度。在設(shè)計中任何兩個時序元件之間的最大延時將決定最大的時鐘速度。時鐘速度的概念比這一章中另一處討論的速度/面積權(quán)衡有更低層次的抽象,因為 時鐘速度一般不直接與這些拓?fù)溆嘘P(guān),雖然在這些結(jié)構(gòu)中的權(quán)衡將確實對時序有影響。例如,不清楚設(shè)計的細(xì)節(jié),設(shè)計者不可能知道流水線拓?fù)涫欠駮鹊\行更快。最高速
12、度或最大頻率可以直接按照著名的最大頻率方程定義(不管時鐘到時鐘的抖動):方程式1-1最大頻率F maxT clk _ q ,T log ic - T routing - T setup - T skew其中F max是時鐘可允許的最大頻率,Tclk _q是從時鐘到達(dá)直至數(shù)據(jù)到達(dá)捌的時間,T log ic是邏輯通過觸發(fā)器之間的傳播延時,Toting是觸發(fā)器之間的布線延時,Tsetup是下一個時鐘上升沿之前數(shù)據(jù)必須到達(dá) 訓(xùn)的最小時間(建立時間),Tskew是啟動觸發(fā)器和捕捉觸發(fā)器之間時鐘的傳播延時。下一節(jié)討論改善時序性能的各種方法和要求的權(quán)衡。1.3.1 添加寄存器層次第一個結(jié)構(gòu)的時序改進(jìn)策略是添
13、加中間的寄存器層次到關(guān)鍵路徑,這個技術(shù)應(yīng)該利用在高度流水線的設(shè)計,附加的時鐘周期的時滯不違反設(shè)計的技術(shù)條件,整個功能將不受進(jìn)一步增加 的寄存器的影響。例如,假設(shè)以下有限脈沖響應(yīng)(FI R)實現(xiàn)的結(jié)構(gòu)不滿足時序要求: module fir( output7 : 0Y, input 7:0A, B , C , X,input clk , input validsample) ; reg 7: O X1, X2 , Y;always (posedge clk) if (validsample) begin X1<=X ;X2<=Xl;Y<= A* X+B* X1+C* X2;end
14、endmodule結(jié)構(gòu)上,所有乘/加操作發(fā)生在一個時鐘周期,如圖 1-4所示。圖1-4帶長路徑的MAC換言之,一個乘法器和一個加法器組成的關(guān)鍵路徑比最小時鐘周期的要求大,假設(shè)時滯要求不固定在一個時鐘周期,添加額外的中間寄存器到此乘法器,使設(shè)計進(jìn)一步流水線。第一層次 是容易的:只是在乘法器和加法器之間添加一個流水線層次。module fir(output inputinput input reg reg【7:0 【7: O】 clk, validsample【7:0 Y,A, B, C , X ,);Xl, X2, Y ;7:0 prodl, prod2, prod3;always (posed
15、ge clk) begin if(validsample) beginX1 <=X;X2 <=X1 prodl<=A'X prod2<=B*Xl;prod3<=C+X2,endY<= prodl+prod2+prod3;endendmodule在上面的例子,加法器用一個流水線級與乘法器分開,如圖1-5所示。圖1-5添加的流水線寄存器對于流水線乘法器是好的選擇,因為計算可以很容易分解成級。把乘法器和加法器分解成可以單獨寄存的級,使附加流水線成為可能。把關(guān)鍵路徑分成兩個更小延時的路徑,添加寄存器層次改進(jìn)這些功能的各種實現(xiàn)涵蓋在其他章節(jié),但是結(jié)構(gòu)一旦分解成
16、級,附加的流水線如上面的例子一樣容易理解。1.3.2并行結(jié)構(gòu)第二個結(jié)構(gòu)的時序改進(jìn)策略是重新組織關(guān)鍵路徑,以致并行地實現(xiàn)邏輯結(jié)構(gòu)。當(dāng)通過列串聯(lián)的邏輯估值的一個函數(shù)可以分解和并行地估值時,就應(yīng)該利用這個技術(shù)。假設(shè)前一節(jié)討論的標(biāo)準(zhǔn)流水線3次塞設(shè)計不滿足時序的要求。為了產(chǎn)生并行結(jié)構(gòu),可以將乘法器分解成獨立的操作,然后重新組合他們。例如,一個8位的二進(jìn)制乘法器可以用字段所口 B表水:X= A,B其中A是最高有效位字段.B是最低有效位字段。因 為 在 3次 冪 的 例 子 中 被 乘 數(shù) 等 于 乘 數(shù) , 乘 法 操 作 可 以 重 新 組 織 如 下 :X.X=A,B * A,B = (A*A),(2
17、*A*B),(B*B)這樣把問題簡化為一個串行的4位乘法器,然后重新組合乘積,可以用以下的模塊實現(xiàn):module power3(output 7:0 XPower,input 7:O X,input clk) ;reg 7:0 XPowerl; partial product registersr eg 3 : O XPowe r 2_ p pAA, X Powe r 2_p pAB, XPowe r 2_p pB B;r eg 3 : O XPowe r 3_ p pAA, X Powe r 3_p pAB, XPowe r 3_p pB B;reg 7:0 xl, X2;wire 【 7:
18、0 XPower2;nibble) wire wire nib bles fo r pa rtia l p rodu cts (A is M S ni bbl e, B i s LS 3:0 XPowerl_A=XPowerl7:4;3:O XPowerl_B=XPowerl3:0;wire 3:0 Xl_A =X17:4;wire 3:OJ Xl_B =X13:O;wire 3:O XPower2_A=XPower27:4;wire 3:O XPower2_B=XPower23:0;wire 3:O X2_A =X27:4;wire 3:O X2_B =X2 3:O; assemble pa
19、rtial productsassign XPower2 = (XPower2_ppAA<<8)+ (2*XPower2_ppAB<<4)+XPower2_ppBB ;assign XPower = (XPower3_ppAA<<8)+ (2*XPower3_ppAB<<4)+XPower3_ppBB;always (posedge clk) begin Pipeline stage lXl C=X ;XPowerl <=X; Pipeline stage 2X2 <=X1;/ create partial productsXPowe
20、r2_ppAA<=XPowerl_A*xl-A;XPower2_ppAB<=XPowerl_A.X1_B;XPower2_ppBB<=XPowerl_B*Xl_B;Pipeline stage 3create partial productsXPower3_ppAA<=XPower2_A*X2_A;XPower3_ppAB<=XPower2_A*X2_B;XPower3_ppBB<=XPower2_B*X2_B;endendmodule這個設(shè)計沒有考慮任何溢出的問題,只是用來說明要點,乘法器可以拆成能夠獨立操作的 更小的功能,如圖1-6所示。圖1-6分級的乘
21、法器通過把乘法器拆成可以并行執(zhí)行的更小的操作,最大的延時可以減小到通過任何子結(jié)構(gòu)的最長延時。把一個邏輯功能分成大量可以并行估值的更小的功能,減少路徑延時為子結(jié)構(gòu)的最長延時。1.3.3 展平邏輯結(jié)構(gòu)第三個結(jié)構(gòu)的時序改進(jìn)策略是展平邏輯結(jié)構(gòu)。這是與前一節(jié)定義的并行結(jié)構(gòu)概念緊密相連的,但是專門應(yīng)用于因為特權(quán)編碼而鏈接的邏輯。一般情況下,綜合和布局圖工具有足夠的智能來復(fù)制邏輯減少扇出,但是還沒有足夠的智能來拆開串行方式編碼的邏輯結(jié)構(gòu),或者沒有與設(shè)計的特權(quán)要求有關(guān)的足夠的信息。例如,考慮下面來自地址譯碼器用于寫入4個寄存器的控制信號:module regwrite(output reg 3:0 routi
22、nput clk, in,input 3: 0 ctrl) ;always (posedge clk)if (ctrl0) rout0 <=in;else if (ctrl1) rout1 <=in;else if(ctrl2) rout2 <=in;else if (ctrl3) rout3 <=in;endmodule在上面的例子中,每個控制信號用與其他控制信號有特權(quán)關(guān)系來編碼,這類特權(quán)編碼的實 現(xiàn)如圖1-7所示。如果控制線是來自另一個模塊地址譯碼器的選通,則每個選通對其他的選通是相互排斥的,因為它們都代表唯一的地址。但是,這里已經(jīng)仿照特權(quán)判決那樣編碼。由于控制信號
23、的特性,以 上的代碼將準(zhǔn)確地仿照并行方式編碼那樣操作,但是,綜合工具未必會有足夠的智能來識別它, 特別當(dāng)?shù)刂纷g碼器發(fā)生在另一個寄存器層次后面。圖1-7特權(quán)編碼為了去除此特權(quán),展平此邏輯,可以按照如下方式給這個模塊編碼: module regwrite( output reg 3:0 rout,input clk , in , input 3:0 ctrl);always (posedge clk) beginif(ctrl0) rout0 <=in;if(ctrl1) rout1 <=in;if (ctrl2) rout2 <=in;if(ctrl3)rout3<=in
24、;endendmodule如在門級實現(xiàn)中可以看到的,利用了無特權(quán)邏輯,如圖 1.8所示。每個控制信號獨立作用, 獨立地控制它的相應(yīng)的rout位。去除不需要的特權(quán)編碼,展平邏輯結(jié)構(gòu),減少路徑延時。1.3.4 寄存器平衡第4個策略稱為寄存器平衡。概念上講,這個方法是平等地重新分布寄存器之間的邏輯,減 少任何兩個寄存器之間最壞條件的延時。這個技術(shù)應(yīng)該隨時利用在關(guān)鍵路徑和相鄰路徑之間邏 輯高度不平衡時。因為時鐘速度只由最壞條件路徑來決定,可以做小的改變而成功地重新平衡 關(guān)鍵邏輯。許多綜合工具也有稱為寄存器平衡的優(yōu)化功能,這個特性實質(zhì)上將重新確定專門的結(jié)構(gòu), 改變按預(yù)定方式圍繞邏輯的寄存器。對譬如大乘法
25、器等通常的結(jié)構(gòu)這是有用的,但是它是受限 制的,將不改變邏輯也不識別定制功能。取決于工藝,可能要求更昂貴的綜合工具來實現(xiàn)。因 此,理解這個概念和有能力按定制邏輯結(jié)構(gòu)重新分配邏輯十分重要。圖1-8無特權(quán)編碼注意以下的代碼描述加3個8位輸入的加法器:module adder Ioutput reg 【7:0】 Sum,input【7:0】 A, B, C,input clk );reg 【7:0】rA, rB, rC;always (posedge clk) beginrA<=A;rB<=B;rC<=C;Sum <=rA+rB+rC;endendmodule第一個寄存器級是由
26、rA、rB和rC組成,第二級由Sumfl成,級l和級2之間的邏輯是全部 輸入的加法器,但是,輸入與第一個寄存器級之間不包含邏輯(假設(shè)饋送到這個模塊的輸出是 寄存的),如圖1-9所示。如果通過加法器定義關(guān)鍵路徑,在關(guān)鍵路徑中的一些邏輯可以移回一級,所以平衡在兩個 寄存器級之間的邏輯負(fù)載??紤]以下的修改,其中加法操作之一移回一級:圖1-9寄存加法器module adder(output reg7:0 Sum,input 7:OA. B . C ,input clk) ;reg 7:0 rABSum, rC;always (posedge clk) begin rABSum<=A+B ;rC
27、<=C;Sum <=rABSum+rC; endendmodule現(xiàn)在輸入與第一個寄存器級之間移回一個加法操作,這樣平衡流水線級之間的邏輯,縮短 了關(guān)鍵路徑,如圖I-IO所示。圖I-IO平衡的寄存器從關(guān)鍵路徑移動組合邏輯到相鄰路徑,寄存器平衡改善時序。1.3.5 重新安排路徑第5個策略是在數(shù)據(jù)流中重新安排路徑使關(guān)鍵路徑最小化。當(dāng)多個路徑與關(guān)鍵路徑組合時應(yīng)該利用這個技術(shù),組合路徑可以重新安排以致關(guān)鍵路徑可以移動到更接近目的寄存器。利用這個策略,將只涉及任何給定的一組寄存器之間的邏輯路徑。考慮以下的模塊:module randomlogic(output reg 【7:0】 Out,input【7:0】 A, B, C.input clk ,input Condl , Cond2);always (posedge clk) if (Condl) Out
溫馨提示
- 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-2030全球核電站管道系統(tǒng)行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球環(huán)氧干式變壓器行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國超聲軟組織手術(shù)刀行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國家具彈性帶行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025倉庫租賃合同簡單范本(合同版本)
- 2025年外研銜接版選修4歷史上冊月考試卷含答案
- 掌握職業(yè)規(guī)劃與就業(yè)技巧主題班會
- 三通一平合同規(guī)定年
- 土地承包合同范本內(nèi)容
- 個人門面房租賃簡單的合同
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
- 上海鐵路局招聘筆試沖刺題2025
- 國旗班指揮刀訓(xùn)練動作要領(lǐng)
- 春季安全開學(xué)第一課
- 植物芳香油的提取 植物有效成分的提取教學(xué)課件
- 肖像繪畫市場發(fā)展現(xiàn)狀調(diào)查及供需格局分析預(yù)測報告
- 2021-2022學(xué)年遼寧省重點高中協(xié)作校高一上學(xué)期期末語文試題
- 同等學(xué)力英語申碩考試詞匯(第六版大綱)電子版
- 墓地個人協(xié)議合同模板
- 2024年部編版初中語文各年級教師用書七年級(上冊)
- 中日合同范本
評論
0/150
提交評論