Verilog 파일을 가지고 싶습니다. 일부 파일을 실행 한 다음 다른 파일에서 include "maths.v"
이고 작업을 호출하는 작업은 mathsfunction;
입니다. 내가 제대로 이해한다면 그 시점에서 작업을 실행해야 다른 파일에 initial begin - end
블록 코드는 다음과 같습니다 :verilog 2001 구문에서 전역 선언이 불법 임.
Maths.v
task mathsfunction;
reg [0:31] x;
reg [0:31] y;
reg [0:31] z;
begin
x = $urandom;
y = $urandom;
z = x + y
end
#200
endtask
내가 처음에 한 컴파일 오류를 받고 있어요 line task mathsfunction;
어느 것이 Global declarations are illegal in Verilog 2001 syntax.
내가 지금까지 배웠던 것에서, 그냥 작업 (모듈이 아닌, 나는 모듈이되기를 원하지 않는다) 인 verilog 파일은 괜찮을 까? 왜 이것이 작동하지 않는지 확실하지 않습니다.
어떤 도움이 Verilog2K ("Verilog를")와 SystemVerilog를 혼동하고 있다는
자세한 정보를 제공해야합니다. 글로벌 공간에서 작업을 선언 할 수 있습니다. 그래서 당신의 메시지는 다른 것과 관련이 있습니다. – Serge
전 LRM이 없습니다.하지만 Verilog의 모든 버전은 전역 공간 (모듈 외부)에서 신호, 작업, 함수 또는 매개 변수 선언을 지원하지 않습니다. SystemVerilog가하는 것은 알고 있지만 그렇게하는 것은 나쁜 습관으로 간주됩니다. 공통적으로 공유되는 태스크, 함수 등을 정의하는 것은 SystemVerilog 패키지에 넣는 것이 좋습니다. – Greg