fpga ram(2)
ram的讀寫測試,利用signaltap ii進行板級測試
錯誤經驗積累:
signaltap ii軟體在訊號測試的時候,有的訊號是紅色的,無法進行除錯,這是因為這個訊號在編譯的時候被綜合掉了,正確的做法是把這個訊號,作為輸出訊號。
module ram(input clk,input rst_n,output [7:0] ram_rd_data);
//wire define
wire ram_wr_en; //ram 寫使能
wire ram_rd_en; //ram讀使能
wire [4:0] ram_addr;
wire [7:0] ram_wr_data; //ram寫資料
//讀寫模組
ram_rw u_ram_rw(
.clk(clk),
.rst_n(rst_n),
.ram_wr_en(ram_wr_en),
.ram_rd_en(ram_rd_en),
.ram_wr_data(ram_wr_data),
.ram_addr(ram_addr)
);ram_1port ram_1port_inst (
.address ( ram_addr ),
.clock ( clk),
.data ( ram_wr_data ),
.rden ( ram_rd_en ),
.wren ( ram_wr_en ),
.q ( ram_rd_data )
); endmodule
//讀寫控制模組
module ram_rw(
input clk,
input rst_n,
output ram_wr_en,
output ram_rd_en,
output reg [4:0] ram_addr,
output reg [7:0] ram_wr_data
);reg [5:0] rw_cnt; //讀寫控制器
//讀寫控制器,計數器範圍0-63
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
rw_cnt<=6』d0;
else
if(rw_cnt==6』d63)
rw_cnt<=0;
else
rw_cnt<=rw_cnt+1;
end//寫使能訊號產生
assign ram_wr_en=(rw_cnt>=0&&rw_cnt<=31)?1:0;
//寫使能訊號產生
assign ram_rd_en=(rw_cnt>=32&&rw_cnt<=63)?1:0;
//寫資料訊號
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
ram_wr_data<=0;
else if(rw_cnt>=0&&rw_cnt<=31)
ram_wr_data<=ram_wr_data+1;
else
ram_wr_data<=0;
end//讀寫位址訊號 範圍0-31
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
ram_addr<=0;
else if(ram_addr==31)
ram_addr<=0;
else
ram_addr<=ram_addr+1;
endendmodule
之前進行板級測試的時候,沒有把ram_rd_data作為輸出訊號,導致無法觀測ram_rd_data的輸出。
FPGA RAM核的使用及除錯
隨機訪問儲存器 random access memory,ram 又稱作 隨機儲存器 是與cpu直接交換資料的內部儲存器,也叫主存 記憶體 它可以隨時讀寫,而且速度很快,通常作為作業系統或其他正在執行中的程式的臨時資料儲存媒介。儲存單元的內容可按需隨意取出或存入,且訪問的速度與儲存單元的位置無關的儲...
ceph 讀寫測試
1.1 使用ceph自帶的rados bench工具進行測試 該工具的語法是 rados bench p b t no cleanup pool name 測試所針對的儲存池 seconds 測試所持續的秒數 操作模式,write 寫,seq 順序讀 rand 隨機讀 b block size,即塊...
順序讀寫與隨機讀寫測試
1.1 順序讀取效能測試 圖1.1 機械硬碟順序讀取測試 以上為機械硬碟順序讀情況下的效能測試,測試顯示平均讀取速度能達到84.0mb s。1.2 順序寫入效能測試 圖1.2機械硬碟順序寫入測試以上為機械硬碟順序寫情況下的效能測試,測試顯示平均寫入速度能達到79.0mb s。1.3 隨機讀取效能測試...