Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

Similar documents
Digital Circuits I and II Nov. 17, 1999

EE 367 Lab Part 1: Sequential Logic

Lecture 8: Sequential Logic

Computer Systems Architecture

EEE2135 Digital Logic Design Chapter 6. Latches/Flip-Flops and Registers/Counters 서강대학교 전자공학과

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit)

The outputs are formed by a combinational logic function of the inputs to the circuit or the values stored in the flip-flops (or both).

DIGITAL CIRCUIT COMBINATORIAL LOGIC

WINTER 15 EXAMINATION Model Answer

Chapter 6. Flip-Flops and Simple Flip-Flop Applications

Logic Design. Flip Flops, Registers and Counters

CPS311 Lecture: Sequential Circuits

Sequential Logic Basics

Introduction. NAND Gate Latch. Digital Logic Design 1 FLIP-FLOP. Digital Logic Design 1

1. What does the signal for a static-zero hazard look like?

Digital Systems Laboratory 3 Counters & Registers Time 4 hours

Combinational vs Sequential

16 Stage Bi-Directional LED Sequencer

Notes on Digital Circuits

Chapter 5 Flip-Flops and Related Devices

EL302 DIGITAL INTEGRATED CIRCUITS LAB #3 CMOS EDGE TRIGGERED D FLIP-FLOP. Due İLKER KALYONCU, 10043

Digital Circuits 4: Sequential Circuits

cascading flip-flops for proper operation clock skew Hardware description languages and sequential logic


Decade Counters Mod-5 counter: Decade Counter:

EXPERIMENT #6 DIGITAL BASICS

55:131 Introduction to VLSI Design Project #1 -- Fall 2009 Counter built from NAND gates, timing Due Date: Friday October 9, 2009.

Notes on Digital Circuits

WINTER 14 EXAMINATION

Name: Date: Suggested Reading Chapter 7, Digital Systems, Principals and Applications; Tocci

University of Victoria. Department of Electrical and Computer Engineering. CENG 290 Digital Design I Lab Manual

2 The Essentials of Binary Arithmetic

UNIT-3: SEQUENTIAL LOGIC CIRCUITS

ELEN Electronique numérique

successive approximation register (SAR) Q digital estimate

A FOUR GAIN READOUT INTEGRATED CIRCUIT : FRIC 96_1

D Latch (Transparent Latch)

Saturated Non Saturated PMOS NMOS CMOS RTL Schottky TTL ECL DTL I I L TTL

More on Flip-Flops Digital Design and Computer Architecture: ARM Edition 2015 Chapter 3 <98> 98

Basis of sequential circuits: the R-S latch

The University of Texas at Dallas Department of Computer Science CS 4141: Digital Systems Lab

Lec 24 Sequential Logic Revisited Sequential Circuit Design and Timing


Report on 4-bit Counter design Report- 1, 2. Report on D- Flipflop. Course project for ECE533

Experiment # 4 Counters and Logic Analyzer

Chapter 9 Introduction to Sequential Logic

Project 6: Latches and flip-flops

Module -5 Sequential Logic Design

Logic Design Viva Question Bank Compiled By Channveer Patil

(Refer Slide Time: 1:45)

Long and Fast Up/Down Counters Pushpinder Kaur CHOUHAN 6 th Jan, 2003

University of Illinois at Urbana-Champaign

ELECTRICAL ENGINEERING DEPARTMENT California Polytechnic State University

Digital Fundamentals. Lab 5 Latches & Flip-Flops CETT Name: Date:

Chapter 4. Logic Design

(Refer Slide Time: 2:05)

Music Electronics Finally DeMorgan's Theorem establishes two very important simplifications 3 : Multiplexers

Clocking Spring /18/05

ELE2120 Digital Circuits and Systems. Tutorial Note 7

Supplement 3 Asynchronous Sequential Circuit Concepts

Topic D-type Flip-flops. Draw a timing diagram to illustrate the significance of edge

