University of Southern California

Department of Electrical Engineering - Systems

EE 477 Laboratory #3 (worth 20% of final grade)

Final Project: Neuron Design updated 11/18 4:05 PM Changed/added remarks in red, Testing Table Added

Due 12/3/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 Neurons

This lab is the design of two special-purpose digital circuits that mimic neurons (brain cells) Be sure to finish and test your schematic of each neuron before you start the neuron layout.

The Two Neurons:

There are two neurons with 5 inputs to each neuron:

  • a data input to the neuron, D 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,
  • Set control signal that sets the flip flop by loading Vdd.,
  • and a clock with duty cycle of your choice.

Name your signals as shown in bold above, with D1 being the first neuron data input, and D2 the second one. The output of the neurons should be named AP1 and AP2. 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 AP1 or AP2 represents the outputs of the two neurons.
  • The neurons "fire" when their inputs D have the sequence 1001 for Neuron 1 or 1111 for Neuron 2 and I =0. Each neuron loads 1 into the output flip flop for one clock cycle when the input sequence is correct and then resets it by loading 0 into the output flip flop 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 1111 in sequence, the output flip flop of Neuron 2 will be set (fire) and AP will go high, but will ignore the next data input 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 also a function of the present state and the inputs.


A block diagram of the neuron is shown below.