fpga的硬件結(jié)構(gòu)及運(yùn)算功能_第1頁(yè)
已閱讀1頁(yè),還剩228頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第2章 FPGA的硬件結(jié)構(gòu)及運(yùn)算功能,何賓 2009.08,本章概述,本書(shū)所有的信號(hào)處理的實(shí)現(xiàn)都是在Xilinx公司的FPGA芯片上實(shí)現(xiàn)。 本章主要介紹Xilinx的三個(gè)最重要的FPGA產(chǎn)品Virtex-II,Virtex-4和Virtex-5的內(nèi)部結(jié)構(gòu)及主要的功能,在此基礎(chǔ)上介紹了基于FPGA算數(shù)運(yùn)算的一些基本理論。 了解這些FPGA的內(nèi)部結(jié)

2、構(gòu)及功能,為讀者深入掌握使用FPGA實(shí)現(xiàn)數(shù)字信號(hào)處理算法打下良好基礎(chǔ)。,Virtex-II的邏輯資源 --Virtex-II的CLB,如圖所示,Xilinx的Virtex-II系列的FPGA內(nèi)的一個(gè)CLB包含四片slice單元,而Virtex和Spartan系列的FPGA每個(gè)CLB 包含兩片slice單元。下面給出CLB實(shí)現(xiàn)的功能:,圖2.1 CLB的內(nèi)部結(jié)構(gòu),1. CLB中的slice邏輯可實(shí)現(xiàn)任何的數(shù)字邏輯設(shè)計(jì);

3、 2. Slice在CLB中被互連到一起并且通過(guò)開(kāi)關(guān)矩陣將CLB連接起來(lái); 3.Cin和Cout信號(hào)對(duì)實(shí)現(xiàn)算術(shù)功能非常重要。每個(gè)CLB列中存在兩個(gè)相互獨(dú)立的Cin/Cout列; 4.一片slice可實(shí)現(xiàn)一個(gè)2位全加器,所以一個(gè)CLB可實(shí)現(xiàn)兩個(gè)獨(dú)立的4位全加器,作為與其它CLB 協(xié)同工作的高位寬度加法運(yùn)算的一部分。,Virtex-II的邏輯資源 --Virtex-II的CLB,Virtex-II的邏輯資源

4、 --Virtex-II的CLB,一旦設(shè)計(jì)人使用VHDL或Verilog語(yǔ)言完成設(shè)計(jì)輸入,設(shè)計(jì)將被綜合,并得出一個(gè)在指定FPGA上實(shí)現(xiàn)的方案。設(shè)計(jì)者指定目標(biāo)器件的類型(比如廠商,系列,規(guī)格,封裝類型,速率等級(jí))。綜合處理是一個(gè)復(fù)雜的過(guò)程,它將任何可綜合的VHDL/Verilog通過(guò)軟件工具轉(zhuǎn)轉(zhuǎn)換為FPGA可以識(shí)別的比特流文件。 對(duì)于Xilinx的產(chǎn)品,綜合工具將決定如何使用可用的slice邏輯來(lái)執(zhí)行設(shè)計(jì)的數(shù)字邏輯

5、操作。由FPGA制造商提供的工具通過(guò)一系列的復(fù)雜操作來(lái)接收設(shè)計(jì)文件,其目的是將設(shè)計(jì)轉(zhuǎn)化成一種比特流,該比特流可被下載并對(duì)FPGA 進(jìn)行配置。,Slice是CLB內(nèi)的功能單元。衡量Xilinx FPGA資源規(guī)模的主要標(biāo)準(zhǔn)是slice的數(shù)量。圖2.2給出了Slice的內(nèi)部結(jié)構(gòu)。在Slice內(nèi)實(shí)現(xiàn)用戶設(shè)計(jì)的邏輯行為操作。,Virtex-II的邏輯資源 --Virtex-II的Slice,圖2.2 Slice的內(nèi)部結(jié)構(gòu),Virtex

6、-II的邏輯資源 --Virtex-II的Slice,Slice可以完成的功能主要有: 1) 用戶設(shè)計(jì)功能的絕大部分可通過(guò)CLB中的slice來(lái)實(shí)現(xiàn); 2) 不同slice之間存在著多種互連的可行性; 3) LUT可實(shí)現(xiàn)任何4輸入布爾函數(shù)。絕大部分的數(shù)字邏輯設(shè)計(jì)均可使用4輸入LUT執(zhí)行邏輯操作來(lái)實(shí)現(xiàn); 4) LUT可用做移位寄存器SRL或者RAM;,Virtex-II的邏輯資源 -

7、-Virtex-II的Slice,Virtex-II的邏輯資源 --Virtex-II的Slice,寄存器提供了實(shí)現(xiàn)同步邏輯的方法; 1)當(dāng)FPGA工作頻率較高時(shí),正確的使用寄存器顯得十分重要,不正確的使用寄存器將降低系統(tǒng)的工作性能; 2)多路復(fù)用器和CY單元提供了slice中信號(hào)布線的可能性; 3)底部還包括了算術(shù)邏輯與門(mén)單元,使得乘法的實(shí)現(xiàn)更為有效。,Virtex-II的FPGA內(nèi)

8、部使用的是四輸入的LUT。LUT的功能主要有: 1) 一個(gè)4輸入布爾函數(shù)映射到FPGA內(nèi)的LUT中;加載到LUT中的比特位包含了用于配置器件的比特流。 綜合工具將決定用于實(shí)現(xiàn)用戶設(shè)計(jì)的LUT的內(nèi)容,多數(shù)情況下設(shè)計(jì)人員不需要關(guān)注這一點(diǎn)。偶爾情況下,需要設(shè)計(jì)人員人工指定設(shè)計(jì)的某些部分,并確定LUT的內(nèi)容(例如,該如何將它們連接在一起)。在對(duì)時(shí)間和芯片面積要求極為苛刻的應(yīng)用時(shí),為保證LUT能夠滿足性能要

