3.3 基本運(yùn)算邏輯和它們的Verilog HDL模型_第1頁(yè)
3.3 基本運(yùn)算邏輯和它們的Verilog HDL模型_第2頁(yè)
3.3 基本運(yùn)算邏輯和它們的Verilog HDL模型_第3頁(yè)
3.3 基本運(yùn)算邏輯和它們的Verilog HDL模型_第4頁(yè)
3.3 基本運(yùn)算邏輯和它們的Verilog HDL模型_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基本運(yùn)算邏輯和它們的Verilog HDL模型 第5章 2011.3.25加法器加法器 XiYiCi-1Ci00000010010001111000101111011111表中Xi 、Yi 表示兩個(gè)加數(shù),Si 表示和,Ci-1 表示來(lái)自低位的進(jìn)位、Ci 表示向高位的進(jìn)位。 Ci = Xi Yi + Yi Ci-1 + Xi Ci-1 Si = Xi Ci + Yi Ci + Ci-1 Ci + Xi Yi Ci-1全加器和Si的表達(dá)式也可以表示為: Si = Pi Ci-1 其中Pi = Xi YiCi = PiCi-1 + Gi 其中Gi = XiYi圖5.1 由4個(gè)1位全加器組成的超前進(jìn)位

2、4位加法器 A2 B2 A1 B1 A0 B0 C2 三位超前進(jìn)位加法器 C-1 S2 S1 S00全加器Y1 X1S1 P0 G0 C0 P1 G1 C1 P2 G2 C2 P3 G3C-1 超前進(jìn)位加法器 全加器Y0 X0S0全加器Y2 X2S2全加器Y3 X3S3P* G*P* G*圖5.2 由4個(gè)4位全加器組成的超前進(jìn)位16位加法器0四位全加器Y47 X47S47P*0G*0C*0 P*1G*1C*1 P*2G*2C*2 P*3 G*3C-1 超前進(jìn)位加法器 P* G*四位全加器Y03 X03S03四位全加器Y811 X811S811四位全加器Y1215 X1215S1215n在實(shí)現(xiàn)算

3、法時(shí)(如卷積運(yùn)算和快速傅立葉變換),常常用到加法運(yùn)算,由于多位并行加法器是由多層組合邏輯構(gòu)成,加上超前進(jìn)位形成邏輯雖然減少了延遲,但還是有多級(jí)門和布線的延遲,而且隨著位數(shù)的增加延遲還會(huì)積累。n由于加法器的延遲,使加法器的使用頻率受到限制,這是指計(jì)算的節(jié)拍(即時(shí)鐘)必須要大于運(yùn)算電路的延遲,只有在輸出穩(wěn)定后才能輸入新的數(shù)進(jìn)行下一次運(yùn)算。n如果設(shè)計(jì)的是32位或64位的加法器,延遲就會(huì)更大。為了加快計(jì)算的節(jié)拍,可以在運(yùn)算電路的組合邏輯層中加入多個(gè)寄存器組來(lái)暫存中間結(jié)果。n也就是采用數(shù)字邏輯設(shè)計(jì)中常用的流水線(pipe-line)辦法,來(lái)提高運(yùn)算速度,以便更有效地利用該運(yùn)算電路。 module add

4、_4( X, Y, sum, C);input 3 : 0 X, Y;output 3: 0 sum;output C;assign C, Sum = X + Y;endmodule n而16位加法器只需要擴(kuò)大位數(shù)即可 module add_16( X, Y, sum, C);input 15 : 0 X, Y;output 15 : 0 sum;output C;assign C, Sum = X + Y;endmodule n設(shè)計(jì)者可以考慮提高電路的速度,也可以考慮節(jié)省電路元件以減少電路占用硅片的面積。n綜合器會(huì)自動(dòng)根據(jù)選項(xiàng)為你挑選一種基本加法器的結(jié)構(gòu)。有的高性能綜合器還可以根據(jù)用戶對(duì)運(yùn)算

5、速度的要求插入流水線結(jié)構(gòu),來(lái)提高運(yùn)算器的性能。n可見在綜合工具的資源庫(kù)中存有許多種基本的電路結(jié)構(gòu),通過編譯系統(tǒng)的分析,自動(dòng)為設(shè)計(jì)者選擇一種電路結(jié)構(gòu),隨著綜合器的日益成熟它的功能將越來(lái)越強(qiáng)。n然后設(shè)計(jì)者還需通過布局布線工具生成具有布線延遲的電路,再進(jìn)行后仿真,便可知道該加法器的實(shí)際延時(shí)。n根據(jù)實(shí)際的延遲便可以確定使用該運(yùn)算邏輯的最高頻率。若需要重復(fù)使用該運(yùn)算器,則需要在控制數(shù)據(jù)流動(dòng)的狀態(tài)機(jī)中為其安排必要的時(shí)序。 乘法電路乘法電路 n設(shè)兩個(gè)n位二進(jìn)制正數(shù)X和Y: X : X n-1X1 X0 Y : Y n-1 Y1Y0n則X和Y的乘積Z有2n位。n式中YiX稱為部分積,記為Pi,有n顯然,兩個(gè)一

