Ресурсы, связанные с $ readmemh $ writememh - PullRequest
12 голосов
/ 10 марта 2009

Внезапно меня заставляют взглянуть на некоторый код verilog testbench, который интенсивно использует $ readmemh и $ writememh. Я понял, что это в основном чтение в память и запись в память. Я буду рад, если вы сможете указать на некоторые ресурсы, связанные с этими процедурами. PS: я искал в Google безуспешно. (Я очень ... очень новичок в Verilog)

Ответы [ 2 ]

18 голосов
/ 10 марта 2009

Я согласен, что найти readmem / writemem не так-то просто. Вы можете найти немного здесь: http://fullchipdesign.com/index_files/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;
    end
    $writememb("memory_binary.txt", memory);
    $writememh("memory_hex.txt", memory);
end

Ура!

0 голосов
/ 17 августа 2017

Чтение HEX-файла будет работать так:

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;
    end
    $readmemh("memory_binary.txt", memory);

end
...