




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
7.4基于IPCore的BlockRAM設(shè)計
7.4基于IPCore的BlockRAM設(shè)計本節(jié)介紹基于IPCore的BlockRAM設(shè)計,由于BlockRAM屬于特殊結(jié)構(gòu),使用Xilinx公司提供的IPCore是比較方便的,而且靈活、高效、不容易出錯〔IPCore的使用請見節(jié)〕。雙端口塊RAM〔Dual-PortBlockRAM〕雙端口RAM的特性Virtex、Virtex-E、Virtex-II、Virtex-IIPro、Spartan、Spartan-II、Spartan-IIE和Spartan-3系列的FPGA都嵌入了BlockRAM。支持所有3種Virtex-II寫模式:Read-After-Write、Read-Before-Write和No-Read-On-Write〔只適用于Virtex-II和Spartan-3〕支持RAM和ROM功能。支持1到256BIT的數(shù)據(jù)端口寬度。根據(jù)選擇的不同結(jié)構(gòu),支持1到2M字的存儲深度。支持ROM功能,兩個端口可以同時對一個地址的數(shù)據(jù)進行讀操作。支持RAM功能,兩個端口可以同時對不同的地址進行寫操作,或者對同一地址進行讀操作。兩個端口是完全獨立的。支持A、B端口的不對稱配置。支持CORE設(shè)計或者使用SelectRAM+、SelectRAM-II庫原語以求面積優(yōu)化。支持不同極性的控制信號引腳:時鐘〔clock〕、使能〔enable〕,寫使能〔writeenable〕和輸出初使化〔outputinitialization〕引腳。結(jié)合Xilinx的Smart-IP技術(shù)使設(shè)計更靈活,最優(yōu)化實現(xiàn)。2.雙端口RAM的功能描述Dual-PortBlockRAM是由一塊或多塊叫做Select-RAM+?的4Kb存儲塊組成的。Virtex-II和Spartan-3系列的Dual-PortBlockRAM是由一塊或多塊16Kb存儲塊〔SelectRAM-II?〕組成的,能構(gòu)成更寬或者更深的存儲器設(shè)計。Select-RAM+?和SelectRAM-II?都是真正的雙端口RAM,為Spartan-II和Virtex系列家族的芯片提供快速、離散的而且足夠大的塊RAM。因為Spartan-II和Virtex都使用4Kb的Select-RAM+?存儲塊,所以任何涉及到Virtex能實現(xiàn)的RAM,都可以在Spartan-II、Virtex-E、Virtex-II、Virtex-IIPro、Spartan-IIE系列中實現(xiàn)。 每個存儲器含有兩個完全獨立的端口A和B,兩個端口享有同時訪問存儲器中同一地址的能力,存儲器的深度和寬度由使用者自己定義。兩個端口在功能上是完全一樣,都可以對存儲器進行讀寫操作。兩個端口可以同時對存儲器的同一地址進行讀操作,如果對同一地址進行操作,一個端口讀,一個端口寫,那么寫操作成功,而讀出的數(shù)據(jù)是無效的。
根據(jù)使用者的定義,可以配置端口A和端口B的數(shù)據(jù)寬度和地址寬度。當(dāng)兩個端口被禁用時〔ENA和ENB無效〕,存儲器中的數(shù)據(jù)和輸出端口將保持不變。當(dāng)兩個端口可用時〔ENA和ENB有效〕,對存儲器的所有操作將在輸入時鐘的邊沿觸發(fā)。進行寫操作時〔WEA或WEB有效〕,相應(yīng)數(shù)據(jù)端口的數(shù)據(jù)將寫入地址端口所指定的存儲地址中。在這個操作中,Spartan-II/Virtex和Virtex-II系列的塊RAM的輸出端口的動作并不相同。 Virtex-II和Spartan-3系列的塊RAM的輸出端口的具體實現(xiàn)要根據(jù)“寫模式”的設(shè)置而定。Virtex-II和Spartan-3系列的塊RAM支持3種“寫模式”,每種模式?jīng)Q定了輸出端口在寫操作發(fā)生后將如何作出反響。Spartan-II和Virtex系列的塊RAM只支持一種“寫模式”:Read-After-Write。這種寫模式使寫入的數(shù)據(jù)在寫操作后呈現(xiàn)在輸出端口。 在讀操作時,地址輸入端口指定的地址上的數(shù)據(jù)在輸出端口輸出。當(dāng)同步初始化〔SynchronousInitialization(SINITA或SINITB)〕有效時,有鎖存器的輸出端口將被同步初始化,Spartan-II和Virtex系列將被初始化為0,Virtex-II系列將被初始化為使用者事先定義的數(shù)據(jù)。同步初始化操作并不影響存儲器中的數(shù)據(jù),也不會與寫操作發(fā)生沖突。 使能,寫使能和同步初始化可以被定義為高電平有效或者低電平有效。3.雙端口RAM的引腳雙端口RAM的Core引腳如下圖。圖7.4.1雙端口RAM的引腳雙端口RAM的Core引腳的具體含義列表于表。端口名稱端口方向功能描述DIN[A|B]<n:0>可選輸入數(shù)據(jù)輸入:數(shù)據(jù)從此端口寫入存儲器。ADDR[A|B]<m:0>輸入地址輸入:寫或者讀操作的地址由此端口輸入。WE[A|B]可選輸入寫使能控制信號:控制數(shù)據(jù)寫入存儲器。EN[A|B]可選輸入使能控制信號:寫或者讀操作的有效控制。SINIT[A|B]可選輸入同步初始化控制信號:使輸出端口初始化為預(yù)先設(shè)定的狀態(tài)。CLK[A|B]輸入時鐘信號:所有存儲器操作是在輸入時鐘的同步下進行的。ND[A|B]可選輸入握手信號:表示A或者B端口上有新的而且有效的地址數(shù)據(jù)。(高電平有效)。DOUT[A|B]<n:0>可選輸出數(shù)據(jù)輸出端口:存儲器的同步數(shù)據(jù)輸出端口。RFD[A|B]可選輸出握手信號:表示存儲器已經(jīng)準(zhǔn)備好接受新數(shù)據(jù)。(高電平有效)RDY[A|B]可選輸出握手信號:表示輸出端口上的數(shù)據(jù)有效。(高電平有效)。7.4.2使用IPCore生成雙端口RAM
Xilinx提供了Dual-PortBlockRAM的IPCore。具體如何調(diào)用IPCore、生成IPCore見節(jié)。這里介紹具體的一些IPCore參數(shù),設(shè)計者可以根據(jù)設(shè)計的需要設(shè)置這些參數(shù)。 Dual-PortBlockRAM的參數(shù)設(shè)置窗口分別如圖、圖、圖、圖所示。Dual-PortBlockRAM的參數(shù)設(shè)置一共有4個窗口,可以單擊按鈕進入下一個窗口。圖7.4.2Dual-PortBlockRAM的參數(shù)設(shè)置窗口圖7.4.3PortABlockRAM的參數(shù)設(shè)置窗口圖7.4.4PortBBlockRAM的參數(shù)設(shè)置窗口圖7.4.5Dual-PortBlockRAM的參數(shù)設(shè)置窗口元件名稱〔ComponentName〕:為了生成IPCore,必須為生成的文件取一個名稱。端口A存儲器大小〔MemorySize〕:數(shù)據(jù)端口A寬度〔WidthA〕:可以選擇數(shù)據(jù)端口A的寬度,寬度可以從1到256。地址端口A深度〔DepthA〕:可以選擇存儲器的字節(jié)數(shù)。根據(jù)所選擇的不同結(jié)構(gòu),字節(jié)數(shù)可以從2BIT到2M??梢赃x擇的地址深度要根據(jù)所選擇的數(shù)據(jù)端口A的寬度而定。Spartan-II和Virtex系列的塊RAM的最大字節(jié)數(shù)為256K,Virtex-II和Spartan-3系列的塊RAM的最大字節(jié)數(shù)為1M。必須注意生成的CORE的大小不能超過目標(biāo)器件庫原語的大小端口B存儲器大小〔MemorySize〕:數(shù)據(jù)端口B寬度〔WidthB〕:可以選擇數(shù)據(jù)端口B的寬度,可以選擇的數(shù)據(jù)端口B的寬度取決于定義的數(shù)據(jù)端口A的寬度。對于Spartan-II和Virtex系列的塊RAM,能夠選擇的寬度可以是1,2,4,8或16倍A端口的寬度。對于Virtex-II系列的塊RAM,能夠選擇的寬度可以是1,2,4,8,16或32倍A端口的寬度。地址端口B深度〔DepthB〕:定義了WidthA、DepthA和WidthB后,DepthB的值將為定值。根據(jù)端口A和B定義的存儲器的大小必須相等可以計算出DepthB。端口A可選項〔PortAOptions〕:配置〔Configuration〕選項:可以選擇的有ReadAndWrite〔讀和寫〕,WriteOnly〔只寫〕和ReadOnly〔只讀〕。寫模式(Writemode)選擇:可以為Virtex-II系列的塊RAM選擇寫模式。Spartan-II和Virtex系列的塊RAM只支持ReadAfterWrite模式。ReadAfterWrite模式〔支持的有Virtex-II、Spartan-II、Spartan-3、Virtex〕,可能有下面幾種情況:沒有輸入輸出存放器時:數(shù)據(jù)在WEA信號有效后的第一個時鐘沿傳送到端口DOUTA。僅有輸入存放器時:數(shù)據(jù)在WEA信號有效后的第二個時鐘沿傳送到端口DOUTA。僅有輸出存放器時:數(shù)據(jù)在WEA信號有效后的第二個時鐘沿傳送到端口DOUTA。有輸入和輸出存放器時:數(shù)據(jù)在WEA信號有效后的第三個時鐘沿傳送到端口DOUTA。ReadAfterWrite模式的時序如下圖。圖7.4.6ReadAfterWrite模式時序ReadBeforeWrite模式〔支持的有Virtex-II、Spartan-3〕,可能有下面幾種情況:沒有輸入輸出存放器時:在WEA信號有效后的第一個時鐘沿,存儲器中當(dāng)前地址上的數(shù)據(jù)被傳送到端口DOUTA。僅有輸入存放器時:在WEA信號有效后的第二個時鐘沿,存儲器中當(dāng)前地址上的數(shù)據(jù)被傳送到端口DOUTA。僅有輸出存放器時:在WEA信號有效后的第二個時鐘沿,存儲器中當(dāng)前地址上的數(shù)據(jù)被傳送到端口DOUTA。有輸入和輸出存放器時:在WEA信號有效后的第三個時鐘沿,存儲器中當(dāng)前地址上的數(shù)據(jù)被傳送到端口DOUTA。圖7.4.7ReadBeforeWrite模式時序No-Read-On-Write模式〔支持的有Virtex-II、Spartan-3〕:當(dāng)WEA有效時,不會進行讀操作。DOUTA端口將保持上一次讀操作的數(shù)據(jù)。No-Read-On-Write模式時序如下圖。圖7.4.8No-Read-On-Write模式時序端口B可選項〔PortBOptions〕:端口B可選項與端口A可選項相同。端口A設(shè)計選項〔PortADesignOptions〕:1可選引腳端〔OptionalPins〕:a.使能引腳端。b.握手信號引腳端。包括ND、RFD、RDY信號,它們的含義如表所示。需要注意的是,ND信號必須在RFD有效時才能有效。RFD信號在EN信號有效時一直是有效的??蛇x輸入存放器〔RegisterOptions〕:可以為端口DIN、ADDR和WE添加輸入存放器??蛇x輸出存放器〔OutputRegisterOptions〕:a.AdditionalOutputPipeStages:選擇‘1’可以為輸出端口再增加一級存放器,選擇‘0’不加存放器。b.初始化〔SINIT〕引腳:SINIT引腳的含義見表。引腳極性〔PinPolarity〕:使用者可以為存在的引腳極性配置。對于時鐘信號,可以配置成上升沿或下降沿觸發(fā)。對于EN、WE和SINIT引腳端,可以配置成高電平或低電平有效。端口B可選項〔PortBOptions〕:端口B可選項與端口A可選項相同。庫原語選擇〔PrimitiveSelection〕:有兩項可供選擇。面積優(yōu)化〔OptimizeForArea〕。選擇庫原語〔SelectPrimitive〕。Virtex、Virtex-E和Spartan-II的庫原語有4kx1,2kx2,1kx4,512x8和256x16。Virtex-II的庫原語有16kx1,8kx2,4kx4,2kx9,1kx18,和512x36.初始化〔InitialContents〕:可以設(shè)置配置后存儲器中的初始值。全局初始化值〔GlobalInitValue〕:全局初始化值定義了配置后存儲器中初始值。缺省〔默認(rèn)〕為‘0’。注意輸入的值必須是16進制,并且其大小不能超過A端口能輸入的最大值。加載初始化文件〔LoadInitFile〕:存儲器中的初始值可以保存在一個以COE為后綴的文件中,加載這個文件可以使存儲器在配置后,各個單元的初始值為文件中所列出的值。7.4.3使用MemoryEditor生成COE文件前面提到,可以為雙端口RAM提供一個初始化數(shù)據(jù)文件,加載這個文件可以使RAM在配置后,各個單元的初始值為文
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)醫(yī)學(xué)課題申報書范文
- 寫勞務(wù)合同合同范本
- 議政調(diào)研課題申報書
- 課題申報書課題名稱字體
- 市課題申報書
- 2024用電信息采集終端
- 廚房用油供貨合同范本
- 壓濾機合同范本
- 合同范本文書
- 勞動合同范例錯
- 《計算機基礎(chǔ)與應(yīng)用(Office 和 WPS Office )》課件 項目二?計算機操作系統(tǒng)配置與應(yīng)用
- 房地產(chǎn)-保租房REITs2024年度綜述:穩(wěn)立潮頭跨越周期
- 混凝土拌合站拌合運輸工程合同
- 機床操作與數(shù)控編程作業(yè)指導(dǎo)書
- 2025年湖北省技能高考(建筑技術(shù)類)《建筑制圖與識圖》模擬練習(xí)試題庫(含答案)
- 2025國家電網(wǎng)公司(第二批)招聘陜西省電力公司高頻重點模擬試卷提升(共500題附帶答案詳解)
- 2025云南昆明空港投資開發(fā)集團招聘7人高頻重點模擬試卷提升(共500題附帶答案詳解)
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級下冊第二單元百分?jǐn)?shù)(二)單元檢測(含答案)
- 2025年江蘇連云港瑞馳投資有限公司招聘筆試參考題庫含答案解析
- 新版人教版七年級下冊數(shù)學(xué)全冊教案教學(xué)設(shè)計含教學(xué)反思
- 《中國古代寓言》導(dǎo)讀(課件)2023-2024學(xué)年統(tǒng)編版語文三年級下冊
評論
0/150
提交評論