9、求,就需要設(shè)計(jì)人員進(jìn)行手工優(yōu)化。 這些手工優(yōu)化類似于用匯編/機(jī)器代碼人工編寫(xiě)部分的軟件代碼,在人工優(yōu)化時(shí),不需要編譯器做這個(gè)工作。,Virtex-II的邏輯資源 --Virtex-II查找表,如圖2.3所示,Xilinx的LUT可實(shí)現(xiàn)一個(gè)16位移位寄存器(稱為SRL16),并且當(dāng)它與LUT的寄存器連接在一起時(shí),可以在半個(gè)slice中實(shí)現(xiàn)17個(gè)可能的延遲操作。移位寄存器的功能主要有:,圖2.3 移位寄存器的結(jié)構(gòu),V

10、irtex-II的邏輯資源 --移位寄存器,Virtex-II的邏輯資源 --移位寄存器,移位寄存器可被級(jí)聯(lián)以構(gòu)成更長(zhǎng)的延時(shí); 可以使用地址線在任何一點(diǎn)對(duì)延遲線進(jìn)行選擇,這樣就可以產(chǎn)生長(zhǎng)度小于最大延遲的任何延遲。,在FPGA內(nèi),一方面,由于信號(hào)必須通過(guò)LUT或數(shù)據(jù)線進(jìn)行傳輸,因此FPGA的時(shí)鐘工作頻率通常由寄存器間的最長(zhǎng)路徑所限制;另一方面,使用slice寄存器使最長(zhǎng)路徑盡可能最短,這樣可以最大限度地提高時(shí)鐘工

11、作頻率。這是需要掌握的一個(gè) FPGA 設(shè)計(jì)的基本設(shè)計(jì)原理。,Virtex-II的邏輯資源 --寄存器與流水線,Virtex-II的邏輯資源 --寄存器與流水線,如圖2.4所示,在每個(gè)時(shí)鐘沿上,信號(hào)在到達(dá)下一個(gè)觸發(fā)器之前,必須通過(guò)布線、LUT和MUX等傳輸數(shù)據(jù)。在每個(gè)時(shí)鐘沿上,對(duì)器件上的所有信號(hào)來(lái)說(shuō),這是一定會(huì)發(fā)生的。有些信號(hào)會(huì)比其他信號(hào)傳輸?shù)母h(yuǎn)。寄存器之間最長(zhǎng)的信號(hào)路徑被稱之為關(guān)鍵路徑。應(yīng)當(dāng)注意的是,寄存器基本上不會(huì)影

12、響數(shù)據(jù)延遲,因?yàn)槊總€(gè)LUT都與一個(gè)寄存器組成對(duì),而這些寄存器可以按照要求存儲(chǔ)LUT的輸出。,圖2.4 寄存器傳輸性能比較,Virtex-II的邏輯資源 --寄存器與流水線,Virtex-II的邏輯資源 --寄存器與流水線,正是這些關(guān)鍵路徑?jīng)Q定了FPGA可以達(dá)到的最高時(shí)鐘速率。 注意設(shè)計(jì)人員可根據(jù)需要任意選擇時(shí)鐘率。 如果關(guān)鍵路徑過(guò)長(zhǎng),設(shè)計(jì)的時(shí)鐘頻率將很可能無(wú)法滿足指定應(yīng)用的要求。在這種情況下,

13、設(shè)計(jì)人員必須再回到軟件工具或重新設(shè)計(jì),并嘗試使硬件運(yùn)行得更快的設(shè)計(jì)方法,比如:流水線操作,重設(shè)計(jì),增加軟件工具的努力等級(jí),增加/去除設(shè)計(jì)約束或者手工編輯設(shè)計(jì)以優(yōu)化硬件并縮短關(guān)鍵路徑。,如圖2.5所示,Virtex-II系列的FPGA提供了18Kb的專用塊RAM(Block RAM,BRAM)資源。最大的容量的XC2VP125 FPGA芯片具有556個(gè)BRAM,即總共556*18 =10,008Kb的BRAM資源。BRAM可

14、在器件配置時(shí)被寫(xiě)入,或是在實(shí)際操作中進(jìn)行讀/寫(xiě)操作。 設(shè)計(jì)人員通過(guò)VHDL/Verilog代碼來(lái)指定如何使用RAM底層原語(yǔ)。,Virtex-II的邏輯資源 --Virtex-II BRAM,Virtex-II的邏輯資源 --Virtex-II BRAM,圖2.5 BRAM的布局結(jié)構(gòu),如圖2.2所示,LUT可存儲(chǔ)16比特?cái)?shù)據(jù)并可被用做16x1的RAM。兩個(gè)LUT可形成一個(gè)32x1單端口RAM,或一個(gè)16x1雙端口

15、RAM(即使用同一個(gè)地址從兩個(gè)RAM中得到數(shù)據(jù))。 對(duì)于DSP的應(yīng)用。在器件上任意位置建立小型1,738Kb的分布式RAM。因?yàn)镽AM的功能對(duì)DSP的實(shí)現(xiàn)極其重要。 使用一個(gè)小型分布式RAM的范例可作為通信系統(tǒng)中使用的碎片序列。該序列將被保存到系統(tǒng)中需要它“碎裂”數(shù)據(jù)的位置。 使用小型RAM配置形成更大的單/雙端口配置是對(duì)FPGA靈活性的進(jìn)一步的要求。,Virtex-II的邏輯資

16、源 --Virtex-II 分布式RAM,Virtex-II的FPGA芯片內(nèi)提供了嵌入的硬核乘法器資源,嵌入式乘法器特征主要表現(xiàn)在以下幾個(gè)方面: 1)乘法器按列排列在CLB之間; 2)乘法器為18x18位,并且與BRAM相關(guān)聯(lián)以便于存取數(shù)據(jù); 3)這些硬核乘法器可以是組合型或者流水線型,其工作頻率可以高于300MHz。 4)將嵌入式乘法器與LUT結(jié)合實(shí)現(xiàn)的累加器可以創(chuàng)建MAC引擎;

