R32V2020 Register File
Jump to navigation
Jump to search
Contents
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
- d0 (LSB) = Result of operation was Equal to Zero
r4 - Stack Space Address Pointer
- Readable from CPU
- Written at push/pulls
- Stack Operational Details
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 % )