verilog存儲器讀寫操作


1.文件打開和關閉:

首先定義integer指針,然后調用$fopen(file_name,mode)任務,不需要文件時,調用$fopen(file_name)

常用mode包括:

“w"打開文件並從文件頭開始寫,如果不存在就創建文件。

“w+"打開文件並從文件頭開始讀寫,如果不存在就創建文件

"a"打開文件並從文件末尾開始寫,如果不存在就創建文件

“a+"打開文件並從文件末尾開始讀寫,如果不存在就創建文件

2.輸出到文件:顯示任務前加f,調用格式:

$fdisplay(文件指針,"顯示內容",顯示變量),再如$fmonitor(…)

除了多一個文件指針外,其他與在控制台輸出的任務是用方法一致。

3.讀存儲器操作

$readmemh讀十六進制文件,$readmemb讀二進制文件

$readmemh (" file_name", <memory_name>);

$readmemh (" file_name", <memory_name>, <start_addr>);

$readmemh (" file_name", <memory_name>, <start_addr>, <finish_addr>);

4.輸出存儲器中數據寫入一個文件中

例如:

module readmem;
    reg [7:0] mem[7:0];
    reg [2:0] i;
    integer file;
    initial
    begin
        file = $fopen("memory.txt","w");
        $readmemb("memoryb.txt",mem,4,0);// 從文本的讀取數據向mem[4]開始寫入,知道寫到mem[0]
        for(i =0;i<7;i= i+1)
        begin
            $display("mem[%d] = %b",i,mem[i]);
            $fdisplay(file,"mem[%d] = %b",i,mem[i]);
        end

end


免責聲明!

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



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