요약 - 모듈 만들기
Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 36번째.
챌린지
이 챌린지는 이번 장에서 배운 모든 내용을 결합합니다. 모듈을 처음부터 생성하고 이를 인스턴스화하게 됩니다.
수행할 작업:
파트 1: 다음과 같은 구성을 가진 <strong>flipflop</strong>이라는 모듈을 생성하세요:
clk라고 불리는 1비트 입력d라고 불리는 1비트 입력reset이라고 불리는 1비트 입력q라고 불리는 1비트 출력 (reg를 사용하고, always 블록 내에서 할당)
모듈은 다음과 같이 동작해야 합니다:
reset이 1일 때,q는 0이 됩니다.- 그렇지 않으면, 각 클록 에지(clock edge)에서
q는d가 됩니다.
파트 2: 이름을 이용한 포트 매핑(port mapping by name)을 사용하여 <strong>top</strong> 모듈 내에서 <strong>flipflop</strong> 모듈을 인스턴스화하세요.
포트들을 다음 신호들에 연결하세요:
- 포트
clk→ 신호clock - 포트
d→ 신호data - 포트
reset→ 신호reset_signal - 포트
q→ 신호out
직접 해보기
// 파트 1: flipflop 모듈 생성
// TODO: 포트 추가
// TODO: posedge clk 및 posedge reset을 포함하는 always 블록 추가
// reset이 1이면, q <= 0
// 그렇지 않으면 q <= d
// 파트 2: 인스턴스화가 포함된 Top 모듈
module top (
input clock,
input data,
input reset_signal,
output out
);
// TODO: 인스턴스 이름 ff1으로 flipflop 인스턴스화
// 이름을 통한 포트 매핑 사용: .clk(clock), .d(data), .reset(reset_signal), .q(out)
endmodule