6.1 program的作用
将验证部分与设计部分进行隔离(实现方式就是将软件验证部分放置program中)
6.2 program的结束方式
Program结束方式分为两种:(1)隐式结束 (2)显式结束
(1)隐式结束:如果program种有一个initial,则执行完该initial过程块,program就自动结束,但如果有多个initial过程块,则执行最后一个过程块后program将自动结束。
(2)显示结束:如果program中的某个initial过程块不能自动结束,即无限循环,那么就需要加上$exit(),退出该program,此即为显示结束方式。
6.3 注意点
(1)因此program的隐式结束与显示结束的区别在于initial块能不能自动结束,若不能需要加$exit()
。还可调用$finish
。
(2)如果在测试程序里的多个地方调用同一个任务,由于任务里的局部变量会使用共享的静态存储区,所以不同的线程之间会窜用这些局部变量。为了防止出现这种情况,可以在程序语句中加入automatic
关键词指定任务、函数和模块使用自动存储、从而迫使仿真器使用堆栈区存储局部变量。
program automatic test (arb_if.TEST arbif);// 应当总是将程序块声明为automatic类型