Computer Architecture Lab/Winter2006/JeitMossFrühRamb/Files

Overview
our Design consists of two parts:
 * MatPRO
 * SimpCom for MatPro

The whole Design can be downloaded here

MatPRO
For better readability and for better understanding, we have split up the MatPRO in more sub parts:
 * Globals: Package with constants
 * IFetch: handels the IRAM and translates the program into smaller instructions
 * IDecode: handels the DRAM and the Register-File
 * ALU: as the name states, does the work

MatPRO.vhd

Globals
The Globals.vhd is a package that contains our constants.

IFetch
The IFetch_v2.vhd controls the program flow. It takes the instruction of a program and, if needed, translates it into more smaller instructions that our ALU understands.

IDecode
The IDecode.vhd takes the "generated" instruction from the IFetch and decides, if a value-transfer from DRAM to the Register-File or the other way around takes place. If such a value-transfer happens, it can also stall the whole CoProzessor, since we only use a dualported Register-File-RAM and no triported Register-File-RAM.

ALU
The alu.vhd simply does the maths. It takes 5 cycles until the result is valid: 3 cycles for the multiplication, 1 cycle for the addition/subtraction and 1 cycle for data normalisation.

SimpCom for MatPRO
Since we wanted to build a multi-purpose CoProzessor, we didn't implement the SimpCom direct into the MatPRO. Therefore, the SimpCom is a stand-alone Module that instantiates the MatPRO.

sc_matpro.vhd is the sourcefile for this Module.

Since the CoProcessor is connected to the JOP-Processor, another configurationfile, the scio_min_mp.vhd is needed.

Demoprogram
A demo-assembler-program can be found here

The java-file for the JOP-Processor is this one