17、 5)可以級(jí)聯(lián)以構(gòu)成更多位數(shù)的乘法器。,Virtex-II的邏輯資源 --Virtex-II 嵌入式乘法器,Virtex-II的邏輯資源 --Virtex-II 嵌入式乘法器,每個(gè)嵌入式乘法器與其臨近的BRAM結(jié)合在一起,因此這些單元共享互連資源。 當(dāng)乘法器不與 BRAM結(jié)合而單獨(dú)使用時(shí),BRAM仍可被使用,但這時(shí)只有18位。 乘法器可以根據(jù)性能要求只用slice邏輯在FPGA的主邏輯中

18、實(shí)現(xiàn),或者用BRAM與slice組合來(lái)實(shí)現(xiàn)乘法器模塊。在沒(méi)有嵌入式乘法器可用,或者設(shè)計(jì)的定時(shí)要求過(guò)于嚴(yán)格時(shí),則必須用這種方法產(chǎn)生乘法器。,如圖2.6,Virtex-II系列的FPGA內(nèi)包括了大量可將器件的不同部分連接起來(lái)的布線資源,CLB之間的可配置布線邏輯(通過(guò)轉(zhuǎn)換開(kāi)關(guān))是對(duì)時(shí)鐘信號(hào),進(jìn)位鏈等專有布線資源的補(bǔ)充。,Virtex-II的邏輯資源 --Virtex-II 布線資源,Virtex-II的邏輯資源 --Virte

19、x-II 布線資源,圖2.6 FPGA內(nèi)的布線資源,器件中信號(hào)的布線通常使用工具來(lái)實(shí)現(xiàn)。在FPGA上實(shí)現(xiàn)一種設(shè)計(jì)有很多可能方案,軟件工具可能需要花費(fèi)許多時(shí)間來(lái)為一個(gè)合理設(shè)計(jì)產(chǎn)生一個(gè)比特流。 因?yàn)椴煌牟季€選擇取決于一個(gè)信號(hào)必須傳輸多遠(yuǎn),因此布線的各種可能性按層次結(jié)構(gòu)進(jìn)行描述。很明顯,為了保證高的時(shí)鐘速率,應(yīng)該使信號(hào)傳輸盡可能短的距離。 專用的時(shí)鐘分布線特別地重要,因?yàn)楫?dāng)它們與數(shù)字時(shí)鐘管理模塊(Dig

20、ital Clock Management,DCM)結(jié)合時(shí),它們?cè)试S高速時(shí)鐘在未發(fā)生扭曲的情況下驅(qū)動(dòng)器件。,Virtex-II的邏輯資源 --Virtex-II 布線資源,Virtex-II系列的FPGA可與板級(jí)/系統(tǒng)級(jí)上的背板、總線和其它系統(tǒng)接口。其I/O端口的主要性能有: 1)支持大多數(shù)現(xiàn)有的串行/并行I/O標(biāo)準(zhǔn); 2)Virtex-II系列的FPGA中,包含多達(dá)24個(gè)RocketIO串行收發(fā)器模

21、塊,每個(gè)收發(fā)器可在大于3.125Gb/s的速率下全雙工運(yùn)行; 3)Virtex-II系列的FPGA中,用戶I/O引腳支持許多高達(dá)840Mbps LVDS(低電壓差分信號(hào))的單端或差分信號(hào)標(biāo)準(zhǔn); 4)Virtex-II Pro X系列支持高達(dá)20個(gè)速率為10.3125Gbp/s的信道。,Virtex-II的邏輯資源 --Virtex-II I/O模塊,Virtex-II的邏輯資源 --Virtex-

22、II I/O模塊,為了將信號(hào)輸入到FPGA以及從FPGA輸出信號(hào),要求信號(hào)能夠被高速地送進(jìn)系統(tǒng)板或者FPGA板上的器件中。 在板級(jí)系統(tǒng)中,遇到的困難常常是信號(hào)串?dāng)_、反射、以及振鈴等,但是如果所支持的I/O標(biāo)準(zhǔn)的數(shù)目被給定,設(shè)計(jì)FPGA與板級(jí)信號(hào)的接口還是比較容易的。 Virtex-II器件有專用的RocketIO模塊處理高速I(mǎi)/O需求,它們也有許多通用I/O引腳選擇以滿足其它的接口需求。,Virte

23、x-4系列的FPGA采用了高級(jí)硅模組 (Advanced Silicon Modular Block,ASMBL)架構(gòu)。如圖2.7所示,ASMBL通過(guò)使用獨(dú)特的基于列的結(jié)構(gòu),實(shí)現(xiàn)了支持多專門(mén)領(lǐng)域應(yīng)用平臺(tái)的概念。每列代表一個(gè)具有專門(mén)功能的硅子系統(tǒng),如邏輯資源、存儲(chǔ)器、I/O、DSP、處理、硬IP和混合信號(hào)等。Xilinx公司通過(guò)組合不同功能列,組裝成面向特定應(yīng)用類別的專門(mén)領(lǐng)域FPGA(與專用不同,專用是指一項(xiàng)單一應(yīng)用)。,V

24、irtex-4的結(jié)構(gòu) -- ASMBL結(jié)構(gòu),Virtex-4的結(jié)構(gòu) -- ASMBL結(jié)構(gòu),圖2.7 ASMBL架構(gòu),ASMBL架構(gòu)從兩個(gè)級(jí)別對(duì)設(shè)計(jì)進(jìn)行了提升,一是解決基于應(yīng)用領(lǐng)域的設(shè)計(jì)問(wèn)題;二是解決在傳統(tǒng)ASIC和FPGA設(shè)計(jì)中都存在的一些技術(shù)約束問(wèn)題。 特別指出,ASMBL成功的緩解了與I/O和陣列相關(guān)性、電源和地分布、以及硬IP縮放相關(guān)的約束問(wèn)題。下面對(duì)這幾個(gè)問(wèn)題進(jìn)行簡(jiǎn)單的介紹:,Virtex-4的結(jié)構(gòu)

