$dump
用法
$dumpfile("file. dump"); 打开一个[[Verilog中的一些系统函数#^589657|VCD数据库]]用于记录
$dumpvars(level,start_module); 要记录的信号,level=0表示记录所有
$dumpflush; 将VCD数据保存到磁盘 不明白
$dumpoff; 停止记录
$dumpon; 重新开始记录
$dumplimit(); 限制VCD文件的大小(以字节为单位)
$dumpall; 记录所有指定的信号值
注:VCD文件是在对设计进行的仿真过程中,记录各种信号取值变化情况的信息记录文件。EDA工具通过读取VCD格式的文件,显示图形化的仿真波形,所以,可以把VCD文件简单地视为波形记录文件.) ^589657
用法示例
initial
begin
$dumpfile (“verilog. dump”);
$dumpvars (0, testfixture);
end
$dumpvars; // Dump所有层次的信号
$dumpvars (1, top); // Dump top模块中的所有信号
$dumpvars (2, top. u1); // Dump实例top. u1及其下一层的信号
$dumpvars (0, top. u2, top. u1. u13. q); // Dump top.u2及其以下所有信号,以及信号top. u1. u13. q。
$dumpvars (3, top. u2, top. u1); // Dump top. u1和top. u2及其下两层中的所有信号。
$ readmemb、$ readmemh
用法
在Verilog HDL程序中有两个系统任务$ readmemb和$readmemh,用来从文件中读取数据到存贮器中。这两个系统任务可以在仿真的任何时刻被执行使用,其使用格式共有以下六种:
1) $readmemb("<数据文件名>",<存贮器名>);
2) $readmemb("<数据文件名>",<存贮器名>,<起始地址>);
3) $readmemb("<数据文件名>",<存贮器名>,<起始地址>,<结束地址>);
4) $readmemh("<数据文件名>",<存贮器名>);
5) $readmemh("<数据文件名>",<存贮器名>,<起始地址>);
6) $readmemh("<数据文件名>",<存贮器名>,<起始地址>,<结束地址>);
特别注意(FBI Warning!)
- 注意代码中路径斜杠的方向和windows系统中路径中斜杠方向是反的。如果直接将系统中的路径复制到代码中的话会报错。软件会提示不能打开文件。在编写代码时将文件路径复制进去后,要修改一下斜杠的方向。!!!!!!!!
- 如果没有路径只有文件名的时候,需要将文件在工程所在文件夹和仿真文件所在文件夹中都存放一份。这种方法使用起来比较麻烦,为了方便的话,直接使用全路径比较好。
参考
Verilog HDL中使用系统任务 $readmemh遇到问题及解决方法_嵌入式@hxydj的博客-CSDN博客_verilog中readmemh
include
Verilog中可以使用预处理命令来包含新文件,一般在被包含的文件里定义一些常用的task和define方便后续的使用
`include "文件名"
include位置需要在 module声明之后。
用法
`include “绝对路径”
`include “[相对路径]”
`include “文件名”//这样写需要把文件放在同一个目录下,而且有时候虽然在同一个目录下,编译还是会出现问题
优先级
`include "file1.v"
`include "file2.v"
这样使用默认了file2.v可以使用file1.v的内容