版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第2章 FPGA的硬件結(jié)構(gòu)及運(yùn)算功能,何賓 2009.08,本章概述,本書所有的信號處理的實(shí)現(xiàn)都是在Xilinx公司的FPGA芯片上實(shí)現(xiàn)。 本章主要介紹Xilinx的三個最重要的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ù)字信號處理算法打下良好基礎(chǔ)。,Virtex-II的邏輯資源 --Virtex-II的CLB,如圖所示,Xilinx的Virtex-II系列的FPGA內(nèi)的一個CLB包含四片slice單元,而Virtex和Spartan系列的FPGA每個CLB 包含兩片slice單元。下面給出CLB實(shí)現(xiàn)的功能:,圖2.1 CLB的內(nèi)部結(jié)構(gòu),1. CLB中的slice邏輯可實(shí)現(xiàn)任何的數(shù)字邏輯設(shè)計;
3、 2. Slice在CLB中被互連到一起并且通過開關(guān)矩陣將CLB連接起來; 3.Cin和Cout信號對實(shí)現(xiàn)算術(shù)功能非常重要。每個CLB列中存在兩個相互獨(dú)立的Cin/Cout列; 4.一片slice可實(shí)現(xiàn)一個2位全加器,所以一個CLB可實(shí)現(xiàn)兩個獨(dú)立的4位全加器,作為與其它CLB 協(xié)同工作的高位寬度加法運(yùn)算的一部分。,Virtex-II的邏輯資源 --Virtex-II的CLB,Virtex-II的邏輯資源
4、 --Virtex-II的CLB,一旦設(shè)計人使用VHDL或Verilog語言完成設(shè)計輸入,設(shè)計將被綜合,并得出一個在指定FPGA上實(shí)現(xiàn)的方案。設(shè)計者指定目標(biāo)器件的類型(比如廠商,系列,規(guī)格,封裝類型,速率等級)。綜合處理是一個復(fù)雜的過程,它將任何可綜合的VHDL/Verilog通過軟件工具轉(zhuǎn)轉(zhuǎn)換為FPGA可以識別的比特流文件。 對于Xilinx的產(chǎn)品,綜合工具將決定如何使用可用的slice邏輯來執(zhí)行設(shè)計的數(shù)字邏輯
5、操作。由FPGA制造商提供的工具通過一系列的復(fù)雜操作來接收設(shè)計文件,其目的是將設(shè)計轉(zhuǎn)化成一種比特流,該比特流可被下載并對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è)計的邏輯行為操作。,Virtex-II的邏輯資源 --Virtex-II的Slice,圖2.2 Slice的內(nèi)部結(jié)構(gòu),Virtex
6、-II的邏輯資源 --Virtex-II的Slice,Slice可以完成的功能主要有: 1) 用戶設(shè)計功能的絕大部分可通過CLB中的slice來實(shí)現(xiàn); 2) 不同slice之間存在著多種互連的可行性; 3) LUT可實(shí)現(xiàn)任何4輸入布爾函數(shù)。絕大部分的數(shù)字邏輯設(shè)計均可使用4輸入LUT執(zhí)行邏輯操作來實(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工作頻率較高時,正確的使用寄存器顯得十分重要,不正確的使用寄存器將降低系統(tǒng)的工作性能; 2)多路復(fù)用器和CY單元提供了slice中信號布線的可能性; 3)底部還包括了算術(shù)邏輯與門單元,使得乘法的實(shí)現(xiàn)更為有效。,Virtex-II的FPGA內(nèi)
8、部使用的是四輸入的LUT。LUT的功能主要有: 1) 一個4輸入布爾函數(shù)映射到FPGA內(nèi)的LUT中;加載到LUT中的比特位包含了用于配置器件的比特流。 綜合工具將決定用于實(shí)現(xiàn)用戶設(shè)計的LUT的內(nèi)容,多數(shù)情況下設(shè)計人員不需要關(guān)注這一點(diǎn)。偶爾情況下,需要設(shè)計人員人工指定設(shè)計的某些部分,并確定LUT的內(nèi)容(例如,該如何將它們連接在一起)。在對時間和芯片面積要求極為苛刻的應(yīng)用時,為保證LUT能夠滿足性能要
9、求,就需要設(shè)計人員進(jìn)行手工優(yōu)化。 這些手工優(yōu)化類似于用匯編/機(jī)器代碼人工編寫部分的軟件代碼,在人工優(yōu)化時,不需要編譯器做這個工作。,Virtex-II的邏輯資源 --Virtex-II查找表,如圖2.3所示,Xilinx的LUT可實(shí)現(xiàn)一個16位移位寄存器(稱為SRL16),并且當(dāng)它與LUT的寄存器連接在一起時,可以在半個slice中實(shí)現(xiàn)17個可能的延遲操作。移位寄存器的功能主要有:,圖2.3 移位寄存器的結(jié)構(gòu),V
10、irtex-II的邏輯資源 --移位寄存器,Virtex-II的邏輯資源 --移位寄存器,移位寄存器可被級聯(lián)以構(gòu)成更長的延時; 可以使用地址線在任何一點(diǎn)對延遲線進(jìn)行選擇,這樣就可以產(chǎn)生長度小于最大延遲的任何延遲。,在FPGA內(nèi),一方面,由于信號必須通過LUT或數(shù)據(jù)線進(jìn)行傳輸,因此FPGA的時鐘工作頻率通常由寄存器間的最長路徑所限制;另一方面,使用slice寄存器使最長路徑盡可能最短,這樣可以最大限度地提高時鐘工
11、作頻率。這是需要掌握的一個 FPGA 設(shè)計的基本設(shè)計原理。,Virtex-II的邏輯資源 --寄存器與流水線,Virtex-II的邏輯資源 --寄存器與流水線,如圖2.4所示,在每個時鐘沿上,信號在到達(dá)下一個觸發(fā)器之前,必須通過布線、LUT和MUX等傳輸數(shù)據(jù)。在每個時鐘沿上,對器件上的所有信號來說,這是一定會發(fā)生的。有些信號會比其他信號傳輸?shù)母h(yuǎn)。寄存器之間最長的信號路徑被稱之為關(guān)鍵路徑。應(yīng)當(dāng)注意的是,寄存器基本上不會影
12、響數(shù)據(jù)延遲,因為每個LUT都與一個寄存器組成對,而這些寄存器可以按照要求存儲LUT的輸出。,圖2.4 寄存器傳輸性能比較,Virtex-II的邏輯資源 --寄存器與流水線,Virtex-II的邏輯資源 --寄存器與流水線,正是這些關(guān)鍵路徑?jīng)Q定了FPGA可以達(dá)到的最高時鐘速率。 注意設(shè)計人員可根據(jù)需要任意選擇時鐘率。 如果關(guān)鍵路徑過長,設(shè)計的時鐘頻率將很可能無法滿足指定應(yīng)用的要求。在這種情況下,
13、設(shè)計人員必須再回到軟件工具或重新設(shè)計,并嘗試使硬件運(yùn)行得更快的設(shè)計方法,比如:流水線操作,重設(shè)計,增加軟件工具的努力等級,增加/去除設(shè)計約束或者手工編輯設(shè)計以優(yōu)化硬件并縮短關(guān)鍵路徑。,如圖2.5所示,Virtex-II系列的FPGA提供了18Kb的專用塊RAM(Block RAM,BRAM)資源。最大的容量的XC2VP125 FPGA芯片具有556個BRAM,即總共556*18 =10,008Kb的BRAM資源。BRAM可
14、在器件配置時被寫入,或是在實(shí)際操作中進(jìn)行讀/寫操作。 設(shè)計人員通過VHDL/Verilog代碼來指定如何使用RAM底層原語。,Virtex-II的邏輯資源 --Virtex-II BRAM,Virtex-II的邏輯資源 --Virtex-II BRAM,圖2.5 BRAM的布局結(jié)構(gòu),如圖2.2所示,LUT可存儲16比特數(shù)據(jù)并可被用做16x1的RAM。兩個LUT可形成一個32x1單端口RAM,或一個16x1雙端口
15、RAM(即使用同一個地址從兩個RAM中得到數(shù)據(jù))。 對于DSP的應(yīng)用。在器件上任意位置建立小型1,738Kb的分布式RAM。因為RAM的功能對DSP的實(shí)現(xiàn)極其重要。 使用一個小型分布式RAM的范例可作為通信系統(tǒng)中使用的碎片序列。該序列將被保存到系統(tǒng)中需要它“碎裂”數(shù)據(jù)的位置。 使用小型RAM配置形成更大的單/雙端口配置是對FPGA靈活性的進(jìn)一步的要求。,Virtex-II的邏輯資
16、源 --Virtex-II 分布式RAM,Virtex-II的FPGA芯片內(nèi)提供了嵌入的硬核乘法器資源,嵌入式乘法器特征主要表現(xiàn)在以下幾個方面: 1)乘法器按列排列在CLB之間; 2)乘法器為18x18位,并且與BRAM相關(guān)聯(lián)以便于存取數(shù)據(jù); 3)這些硬核乘法器可以是組合型或者流水線型,其工作頻率可以高于300MHz。 4)將嵌入式乘法器與LUT結(jié)合實(shí)現(xiàn)的累加器可以創(chuàng)建MAC引擎;
17、 5)可以級聯(lián)以構(gòu)成更多位數(shù)的乘法器。,Virtex-II的邏輯資源 --Virtex-II 嵌入式乘法器,Virtex-II的邏輯資源 --Virtex-II 嵌入式乘法器,每個嵌入式乘法器與其臨近的BRAM結(jié)合在一起,因此這些單元共享互連資源。 當(dāng)乘法器不與 BRAM結(jié)合而單獨(dú)使用時,BRAM仍可被使用,但這時只有18位。 乘法器可以根據(jù)性能要求只用slice邏輯在FPGA的主邏輯中
18、實(shí)現(xiàn),或者用BRAM與slice組合來實(shí)現(xiàn)乘法器模塊。在沒有嵌入式乘法器可用,或者設(shè)計的定時要求過于嚴(yán)格時,則必須用這種方法產(chǎn)生乘法器。,如圖2.6,Virtex-II系列的FPGA內(nèi)包括了大量可將器件的不同部分連接起來的布線資源,CLB之間的可配置布線邏輯(通過轉(zhuǎn)換開關(guān))是對時鐘信號,進(jìn)位鏈等專有布線資源的補(bǔ)充。,Virtex-II的邏輯資源 --Virtex-II 布線資源,Virtex-II的邏輯資源 --Virte
19、x-II 布線資源,圖2.6 FPGA內(nèi)的布線資源,器件中信號的布線通常使用工具來實(shí)現(xiàn)。在FPGA上實(shí)現(xiàn)一種設(shè)計有很多可能方案,軟件工具可能需要花費(fèi)許多時間來為一個合理設(shè)計產(chǎn)生一個比特流。 因為不同的布線選擇取決于一個信號必須傳輸多遠(yuǎn),因此布線的各種可能性按層次結(jié)構(gòu)進(jìn)行描述。很明顯,為了保證高的時鐘速率,應(yīng)該使信號傳輸盡可能短的距離。 專用的時鐘分布線特別地重要,因為當(dāng)它們與數(shù)字時鐘管理模塊(Dig
20、ital Clock Management,DCM)結(jié)合時,它們允許高速時鐘在未發(fā)生扭曲的情況下驅(qū)動器件。,Virtex-II的邏輯資源 --Virtex-II 布線資源,Virtex-II系列的FPGA可與板級/系統(tǒng)級上的背板、總線和其它系統(tǒng)接口。其I/O端口的主要性能有: 1)支持大多數(shù)現(xiàn)有的串行/并行I/O標(biāo)準(zhǔn); 2)Virtex-II系列的FPGA中,包含多達(dá)24個RocketIO串行收發(fā)器模
21、塊,每個收發(fā)器可在大于3.125Gb/s的速率下全雙工運(yùn)行; 3)Virtex-II系列的FPGA中,用戶I/O引腳支持許多高達(dá)840Mbps LVDS(低電壓差分信號)的單端或差分信號標(biāo)準(zhǔn); 4)Virtex-II Pro X系列支持高達(dá)20個速率為10.3125Gbp/s的信道。,Virtex-II的邏輯資源 --Virtex-II I/O模塊,Virtex-II的邏輯資源 --Virtex-
22、II I/O模塊,為了將信號輸入到FPGA以及從FPGA輸出信號,要求信號能夠被高速地送進(jìn)系統(tǒng)板或者FPGA板上的器件中。 在板級系統(tǒng)中,遇到的困難常常是信號串?dāng)_、反射、以及振鈴等,但是如果所支持的I/O標(biāo)準(zhǔn)的數(shù)目被給定,設(shè)計FPGA與板級信號的接口還是比較容易的。 Virtex-II器件有專用的RocketIO模塊處理高速I/O需求,它們也有許多通用I/O引腳選擇以滿足其它的接口需求。,Virte
23、x-4系列的FPGA采用了高級硅模組 (Advanced Silicon Modular Block,ASMBL)架構(gòu)。如圖2.7所示,ASMBL通過使用獨(dú)特的基于列的結(jié)構(gòu),實(shí)現(xiàn)了支持多專門領(lǐng)域應(yīng)用平臺的概念。每列代表一個具有專門功能的硅子系統(tǒng),如邏輯資源、存儲器、I/O、DSP、處理、硬IP和混合信號等。Xilinx公司通過組合不同功能列,組裝成面向特定應(yīng)用類別的專門領(lǐng)域FPGA(與專用不同,專用是指一項單一應(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)從兩個級別對設(shè)計進(jìn)行了提升,一是解決基于應(yīng)用領(lǐng)域的設(shè)計問題;二是解決在傳統(tǒng)ASIC和FPGA設(shè)計中都存在的一些技術(shù)約束問題。 特別指出,ASMBL成功的緩解了與I/O和陣列相關(guān)性、電源和地分布、以及硬IP縮放相關(guān)的約束問題。下面對這幾個問題進(jìn)行簡單的介紹:,Virtex-4的結(jié)構(gòu)
25、-- ASMBL結(jié)構(gòu),Virtex-4的結(jié)構(gòu) -- I/O和陣列相關(guān)性,ASMBL的基于列的結(jié)構(gòu)消除了同時困擾內(nèi)核約束型和焊盤約束型設(shè)計的面積-周長相關(guān)性問題。 使用ASMBL架構(gòu)的芯片,只需要分配更多的列給I/O功能就可以容納額外的I/O焊盤,而不需要增加芯片面積總體尺寸。,Virtex-4的結(jié)構(gòu) -- I/O和陣列相關(guān)性,為了使基于列結(jié)構(gòu)的I/O塊能放置在芯片周邊以內(nèi),基于ASMBL的芯片采用了倒裝芯片封裝
26、,這樣就允許在芯片的任何位置放置焊盤,而不僅僅局限在芯片的周邊。 倒裝芯片技術(shù)就是將芯片在封裝內(nèi)“上下顛倒”再進(jìn)行裝配,微小焊球?qū)⒏鱾€焊盤(I/O、電源等)連接到內(nèi)部封裝互聯(lián)。 然后使用焊球技術(shù)將封裝引腳連接到一塊印刷電路板或其它基片上。除了允許在芯片內(nèi)部放置焊盤外,倒裝封裝還提供了比壓線封裝更強(qiáng)的散熱能力。,ASMBL架構(gòu)還提供了FPGA中電源和地的分布能力。與把I/O焊盤放置在FPGA內(nèi)部類似
27、,設(shè)計者可以將電源和地焊盤布局在芯片內(nèi)部的任何位置。 ASMBL對內(nèi)部電源和地焊盤的支持極大地簡化了均衡整個FPGA器件電源分布的任務(wù)。同時這還減少了電源下降、接地反彈和時鐘畸變(因為時鐘緩沖器分布在整個芯片上,故而可以得到更穩(wěn)定的VDD電源電壓和更均衡的接地),從而減少了片上信號完整性和信號延遲問題。,Virtex-4的結(jié)構(gòu) --電源和地的擴(kuò)展性,Virtex-4的結(jié)構(gòu) --硬IP擴(kuò)展性,采用ASMBE
28、L架構(gòu)支持對硬硅IP放縮的支持。 對于在傳統(tǒng)FPGA架構(gòu)中使用直線排列擴(kuò)展IP核,向上擴(kuò)展該核以容納額外的特性可能會需要更大的FPGA。 在基于ASMBL的FPGA中縮放IP則只是意味著以列的方式增加更多的IP,因此可以適合于已有的FPGA面積。這就有效地將IP縮放問題從兩維(直線內(nèi)核)降到一維(按列安排IP,縮放就可以通過增加IP列來完成)。從而,設(shè)計人員不必再為將硅IP核裝入芯片而去尋
29、找更大更貴的芯片。,Virtex-4的結(jié)構(gòu) --硬IP擴(kuò)展性,ASMBL架構(gòu)的另一個重要特點(diǎn)就是有效地利用了11層金屬層,從而增強(qiáng)了在條帶狀模塊上的芯片布線能力。,Virtex-4系列具有三個平臺: 1)用于高性能和高密度邏輯綜合應(yīng)用的LX平臺, 2)用于高性能和高密度綜合應(yīng)用的LX平臺, 3)用于高性能信號處理的SX平臺,用于全功能處理和SoC嵌入式設(shè)計連接應(yīng)用的FX平臺
30、。 下面對這幾個平臺進(jìn)行簡單的介紹,Virtex-4平臺,Virtex-4 LX-面向邏輯優(yōu)化的平臺,最通用的系列是Virtex-4 LX,即邏輯優(yōu)化的FPGA平臺系列。LX系列功能上與早期的Virtex-II器件類似,沒有較新的Virtex-II Pro器件中所嵌入的PowerPC處理器或高速串行I/O。所有類型的軟IP內(nèi)核都可在這一平臺的器件中實(shí)現(xiàn),包括各種各樣的DSP模塊和軟核處理器內(nèi)核。該平臺的最主要優(yōu)
31、點(diǎn)是使用了高密度集成的通用邏輯單元,從而使其成為成本效率最高的邏輯平臺。,Virtex-4 LX-面向邏輯優(yōu)化的平臺,Virtex-4 LX平臺將包括多款從小規(guī)模至大規(guī)模的成員器件,從而使其可適用于多種應(yīng)用。該系列的邏輯密度將比前代FPGA器件提高一倍。在300mm晶圓上應(yīng)用先進(jìn)的90nm制造技術(shù)所帶來的成本優(yōu)勢,再加上采用成本效率高的器件封裝,將使這一平臺將被廣泛地接受。 與前一代平臺FPGA相比更高的時鐘
32、頻率和更低的功耗將使LX平臺更適合用于做為替代ASIC的解決方案。,Virtex-4 SX信號處理/DSP平臺系列中提高了DSP以及RAM單元與邏輯單元的比例。功能模塊比例的改變使得這一FPGA平臺器件用于高速信號處理時比其它Virtex-4平臺占用的螺片面積更小。在此基礎(chǔ)上再結(jié)合新的DSP邏輯單元,使得可以在Virtex-4SX平臺器件中實(shí)現(xiàn)最高性能DSP的同時,成本效率最高。 具備了顯著提高的DSP帶寬,
33、與先前Virtex-II Pro器件相比又大大降低了功耗,使得Virtex-4 SX平臺提供了比其它任何器件都高的單位成本DSP性能。Virtex-4 DSP專用增強(qiáng)特性包括增加新的工作模式和功能,再與SX平臺架構(gòu)的其它優(yōu)化相結(jié)合,可支持功能更強(qiáng)大的高級DSP IP。,Virtex-4 SX-面向信號處理優(yōu)化的平臺,Virtex-4 FX-全功能平臺,Virtex-4 FX全功能平臺系列中提供了PowerPC和高速系列收發(fā)器。
34、先進(jìn)的架構(gòu)、功能特性和制造工藝的結(jié)合使得處理器時鐘可以達(dá)到450MHz。再配合支持從600Mbps到11.1Gbps之間任何速度的高速串行收發(fā)器,F(xiàn)X系列成為功能極為強(qiáng)大的高性能平臺FPGA系列,可滿足嵌入式計算處理以及高速互聯(lián)應(yīng)用領(lǐng)域的要求。,Virtex-4 FX-全功能平臺,FX平臺集成的高級系統(tǒng)特性對于電信、存儲和網(wǎng)絡(luò)領(lǐng)域以及其它需要高性能處理和大帶寬I/O的多種應(yīng)用來說非常有用。嵌入式計算處理領(lǐng)域主要以涉及復(fù)雜數(shù)據(jù)
35、類型的控制流操作為特征。連接應(yīng)用領(lǐng)域則涉及基于消息的計算處理,并且主要以異步數(shù)據(jù)流操作為主。 Virtex-4全功能平臺器件最適合實(shí)現(xiàn)這兩個領(lǐng)域中的應(yīng)用。,可配置的邏輯塊(Configurable Logic Blocks,CLB)是實(shí)現(xiàn)順序和組合電路的最主要的邏輯資源。每個CLB連接到開關(guān)矩陣(Switch Matrix)來訪問一般的布線矩陣(routing matrix)。 每個CLB單元
36、包含4個互聯(lián)的slice。這些slice成對地組合在一起。每一對組成一列。 SLICEM是指左列的slice對,而SLICEL則是右列的slice對。一列中的每一個slice對都有一個獨(dú)立進(jìn)位鏈;然而,只有在SLICEM中的slice才有一個公共的移位鏈。,Virtex-4的邏輯資源Virtex-4的CLB,Virtex-4的邏輯資源Virtex-4的CLB,一個CLB包括的可用邏輯資源有: 1)4個Slice;
37、 2)8個LUT; 3)8個觸發(fā)器; 4)8個MULT_ANDS, 5)2個算術(shù)和進(jìn)位鏈; 6)64比特的分布式RAM; 7)64比特的移位寄存器。,圖2.8 Virtex-4內(nèi)的CLB排列,Virtex-4的邏輯資源Virtex-4的CLB,兩種slice對(SLICEM和SLICEL)共同有的單元是兩個函數(shù)發(fā)生器(查表單元),兩個存儲單元,函數(shù)選擇器,進(jìn)位
38、邏輯和算術(shù)運(yùn)算邏輯。SLICEM和SLICEL使用這些單元來提供邏輯功能、算術(shù)運(yùn)算功能和ROM功能。 SLICEM還包括兩個附加功能:使用分布式RAM存貯數(shù)據(jù)以及16位寄存器移位數(shù)據(jù)。SLICEM擁有slice中最多的單元模塊和模塊之間的連接關(guān)系,因此可以說 SLICEM是一個“超集”。,Virtex-4的邏輯資源Virtex-4的Slice,Virtex-4的FPGA函數(shù)發(fā)生器作為4輸入的LUT來實(shí)現(xiàn)。對于
39、一個Slice內(nèi)兩個函數(shù)發(fā)生器(F和G),每個函數(shù)發(fā)生器都有4個獨(dú)立的輸入。函數(shù)發(fā)生器能實(shí)現(xiàn)任意定義的4輸入布爾函數(shù)。貫穿LUT的傳播延遲與所實(shí)現(xiàn)的函數(shù)無關(guān)。來自函數(shù)發(fā)生器的信號能離開slice(通過X或Y輸出),進(jìn)入XOR專用門,進(jìn)入進(jìn)位邏輯復(fù)用器選擇線,輸入到存儲元件的D輸入端,或者到MUXF5。,Virtex-4的邏輯資源Virtex-4的LUT,Virtex-4的邏輯資源Virtex-4的LUT,除了基本的LUTs
40、,Virtex-4 FPGA的Slice也包含復(fù)用器(MUXF5和MUXFX)。 這些復(fù)用器用來連接最多8個函數(shù)發(fā)生器,用來提供在CLB內(nèi)的5,6,7,8輸入的任意功能。 MUXFX是MUXF6,MUXF7,MUXF8中的一個,這是根據(jù)CLB內(nèi)的Slice的位置確定。MUXFX也能被用來映射6,7,8輸入的任意功能,并且可以選擇寬的邏輯功能。功能和最多9個輸入(MUXF5復(fù)用器)能在一個Sli
41、ce內(nèi)實(shí)現(xiàn)。 寬功能復(fù)用器在同一個CLB內(nèi)有效的連接LUTs,或者穿過不同的CLB來產(chǎn)生更多輸入變量的邏輯。,Virtex-4的每個BRAM可存儲18Kb的數(shù)據(jù),數(shù)據(jù)讀出的時鐘頻率為500MHz。Virtex-4系列最小規(guī)模的FPGA器件包含48個BRAM;Virtex-4系列最大規(guī)模的FPGA器件具有552個BRAM。 臨近的BRAM可以通過級聯(lián)布線而不需要外部布線來合并成32kx1的存儲器。
42、 最大規(guī)模的器件上可獲得高達(dá)10MB的存儲器。該存儲器模塊具有許多高級特性,包括高性能的流水線和多速率先入先出(FIFO)支持。該存儲器模塊的架構(gòu)也可作為雙端口RAM,而且雙端口RAM讀寫字寬可獨(dú)立選擇。 該18Kb模塊也可以按用戶的字長要求以不同的方式配置,從16kx1到512x36不等。,Virtex-4的邏輯資源Virtex-4的BRAM,Virtex-4的邏輯資源Virtex-4的BRAM,當(dāng)
43、然,以特定的實(shí)現(xiàn)方式滿足BRAM的需求是器件自身的一種功能。設(shè)計人員可以根據(jù)DSP模塊需求,或是存儲器需求選擇Virtex-4系列中的器件。,表2.3給出了Virtex-4LX系列器件中最小規(guī)模和最大規(guī)模器件的邏輯資源比較:,Virtex-4的資源評估,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的資源評估,Virtex-4的資源評估-CLB和Slice,1.一個CLB邏輯模塊具有4個slice,1CLB=4 slice 2 .1個slice包括2個LUT,2個觸發(fā)器以及算術(shù)邏輯,1 slice= 2x16位LUT+2觸發(fā)器 +算術(shù)邏輯/Mux。
45、 因為LX15器件的陣列為64x24=1536CLB,每個CLB具有4個slice,則總共有1536x4= 6144個slice; 3.每個slice具有2x16位的LUT,總的分布式RAM的容量為16x6144=98304=96x1024= 96kbits(只有SLICEM的LUT可被用作分布式RAM)。 因為LX15具有6144個slice,因此有6144x2位=12288個觸發(fā)器;
46、 由于LX15具有48個18位的BRAM,故全部BRAM有48x18 = 864kbits,DSP48 slice是Virtex-4器件上的Xtreme DSP部件。 DSP48 slice 是一種Xilinx開發(fā)模型,該模型是ASMBL的一部分。ASMBL被預(yù)先設(shè)計為具有通用性、易于使用、高效以及優(yōu)化的性能。 提供DSP48的目的是提供一個“立即可用”的DSP 單元,該單元集合了邏輯電路、存儲器
47、、輸入/輸出、時鐘接口和管理。,DSP48 Slice結(jié)構(gòu)及功能,DSP48 Slice結(jié)構(gòu),每個XtremeDSP單元都包括兩個DSP48 slice,構(gòu)成了一種通用的DSP計算元件。如圖2.9,DSP48 slice可執(zhí)行一個18x18位的乘法以產(chǎn)生一個36位的乘積,該乘積在一個48位累加器中實(shí)現(xiàn)了累加。(這就是用“48”命名DSP單元的原因)。,圖2.9 DSP48 Slice的內(nèi)部結(jié)構(gòu),DSP48 Slice結(jié)構(gòu),就圖
48、2.9,需要說明以下幾點(diǎn): 1.18比特的A總線和B總線并置在一起,A總線是最高有效位 2.X,Y,Z復(fù)用器是48位寬度的,選擇36比特的輸入提供了48比特的帶符號位擴(kuò)展的輸出 3.乘法器輸出兩個36比特的部分積,有符號擴(kuò)展到48比特。部分積輸入到X,Y復(fù)用器。當(dāng)OPMODE選擇復(fù)用器時,使用X和Y復(fù)用器,并且將部分積合成一個有效的乘法器結(jié)果與加法器/減法器連接。 4.用于P的乘-
49、累加通路要經(jīng)過Z復(fù)用器。當(dāng)布使用乘法器時,通過X復(fù)用器的P的反饋使能P級聯(lián)的累加。,DSP48 Slice結(jié)構(gòu),DSP48 Slice結(jié)構(gòu),5.Wire Shift Right by 17 bit通路截斷低17位,并且有符號擴(kuò)展高17位。 6.在配制器件,用灰色表示的復(fù)用器被編程。 7.共享的C寄存器支持乘加,寬加法或舍入操作。 8.使能SUBTRACT,在加法器/減法器的輸出實(shí)現(xiàn)X-(X
50、+Y+CIN)。 DSP48的一個主要屬性為易于互連(一個DSP slice連接著下一個DSP slice),無需外部結(jié)構(gòu)的布線。,DSP48 Slice結(jié)構(gòu),大部分DSP都使用一般意義上的乘加,而在目前的FPGA設(shè)計中,大部分DSP實(shí)際上使用FIR濾波器執(zhí)行乘加。經(jīng)典FIR濾波器算法是DSP48所要實(shí)現(xiàn)的主要算法。輸入信號可以從一個slice級聯(lián)到另一個slice,因此很容易實(shí)現(xiàn)轉(zhuǎn)置FIR濾波器。,圖2.10
51、給出了DSP48 Slice的符號描述。,圖2.10 DSP48 Slice接口符號,DSP48 Slice信號,DSP48 Slice可以完成的基本算術(shù)功能有:加/減運(yùn)算,累加運(yùn)算,乘累加運(yùn)算,復(fù)用運(yùn)算,桶型移位運(yùn)算,計數(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輸入來自復(fù)用器X,OPMODE[1:0]=11 3.乘累加運(yùn)算 DSP48 Slice允許兩個18比特的數(shù)一起相乘,產(chǎn)生的積和前面產(chǎn)生的積相加或相減。輸入的被加/被減的積來自Z復(fù)用器的輸出。,DSP48 Slice算術(shù)功能,4.復(fù)用運(yùn)算
54、 在DSP48 Slice中有三個類型的復(fù)用器:3:1的Y復(fù)用器;4:1的X復(fù)用器;6:1的Z復(fù)用器。當(dāng)Slice用于復(fù)用器時,只有一個復(fù)用器被激活。,DSP48 Slice算術(shù)功能,5.桶型移位運(yùn)算 使用兩個DSP48單元就可以實(shí)現(xiàn)一個18比特的桶型移位器。進(jìn)行桶型移位18比特的數(shù),A[17:0]向左移動兩位,從桶型移位寄存器的輸出是A[15:0],A[17],A[16]。下面給出其操作步驟: 1)第一
55、個DSP48 Slice用來將{0,A[17:1]}乘22。DSP48的輸出為{0,A[17:1],0,0}。 2)這個值與來自前面Slice的17比特的右移的值{0,A[17],A[16]}相加。 3)18比特加法器的輸出為{A[15:0],A[17],A[16]}。 通過以上的步驟A[17:0]就向左桶型移位2比特。,DSP48 Slice算術(shù)功能,DSP48 Slice算術(shù)功能,6.計數(shù)器運(yùn)算
56、 DSP48 Slice能用作1比特的計數(shù)器。將SUBTRACT=0,CIN=1,OPMODE[6:0]=0100000,則輸出為P+CIN,第一個時鐘后,P=0+1=1,隨后的輸出是P+1,這就等效于加1計數(shù)。當(dāng)SUBTRACT=1,則為減1計數(shù)器。 計數(shù)器可以使用C輸入作為預(yù)制的值。設(shè)置進(jìn)位輸入CIN=1和OPMODE[6:0]=0110000,則第一個周期為P=C+1,隨后的時鐘周期設(shè)置OPMO
57、DE[6:0]=0100000,來選擇P=P+1。,7.乘法運(yùn)算 一個單獨(dú)的DSP48 Slice能實(shí)現(xiàn)一個18x18有符號乘法。 通過在每個時鐘周期移動合理的比特位,這樣在一個DSP48 Slice內(nèi)能實(shí)現(xiàn)更大的乘法器。,DSP48 Slice算術(shù)功能,DSP48 Slice算術(shù)功能,8.除法運(yùn)算 在DSP48 Slice內(nèi)通過移位和減法運(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ù)除法,然后加上符號位。這里的N為被除數(shù),D為除數(shù)。Q和R分別為商和余數(shù)。下面給出移位相減實(shí)現(xiàn)除法運(yùn)算的算法描述:,DSP48 Slice算術(shù)功能,如果N是8比特整數(shù),D不超過8比特寬,N/D=Q+R 1)R=”00000000” 2)R寄存器左移一位,并且用N[8-n
59、]填充最低位 3)計算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)計算D*Q; 3)計算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.開方運(yùn)算 整數(shù)的開方運(yùn)算可以通過連續(xù)的乘和減法
61、運(yùn)算來實(shí)、現(xiàn)。這和利用減法完成兩個數(shù)相除類似。N比特整數(shù)的均方根為N/2比特(截斷)。如果均方根是分?jǐn)?shù),需要N/2個時鐘周期用于整數(shù)部分,每一個時鐘給出1比特的小數(shù)部分。圖2.11給出了開方算法的描述。,圖2.11 均方根算法的原理,DSP48 Slice算術(shù)功能,8位整數(shù)的開方運(yùn)算可以用式2.3描述: (2.3)
62、 其中Y為開方運(yùn)算的整數(shù)部分,Z為開方運(yùn)算的小數(shù)部分。寄存器A為輸入到DSP48 Slice的A輸入。寄存器C為輸入到DSP48 Slice的C輸入。下面給出算法的描述: 1)將數(shù)讀入寄存器C。將寄存器A設(shè)置為“10000000”; 2)計算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ù)功能,四個周期后得到Y(jié),計算Z所需要的時鐘周期取決于所要求的精度。8個時鐘周期得到4比特的Y和4比特的Z。 比如11的開方值為3.3166。11的8比特描述為0000,1011。存儲值為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ù)功能,一個DSP48 Tile由兩個DSP48 slice、共用的48位C總線和寄存器組成。其特點(diǎn)包括: 1)在一個DSP48列中,DSP48 slice是垂直堆疊的。 2)DSP48 slice的高度與4個CLB(16個slice)或是
65、一個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所示,并生成一個轉(zhuǎn)置FIR濾波器。該圖表示了一個4個系數(shù)的濾波器。如果需要更多的系數(shù),則需要添加更多的DSP48 slice。,基于DSP48 slice的FIR濾波器的設(shè)計--并行轉(zhuǎn)置 FIR 濾波器,基于DSP48 slice的FIR濾波器的設(shè)計--并行轉(zhuǎn)置 FIR 濾波器,圖2.13 并行轉(zhuǎn)置FIR濾波器,該并行轉(zhuǎn)置FIR濾波器的特點(diǎn)有: 1)所有的乘法器和加法器的輸入,以及輸出端均具有寄存器
67、,所以時鐘頻率可達(dá)到最大的500MHz。 2)由于寄存器的延遲,從第一個數(shù)據(jù)輸入算起,到最后一個加法器和乘法器的輸出,該濾波器將具有3個時鐘的系統(tǒng)延遲。 3)該濾波器的實(shí)現(xiàn)無需任何外部邏輯,僅由 DSP48模塊組成。 但其缺點(diǎn)是,當(dāng)濾波器系數(shù)個數(shù)很大時,對輸入信號的扇出能力有較高的要求。,基于DSP48 slice的FIR濾波器的設(shè)計--并行轉(zhuǎn)置 FIR 濾波器,基于DSP48 slic
68、e的FIR濾波器的設(shè)計--脈動FIR濾波器,如圖2.14,通過設(shè)定適當(dāng)?shù)牟僮髂J?,一個脈動FIR濾波器也可以使用DSP48 slice 來實(shí)現(xiàn)。該濾波器的特點(diǎn)有: 1)該架構(gòu)可以達(dá)到DSP48FIR濾波器的最高性能。對于輸入信號線沒有扇出要求。 2)該濾波器無需外部邏輯便可被實(shí)現(xiàn)。 3)然而,脈動特性意味著,一個N個系數(shù)的脈動FIR濾波器具有長度為N的系統(tǒng)延遲。,圖2.14 脈動濾波器
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- SDH中MSA功能的FPGA硬件實(shí)現(xiàn).pdf
- 用FPGA實(shí)現(xiàn)帶硬件浮點(diǎn)運(yùn)算器的8051的研究.pdf
- ISP系統(tǒng)設(shè)計及FPGA硬件實(shí)現(xiàn).pdf
- 教學(xué)大綱-fpga及硬件描述語言
- 基于ARM+FPGA結(jié)構(gòu)的通用儀器硬件平臺的設(shè)計.pdf
- 基于FPGA的矩陣運(yùn)算實(shí)現(xiàn).pdf
- 基于FPGA的硬件進(jìn)化研究.pdf
- 基于FPGA的Turbo碼硬件設(shè)計及性能分析.pdf
- 基于FPGA的硬件木馬檢測.pdf
- DES算法的硬件實(shí)現(xiàn)方法研究及FPGA實(shí)現(xiàn).pdf
- 基于FPGA的紅外熱像儀硬件設(shè)計.pdf
- 基于fpga的浮點(diǎn)運(yùn)算器設(shè)計
- 基于FPGA的硬件圖像處理技術(shù).pdf
- 基于fpga的浮點(diǎn)運(yùn)算器設(shè)計
- 快速硬件擬合技術(shù)研究及基于FPGA的實(shí)現(xiàn).pdf
- 基于FPGA的圖像處理算法研究及硬件設(shè)計.pdf
- 46016.gps導(dǎo)航運(yùn)算的硬件實(shí)現(xiàn)
- 基于FPGA的LZMA硬件壓縮設(shè)計.pdf
- 指紋識別算法的研究及基于FPGA的硬件實(shí)現(xiàn).pdf
- 摘要--基于fpga硬件平臺的vga 顯示游戲
評論
0/150
提交評論