25、-- ASMBL結(jié)構(gòu),Virtex-4的結(jié)構(gòu) -- I/O和陣列相關(guān)性,ASMBL的基于列的結(jié)構(gòu)消除了同時(shí)困擾內(nèi)核約束型和焊盤(pán)約束型設(shè)計(jì)的面積-周長(zhǎng)相關(guān)性問(wèn)題。 使用ASMBL架構(gòu)的芯片,只需要分配更多的列給I/O功能就可以容納額外的I/O焊盤(pán),而不需要增加芯片面積總體尺寸。,Virtex-4的結(jié)構(gòu) -- I/O和陣列相關(guān)性,為了使基于列結(jié)構(gòu)的I/O塊能放置在芯片周邊以內(nèi),基于ASMBL的芯片采用了倒裝芯片封裝

26、,這樣就允許在芯片的任何位置放置焊盤(pán),而不僅僅局限在芯片的周邊。 倒裝芯片技術(shù)就是將芯片在封裝內(nèi)“上下顛倒”再進(jìn)行裝配,微小焊球?qū)⒏鱾€(gè)焊盤(pán)(I/O、電源等)連接到內(nèi)部封裝互聯(lián)。 然后使用焊球技術(shù)將封裝引腳連接到一塊印刷電路板或其它基片上。除了允許在芯片內(nèi)部放置焊盤(pán)外,倒裝封裝還提供了比壓線封裝更強(qiáng)的散熱能力。,ASMBL架構(gòu)還提供了FPGA中電源和地的分布能力。與把I/O焊盤(pán)放置在FPGA內(nèi)部類似

27、,設(shè)計(jì)者可以將電源和地焊盤(pán)布局在芯片內(nèi)部的任何位置。 ASMBL對(duì)內(nèi)部電源和地焊盤(pán)的支持極大地簡(jiǎn)化了均衡整個(gè)FPGA器件電源分布的任務(wù)。同時(shí)這還減少了電源下降、接地反彈和時(shí)鐘畸變(因?yàn)闀r(shí)鐘緩沖器分布在整個(gè)芯片上,故而可以得到更穩(wěn)定的VDD電源電壓和更均衡的接地),從而減少了片上信號(hào)完整性和信號(hào)延遲問(wèn)題。,Virtex-4的結(jié)構(gòu) --電源和地的擴(kuò)展性,Virtex-4的結(jié)構(gòu) --硬IP擴(kuò)展性,采用ASMBE

28、L架構(gòu)支持對(duì)硬硅IP放縮的支持。 對(duì)于在傳統(tǒng)FPGA架構(gòu)中使用直線排列擴(kuò)展IP核,向上擴(kuò)展該核以容納額外的特性可能會(huì)需要更大的FPGA。 在基于ASMBL的FPGA中縮放IP則只是意味著以列的方式增加更多的IP,因此可以適合于已有的FPGA面積。這就有效地將IP縮放問(wèn)題從兩維(直線內(nèi)核)降到一維(按列安排IP,縮放就可以通過(guò)增加IP列來(lái)完成)。從而,設(shè)計(jì)人員不必再為將硅IP核裝入芯片而去尋

29、找更大更貴的芯片。,Virtex-4的結(jié)構(gòu) --硬IP擴(kuò)展性,ASMBL架構(gòu)的另一個(gè)重要特點(diǎn)就是有效地利用了11層金屬層,從而增強(qiáng)了在條帶狀模塊上的芯片布線能力。,Virtex-4系列具有三個(gè)平臺(tái): 1)用于高性能和高密度邏輯綜合應(yīng)用的LX平臺(tái), 2)用于高性能和高密度綜合應(yīng)用的LX平臺(tái), 3)用于高性能信號(hào)處理的SX平臺(tái),用于全功能處理和SoC嵌入式設(shè)計(jì)連接應(yīng)用的FX平臺(tái)

30、。 下面對(duì)這幾個(gè)平臺(tái)進(jìn)行簡(jiǎn)單的介紹,Virtex-4平臺(tái),Virtex-4 LX-面向邏輯優(yōu)化的平臺(tái),最通用的系列是Virtex-4 LX,即邏輯優(yōu)化的FPGA平臺(tái)系列。LX系列功能上與早期的Virtex-II器件類似,沒(méi)有較新的Virtex-II Pro器件中所嵌入的PowerPC處理器或高速串行I/O。所有類型的軟IP內(nèi)核都可在這一平臺(tái)的器件中實(shí)現(xiàn),包括各種各樣的DSP模塊和軟核處理器內(nèi)核。該平臺(tái)的最主要優(yōu)

31、點(diǎn)是使用了高密度集成的通用邏輯單元,從而使其成為成本效率最高的邏輯平臺(tái)。,Virtex-4 LX-面向邏輯優(yōu)化的平臺(tái),Virtex-4 LX平臺(tái)將包括多款從小規(guī)模至大規(guī)模的成員器件,從而使其可適用于多種應(yīng)用。該系列的邏輯密度將比前代FPGA器件提高一倍。在300mm晶圓上應(yīng)用先進(jìn)的90nm制造技術(shù)所帶來(lái)的成本優(yōu)勢(shì),再加上采用成本效率高的器件封裝,將使這一平臺(tái)將被廣泛地接受。 與前一代平臺(tái)FPGA相比更高的時(shí)鐘

32、頻率和更低的功耗將使LX平臺(tái)更適合用于做為替代ASIC的解決方案。,Virtex-4 SX信號(hào)處理/DSP平臺(tái)系列中提高了DSP以及RAM單元與邏輯單元的比例。功能模塊比例的改變使得這一FPGA平臺(tái)器件用于高速信號(hào)處理時(shí)比其它Virtex-4平臺(tái)占用的螺片面積更小。在此基礎(chǔ)上再結(jié)合新的DSP邏輯單元,使得可以在Virtex-4SX平臺(tái)器件中實(shí)現(xiàn)最高性能DSP的同時(shí),成本效率最高。 具備了顯著提高的DSP帶寬,

33、與先前Virtex-II Pro器件相比又大大降低了功耗,使得Virtex-4 SX平臺(tái)提供了比其它任何器件都高的單位成本DSP性能。Virtex-4 DSP專用增強(qiáng)特性包括增加新的工作模式和功能,再與SX平臺(tái)架構(gòu)的其它優(yōu)化相結(jié)合,可支持功能更強(qiáng)大的高級(jí)DSP IP。,Virtex-4 SX-面向信號(hào)處理優(yōu)化的平臺(tái),Virtex-4 FX-全功能平臺(tái),Virtex-4 FX全功能平臺(tái)系列中提供了PowerPC和高速系列收發(fā)器。

34、先進(jìn)的架構(gòu)、功能特性和制造工藝的結(jié)合使得處理器時(shí)鐘可以達(dá)到450MHz。再配合支持從600Mbps到11.1Gbps之間任何速度的高速串行收發(fā)器,F(xiàn)X系列成為功能極為強(qiáng)大的高性能平臺(tái)FPGA系列,可滿足嵌入式計(jì)算處理以及高速互聯(lián)應(yīng)用領(lǐng)域的要求。,Virtex-4 FX-全功能平臺(tái),FX平臺(tái)集成的高級(jí)系統(tǒng)特性對(duì)于電信、存儲(chǔ)和網(wǎng)絡(luò)領(lǐng)域以及其它需要高性能處理和大帶寬I/O的多種應(yīng)用來(lái)說(shuō)非常有用。嵌入式計(jì)算處理領(lǐng)域主要以涉及復(fù)雜數(shù)據(jù)

35、類型的控制流操作為特征。連接應(yīng)用領(lǐng)域則涉及基于消息的計(jì)算處理,并且主要以異步數(shù)據(jù)流操作為主。 Virtex-4全功能平臺(tái)器件最適合實(shí)現(xiàn)這兩個(gè)領(lǐng)域中的應(yīng)用。,可配置的邏輯塊(Configurable Logic Blocks,CLB)是實(shí)現(xiàn)順序和組合電路的最主要的邏輯資源。每個(gè)CLB連接到開(kāi)關(guān)矩陣(Switch Matrix)來(lái)訪問(wèn)一般的布線矩陣(routing matrix)。 每個(gè)CLB單元

36、包含4個(gè)互聯(lián)的slice。這些slice成對(duì)地組合在一起。每一對(duì)組成一列。 SLICEM是指左列的slice對(duì),而SLICEL則是右列的slice對(duì)。一列中的每一個(gè)slice對(duì)都有一個(gè)獨(dú)立進(jìn)位鏈;然而,只有在SLICEM中的slice才有一個(gè)公共的移位鏈。,Virtex-4的邏輯資源Virtex-4的CLB,Virtex-4的邏輯資源Virtex-4的CLB,一個(gè)CLB包括的可用邏輯資源有: 1)4個(gè)Slice;

37、 2)8個(gè)LUT; 3)8個(gè)觸發(fā)器; 4)8個(gè)MULT_ANDS, 5)2個(gè)算術(shù)和進(jìn)位鏈; 6)64比特的分布式RAM; 7)64比特的移位寄存器。,圖2.8 Virtex-4內(nèi)的CLB排列,Virtex-4的邏輯資源Virtex-4的CLB,兩種slice對(duì)(SLICEM和SLICEL)共同有的單元是兩個(gè)函數(shù)發(fā)生器(查表單元),兩個(gè)存儲(chǔ)單元,函數(shù)選擇器,進(jìn)位

38、邏輯和算術(shù)運(yùn)算邏輯。SLICEM和SLICEL使用這些單元來(lái)提供邏輯功能、算術(shù)運(yùn)算功能和ROM功能。 SLICEM還包括兩個(gè)附加功能:使用分布式RAM存貯數(shù)據(jù)以及16位寄存器移位數(shù)據(jù)。SLICEM擁有slice中最多的單元模塊和模塊之間的連接關(guān)系,因此可以說(shuō) SLICEM是一個(gè)“超集”。,Virtex-4的邏輯資源Virtex-4的Slice,Virtex-4的FPGA函數(shù)發(fā)生器作為4輸入的LUT來(lái)實(shí)現(xiàn)。對(duì)于

39、一個(gè)Slice內(nèi)兩個(gè)函數(shù)發(fā)生器(F和G),每個(gè)函數(shù)發(fā)生器都有4個(gè)獨(dú)立的輸入。函數(shù)發(fā)生器能實(shí)現(xiàn)任意定義的4輸入布爾函數(shù)。貫穿LUT的傳播延遲與所實(shí)現(xiàn)的函數(shù)無(wú)關(guān)。來(lái)自函數(shù)發(fā)生器的信號(hào)能離開(kāi)slice(通過(guò)X或Y輸出),進(jìn)入XOR專用門(mén),進(jìn)入進(jìn)位邏輯復(fù)用器選擇線,輸入到存儲(chǔ)元件的D輸入端,或者到MUXF5。,Virtex-4的邏輯資源Virtex-4的LUT,Virtex-4的邏輯資源Virtex-4的LUT,除了基本的LUTs

40、,Virtex-4 FPGA的Slice也包含復(fù)用器(MUXF5和MUXFX)。 這些復(fù)用器用來(lái)連接最多8個(gè)函數(shù)發(fā)生器,用來(lái)提供在CLB內(nèi)的5,6,7,8輸入的任意功能。 MUXFX是MUXF6,MUXF7,MUXF8中的一個(gè),這是根據(jù)CLB內(nèi)的Slice的位置確定。MUXFX也能被用來(lái)映射6,7,8輸入的任意功能,并且可以選擇寬的邏輯功能。功能和最多9個(gè)輸入(MUXF5復(fù)用器)能在一個(gè)Sli

