13

$readmemhとを多用するいくつかの Verilog テストベンチ コードを見てきました$writememh

これらの関数は基本的にメモリの読み取りと書き込みを行うという漠然とした理解があります。それらの特定の機能は何ですか、またどのように機能しますか?

4

1 に答える 1

25

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
于 2009-03-10T11:45:12.397 に答える