verilog
매우 간단한 예를 사용하여 시작하는 것이 항상 가장 좋으며 "Hello World !" 이외의 용도에 가장 적합한 것은 없습니다.
// Single line comments start with double forward slash "//"
// Verilog code is always written inside modules, and each module represents a digital block with some functionality
module tb;
// Initial block is another construct typically used to initialize signal nets and variables for simulation
initial
// Verilog supports displaying signal values to the screen so that designers can debug whats wrong with their circuit
// For our purposes, we'll simply display "Hello World"
$display ("Hello World !");
endmodule
module
입력-출력 포트가 없는 tb라고 하는 것은 시뮬레이션의 최상위 모듈로 작동합니다. initial
블록은 시간 0 단위에서 첫 번째 명령문을 시작하고 실행합니다. $display
형식화된 문자열을 콘솔에 표시하는 데 사용되는 Verilog 시스템 작업이며 하드웨어로 합성할 수 없습니다. 주로 테스트벤치 및 설계 디버그를 지원하는 데 사용됩니다. 이 경우 화면에 표시되는 문자 메시지는 "Hello World!"입니다.
ncsim> run Hello World ! ncsim: *W,RNQUIE: Simulation is complete.
verilog
매개변수는 다른 사양으로 모듈을 재사용할 수 있도록 하는 Verilog 구성입니다. 예를 들어, 4비트 가산기는 비트 수에 대한 값을 허용하도록 매개변수화될 수 있으며 모듈 인스턴스화 중에 새 매개변수 값이 전달될 수 있습니다. 따라서 N비트 가산기는 4비트, 8비트 또는 16비트 가산기가 될 수 있습니다. 함수 호출 중에 전달되는 함수에 대한 인수와 같습니다. parameter MSB = 7; // MSB is a parameter with a constant value 7 paramet
Verilog는 하드웨어 설명 언어이며 설계자가 RTL 설계를 시뮬레이션하여 논리 게이트로 변환할 필요가 없습니다. 시뮬레이션이 필요한 이유는 무엇입니까? 시뮬레이션은 RTL 코드가 의도한 대로 동작하는지 확인하기 위해 다른 시간에 다른 입력 자극을 설계에 적용하는 기술입니다. 기본적으로 시뮬레이션은 설계의 견고성을 검증하기 위해 잘 따라야 하는 기술입니다. 또한 가공된 칩이 실제 세계에서 사용되는 방식과 다양한 입력에 반응하는 방식과 유사합니다. 예를 들어, 위의 디자인은 출력 pe 보여진 바와 같이. 시뮬레이션을 통해