41、ce內(nèi)實(shí)現(xiàn)。 寬功能復(fù)用器在同一個(gè)CLB內(nèi)有效的連接LUTs,或者穿過(guò)不同的CLB來(lái)產(chǎn)生更多輸入變量的邏輯。,Virtex-4的每個(gè)BRAM可存儲(chǔ)18Kb的數(shù)據(jù),數(shù)據(jù)讀出的時(shí)鐘頻率為500MHz。Virtex-4系列最小規(guī)模的FPGA器件包含48個(gè)BRAM;Virtex-4系列最大規(guī)模的FPGA器件具有552個(gè)BRAM。 臨近的BRAM可以通過(guò)級(jí)聯(lián)布線而不需要外部布線來(lái)合并成32kx1的存儲(chǔ)器。

42、 最大規(guī)模的器件上可獲得高達(dá)10MB的存儲(chǔ)器。該存儲(chǔ)器模塊具有許多高級(jí)特性,包括高性能的流水線和多速率先入先出(FIFO)支持。該存儲(chǔ)器模塊的架構(gòu)也可作為雙端口RAM,而且雙端口RAM讀寫(xiě)字寬可獨(dú)立選擇。 該18Kb模塊也可以按用戶的字長(zhǎng)要求以不同的方式配置,從16kx1到512x36不等。,Virtex-4的邏輯資源Virtex-4的BRAM,Virtex-4的邏輯資源Virtex-4的BRAM,當(dāng)

43、然,以特定的實(shí)現(xiàn)方式滿足BRAM的需求是器件自身的一種功能。設(shè)計(jì)人員可以根據(jù)DSP模塊需求,或是存儲(chǔ)器需求選擇Virtex-4系列中的器件。,表2.3給出了Virtex-4LX系列器件中最小規(guī)模和最大規(guī)模器件的邏輯資源比較:,Virtex-4的資源評(píng)估,1.LX15的陣列規(guī)模為64x24 =1536,而LX200的規(guī)模為192x116=22272,因此LX200的陣列規(guī)模和邏輯單元是LX15的大約22272/1536=14.5

44、(200448/13824=14.5)。 2.比較擁有的DSP48 slice的數(shù)目,LX200是LX15的7倍(336/48)。,Virtex-4的資源評(píng)估,Virtex-4的資源評(píng)估-CLB和Slice,1.一個(gè)CLB邏輯模塊具有4個(gè)slice,1CLB=4 slice 2 .1個(gè)slice包括2個(gè)LUT,2個(gè)觸發(fā)器以及算術(shù)邏輯,1 slice= 2x16位LUT+2觸發(fā)器 +算術(shù)邏輯/Mux。

45、 因?yàn)長(zhǎng)X15器件的陣列為64x24=1536CLB,每個(gè)CLB具有4個(gè)slice,則總共有1536x4= 6144個(gè)slice; 3.每個(gè)slice具有2x16位的LUT,總的分布式RAM的容量為16x6144=98304=96x1024= 96kbits(只有SLICEM的LUT可被用作分布式RAM)。 因?yàn)長(zhǎng)X15具有6144個(gè)slice,因此有6144x2位=12288個(gè)觸發(fā)器;

46、 由于LX15具有48個(gè)18位的BRAM,故全部BRAM有48x18 = 864kbits,DSP48 slice是Virtex-4器件上的Xtreme DSP部件。 DSP48 slice 是一種Xilinx開(kāi)發(fā)模型,該模型是ASMBL的一部分。ASMBL被預(yù)先設(shè)計(jì)為具有通用性、易于使用、高效以及優(yōu)化的性能。 提供DSP48的目的是提供一個(gè)“立即可用”的DSP 單元,該單元集合了邏輯電路、存儲(chǔ)器

47、、輸入/輸出、時(shí)鐘接口和管理。,DSP48 Slice結(jié)構(gòu)及功能,DSP48 Slice結(jié)構(gòu),每個(gè)XtremeDSP單元都包括兩個(gè)DSP48 slice,構(gòu)成了一種通用的DSP計(jì)算元件。如圖2.9,DSP48 slice可執(zhí)行一個(gè)18x18位的乘法以產(chǎn)生一個(gè)36位的乘積,該乘積在一個(gè)48位累加器中實(shí)現(xiàn)了累加。(這就是用“48”命名DSP單元的原因)。,圖2.9 DSP48 Slice的內(nèi)部結(jié)構(gòu),DSP48 Slice結(jié)構(gòu),就圖

48、2.9,需要說(shuō)明以下幾點(diǎn): 1.18比特的A總線和B總線并置在一起,A總線是最高有效位 2.X,Y,Z復(fù)用器是48位寬度的,選擇36比特的輸入提供了48比特的帶符號(hào)位擴(kuò)展的輸出 3.乘法器輸出兩個(gè)36比特的部分積,有符號(hào)擴(kuò)展到48比特。部分積輸入到X,Y復(fù)用器。當(dāng)OPMODE選擇復(fù)用器時(shí),使用X和Y復(fù)用器,并且將部分積合成一個(gè)有效的乘法器結(jié)果與加法器/減法器連接。 4.用于P的乘-

49、累加通路要經(jīng)過(guò)Z復(fù)用器。當(dāng)布使用乘法器時(shí),通過(guò)X復(fù)用器的P的反饋使能P級(jí)聯(lián)的累加。,DSP48 Slice結(jié)構(gòu),DSP48 Slice結(jié)構(gòu),5.Wire Shift Right by 17 bit通路截?cái)嗟?7位,并且有符號(hào)擴(kuò)展高17位。 6.在配制器件,用灰色表示的復(fù)用器被編程。 7.共享的C寄存器支持乘加,寬加法或舍入操作。 8.使能SUBTRACT,在加法器/減法器的輸出實(shí)現(xiàn)X-(X

50、+Y+CIN)。 DSP48的一個(gè)主要屬性為易于互連(一個(gè)DSP slice連接著下一個(gè)DSP slice),無(wú)需外部結(jié)構(gòu)的布線。,DSP48 Slice結(jié)構(gòu),大部分DSP都使用一般意義上的乘加,而在目前的FPGA設(shè)計(jì)中,大部分DSP實(shí)際上使用FIR濾波器執(zhí)行乘加。經(jīng)典FIR濾波器算法是DSP48所要實(shí)現(xiàn)的主要算法。輸入信號(hào)可以從一個(gè)slice級(jí)聯(lián)到另一個(gè)slice,因此很容易實(shí)現(xiàn)轉(zhuǎn)置FIR濾波器。,圖2.10

