요약 - ALU 설계
Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 57번째.
챌린지
ALU(산술 논리 장치)는 **두 개의 입력**을 받아 연산을 수행하고 **하나의 출력**을 생성하는 디지털 회로입니다. 선택 신호에 따라 두 입력에 대해 산술 및 논리 연산을 수행합니다. select 신호는 실행할 **하나의** 연산을 선택합니다.
작동 원리
| select | 연산 | 출력 |
|---|---|---|
2'b00 | 덧셈 | a + b |
2'b01 | 뺄셈 | a - b |
2'b10 | 비트 단위 AND | a & b |
2'b11 | 비트 단위 OR | a | b |
case 문을 사용하여 간단한 ALU를 만드세요.
수행할 작업:
alu라는 이름의 모듈을 생성합니다.- 입력 추가:
a(4비트),b(4비트),select(2비트) - 출력 추가:
result(4비트, reg 타입) always @(*)블록을 추가합니다.- 내부에
case (select)문을 추가합니다. 2'b00,2'b01,2'b10,2'b11에 대한 네 가지 케이스를 추가합니다.result = 0으로 설정하는default케이스를 추가합니다.endcase및endmodule로 마무리합니다.
직접 해보기
// TODO: alu 모듈 생성
// TODO: 입력 추가 (a, b, select)
// TODO: 출력 추가 (result)
// TODO: always @(*) 블록 추가
// TODO: case (select) 추가
// TODO: case 2'b00: result = a + b; 추가
// TODO: case 2'b01: result = a - b; 추가
// TODO: case 2'b10: result = a & b; 추가
// TODO: case 2'b11: result = a | b; 추가
// TODO: default: result = 0; 추가
// TODO: endcase 추가
// TODO: endmodule 추가