System Verilog学习笔记(十)——任务和函数

本文介绍了SystemVerilog中的函数(function)和任务(task)的概念,强调了它们在代码复用和结构清晰方面的优势,并对比了两者在消耗仿真时间、返回值、参数传递等方面的特性。
摘要由CSDN通过智能技术生成

System Verilog学习笔记(十)——任务和函数

函数(function)和任务(task)可以提高代码的复用性和整洁度。他们的目的在于将大型的过程块切分为更小的片段,而便于阅读和代码维护。

区别

  • function不会消耗仿真时间,而task则可能会消耗仿真时间。
  • function无法调用task,而task可以调用function。
  • 一个可以返回数据的function只能返回一个单一数值,而task或者void function不会返回数值。
  • 一个可以返回数据的function可以作为表达式的操作数,而该操作数的值即function的返回值。

函数function

  • 首要目的是为运算表达式提供返回值 ,可以用return直接返回,也可以将值赋给与函数同名的变量
  • void函数不会返回数值
  • 函数的参数列表也可以声明input、output、inout和ref。
function logic [15:0] myfuncl(int x, int y);   //logic [15:0]是函数的返回值,x和y是两个参数,若没指明方向,则默认为input. 

endfunction

任务task

  • 任务的定义可以指定参数、input、output、inout和ref都可
  • 如果调用具有返回值的函数,但是又不使用该返回值,建议为其添加void’()进行转换。
  • 若参数没有被传递值,那么编译器将会为这些参数传入对应的默认值。
  • 类似于模块例化一样,可由参数位置顺序在调用方法时传递参数,也可以由参数名字调用方式时绑定参数。
task mytask3(input x, input y);

endtask
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值