記述例(メモリ)

連想配列を使って、簡単なメモリモデルを作ります。仕様は、書き込みを行っていない未初期化領域をリードすると、random値を返す、です。簡単です。ポイントは、existsメソッドを使うところです。

--- test.sv ---module test; byte memory[int unsigned]; function void mem_write(int unsigned addr, byte data); memory[addr] = data; endfunction function byte mem_read(int unsigned addr); if(memory.exists(addr))begin $display("Debug : data exists"); return(memory[addr]); end else begin $display("Debug : no data"); return($random); end endfunction initial begin $display("memory[0x00000000] = %02xh", mem_read(32'h00000000)); mem_write(32'h00000000, 8'hFF); $display("memory[0x00000000] = %02xh", mem_read(32'h00000000)); endendmodule

--- 実行結果 ---

# Debug : no data# memory[0x00000000] = 24h# Debug : data exists# memory[0x00000000] = ffh