[爆卦]Verilog readmemh是什麼?優點缺點精華區懶人包

為什麼這篇Verilog readmemh鄉民發文收入到精華區:因為在Verilog readmemh這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者piliGTcat (貍貓)看板Electronics標題[問題] Verilog $readm...


各位前輩好,自學Verilog大約2個月
現在遇到的專案問題,是想要用$readmemh載入memory數值,但發現載入的數值是錯誤的

我寫了一支簡單的.v如下:

`timescale 1ns/100ps
`define DELAY #1

module mem_rd(rst_n, clk, data, data2);
input rst_n;
input clk;
output [15:0] data;
output [15:0] data2;
reg [15:0] data;
reg [15:0] data2;
reg [15:0] data_mem[0:1];

initial begin
$readmemh("test_data.mem", data_mem);
end

always @(posedge clk or negedge rst_n)
if (!rst_n)
data <= `DELAY 16'h1000;
else begin
data <= `DELAY data_mem[0][15:0];
end

always @(posedge clk or negedge rst_n)
if (!rst_n)
data2 <= `DELAY 16'h2000;
else begin
data2 <= `DELAY data_mem[1][15:0];
end

endmodule



在test_data.mem中的資料為:
f0f0,0f0f

預期執行結果為
initial 經過clk正緣觸發後
data 16'h1000 16'hf0f0
data2 16'h2000 16'h0f0f

經過測試,data & data2在clk正緣觸發後,數值皆為16'hffff

我的模擬環境比較特殊,是在SIMetrix/SIMPLIS v8.20a下跑的,
但SIMetrix應該是用VVP來處理verilog的部分

我覺得很有可能是我的verilog code犯了很蠢的錯誤,但找了很久還是沒有發現...
希望有前輩們可以提供一些建議,我再去試試看

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.249.65.183 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1567290945.A.3FB.html
※ 編輯: piliGTcat (111.249.65.183 臺灣), 09/01/2019 06:36:38
st955272: hex逗點? 09/01 12:31
wju1230: 找問題最簡單方法就是簡化問題 縮小範圍 09/01 15:28
wju1230: ex: 吃兩行會有錯 那你有沒有少吃一行 09/01 15:29
wju1230: 縮到最小就是最簡單語法 看有錯沒錯差異在哪 09/01 15:29

你可能也想看看

搜尋相關網站