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/7/10 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 10%) and the design of the neural network (worth 10%).

1. The digital neuron

There are many inputs to the neuron:

  • 5 data inputs to the neuron, A, B, C, D and E, 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,
  • 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, and the output of the flip-flop AP represents the output of the neuron.
  • When each data input A, B, C, D or E is high, If the total number of high inputs equals or exceeds 3, the neuron "fires," as long as I is held high. If the number of high inputs is 5, the neuron "fires" no matter what I is. The conditions for firing are recomputed when new inputs A, B, C, D, E and I are loaded.
  • The inhibitory input I is basically a veto that prevents the neuron from "firing" when it is asserted low and all 5 other inputs are not high.
  • After the positive edge of the clock, if the neuron fires, the output of the firing flip-flop goes from low to high. After the next rising clock, the firing flip-flop output falls unless it is firing again.
  • 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 the computation the neuron contains is not exactly the same as the compound gate you designed, but you might find a way to use the compound gate.

A block diagram of the neuron is shown below.