1-package abc;//记住要写分号
endpackage
2-#include叫做“文件包含命令”,用来引入对应的头文件。(头文件是包含函数声明,类的声明的文件。(问题:是否包括宏定义存疑----宏定义一般是单独放一个文件,全局可见) )
简单的理解:就是将头文件的内容插入到该命令的所在位置, 从而把头文件的内容和当前的源文件连接成一个源文件。 既:复制-粘贴。
#include有两种用法:
①#include<stdio.h>→使用尖括号< >
,编译器会从系统路径下查找头文件;
②#include"stdio.h" →使用双引号" "
,编译器首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找。
总的来说,双引号" "
的查找路径比尖括号< >
的大。
应用:对于标准头文件一般来说使用尖括号、双引号都可以成功的引入;
而我自己编写的文件在当前项目路径下,用的是双引号" "
,不能使用尖括号,只能用双引号,
在以后的编写过程中,推荐大家用尖括号引入标准头文件,使用双引号来引入自定义头文件(自己编写的头文件),这样就很容易区分头文件的区别。
3-自定义的sequence/transaction都继承于uvm_sequence_item
uvm库里的uvm_sequence继承于uvm_sequence_item,uvm_sequence_item继承于uvm_transaction
UVM设计模式 (七)命令模式、三种sequence启动方式、start_item/finish_item、中介模式、virtual sequence
4-package里面没有interface的sv文件,因为package是封装软件的类、方法、类型,而interface是硬件世界。
5-configration、sequence属于uvm_object
参数类型transaction在sequencer和driver之间传递