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

下載本文檔

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

文檔簡(jiǎn)介

1、本章概述 本書(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é)構(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單元。下面給出

2、CLB實(shí)現(xiàn)的功能:圖2.1 CLB的內(nèi)部結(jié)構(gòu) 1. CLB中的slice邏輯可實(shí)現(xiàn)任何的數(shù)字邏輯設(shè)計(jì); 2. Slice在CLB中被互連到一起并且通過(guò)開(kāi)關(guān)矩陣將CLB連接起來(lái); 3Cin和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的CLBVirtex-II的邏輯資源 -Virtex-II的CLB 一旦設(shè)計(jì)人使用VHDL或Verilog語(yǔ)言完成設(shè)計(jì)輸入,設(shè)計(jì)將被綜合,

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

4、實(shí)現(xiàn)用戶(hù)設(shè)計(jì)的邏輯行為操作。Virtex-II的邏輯資源 -Virtex-II的Slice圖2.2 Slice的內(nèi)部結(jié)構(gòu)Virtex-II的邏輯資源 -Virtex-II的Slice Slice可以完成的功能主要有: 1) 用戶(hù)設(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的邏輯資源 -Virtex-II的SliceVirtex-II的邏輯資源 -Virtex-II的Sli

5、ce 寄存器提供了實(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)部使用的是四輸入的LUT。LUT的功能主要有: 1) 一個(gè)4輸入布爾函數(shù)映射到FPGA內(nèi)的LUT中;加載到LUT中的比特位包含了用于配置器件的比特流。 綜合工具將決定用于實(shí)現(xiàn)用戶(hù)設(shè)計(jì)的LUT的內(nèi)容,多數(shù)情況下設(shè)計(jì)人員不需要關(guān)注這一點(diǎn)。偶爾情況下,需要設(shè)計(jì)人員人工指定設(shè)計(jì)的某些部分,并確定LUT的內(nèi)容(例如

6、,該如何將它們連接在一起)。在對(duì)時(shí)間和芯片面積要求極為苛刻的應(yīng)用時(shí),為保證LUT能夠滿(mǎn)足性能要求,就需要設(shè)計(jì)人員進(jìn)行手工優(yōu)化。 這些手工優(yōu)化類(lèi)似于用匯編機(jī)器代碼人工編寫(xiě)部分的軟件代碼,在人工優(yōu)化時(shí),不需要編譯器做這個(gè)工作。Virtex-II的邏輯資源 -Virtex-II查找表 如圖2.3所示,Xilinx的LUT可實(shí)現(xiàn)一個(gè)16位移位寄存器(稱(chēng)為SRL16),并且當(dāng)它與LUT的寄存器連接在一起時(shí),可以在半個(gè)slice中實(shí)現(xiàn)17個(gè)可能的延遲操作。移位寄存器的功能主要有:圖2.3 移位寄存器的結(jié)構(gòu)Virtex-II的邏輯資源 -移位寄存器Virtex-II的邏輯資源 -移位寄存器 移位寄存器可被級(jí)

7、聯(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í)鐘工作頻率。這是需要掌握的一個(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ō)

8、,這是一定會(huì)發(fā)生的。有些信號(hào)會(huì)比其他信號(hào)傳輸?shù)母h(yuǎn)。寄存器之間最長(zhǎng)的信號(hào)路徑被稱(chēng)之為關(guān)鍵路徑。應(yīng)當(dāng)注意的是,寄存器基本上不會(huì)影響數(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ú)法滿(mǎn)足指定應(yīng)用的要求。在這種情況下,設(shè)計(jì)人員必須再回到軟件工具或重新設(shè)計(jì),并嘗試使硬件運(yùn)行得更快的設(shè)計(jì)方法,比如:流水線操作

9、,重設(shè)計(jì),增加軟件工具的努力等級(jí),增加/去除設(shè)計(jì)約束或者手工編輯設(shè)計(jì)以?xún)?yōu)化硬件并縮短關(guān)鍵路徑。 如圖2.5所示,Virtex-II系列的FPGA提供了18Kb的專(zhuān)用塊RAM(Block RAM,BRAM)資源。最大的容量的XC2VP125 FPGA芯片具有556個(gè)BRAM,即總共556*18 =10,008Kb的BRAM資源。BRAM可在器件配置時(shí)被寫(xiě)入,或是在實(shí)際操作中進(jìn)行讀/寫(xiě)操作。 設(shè)計(jì)人員通過(guò)VHDL/Verilog代碼來(lái)指定如何使用RAM底層原語(yǔ)。Virtex-II的邏輯資源 -Virtex-II BRAMVirtex-II的邏輯資源 -Virtex-II BRAM圖2.5 BRAM

