From ba15cf27fa41faf8612299765aee449e3dd9f254 Mon Sep 17 00:00:00 2001 From: Bill Traynor Date: Sun, 27 Nov 2022 14:49:22 -0500 Subject: Changing bitfield size to make labels fit. Updated imm[11] & imm[12] to 4 bits each to make their text fit. --- src/images/wavedrom/immediate_variants.adoc | 4 ++-- src/rv32.adoc | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/images/wavedrom/immediate_variants.adoc b/src/images/wavedrom/immediate_variants.adoc index cb63f57..f3c6179 100644 --- a/src/images/wavedrom/immediate_variants.adoc +++ b/src/images/wavedrom/immediate_variants.adoc @@ -41,13 +41,13 @@ .... {reg: [ {bits: 7, name: 'opcode'}, - {bits: 1, name: 'imm[11]', type: 3}, + {bits: 4, name: 'imm[11]', type: 3}, {bits: 4, name: 'imm[4:1]', type: 3}, {bits: 3, name: 'funct3'}, {bits: 5, name: 'rs1'}, {bits: 5, name: 'rs2'}, {bits: 6, name: 'imm[10:5]', type: 3}, - {bits: 1, name: 'imm[12]', type: 3} + {bits: 4, name: 'imm[12]', type: 3} ], config: {label: {right: 'B-Type'}}} .... diff --git a/src/rv32.adoc b/src/rv32.adoc index 23371ac..8fccaba 100644 --- a/src/rv32.adoc +++ b/src/rv32.adoc @@ -42,7 +42,7 @@ Most of the commentary for RV32I also applies to the RV64I base. integer ISA. For RV32I, the 32 `x` registers are each 32 bits wide, i.e., XLEN=32. Register `x0` is hardwired with all bits equal to 0. General purpose registers `x1`–`x31` hold values that various -instructions interpret as a collection of Boolean values, or as two’s +instructions interpret as a collection of Boolean values, or as two's complement signed binary integers or unsigned binary integers. There is one additional unprivileged register: the program counter `pc` @@ -50,7 +50,7 @@ holds the address of the current instruction. [[gprs]] .RISC-V base unprivileged integer register state. -[col[s="<|^|>"|option[s="header",width="50%",align="center"grid="none"] +[col[s="<|^|>"|option[s="header",width="50%",align="center"grid="rows"] |=== <| [.small]#XLEN-1#| >| [.small]#0# 3+^| [.small]#x0/zero# @@ -86,7 +86,7 @@ holds the address of the current instruction. 3+^| [.small]#x30# 3+^| [.small]#x31# 3+^| [.small]#XLEN# -| [.small]#31#| >| [.small]#0# +| [.small]#XLEN-1#| >| [.small]#0# 3+^| [.small]#pc# 3+^| [.small]#XLEN# |=== @@ -113,7 +113,7 @@ would arguably be sufficient for an integer ISA running compiled code, it is impossible to encode a complete ISA with 16 registers in 16-bit instructions using a 3-address format. Although a 2-address format would be possible, it would increase instruction count and lower efficiency. -We wanted to avoid intermediate instruction sizes (such as Xtensa’s +We wanted to avoid intermediate instruction sizes (such as Xtensa's 24-bit instructions) to simplify base hardware implementations, and once a 32-bit instruction size was adopted, it was straightforward to support 32 integer registers. A larger number of integer registers also helps -- cgit v1.1