The Neural Network:
The neuron you are designing drives the D1 input of 15 other neurons that are exactly the same as your initial neuron with its AP output signal. The D2 of each of those neurons is tied to Vdd, as are the load signals. The inhibitory inputs I are tied to ground. Set is not asserted so is tied to Gnd. All you need to rout to the other neurons is D1 and the clock. The output of the 15 other neurons is names AP2, AP3, etc.
You can decide whether you lay all the neurons out in a long row, or some other arrangement of the neurons. You must route all inputs to the first neuron, including Vdd and Gnd, and the output of the first neuron AP to the edges of the entire layout.
The Laboratory Steps:
Testing Strategy:
Here is a testing strategy that might be useful to you: Design the neuron schematic first block by block and test. Then design the neuron layout and test each part as you build it. Repeat this after you build the neural network schematic and layout. Design and test at each stage.
Design and Test Steps:
1. Design your neuron circuit schematic and create a Cadence circuit (schematic) diagram using the circuits/cells you have designed in Labs 1 and 2. You cannot design new cells for Lab assignment 3. Include your logic/gate level diagram for your neuron.
2. Simulate your neuron schematic to ensure that your design works correctly. Use the following sequence of inputs for initial testing of your schematic:
a) Set load to 1 and keep it high. All other inputs except clock (and set if you use it) should be 0, including I. Set your neuron flip flop. Then reset your flop flop by loading in 0s to D2D1.
b) Set load to 1 and keep it high. Then test your neuron by sequencing through the inputs shown in the timing diagram.
c) Now set load to 0 (zero). Set the data inputs to 11, and I = 0. The flipflop output should remain zero.
3. Lay out your neuron.
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 to each other.
5. Simulate your neuron layout with SPECTRE to ensure that your design works correctly using the same sequence of inputs as in Step 2, and measure the smallest clock period for the neuron. Show the waveforms you used to measure the clock period.
a. Show all inputs D2D1, set, load and I together in a panel and in a second panel show the output AP and clock together. (note: not following instructions will lead to deduction of points).
b. Submit a zoom-in of the same waveform around the time the output transition occurs.
Note: Be sure the output transition occurs before the next rising edge of the clock. The output transition should reach at least 90% of Vdd before the rising edge of the clock.
6. Build the neural network schematic and layout with your main neuron and the 15 other neurons to which it sends AP. Show the simulations of schematic and layout showing AP, AP2, AP8 and AP15 to show that the network works. Your clock cycle may be slower than with the single neuron circuit. Here, you can insert any buffers you want to speed up the propagation of AP and hence reduce the clock period.
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.
- You need to generate all inverted inputs, including /clock and /load They are not inputs to the circuit You need to generate them if you need them.
- You must use the cells you designed in labs 1 and 2 to build your neuron and your neural network. Do not change the circuit structure of your cells unless your cells do not meet the requirements of lab 1a, lab 1b, lab 2a or lab 2b (i.e. you lost points). You can rearrange the layout slightly or resize transistors as needed while still meeting the requirements of labs 1 and 2. Do not change the methodology by rotating transistors, rearranging transistors, connecting inside the cell on different layers, or changing your interconnection strategy (for example, you might decide that all inputs come in the top of the cell, so you can't change that). You can move ntaps and ptaps around.
- You must have ntaps and ptaps according to the rules. 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 the taps 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.
- You can tune the circuits by changing transistor sizes as needed or to squeeze out empty space while still meeting the requirements of lab 1 and 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.
- You cannot remove unused inputs or unused logic from your cells.
- You can use metal layers 1-4 for the neuron, and layers 1-6 for any external connections that go to the inputs/outputs of the neuron.
- All signals should use the names we have given below.
- As in Lab 2, the output transition of the flip flops including any setup time at any following flip flop inputs should occur before the next rising edge of the clock.
- For this lab, you can use any layout strategy you choose as long as it fits the cell methodology you have already selected.
- On your final neural network layout, all inputs and outputs to the circuit must be routed to the edges of the layout and must be labeled using the pin names.
Final Report Contents:
Include in this lab report, in order:
- A cover page showing name, student number, email address, date, the final area and delay of your final neural design, and AREA-DELAY product. Your report file type should be lastnamefirstname.pdf. Do not submit other file formats, like .doc or .txt. The delay you should measure with SPECTRE simulations of your layout for your final result is the clock cycle or clock period of the neural network layout assuming correct operation. Your output should appear before the clock rises again. 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 neural network 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 period. If you compute the area-delay product wrong, or you do not compute it you will lose points.
- A description of the neuron and neural network you built, including a transistor-level and gate-level circuit diagram (schematic) printed from Cadence, your simulation results (including waveform images) and a description of how your circuit was constructed using existing cells.
- A floorplan of the neuron and neural network layout. A floorplan shows where on the layout you placed functions, without showing the details of the functions. Cadence might have a tool to do this for you but you need to draw it yourself for clarity. Try this link to see an example. You do not have to draw your floorplan over your layout image but it helps clarity.
- Your neuron and neural network layout images 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. Put your input and output waveforms onto multiple graphs so we can read them more easily
- A description of the simulation experiments you ran with SPECTRE for the neuron and neural network.
Include (not in the report but as separate files)
1. SPECTRE netlist files for both schematic and layout of the neuron and neural network, generated by Cadence, which will include the technology file, the graphical stimulus files and the circuitry netlist. We need everything you used so that we can run your simulations in case your results are unexpected.
2. High resolution images of your neuron and neural network layout and waveform files. This is so we can view the layout properly to check details. Make the waveform signals thick enough for us to see them.
Tar or zip this report along with the files specified above. Other formats besides Tar or zip will not be accepted. Upload your report to D2L, including your layout and simulation files as a TAR file so that we can test (simulate) your circuit to be sure it performs as specified. Include SPECTRE netlist files for final schematic and layout of the neuron, generated by Cadence, which will include the technology file, the graphical stimulus files and the circuitry netlist. We need everything you used so that we can run your simulations in case your results are unexpected.
IMPORTANT: Once you upload there will be no deletions or reuploads allowed. All files should be in a single Tar or Zip file, uploaded to DEN. All layouts must be in color unless you obtain prior permission. Failure to follow these instructions could result in deduction of points.
Discussion:
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. Pay close attention to the specific delay you are to measure.