10、的布局結(jié)構(gòu) 如圖2.2所示,LUT可存儲(chǔ)16比特?cái)?shù)據(jù)并可被用做16x1的RAM。兩個(gè)LUT可形成一個(gè)32x1單端口RAM,或一個(gè)16x1雙端口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的邏輯資源 -Virtex-II 分布式RAM Virtex-II的FPGA芯片內(nèi)提供

11、了嵌入的硬核乘法器資源,嵌入式乘法器特征主要表現(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引擎; 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仍可被

12、使用,但這時(shí)只有18位。 乘法器可以根據(jù)性能要求只用slice邏輯在FPGA的主邏輯中實(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)位鏈等專(zhuān)有布線資源的補(bǔ)充。Virtex-II的邏輯資源 -Virtex-II 布線資源Virtex-II的邏輯資源 -Virtex-II 布線資源圖2.6 FPGA內(nèi)的布線資源 器件中信號(hào)的布線通常使用工具來(lái)實(shí)現(xiàn)。在FPGA

13、上實(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)傳輸盡可能短的距離。 專(zhuān)用的時(shí)鐘分布線特別地重要,因?yàn)楫?dāng)它們與數(shù)字時(shí)鐘管理模塊(Digital 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)有的串

14、行/并行I/O標(biāo)準(zhǔn); 2)Virtex-II系列的FPGA中,包含多達(dá)24個(gè)RocketIO串行收發(fā)器模塊,每個(gè)收發(fā)器可在大于3.125Gb/s的速率下全雙工運(yùn)行; 3)Virtex-II系列的FPGA中,用戶(hù)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-II I/O模塊 為了將信號(hào)輸入到FPGA以及從FPGA輸出信號(hào),要求信號(hào)能夠被高速地送進(jìn)系統(tǒng)板或者FP

15、GA板上的器件中。 在板級(jí)系統(tǒng)中,遇到的困難常常是信號(hào)串?dāng)_、反射、以及振鈴等,但是如果所支持的I/O標(biāo)準(zhǔn)的數(shù)目被給定,設(shè)計(jì)FPGA與板級(jí)信號(hào)的接口還是比較容易的。 Virtex-II器件有專(zhuān)用的RocketIO模塊處理高速I(mǎi)/O需求,它們也有許多通用I/O引腳選擇以滿(mǎn)足其它的接口需求。 Virtex-4系列的FPGA采用了高級(jí)硅模組 (Advanced Silicon Modular Block,ASMBL)架構(gòu)。如圖2.7所示,ASMBL通過(guò)使用獨(dú)特的基于列的結(jié)構(gòu),實(shí)現(xiàn)了支持多專(zhuān)門(mén)領(lǐng)域應(yīng)用平臺(tái)的概念。每列代表一個(gè)具有專(zhuān)門(mén)功能的硅子系統(tǒng),如邏輯資源、存儲(chǔ)器、I/O、DSP、處理、硬IP和混合信

16、號(hào)等。Xilinx公司通過(guò)組合不同功能列,組裝成面向特定應(yīng)用類(lèi)別的專(zhuān)門(mén)領(lǐng)域FPGA(與專(zhuān)用不同,專(zhuān)用是指一項(xiàng)單一應(yīng)用)。Virtex-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) - ASMBL結(jié)構(gòu)Virtex-4的結(jié)構(gòu) - I/O和陣列相關(guān)性 ASMB

17、L的基于列的結(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塊能放置在芯片周邊以?xún)?nèi),基于ASMBL的芯片采用了倒裝芯片封裝,這樣就允許在芯片的任何位置放置焊盤(pán),而不僅僅局限在芯片的周邊。 倒裝芯片技術(shù)就是將芯片在封裝內(nèi)“上下顛倒”再進(jìn)行裝配,微小焊球?qū)⒏鱾€(gè)焊盤(pán)(I/O、電源等)連接到內(nèi)部封裝互聯(lián)。 然后使用焊球技術(shù)將封裝引腳連接到一塊印刷電路板或其它基片上。除了允許在芯片內(nèi)部放置焊盤(pán)外,

18、倒裝封裝還提供了比壓線封裝更強(qiáng)的散熱能力。 ASMBL架構(gòu)還提供了FPGA中電源和地的分布能力。與把I/O焊盤(pán)放置在FPGA內(nèi)部類(lèi)似,設(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ò)展性 采用ASMBEL架構(gòu)支持對(duì)硬硅IP放縮的支持。 對(duì)于在傳統(tǒng)FPGA架構(gòu)中使用直線排

19、列擴(kuò)展IP核,向上擴(kuò)展該核以容納額外的特性可能會(huì)需要更大的FPGA。 在基于ASMBL的FPGA中縮放IP則只是意味著以列的方式增加更多的IP,因此可以適合于已有的FPGA面積。這就有效地將IP縮放問(wèn)題從兩維(直線內(nèi)核)降到一維(按列安排IP,縮放就可以通過(guò)增加IP列來(lái)完成)。從而,設(shè)計(jì)人員不必再為將硅IP核裝入芯片而去尋找更大更貴的芯片。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)用的

