使用ISE時,使用IP核建立簡單雙埠RAM,即Simple Dual Port RAM的方法
使用ISE時,使用IP核建立簡單雙埠RAM,即Simple Dual Port RAM的方法。
轉自:https://jingyan.baidu.com/album/6f2f55a1681706b5b83e6c65.html?picindex=4
step1:
在專案上右鍵,新建,在新建介面選擇IP Core(IP核),命名並建立。
然後會自動開啟New Source Wizard,展開Memories & Storage Elements, 展開RAMs & ROMs,可以找到Block Memory Generator。
step2:
開啟這個Generator,來到如圖介面,左邊是當前將要建立的Memory的輸入輸出。稍後的設定會調整這些埠。點選Next.
step3:
在第二步(Page 2 of 6),選擇Simple Dual Port RAM,如果兩個埠時鐘相同也可以勾選Common Clock簡化輸入輸出以及內部設計。
可以看到左邊的埠有了地址埠ADDRA,ADDRB,輸入DINA,輸出DOUTB。還有A口寫使能WEA,以及兩個埠的CLKA和CLKB。
step4:
再下一步,設定Port A Options。包括資料寬度Write Width,和儲存單元個數Write Depth。如圖設定64個儲存單元,對應的地址線6根。Port B只需要自動跟隨A的設定即可(讀埠)。
step5:
在第四步,下面的Memory Initialization設定儲存器的初始化。勾選Load Init File以選擇coe檔案。
step6:
coe檔案實質上是文字檔案。我們使用記事本新建並編輯。
先寫memory_initialization_radix=進位制;
再寫memory_initialization_vector=各單元資料逗號隔開;
編輯好後,儲存並修改後綴為coe.
也可以通過Matlab生成。
step7:
如果匯入成功,則會顯示COE File Contents視窗,且沒有紅色的錯誤提示。
可以上下滾動檢視各個Index的初始值是否符合預期。
step8:
然後點選Generate。需要等待一段時間。完成後,我們就可以在程式碼中使用這個名稱的模組了。
比如我新建的這個是Ram,那麼我就可以 Ram myram(.CLKA(clk)...)去呼叫它了。