practice_templates/basic_01/verilog_combo/README.md
基础实践 1-1: Verilog 组合逻辑设计
📚 知识点
| 知识点 | 说明 |
|---|---|
| assign 连续赋值 | 组合逻辑的基本描述方式 |
| always @(*) | 组合逻辑的过程块写法 |
| case/casez 语句 | 多路选择、优先编码器 |
| 条件运算符 ?: | 三目运算符实现 MUX |
| 位拼接 {} | 数据位的拼接和重复操作 |
🎯 任务目标
你需要补全 3 个 RTL 模块:
1. rtl/mux4to1.sv — 4 选 1 多路选择器
- 4 个 8-bit 输入
in0~in3,2-bit 选择信号sel - 根据
sel值选择输出
2. rtl/decoder3to8.sv — 3-8 译码器
- 3-bit 输入
in,使能信号en - 输出 8-bit
out,独热码
3. rtl/priority_encoder.sv — 优先编码器
- 8-bit 输入
req(请求信号) - 输出 3-bit
grant_idx(最高优先级的请求编号) - 输出 1-bit
valid(是否有请求)
📁 文件结构
├── rtl/
│ ├── mux4to1.sv ← ⭐ TODO: 补全多路选择器
│ ├── decoder3to8.sv ← ⭐ TODO: 补全译码器
│ └── priority_encoder.sv ← ⭐ TODO: 补全优先编码器
├── tb/
│ └── tb_combo.sv ← 测试平台(完整)
├── Makefile
└── README.md
🏃 操作步骤
- 阅读每个模块的接口定义和注释
- 按顺序补全 3 个模块
make compile— 编译make sim— 运行仿真- 查看输出,确认 "ALL TESTS PASSED"
✅ 验收标准
- 编译无错误、无警告
- 仿真输出 "ALL TESTS PASSED"
- 所有测试向量通过
📝 考核方式
| 考核项 | 分值 | 说明 |
|---|---|---|
| mux4to1 正确实现 | 30 分 | 4 个通道选择全部正确 |
| decoder3to8 正确实现 | 30 分 | 独热码输出正确,使能控制正确 |
| priority_encoder 正确实现 | 30 分 | 优先级逻辑正确,valid 信号正确 |
| 代码风格 | 10 分 | 缩进规范、注释清晰 |
| 合计 | 100 分 |
通过标准:≥ 70 分