FPGA vivado IP核學(xué)習(xí)筆記——單端口RAM
1.新建IP
在IP Catalog中找到Block Memory Generator
2.基本配置
①在Component Name位置可以修改IP名字
②Interface Type選擇接口類型,有Native(常規(guī))和AXI4兩種,AXI4常用于軟核控制FPGA或ZYNQ中PS端控制FPGA時使用
③Generate address interface with 31 bits,將地址深度固定在32bit
④Memory Type: 有一下五個選項,本實驗選擇Single Port RAM
單端口RAM不存在幾個端口公用一個時鐘的問題,忽略Common Clock
⑤ECC option
在單端口RAM中ECC配置不可選。
ECC介紹
ECC(Error Correcting Code)是指錯誤糾正編碼技術(shù),它可以作為一種附加功能選項集成到RAM模塊中。當(dāng)啟用ECC時,RAM會在每個數(shù)據(jù)字上附加額外的校驗位,這些校驗位能夠在數(shù)據(jù)讀寫過程中實時計算并用于檢測潛在的位錯誤。
⑥寫入使能
其產(chǎn)品手冊有張波形圖如上,WEA為寫使能端口,高電平有效。以第一個時鐘周期為例,b011期間,寫入信號DINA為FF EE DD,由于高電平使能寫入,故在下一個周期RAM Content存儲00 EE DD。
⑦Algorithm Options算法選擇
可以選擇最小面積、低功耗、固定初始中選擇IP生成的優(yōu)先項,該項保持默認(rèn)就行。
3.端口A配置
①寫入寬度(Write Width): 寫入寬度指的是每次向RAM中寫入數(shù)據(jù)的位數(shù),即一次寫操作能傳輸?shù)臄?shù)據(jù)位數(shù)。比如,如果寫入寬度為32位,那么每進(jìn)行一次寫操作,就可以一次性寫入32位的數(shù)據(jù)。
②讀出寬度(Read Width): 讀出寬度則是指每次從RAM中讀取數(shù)據(jù)的最大位數(shù)。同樣以32位為例,如果讀出寬度為32位,那么一次讀操作就能獲取32位的數(shù)據(jù)。讀出寬度通常與寫入寬度一致,但在一些高級配置中也可能有所不同。
③寫入深度(Write Depth): 寫入深度或者說存儲深度,指的是RAM可以獨(dú)立尋址的空間大小,即RAM中可以存儲的不同數(shù)據(jù)單元的數(shù)量。例如,一個寫入深度為1024的RAM,意味著它有1024個地址,可以存儲1024個單位的數(shù)據(jù)(每個單位的數(shù)據(jù)寬度由寫入寬度確定)。
④讀出深度(Read Depth): 在多數(shù)RAM IP核中,讀出深度與寫入深度是一致的,表示RAM可以讀取的不同地址的數(shù)量。在單端口或多端口RAM中,只要不涉及特殊讀寫策略,一般無需區(qū)分讀出深度和寫入深度,二者都是指RAM的總存儲單元數(shù)量。
⑤操作模式
以下是手冊上對于三種模式的介紹,可自行查看
⑥Enable Port Type
增加一個輸入使能引腳(Use ENA Port),或者一直使能(Always Enable)
⑦Port A Optional Output Registers
詢問是否在輸出端口A上添加一級寄存器,作為寄存器緩沖層。導(dǎo)致Dout輸出信號向后推遲一個時鐘周期。這樣設(shè)計的優(yōu)點有:
時序優(yōu)化:通過增加寄存器,可以提供額外的時鐘周期延遲,以適應(yīng)系統(tǒng)設(shè)計中的特定時序要求,例如滿足建立時間和保持時間約束,或者為接收邏輯提供更多的時間窗口來處理讀取的數(shù)據(jù)。
數(shù)據(jù)穩(wěn)定:寄存器可以起到穩(wěn)定輸出數(shù)據(jù)的作用,確保數(shù)據(jù)在時鐘邊沿變化之后已經(jīng)完全穩(wěn)定,這對于高速系統(tǒng)或需要高精度數(shù)據(jù)傳輸?shù)那闆r尤為重要。
性能提升:在某些情況下,通過寄存器輸出可以提高整體系統(tǒng)的吞吐率,因為讀取操作可以在不影響輸出數(shù)據(jù)質(zhì)量的前提下更快地進(jìn)行。
⑧ Port A Output Reset Options
通過配置Port A Output Reset Options,設(shè)計者可以精確控制在復(fù)位條件下端口A輸出的行為,包括何時復(fù)位以及復(fù)位后的初始輸出狀態(tài)。
RSTA Pin:(Reset for Port A)引腳是專門針對端口A輸出數(shù)據(jù)的復(fù)位信號。當(dāng)RSTA信號有效時,端口A的輸出寄存器(如果存在的話)將會被復(fù)位,從而清除輸出數(shù)據(jù)。這意味著即使RAM中有數(shù)據(jù),當(dāng)RSTA信號觸發(fā)時,端口A也不會輸出任何數(shù)據(jù),直到下一個有效的讀操作。
Output Reset Value: 這個選項允許設(shè)計者配置在復(fù)位事件發(fā)生時,端口A的輸出寄存器預(yù)先設(shè)定的復(fù)位值。當(dāng)RSTA信號導(dǎo)致復(fù)位時,輸出寄存器將被重置為預(yù)設(shè)的復(fù)位值,而非隨機(jī)或未知狀態(tài)。這對于系統(tǒng)初始化和復(fù)位恢復(fù)時確保輸出數(shù)據(jù)的一致性和安全性至關(guān)重要。
4.其他選項
①Load Init File
允許設(shè)計者在RAM實例化之初就加載預(yù)先設(shè)定的初始數(shù)據(jù)。當(dāng)FPGA配置完成并開始運(yùn)行時,該RAM內(nèi)的數(shù)據(jù)就已經(jīng)填充好了特定的值,而不是默認(rèn)的隨機(jī)值。
②Fill Remaining Memory Locations
加載了一個初始化文件來初始化RAM的一部分地址空間后,對剩余未初始化的內(nèi)存位置進(jìn)行填充的操作。
③Structural/UniSim Simulation Model Options
是一個與模擬模型相關(guān)的選擇項,常見于Cadence公司的設(shè)計工具中,尤其是用于設(shè)計驗證環(huán)節(jié)。這類選項允許設(shè)計者在功能仿真階段選擇使用何種級別的模擬模型來模擬RAM(以及其他類似組件)的行為。
④Behavioral Simulation Model Options
文章來源:http://www.zghlxwxcb.cn/news/detail-861586.html
行為級仿真模型選項:是指在進(jìn)行設(shè)計驗證時,對RAM或其他復(fù)雜邏輯單元選擇不同抽象程度的仿真模型進(jìn)行功能仿真的設(shè)置選項。文章來源地址http://www.zghlxwxcb.cn/news/detail-861586.html
到了這里,關(guān)于FPGA vivado IP核學(xué)習(xí)筆記——單端口RAM的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!