6、位二進(jìn)制數(shù)相乘遵循如下規(guī)則: 00=0; 01=0; 10=0; 11=1n因此YiXj 可用一個(gè)與與門實(shí)現(xiàn),記Pi.j = Yi X j兩個(gè)4位二進(jìn)制數(shù)X和Y相乘 被乘數(shù): X3 X2 X1 X0 ) 乘 數(shù): Y3 Y2 Y1 Y0 _ Y0X3 Y0X2 Y0X1 Y0X0 Y1X3 Y1X2 Y1X1 Y1X0 Y2X3 Y2X2 Y2X1 Y2X0 Y3X3 Y3X2 Y3X1 Y3X0 _ 乘積: Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0M UM UM UM UM UM UM UM UM UM UM UM UM UM UM UM U0 Y3 X0 Y3 X1 Y3 X2 Y3

7、 X3 Y2 X0 Y2 X1 Y2 X2 Y2 X3 Y1 X0 Y1 X1 Y1 X2 Y1 X3 Y0 X3 0 Y0 X2 0 Y0 X1 0 Y0 X0 0 000Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0 與 門 A BCo 全 加 器 Ci S Yi Xj SkCICoPijSk+1 乘法單元(MU) 與門Y0 X0 與門Y0 X2 與門Y0 X1 與門Y0 X3 與門Y1 X3 M UY2 X2 與門Y2 X3 M UY3 X2 M UY1 X2 M UY2 X1 M UY3 X0 M UY1 X1 M UY2 X0 M UY1 X0 M UY3 X1 A2 B2 A1 B

