这个简易处理器包含了以下几个主要部分:
1. **定义操作码**
- 使用`define`宏定义了一些基本的操作码,如加载(`OP_LOAD`)、存储(`OP_STORE`)、加法(`OP_ADD`)等。
2. **模块声明**
- 定义了`simple_processor`模块,包含时钟(`clk`)和复位(`rst`)输入信号。
3. **内部组件**
- **寄存器文件**:一个由8个8位寄存器组成的寄存器文件,用于存储数据。
- **程序计数器(pc)**:8位的程序计数器,用于指向当前执行指令的地址。
- **指令寄存器(instruction_register)**:16位的寄存器,用于存储当前正在执行的指令。
4. **信号定义与解码**
- 定义了一些内部信号,如操作码(`opcode`)、源寄存器(`rs`)、目标寄存器(`rt`)和立即数(`immediate`)等,并进行了指令解码操作。
5. **执行单元**
- 根据操作码对数据进行相应的操作,如加法、减法等,并设置零标志位(`zero_flag`)。
6. **写回操作**
- 根据操作码决定是否将结果写回寄存器文件,并更新程序计数器。
7. **取指操作**
- 在每个时钟上升沿,根据程序计数器的值取指,并将指令存储到指令寄存器中。