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, and reset. The output should be named LtoRedge. 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 , R1, and R2 to 1. Set load high and keep it high. All other R inputs should be 0. Clock the circuit. Then set R5 and R6 high, and all other R inputs low. Clock the circuit again. Then set R9, and R10 to high and all other Rinputs low and clock again. Your output LtoRedge should be high after the third upward transition of the clock.
c) Now lower all R inputs except raise R11 and R12 . Then raise clock. Then lower all R inputs except raise R9 and R10. Clock again twice. Now your output should continue low after three positive clock edges.
d) Now hold your load input low. Return to the input sequence in part a. After three clock cycles, the output should remain low.
e) Now hold R1, and R2 high 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.
3. Simulate your circuit with SPICE. The delay you should measure with SPICE is the clock cycle. The faster your clock cycle, the faster your circuit will function.
4. 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 majority gate 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