8、1 A0 B0 C2 三位超前進(jìn)位加法器 C-1 S2 S1 S0與門Y3 X300 Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0進(jìn)位節(jié)省乘法器module mult_4( X, Y, Product);input 3 : 0 X, Y;output 7 : 0 Product;assign Product = X * Y;endmodule module mult_8( X, Y, Product);input 7 : 0 X, Y;output 15 : 0 Product;assign Product = X * Y;endmodule流水線(流水線(pipeline) n流水線的設(shè)計(jì)

9、方法已經(jīng)在高性能的、需要經(jīng)常進(jìn)行大規(guī)模運(yùn)算的系統(tǒng)中得到廣泛的應(yīng)用,如CPU(中央處理器)等。n目前流行的CPU,如intel的奔騰處理器在指令的讀取和執(zhí)行周期中充分地運(yùn)用了流水線技術(shù)以提高它們的性能。n高性能的DSP(數(shù)字信號(hào)處理)系統(tǒng)也在它的構(gòu)件(building- block functions)中使用了流水線設(shè)計(jì)技術(shù)。 流水線設(shè)計(jì)的概念n流水線設(shè)計(jì)(Pipeline Design)是經(jīng)常用于提高所設(shè)計(jì)系統(tǒng)運(yùn)行速度的一種有效方法。為了保障數(shù)據(jù)快速傳輸,必須使系統(tǒng)運(yùn)行在盡可能高的頻率上,但如果某些復(fù)雜邏輯功能的完成需要較長(zhǎng)的延時(shí),就會(huì)使系統(tǒng)很難運(yùn)行在較高的頻率上。n流水線技術(shù)實(shí)際上就是把規(guī)模

10、較大、層次較多的組合邏輯電路分為幾個(gè)級(jí),在每一級(jí)插入寄存器組暫存中間數(shù)據(jù)。nK級(jí)的流水線就是從組合邏輯的輸入到輸出恰好有K個(gè)寄存器組(分為K級(jí),每一級(jí)都有1個(gè)寄存器組),上一級(jí)的輸出是下一級(jí)的輸入而又無(wú)反饋的電路。 把組合邏輯設(shè)計(jì)轉(zhuǎn)換為流水線設(shè)計(jì) n這個(gè)組合邏輯包括兩級(jí)。第一級(jí)的延遲是T1和T3兩個(gè)延遲中的最大值;第二級(jí)的延遲等于T2的延遲。n為了通過這個(gè)組合邏輯得到穩(wěn)定的計(jì)算結(jié)果輸出,需要等待的傳播延遲為: max(T1,T3) + T2 個(gè)時(shí)間單位。 n在從輸入到輸出的每一級(jí)插入寄存器后,流水線設(shè)計(jì)的第一級(jí)寄存器所具有的總延遲為T1與T3時(shí)延中的最大值加上寄存器的Tco(觸發(fā)時(shí)間)。n第二

11、級(jí)寄存器延遲為T2的時(shí)延加上Tco。 n采用流水線設(shè)計(jì)為取得穩(wěn)定的輸出總體計(jì)算周期為:max(max(T1,T3)+Tco,(T2+Tco) n流水線設(shè)計(jì)需要2個(gè)時(shí)鐘周期來(lái)獲取第一個(gè)計(jì)算結(jié)果,而只需要1個(gè)時(shí)鐘周期來(lái)獲取隨后的計(jì)算結(jié)果。n開始時(shí)用來(lái)獲取第一個(gè)計(jì)算結(jié)果的2個(gè)時(shí)鐘周期被稱為(latency)。n對(duì)于CPLD來(lái)說,器件的延遲(如T1、T2和T3)相對(duì)于觸發(fā)器的Tco要長(zhǎng)得多,并且寄存器的建立時(shí)間Tsu也要比器件的延遲快得多。n只有在上述關(guān)于硬件時(shí)延的假設(shè)為真的情況下,流水線設(shè)計(jì)才能獲得比同功能的組合邏輯設(shè)計(jì)更高的性能。n采用流水線設(shè)計(jì)的優(yōu)勢(shì)在于它能提高吞吐量(throughput)。n

12、假設(shè)T1、T2和T3具有同樣的傳遞延遲Tpd。n對(duì)于組合邏輯設(shè)計(jì)而言,總的延遲為2*Tpd。n對(duì)于流水線設(shè)計(jì)來(lái)說,計(jì)算周期為(Tpd+Tco)。n前面提及的首次延遲(latency)的概念實(shí)際上就是將(從輸入到輸出)最長(zhǎng)的路徑進(jìn)行初始化所需要的時(shí)間總量;吞吐延遲則是執(zhí)行一次重復(fù)性操作所需要的時(shí)間總量。n在組合邏輯設(shè)計(jì)中,首次延遲和吞吐延遲同為2*Tpd。n在流水線設(shè)計(jì)中,首次延遲是2*(Tpd+Tco), 而吞吐延遲是Tpd+Tco。n如果CPLD硬件能提供快速的Tco,則流水線設(shè)計(jì)相對(duì)于同樣功能的組合邏輯設(shè)計(jì)能提供更大的吞吐量。 n典型的富含寄存器資源的CPLD器件(如Lattice的isp

13、LSI 8840)的Tpd為8.5ns,Tco為6ns。n流水線設(shè)計(jì)在性能上的提高是以消耗較多的寄存器資源為代價(jià)的。n對(duì)于非常簡(jiǎn)單的用于數(shù)據(jù)傳輸?shù)慕M合邏輯設(shè)計(jì),例如上述例子,將它們轉(zhuǎn)換成流水線設(shè)計(jì)可能只需增加很少的寄存器單元。n隨著組合邏輯變得復(fù)雜,為了保證中間的計(jì)算結(jié)果都在同一時(shí)鐘周期內(nèi)得到,必須在各級(jí)之間加入更多的寄存器。n如果需要在CPLD中實(shí)現(xiàn)復(fù)雜的流水線設(shè)計(jì),以獲取更優(yōu)良的性能,具有豐富寄存器資源的CPLD結(jié)構(gòu)并且具有可預(yù)測(cè)的延遲這兩大特點(diǎn)的FPGA是一個(gè)很有吸引力的選擇。流水線加法器與組合邏輯加法器的比較流水線加法器與組合邏輯加法器的比較 n實(shí)現(xiàn)加法功能需要三級(jí)電路:(1)加法器輸

14、入的數(shù)據(jù)產(chǎn)生器和傳送器;(2)數(shù)據(jù)產(chǎn)生器和傳送器的超前進(jìn)位部分;(3)數(shù)據(jù)產(chǎn)生、傳送功能和超前進(jìn)位三者求和部分。 n在n位組合邏輯全加器中插入三層寄存器或寄存器組,將它轉(zhuǎn)變?yōu)閚位流水線全加器 進(jìn)位的產(chǎn)生和傳遞 n n寄存器寄存器 n n超前進(jìn)位單元 n n寄存器 n-1寄存器寄存器寄存器寄存器超前進(jìn)位單元 n-1 n寄存器 n寄存器 n nan+1bn+1c-1C -1C -1Cn+2Cn+2Cn+2Cn+2Pn+1Gn+1(b) n位流水線全加器 Sn+1進(jìn)位的產(chǎn)生和傳遞 n nnn超前進(jìn)位單元 n-1求和單元 nnSn+1 Cn+1C-1Pn+1Gn+1an+1bn+1Cout(a) n

