[SystemVerilog语法拾遗] 关于process类的使用
我们在[IEEE]SystemVerilog.std.1800-2012官方文档中找到了相关介绍:
总结一下关于这个process类的应用,就是在fork…join/join_any/join_none中创建,后续控制具体的相关进程的执行的一个内建类。
有以下几点需要注意:
1、process对象的实例不能使用new,只能调用通过内部的静态函数self()来创建
2、process对象创建必须放在fork…join/join_any/join_none之间开启的进程,否则获取全局进程将毫无意义
3、process的加入使得进程可以作为参数在task间传输,进而使得进程的控制更加灵活,而不必像之前一样通过disable LABEL的方式那样局限(这一点在UVM_PHASE应用极为广泛)
下面通过一个更加具体的例子来对process应用小试牛刀:
黄色方框内是进程的声明,红色框内是进程的获取(创建),绿色框执行的进程的两个操作分别是关闭进程和等待进程完成,被关闭的进程对应着执行的状态是KILLED,而执行完的进程对应的执行状态是FINISHED。仿真结果如下: