모듈
모듈 정의는 항상 키워드 module로 시작한다. 모듈 정의의 처음에는 모듈 이름, 포트리스트, 포트 선언, 그리고 선택적으로 파라미터가 온다. 포트리스트와 포트 선언은 외부 환경과 연결할 때만 쓴다. endmodule문은 반드시 모듈 정의의 마지막에 와야한다.
SR 래치는 S와R을 가지고 입력 포트로, Q와 Q_bar를 출력 포트로 가진다.
포트
포트는 모듈이 외부 환경과 소통할 수 있는 인터페이스이다.
모듈 정의는 선택적인 포트 리스트를 포함하지만 모듈이 외부 환경과 상호 작용을 하지 않는다면, 모듈은 포트를 가지지 않는다. 최상위 모듈 Top의 내부에서 파생된 4bit full_adder를 보면 모듈 Top이 최상위 모듈이며, 모듈 fulladd4는 Top 밑으로 파생된다. 그리고 포트 a,b,cin을 입력으로 받고 포트 sum,cout을 출력으로 내보낸다. 그러므로 모듈 fulladd4는 그것의 환경에 의해 덧셈을 수행한다.
포트 선언
포트 리스트의 모든 포트는 모듈 안에서 선언되어야 한다. 포트는 다음과 같이 선언될 수 있다.
포트 연결 규칙
★ 규칙 1 : 내부적으로 입력 포트는 반드시 wire형이다.
★ 규칙 2 : 내부의 출력을 받아오는 외부 포트는 반드시 wire형이다.
외부신호에 포트 연결하기
위치에 의한 연결
파생된 모듈의 포트와 정의한 모듈의 포트들은 같은 위치에 있는 신호들끼리 연결된다.
이름에 의한 포트 연결
위치에 의한 연결은 모듈 정의에서 포트의 위치를 기억하기 어렵기 때문에 자주 에러가 발생한다. 그래서 Verilog에서는 위치 대신 포트 이름에 의해 외부 신호를 연결할 수 있다. [권장 사항]
'UVM & RTL > Verilog HDL' 카테고리의 다른 글
[Verilog HDL] CH6 연산자 (0) | 2022.06.14 |
---|---|
[Verilog HDL] CH6 dataflow 모델링 (0) | 2022.06.14 |
[Verilog HDL] CH3 기본개념 (0) | 2022.06.14 |
[Verilog HDL] Instruction (0) | 2022.06.10 |
[33] Verilog HDL 순차회로 설계과제 ( FSM ) (0) | 2022.03.07 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!