L14: Quiz Information and Final Project Kickoff. L14: Spring 2004 Introductory Digital Systems Laboratory

VTU NOTES QUESTION PAPERS NEWS RESULTS FORUMS Registers

DIGITAL ELECTRONICS MCQs

Digital Fundamentals

PRE J. Figure 25.1a J-K flip-flop with Asynchronous Preset and Clear inputs

Sequential logic. Circuits with feedback. How to control feedback? Sequential circuits. Timing methodologies. Basic registers

L14: Final Project Kickoff. L14: Spring 2006 Introductory Digital Systems Laboratory

Computer Architecture and Organization

ECB DIGITAL ELECTRONICS PROJECT BASED LEARNING PROJECT REPORT ON 7 SEGMENT DIGITAL STOP WATCH USING DECODER

Laboratory 9 Digital Circuits: Flip Flops, One-Shot, Shift Register, Ripple Counter

Asynchronous (Ripple) Counters

Laboratory 10. Required Components: Objectives. Introduction. Digital Circuits - Logic and Latching (modified from lab text by Alciatore)

FLIP-FLOPS AND RELATED DEVICES

Physics 120 Lab 10 (2018): Flip-flops and Registers

Sequential Logic. E&CE 223 Digital Circuits and Systems (A. Kennings) Page 1

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous)

COMP sequential logic 1 Jan. 25, 2016

Catch or Die! Julia A. and Andrew C. ECE 150 Cooper Union Spring 2010

YEDITEPE UNIVERSITY DEPARTMENT OF COMPUTER ENGINEERING. EXPERIMENT VIII: FLIP-FLOPS, COUNTERS 2014 Fall

Memory elements. Topics. Memory element terminology. Variations in memory elements. Clock terminology. Memory element parameters. clock.

AC103/AT103 ANALOG & DIGITAL ELECTRONICS JUN 2015

Chapter 3: Sequential Logic Systems

PHYS 3322 Modern Laboratory Methods I Digital Devices

MODULAR DIGITAL ELECTRONICS TRAINING SYSTEM

VU Mobile Powered by S NO Group

Synchronous Digital Logic Systems. Review of Digital Logic. Philosophy. Combinational Logic. A Full Adder. Combinational Logic

Side Street. Traffic Sensor. Main Street. Walk Button. Traffic Lights

CSE 352 Laboratory Assignment 3

(CSC-3501) Lecture 7 (07 Feb 2008) Seung-Jong Park (Jay) CSC S.J. Park. Announcement

Counters

APPLICATION NOTE. Figure 1. Typical Wire-OR Configuration. 1 Publication Order Number: AN1650/D

Mission. Lab Project B

DIGITAL SYSTEM FUNDAMENTALS (ECE421) DIGITAL ELECTRONICS FUNDAMENTAL (ECE422) COUNTERS

CSE115: Digital Design Lecture 23: Latches & Flip-Flops

Chapter 5: Synchronous Sequential Logic

Rensselaer Polytechnic Institute Computer Hardware Design ECSE Report. Lab Three Xilinx Richards Controller and Logic Analyzer Laboratory

Integration of Virtual Instrumentation into a Compressed Electricity and Electronic Curriculum

Review of digital electronics. Storage units Sequential circuits Counters Shifters

[2 credit course- 3 hours per week]

