riscv-lab/chisel/playground/doc/Signal.md

65 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 信号列表
## CSR 模块
### 信号
| 信号名 | 用处 |
| -------------- | --------------------------------------------------------------------- |
| wen | CSR 写使能write && !illegal_access 为真时,信号有效) |
| addr | CSR 地址 |
| mode | 当前模式 |
| rdata | 读到的 CSR 数据 |
| wdata | 写往 CSR 的数据 |
| write | 该指令为 CSR 写指令(即除 ECALL、ERET、EBREAK 这类 CSR 指令外的指令) |
| only_read | 该 CSR 指令只进行读操作 |
| illegal_mode | 当前模式低于要操作的 CSR 的最低模式 |
| illegal_write | 当前写操作非法(指令为写指令且为非只读操作但访问的 CSR 权限为只读) |
| illegal_access | 当前 CSR 访问非法(模式非法或写非法时,信号有效) |
| illegal_addr | 要访问的 CSR 地址不存在 |
### 掩码
| 掩码名 | 数值 |
| ------------- | ------------------------ |
| sstatus_wmask | h00000000000c6122 |
| sstatus_rmask | h80000003000de762 |
| sie_rmask | "h222".U(64.W) & mideleg |
| sie_wmask | "h222".U(64.W) & mideleg |
| sip_rmask | "h222".U(64.W) & mideleg |
| sip_wmask | "h222".U(64.W) & mideleg |
## Decoder Unit 模块
### InstInfo 结构体
| 信号名 | 用处 |
| ---------- | -------------------------- |
| valid | 指令有效 |
| inst_legal | 指令合法,是已经实现的指令 |
| reg1_ren | src1 读寄存器堆使能 |
| reg1_raddr | src1 访问寄存器堆地址 |
| reg2_ren | src2 读寄存器堆使能 |
| reg2_raddr | src2 访问寄存器堆地址 |
| fusel | FU 模块选择信号 |
| op | FU 模块内部的操作码 |
| reg_wen | 写回级是否写回寄存器堆 |
| reg_waddr | 寄存器堆写回地址 |
| imm | 立即数 |
| inst | 原指令 |
### SrcInfo 结构体
| 信号名 | 用处 |
| --------- | -------------------- |
| src1_data | 当前指令的源操作数 1 |
| src2_data | 当前指令的源操作数 2 |
### ExceptionInfo 结构体
| 信号名 | 用处 |
| --------- | -------------------------- |
| exception | 当前指令的异常信息 |
| interrupt | 当前指令的中断信息 |
| tval | 保留出现异常时的地址或指令 |