testbech

作者: ThalesW | 来源:发表于2020-11-23 17:36 被阅读0次

    一 基础语法

    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

    相关文章

      网友评论

          本文标题:testbech

          本文链接:https://www.haomeiwen.com/subject/wihviktx.html