Transcription:

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.111 - Introductory Digital Systems Laboratory How to Make Your 6.111 Project Work There are a few tricks of the trade which allow an experienced digital designer to fix problems quickly. This note is an attempt to fill you in on some with which you might not be familiar. Wiring Errors 1. Do you have a diagram of your circuit? Not that piece of napkin from common s last night, I mean a DIAGRAM. If you don t, then think about making one. Making the diagram may in itself lead you to finding the problem. A timing diagram is often helpful for finding errors as well. 2. Now that you have a diagram, it should be easy to have your partner check the wiring. Not you. Your partner. You will make the same mistake that you made in wiring your circuit a second time when you check it. 3. Check each IC package. Is there a wire on each of its pins? There probably should be, in most cases. Explain the cases where there is not (unused section of 74LS00, parallel inputs not used on counter... ). You would be surprised at how many errors are caught with this simple technique. Be careful especially on the power and ground signals. 4. The pin assignments of a 74LS02 are not the same as those of a 74LS00. When you use them, double check the pin numbers. Care and Feeding of the Power Supply 1. Don t overload the kit power supply. If in doubt, measure the power supply with an OSCILLOSCOPE, not a VOM. Many of the power supply overload problems show themselves as hum or ripple on a supply rather than low voltage output. 2. Grid your power supply distribution. This means construct an X-Y pattern of power interconnections for the ground and power. The extra wires are redundant if you believe you are working with superconducting zero inductance wires. You are not. Recall that KCL requires that signals which force current to flow OUT a wire also cause the SAME CURRENT to flow BACK on the ground and power wires. 3. This means that if you are, for example, building a project with multiple kits, you should be quite careful to provide enough grounds between the kits. I d say a conservative minimum is about 1 ground wire for each 3 signal wires. The ground wires should connect diverse points on the grid of each kit, not all be connected to the power

6.111 How to Make Your 6.111 Project Work 2 supply pin. Don t connect the +5 volt power on adjacent kits together. You can check the adequacy of your grounding between kits by measuring the ground potential difference between points in your project with a scope. Worry about anything more than about 0.5 volts. 4. You may have heard from an analog course about ground loops and the necessity to avoid them. In digital systems it is completely impractical to avoid ground loops, and the opposite approach is taken, best summarized in a phrase which I will pass on: Let Ground Abound. 5. If you take care with the ground distribution in your projects, few bypass capacitors will be necessary, but for conservatism you might consider placing a 0.01 to 0.1 ceramic bypass capacitor between the ground and +5 power grid every half a dozen packages or so. Your oscilloscope is your best friend here. Look at the +5 power runs while your project is running. Does it look like a DC power supply? Anything more than about 1 volt p-p noise needs to be fixed. Sometimes adding power supply bypassing can actually make a project not work. The way this happens is that the ground distribution system is high impedance, and the addition of the decoupling capacitors makes the current in the ground lines higher, leading to ground noise. Since the noise margin in the low state is worse than in the high state, this can be a bad tradeoff. Unused Inputs They have to be connected to either ground or to high. Ground is easy to come by. High can be the output of a grounded input inverter, or a resistor tied to the positive supply. The resistor value is non-critical, somewhere in the range of 1K. Many inputs can be wires in parallel to this resistor. Making the run extremely long can be bad from the standpoint of finding errors. It is common, and the source of difficult problems, for the high run to have some output connected to it. Since you often pull up sets and clears on widely distributed circuits, this can cause very bizarre behavior. Keeping the number of inputs on the high run to a reasonable number (5-10) will help isolate these problems. Behavior of Ungrounded Parts The behavior of parts which do not have a ground pin connected can be quite disconcerting. They seem to almost work. The reason for this is that the input signals can provide a source of negative supply. So, if you have a NAND gate, for example, in a package with no other sections used, then it can behave correctly for the case when the inputs are both low, one or the other high, but incorrectly if both are high. This can be MOST confusing, and is even worse if you are using all four sections of some NAND gate, since you are (almost) certain to have some input low, and the gates will almost work. Looking at your logic signals with a scope will discover this and other problems, since the signal levels will look very poor.