20、LX平臺(tái), 3)用于高性能信號(hào)處理的SX平臺(tái),用于全功能處理和SoC嵌入式設(shè)計(jì)連接應(yīng)用的FX平臺(tái)。 下面對(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器件類(lèi)似,沒(méi)有較新的Virtex-II Pro器件中所嵌入的PowerPC處理器或高速串行I/O。所有類(lèi)型的軟IP內(nèi)核都可在這一平臺(tái)的器件中實(shí)現(xiàn),包括各種各樣的DSP模塊和軟核處理器內(nèi)核。該平臺(tái)的最主要優(yōu)點(diǎn)是使用了高密度集成的通用邏輯單元,從而使其成為成本效率最高的邏輯平臺(tái)。 Virtex-4 L

21、X-面向邏輯優(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í)鐘頻率和更低的功耗將使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é)合

22、新的DSP邏輯單元,使得可以在Virtex-4SX平臺(tái)器件中實(shí)現(xiàn)最高性能DSP的同時(shí),成本效率最高。 具備了顯著提高的DSP帶寬,與先前Virtex-II Pro器件相比又大大降低了功耗,使得Virtex-4 SX平臺(tái)提供了比其它任何器件都高的單位成本DSP性能。Virtex-4 DSP專(zhuān)用增強(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ā)器。先進(jìn)的架構(gòu)、功能特性和制造工藝的結(jié)合使得處理

23、器時(shí)鐘可以達(dá)到450MHz。再配合支持從600Mbps到11.1Gbps之間任何速度的高速串行收發(fā)器,F(xiàn)X系列成為功能極為強(qiáng)大的高性能平臺(tái)FPGA系列,可滿(mǎn)足嵌入式計(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ù)類(lèi)型的控制流操作為特征。連接應(yīng)用領(lǐng)域則涉及基于消息的計(jì)算處理,并且主要以異步數(shù)據(jù)流操作為主。 Virtex-4全功能平臺(tái)器件最適合實(shí)現(xiàn)這兩個(gè)領(lǐng)域中的應(yīng)用。 可配置的邏輯塊(Configurable Logic Bloc

24、ks,CLB)是實(shí)現(xiàn)順序和組合電路的最主要的邏輯資源。每個(gè)CLB連接到開(kāi)關(guān)矩陣(Switch Matrix)來(lái)訪問(wèn)一般的布線矩陣(routing matrix)。 每個(gè)CLB單元包含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的CLBVirtex-4的邏輯資源Virtex-4的CLB 一個(gè)CLB包括的可用邏輯資源有: 1)4個(gè)Slice; 2)8個(gè)

25、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)位邏輯和算術(shù)運(yùn)算邏輯。SLICEM和SLICEL使用這些單元來(lái)提供邏輯功能、算術(shù)運(yùn)算功能和ROM功能。 SLICEM還包括兩個(gè)附加功能:使用分布式RAM存貯數(shù)據(jù)以及16位寄存器移位數(shù)據(jù)。SLICEM擁有slice中最多的單元模塊和模塊之間的連接關(guān)系,因此

26、可以說(shuō) SLICEM是一個(gè)“超集”。Virtex-4的邏輯資源Virtex-4的Slice Virtex-4的FPGA函數(shù)發(fā)生器作為4輸入的LUT來(lái)實(shí)現(xiàn)。對(duì)于一個(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專(zhuān)用門(mén),進(jìn)入進(jìn)位邏輯復(fù)用器選擇線,輸入到存儲(chǔ)元件的D輸入端,或者到MUXF5。 Virtex-4的邏輯資源Virtex-4的LUTVirtex-4的邏輯資源Virtex-4的LUT 除了基本的LUTs,Virtex-4

27、 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è)Slice內(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ī)

28、模的FPGA器件包含48個(gè)BRAM;Virtex-4系列最大規(guī)模的FPGA器件具有552個(gè)BRAM。 臨近的BRAM可以通過(guò)級(jí)聯(lián)布線而不需要外部布線來(lái)合并成32kx1的存儲(chǔ)器。 最大規(guī)模的器件上可獲得高達(dá)10MB的存儲(chǔ)器。該存儲(chǔ)器模塊具有許多高級(jí)特性,包括高性能的流水線和多速率先入先出(FIFO)支持。該存儲(chǔ)器模塊的架構(gòu)也可作為雙端口RAM,而且雙端口RAM讀寫(xiě)字寬可獨(dú)立選擇。 該18Kb模塊也可以按用戶(hù)的字長(zhǎng)要求以不同的方式配置,從16kx1到512x36不等。Virtex-4的邏輯資源Virtex-4的BRAMVirtex-4的邏輯資源Virtex-4的BRAM 當(dāng)然,以特定的實(shí)現(xiàn)方式滿(mǎn)足

