一、将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. 最后填充效果如下: