수색…
예제 컴파일 및 실행
의 소스 파일 가정 hello_world.v
과의 최상위 모듈 hello_world
. 이 코드는 다양한 시뮬레이터를 사용하여 실행할 수 있습니다. 대부분의 시뮬레이터는 컴파일 된 시뮬레이터입니다. 컴파일하고 실행하려면 여러 단계가 필요합니다. 일반적으로
- 첫 번째 단계는 Verilog 디자인을 컴파일하는 것입니다.
- 두 번째 단계는 디자인을 정교하게 최적화하는 것입니다.
- 세 번째 단계는 시뮬레이션을 실행하는 것입니다.
단계의 세부 사항은 시뮬레이터에 따라 다를 수 있지만 전반적인 아이디어는 동일하게 유지됩니다.
Cadence Simulator를 사용한 3 단계 프로세스
ncvlog hello_world.v
ncelab hello_world
ncsim hello_world
- ncvlog의 첫 번째 단계는 hello_world.v 파일을 컴파일하는 것입니다.
- 두 번째 단계 ncelab은 최상위 모듈 hello_world로 코드를 작성하는 것입니다.
- 세 번째 단계 ncsim은 최상위 모듈 hello_world를 사용하여 시뮬레이션을 실행하는 것입니다.
- 시뮬레이터는 모든 컴파일되고 최적화 된 코드를 작업 라이브러리에 생성합니다. [INCA_libs - 기본 라이브러리 이름]
Cadence Simulator를 사용한 단일 단계.
명령 행은 내부적으로 필요한 세 단계를 호출합니다. 이것은 이전 해석기 시뮬레이터 실행 스타일 (단일 명령 행)을 모방하기위한 것입니다.
irun hello_world.v
or
ncverilog hello_world.v
안녕하세요 세계
프로그램은 Hello World를 출력합니다! 표준 출력으로.
module HELLO_WORLD(); // module doesn't have input or outputs
initial begin
$display("Hello World");
$finish; // stop the simulator
end
endmodule
모듈은 Verilog의 기본 빌딩 블록입니다. 요소 컬렉션을 나타내며 모듈과 end 모듈 키워드 사이에 포함됩니다. 여기 hello_world는 가장 많이 (그리고 유일한) 모듈입니다.
초기 블록은 시뮬레이션 시작시 실행됩니다. 시작과 끝은 초기 블록의 경계를 표시하는 데 사용됩니다. $display
는 메시지를 표준 출력으로 출력합니다. 그것은 "\ n"줄을 메시지에 삽입합니다.
이 코드는 합성 할 수 없습니다. 즉 칩에 넣을 수 없습니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow