个人技术分享

一、将txt文本数据读到tb文件中

假设有一个test.txt的文档,需要将其中的数据读出到testbench中,需要用到关键函数:

$readmemb 和 $readmemh

$readmemb:要求数字是二进制
$readmemh:要求数字是十六进制

在Verilog语法中,分别有以下三种用法:

(1)$readmemb(“<数据文件名>”,<存储器名>);

(2)$readmemb(“<数据文件名>”,<存储器名>,<起始地址>);

(3)$readmemb(“<数据文件名>”,<存储器名>,<起始地址>,<终止地址>);

(1)$readmemh(“<数据文件名>”,<存储器名>);

(2)$readmemh(“<数据文件名>”,<存储器名>,<起始地址>);

(3)$readmemh(“<数据文件名>”,<存储器名>,<起始地址>,<终止地址>);

//假设test文档中有86个8bit数据,需要读到testbench中,则先定义一个mem;
reg[7:0]  mem[85:0]; 
initial begin
		$readmemb("./test.txt",mem);
	end

注意:这个test.txt文件需要在仿真目录下,否则读取不到
在这里插入图片描述

二、此外这里补充一个快速生成数据文本的方式:

前提:sublime text工具 + 下载好的工具包
{:位数(两位)进制}
这里进制只能是2进制十进制。

例如:要生成86个8bit数据,2进制
1. 输入命令:[:07b]
2. 选中右键:repeat code with nubmers
在这里插入图片描述
3. 按照提示输入命令,填充数据为0~85,向下每次递增1,向右不增。
在这里插入图片描述
4. 最后填充效果如下:
在这里插入图片描述