From 59db9335448b568ccff9964aec0626a23387597f Mon Sep 17 00:00:00 2001 From: Warrick Lo Date: Wed, 27 May 2026 20:40:30 -0700 Subject: Update README and WaveDrom diagrams [skip ci] Signed-off-by: Warrick Lo --- README.adoc | 248 ++++++++++++++++++++++++++++++++++++++++++++ README.md | 93 ----------------- docs/images/add.svg | 1 + docs/images/addi.svg | 1 + docs/images/and.svg | 1 + docs/images/andi.svg | 1 + docs/images/auipc.svg | 1 + docs/images/b-immediate.svg | 1 + docs/images/beq.svg | 1 + docs/images/bge.svg | 1 + docs/images/bgeu.svg | 1 + docs/images/blt.svg | 1 + docs/images/bltu.svg | 1 + docs/images/bne.svg | 1 + docs/images/czero.eqz.svg | 1 + docs/images/czero.nez.svg | 1 + docs/images/ebreak.svg | 1 + docs/images/ecall.svg | 1 + docs/images/fence.svg | 1 + docs/images/i-immediate.svg | 1 + docs/images/j-immediate.svg | 1 + docs/images/jal.svg | 1 + docs/images/jalr.svg | 1 + docs/images/lb.svg | 1 + docs/images/lbu.svg | 1 + docs/images/lh.svg | 1 + docs/images/lhu.svg | 1 + docs/images/lui.svg | 1 + docs/images/lw.svg | 1 + docs/images/or.svg | 1 + docs/images/ori.svg | 1 + docs/images/s-immediate.svg | 1 + docs/images/sb.svg | 1 + docs/images/sh.svg | 1 + docs/images/sll.svg | 1 + docs/images/slli.svg | 1 + docs/images/slt.svg | 1 + docs/images/slti.svg | 1 + docs/images/sltiu.svg | 1 + docs/images/sltu.svg | 1 + docs/images/sra.svg | 1 + docs/images/srai.svg | 1 + docs/images/srl.svg | 1 + docs/images/srli.svg | 1 + docs/images/sub.svg | 1 + docs/images/sw.svg | 1 + docs/images/u-immediate.svg | 1 + docs/images/xor.svg | 1 + docs/images/xori.svg | 1 + 49 files changed, 295 insertions(+), 93 deletions(-) create mode 100644 README.adoc delete mode 100644 README.md create mode 100644 docs/images/add.svg create mode 100644 docs/images/addi.svg create mode 100644 docs/images/and.svg create mode 100644 docs/images/andi.svg create mode 100644 docs/images/auipc.svg create mode 100644 docs/images/b-immediate.svg create mode 100644 docs/images/beq.svg create mode 100644 docs/images/bge.svg create mode 100644 docs/images/bgeu.svg create mode 100644 docs/images/blt.svg create mode 100644 docs/images/bltu.svg create mode 100644 docs/images/bne.svg create mode 100644 docs/images/czero.eqz.svg create mode 100644 docs/images/czero.nez.svg create mode 100644 docs/images/ebreak.svg create mode 100644 docs/images/ecall.svg create mode 100644 docs/images/fence.svg create mode 100644 docs/images/i-immediate.svg create mode 100644 docs/images/j-immediate.svg create mode 100644 docs/images/jal.svg create mode 100644 docs/images/jalr.svg create mode 100644 docs/images/lb.svg create mode 100644 docs/images/lbu.svg create mode 100644 docs/images/lh.svg create mode 100644 docs/images/lhu.svg create mode 100644 docs/images/lui.svg create mode 100644 docs/images/lw.svg create mode 100644 docs/images/or.svg create mode 100644 docs/images/ori.svg create mode 100644 docs/images/s-immediate.svg create mode 100644 docs/images/sb.svg create mode 100644 docs/images/sh.svg create mode 100644 docs/images/sll.svg create mode 100644 docs/images/slli.svg create mode 100644 docs/images/slt.svg create mode 100644 docs/images/slti.svg create mode 100644 docs/images/sltiu.svg create mode 100644 docs/images/sltu.svg create mode 100644 docs/images/sra.svg create mode 100644 docs/images/srai.svg create mode 100644 docs/images/srl.svg create mode 100644 docs/images/srli.svg create mode 100644 docs/images/sub.svg create mode 100644 docs/images/sw.svg create mode 100644 docs/images/u-immediate.svg create mode 100644 docs/images/xor.svg create mode 100644 docs/images/xori.svg diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..694dcad --- /dev/null +++ b/README.adoc @@ -0,0 +1,248 @@ +Montreal +======== +:revnumber: 0.1.0-draft + +A RISC-V RV32E processor designed for TinyTapeout. + +RV32E +----- + +https://docs.riscv.org/reference/isa/unpriv/unpriv-index.html[ISA Reference] + +Reduces number of integer registers to 16 general-purpose registers +(x0-x15). Upper 16 registers consume around one quarter of the total +area of the core excluding memories, thus their removal saves around 25% +core area with a corresponding core power reduction. + +Each register is 32 bits wide. + +[cols="1,2,4", options="header"] +|=== + +| Register +| Description +| Purpose + +| x0 +| dedicated zero +| Source operand for value 0. + +| x1 +| return address +| Written by JAL/JALR. Holds address to be returned to once a function returns. +Must be saved to stack before calling another function. + +| x2 +| stack pointer +| Always points to top of the stack in RAM. Decremented to allocate space, +incremented to free it. CALLEE must restore it BEFORE returning. + +| x3 +| global pointer +| + +| x4 +| thread pointer +| + +| x5 +| alternate link reg +| Second link register for nested JAL sequences. Caller must save +if needed across a call. + +| x6 +| general scratch reg +| + +| x7 +| general scratch reg +| + +| x8 +| frame pointer +| + +| x9 +| saved register +| + +| x10 +| first function argument +| Also used to return integer results from function. + +| x11 +| second function argument +| + +| x12 +| third function argument +| + +| x13 +| fourth function argument +| + +| x14 +| fifth function argument +| + +| x15 +| sixth function argument +| + +| pc +| program counter +| Address of current instruction + +|=== + +Instruction Set +--------------- + +.Relevant opcodes for the IP. `inst[1:0] = 11`. +[cols="2*^1m,8*^2m", hrows=2] +|=== + +| +| +8+^| inst[4:2] + +| +| +| 000 +| 001 +| 010 +| 011 +| 100 +| 101 +| 110 +| 111 + +1.4+.^| inst[6:5] +| 00 +| LOAD +| +| +| MISC-MEM +| OP-IMM +| AUIPC +| +| + +| 01 +| STORE +| +| +| +| OP +| LUI +| +| + +| 10 +| +| +| +| +| +| +| +| + +| 11 +| BRANCH +| JALR +| +| JAL +| SYSTEM +| +| +| +|=== + +=== Immediate Types + +The labels `[7]`, `[20]`, and `[31]` represent the bits `inst[7]`, `inst[20]`, and `inst[31]`, respectively. + +image::docs/images/i-immediate.svg[width=100%] +image::docs/images/s-immediate.svg[width=100%] +image::docs/images/b-immediate.svg[width=100%] +image::docs/images/u-immediate.svg[width=100%] +image::docs/images/j-immediate.svg[width=100%] + +=== LUI + +image::docs/images/lui.svg[width=100%] + +=== AUIPC + +image::docs/images/auipc.svg[width=100%] + +=== OP-IMM + +image::docs/images/addi.svg[width=100%] +image::docs/images/slti.svg[width=100%] +image::docs/images/sltiu.svg[width=100%] +image::docs/images/xori.svg[width=100%] +image::docs/images/ori.svg[width=100%] +image::docs/images/andi.svg[width=100%] +image::docs/images/slli.svg[width=100%] +image::docs/images/srli.svg[width=100%] +image::docs/images/srai.svg[width=100%] + +=== OP + +image::docs/images/add.svg[width=100%] +image::docs/images/sub.svg[width=100%] +image::docs/images/slt.svg[width=100%] +image::docs/images/sltu.svg[width=100%] +image::docs/images/xor.svg[width=100%] +image::docs/images/or.svg[width=100%] +image::docs/images/and.svg[width=100%] +image::docs/images/sll.svg[width=100%] +image::docs/images/srl.svg[width=100%] +image::docs/images/sra.svg[width=100%] +image::docs/images/czero.eqz.svg[width=100%] +image::docs/images/czero.nez.svg[width=100%] + +=== JAL + +image::docs/images/jal.svg[width=100%] + +=== JALR + +image::docs/images/jalr.svg[width=100%] + +=== BRANCH + +The labels `[11]` and `[12]` represent the bits `imm[11]` and `imm[12]` respectively. + +image::docs/images/beq.svg[width=100%] +image::docs/images/bne.svg[width=100%] +image::docs/images/blt.svg[width=100%] +image::docs/images/bge.svg[width=100%] +image::docs/images/bltu.svg[width=100%] +image::docs/images/bgeu.svg[width=100%] + +=== LOAD + +image::docs/images/lb.svg[width=100%] +image::docs/images/lh.svg[width=100%] +image::docs/images/lw.svg[width=100%] +image::docs/images/lbu.svg[width=100%] +image::docs/images/lhu.svg[width=100%] + +=== STORE + +image::docs/images/sb.svg[width=100%] +image::docs/images/sh.svg[width=100%] +image::docs/images/sw.svg[width=100%] + +=== MISC-MEM + +image::docs/images/fence.svg[width=100%] + +=== SYSTEM + +image::docs/images/ecall.svg[width=100%] +image::docs/images/ebreak.svg[width=100%] diff --git a/README.md b/README.md deleted file mode 100644 index 6b1628c..0000000 --- a/README.md +++ /dev/null @@ -1,93 +0,0 @@ -Montreal -======== - -A RISC-V RV32E processor designed for TinyTapeout. - -[RV32E](https://docs.riscv.org/reference/isa/unpriv/unpriv-index.html) ----------------------------------------------------------------------- - -Reduces number of integer registers to 16 general-purpose registers (x0-x15). Upper 16 registers consume around one quarter of the total area of the core excluding memories, thus their removal saves around 25% core area with a corresponding core power reduction. - -Each register is 32 bits wide. - -| Register | Description | Purpose | -| -------- | ----------- | ------- | -| x0 | dedicated zero | Source operand for value 0. | -| x1 | return address | Written by JAL/JALR. Holds address to be returned to once a function returns. Must be saved to stack before calling another function. | -| x2 | stack pointer | Always points to top of the stack in RAM. Decremented to allocate space, incremented to free it. CALLEE must restore it BEFORE returning. | -| x3 | global pointer | | -| x4 | thread pointer | | -| x5 | alternate link reg | Second link register for nested JAL sequences. Caller must save if needed across a call. | -| x6 | general scratch reg | | -| x7 | general scratch reg | | -| x8 | frame pointer | | -| x9 | saved register | | -| x10 | first function argument | Also used to return integer results from function. | -| x11 | second function argument | | -| x12 | third function argument | | -| x13 | fourth function argument | | -| x14 | fifth function argument | | -| x15 | sixth function argument | | -| pc | program counter | Address of current instruction | - -INSTRUCTION SET ---------------- - -### Formats - -![U-type instructions (LUI)](https://svg.wavedrom.com/github/ubc-asic/montreal-docs/master/images/u-type-lui.json5) - -![U-type instructions (AUIPC)](https://svg.wavedrom.com/github/ubc-asic/montreal-docs/master/images/u-type-auipc.json5) - -![J-type instructions](https://svg.wavedrom.com/github/ubc-asic/montreal-docs/master/images/j-type.json5) - -![I-type instructions (JALR)](https://svg.wavedrom.com/github/ubc-asic/montreal-docs/master/images/i-type-jalr.json5) - -![B-type instructions](https://svg.wavedrom.com/github/ubc-asic/montreal-docs/master/images/b-type.json5) - -![I-type instructions (load)](https://svg.wavedrom.com/github/ubc-asic/montreal-docs/master/images/i-type-load.json5) - -![S-type instructions](https://svg.wavedrom.com/github/ubc-asic/montreal-docs/master/images/s-type.json5) - -![I-type instructions (arithmetic and logic)](https://svg.wavedrom.com/github/ubc-asic/montreal-docs/master/images/i-type-alu.json5) - -![I-type instructions (shift)](https://svg.wavedrom.com/github/ubc-asic/montreal-docs/master/images/i-type-shift.json5) - -![R-type instructions](https://svg.wavedrom.com/github/ubc-asic/montreal-docs/master/images/r-type.json5) - -![I-type instructions (system)](https://svg.wavedrom.com/github/ubc-asic/montreal-docs/master/images/i-type-system.json5) - -### R-Type (Register-to-register) - -| Instruction | Description | Encoding (`funct7` \| `funct3` \| `opcode`) | -| ----------- | ----------- | ------------------------------------------ | -| ADD | Add two registers and store the result in rd. | `0000000` \| `000` \| `0110011` | -| SUB | Subtract rs2 from rs1 and store the result in rd. | `0100000` \| `000` \| `0110011` | -| SLL | Shift rs1 left by the amount in rs2 (logical), store result in rd. | `0000000` \| `001` \| `0110011` | -| SLT | Set rd to 1 if rs1 < rs2 (signed), otherwise 0. | `0000000` \| `010` \| `0110011` | -| SLTU | Set rd to 1 if rs1 < rs2 (unsigned), otherwise 0. | `0000000` \| `011` \| `0110011` | -| XOR | Bitwise XOR of rs1 and rs2, result in rd. | `0000000` \| `100` \| `0110011` | -| SRL | Shift rs1 right by the amount in rs2 (logical), store result in rd. | `0000000` \| `101` \| `0110011` | -| SRA | Shift rs1 right by the amount in rs2 (arithmetic), sign-extend result into rd. | `0100000` \| `101` \| `0110011` | -| OR | Bitwise OR of rs1 and rs2, result in rd. | `0000000` \| `110` \| `0110011` | -| AND | Bitwise AND of rs1 and rs2, result in rd. | `0000000` \| `111` \| `0110011` | - -### I-Type (Immediate) - -#### OP-IMM — Integer immediate ops (opcode `0010011`) - -| Instruction | Description | Encoding (`imm[11:0]` \| `funct3` \| `opcode`) | -| ----------- | ----------- | ----------------------------------------------- | -| ADDI | Add sign-extended 12-bit immediate to rs1, store in rd. | imm \| `000` \| `0010011` | -| SLTI | Set rd to 1 if rs1 < sign-extended imm (signed), else 0. | imm \| `010` \| `0010011` | -| SLTIU | Set rd to 1 if rs1 < sign-extended imm (unsigned), else 0. | imm \| `011` \| `0010011` | -| XORI | Bitwise XOR of rs1 and sign-extended imm, result in rd. | imm \| `100` \| `0010011` | -| ORI | Bitwise OR of rs1 and sign-extended imm, result in rd. | imm \| `110` \| `0010011` | -| ANDI | Bitwise AND of rs1 and sign-extended imm, result in rd. | imm \| `111` \| `0010011` | - -##### Shifting Instructions that carry an encoding disciminator in `imm[11:5]` -| Instruction | Description | Encoding (`imm[11:5]`\| `funct3` \| `opcode`) | -| ----------- | ----------- | ----------------------------------------------- | -| SLLI | Shift rs1 left by shamt (`imm[4:0]`), logical, store in rd. | `0000000` \| `001` \| `0010011` | -| SRLI | Shift rs1 right by shamt (`imm[4:0]`), logical, store in rd. | `0000000` \| `101` \| `0010011` | -| SRAI | Shift rs1 right by shamt (`imm[4:0]`), arithmetic, store in rd. | `0100000` \| `101` \| `0010011` | diff --git a/docs/images/add.svg b/docs/images/add.svg new file mode 100644 index 0000000..7c97e86 --- /dev/null +++ b/docs/images/add.svg @@ -0,0 +1 @@ +0671112141519202425311100110rd000rs1rs20000000OPfunct3funct7ADD \ No newline at end of file diff --git a/docs/images/addi.svg b/docs/images/addi.svg new file mode 100644 index 0000000..8986fe4 --- /dev/null +++ b/docs/images/addi.svg @@ -0,0 +1 @@ +067111214151920311100100rd000rs1imm[11:0]OP-IMMfunct3ADDI \ No newline at end of file diff --git a/docs/images/and.svg b/docs/images/and.svg new file mode 100644 index 0000000..688d473 --- /dev/null +++ b/docs/images/and.svg @@ -0,0 +1 @@ +0671112141519202425311100110rd111rs1rs20000000OPfunct3funct7AND \ No newline at end of file diff --git a/docs/images/andi.svg b/docs/images/andi.svg new file mode 100644 index 0000000..1ecfef3 --- /dev/null +++ b/docs/images/andi.svg @@ -0,0 +1 @@ +067111214151920311100100rd111rs1imm[11:0]OP-IMMfunct3ANDI \ No newline at end of file diff --git a/docs/images/auipc.svg b/docs/images/auipc.svg new file mode 100644 index 0000000..7c76a7c --- /dev/null +++ b/docs/images/auipc.svg @@ -0,0 +1 @@ +0671112311110100rdimm[31:12]AUIPCAUIPC \ No newline at end of file diff --git a/docs/images/b-immediate.svg b/docs/images/b-immediate.svg new file mode 100644 index 0000000..b7e2231 --- /dev/null +++ b/docs/images/b-immediate.svg @@ -0,0 +1 @@ +0145101112310inst[11:8]inst[30:25][7]inst[31]146120B-immediate \ No newline at end of file diff --git a/docs/images/beq.svg b/docs/images/beq.svg new file mode 100644 index 0000000..9b3e3f6 --- /dev/null +++ b/docs/images/beq.svg @@ -0,0 +1 @@ +0678111214151920242530311100011[11]imm[4:1]000rs1rs2imm[10:5][12]BRANCHfunct3BEQ \ No newline at end of file diff --git a/docs/images/bge.svg b/docs/images/bge.svg new file mode 100644 index 0000000..3348022 --- /dev/null +++ b/docs/images/bge.svg @@ -0,0 +1 @@ +0678111214151920242530311100011[11]imm[4:1]101rs1rs2imm[10:5][12]BRANCHfunct3BGE \ No newline at end of file diff --git a/docs/images/bgeu.svg b/docs/images/bgeu.svg new file mode 100644 index 0000000..b00bd8c --- /dev/null +++ b/docs/images/bgeu.svg @@ -0,0 +1 @@ +0678111214151920242530311100011[11]imm[4:1]111rs1rs2imm[10:5][12]BRANCHfunct3BGEU \ No newline at end of file diff --git a/docs/images/blt.svg b/docs/images/blt.svg new file mode 100644 index 0000000..41a281f --- /dev/null +++ b/docs/images/blt.svg @@ -0,0 +1 @@ +0678111214151920242530311100011[11]imm[4:1]001rs1rs2imm[10:5][12]BRANCHfunct3BLT \ No newline at end of file diff --git a/docs/images/bltu.svg b/docs/images/bltu.svg new file mode 100644 index 0000000..4aecba1 --- /dev/null +++ b/docs/images/bltu.svg @@ -0,0 +1 @@ +0678111214151920242530311100011[11]imm[4:1]011rs1rs2imm[10:5][12]BRANCHfunct3BLTU \ No newline at end of file diff --git a/docs/images/bne.svg b/docs/images/bne.svg new file mode 100644 index 0000000..1015d71 --- /dev/null +++ b/docs/images/bne.svg @@ -0,0 +1 @@ +0678111214151920242530311100011[11]imm[4:1]100rs1rs2imm[10:5][12]BRANCHfunct3BNE \ No newline at end of file diff --git a/docs/images/czero.eqz.svg b/docs/images/czero.eqz.svg new file mode 100644 index 0000000..134737f --- /dev/null +++ b/docs/images/czero.eqz.svg @@ -0,0 +1 @@ +0671112141519202425311100110rd101rs1rs21110000OPfunct3funct7CZERO.EQZ \ No newline at end of file diff --git a/docs/images/czero.nez.svg b/docs/images/czero.nez.svg new file mode 100644 index 0000000..34b36e6 --- /dev/null +++ b/docs/images/czero.nez.svg @@ -0,0 +1 @@ +0671112141519202425311100110rd111rs1rs21110000OPfunct3funct7CZERO.NEZ \ No newline at end of file diff --git a/docs/images/ebreak.svg b/docs/images/ebreak.svg new file mode 100644 index 0000000..56ba357 --- /dev/null +++ b/docs/images/ebreak.svg @@ -0,0 +1 @@ +0671112141519203111001110000000000000100000000000SYSTEMrdfunct3rs1imm[11:0]EBREAK \ No newline at end of file diff --git a/docs/images/ecall.svg b/docs/images/ecall.svg new file mode 100644 index 0000000..2de24d6 --- /dev/null +++ b/docs/images/ecall.svg @@ -0,0 +1 @@ +0671112141519203111001110000000000000000000000000SYSTEMrdfunct3rs1imm[11:0]ECALL \ No newline at end of file diff --git a/docs/images/fence.svg b/docs/images/fence.svg new file mode 100644 index 0000000..1bd099b --- /dev/null +++ b/docs/images/fence.svg @@ -0,0 +1 @@ +06711121415192023242728311111000rd000rs1predsuccfmMISC-MEMfunct3FENCE \ No newline at end of file diff --git a/docs/images/i-immediate.svg b/docs/images/i-immediate.svg new file mode 100644 index 0000000..c0911d6 --- /dev/null +++ b/docs/images/i-immediate.svg @@ -0,0 +1 @@ +0101131inst[30:20]inst[31]1121I-immediate \ No newline at end of file diff --git a/docs/images/j-immediate.svg b/docs/images/j-immediate.svg new file mode 100644 index 0000000..7383ace --- /dev/null +++ b/docs/images/j-immediate.svg @@ -0,0 +1 @@ +011011121920310inst[30:21][20]inst[19:12]inst[31]1101812J-immediate \ No newline at end of file diff --git a/docs/images/jal.svg b/docs/images/jal.svg new file mode 100644 index 0000000..0d7b058 --- /dev/null +++ b/docs/images/jal.svg @@ -0,0 +1 @@ +067111219202130311111011rdimm[19:12][11]imm[10:1][20]JALJAL \ No newline at end of file diff --git a/docs/images/jalr.svg b/docs/images/jalr.svg new file mode 100644 index 0000000..ac7cc92 --- /dev/null +++ b/docs/images/jalr.svg @@ -0,0 +1 @@ +067111214151920311110011rd000rs1imm[11:0]JALRfunct3JALR \ No newline at end of file diff --git a/docs/images/lb.svg b/docs/images/lb.svg new file mode 100644 index 0000000..24471b2 --- /dev/null +++ b/docs/images/lb.svg @@ -0,0 +1 @@ +067111214151920311100000rd000rs1imm[11:0]LOADfunct3LB \ No newline at end of file diff --git a/docs/images/lbu.svg b/docs/images/lbu.svg new file mode 100644 index 0000000..ab45a88 --- /dev/null +++ b/docs/images/lbu.svg @@ -0,0 +1 @@ +067111214151920311100000rd001rs1imm[11:0]LOADfunct3LBU \ No newline at end of file diff --git a/docs/images/lh.svg b/docs/images/lh.svg new file mode 100644 index 0000000..ed52c97 --- /dev/null +++ b/docs/images/lh.svg @@ -0,0 +1 @@ +067111214151920311100000rd100rs1imm[11:0]LOADfunct3LH \ No newline at end of file diff --git a/docs/images/lhu.svg b/docs/images/lhu.svg new file mode 100644 index 0000000..fb8f19b --- /dev/null +++ b/docs/images/lhu.svg @@ -0,0 +1 @@ +067111214151920311100000rd101rs1imm[11:0]LOADfunct3LHU \ No newline at end of file diff --git a/docs/images/lui.svg b/docs/images/lui.svg new file mode 100644 index 0000000..8f65be1 --- /dev/null +++ b/docs/images/lui.svg @@ -0,0 +1 @@ +0671112311110110rdimm[31:12]LUILUI \ No newline at end of file diff --git a/docs/images/lw.svg b/docs/images/lw.svg new file mode 100644 index 0000000..44aa174 --- /dev/null +++ b/docs/images/lw.svg @@ -0,0 +1 @@ +067111214151920311100000rd010rs1imm[11:0]LOADfunct3LW \ No newline at end of file diff --git a/docs/images/or.svg b/docs/images/or.svg new file mode 100644 index 0000000..13a3b2d --- /dev/null +++ b/docs/images/or.svg @@ -0,0 +1 @@ +0671112141519202425311100110rd011rs1rs20000000OPfunct3funct7OR \ No newline at end of file diff --git a/docs/images/ori.svg b/docs/images/ori.svg new file mode 100644 index 0000000..7ec0ce6 --- /dev/null +++ b/docs/images/ori.svg @@ -0,0 +1 @@ +067111214151920311100100rd011rs1imm[11:0]OP-IMMfunct3ORI \ No newline at end of file diff --git a/docs/images/s-immediate.svg b/docs/images/s-immediate.svg new file mode 100644 index 0000000..5026c2b --- /dev/null +++ b/docs/images/s-immediate.svg @@ -0,0 +1 @@ +0145101131[7]inst[11:8]inst[30:25]inst[31]14621S-immediate \ No newline at end of file diff --git a/docs/images/sb.svg b/docs/images/sb.svg new file mode 100644 index 0000000..84bea85 --- /dev/null +++ b/docs/images/sb.svg @@ -0,0 +1 @@ +0671112141519202425311100010imm[4:0]000rs1rs2imm[11:5]STOREfunct3SB \ No newline at end of file diff --git a/docs/images/sh.svg b/docs/images/sh.svg new file mode 100644 index 0000000..7c74e5a --- /dev/null +++ b/docs/images/sh.svg @@ -0,0 +1 @@ +0671112141519202425311100010imm[4:0]100rs1rs2imm[11:5]STOREfunct3SH \ No newline at end of file diff --git a/docs/images/sll.svg b/docs/images/sll.svg new file mode 100644 index 0000000..f9309f1 --- /dev/null +++ b/docs/images/sll.svg @@ -0,0 +1 @@ +0671112141519202425311100110rd100rs1rs20000000OPfunct3funct7SLL \ No newline at end of file diff --git a/docs/images/slli.svg b/docs/images/slli.svg new file mode 100644 index 0000000..b27cbf5 --- /dev/null +++ b/docs/images/slli.svg @@ -0,0 +1 @@ +0671112141519202425311100100rd100rs1shamt0000000OP-IMMfunct3imm[11:5]SLLI \ No newline at end of file diff --git a/docs/images/slt.svg b/docs/images/slt.svg new file mode 100644 index 0000000..377cdff --- /dev/null +++ b/docs/images/slt.svg @@ -0,0 +1 @@ +0671112141519202425311100110rd010rs1rs20000000OPfunct3funct7SLT \ No newline at end of file diff --git a/docs/images/slti.svg b/docs/images/slti.svg new file mode 100644 index 0000000..38c463a --- /dev/null +++ b/docs/images/slti.svg @@ -0,0 +1 @@ +067111214151920311100100rd010rs1imm[11:0]OP-IMMfunct3SLTI \ No newline at end of file diff --git a/docs/images/sltiu.svg b/docs/images/sltiu.svg new file mode 100644 index 0000000..901a0a1 --- /dev/null +++ b/docs/images/sltiu.svg @@ -0,0 +1 @@ +067111214151920311100100rd110rs1imm[11:0]OP-IMMfunct3SLTIU \ No newline at end of file diff --git a/docs/images/sltu.svg b/docs/images/sltu.svg new file mode 100644 index 0000000..1d89ab3 --- /dev/null +++ b/docs/images/sltu.svg @@ -0,0 +1 @@ +0671112141519202425311100110rd110rs1rs20000000OPfunct3funct7SLTU \ No newline at end of file diff --git a/docs/images/sra.svg b/docs/images/sra.svg new file mode 100644 index 0000000..b75b5e8 --- /dev/null +++ b/docs/images/sra.svg @@ -0,0 +1 @@ +0671112141519202425311100110rd101rs1rs20000010OPfunct3funct7SRA \ No newline at end of file diff --git a/docs/images/srai.svg b/docs/images/srai.svg new file mode 100644 index 0000000..5d636e1 --- /dev/null +++ b/docs/images/srai.svg @@ -0,0 +1 @@ +0671112141519202425311100100rd101rs1shamt0000010OP-IMMfunct3imm[11:5]SRAI \ No newline at end of file diff --git a/docs/images/srl.svg b/docs/images/srl.svg new file mode 100644 index 0000000..ae348c5 --- /dev/null +++ b/docs/images/srl.svg @@ -0,0 +1 @@ +0671112141519202425311100110rd101rs1rs20000000OPfunct3funct7SRL \ No newline at end of file diff --git a/docs/images/srli.svg b/docs/images/srli.svg new file mode 100644 index 0000000..1028426 --- /dev/null +++ b/docs/images/srli.svg @@ -0,0 +1 @@ +0671112141519202425311100100rd101rs1shamt0000000OP-IMMfunct3imm[11:5]SRLI \ No newline at end of file diff --git a/docs/images/sub.svg b/docs/images/sub.svg new file mode 100644 index 0000000..56fe6ca --- /dev/null +++ b/docs/images/sub.svg @@ -0,0 +1 @@ +0671112141519202425311100110rd000rs1rs20000010OPfunct3funct7SUB \ No newline at end of file diff --git a/docs/images/sw.svg b/docs/images/sw.svg new file mode 100644 index 0000000..8d84a28 --- /dev/null +++ b/docs/images/sw.svg @@ -0,0 +1 @@ +0671112141519202425311100010imm[4:0]010rs1rs2imm[11:5]STOREfunct3SW \ No newline at end of file diff --git a/docs/images/u-immediate.svg b/docs/images/u-immediate.svg new file mode 100644 index 0000000..608746b --- /dev/null +++ b/docs/images/u-immediate.svg @@ -0,0 +1 @@ +01112310inst[31:12]1220U-immediate \ No newline at end of file diff --git a/docs/images/xor.svg b/docs/images/xor.svg new file mode 100644 index 0000000..69a26ba --- /dev/null +++ b/docs/images/xor.svg @@ -0,0 +1 @@ +0671112141519202425311100110rd001rs1rs20000000OPfunct3funct7XOR \ No newline at end of file diff --git a/docs/images/xori.svg b/docs/images/xori.svg new file mode 100644 index 0000000..334e6c7 --- /dev/null +++ b/docs/images/xori.svg @@ -0,0 +1 @@ +067111214151920311100100rd001rs1imm[11:0]OP-IMMfunct3XORI \ No newline at end of file -- cgit v1.2.3