6.111 How to Make Your 6.111 Project Work 3 Tri-State Logic Signals Busses which have tri-state signals driving them are tricky to debug at times. Scoping them can give signals which appear to be middle due to the parts not driving the bus at all times. One way to counteract this is to explicitly add pullup resistors to the runs, which will force the bus to be a logic 1 even if it is undriven. A second problem with tri-state busses can happen when two outputs are fighting one another over the bus. Large currents and overheating of the design can occur under these circumstances, and the logic levels on the bus will be middle. Thermal debugging of designs is a quite efficient test strategy, since it is very quick and can find some problems with very little work. Check to see that all of your parts are dissipating some power. Are any so hot that you can t touch them? Unless you are using some part with an excuse to be hot, then some output is probably trying to pull down the +5 volt power supply, or fighting with some other part. Open Collector Signals Calculate the resistor value carefully. To do this, calculate the total input current of all the loads on the run. Subtract this from the output drive available from the driver part. If more than one type of part is being used, use the lowest output drive. The remaining current is available to pull down the resistor. The resistor value is then given by: R = 5 ohms. I PNP Inputs This will usually be in the several hundred ohm range. Newer TTL parts, those with numbers above 300 for the most part, use a low DC current input circuit using a PNP transistor. These parts have a very low TTL current, which might make you think that you can drive hundreds of them with a single part. This strategy is dangerous if you value the time and signal quality of your design. AC considerations mean that you should limit the number of signals on a run to the 10-15 range regardless of the DC current specification. The same comment applies, with even more force, to the MOS inputs of static memory parts and EPROMS. These parts have high input capacitance which makes driving them with a reasonable number of loads essential. Handling CMOS Parts CMOS devices are static sensitive. They have sufficiently high input impedance that the static charge stored on your body capacitance can permanently damage them. Ground yourself to the bench and your project before touching these devices, and they will work when you are finished plugging them in. Wire Routing Wires, as we mentioned above in the section on power supplies, are not perfect components. They have a parasitic inductance, resistance, and a mutual inductance with other wires. There are some strategies for minimizing the effect of these imperfections in our ideal

6.111 How to Make Your 6.111 Project Work 4 wire model. For many of the signals in a design, the bad properties of the wires are irrelevant, for the same reason that we can afford to ignore combinational logic hazards we don t look at the wires until they behave well. This works fine except for the wires used for timing signals in our design. Here are some general guidelines if you want to be careful: 1. Keep wires short. The shorter your wires are, the less chance of noise pickup, coupling, and other undesirable behavior. 2. Drive a wire from one end or the other of the string of places it goes, not from the middle. 3. Wire all the places a signal goes sequentially, one after another, not as some sort of tree-structure. This applies to single electrical runs. 4. If you have trouble with making your signals look good on a run, consider resistor termination of the far end of the run. Your friend here is your oscilloscope. Does the signal look like it has clean edges in the positive and negative going directions? Is there ringing or strong over and undershoot? Your termination will have to be a Thevenin equivalent resistor to about +3 volts with an impedance of about 150 ohms (bet you thought you would never hear about those again, didn t you... ). 5. Undershoot on LS series logic, particularly, can lead to drastic changes in the guaranteed Tplh and Tphl speeds for parts. If you can t understand why the part which says it should be a 10ns part takes 20ns to switch, check for the 1.5 volt undershoot on its input. Remember that the spec sheet is your contract with the part manufacturer. He doesn t guarantee the behavior if you are feeding garbage into the part. 6. Bundling wires together makes your kit look neat, but it also makes a good transformer. Unfortunately, you probably didn t want a transformer between you logic signals. For clock signals, route the critical wires far away from other wires, particularly wide parallel busses switching at the same time. You might consider twisted pair, which wraps a ground wire around the signal wire. Ground both ends of the twisted pair ground. Clock Distribution Clocks, and write pulses for RAM s are the most sensitive logic signals in a typical design. The design methodology which we are teaching in this course allows most signals in a machine to have hazards, ringing, and even be slow, without actually making the circuit you are designing not work. The penalty for sloppiness in most signals is simply that the circuit

