Difference between revisions of "IOP16 Register File"

From Land Boards Wiki
Jump to navigation Jump to search
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Register File ==
+
= Register File =
  
 
<video type="youtube">qPvwggaQ4w0</video>
 
<video type="youtube">qPvwggaQ4w0</video>
Line 10: Line 10:
 
* 4, 8, or 13 General Purpose (GP) Registers
 
* 4, 8, or 13 General Purpose (GP) Registers
 
** Registers numbered 0x0-0x7, 0x0A-0xE
 
** Registers numbered 0x0-0x7, 0x0A-0xE
** Register count configured by NUM_REGS value in cpu_001.vhd
+
 
 +
== Configuring Number of Registers ==
 +
 
 +
* The number of GP registers can be configured
 +
** 4 = 4 GP registers plus 0x08, 0x09 0x0F constants
 +
** 8 = 8 GP registers plus 0x08, 0x09 0x0F constants
 +
** 16 = 13 GP registers including 0x08, 0x09 0x0F constants
 +
* Register count configured by NUM_REGS value in cpu_001.vhd
 +
 
 
<pre>
 
<pre>
 
RegFile : ENTITY work.RegisterFile
 
RegFile : ENTITY work.RegisterFile
 
GENERIC map (
 
GENERIC map (
NUM_REGS => 4
+
NUM_REGS => 4 -- 4, 8. or 16
 
)
 
)
 
</pre>
 
</pre>
 +
 +
= Resources =
 +
 +
* 4 registers
 +
** 19 ALMs
 +
** 32 registers
 +
* 8 registers
 +
** 34 ALMs
 +
** 64 registers
 +
* 16 registers (13 are GP)
 +
** 42 ALMs
 +
** 104 registers

Latest revision as of 14:11, 19 April 2022

Register File

  • Instruction encodes 4-bits for the register number
  • Special Purpose Registers hard-coded values
    • Register 0x8 has constant value 0x00
    • Register 0x9 has constant value 0x01
    • Register 0xF has constant value 0xFF
  • 4, 8, or 13 General Purpose (GP) Registers
    • Registers numbered 0x0-0x7, 0x0A-0xE

Configuring Number of Registers

  • The number of GP registers can be configured
    • 4 = 4 GP registers plus 0x08, 0x09 0x0F constants
    • 8 = 8 GP registers plus 0x08, 0x09 0x0F constants
    • 16 = 13 GP registers including 0x08, 0x09 0x0F constants
  • Register count configured by NUM_REGS value in cpu_001.vhd
RegFile : ENTITY work.RegisterFile
GENERIC map (
	NUM_REGS => 4	-- 4, 8. or 16
)

Resources

  • 4 registers
    • 19 ALMs
    • 32 registers
  • 8 registers
    • 34 ALMs
    • 64 registers
  • 16 registers (13 are GP)
    • 42 ALMs
    • 104 registers