본문 바로가기
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
    반응형