29、BRAM的需求是器件自身的一種功能。設(shè)計(jì)人員可以根據(jù)DSP模塊需求,或是存儲(chǔ)器需求選擇Virtex-4系列中的器件。 表2.3給出了Virtex-4LX系列器件中最小規(guī)模和最大規(guī)模器件的邏輯資源比較: 特性 XC4VLX15 XC4VLX200 陣列大小(行x列) 64x24 192x116 Slice 6144 89088 LUT數(shù)量 12288 178176 觸發(fā)器數(shù)量 12288 178176 最大分布式RAM 96Kb 1392Kb XtremeDSP Slice 32 96 18Kb BRAM數(shù)量 48 288 DCM的數(shù)量 4 12 Virtex-4的資源評(píng)估 1LX15的陣列規(guī)模

30、為64x24 =1536,而LX200的規(guī)模為192x116=22272,因此LX200的陣列規(guī)模和邏輯單元是LX15的大約22272/1536=14.5(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。 因?yàn)長(zhǎng)X15器件的陣列為64x24=1536CLB,

31、每個(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ā)器; 由于LX15具有48個(gè)18位的BRAM,故全部BRAM有48x18 = 864kbits DSP48 slice是Virtex-4器件上的Xtreme DSP部件。 DSP48 slice 是一種Xilinx開(kāi)發(fā)模型,該模型是ASMBL的一部分。ASMBL被預(yù)先設(shè)

32、計(jì)為具有通用性、易于使用、高效以及優(yōu)化的性能。 提供DSP48的目的是提供一個(gè)“立即可用”的DSP 單元,該單元集合了邏輯電路、存儲(chǔ)器、輸入/輸出、時(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) 就圖2.9,需要說(shuō)明以下幾點(diǎn): 118比特的A總

33、線和B總線并置在一起,A總線是最高有效位 2X,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的乘-累加通路要經(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) 5Wire Shift Right by 17 bit通路截?cái)嗟?7位,并且有符號(hào)擴(kuò)展高17位。 6在配制器件,用灰色表示的復(fù)用器被

34、編程。 7共享的C寄存器支持乘加,寬加法或舍入操作。 8使能SUBTRACT,在加法器/減法器的輸出實(shí)現(xiàn)X-(X+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給出了DSP48 Slice的符號(hào)描述。圖2.10 DSP48 Slice接口

35、符號(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(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比特輸

36、入)。累加運(yùn)算可以用式2.2表示: Output=Output+A:B+C (2.2)A或B輸入來(lái)自復(fù)用器X,OPMODE1: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)算 在DSP48 Slice中有三個(gè)類(lèi)型的復(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ù),

37、A17:0向左移動(dòng)兩位,從桶型移位寄存器的輸出是A15:0,A17,A16。下面給出其操作步驟: 1)第一個(gè)DSP48 Slice用來(lái)將0,A17:1乘22。DSP48的輸出為0,A17:1,0,0。 2)這個(gè)值與來(lái)自前面Slice的17比特的右移的值0,A17,A16相加。 3)18比特加法器的輸出為A15:0,A17,A16。 通過(guò)以上的步驟A17:0就向左桶型移位2比特。DSP48 Slice算術(shù)功能DSP48 Slice算術(shù)功能 6計(jì)數(shù)器運(yùn)算 DSP48 Slice能用作1比特的計(jì)數(shù)器。將SUBTRACT=0,CIN=1,OPMODE6:0=0100000,則輸出為P+CIN,第一個(gè)時(shí)

38、鐘后,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和OPMODE6:0=0110000,則第一個(gè)周期為P=C+1,隨后的時(shí)鐘周期設(shè)置OPMODE6: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)制的

39、除法運(yùn)算。DSP48 Slice包括移位寄存器,乘法器和加法器/減法器單元,因此能夠?qū)崿F(xiàn)除法運(yùn)算。算法假設(shè):ND,并且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寄存器左移一位,并且用N8-n填充最低位 3)計(jì)算R-D 4)設(shè)置R和Q。如果R-D0,Q8-n=1,R=R-D;否則,Q0=0,R=R 5)重復(fù)步驟2-4,每一次用N8-n填充Rn,n為迭代次數(shù)。 當(dāng)

40、迭代8次后,Q7:0保留商,R7:0保存余數(shù)。 下面給出一種利用相乘實(shí)現(xiàn)除法運(yùn)算的算法描述: N/D=Q+R,所以N=D*(Q+R),其中N和D均為8比特?cái)?shù)。 1)設(shè)置Q8-n的初始值為1,其它位為0; 2)計(jì)算D*Q; 3)計(jì)算N-(D*Q)。如果N(D*Q),Q8-n=1,否則Q8-n=0; 4)重復(fù)步驟1-3,當(dāng)?shù)?次后,Q7:0保留商,R7:0保存余數(shù)。DSP48 Slice算術(shù)功能DSP48 Slice算術(shù)功能 9開(kāi)方運(yùn)算 整數(shù)的開(kāi)方運(yùn)算可以通過(guò)連續(xù)的乘和減法運(yùn)算來(lái)實(shí)、現(xiàn)。這和利用減法完成兩個(gè)數(shù)相除類(lèi)似。N比特整數(shù)的均方根為N/2比特(截?cái)啵?。如果均方根是分?jǐn)?shù),需要N/2個(gè)時(shí)鐘周期

41、用于整數(shù)部分,每一個(gè)時(shí)鐘給出1比特的小數(shù)部分。圖2.11給出了開(kāi)方算法的描述。 圖2.11 均方根算法的原理DSP48 Slice算術(shù)功能 8位整數(shù)的開(kāi)方運(yùn)算可以用式2.3描述: (2.3) 其中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-clock)=0,A(8-clock)-1=1; 4)重

42、復(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é)果為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è)

43、DSP48列中,DSP48 slice是垂直堆疊的。 2)DSP48 slice的高度與4個(gè)CLB(16個(gè)slice)或是一個(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)操作模式工作。如圖2.13所示,并生成一個(gè)轉(zhuǎn)置FIR濾波器。該圖表示了一個(gè)4個(gè)系數(shù)的濾波器。如果

44、需要更多的系數(shù),則需要添加更多的DSP48 slice?;贒SP48 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)所有的乘法器和加法器的輸入,以及輸出端均具有寄存器,所以時(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)的扇出能力有較

45、高的要求?;贒SP48 slice的FIR濾波器的設(shè)計(jì)-并行轉(zhuǎn)置 FIR 濾波器基于DSP48 slice的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)濾波器的結(jié)構(gòu)基于DSP48 slice的FIR濾波器的設(shè)計(jì)-脈動(dòng)FIR濾波器 上面的脈動(dòng)濾波器同樣可以利用FIR濾

46、波器的系數(shù)對(duì)稱(chēng)性來(lái)獲得線性相位。 如圖2.15所示,給出了對(duì)于一個(gè)系數(shù)為h0,h1,h2,h3,h3,h2,h1,h0的8個(gè)系數(shù)的對(duì)稱(chēng)濾波器結(jié)構(gòu)。 基于DSP48 slice的FIR濾波器的設(shè)計(jì)-對(duì)稱(chēng)脈動(dòng)FIR濾波器圖2.15 對(duì)稱(chēng)脈動(dòng)濾波器的結(jié)構(gòu)基于DSP48 slice的FIR濾波器的設(shè)計(jì)-對(duì)稱(chēng)脈動(dòng)FIR濾波器 MACC或MAC(乘-累加)FIR濾波器可產(chǎn)生N個(gè)系數(shù)的FIR濾波器,這種濾波器使用一個(gè)乘法器并反復(fù)累加結(jié)果N次。 對(duì)于Virtex-II器件,MACC FIR濾波器的實(shí)現(xiàn)使用了片上乘法器、BRAM存儲(chǔ)數(shù)據(jù)與濾波器系數(shù),以及累加的邏輯結(jié)構(gòu)。 如圖2.16所示,對(duì)于Virtex-4器

47、件,DSP48使用BRAM來(lái)實(shí)現(xiàn)MACC FIR濾波器。圖中,BRAM被用來(lái)保存數(shù)據(jù)和系數(shù)。如果系數(shù)個(gè)數(shù)不多,可以使用邏輯結(jié)構(gòu)存儲(chǔ)系數(shù)?;贒SP48 slice的FIR濾波器的設(shè)計(jì)- MACC FIR濾波器圖2.16 MACC濾波器的結(jié)構(gòu)基于DSP48 slice的FIR濾波器的設(shè)計(jì)- MACC FIR濾波器 在最后一次加法被執(zhí)行之后,48位累加值被截短為上面結(jié)構(gòu)中的18位。為了提供48位到18位的舍入,需要增加一個(gè)額外的時(shí)鐘周期以便在最后一次加法中實(shí)現(xiàn)舍入(由于舍入需要一個(gè)額外的加法)。舍入模式如圖2.17所示?;贒SP48 slice的FIR濾波器的設(shè)計(jì)-帶舍入功能的MACC FIR濾

