SystemVerilog/Verilog的testbench中文件的写入和读取操作

您所在的位置:网站首页 如何读取文件中的数据 SystemVerilog/Verilog的testbench中文件的写入和读取操作

SystemVerilog/Verilog的testbench中文件的写入和读取操作

2023-12-09 12:06| 来源: 网络整理| 查看: 265

在Testbench中很可能需要文件的读写操作,在可综合的设计中也可能会用到文件写入。SystemVerilog/Verilog提供的文件写入读取方法并不多,主要有两类。

第一类是writememb/writememh/readmemb/readmemh,第二类是$fscanf/$fwrite。第一类用法简单,但是功能弱,文件读取也不支持多维数组;第二类用法复杂一点,功能相对强大,配合循环语句可以处理多维数组。

1. writemem[b|h]/readmem[b|h]

writemem[b|h]主要有以下用法:

(1)$readmemb("",);

(2)$readmemb("",,);

(3)$readmemb("",,,);

其中起始地址和终止地址都是相对于“存储器名”指定的数据而言,而不是指写入文件时的位置。参考以下代码。

parameter WIDTH = 8; parameter INDEX0 = 16; parameter FILE_PATH_B = "E:/FPGA/PRACTICE/FileReadWrite/files/file_b.txt"; parameter FILE_PATH_H = "E:/FPGA/PRACTICE/FileReadWrite/files/file_h.txt"; parameter FILE_PATH_F = "E:/FPGA/PRACTICE/FileReadWrite/files/file_f.txt"; parameter FILE_PATH_HALF= "E:/FPGA/PRACTICE/FileReadWrite/files/file_half.txt"; reg [WIDTH-1: 0] dat0[INDEX0-1: 0], dat1[INDEX0-1: 0]; wire [WIDTH-1: 0] dat1_comp[INDEX0-1: 0]; reg [WIDTH-1: 0] dat0_read[INDEX0-1: 0]; integer i, j; integer fid; initial begin for( i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3