15、位純組合邏輯全加器n若用擁有840個(gè)宏單元和312個(gè)有寄存能力I/O單元的Lattice ispLSI8840分別來(lái)實(shí)現(xiàn)16位組合邏輯全加器和16位流水線全加器并比較它們的運(yùn)行速度, 對(duì)于16位組合邏輯全加器, 共用了34個(gè)宏單元。n執(zhí)行一次計(jì)算需經(jīng)過3個(gè)GLB層,每次計(jì)算總延遲為45.6ns。n而16位流水線全加器共用了81個(gè)宏單元。執(zhí)行一次計(jì)算只需經(jīng)過1個(gè)GLB層,每次計(jì)算總延遲為15.10ns(但第一次計(jì)算需要多用三個(gè)時(shí)鐘周期),吞吐量約增加了三倍。 Li10.1 非流水線方式實(shí)現(xiàn)8位全加器module adder8(cout,sum,ina,inb,cin,clk);output7:0

16、 sum;output cout;input7:0 ina,inb;input cin,clk;reg7:0 tempa,tempb,sum;reg cout;reg tempc;always (posedge clk)begintempa=ina;tempb=inb;tempc=cin;endalways (posedge clk)begincout,sum=tempa+tempb+tempc;endendmodule 4級(jí)流水線方式實(shí)現(xiàn)8位全加器module pipeline(cout,sum,ina,inb,cin,clk); output7:0 sum; output cout; in

17、put7:0 ina,inb; input cin,clk; reg7:0 tempa,tempb,sum; reg tempci,firstco,secondco,thirdco,cout; reg1:0 firsts,thirda,thirdb; reg3:0 seconda,secondb,seconds; reg5:0 firsta,firstb,thirds;always (posedge clk) begin tempa=ina; tempb=inb; tempci=cin; end /輸入數(shù)據(jù)緩存always (posedge clk) begin firstco,firsts=

18、tempa1:0+tempb1:0+tempci; /第一級(jí)加(低2位) firsta=tempa7:2; firstb=tempb7:2; end /未參加計(jì)算的數(shù)據(jù)緩存always (posedge clk) begin secondco,seconds=firsta1:0+firstb1:0+firstco,firsts; /第2級(jí)加(第2、3位相加) seconda=firsta5:2; secondb=firstb5:2; end /數(shù)據(jù)緩存always (posedge clk) begin thirdco,thirds=seconda1:0+secondb1:0+secondco

19、,seconds; /第3級(jí)加(第4、5位相加) thirda=seconda3:2; thirdb=secondb3:2; end /數(shù)據(jù)緩存always (posedge clk) cout,sum=thirda1:0+thirdb1:0+thirdco,thirds; /第4級(jí)加(高兩位相加)endmodule比較器比較器 XY(X Y)(X = Y)(X = Y)(X = Y) (X Y) XGY = 1; / 設(shè)置X 大于Y的信號(hào)為1 else XGY = 0; if (X Y) XSY = 1; / 設(shè)置X 小于Y的信號(hào)為1 else XSY = 0; endendmodule多路

20、器多路器 n多路選擇器(Multiplexer)簡(jiǎn)稱多路器,它是一個(gè)多輸入、單輸出的組合邏輯電路,在數(shù)字系統(tǒng)中有著廣泛的應(yīng)用。它可以根據(jù)地址碼的不同,從多個(gè)輸入數(shù)據(jù)中選取一個(gè),讓其輸出到公共的輸出端。在算法電路的實(shí)現(xiàn)中多路器常用來(lái)根據(jù)地址碼來(lái)調(diào)度數(shù)據(jù)。n我們可以很容易地寫出一個(gè)有2位地址碼,可以從4組輸入信號(hào)線中選出1組通過公共輸出端輸出的功能表。 地址1地址0輸入1輸入2輸入3輸入4 輸出001000輸入1010100輸入2100010輸入3110001輸入4module Mux_8( addr,in1, in2, in3, in4, in5, in6, in7, in8, Mout, nCS);input 2:0 addr;input width-1 in1, in2, in3, in4, in5, in6, in7, in8;output width-1 Mout;parameter width = 8;always (addr or in1 or in2 or in3 or in4 or in5 or in6 or in7 or in8) if (!ncs) case(addr) 3b000: Mout = in1; 3b001: Mout = in2; 3b010: Mout = in

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論