University of Southern California
Department of Electrical Engineering - Systems
EE 477 Laboratory #3 (worth 20% of final grade)
Neuron and Neural Network Design
Due 4/27/18 5:00 PM
There will be no extensions so plan your time accordingly!
Required contents of the report appear in purple.
This is a long lab so be sure you scroll to the end to see all the information. Be sure to follow the rules given below near the end of this lab document.
The Digital Neuron and Neural Network
This lab is the design of a special-purpose digital circuit that mimics a neuron (brain cell) and a neural network that uses this neuron. Be sure to finish and test your schematic of the neuron before you start the neuron layout.
The Neuron:
There are 6 inputs to the neuron:
- a two-bit data input to the neuron, D2D1 that could be different every clock cycle
- a single-bit inhibitory input I,
- Load control signal, that allows the output firing flip flop to be loaded with a new value,
- Reset control signal that resets the flip flop by loading 0.0v.,
- and a clock with duty cycle of your choice.
Name your signals as shown in bold above. The output of the neuron should be named AP. It is important you follow this naming convention so we can verify that your circuit works. You can create inverted signals like NotLoad in the neuron itself.
The basic Neuron Function:
- Each data input and control input is a single bit.
- The inhibitory input I is a single bit. It prevents the neuron from firing as long as it is held to "1" (Vdd)
- The neuron output contains one firing flip-flop you designed in Lab 2, and the output of the flip flop AP represents the output of the neuron.
- The neuron "fires" when the input D2D1 is 11 and I =0. The neuron loads 1 into the output flip flop for one clock cycle and then resets it by loading 0 on the next clock cycle.
- After the positive edge of the clock, if the neuron fires, the output of the firing flip-flop AP goes from low to high. The output remains high until the next rising clock, when it is lowered.
- Load is normally held high, but is lowered if we want to emulate a neuron failing to fire due to lack of sleep or similar circumstance.
- Note that you might find a way to use the compound gate you designed in Lab 1. You do not have to use it at all.
For example, if the inputs are 11 followed by 11 in sequence, the output flip flop will be set (fire) and AP will go high, but will ignore the second D2D1 = 11 and will reset the flip flop instead.
Design the circuit to be a Mealy Machine, where the output (the firing flip flop) is derived from the present state and the inputs during the current clock cycle. The next state of the flip flop is obviously the same as the next output AP and is also a function of the present state and the inputs.
A block diagram of the neuron is shown below.