첫 번째 모듈 만들기
Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 4번째.
모듈은 Verilog의 기본 구성 요소입니다. 모든 Verilog 코드 조각은 모듈 내부에 있습니다.
모듈을 다음과 같은 기능을 가진 컴포넌트라고 생각하세요:
- 입력(Inputs) (들어오는 신호)
- 출력(Outputs) (나가는 신호)
- 동작(Behavior) (수행하는 작업)
모듈 구문
module module_name ( inputs, outputs );
// 여기에 모든 내용이 들어갑니다
endmodule모든 모듈은 module로 시작하고 endmodule로 끝납니다.
입력과 출력
module and_gate(
input a, // a는 모듈 내부로 들어옵니다
input b, // b는 모듈 내부로 들어옵니다
output c // c는 모듈 외부로 나갑니다
);
// 동작 로직이 여기에 들어갑니다
endmodule- input = 신호가 모듈로 들어옵니다
- output = 신호가 모듈을 나갑니다
동작 추가하기
이제 모듈이 무언가를 수행하도록 만들어 보겠습니다:
module and_gate(
input a,
input b,
output c
);
assign c = a & b; // a와 b가 모두 1일 때만 c가 1이 됩니다
endmoduleassign은 오른쪽을 왼쪽에 지속적으로 연결합니다&는 Verilog에서 AND를 의미합니다
챌린지
이 챌린지에서는 OR 연산을 수행하는 간단한 모듈을 만들어야 합니다.
수행할 작업:
- 모듈의 이름은
or_gate여야 합니다. x라는 이름의 입력을 가져야 합니다.y라는 이름의 입력을 가져야 합니다.z라는 이름의 출력을 가져야 합니다.- 모듈 내부에서
assign을 사용하여z가x OR y와 같게 만드세요.
참고: Verilog에서 OR는 파이프 기호 |로 작성합니다. 입력 중 적어도 하나가 1(참)이면 1(참)을 출력합니다.
치트 시트
모듈(module)은 Verilog의 기본 빌드 블록으로, 입력, 출력 및 동작을 가진 구성 요소 역할을 합니다.
module module_name (
input a,
input b,
output c
);
// behavior
endmodule출력 신호를 지속적으로 구동하려면 assign을 사용하세요:
assign c = a & b; // AND
assign c = a | b; // OR&— AND 연산자|— OR 연산자
직접 해보기
// 1단계: or_gate라는 이름의 모듈 생성
// 2단계: 입력 x 생성
// 3단계: 입력 y 생성
// 4단계: 출력 z 생성
// 5단계: assign을 사용하여 z = x OR y 만들기
// Verilog에서 OR는 |로 작성됨
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.