Menu
Coddy logo textTech

요약 - 모듈 만들기

Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 36번째.

challenge icon

챌린지

이 챌린지는 이번 장에서 배운 모든 내용을 결합합니다. 모듈을 처음부터 생성하고 이를 인스턴스화하게 됩니다.

수행할 작업:

파트 1: 다음과 같은 구성을 가진 <strong>flipflop</strong>이라는 모듈을 생성하세요:

  • clk라고 불리는 1비트 입력
  • d라고 불리는 1비트 입력
  • reset이라고 불리는 1비트 입력
  • q라고 불리는 1비트 출력 (reg를 사용하고, always 블록 내에서 할당)

모듈은 다음과 같이 동작해야 합니다:

  • reset이 1일 때, q는 0이 됩니다.
  • 그렇지 않으면, 각 클록 에지(clock edge)에서 qd가 됩니다.

파트 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

기초의 모든 레슨