verilog內建提供了一些系統函式用於檔案讀寫,常用的有$readmemh(),$readmemb(),$fopen(),$fdisplay();
$readmemh/$readmemb函式通常用於對rom的行為模型建模,向rom中載入使用者程式。
用法如下:
1view codereg [31:0] mem[2047:0];2
initial
3begin
4 $readmemh("
rom.dat
",mem);
5end
最近做點東西東西需要做一下進製轉換,使用上面函式就可以輕鬆搞定,$readmemh/$readmemb用於檔案讀取,$fdisplay用於寫檔案,
通常在寫檔案之前需要用$fopen開啟乙個檔案控制代碼。乙個16進製制檔案轉2進製檔案的**如下:
1如果是2轉16進製制的話(rom.dat的內容為2進製),只需將$fdisplay(fd,"%b",mem[i]);變成->$fdisplay(fd,"%h",mem[i]);是不是很方便?比用c方便多了,也很直觀。module
tb();
2reg [31:0] mem[2047:0];3
integer
i,fd;45
initial
6begin
7 i=0
;8 $readmemh("
rom.dat
",mem);
9 fd=$fopen("
romb.dat");
10for(i=0;i<2048;i=i+1)11
begin
12 $fdisplay(fd,"%b"
,mem[i]);
13end
14end
1516
endmodule
SD卡讀寫 Verilog實現SD卡讀寫
目前常見的sd卡有兩種形式,一種是標準的sd卡,另外一種是tf卡,無論標準的sd卡或者tf卡,其基本協議是相同的,因此對於程式設計來說,這兩種型別的sd卡的讀寫方式是相同的。針對兩種不同型別的sd卡,其引腳介面訊號定義如下圖所示 標準sd卡 tf卡 對於上述的兩種型別的sd卡,都支援兩種操作模式,分...
Verilog 1 檔案讀寫有關操作
module read tb reg clk reg rst n reg 23 0 img in wire 23 0 img out parameter sum1 49729 223 223 49729 parameter sum2 49729 24025 reg 23 0 data in ram ...
c 檔案讀寫 文字讀寫
include int main else return 0 格式 intfscanf file stream,constchar format,返回值 如果成功,該函式返回成功匹配和賦值的個數。如果到達檔案末尾或發生讀錯誤,則返回 eof 引數1 file stream 檔案指標 引數2 cons...