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/3/11 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 network of simplified digital neurons. There are two parts to the lab, the design of the digital neuron (worth 12%) and the design of the neural network (worth 8%).

1. The digital neuron

There are many inputs to the neuron:

  • 4 data inputs to the neuron, A, B, C and 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 two input FFs FA and FB that remember the past values of inputs A and B.
  • The neuron "fires," as long as I is held high, when ACD + ABC + BCD + ABD + FA(A)(B+C+D) + FB(B)(A+C+D) is high. The conditions for firing (loading a "1" into the FF) are recomputed when inputs A, B, C, D, and I change. 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 3 inputs are high, or if one of the important inputs (A or B) is high, that same input was high in the last cycle and the neuron fired in the last cycle, and any other input is high.
  • 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.
  • Make sure you consider how you are going to reset FA and FB.
  • FA is set when the input to the AP FF is high and A is also high. FB is set when the input to the AP FF is high and B is also high. Note that the FA and FB flipflops are set at the same time the neuron fires, not in the next cycle, if their set conditions are true.

A block diagram of the neuron is shown below.