Verilog中常见文件操作($readmemb,$fopen,$fwrite,$fclose)

Verilog 文件操作:$readmemb, $readmemh, $fopen, $fwrite, $fclose 实例解析
这篇博客详细介绍了Verilog中用于内存读写的函数,包括$readmemb和$readmemh从文件读取二进制和十六进制数据到存储器,以及$fopen, $fwrite, $fclose进行文件操作的使用方法,并提供了仿真验证的例子。" 136508958,4907661,3DTopia:文本到3D模型的生成与细化,"['3D模型', '人工智能', '文本生成', 'Pytorch', 'GPU']
部署运行你感兴趣的模型镜像

目录

 

一、$readmemb/$readmemh

二、$fopen,$fwrite,$fclose

三、仿真验证

四、参考


一、$readmemb/$readmemh

$readmemb和$readmemh用来从文件中读取数据到存储器中。读取的内容只包括:空白位置(空格、换行、制表格(tab和form-feeds),注释行、二进制或十六进制的数字。

数字中不能包含位宽说明和格式说明,其中readmemb要求每个数字是二进制数,readmemh要求每个数字必须是十六进制数字。数字中不定值x或X,高阻值z或Z,和下划线(_)的使用方法和代表意义与一般Verilog HDL程序中的用法一致。

在Verilog语法中,一共有以下六种用法:

  • (1)$readmemb("<数据文件名>",<存储器名>);
  • (2)$readmemb("<数据文件名>",<存储器名>,<起始地址>);
  • (3)$readmemb("<数据文件名>",<存储器名>,<起始地址>,<终止地址>);
  • (4)$readmemh("<数据文件名>",<存储器名>);
  • (5)$readmemh("<数据文件名>",<存储器名>,<起始地址>);
  • (6)$readmemh("<数据文件名>",<存储器名>,<起始地址>,<终止地址>);

二、$fopen,$fwrite,$fclose

$fwrite用来向文件中写入数据。与文件读取不同,文件写入需要打开文件,写入,最后关闭文件。操作流程如下:

handle = $fopen("D:/file.txt","w");//按照写操作打开文件,得到对应的句柄,作为文件操作标识;其中,文件路径间隔为“/”而不是“\”

$fwrite(handle,"%d\n",data);//按照十进制格式写入数据到handle对应文件中,只能逐个写入(即data不能是数组)

$fclose(handle);//关闭文件,至此文件操作结束

三、仿真验证

验证流程:

新建文件num.txt,存入0-10共11个二进制数;

测试文件中,将num.txt中的数据按照二进制格式读入到寄存器;

再将寄存器中的数据反序按照10进制存入num2.txt。

测试文件如下:

`timescale 1ns / 1ps

module file_test(

    );
reg [3:0]data[0:15];
reg [3:0]data2[0:15];
integer handle1;
integer i=0;
initial
begin
    $readmemb("F:/vivado_files/num.txt",data);

    handle1 = $fopen("F:/vivado_files/num2.txt","w");
    repeat(16)
    begin
        $fwrite(handle1,"%d\n",data[15-i]);
        i = i+1;
    end
    $fclose(handle1);
end
endmodule

num.txt文件如下:

 

读取结果如下:

num2.txt文件如下:  

 

四、参考

verilog中$readmemb和$readmemh的使用

您可能感兴趣的与本文相关的镜像

PyTorch 2.9

PyTorch 2.9

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值