[SystemVerilog验证]第3章:过程语句和子程序

重点知识:
1)使用**void’**表示调用函数并且忽略它的返回值,如

void'( $cast(ls,rs))
  1. 对于任务和函数的参数,需要进行两次声明:方向声明和类型声明。在缺省的情况下,参数的类型是和前一个参数相同的,并且第一个参数的缺省类型为“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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值