51、給出了DSP48 Slice的符號(hào)描述。,圖2.10 DSP48 Slice接口符號(hào),DSP48 Slice信號(hào),DSP48 Slice可以完成的基本算術(shù)功能有:加/減運(yùn)算,累加運(yùn)算,乘累加運(yùn)算,復(fù)用運(yùn)算,桶型移位運(yùn)算,計(jì)數(shù)器運(yùn)算,除法運(yùn)算,均方根運(yùn)算,平方和均方根運(yùn)算。 1.加/減運(yùn)算 DSP48 Slice在加法器/加法器模式下的輸出可以用式2.1表示: Output=Z

52、±(X+Y+CIN) (2.1) 其中OPMODE設(shè)置Z,Y,X復(fù)用器。 表2.5給出了OPMODE設(shè)置和Z,Y,X復(fù)用器的關(guān)系,DSP48 Slice算術(shù)功能,表2.5 OPMODE設(shè)置和Z,Y,X復(fù)用器的關(guān)系,DSP48 Slice算術(shù)功能,2.累加運(yùn)算 DSP48 slice能實(shí)現(xiàn)加和累加功能(最大36比特輸入)。累加運(yùn)算

53、可以用式2.2表示: Output=Output+A:B+C (2.2)A或B輸入來(lái)自復(fù)用器X,OPMODE[1:0]=11 3.乘累加運(yùn)算 DSP48 Slice允許兩個(gè)18比特的數(shù)一起相乘,產(chǎn)生的積和前面產(chǎn)生的積相加或相減。輸入的被加/被減的積來(lái)自Z復(fù)用器的輸出。,DSP48 Slice算術(shù)功能,4.復(fù)用運(yùn)算

54、 在DSP48 Slice中有三個(gè)類型的復(fù)用器:3:1的Y復(fù)用器;4:1的X復(fù)用器;6:1的Z復(fù)用器。當(dāng)Slice用于復(fù)用器時(shí),只有一個(gè)復(fù)用器被激活。,DSP48 Slice算術(shù)功能,5.桶型移位運(yùn)算 使用兩個(gè)DSP48單元就可以實(shí)現(xiàn)一個(gè)18比特的桶型移位器。進(jìn)行桶型移位18比特的數(shù),A[17:0]向左移動(dòng)兩位,從桶型移位寄存器的輸出是A[15:0],A[17],A[16]。下面給出其操作步驟: 1)第一

55、個(gè)DSP48 Slice用來(lái)將{0,A[17:1]}乘22。DSP48的輸出為{0,A[17:1],0,0}。 2)這個(gè)值與來(lái)自前面Slice的17比特的右移的值{0,A[17],A[16]}相加。 3)18比特加法器的輸出為{A[15:0],A[17],A[16]}。 通過(guò)以上的步驟A[17:0]就向左桶型移位2比特。,DSP48 Slice算術(shù)功能,DSP48 Slice算術(shù)功能,6.計(jì)數(shù)器運(yùn)算

56、 DSP48 Slice能用作1比特的計(jì)數(shù)器。將SUBTRACT=0,CIN=1,OPMODE[6:0]=0100000,則輸出為P+CIN,第一個(gè)時(shí)鐘后,P=0+1=1,隨后的輸出是P+1,這就等效于加1計(jì)數(shù)。當(dāng)SUBTRACT=1,則為減1計(jì)數(shù)器。 計(jì)數(shù)器可以使用C輸入作為預(yù)制的值。設(shè)置進(jìn)位輸入CIN=1和OPMODE[6:0]=0110000,則第一個(gè)周期為P=C+1,隨后的時(shí)鐘周期設(shè)置OPMO

57、DE[6:0]=0100000,來(lái)選擇P=P+1。,7.乘法運(yùn)算 一個(gè)單獨(dú)的DSP48 Slice能實(shí)現(xiàn)一個(gè)18x18有符號(hào)乘法。 通過(guò)在每個(gè)時(shí)鐘周期移動(dòng)合理的比特位,這樣在一個(gè)DSP48 Slice內(nèi)能實(shí)現(xiàn)更大的乘法器。,DSP48 Slice算術(shù)功能,DSP48 Slice算術(shù)功能,8.除法運(yùn)算 在DSP48 Slice內(nèi)通過(guò)移位和減法運(yùn)算可以實(shí)現(xiàn)二進(jìn)制的除法運(yùn)算。DSP48 Slice包括移位寄

58、存器,乘法器和加法器/減法器單元,因此能夠?qū)崿F(xiàn)除法運(yùn)算。算法假設(shè):N>D,并且N和D均為正數(shù)。如果N或D為負(fù)數(shù),則使用正整數(shù)除法,然后加上符號(hào)位。這里的N為被除數(shù),D為除數(shù)。Q和R分別為商和余數(shù)。下面給出移位相減實(shí)現(xiàn)除法運(yùn)算的算法描述:,DSP48 Slice算術(shù)功能,如果N是8比特整數(shù),D不超過(guò)8比特寬,N/D=Q+R 1)R=”00000000” 2)R寄存器左移一位,并且用N[8-n

59、]填充最低位 3)計(jì)算R-D 4)設(shè)置R和Q。如果R-D>0,Q[8-n]=1,R=R-D;否則,Q[0]=0,R=R 5)重復(fù)步驟2-4,每一次用N[8-n]填充R[n],n為迭代次數(shù)。 當(dāng)?shù)?次后,Q[7:0]保留商,R[7:0]保存余數(shù)。,下面給出一種利用相乘實(shí)現(xiàn)除法運(yùn)算的算法描述: N/D=Q+R,所以N=D*(Q+R),其中N和D均為8比特

