1、SystemVerilog中的Program的作用?
将验证部分与设计部分进行隔离(实现方式就是将软件验证部分放置program中)
2、SystemVerilog中的Program结束方式?
Program结束方式分为两种:1、隐式结束 2、显式结束
1、隐式结束:如果program种有一个initial,则执行完该initial过程块,program就自动结束,但如果有多个initial过程块,则执行最后一个过程块后program将自动结束。
2、显示结束:如果program中的某个initial过程块不能自动结束,即无限循环,那么就需要加上$exit(),退出该program,此即为显示结束方式。
注:因此program的隐式结束与显示结束的区别在于initial块能不能自动结束,若不能需要加$exit();
3、SystemVerilog中的Program与module的联系与区别?
program | module |
---|---|
测试采样部分 | 设计部分 |
软件领域 | 硬件领域 |
4、使用 Program时需要注意的事项?
1、Program为软件领域,因此不可以出现与硬件相关的部分,因此不可以出现always(纯硬件),module(纯硬件),interface(含硬件部分),也不可以出现实例以及program的例化语句。
2、program的赋值方法:
1)如果是内部定义的变量采用阻塞赋值(即软件方式)
2)如果是驱动外部的硬件信号时应该使用非阻塞赋值(即硬件方式)
备注:
因UVM中有更加好的方式将验证与设计部分隔离开来,因此项目中program的使用不是很多。