48、波器基于DSP48 slice的FIR濾波器的設(shè)計(jì)-帶舍入功能的MACC FIR濾波器圖2.17 帶舍入功能的 MACC FIR 濾波器的結(jié)構(gòu) 由于四舍五入的需要,濾波器需要N+1次迭代。 DSP48 slice 內(nèi)置的舍入功能保證了濾波器的性能并且最小化了FPGA邏輯結(jié)構(gòu)的使用。DSP48 slice中舍入是使用C輸入端口和進(jìn)位端口實(shí)現(xiàn)的。舍入可通過(guò)下列方式獲得: 1)對(duì)于正數(shù):二進(jìn)制數(shù)值 + 0.10000,然后截?cái)?2)對(duì)于負(fù)數(shù):二進(jìn)制數(shù)值 + 0.01111.,然后截?cái)?也可以在不需要額外時(shí)鐘的情況下通過(guò)把一個(gè)常數(shù)加到第一個(gè)內(nèi)部乘積中來(lái)實(shí)現(xiàn)舍入。在通常情況下,這樣的操作是可行的。但在有

49、些情況下會(huì)產(chǎn)生錯(cuò)誤的結(jié)果。本來(lái)結(jié)果為正,但最后一個(gè)內(nèi)部乘積可能引起結(jié)果變負(fù)?;贒SP48 slice的FIR濾波器的設(shè)計(jì)-帶舍入功能的MACC FIR濾波器 如果濾波器的系數(shù)對(duì)稱(chēng),則需要添加一個(gè)額外的加法器來(lái)滿(mǎn)足該對(duì)稱(chēng)濾波器的預(yù)加的需求。 由于該額外的加法器被添加到關(guān)鍵路徑中,因此可能的最大時(shí)鐘速率將降低。 對(duì)于上述結(jié)構(gòu),一個(gè)顧慮是,如果預(yù)加的兩個(gè)輸入數(shù)據(jù)均為18位,則結(jié)果可能發(fā)生溢出。因此為了確保該情況不會(huì)出現(xiàn),設(shè)計(jì)者需要確認(rèn)數(shù)值不超過(guò)17位。基于DSP48 slice的FIR濾波器的設(shè)計(jì)-對(duì)稱(chēng)MAC濾波器圖2.18 對(duì)稱(chēng)MAC 濾波器結(jié)構(gòu)基于DSP48 slice的FIR濾波器的設(shè)計(jì)-對(duì)

50、稱(chēng)MAC濾波器 用來(lái)提高M(jìn)ACC FIR濾波器數(shù)據(jù)吞吐量的技術(shù)是增加用于處理數(shù)據(jù)的乘法器的數(shù)量。這就將并行度引入到DSP設(shè)計(jì)中,能被推測(cè)出完整的并行技術(shù)來(lái)支持最高的采樣率。 圖2.19和圖2.20所示,雙乘法器MACC FIR濾波器能通過(guò)兩個(gè)DSP Slice實(shí)現(xiàn)。圖2.19所示,兩個(gè)MACC引擎中的每個(gè)MACC的系數(shù)被累加。這些部分結(jié)果必須連到一起,然后被截?cái)鄟?lái)實(shí)現(xiàn)最后的結(jié)果。如圖2.20,這個(gè)過(guò)程使用一個(gè)額外的周期和DSP48 Slice的OPMODE?;贒SP48 slice的FIR濾波器的設(shè)計(jì)-雙乘法器MACC FIR濾波器圖2.19 兩個(gè)乘法器的MACC FIR濾波器結(jié)構(gòu)基于DSP

51、48 slice的FIR濾波器的設(shè)計(jì)-雙乘法器MACC FIR濾波器圖2.20 需要額外周期的兩個(gè)乘法器的MACC FIR濾波器結(jié)構(gòu)基于DSP48 slice的FIR濾波器的設(shè)計(jì)-雙乘法器MACC FIR濾波器 Virtex-5 FPGA基于65納米的三柵極氧化層技術(shù),使用先進(jìn)的硅組合模塊(ASMBL)架構(gòu)并且實(shí)現(xiàn)了更高級(jí)別的系統(tǒng)集成。 這個(gè)全新的產(chǎn)品系列提供了一個(gè)高級(jí)平臺(tái),可以滿(mǎn)足設(shè)計(jì)者對(duì)于建造具有更高性能、更高密度、更低功耗和更低成本的可編程系統(tǒng)日益增長(zhǎng)的需求。 Virtex-5平臺(tái)結(jié)構(gòu) 為以下四個(gè)新平臺(tái)創(chuàng)造了最佳條件: 1) 針對(duì)高性能邏輯進(jìn)行優(yōu)化的LX平臺(tái); 2)針對(duì)具有低功耗串行I/