6.111 How to Make Your 6.111 Project Work 5 will operate slower, rather than not at all. This is not the case with clock signals. If a clock has ringing on it, or a slow rise time, then your circuit may not work AT ALL. It pays then to take special care in distributing the clock. Loading rules should be strictly obeyed (they should be anyway, of course). A more insidious problem sometimes occurs, however, due to the possibility of CLOCK SKEW. This means when the clocks for different portions of your logic design have their rising edges occur at slightly different times. This can happen as a result of long wires in the clock circuit, from different numbers of gates in series with different clocks in the machine, from different loading on different clocks, and from lots of other reasons. Whatever the reasons, clock skew is a common source of problems. To see why, consider a pair of type D flip-flop registers, such as LS374 parts, each clocked by a different clock. It may be your intention to load data first into register 1 on the first clock, and then into register 2 from the outputs of register 1 on a second clock. If the clock on register 1 lags the clock on register 2 by more than the sum of the setup and propagation delays of the part, then the incorrect data will be loaded into register 2: namely, register 2 will receive the data NEWLY clocked into register 1. So it is important to keep the location of the clock edge synchronized over the entire diagram. This is hard sometimes. One technique to use is to build a tree of clock distribution: The main clock generator drives a set of four gates, each of whose outputs fans out to four more gates, whose 16 outputs each drive a section of the machine s clock. Try to keep wire lengths the same and to keep the clock runs as short as possible. Loads should be distributed evenly across all of the clocks available. With the logic family you are using in the course, clock skew should not be a major problem. You should be aware of its existence, though. Gating the Clock Don t do it. This is one of the most common problems novice digital designers encounter. Assume you are using positive edge triggered logic. Your clock can be thought of then as a low asserted signal. If you were to gate if off, you would use a positive OR gate to hold it high. Unfortunately, you need to start holding it high BEFORE it goes LOW. Gating it off after the clock goes low will actually just make a positive transition of the clock occur slightly early. Clock skews can also arise from being careless in gating clocks. If you absolutely can t contain yourself, and must gate a clock, use a clock from before the final clock fanout to compensate for the gate delay in the gating circuit. Gating of a clock can almost always be avoided by using registers with a clock enable input. Counter and shift register parts can also be forced into the do nothing state easily. RAM Write Pulses Write pulses for static memories are likely to be one of the few areas where you do need to gate a clock-like waveform with a logic signal. Since the RAM parts available act as latches, it is important that the signals used to gate the write enable off, and that the address in

6.111 How to Make Your 6.111 Project Work 6 put and clock enable signals arrive early enough during the clock enable cycle not to cause glitches in the RAM functioning. To help you meet the Thold requirement of some parts, it is often helpful if your timing generator terminates the write pulse slightly prior to the rising edge of the main clock, assuring an adequate Thold. You can often make the clock signal of a design have a short enough Tlow such that it can be used as both the clock edge for registers and as the write-enable for RAM parts. Thold for the RAM address and data lines is sometimes a problem with this strategy, however. Synchronizer Errors Whenever you clock a signal which is asynchronous with the clocking waveform, there is a probability of producing a meta-stable state in the clocked flip-flop. For low-frequency clocks the probability of this meta-stable behavior is low. For LS flip-flops, a flip-flop output will have either set or not set by about 200 ns after the clock edge with very high probability. If you are designing a system which depends on synchronizing external signals faster than this, consider using a 74AS74 flip-flop as the synchronizer, since it is much faster than the LS parts. Testing Strategies You should be able to help yourself considerably in the testing of your project if you include in the design a means of controlling all of the finite-state machines. This means that you should be able to start the machine in a known state, preferably in any state, so that you can check out subroutines individually. You should be able to single step the machine to track down incorrect behavior. Making the machine loop at full speed doing some repetitive task is also a helpful debugging strategy, since you can then use a scope to examine the timing of the device directly. Those of you working with TV monitors will find that the monitor itself is a good debugging tool. Driving High Current Devices Those of you working with stepping motors and other high power devices should take care in the power/ground routing of motor power. The motor should be driven with a power supply other than the logic supply, and here, despite what I said above, you should worry about ground loops. Make the ground pin of the driver parts the common point for the motor and logic grounds, and otherwise strictly segregate them. You should use power diodes as flyback protection across your motor windings. A 1N4001 would do nicely. by Tom Knight November 6, 1983 Printed March 11, 2004 (#19)