FPGA RAM核的使用及除錯

2021-09-10 16:11:01 字數 1930 閱讀 8772

隨機訪問儲存器(random access memory,ram)又稱作「隨機儲存器」,是與cpu直接交換資料的內部儲存器,也叫主存(記憶體)。它可以隨時讀寫,而且速度很快,通常作為作業系統或其他正在執行中的程式的臨時資料儲存媒介。

儲存單元的內容可按需隨意取出或存入,且訪問的速度與儲存單元的位置無關的儲存器。這種儲存器在斷電時將丟失其儲存內容,故主要用於儲存短時間使用的程式。 按照儲存單元的工作原理,隨機儲存器又分為靜態隨機儲存器(英文:static ram,sram)和動態隨機儲存器(英文dynamic ram,dram)。

這裡直接呼叫ip核進行測試

選擇單口的ram進行寫資料操作,並通過波形分析chipscope進行資料的核對

話不多說直接貼**:

module top(ext_clk_25m,ext_rst_n,ram_rddb

);input ext_clk_25m;

input ext_rst_n;

output[7:0] ram_rddb;

ram_controller uut_ram_controller(

.clk(ext_clk_25m),

.rst_n(ext_rst_n),

.ram_rddb(ram_rddb)

);endmodule

module ram_controller(clk,rst_n,ram_rddb

);input clk;

input rst_n;

output [7:0] ram_rddb;

reg [4:0]ram_addr;//ram位址

reg [7:0]ram_wrdb;//ram寫入資料

reg ram_wren;//寫入使能

reg[9:0] cnt;

always@(posedge clk or negedge rst_n)begin

if(rst_n==1'b0)begin

cnt<=1'b0;

endelse begin

cnt<=cnt+1'b1;

endend

always@(posedge clk or negedge rst_n)begin

if(rst_n==1'b0)begin

ram_wren<=1'b0;

ram_wrdb<=1'b0;

ram_addr<=1'b0;

endelse if((cnt>10'd0)&&(cnt<10'd33))begin

ram_wren<=1'b1;

ram_wrdb<=ram_wrdb+1'b1;

ram_addr<=ram_addr+1'b1;

endelse if((cnt>10'd0)&&(cnt<10'd33))begin

ram_wren<=1'b1;

ram_wrdb<=1'd0;

ram_addr<=ram_addr+1'b1;

endelse begin

ram_wren<=1'b0;

ram_wrdb<=1'b0;

ram_addr<=1'b0;

endend

my_ram your_instance_name (

.clka(clk), // input clka

.wea(ram_wren), // input [0 : 0] wea

.addra(ram_addr), // input [4 : 0] addra

.dina(ram_wrdb), // input [7 : 0] dina

.douta(ram_rddb) // output [7 : 0] douta

);endmodule

如果使用波形分析儀的話需要新建cdc檔案

配置檔案的方法我博文中有講到

寫博文的時候不小心把波形分析儀關閉了就不跟截圖了over

利用virtualbox的虛擬串列埠除錯核心

2012 04 04 23 44 00 標籤 分類 linux sunvirtualbox的串列埠功能提供的很是強大,即便你的主機沒有串列埠,你依然可以利用兩個virtualbox的虛擬機器來除錯你的核心.步驟1,除錯機將串列埠設定成host pipe,然後選中建立,名字取為類似這樣的東西 wind...

Vivado PLL IP核的使用

當我們需要用到分頻或者倍頻的時候,就需要使用vivado中的 pll ip核來獲得我們想要的時鐘頻率。下面簡單說明一下如何配置pll ip核。1 查詢 pll ip核 2 指定用於分頻的輸入頻率 3 設定輸出頻率 相位以及占空比 4 設定locked訊號的名字 locked訊號是用來觀察pll輸出時...

GDB除錯精粹及使用例項

gdb除錯精粹及使用例項 一 列檔案清單 1 list gdb list line1,line2 二 執行程式 要想執行準備除錯的程式,可使用run命令,在它後面可以跟隨發給該程式的任何引數,包括標準輸入和標準輸出說明符 和外殼萬用字元 在內。如果你使用不帶引數的run命令,gdb就再次使用你給予前...