• print之模块化


    这里参考特权同学的模块化思想,将常用的print等任务模块化,便于直接调用,提高代码的效率和易读性。现转载之,以供日后的学习和工作参考。

    print模块参考代码如下:

    //=================================//

    //useful print_task show
    //include error,warning,fatal,terminate,etc

    module print_task();

    //Show Warning Report
    task warning;
    input [80*8:1] msg;
    begin
        $write("WARNING at %t : %s",$time,msg);
    end
    endtask

    //Show Error Report
    task error;
    input [80*8:1] msg;
    begin
        $write("-ERROR- at %t : %s",$time,msg);
    end
    endtask

    //Show Fatal Report
    task fatal;
    input [80*8:1] msg;
    begin
        $write("*FATAL* at %t : %s",$time,msg);
        $write("Simulation false ");
        $stop;
    end
    endtask

    task terminate;
    begin
        $write("Simulate completed ");
        $stop;
    end
    endtask

    endmodule

    调用print模块参考:

    //test print_task.v
    module testcase();

    .....

    print_task print();    //instance

    .....

    initial 
    begin
        print.error("Unexpected response ");
        print.terminate;
    end

    endmodule

    //================================//

    对于常用的reset复位模块,也可以将其任务化:

    //================================//

    //reset module

    module test();

    .....

    initial
    begin
        reset_task(100);   //reset 100ns

    end

    .....

    task reset_task;
    input [15:0] reset_time;  //Difine reset time
    begin
        reset = 0;
        # reset_time;
        reset = 1;
    end
    endtask

    ......

    endmodule

    //================================//

  • 相关阅读:
    如何使用jpegtran 压缩JPG图片
    JS获取后台返回的JSON数据
    VUE安装步骤1
    VUE安装步骤
    SVN使用教程总结
    WebStorm的下载与安装
    理解CSS3 transform中的Matrix(矩阵)
    http statusCode(状态码) 200、300、400、500序列详解
    JS如何获取屏幕、浏览器及网页高度宽度?
    html5使用local storage存储的数据在本地是以何种形式保存的
  • 原文地址:https://www.cnblogs.com/hfyfpga/p/4277875.html
Copyright © 2020-2023  润新知