본문 바로가기
Language/Verilog & SV

[Verilog & SV] Function vs Task

by VIR&US 2025. 4. 7.
반응형

목차

Function

입력에 대해 일부 처리를 수행하고 단일 값을 반환합니다.

Task

function보다 일반적이며 여러 결과 값을 계산하고 출력 및 입력 유형 인수를 사용하여 반환할 수 있습니다.

 

Function vs Task

Function
Task
delay, event, timing control를 사용할 수 없습니다. (no use NBA)
delay, event, timing control를 사용할 수 있습니다 (use NBA)
단일 값을 반환하여 입력 값에 응답합니다. 함수는 식에서 피연산자로 사용됩니다(함수 자체에 값 반환).
여러 목표를 지원하기 위해 출력 또는 출력 포트를 통해서만 여러 결과 값(작업으로 반환되는 값 없음)
하나 이상의 inupt 유형 인수가 있어야하고
output이나 inout 유형 인수를 사용할 수 없습니다.
모든 유형의 인수를 0개 이상 가질 수 있습니다.
I/O 목록에 없는 변수에도 엑세스 할 수 있습니다.
다른 function를 호출 할 수 있지만, task는 호출 불가능합니다.
다른 function이나 task 호출이 가능합니다.
return 값이 있지만 단일 값만 return 가능합니다.
default return value = 1bit reg
Support void return, return(value)
Return 값은 없지만
출력 인수를 사용하여 동일한 효과를 얻을 수 있습니다.
  • CAN HAVE: only variable, behavioral codes.
  • CANNOT HAVE: net, assign/force, gate primitives, module, initial/always
  • Default: Static
  • automatic를 사용하여 변수 범위를 local로 제한가능
  • 'ref' 사용가능
  • begin-end 필요없음
  • 'return' 지원 (종료 및 return 가능)

*System Verilog

728x90
반응형