复习:ALU 设计
本课属于 Coddy Verilog 学习旅程的“基础知识”单元。第 57 课,共 90 课。
挑战
ALU(算术逻辑单元)是一种数字电路,它接收两个输入,对它们执行运算,并产生一个输出。它根据选择信号对两个输入执行算术和逻辑运算。select 信号会选择要执行的一个运算。
工作原理
| select | 运算 | 输出 |
|---|---|---|
2'b00 | 加法 | a + b |
2'b01 | 减法 | a - b |
2'b10 | 按位与 | a & b |
2'b11 | 按位或 | 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添加四个分支 - 添加一个
default分支,将result = 0设为默认值 - 用
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基础知识中的所有课
自己练习: Verilog 在线编译器