Elec 422: VLSI Design I
Homework 2
Fall 2003, September 30, 2003
Independent work is expected.
Due: 4pm Friday, October 10, 2003.
For each of the following
problems:
(a) draw a state transition
diagram. Label each state and also label each edge with the appropriate inputs
and outputs.
(b) create a meg description
of the state machine.
(c) create the PLA. Use the
shell script platool_subm which runs meg, eqntott, espresso,
and mpla for the AMI 0.5 micron process.
(d) Using magic_05,
edit the resulting PLA and connect the input state bits to the output state
bits. Use metal and not poly to do the wiring. Also, connect the two
sections of Vdd with a metal line, and fix any possible substrate contact
problems in the upper left corner.
(e) Extract the circuit and
create a sim file using ext2sim -R -t !,
(f) perform a thorough irsim
simulation. Begin by asserting the RESTART signal and then provide
inputs to show that the PLA sequences through the proper states by watching the
state bits, and
(g) draw a logic/block
diagram of the PLA and other circuits as described in the problem. Label the
inputs and outputs of the PLA and the other circuit blocks with the appropriate
labels for system timing, eg. V1, V1S2, etc, as discussed in the paper
by Karplus. (This is very basic in the first problem PLA, but requires some
analysis for the second problem.)
Notes:
The shell script platool_subm
has been updated to use the current PLA template for Revision 6 MOSIS rules
and is compatible with the spacings for the 0.5 micron process. The PLA needs
the clka, clkabar, clkb, and clkbbar signals defined in order to
operate. Place inverter cells in the layout to generate the clkabar and clkbbar
signals.
Submit the following
diagrams and printouts with your homework:
(A) State transition
diagram,
(B) Input file to meg,
(C) The meg output
file called meg.summary
(D) A cif2ps or pplot
plot of the PLA and other external circuitry,
(E) The irsim test
vectors and results.
(F) The logic/block diagram
for system timing.
Do
not include the .mag or .sim files.
Again
please send an e-mail to cavallar@rice.edu,
gadhiok@rice.edu, and rpredrag@rice.edu indicating the location
of your magic and irsim files to help with grading. Please do this within 24
hours of handing in your solutions
Problem 1: Automobile Turn Signal Controller
Design a Turn Signal
Controller PLA for a classic automobile, such as the Ford Thunderbird. On the
rear of the car, the Thunderbird had three turn signal lamps on the left and
three on the right.
The lamps flashed in
sequence. The following inputs exist:
RESTART: Resets the PLA to
the idle state where no lamps are illuminated,
BRAKE: All six lamps are on
while this signal is high. If LEFT or RIGHT are also high, then keep one side
of car’s lights steady, but sequence the other side as described under LEFT and
RIGHT below.
RIGHT: After RIGHT goes
high, the following sequence will occur:
step1 step2
step3 step4
000
--> 100 --> 110 --> 111 --> 000 (right-turn tail light sequence)
LEFT:
Similar behavior to RIGHT.
The following outputs exist:
L0, L1, L2: The left turn
signal lamps.
R0, R1, R2: The right turn
signal lamps.
ERROR: Asserted when both
inputs RIGHT and LEFT are high simultaneously. The other lamps (L0, etc.)
remain low.
Test the following sequence
of operations with duration in clock cycles in parentheses:
RESTART(1), idle(1),
LEFT(8), LEFT and
BRAKE (4),
idle(1), RIGHT(8),
RIGHT and BRAKE (4), BRAKE (3), LEFT and RIGHT (2), idle(1), LEFT and RIGHT (1).
Problem 2: Code Verifier
This system is made up of a
PLA, four one bit static latches, two exclusive OR’s, a regular AND, and some
other glue logic as coarsely sketched in the figure. Please use the
latch cell from Home-work 1, and the static, complementary XOR cell as
described in class based on the AND-OR-INVERT compound gate structure. Connect
and route the various cells. In the figure below, I have roughly sketched the
high-level interconnection of the components. You will need to take this block
diagram and insert inverters and other “glue” logic as needed. I have
intentionally left control signals unconnected, so that you can refine and
finalize the design.
The test vectors should only
contain the inputs and system inputs listed below. The PLA should be creating
the latch control signals, and outputs. The PLA outputs should be qualified
with the system clocks to produce appropriate control signals for the latches.
The inputs are: RESTART
LOADPATTERN LOADTEST ENTER A B CD.
The system inputs are: Vdd,
GND, clka, clkb.
The outputs are: MATCH
ERROR.
Important internal signal:
SAME.
RESTART, LOADPATTERN,
LOADTEST, ENTER are inputs to the PLA. A B C D are inputs to the various
latches.
The PLA behaves as follows:
Upon RESTART, the PLA goes
to an idle state. When LOAD-PATTERN is asserted, the PLA asserts the
appropriate control signal to cause the PATTERN latch to load new data from
inputs A and B. After the data has become valid, the ENTER signal is asserted
to the PLA for one clock cycle and data is stored in the PATTERN latch
and the PLA goes to a wait state. (This protocol is intended to mimic some type
of switch debouncing.)
When LOADTEST is asserted,
the PLA asserts the appropriate internal control signal to cause the TEST latch
to load new data from the inputs C and D. After the data has become valid, the
ENTER signal is asserted to the PLA for one clock cycle by the user and
data is stored in the TEST latch.
The XOR’S then compare the
contents of the PATTERN and TEST latches and AND the results of the individual
bits to produce a SAME signal which is input to the PLA. After the above
loading of the TEST data, the PLA will expect the SAME signal to be calculated
on the following cycle and will assert the MATCH signal if the PATTERN and TEST
are the same. Else it will assert the ERROR signal.
The PLA will continue to
assert either the MATCH or ERROR signal even after returning to a wait state.
The new value of MATCH or ERROR will be calculated after the completion of a
new LOADTEST, SAME sequence.
Figure 1: Diagram of the
Code Verifier for Problem 2.
Note 1: Please route Vdd and GND to
your custom logic blocks and also to the PLA so that all power and ground nets
are connected, (no isolated unconnected portions.)
Note 2: Please copy output CIF file
to sub-directory and read back into magic to identify and correct errors around
nwells and substrate contacts.
Note 3: Please qualify the control
signals to the latches with the appropriate system clock signals (clka, clkb)
as appropriate to satisfy the timing requirements.