Update README

This commit is contained in:
Luke Wren 2021-11-26 23:33:46 +00:00
parent 1bb7e33b69
commit 5d093487b7
2 changed files with 11 additions and 9 deletions

View File

@ -1,13 +1,16 @@
# Hazard3 # Hazard3
Hazard3 is a 3-stage RISC-V processor, providing the following architectural support: Hazard3 is a 3-stage RISC-V processor, implementing the `RV32I` base instruction set and, optionally, the following extensions:
* `RV32I`: 32-bit base instruction set * `M`: integer multiply/divide/modulo
* `M` extension: integer multiply/divide/modulo * `C`: compressed instructions
* `C` extension: compressed instructions * `Zicsr`: CSR access
* `Zicsr` extension: CSR access * `Zba`: address generation
* Tentatively the `Zba`, `Zbb`, `Zbc` and `Zbs` bitmanip extensions, though there are no upstream compliance tests for these as of yet * `Zbb`: basic bit manipulation
* M-mode privileged instructions `ECALL`, `EBREAK`, `MRET` * `Zbc`: carry-less multiplication
* `Zbs`: single-bit manipulation
* _Support for the `Zba`/`Zbb`/`Zbc`/`Zbs` bit manipulation extensions is tentative, as there are no upstream compliance tests for these at time of writing._
* M-mode privileged instructions `ECALL`, `EBREAK`, `MRET` and the `WFI` instruction
* The machine-mode (M-mode) privilege state, and standard M-mode CSRs * The machine-mode (M-mode) privilege state, and standard M-mode CSRs
* Debug support, compliant with RISC-V debug specification version 0.13.2 * Debug support, compliant with RISC-V debug specification version 0.13.2
@ -19,7 +22,6 @@ There is an [example SoC integration](example_soc/soc/example_soc.v), showing ho
The following are planned for future implementation: The following are planned for future implementation:
* Support for `WFI` instruction
* `A` extension: atomic memory access * `A` extension: atomic memory access
Hazard3 is still under development. Hazard3 is still under development.

View File

@ -106,7 +106,7 @@ always @ (*) begin: rev_op_a
end end
// "leading" means starting at MSB. This is an LSB-first priority encoder, so // "leading" means starting at MSB. This is an LSB-first priority encoder, so
// ""leading" is reversed and "trailing" is not. // "leading" is reversed and "trailing" is not.
wire [W_DATA-1:0] ctz_search_mask = aluop == ALUOP_CLZ ? op_a_rev : op_a; wire [W_DATA-1:0] ctz_search_mask = aluop == ALUOP_CLZ ? op_a_rev : op_a;
wire [W_SHAMT:0] ctz_clz; wire [W_SHAMT:0] ctz_clz;