# chip_learn **Repository Path**: hiczz/chip_learn ## Basic Information - **Project Name**: chip_learn - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-06 - **Last Updated**: 2026-10-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Chip Learn RISC-V CPU 学习实验平台 ## 项目简介 本项目是一个 RISC-V CPU 学习实验平台,包含两个部分: - **数字电路实验** (`digital_lab/`) - 数字电路基础实验 - **RISC-V CPU 实现** (`rtl/`) - 简易 RISC-V CPU 的 Verilog 实现 ## 项目结构 ``` chip_learn/ ├── digital_lab/ # 数字电路实验 │ ├── exp1_mux.v # 实验1:四路选择器 │ ├── exp2_seq.v # 实验2:锁存器/触发器/计数器 │ ├── exp3_adder.v # 实验3:门级加法器 │ ├── exp4_fsm.v # 实验4:状态机 │ ├── tb_exp1.v # 实验1测试台 │ ├── tb_exp2.v # 实验2测试台 │ ├── tb_exp3.v # 实验3测试台 │ ├── tb_exp4.v # 实验4测试台 │ ├── run_all.ps1 # 运行所有实验脚本 │ └── README.md # 实验说明 ├── rtl/ # RISC-V CPU RTL实现 │ ├── riscv_core.v # CPU核心顶层模块 │ ├── alu.v # 算术逻辑单元 │ ├── decoder.v # 指令译码器 │ ├── regfile.v # 寄存器文件 │ ├── imem.v # 指令存储器 │ ├── dmem.v # 数据存储器 │ ├── imm_gen.v # 立即数生成器 │ ├── if_id.v # 取指/译码流水线寄存器 │ ├── id_ex.v # 译码/执行流水线寄存器 │ └── riscv_defs.vh # RISC-V定义文件 ├── sim/ # 仿真文件 │ ├── tb_riscv.v # RISC-V测试台 │ └── program.s # 示例程序 ├── sw/ # 软件工具 │ └── asm.py # RISC-V汇编器 ├── run.bat # Windows运行脚本 └── env.md # 环境配置说明 ``` ## 快速开始 ### 环境要求 - Icarus Verilog (用于仿真) - GTKWave (用于波形查看) - Python 3.x (用于汇编器) ### 运行 RISC-V 仿真 ```bash # Windows run.bat # 或手动执行 iverilog -o sim/riscv_sim rtl/*.v sim/tb_riscv.v vvp sim/riscv_sim ``` ### 运行数字电路实验 ```powershell # PowerShell .\digital_lab\run_all.ps1 ``` ## 数字电路实验 实验 1:四路选择器 (MUX) - 实现 4 选 1 多路选择器 实验 2:锁存器 / 触发器 / 计数器 - D 锁存器、D 触发器、二进制计数器 实验 3:门级加法器 - 1 位全加器、4 位行波进位加法器 实验 4:状态机 - 有限状态机设计与实现 ## RISC-V CPU 实现 本项目实现了一个简化的 RISC-V CPU,支持以下指令类型: - R 型:ADD, SUB, SLT, AND, OR, XOR, SLL, SRL, SRA - I 型:ADDI, SLTI, ANDI, ORI, XORI, SLLI, SRLI, SRAI, LW, JALR - S 型:SW, SB, SH - B 型:BEQ, BNE, BLT, BGE - U 型:LUI, AUIPC - J 型:JAL ## 软件工具 ### RISC-V 汇编器 `sw/asm.py` 是一个简单的 RISC-V 汇编器,支持将 RISC-V 汇编代码转换为机器码。 ```python # 使用示例 python sw/asm.py < input.s > output.hex ``` ## 许可证 MIT License