Functional Description of a Microprocessor Memory

Written By:
Nandor Toth
Ryan Moffitt

Dr. Vinod Prasad

    For our project we have decided to build a 64-bit memory for a microprocessor.  We chose a 64-bit memory is because we want to utilize VLSI, VHDL, and FPGA in the design.  We believe that a memory of this size will give us a challenge but will also enable us to utilize all three processes that we wish to use.
    The memory of a microprocessor is used to store certain values that are needed to run a program.  Therefore the memory must be able to store values given to it, as well as return values that are required for the running program.  We will implement the memory with D flip-flops.  A D flip flop stores and outputs a bit every clock cycle.  The flip-flops will be combined into a group of eight, so the microprocessor can store an eight-bit value.  An address decoder will activate a certain group of eight flip-flops, and then they will either store or output a required value for use in the microprocessor program.
    We will need an input to the memory telling it whether it is reading or writing an element that is needed by the program.  With this in mind the memory we design will need a total of thirteen inputs:  eight inputs for the value that will be stored, one input to tell the memory that it is storing an element an input to tell the memory that it needs to output a value and three inputs to tell where the value should be stored.  We will just need eight outputs for the memory, one for each of the bits.  Our block diagram is on the second page in figure 2-1.
    The final goal of our project is to combine our memory with the designs of two other groups and create a whole microprocessor.  One group will design an ALU, while another group is designing the control registers.  When these three projects are combined we hope that we will have a operational microprocessor.

Figure 2-1

    Figure 2-1 shows the four basic inputs to the memory.  The three lines from the address decoder tell the memory which group of eight to select.  The input from the registers tell the memory what value to store, the write input tells the memory if it is outputting a value, and the read line tells the memory if it should store a value.  The output of the memory is just the eight bits that will be sent to the output when write is activated.