요약 - 모듈 만들기
Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 36번째.
챌린지
이 챌린지는 이번 장에서 배운 모든 내용을 종합합니다. 처음부터 모듈을 생성하고 이를 인스턴스화합니다.
수행할 작업:
Part 1: 다음과 같은 <strong>flipflop</strong>이라는 이름의 모듈을 만듭니다:
clk라는 이름의 1비트 inputd라는 이름의 1비트 inputreset이라는 이름의 1비트 inputq라는 이름의 1비트 output (always block에서 할당되는 reg 사용)
모듈은 다음과 같이 작동해야 합니다:
reset이 1일 때,q는 0이 됩니다- 그렇지 않으면 각 클록 엣지에서
q는d가 됩니다
Part 2: 이름을 통한 port mapping을 사용하여 <strong>top</strong> 모듈 내에서 <strong>flipflop</strong> 모듈을 인스턴스화합니다
각 port를 다음 신호에 연결합니다:
- Port
clk→ 신호clock - Port
d→ 신호data - Port
reset→ 신호reset_signal - Port
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