verilog的系統函數$readmemh的使用


在verilog中有$readmemh(“filename”, mem_name)命令,在使用這個命令時,”filename”中的路徑要用反斜杠’/’,而不是斜杠’\’。如

$readmemh("F:/mydesigen/re_input.txt",re_input);

上面的語句是正確的,而如果用斜杠就有問題,如

$readmemh("F:\mydesigen\re_input.txt",re_input);

對於需要的txt文件,其格式為每行一個數據,例如用matlab產生文件則可以這樣寫

fid0 = fopen('F:\mydesigen\re_input.txt','w+');

fprintf(fid0,'%x \n',real(info));

其中的換行符是必須的。同時,在matlab中,路徑語句的斜杠’\’或是反斜杠’/’都沒有問題。

module memory();
reg [7:0] my_mem [0:255];
initial
begin
        /*$readmemh("file",mem_array,start_addr,stop_addr);*/
        $readmemh("mem.list", my_mem);
        $display("0x00: %h", my_mem[8'h00]);
        $display("0x01: %h", my_mem[8'h01]);
        $display("0x55: %h", my_mem[8'h55]);
        $display("0x56: %h", my_mem[8'h56]);
end

endmodule
/*
        //comments are allowed
        0xab //addr 8'h00
        0xba //addr 8'h01
        @55  //jump to 8'h55
        0x55 //addr 8'h55
        0xaa //addr 8'h56
*/

 

我常用的是:

a0=funcCensusOneImage('im0.pgm',3);

fid0=fopen('G:\data.txt','wt');

fprintf(fid0,'%x\n',a0);

fclose(fid0);

向G:\data.txt文件寫入經過ct變換的8位16進制數據,且每一個數據占一行,符合modelsim仿真時將data.txt數據讀入存儲器寄存器的規范。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM