Virtex-6中的BRAM(Block RAM)模塊、DSP 模塊XtremeDSP

      網(wǎng)友投稿 1202 2025-03-31

      BRAM(Block RAM)模塊


      Virtex-6中嵌入BRAM,大大拓展了FPGA的應(yīng)用范圍和應(yīng)用的靈活性。BRAM可被配置為單端口RAM、雙端口RAM、內(nèi)容地址存儲(chǔ)器(CAM)以及FIFO等常用存儲(chǔ)結(jié)構(gòu)。

      Virtex-6中的BRAM是雙端口RAM,每個(gè)BRAM存儲(chǔ)36Kbit數(shù)據(jù),支持寫和讀同步操作,兩個(gè)端口對(duì)稱且完全獨(dú)立,共享存儲(chǔ)的數(shù)據(jù),可以改變每個(gè)端口的位寬和深度。36Kbit可配置成64K×1(和相鄰36Kbit BRAM級(jí)聯(lián))、32K×1、16K×2、8K×4、4K×9、2K×18、1K×36或512×72的簡(jiǎn)單雙口RAM;每個(gè)18Kbit的BRAM也可配置成16K×1、8K×2、4K×4、2K×9、1K×18或512×36的簡(jiǎn)單雙口RAM。存儲(chǔ)器內(nèi)容可在配置比特流時(shí)設(shè)置。BRAM在寫操作過(guò)程中,它的輸出數(shù)據(jù)可以編程設(shè)置,或者是保持輸出數(shù)據(jù)不變,或者反映正在寫入的新數(shù)據(jù),或者是正在被覆蓋的舊數(shù)據(jù)。

      一、 雙端口RAM和單端口RAM

      全雙口36Kb BRAM有36Kb的存儲(chǔ)空間和兩個(gè)獨(dú)立的訪問(wèn)口:A口和B口。類似地,每個(gè)18Kbit RAM包含一個(gè)18Kbit存儲(chǔ)空間和2個(gè)全獨(dú)立的訪問(wèn)口:A口和B口。結(jié)構(gòu)是全對(duì)稱的,數(shù)據(jù)可以寫入其中的一個(gè)口或者兩個(gè),也可以從一個(gè)或者兩個(gè)口讀出。寫操作是同步的,每個(gè)口有自己?jiǎn)为?dú)的地址、數(shù)據(jù)輸入、數(shù)據(jù)輸出、時(shí)鐘、時(shí)鐘允許和寫允許信號(hào)。讀操作也是同步的,并需要一個(gè)時(shí)鐘邊沿。

      需要注意的是,當(dāng)兩個(gè)端口同時(shí)對(duì)同一個(gè)地址進(jìn)行操作的時(shí)候,由于雙端口RAM內(nèi)部沒(méi)有專門的監(jiān)控邏輯,因此需要用戶自己控制兩個(gè)時(shí)鐘,以避免沖突。兩個(gè)端口同時(shí)對(duì)同一個(gè)地址的寫操作雖然不會(huì)損壞該物理空間,但可能導(dǎo)致數(shù)據(jù)錯(cuò)誤。

      雙端口RAM和單端口RAM的原語(yǔ)如表5-10所示,可在HDL代碼中直接例化。

      二、 FIFO

      Virtex-6的BRAM中的專用邏輯讓用戶能夠輕松地實(shí)現(xiàn)同步或異步FIFO。這樣就不必為計(jì)數(shù)器、比較器或狀態(tài)標(biāo)記的生成使用其他CLB邏輯。

      Virtex-6中,F(xiàn)IFO 可配置成18Kbit 和36Kbit 存儲(chǔ)空間,對(duì)于18Kbit 的FIFO,支持4K ×4、2K×9、1K×18 和512×36;對(duì)于36Kbit 的FIFO,支持8K×4、4K×9、2K×18、1K×36 和512×72。

      三、 ECC 內(nèi)置糾錯(cuò)

      當(dāng)使用Virtex-6 中的RAMB36E1(SPP 模式)或者36Kbit FIFO(FIFO36E1)時(shí),可以使能其中的ECC 糾錯(cuò)功能。ECC 占用72 位寬,其中64 位數(shù)據(jù),8 位漢明碼,它可以產(chǎn)生漢明位并糾正輸出的數(shù)據(jù)錯(cuò)誤,但不會(huì)糾正存儲(chǔ)器內(nèi)容。另外,它還可以輸出錯(cuò)誤位置的地址。

      在寫操作過(guò)程生成八個(gè)保護(hù)位(ECCPARITY),與64 位數(shù)據(jù)一起存到存儲(chǔ)器中。這些ECCPARITY 位在每次讀操作過(guò)程中用來(lái)糾正任意單位元錯(cuò)誤或檢測(cè)(但不糾正)任意雙位元錯(cuò)誤。

      在讀操作過(guò)程中,72 位數(shù)據(jù)從存儲(chǔ)器讀出并饋入ECC 解碼器。ECC 解碼器生成兩個(gè)輸出狀態(tài)(SBITERR 和DBITERR),用來(lái)指示三種可能的讀操作結(jié)果:無(wú)錯(cuò)誤、已糾正單位元錯(cuò)誤、檢測(cè)到雙位元錯(cuò)誤等。在標(biāo)準(zhǔn)ECC 模式下,讀操作不糾正存儲(chǔ)器陣列中的錯(cuò)誤,僅僅將已經(jīng)糾正的數(shù)據(jù)送到DO。為了改善FMAX,可以將由DO_REG 屬性控制的可選寄存器用于數(shù)據(jù)輸出(DO)、SBITERR 和DBITERR。

      Virtex-6 中的ECC 還增加了一個(gè)新的功能,能回讀當(dāng)前數(shù)據(jù)輸出對(duì)應(yīng)的存儲(chǔ)地址,支持修復(fù)錯(cuò)位的數(shù)據(jù)位或者將該地址設(shè)置成無(wú)效。

      Virtex-6 BRAM 模塊的詳細(xì)資料請(qǐng)參考《Virtex-6 BRAM 用戶手冊(cè)》。

      點(diǎn)擊打開(kāi)鏈接

      DSP 模塊XtremeDSP

      為了適應(yīng)越來(lái)越復(fù)雜的DSP運(yùn)算,Virtex-6中嵌入了功能更強(qiáng)大的DSP48E1 SLICE,簡(jiǎn)化的DSP48E1模塊如圖5-16所示。

      DSP48E1兼容Virtex-5的DSP48E,而且在兩方面有所增強(qiáng)。

      圖5-16為簡(jiǎn)化的DSP48E1模塊框圖,從圖中可以看出,算術(shù)部分包含一個(gè)25位預(yù)加器、一個(gè)25×18二進(jìn)制補(bǔ)碼乘法器、3個(gè)48位的多路復(fù)用器,跟隨一個(gè)48位符號(hào)可擴(kuò)展的加法器/減法器/累加器或者2輸入邏輯單元。如果使用了2輸入邏輯單元,則此乘法器不能再被使用。

      DSP48E1的數(shù)據(jù)和控制輸入連接到算術(shù)和邏輯部分。A和B輸入通道上有兩級(jí)流水線寄存器;D和AD(AD為預(yù)加器內(nèi)的中間寄存器)輸入通道上有一級(jí)流水線寄存器。其他數(shù)據(jù)和控制輸入通道也有一級(jí)流水線寄存器。最高操作頻率可達(dá)600MHz。

      大部分情況下,加法器/減法器/邏輯單元的輸出是其輸入的函數(shù)。輸入由MUX、進(jìn)位選擇邏輯和乘法器陣列驅(qū)動(dòng)。對(duì)應(yīng)公式如下所示。

      Adder/Sub輸出= (Z ± (X + Y + CIN))或(-Z + (X + Y + CIN) –1)

      DSP48E1的內(nèi)部結(jié)構(gòu)如圖5-17所示,主要由以下幾部分組成。

      一、 輸入端口

      (1) 輸入端口A、B、C和D。

      每個(gè)DSP48 SLICE有4個(gè)輸入數(shù)據(jù)口A、B、C和D,A口30位寬,B口18位寬,C口48位寬,D口25位寬。A口、D口和預(yù)加器的邏輯如圖5-18所示;B口邏輯如圖5-19所示。A口的25位和B口18位數(shù)據(jù)是25位×18位乘法器輸入。每個(gè)DSP48E1能完成乘加、乘減等操作。A口和B口可以合并跳過(guò)乘法器作為多路選擇器X的輸入。

      A口和B口可以合并成48位寬的數(shù)據(jù)和48位寬的C口一起實(shí)現(xiàn)48位的加法/減法。

      DSP48E1 SLICE提供了兩個(gè)級(jí)聯(lián)數(shù)據(jù)輸入通道(ACIN和BCIN),提供了相鄰DSP48E1 SLICE之間的級(jí)聯(lián)輸入數(shù)據(jù)流。級(jí)聯(lián)路徑ACIN為30位寬,BCIN為18位寬。A、B、ACIN和BCIN數(shù)據(jù)通路上有0、1或2級(jí)流水線。數(shù)據(jù)端口寄存器可以通過(guò)延時(shí)提高時(shí)鐘頻率。屬性AREG和BREG用于設(shè)置A口和B口的流水線級(jí)數(shù)。屬性ACASCREG和BCASCREG用于設(shè)置ACOUT口和BCOUT口級(jí)聯(lián)流水線級(jí)數(shù)。DSP48E1通過(guò)控制多路選擇器的控制位設(shè)置數(shù)據(jù)流的通路、寄存器和級(jí)聯(lián)輸入。

      INMODE[3:0]是DSP48E1里新增的控制位,這些位控制A和D輸入寄存器與預(yù)加器的函數(shù)。

      48位的C口作為Y和Z多路選擇器的輸入,實(shí)現(xiàn)加法、減法、三輸入加/減和邏輯函數(shù)。C輸入也連到模式識(shí)別器上,實(shí)現(xiàn)函數(shù)取舍。

      (2) OPMODE、ALUMODE和CARRYINSEL端口邏輯。

      OPMODE、ALUMODE和CARRYINSEL端口邏輯支持輸入控制信號(hào)的直通或者寄存器輸入。通過(guò)多路選擇器的配置位可以選擇直通或通過(guò)寄存器。OPMODE、ALUMODE和CARRYINSEL端口邏輯如圖5-20所示。

      (3) X、Y和Z多路選擇器。

      Virtex-6中的BRAM(Block RAM)模塊、DSP 模塊XtremeDSP

      OPMODE提供了動(dòng)態(tài)改變DSP48E1功能的方法,OPMODE的控制位對(duì)應(yīng)X、Y和Z多路選擇器的輸出。這3個(gè)多路選擇器的輸出成為后面加/減器的三個(gè)操作數(shù)。

      (4) ALUMODE輸入。

      4位ALUMODE控制第二級(jí)加/減/邏輯單元的行為,如表5-11所示。

      (5) 進(jìn)位輸入邏輯。

      Virtex-6器件中進(jìn)位輸入邏輯是3位CARRYINSEL信號(hào)的函數(shù)。輸入邏輯見(jiàn)圖5-21。所有可能的進(jìn)位輸入在X、Y和Z多路選擇器之前“會(huì)合”。

      二、 輸出端口

      除ACOUT和BCOUT外的所有輸出端口通過(guò)RSTP復(fù)位,CEP使能。ACOUT和BCOUT分別通過(guò)RSTA和RSTB復(fù)位。DSP48E1輸出邏輯如圖5-22所示。

      (1) 輸出端口P。

      DSP48E1有一個(gè)48位輸出端口P,這個(gè)輸出口能通過(guò)PCOUT通路連接(級(jí)聯(lián))相鄰的DSP48E1 SLICE。PCOUT連接到相鄰DSP48E的Z多路選擇器的輸入口(PCIN)。該通路提供兩個(gè)相鄰DSP48E1的輸出級(jí)聯(lián)通路。

      (2) CARRYCASCOUT和CARRYOUT口。

      DSP48E1 SLICE的進(jìn)位輸出為4位寬,通過(guò)CARRYOUT輸出到FPGA邏輯。CARRYOUT信號(hào)通過(guò)CARRYCASCOUT和相鄰DSP48E1 SLICE級(jí)聯(lián)。實(shí)現(xiàn)更大的加法、減法、累加、乘累加函數(shù)。

      (3) MULTSIGNOUT端口邏輯。

      乘法器輸出的最高位通過(guò)MULTSIGNOUT口級(jí)聯(lián)到下一個(gè)DSP48E1 SLICE,僅用于擴(kuò)展96位的MACC。

      (4) PATTERNDETECT和PATTERNBDETECT端口邏輯。

      DSP48E1 SLICE的輸出增加了一個(gè)序列檢測(cè)器,用于檢測(cè)P總線是否和指定序列匹配,或者是否和指定序列的取反值相匹配。

      (5) 上溢和下溢端口邏輯。

      DSP48E1 SLICE利用模式檢測(cè)器檢測(cè)P[N](N從1到46)是否有溢出,當(dāng)有上溢或下溢發(fā)生時(shí),DSP48E1輸出OVERFLOW和UNDERFLOW信號(hào)。

      三、 算術(shù)功能

      (1) 預(yù)加器。

      Virtex-6 FPGA DSP模塊結(jié)構(gòu)上的又一改變是在A寄存器路徑上增加了一個(gè)預(yù)加器,實(shí)現(xiàn)預(yù)加或預(yù)減等操作。

      (2) 乘法器。

      Virtex-6 FPGA DSP模塊內(nèi)包含一個(gè)二進(jìn)制補(bǔ)碼乘法器,如圖5-23所示。二進(jìn)制補(bǔ)碼乘法器的一個(gè)輸入為25位的二進(jìn)制補(bǔ)碼,另一個(gè)為18位的二進(jìn)制補(bǔ)碼,產(chǎn)生43位結(jié)果輸出。乘法器86位輸出包含兩個(gè)43位部分乘積。乘法器和算法支持17位操作數(shù)右移,以對(duì)準(zhǔn)寬乘法器的部分乘積(并行或順序乘法)。級(jí)聯(lián)通路作為Z多路選擇器的輸入,可以和相鄰DSP48E1 SLICE的加法器/減法器相連。

      將輸入操作數(shù)的最高位設(shè)置成0,則乘法器就能實(shí)現(xiàn)無(wú)符號(hào)算術(shù)。

      寄存器MREG是乘法器的輸出可選流水線。

      (3) 加法器/減法器/邏輯單元。

      加法器/減法器/邏輯單元的輸出是控制信號(hào)和輸入數(shù)據(jù)的函數(shù),加法器/減法器的輸入由OPMODE和CARRYINSEL控制。ALUMODE設(shè)置加法器/減法器實(shí)現(xiàn)的功能。因此OPMODE、ALUMODE和CARRYINSEL信號(hào)一起設(shè)置加法器/減法器或邏輯單元實(shí)現(xiàn)的功能。

      (4) 2輸入邏輯單元。

      通過(guò)OPMODE和ALUMODE的設(shè)置,可以在三輸入加法/減法/邏輯單元的第二級(jí)實(shí)現(xiàn)邏輯函數(shù)。2輸入邏輯單元配置如表5-12所示。

      分析DSP48E1結(jié)構(gòu)后,可以理解,DSP48E1不需要使用通用可編程邏輯構(gòu)造資源,可支持將多個(gè)DSP48E1邏輯片連接起來(lái)完成更寬輸入的數(shù)字功能、DSP濾波器和復(fù)雜算法。這可以帶來(lái)更低的功耗、更高的性能和更高的芯片資源使用效率。

      Xilinx工具提供了便捷的DSP48的使用工具,用戶可以在HDL中例化原語(yǔ),或者調(diào)用CoreGen配置所需參數(shù),設(shè)置相應(yīng)功能,工具會(huì)自動(dòng)配置OPMODE及內(nèi)部寄存器。

      FPGA

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:SCM是什么意思啊,高效管理供應(yīng)鏈的關(guān)鍵
      下一篇:如何列出和編輯Word中的所有超鏈接?
      相關(guān)文章
      亚洲一区精品伊人久久伊人| 亚洲国产精品碰碰| 亚洲色成人WWW永久网站| 亚洲国产精品成人AV无码久久综合影院| 亚洲一区二区观看播放| 亚洲蜜芽在线精品一区| 久久青青草原亚洲av无码app | 亚洲国产精品99久久久久久| 久久国产亚洲精品| 中文字幕亚洲综合久久综合| 亚洲最大av资源站无码av网址| 亚洲最大福利视频| 亚洲乱妇老熟女爽到高潮的片| 亚洲中文字幕久久无码| 亚洲aⅴ天堂av天堂无码麻豆| 自拍偷自拍亚洲精品播放| 国产成人亚洲精品无码AV大片| 青草久久精品亚洲综合专区| 亚洲国产精品无码久久九九| 不卡精品国产_亚洲人成在线| 亚洲日韩中文字幕在线播放| 亚洲第一AV网站| 久久丫精品国产亚洲av不卡 | 亚洲成A人片在线观看无码3D | 亚洲国产夜色在线观看| 亚洲av永久综合在线观看尤物| 在线aⅴ亚洲中文字幕| 亚洲AV无码专区在线观看成人| 亚洲AV日韩AV永久无码色欲| 亚洲国产精品毛片av不卡在线| 国产午夜亚洲不卡| 久久亚洲国产精品五月天| 91嫩草私人成人亚洲影院| 91亚洲国产成人久久精品| 亚洲第一区二区快射影院| 亚洲AV无码专区亚洲AV桃| 亚洲色一色噜一噜噜噜| 亚洲国产精品乱码一区二区| 久久精品国产亚洲av水果派| 亚洲一区二区三区不卡在线播放 | 亚洲狠狠成人综合网|