首页 > 其他 > 详细

print之模块化

时间:2015-02-06 20:27:59      阅读:294      评论:0      收藏:0      [点我收藏+]

这里参考特权同学的模块化思想,将常用的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\n");
    $stop;
end
endtask

 

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

endmodule

 

调用print模块参考:

//test print_task.v
module testcase();

.....

print_task print();    //instance

.....

initial 
begin
    print.error("Unexpected response\n");
    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

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

print之模块化

原文:http://www.cnblogs.com/hfyfpga/p/4277875.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!