Titlepage | Introduction
| Overview | ROM | Datapath
| Layout | Testing | Conclusion | References.
Design and Implementation of Main Datapath
Overview
The main datapath consists of the sequencer's MUX, program counter,
and stack.
Stack Memory
The stack memory is connected to the datapath, getting some of
its inputs from the PC register and providing inputs to the output
mux. It also takes in inputs from the ROM to indicate a write
operation and a 3-bit address input from the stack pointer.
It was implemented using an 8x12-bit SRAM memory module, a
clock coupled decoder, a write signal generator and a 12 bit negative
edge register. A diagram showing the interconnections are shown Figure
1.
Figure 1. Block Diagram for the Stack
The 8x12-bit SRAM module was designed using the 6-T RAM cell
design and a differential sense amplifier shown in Figures 2 and
3. The 8 word deep stack was achieved by stacking up the 6-T RAM cell
and attaching the sense amplifier, write transistors, write data
drivers and the pull up transistors as shown in Figure 4. The 12 bit
wide word, on the other hand, was achieved by taking 12 one bit slices
of the 8 deep RAM cell and placing them side by side.
Figure 2. 6T RAM Cell
Figure 3. Differential Sense Amp
Figure 4. 1 bit slice of the Stack
The clock coupled decoder shown in Figure 5 assures that the
word line is only valid to the low edge of the clock cycle when the
read and write opreation occurs. This is done to let the bit and
bitinv line precharge to vdd on the high part of the clock, thus
aiding the read operation.
Figure 5. Clock Coupled Decoder
The write signal generator was implemented by NOR'ing S1inv
and S0, and then AND'ing it to a buffered and inverted clock. The clock
needed to be buffered so as to assure that the word line signal from
the clock coupled decoder will turn off first before the write signal
turns off. This is to assure that the data gets written to the 6-T RAM
cell properly.
The 12 bit register at the end is to assure that the write
data will be valid until the write is done. This is because of the
buffering and inverting of the clock which results in the word lines
and the write signal being valid a little after the positive clock
edge.
Program Counter
The program counter consists of an incrementer and a register. The
location of the current instruction is fed into the incrementer, and
the register makes the output of the incrementer available to the MUX
at the next clock cycle. If the next instruction calls for sequential
execution, then the MUX will select the output of the register as the
output of the sequencer.
Incrementer
The incrementer is a cascade of 12 1-bit ripple carry counters.
1-bit counter
Unlike a full adder which essentially adds 3 bits, the incrementer
only needs to add 2 bits. Thus, each counter consists of two inputs
(in, cin) and two outputs (out, cout), and requires only 2 gates:
cout = AND(in, cin)
out = XOR(in, cin)
Register
The register is a collection of 12 1-bit registers.
1-bit register
Each register consists of a negative master latch and a positive slave
latch.
1-bit latch
Each latch consists of a chain of transisters that select between
either a feedback path or the input based on the status of the clock
signal. The inverter in the
circuit makes this latch a static latch.
Clock driver
Both latches in a 1-bit register are driven by a clock driver that
supplies both clock and not clock to the latches.
Multiplexor
The multiplexor (MUX) in the sequencer chooses one of four possible
12-bit addresses for the next instruction. Hence it is a collection
of 12 MUXes that select one of four possible 1 bit values. A pair of
inverters buffer the select signal
from the control ROM.
Select-from-4 1-bit MUX
Each select-from-4 unit MUX is implmented as a cascade of
select-from-1 unit MUXes. The first of two select bits for the
select-from-four MUX chooses the output of the first stage of
select-from-1 MUXes, while the 2nd select bit chooses one of the
outputs of the first stage.
Select-from-1 1-bit MUX
The select-from-1 unit MUX is implemented with 2 passgates. The
single select bit turns on one of the two passgates.
Layout Schematic
Comments to benleong@mit.edu
or mike_sy@mit.edu or sclee@mit.edu
Last updated 11/21/96.
Titlepage | Introduction
| Overview | ROM | Datapath
| Layout | Testing | Conclusion | References.