52、O的高性能邏輯進(jìn)行優(yōu)化的LXT平臺(tái) 3)針對(duì)具有低功耗串行I/O的高性能算術(shù)和存儲(chǔ)密集型DSP進(jìn)行優(yōu)化的SXT平臺(tái) 4) 針對(duì)嵌入式處理和超高速串行I/O進(jìn)行優(yōu)化的FXT平臺(tái) 相對(duì)于Virtex-4 系列,Virtex-5 系列中配置最高的型號(hào)的平均速度提高了30%,容量提高了65%,動(dòng)態(tài)功耗降低了35%,芯片面積縮小了45%,結(jié)果實(shí)現(xiàn)了達(dá)到每項(xiàng)功能的最低成本。 Virtex-5平臺(tái)結(jié)構(gòu) ExpressFabric技術(shù)實(shí)現(xiàn)了邏輯和局部互連布線。它將查找表(LUT)、六個(gè)獨(dú)立的輸入和一個(gè)新的對(duì)角互連結(jié)構(gòu)結(jié)合在一起。相對(duì)于Virtex-4架構(gòu)而言,ExpressFabric技術(shù)利用更少的LUT層次

53、以及更少的串行連接(面向相鄰構(gòu)件)實(shí)現(xiàn)了組合邏輯。這種方法縮短了數(shù)據(jù)通路延遲,從而提高了設(shè)計(jì)性能。 Virtex-5平臺(tái)結(jié)構(gòu)Virtex-5平臺(tái)結(jié)構(gòu) 這種新的對(duì)角對(duì)稱(chēng)互連模式通過(guò)在更少的布線跳接中獲得更多的空間來(lái)提高性能。使用Virtex-5FPGA 使該模式更加對(duì)稱(chēng),同時(shí)利用更少的跳接到達(dá)了更多的CLB。憑借布局布線軟件工具,這種對(duì)稱(chēng)性可以取得更好的結(jié)果。這些特性對(duì)于Virtex-5 FPGA的設(shè)計(jì)來(lái)說(shuō)是完全透明的,并且能夠被ISE軟件工具自動(dòng)執(zhí)行,從而帶來(lái)更加簡(jiǎn)單的可布線性和更好的總體性能。 Virtex-5平臺(tái)結(jié)構(gòu) 多年以來(lái),四輸入LUT一直是業(yè)界標(biāo)準(zhǔn)。但是,在65納米工藝條件下,相較于

54、其它電路(特別是互連電路),LUT的常規(guī)結(jié)構(gòu)大大縮小。一個(gè)具有四倍比特位的六輸入LUT(6-LUT)僅僅將CLB 面積提高了15%,但是平均而言,每個(gè)LUT上可集成的邏輯數(shù)量卻增加了40%。 更高的邏輯密度通??梢越档图?jí)聯(lián)LUT的數(shù)目,并且改進(jìn)關(guān)鍵路徑延遲性能。 Virtex-5FPGA提供了真正的6-LUT,可以將它用作邏輯或者分布式存儲(chǔ)器,這時(shí)LUT是一個(gè)64位的分布式RAM(甚至雙端口或者四端口)或者一個(gè)32位可編程移位寄存器。每個(gè)LUT具有兩個(gè)輸出,從而實(shí)現(xiàn)了五個(gè)變量的兩個(gè)邏輯函數(shù),存儲(chǔ)32x2RAM比特,或者作為16x2比特的移位寄存器。 Virtex-5平臺(tái)結(jié)構(gòu)Virtex-5的邏

55、輯資源 Virtex-5的CLB CLB是用來(lái)實(shí)現(xiàn)順序和組合邏輯電路的主要邏輯資源。如圖2.21,每個(gè)CLB與開(kāi)關(guān)矩陣(Switch Matrix)連接。每個(gè)CLB包含一個(gè)Slice對(duì)。這兩個(gè)Slice之間并沒(méi)有直接連接在一起,每個(gè)Slice按列組織。列中的每個(gè)Slice有一個(gè)獨(dú)立的進(jìn)位鏈。對(duì)于每一個(gè)CLB,在CLB底部的Slice被標(biāo)記為SLICE(0),在CLB頂部的Slice被標(biāo)記為Slice(1)。圖2.21 CLB內(nèi)的Slice的布局Virtex-5的邏輯資源 Virtex-5的CLB Xilinx的設(shè)計(jì)工具使用下面的定義來(lái)標(biāo)記Slice?!癤”加一個(gè)數(shù)字表示對(duì)內(nèi)的每個(gè)Slice在列

56、中的位置。 “X”后的數(shù)字從底部開(kāi)始以0,1計(jì)數(shù)(第一個(gè)CLB列),2,3(第二個(gè)CLB列);等; “Y”加一個(gè)數(shù)字表示對(duì)內(nèi)的每個(gè)Slice在行中的位置。在CLB內(nèi)的Y后的數(shù)字是保持一樣的,但是從一個(gè)CLB列到另一個(gè)CLB列以順序方式遞增(從底部開(kāi)始)。圖2.22給出了CLB和Slice的行和列的關(guān)系。Virtex-5的邏輯資源 Virtex-5的CLB Virtex-5的邏輯資源 Virtex-5的CLB 一個(gè)CLB包括的可用邏輯資源有: 1) 2個(gè)Slice; 2) 8個(gè)LUT; 3) 8個(gè)觸發(fā)器; 4) 2個(gè)算術(shù)和進(jìn)位鏈; 5) 256比特的分布式RAM; 6) 128比特的移位寄存器。

