Neuron input/output list:
- A - 1 bit
- B - 1 bit
- C - 1 bit
- D - 1 bit
- I - 1 bit
- Load - 1 bit
- Clock - 1 bit
- Reset - 1 bit
- AP (output ff) - 1 bit
Rules:
- You can use any combination of multiple clocks you wish, but only clock is an input to the circuit and you will have to design circuits to generate the other clocks.
- /load is not an input to the circuit. You need to generate it if you need it.
- You must use the cells you designed in labs 1 and 2 to build your neuron and your circuit. Do not change the circuit structure of your cells unless your cells do not meet the requirements of lab 1 (i.e. you lost points). You can rearrange the layout slightly or resize transistors as needed.
- You must have ntaps and ptaps according to the rules.
- You can tune the circuits by changing transistor sizes as needed.
- You cannot remove unused logic from your cells.
The Neuron Laboratory Goal
You will produce a working schematic and layout for the neuron.
Layout Instructions for The Neuron:
1. Make sure your ohmic contacts (ntaps and ptaps) meet the following requirement: Every cell should have a well and substrate contact, including transmission gates, and of course they should be connected to Vdd and Gnd. For larger cells, include at least two contacts per 50x50 lambda, one for the psubstrate and the other for the nwell. Every separate block of nwell should have at least one ohmic contact. For all your contacts, you will get the best performance if you use multiple minimum-size contacts for large contact areas and not large contacts, as Cadence will do for you automatically.
2. You can use metal layers 1-4 for the neuron.
3. 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 of the entire neural network. Final project 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.
4. Use LVS to verify your layout prior to SPECTRE simulation. Important note: Any pins in your layout labeled the same should be physically connected.
The Laboratory Steps:
1. Design your neuron circuit and create a Cadence circuit (schematic) diagram using the circuits/cells you have already designed in Labs 1 and 2. You cannot design new cells for Lab 3. Include your logic/gate level diagram for your neuron.
2. Simulate your neuron schematic with SPECTRE to ensure that your design works correctly.
Use the following sequence of inputs for initial testing:
a) Set load to 0 and keep it low. All other inputs should be 0. Reset your neuron flip flop.
b) Set load to 1and keep it high. Then test your neuron by sequencing through all combinations of inputs starting with ABCD = 0000, then 0001, then 0010 until you reach 1111, while holding I high (no inhibition) and clocking the circuit. The output should be high according to the conditions given above.
c) Now set I = 0 (inhibition) and sequence through these inputs: ABCD = 0000, then 0001, then 0010 until you reach 1111. The output AP should be low at all times.
d) Reset the neuron flip flop. Now set load to 0 (zero). Set ABCD = 1111, and I = 1. The flipflop output should remain zero.
3. Design and simulate your neuron layout with SPECTRE using the same sequence of inputs as in Step 2. You can modify the layout of your cells from Labs 1 and 2 in minor ways in Lab 3 if you can see some ways to make the circuits smaller or faster. You can rotate and flip cells about the x and y axes.
Testing Strategy for Part 1
Here is a testing strategy that might be useful to you: Design the schematic first and test. Then design the layout.
Design and test at each stage. Design the output flip-flop first. Then design the logic and the output of the logic that makes the neuron fire if the logic creates a "fire" situation. Test the logic separately first. Then add the flip-flops. Then test the entire neuron
A sample timing diagram for the neuron will be posted in a couple of days.
2. Neural Network Overview
This part of the lab addresses the design of a special-purpose circuit. The basic building block in the circuit is a very simplified digital neuron that you built in Lab 3 Part 1. You will build a small network with this neuron and your other gates as basic building blocks in this part of Lab 3. You can use all 6 metal layers for the network.
For the project, you are to assemble a "neural net" using three of these neurons. Each neuron that "fires" with it's AP output high can cause I to go low, inhibiting the firing of the other two neurons in the next clock cycle. For example, if either neuron 1 or neuron 2 fires, neuron 3 will be inhibited in the next clock cycle.
Design Requirements:
You can use any combination of multiple clocks you wish, but only clock is a clock input to the circuit and you will have to design circuits to generate the other clocks. /load is not an input to the circuit. You need to generate it if you need it. Your clock should have a 50% duty cycle (high and low an equal length of time).
You should use the cells you designed in labs 1 and 2 to build your neural network. Do not change the circuit structure of your cells. However, you can modify the layout in minor ways if you can see some ways to make the circuits smaller or faster. You can rotate and flip cells about the x and y axes.
Make sure your ohmic contacts meet the following requirement: Every cell should have a well and substrate contact, including transmission gates, and of course they should be connected to Vdd and Gnd. For larger cells, include at least two contacts per 50x50 lambda, one for the psubstrate and the other for the nwell. Every separate block of nwell should have at least one ohmic contact.
You can use metal layers 1-6 for the entire neural network.
You cannot remove unused inputs or unused logic.
The Neural Network Laboratory Design 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 For the Neural Network
1. Design your circuit and create a Cadence circuit (schematic) diagram and a Cadence layout using the neuron and inverter you have already designed. You cannot design new cells for Lab 3 Part 2. You can continue to make minor adjustments to the layouts and tune transistor sizes if you like. The bulk of the work here should be the routing of your design. Include your logic/gate level diagram for your network Use LVS to verify your layout prior to SPECTRE simulation. Important note: Any pins in your layout labeled the same should be physically connected. Route all inputs and outputs to the edges of the layout. Label all pins.
2. Simulate your schematic and layout with SPECTRE to ensure that your design works correctly. The outputs should appear on the proper cycles as shown in the timing diagram, although you will have clock-toQ delays. The inputs, intermediate outputs and final output to your project circuit should be named exactly as we have named them here. It is important you follow this naming convention so we can verify that your circuit works. You will not be able to simulate all possible inputs. Choose your cases wisely if you decide to simulate more cases than those required. Please simulate the timing diagram given in the lab assignment with inputs in the exact order we specify.
3. The delay you should measure with SPECTRE is the clock cycle or clock period. However, of course, your outputs should appear during the cycle shown in the timing diagram. 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 and report it clearly at the beginning of the report so we can find it. Compute an area-delay product that is the area in square microns times the clock cycle. If you compute the area-delay product wrong, or you do not compute it you will lose points.
4. Upload your report to the assignments function of Blackboard, including your layout and simulation files as a TAR file just like you did in lab 2 so that we can test (simulate) your circuit to be sure it performs as specified. Be sure to include your SPECTRE input files for the project.
A timing diagram you should use to test the neural network will be provided in several days.
Lab Report Contents:
- A cover sheet (title page) giving your name, date you submitted the lab, title, and student number
- A description of the neuron you built, including a transistor-level or gate-level circuit diagram printed from Cadence.
- A floorplan of the neuron layout.
- Your neuron layout and neuron layout simulation results as images. Make sure the layout and simulation images are of high enough resolution so that we can zoom in to check things.
- A description of the simulation experiments you ran with SPECTRE for the neuron.
- SPECTRE netlist files for both schematic and layout of the neuron, generated by Cadence, which will include the technology file, the input stimulus file and the circuitry netlist.
- A description of the network you built, including a gate or transistor level circuit diagram printed from Cadence.
- The neural network layout screen capture, in a high resolution so we can zoom in.
- A description of the simulation experiments you ran with SPECTRE for the network.
- SPECTRE netlist files generated by Cadence, which will include the technology file, the input stimulus file and the circuitry netlist.
- SPECTRE outputs (waveforms) for the neural network schematic and layout.
- High resolution images of your neuron and neural network layout.
Items 1-5, 7-9 and 11 should all be in a single report. Tar this report along with the files specified in items 6, 10 and 12, and upload to the assignments page of the blackboard.
IMPORTANT: Once you upload there will be no deletions or reuploads allowed. All files should be in a single Tar file, uploaded to blackboard. Files uploaded to the dropbox will not be graded. All layouts must be in color. Failure to follow these instructions could result in deduction of points.