R32V2020 Register File

From Land Boards Wiki
Jump to navigation Jump to search

Register File Details

  • 16 registers (r0-r15)
  • All registers are 32-bits
  • Some registers are dedicated and some registers are general purpose
  • Almost all registers reset to zero at reset/power up

General Purpose Registers

  • There are eight registers

r8-r15 are General Purpose registers

Specialized Registers

  • r0 - Always reads 0x0000
  • r1 - Always reads 0x0001
  • r2 - Always reads 0xffff
  • r3 - Condition Code Register
  • r4 - Stack Space Address Pointer
  • r5 - Peripheral Space Address Pointer
  • r6 - Data Space Address Pointer
  • r7 - Instruction Space Address Pointer

r0 - Zero Value Register

  • Read-only
  • 0x0000 = value
  • Set to 0x0000 at power up and reset

r1 - One Value Register

  • Read-only
  • 0x0001 = value
  • Set to 0x0001 at power up and reset
  • Useful for comparisons and two's complement math

r2 - All F's Register

  • Read-only
  • 0xFFFF = value
  • Set to 0xFFFF at power up and reset
  • Useful for two's complement math

r3 - Condition Code Register

  • Bit field that represents the result of an ALU operation
    • d0 (LSB) = Result of operation was Equal to Zero
      • Used by BEZ opcode
    • d1 = Result of operation was Equal to One
      • Used by BE1 opcode
    • d2 - Carry Set (ex: adds can overflow into the carry bit) (
      • Used by BCS and BCC opcodes
    • d3 = Reached End of Stack Memory
      • Program exception
    • d4 = Reached End of Instruction Memory
      • Program exception
    • d5 = Reached End of Program Memory
      • Program exception
    • d6-d31 = Future Expansion

r4 - Stack Space Address Pointer

r5 - Peripheral Space Address Pointer

  • Read/Write from CPU
  • Reset to 0x0000 at power up and reset

r6 - Data Space Address Pointer

  • Read/Write from CPU
  • Reset to 0x0000 at power up and reset
  • Directly accesses BlockRAM attached to Data Address space address bits

r7 - Instruction Space Address Pointer

  • Read/Write from CPU
  • Reset to 0x0000 at power up and reset
  • Auto-increment after Instruction is read
  • Directly accesses BlockRAM attached to Instruction Address space address bits

Resources - Registers/Counters

  • Total logic elements 594 / ~6000 ( ~10 % )
  • Total registers 416
  • Total memory bits 0 / 2,810,880 ( 0 % )
  • Embedded Multiplier 9-bit elements 0 / 400 ( 0 % )
  • Total PLLs 0 / 4 ( 0 % )

Resources - MUX_16x32

  • Total logic elements 321 / 6,272 ( 5 % )
  • Total registers 416
  • Total memory bits 0 / 2,810,880 ( 0 % )
  • Embedded Multiplier 9-bit elements 0 / 400 ( 0 % )
  • Total PLLs 0 / 4 ( 0 % )