57、 圖2.22 CLB和Slice的行和列的關(guān)系Virtex-5的邏輯資源 Virtex-5的CLB 每個(gè)Slice包括四個(gè)邏輯函數(shù)發(fā)生器(或者LUT),四個(gè)存儲(chǔ)元件,多功能的復(fù)用器和進(jìn)位邏輯。這些元件被Slice用來(lái)提供邏輯運(yùn)算、算術(shù)運(yùn)算和ROM功能。 此外,一些Slice還支持兩個(gè)額外的功能:使用分布式RAM存儲(chǔ)數(shù)據(jù)和使用32位的寄存器對(duì)數(shù)據(jù)進(jìn)行移位操作。支持這些額外功能的Slice稱(chēng)為SLICEM;其它Slice稱(chēng)為SLICEL。SLICEM表示元件的一個(gè)超集,在所有的Slice找到連接。Virtex-5的邏輯資源 -Virtex-5的SliceVirtex-5的邏輯資源 -Virtex-

58、5的Slice 在Virtex-5內(nèi)的函數(shù)發(fā)生器是通過(guò)六輸入的查找表實(shí)現(xiàn)的。 每個(gè)函數(shù)發(fā)生器(LUT)有6個(gè)獨(dú)立的輸入(A輸入-A1到A6)和兩個(gè)獨(dú)立的輸出O5和O6。函數(shù)發(fā)生器能實(shí)現(xiàn)任意定義的6輸入的布爾函數(shù)。每個(gè)函數(shù)發(fā)生器也能實(shí)現(xiàn)兩個(gè)任意定義的5輸入的布爾函數(shù)(只要這兩個(gè)函數(shù)共享輸入)。 1) 當(dāng)實(shí)現(xiàn)6輸入的函數(shù)發(fā)生器時(shí),只使用O6輸入。 2) 當(dāng)實(shí)現(xiàn)5輸入的函數(shù)發(fā)生器時(shí),使用O5和O6輸出,在這種情況下,A6被驅(qū)動(dòng)為高電平。 LUT的傳播延遲獨(dú)立于所實(shí)現(xiàn)的函數(shù)(不管是6輸入實(shí)現(xiàn)還是5輸入實(shí)現(xiàn))。Virtex-5的邏輯資源 -Virtex-5的Slice 來(lái)自函數(shù)發(fā)生器的信號(hào)能離開(kāi)slic

59、e(通過(guò)O6的A,B,C,D輸出或者O5的AMUX,BMUX,CMUX,DMUX輸出),進(jìn)入到來(lái)自O(shè)6專(zhuān)用的異或門(mén),進(jìn)入到來(lái)自O(shè)5輸出的進(jìn)位邏輯鏈,進(jìn)入到O6輸出的進(jìn)位邏輯復(fù)用器的選擇線,或者到來(lái)自O(shè)6輸出的F7MUX/F7BMUX。 除了基本的LUT,Slice包含了三個(gè)復(fù)用器(F7AMUX,F(xiàn)7BMUX,F(xiàn)8CMUX)。這些復(fù)用器(多路選擇器)用來(lái)連接最多4個(gè)函數(shù)發(fā)生器來(lái)提供任意7/8輸入的函數(shù)功能。 F7AMUX,F(xiàn)7BMUX用來(lái)產(chǎn)生來(lái)自LUT A,B,C,D的7輸入函數(shù),F(xiàn)8CMUX用來(lái)連接所有的Slice產(chǎn)生8輸入函數(shù)。多余8輸入的函數(shù)可用多個(gè)Slice實(shí)現(xiàn)。Virtex-5的邏輯資

60、源 -Virtex-5的SliceVirtex-5的邏輯資源 -Virtex-5的Slice 多路選擇器(MUX)就是清楚地說(shuō)明ExpressFabric技術(shù)好處的例子之一。如圖2.23所示,在Virtex-4架構(gòu)中實(shí)現(xiàn)一個(gè)4:1 MUX需要兩個(gè)4輸入LUT和一個(gè)MUXF模塊;同樣的4:1 MUX現(xiàn)在可以在Virtex-5器件中用一個(gè)LUT來(lái)實(shí)現(xiàn)。類(lèi)似地,在Virtex-4架構(gòu)中實(shí)現(xiàn)一個(gè)8:1 MUX需要四個(gè)LUT和三個(gè)MUXF模塊;而新的Virtex-5架構(gòu)僅僅需要兩個(gè)6-LUT,因此,性能更高且邏輯利用更佳。 圖2.23 多路選擇器的實(shí)現(xiàn)比較Virtex-5的邏輯資源 -Virtex-5的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論