$readmemh
とを多用するいくつかの Verilog テストベンチ コードを見てきました$writememh
。
これらの関数は基本的にメモリの読み取りと書き込みを行うという漠然とした理解があります。それらの特定の機能は何ですか、またどのように機能しますか?
$readmemh
とを多用するいくつかの Verilog テストベンチ コードを見てきました$writememh
。
これらの関数は基本的にメモリの読み取りと書き込みを行うという漠然とした理解があります。それらの特定の機能は何ですか、またどのように機能しますか?
readmem/writememについて何かを見つけるのはそれほど簡単ではないことに同意します。ここで少し見つけることができます: https ://www.fullchipdesign.com/readmemh.htm
とにかく、これらの関数について言うことはあまりありませんが、構文は次のとおりです。
$readmem[hb]("File", ArrayName, StartAddr, EndAddr)
$writemem[hb]("File", ArrayName, StartAddr, EndAddr)
Verilogはファイル形式について非常に慎重であり、テキストファイルのビット数は配列のビット数と一致する必要があります。
配列を定義し、データで埋めて、writememh / writemembで書き、後で印刷することで、少し遊んでみることをお勧めします。
このような何かがあなたを始めるはずです(試してはいけません!)。
integer i;
reg [7:0] memory [0:15]; // 8 bit memory with 16 entries
initial begin
for (i=0; i<16; i++) begin
memory[i] = i;
end
$writememb("memory_binary.txt", memory);
$writememh("memory_hex.txt", memory);
end