Add Signal.md to playground/doc directory

This commit is contained in:
Liphen 2023-12-10 22:33:46 +08:00
parent 452b8ad995
commit 711e375959
2 changed files with 65 additions and 0 deletions

1
chisel/.gitignore vendored
View File

@ -12,6 +12,7 @@
!.scalafmt.conf
!build.sc
!README.md
!playground/doc/*
build/
# mill

View File

@ -0,0 +1,64 @@
# 信号列表
## 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 | 保留出现异常时的地址或指令 |