1 / 8

EEE515J1 ASICs and DIGITAL DESIGN Designing FSMs

EEE515J1 ASICs and DIGITAL DESIGN Designing FSMs. Ian McCrum Room 5D03B Tel: 90 366364 voice mail on 6 th ring Email: IJ.McCrum@Ulster.ac.uk Web site: http://www.eej.ulst.ac.uk . 0X/0, 10/0. 11/0. YELLOW ALERT. PENDING. 0X/0, 10/0. 0X/0, 10/0. 11/0. 0X/0, 10/0. RED ALERT.

Télécharger la présentation

EEE515J1 ASICs and DIGITAL DESIGN Designing FSMs

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EEE515J1ASICs and DIGITAL DESIGN Designing FSMs Ian McCrum Room 5D03B Tel: 90 366364 voice mail on 6th ring Email: IJ.McCrum@Ulster.ac.uk Web site: http://www.eej.ulst.ac.uk

  2. 0X/0, 10/0 11/0 YELLOW ALERT PENDING 0X/0, 10/0 0X/0, 10/0 11/0 0X/0, 10/0 RED ALERT ORANGEALERT 11/0 11/1 Example 2A A FSM with Inputs: Polaris Missile Launcher (D-types, straight binary, Output decoder) Assume 2 officers must supply an input to a system to launch the missile, any false code causes an abort. There is a flaw/bug/feature in this design. A common problem in FSMs is to specify EXACTLY when the output is to occur, in time A sequence of 11,11,11 <BANG> (Missile launches at the instant of ENTERING red alert, should be on exit!)

  3. The equations to make this machine will require detecting 4 different on-terms /Z/YAB /ZYAB Z/YAB ZYAB We also need two three input or gates… Cost 6+6+3+3+4+4+4+4 = 34p

  4. CLOCK Pulse Generators : The generic family • consider carefully the detailed timing of i/p and o/p, • Is the input to “trigger” when the input is high, or when a low to high transition occurs on the input; level triggered or edge triggered. What polarity is required (though I will only cover low-high or high triggers here) • Exactly when is the output to go high? Normally at the first active clock transition after the input trigger condition is met. • an example follows of a circuit which responds to a low to high transition and generates one pulse. The input is allowed to stay high but only one pulse is ever generated. Only when the input goes low is it again “armed”, thus it is truly edge triggered and is not “re-triggerable”. We assume the input can only change infrequently and that the clock is much faster than the period of input changes.

  5. INPUT CLOCK OUTPUT Clk-to-Q propagation delay • The development of the state diagrams evolves from the sequences above. Ensure you can follow what each does. • The last diagram is best, though even this assumes the input does not go low and then high again before the pulse completes its output • A detailed timing diagram is better at representing exactly what is desired. • TUT QUESTION:L5(a) develop circuits to o/p 3 pulses • TUT QUESTION:L5(b) develop circuits to o/p 5 pulses

  6. Quick ways of designing machines: The one-Hot method • to design any finite state machine (FSM) using the one-hot method you use one D-type flip-flop per state, you must use D-types for the method to work. • You must also use the special state code 000..0001, 000..0010, 000..0100 etc, I.e n-1 zeroes and a single ‘1’, (called the “HOT” state!) • Variations do exist, ONE-HOTZ and TWO-HOT for instance, but we will only deal with one-hot here. • The secret to the method is to look carefully at the state diagram, for each state you will write down a term for every arrowhead entering that state.

  7. A O/P B C Input I Clock e.g Pulse Generator using one-hot 0 A/0 1 B/1 • A.d = A * /I + C * /I ;Cost = 6+2+2+2 =12 • B.d = A * I ;Cost = 6+2 =8 • C.d = C * I + B ;Cost = 6+2+2=10 • O/p = B; X 0 C/0 1

  8. You can… design counters that count up (no inputs) Summary Week 4 You can… design counters that can hold or count You can… design counters that can count up/down or reset You can… design counters with D-type flipflops You can… design counters with JK-type flipflops You can… design using a state assignment related to the desired outputs You can… design pulse generators You can… design using a straight binary state assignment You can… design using a one-hot state assignment You can… cascade counters synchronously You can… appreciate why synchronous counters are better than asynchronous counters You can use Quartus to design multiple sheet designs that use BUSes and develop your own library parts Next comes … VHDL

More Related