The Laboratory Goal
For this lab, you can use any layout strategy you choose as long as it fits the cell methodology you have already selected. The goal is to minimize the area·delay product. Designs that are more square, rather than long, thin rectangles, tend to be better designs. The designer with the lowest area-delay product will win a prize, a gift certificate from Amazon.com. There will be two prizes, one for the best undergraduate design and one for the best graduate design. Pay close attention to the specific delay you are to measure.
The Laboratory Steps
1. Design your circuit and create a Cadence circuit (schematic) diagram and a Cadence layout using the cells you have already designed. You cannot design new cells for Lab 3. The bulk of the work here should be the routing of your design. Include your logic/gate level diagram for your neuron. Use LVS to verify your layout prior to SPICE simulation. Important note: Any pins in your layout labeled the same should be physically connected.
2. Simulate your schematic and layout with SPICE to ensure that your design works correctly The inputs to your project circuit should be named clock, load, R1, R2, R3, R4, R5, R6,R7, R8, R9, R10,R11, R12, ignition, brake, emergency, park, and reset. The output should be named start_car. It is important you follow this naming convention so we can verify that your circuit works.
Use the following sequence of inputs (See timing diagram below for exact details):
a) Reset all flip flops (even though reset is shown asserted high you could assert it low) using whatever clock settings you need. This will vary depending on how you implemented reset.
b) Unassert Reset and then set load and the appropriate R's to 1. Set load high and keep it high. All other R inputs should be 0. I for the first three neurons should be 0. Clock the circuit. Then set ignition high, and all R inputs low. Clock the circuit again. Then set brake, emergency and park to high and ignition to low, and keep all R inputs low and clock again. Your output start_car should be high after the third upward transition of the clock.
c) Now reset the neurons and repeat the cycle with R1 wrong, and with I low. Now your output should continue low after three positive clock edges.
d) Test the whole cycle again with I high and wrong R1 and show that the output start_car is high after the third upward transition of the clock. This case is not shown in the timing diagram.
e) Now hold your load input low. Return to the input sequence in part a and b. After three clock cycles, the output should remain low. This case is not shown in the timing diagram.
f) Now reset again and hold the R inputs with the proper code for two clock cycles, and show the output of neuron 1 (N1) to verify that it does not fire twice in a row. This case is not shown in the timing diagram.
g) Test your neural network with 2 bits wrong and I high in one of your code digits to verify the car will not start. This case is not shown in the timing diagram.
4. The delay you should measure with SPICE is the clock cycle. The faster your clock cycle, the faster your circuit will function. Measure the area of your design in square microns. Your area should be the bounding box area of your design. If your design is not rectangular, include the wasted area in your area calculation. Compute the area-delay product of your design.
5. Upload your report to the assignments function of Blackboard, incliding your layout and simulation files as a TAR file as in lab 2 so that we can test (simulate) your circuit to be sure it performs as specified Be sure to include your SPICE input files for the project.
Testing Strategy
Here is a testing strategy that might be useful to you: Build the neuron combinational schematic in Cadence and test it using SPICE. Add the flip flop and any logic needed to keep the flip flop from firing two clock cycles in a row. Test the entire "neuron." Now create your neural network schematic in Cadence and test it. Use the same incremental strategy to perform your layout and to test your layout.
Timing Diagram