Подтвердить что ты не робот

$ readmemh $writememh связанные ресурсы

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

4b9b3361

Ответ 1

Я согласен, что не слишком легко найти что-то о readmem/writemem. Вы можете найти здесь немного: http://fullchipdesign.com/index_files/readmemh.htm

Во всяком случае, не так много сказать об этих функциях, синтаксис:

$readmem[hb]("File",ArrayName,StartAddr,EndAddr)
$writemem[hb]("File",ArrayName,StartAddr,EndAddr)

Verilog очень разборчив в отношении формата файла, количество бит в текстовом файле должно соответствовать количеству бит в массиве.

Я рекомендую вам немного поиграть, указав массив, заполнив его записью с помощью writeememh/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

Ура!

Ответ 2

Чтение 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