$readmemh $writememh связанные ресурсы
внезапно меня заставляют заглянуть в некоторый код Verilog testbench, который сильно использует $readmemh и $writemh. Я понял, что он в основном читает на память и пишет на память. Я буду рад, если вы можете указать на некоторые ресурсы, связанные с этими процедурами. PS: Я искал в google без успеха. (Я очень ... очень новый для Verilog)
2 ответов
Я согласен, что не слишком легко найти что-то о 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
Ура!
чтение шестнадцатеричного файла будет работать следующим образом:
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