2012-03-13 2 views
2

SystemVerilog를 사용하고 있습니다. 다음 무효 함수가 void 문맥에서 사용 되었습니까?

function write_pixel_data(datastr ds); 
/* some stuff here... but no return */ 
endfunction 

내가 좋아하는 내 함수를 호출하고있다 : 내 코드는

write_pixel_data(someval); 

그리고 내가 VCS 경고 얻을 :

Warning-[SV-NFIVC] Non-void function used in void context. 

을하지만 난 아무것도 반환하지 오전, 난 내가 알고 함수 호출을 void로 캐스트하여 경고를 제거 할 수 있습니다. 그러나 그것이 왜이 경고를 주는가 ??

감사합니다.

답변

4

함수를 void으로 선언하지 않은 상태에서 반환 값을 지정하지 않고 호출하면이 오류가 표시됩니다. 간단한 수정 :

function void write_pixel_data(datastr ds); 
/* some stuff here... but no return */ 
endfunction 

조심스럽게, 기능에서 '시간이 걸립니다'는 아무 것도 할 수 없습니다. 이를 위해서는 task이 필요합니다.

2

암시 적 유형으로 선언 된 함수는 logic을 반환합니다. 당신이 명시 적으로 반환 형식을 void로 선언해야합니다.

관련 문제