testbech

一 基础语法

1 初始化

initial可以初始化信号,如clk, rst等信号都需要一个初始化值。#+数字表示等待一定时间后执行下一步操作,如下面的代码中rst初始化为0,10ns后置为1。时钟的生成可以通过#产生,每隔2ns时钟翻转一次,即产生一个4ns的时钟。

initial begin
        clk = 1'b0;
        rst = 1'b0;
        #10;
        rst = 1'b1;
end

always #2 clk <= ~clk;

2 文件读写

文件的读写需要先定义存储的变量再进行文件的读取。如下定义了位宽为32bit深度为1024的内存来读取文件,文件为16进制。

logic [31:0] mem [1024];
$readmemh("..//testdata//dat.hex", mem);

写文件的定义如下,可以结合时钟和使能信号写数据。

integer fp_wr;
initial fp_wr = $fopen("..//wr.dat","w");
$fwrite(fp_wr,"%h\n",dat[31:0]);

3 task和function

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容