重点知识:
1)使用**void’**表示调用函数并且忽略它的返回值,如
void'( $cast(ls,rs))
- 对于任务和函数的参数,需要进行两次声明:方向声明和类型声明。在缺省的情况下,参数的类型是和前一个参数相同的,并且第一个参数的缺省类型为“input logic”。如
function void T1(a,b,output bit [3:0] c, d) ; //a,b为input logic, c,d为output bit [3:0]
3)参数的传递方式可以指定为引用而不是复制,input/output/inout就是通过复制,ref就是通过引用(ref只能用于automatic属性的任务和函数)。
需要注意,在任务里面修改ref变量,修改的结果对调用它的函数随时可见;
向子程序传递数组时尽量使用ref获得最佳性能。如果不想修改数组的值,可以使用const ref,确保应用的数组不被子程序修改。
4)如果不加return语句,函数也会返回一个和函数同名的变量值;
5) module和progarm中的子程序默认是static,而class中的子程序默认是automatic。