University of Southern California

Department of Electrical Engineering - Systems

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

Module Design, Cadence and SPECTRE

Due 5/1/12 11:59 PM

There will be no extensions so plan your time accordingly!

This lab addresses the design of a special-purpose circuit. The circuit is a simplified digital neuron. There are two parts to the lab: The schematic of the neuron and the layout. Be sure to finish and test your schematic before you start the layout. Note the rules given below.

The digital neuron

There are five inputs to the 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 ff to be loaded with a new value,
  • Reset
  • and a clock with 50% duty cycle.

Name your signals as shown in bold above. The output should be named AP. It is important you follow this naming convention so we can verify that your circuit works.

The basic Neuron Function:

  • Each data input and control input has a single bit.
  • The inhibitory input I is a single bit.
  • You need to generate all inverted inputs, including /clock.
  • The neuron output contains a firing flip-flop you designed in Lab 2, and the output of the flip-flop AP represents the output of the neuron.
  • The neuron also contains sequential circuitry that "remembers" the past 4 inputs in some manner.
  • The neuron "fires," as long as I is held high, when the D input is high, and 2 of the last 4 D inputs are high. The conditions for firing (loading a "1" into the FF) are recomputed every clock cycle. The inhibitory input I basically prevents the neuron from "firing" when it is asserted low. So as long as I is high, the neuron can fire if input conditions hold. You need a total of 3 "1"s on the D input, including the present input, for the neuron to fire.
  • After the negative edge of the clock, if the neuron fires, the output of the firing flip-flop goes from low to high. The output remains high until the next falling clock, when it is lowered if the inputs do not cause a "1" to be loaded into the FF.
  • 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, and you might need more than one of these gates.

A block diagram of the neuron is shown below. I have removed the feedback from the AP output but you can still use it if you like.