txt文件可存储最大值_Verilog边码边学:十六进制文件读取$readmemh

本文介绍了Verilog中的系统任务$readmemh,用于读取十六进制文件并将数据一次性加载到数组中。内容涵盖了$readmemh的语法结构和多个实例,展示了不同分隔符下读取的数据如何填充到数组中。
摘要由CSDN通过智能技术生成

系统任务$readmemh读取十六进制文件。$readmemh的作用是将文件中的数据一次性的读入某个数组中,然后可以依次从数组中取出单个的数据进行处理。读取的内容只包括空白位置(空格、换行、制表格)、注释行、十六进制的数字。语法结构中的起始地址与终止地址可省略。

【语法结构】:

$readmemh("文件名", 存储器名,起始地址,终止地址);

【实例150】:

//从input文件夹下读取16进制文本hex_file_1.txt

//读取的文本数据存储在data_mem_1数组寄存器中

//data_mem_1数组寄存器的深度为8,位宽为16bit

reg[15:0]   data_mem_1 [7:0];

initial$readmemh("./input_file/hex_file_1.txt",  data_mem_1);

【仿真测试150】:

    任务$readmemh读取的数据之间可以使用空格(space)、换行(enter)、制表格(tab)进行分隔,若文件中读取的数据个数不足以填满寄存器数组所定义的深度,那么余下的数据以x填充。

测试用例1:

    读取文本hex_file_1.txt,该文件中以回车分隔,共有8个16进制数据。

    hex_file_1.txt文本中的数据排列如下。

c286e5be7887aa4726953c6e53ff87fd.png

    $readmemh读取并打印的数据如下。

# read from hex_file_1:

# f001

# e002

# d003

# c004

# b005

# a006

# 9007

# 1008

测试用例2:

    读取文本hex_file_2.txt,该文件中以空格分隔,共有8个16进制数据。

    hex_file_2.txt文本中的数据排列如下。

c6c80b1d9e063ab593bb2497342c0aa0.png

    $readmemh读取并打印的数据如下。

# read from hex_file_2:

# 1001

# 1002

# 1003

# 1004

# 1005

# 1006

# 1007

# 1008

测试用例3:

    读取文本hex_file_3.txt,该文件中以制表格分隔,共有8个16进制数据。

    hex_file_3.txt文本中的数据排列如下。

95d2b3e5fc1b85daecbbb2989c4ebcb7.png

    $readmemh读取并打印的数据如下。

# read from hex_file_3:

# a001

# a002

# a003

# a004

# a005

# a006

# a007

# a008

测试用例4:

    读取文本hex_file_4.txt,该文件中以回车分隔,仅有4个16进制数据。

    hex_file_4.txt文本中的数据排列如下。

dbf9f50e8097545153329104ac84af39.png

    $readmemh读取并打印的数据如下。

# read from hex_file_4:

# f001

# e002

# d003

# c004

# xxxx

# xxxx

# xxxx

# xxxx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值