XL16

Advanced 16-bit Microprocessor

 

Registers

 

 

There are various types of registers within the XL16 , the General Purpose Registers (GPR), the Memory Address Register(MAR), the Memory Data Register(MDR), the Immediate Register, the Instruction Register, the Program Counter (PC) and the Processor Status Register(PSR).  You can find information on the PC on the PC page and the PSR on the ALU page.  Below is a schematic of the GPR.

The GPR is composed of two RAM 16X8’s as provided on the Xilinx Xcess boards.  These are single port write and double port read registers holding 16-8bit values.  Using two allows us to create a register file that holds 16-16 bit words.  Using double read ports allows us to read both register values simultaneously on register to register operations.  Due to the manner that the CR16 instruction set is written the addresses to the registers hard wired to the Instruction Register, as the source and destination bits are the same across all instructions.

 

The Instruction Register holds the instruction word.  The Immediate Register holds medium (16 bit) immediate values. The Memory Address Register holds the address of the memory being accessed.  These are simply 16-bit Flip Flops placed in the Datapath.  Their Clock Enable lines are controlled by the VHDL Finite State Machine which decides when these registers will be updated.  The Memory Data Register is part of the Read Output Decode in the Memory section.

 

Return to Datapath

 

 

Created with Microsoft Word