60、數(shù)。 1)設(shè)置Q[8-n]的初始值為1,其它位為0; 2)計(jì)算D*Q; 3)計(jì)算N-(D*Q)。如果N>(D*Q),Q[8-n]=1,否則Q[8-n]=0; 4)重復(fù)步驟1-3,當(dāng)?shù)?次后,Q[7:0]保留商,R[7:0]保存余數(shù)。,DSP48 Slice算術(shù)功能,DSP48 Slice算術(shù)功能,9.開(kāi)方運(yùn)算 整數(shù)的開(kāi)方運(yùn)算可以通過(guò)連續(xù)的乘和減法

61、運(yùn)算來(lái)實(shí)、現(xiàn)。這和利用減法完成兩個(gè)數(shù)相除類似。N比特整數(shù)的均方根為N/2比特(截?cái)啵?。如果均方根是分?jǐn)?shù),需要N/2個(gè)時(shí)鐘周期用于整數(shù)部分,每一個(gè)時(shí)鐘給出1比特的小數(shù)部分。圖2.11給出了開(kāi)方算法的描述。,圖2.11 均方根算法的原理,DSP48 Slice算術(shù)功能,8位整數(shù)的開(kāi)方運(yùn)算可以用式2.3描述: (2.3)

62、 其中Y為開(kāi)方運(yùn)算的整數(shù)部分,Z為開(kāi)方運(yùn)算的小數(shù)部分。寄存器A為輸入到DSP48 Slice的A輸入。寄存器C為輸入到DSP48 Slice的C輸入。下面給出算法的描述: 1)將數(shù)讀入寄存器C。將寄存器A設(shè)置為“10000000”; 2)計(jì)算C-(A*A); 3)如果C-(A*A)>0,A[(8-clock)]=1,A[(8-clock)-1]=1;否則A[(8-clo

63、ck)]=0,A[(8-clock)-1]=1; 4)重復(fù)步驟1-3。,,DSP48 Slice算術(shù)功能,DSP48 Slice算術(shù)功能,四個(gè)周期后得到Y(jié),計(jì)算Z所需要的時(shí)鐘周期取決于所要求的精度。8個(gè)時(shí)鐘周期得到4比特的Y和4比特的Z。 比如11的開(kāi)方值為3.3166。11的8比特描述為0000,1011。存儲(chǔ)值為0000,1011,0000,0000。寄存器A的輸出為0011,0101。最終的結(jié)

64、果為11.0101。,10.平方和均方根運(yùn)算 在DSP函數(shù)中經(jīng)常使用到平方和。平方和運(yùn)算可以使用基本的乘-累加運(yùn)算實(shí)現(xiàn)。,DSP48 Slice算術(shù)功能,一個(gè)DSP48 Tile由兩個(gè)DSP48 slice、共用的48位C總線和寄存器組成。其特點(diǎn)包括: 1)在一個(gè)DSP48列中,DSP48 slice是垂直堆疊的。 2)DSP48 slice的高度與4個(gè)CLB(16個(gè)slice)或是

65、一個(gè)BRAM的高度相同。 這種規(guī)則性的結(jié)構(gòu)有利于寬數(shù)據(jù)通路的布線安排。 如圖2.12,在Virtex II器件中,18x18乘法器和RAM共用互連線資源。但是在Virtex-4中,BRAM和DSP48 Tile具有各自獨(dú)立的布線。,DSP48 Tile和互連線,圖2.12 Virtex-II和Virtex-4的布線資源,DSP48 Tile和互連線,DSP48算術(shù)運(yùn)算單元可按設(shè)定的適當(dāng)操作模式工作

66、。如圖2.13所示,并生成一個(gè)轉(zhuǎn)置FIR濾波器。該圖表示了一個(gè)4個(gè)系數(shù)的濾波器。如果需要更多的系數(shù),則需要添加更多的DSP48 slice。,基于DSP48 slice的FIR濾波器的設(shè)計(jì)--并行轉(zhuǎn)置 FIR 濾波器,基于DSP48 slice的FIR濾波器的設(shè)計(jì)--并行轉(zhuǎn)置 FIR 濾波器,圖2.13 并行轉(zhuǎn)置FIR濾波器,該并行轉(zhuǎn)置FIR濾波器的特點(diǎn)有: 1)所有的乘法器和加法器的輸入,以及輸出端均具有寄存器

67、,所以時(shí)鐘頻率可達(dá)到最大的500MHz。 2)由于寄存器的延遲,從第一個(gè)數(shù)據(jù)輸入算起,到最后一個(gè)加法器和乘法器的輸出,該濾波器將具有3個(gè)時(shí)鐘的系統(tǒng)延遲。 3)該濾波器的實(shí)現(xiàn)無(wú)需任何外部邏輯,僅由 DSP48模塊組成。 但其缺點(diǎn)是,當(dāng)濾波器系數(shù)個(gè)數(shù)很大時(shí),對(duì)輸入信號(hào)的扇出能力有較高的要求。,基于DSP48 slice的FIR濾波器的設(shè)計(jì)--并行轉(zhuǎn)置 FIR 濾波器,基于DSP48 slic

68、e的FIR濾波器的設(shè)計(jì)--脈動(dòng)FIR濾波器,如圖2.14,通過(guò)設(shè)定適當(dāng)?shù)牟僮髂J剑粋€(gè)脈動(dòng)FIR濾波器也可以使用DSP48 slice 來(lái)實(shí)現(xiàn)。該濾波器的特點(diǎn)有: 1)該架構(gòu)可以達(dá)到DSP48FIR濾波器的最高性能。對(duì)于輸入信號(hào)線沒(méi)有扇出要求。 2)該濾波器無(wú)需外部邏輯便可被實(shí)現(xiàn)。 3)然而,脈動(dòng)特性意味著,一個(gè)N個(gè)系數(shù)的脈動(dòng)FIR濾波器具有長(zhǎng)度為N的系統(tǒng)延遲。,圖2.14 脈動(dòng)濾波器

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論