TABLE OF CONTENTS Acknowledgments Introduction Objectives The Digital Kit 1. Prototyping board 2. Power Supply 3. LEDs 4. Switches 5. 7-Segment Display 6. Digital Clocks Laboratory Exercises 0. Discrete Gates 1. Logic Gates a. Basic Logic Gates b. Logic Gates Applications 2. Digital Meets Analog Lab Exercise 3. Full-Adder & Full-Subtractor a. Construction of Full-Adder b. Construction of Full-Subtractor 4. Decoders a. Basic Decoders b. Decoder Applications 5. Multiplexer 6. PLD 7. Sequential Circuit 8. Counters 9. Shift Registers 10. Mini-Projects a. Thunderbird Taillights b. Lamp Ping-Pong c. Other Proposal 11. IC Symbols & Pin-outs ACKNOWLEDGMENTS The laboratory exercises contained within this document have evolved from a set of exercises that have been taken from the Digital Design System Laboratory Manual 2005. Helpful comments have been made by Mr. Jose Claro Monje and Dr. Rosula Reyes who have used the experiments in their teaching of Digital Logic Design and Switching Theory. INTRODUCTION The goal of this experiment manual is to introduce the fundamentals of digital electronic components (basic gates, decoders, multiplexers, flip-flops, counters, shift registers) in a manner suitable for Engineering students. Breadboard prototyping will be performed to actualize digital circuits. Hopefully, this manual can serve as a systematic guide to “handson” experience with digital electronic concepts and devices taught in the lecture course. OBJECTIVES The course will provide the student with a firm foundation of the principles of digital design by building a working knowledge of digital electronics and its applications. By the end of the semester, the student shall have acquired the basic skill in using the digital design kit; ● Use of prototyping board. ● Use of basic gates, decoders and multiplexers. ● Use of PLDs ● Use of flip-flops, counters and shift registers. ● Use of logic probe. The Digital Kit 1. Prototyping/ B readboard The breadboard is used to create a circuit without the need for soldering circuit elements together. The upper and lower halves of the breadboard contain 63 vertical rows of 5 interconnected contacts. There are also 4 long horizontal rows of connectors (10 groups of 5 contacts each) along the upper and lower edges. These long rows of connectors are referred to as power bus strips because they will be connected to the power supplies to provide power connections over the entirety of the breadboard. This breadboard socket is designed to accept integrated circuits, most common wire terminal components, and wire interconnections. 2. POWER SUPPLY This segme nt of the board can prov i d e a voltage of +5 V and a max i m u m current of 1 A m p e re. The 220 mains voltage is stepped do w n, rectif ie d, filtered and regulated by a +12 V regulat o r that suppl ies the po we r t o the short circuit protect i o n branc h of this segme nt. The +12 V is further regulated to prov i d e the +5 V that is availab le for use in whatev er circu i t that is to be tested. Po wer is turned on by first mo v i n g the swit c h to the 'O N' positi o n and pressing the 'RES E T / PUS H O N' button. This button is used for turni n g on the board after a short circ ui t has happened. 3. LEDs There are eight LE D s availab le. These are activated by suppl y i n g a T T L high to each of the correspo n d i n g term i n a l bloc k pins. 4. SWITCHES There are eight available switc hes in the kit, six (Sw5 to Sw0) of wh ic h are ordinar y toggle switc hes whi le the two others are debou nc e d switc hes (Sw6 & Sw7). The com m o n node of the single pole doub le thro w switc hes is connected to the wire holder wh i le the other two nodes to groun d and Vc c. 5. 7-SEGMENT DISPLAY The two seven segment displays are driven by 7447 B C D- to-seven- segme nt display decoder/dri v ers. The said driver has 4 inputs correspo n d i n g to the binary code of the desired deci m a l output on the seven segme nt display. Inputs not connected to any value are considered as 'floati n g' HI G H , thus causing the display to turn off when not in use. 6. DIGITAL CLOCKS T w o fixed cloc ks are prov i d e d by the board, one havin g a frequenc y of 100 H z and the other 1 k H z. The frequen c y of cloc k 1 (CL K 1) can be changed by putti n g across capacit ors in C1 and – . A capacit or value of 47 uF wil l decrease the frequenc y to aroun d 2 Hz. The frequenc y of cloc k 2 (CL K 2) can be changed by puttin g across capacit o rs in C2 and – . Laboratory Exercises 0. Discrete Gates This laboratory exercise aims to relate logic gates with discrete electronic elements such as diodes and transistors. By using a truth table, determine the logic function performed by the circuits below. Assume that a voltage of 0 to 0.8V is a logic LOW and a voltage of 2.4V to 5V is a logic HIGH. Explain why you are getting the output voltage levels for each circuit. Are these the expected values for the given circuit? 1. LOGIC GATES Objective To fam i l i a r i z e the students wit h the use of T T L (transistor- transistor logic) G A T E S and the truth table. Logic Gates A logic gate perf or m s a logical operati o n on one or more logic inputs and prod uc es a single logi c output. Since the output is also a logic- level value, an output of one logic gate can be connected to the input of one or more other logic gates. The logic nor m a l l y perfor m e d is Boo l ean logic and is most com m o n l y foun d in digital circu its The most com m o n logic operatio ns are N O T, O R and A N D . NOT This logic operati o n outputs the com p l i m e n t of the operand. For exam p l e, N O T 1 = 0 and N O T 0 = 1. The sym b o ls used to represent the N O T operati o n are the tilde “~” before the operand ( ), a min us sign “ “ before the operand ( ), a pri m e sym b o l “ “ ( ) after the operand or a bar over the operand ( ) Exa m p l es: or or OR This logic operat io n outputs 1 if at least one operand is equal to 1. For exa m p l e, 1 O R 0 O R 1 O R 0 = 1. The sym b o l used to represent the O R operat io n is a plus sign “ ” bet ween operands ( ). Exa m p l e: 1 AND This logic operati o n outputs 1 if and only if all operands are equal to 1. For exam p l e, 1 A N D 0 A N D 1 A N D 1 = 0. The sym b o ls used to represent the A N D operatio n are the ampersan d “ ” or the dot prod uc t “٠” bet wee n operands ( ). Exa m p l e: or Truth tables A truth table is a table that describes the behav i o r of a logic gate. It lists the value of the output for every possible com b i n a t i o n of the inputs. Table 1 sho ws the truth table for a N O T operati o n, Table 2 sho ws the truth table for a two- input A N D operatio n and table 3 sho ws the truth table for a two- input OR operati o n. Table 1. NOT, AN D and OR Truth Tables A NOT (A) 0 1 1 0 A B A AND B 0 0 0 0 1 0 1 0 0 1 1 1 A B A OR B 0 0 0 0 1 1 1 0 1 1 1 1 Logic Symbol a. Basic Logic Gate Exercise The logic gates that we will use are integrated chips (ICs) that use transistors to perform logical operations, thus they are called transistor-transistor logic (TTL) ICs. The ICs that you will be using are quad 2-input logic gates; there are four logic gate units in each IC taking in two separate inputs each. Each group will be provided with two of the following ICs: 74LS00, 74LS02, 74LS08, and 74LS32. These are the AND, OR, NAND (NOT AND) and NOR (NOT OR) quad gates (not respectively or not necessarily in that order). The pin assignments are shown below: Note: 1A, 1B are the inputs and 1Y is the output for the first logic gate in the IC; 2A, 2B are the inputs and 2Y is the output for the second logic gate in the IC; and so on... Vcc is the supply voltage of the IC. For TTL, Vcc should be +5V ± 5% ,i.e., 4.75V to 5.25V. GND is the ground pin or 0V. Two volts (2V) to five volts (5V) applied to an input of the IC is considered a high signal (logic 1). While 0V to 0.8V is considered a low signal (logic 0). Greater than 0.8V and lower than 2V is considered undefined. This voltage requirement is for TTL but for other low-powered ICs like LVTTL, LVCMOS, the voltage requirements for a high signal is lower. You can use logic switches SW0 and SW1 as your inputs. Use the logic probe or LED0 for the output, construct the truth table for each of the ICs as shown below: Exhaust all possible combinations of inputs and check the outputs of each. SW0 = 1A SW1 = 1B 0 0 0 1 1 0 1 1 1Y of 7400 Based on your truth table, the logic function of 7400 is ________________ SW0 = 1A SW1 = 1B 0 0 0 1 1 0 1 1 1Y of 7402 Based on your truth table, the logic function of 7402 is ________________ SW0 = 1A SW1 = 1B 0 0 0 1 1 0 1 1 1Y of 7408 Based on your truth table, the logic function of 7408 is ________________ SW0 = 1A SW1 = 1B 0 0 0 1 1 0 1 1 1Y of 7432 Based on your truth table, the logic function of 7432 is ________________ b. Application 1. The truth table below implements a 3-bit majority one circuit i.e. the output is 1 when the number of 1s in the input is a majority ( 2 or more 1s). Implement the truth table given below. A B C OUT 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Write the equation for the 3-bit majority one circuit (OUT). Draw the circuit diagram. Construct the circuit using AND-OR-NOT gates. FYI, The NOT gate or inverter IC is 74LS04, shown below. 2. A house alarm system has three inputs – alarm enable (E), door intruder (D) sensor and window intruder (W) sensor. The alarm (A) will turn on if the alarm is enabled (E) and the door intruder sensor (D) or window intruder sensor (W) is activated. The alarm will not be activated, if the alarm is not enabled even if there is an intruder coming from the door or the window. Alarm enable is ON when E = 1. The door intruder sensor is ACTIVATED when D = 0. The window intruder sensor is ACTIVATED when W = 0. Construct a truth table for the house alarm system. Using the ICs provided, construct such an alarm system. Write the equation for the alarm system (A). Draw the circuit or schematic diagram of your designed alarm system. You may ask for additional ICs from your instructor like the 74LS04, which is a NOT gate or an inverter. 3. Basic Combinational Circuit Lab. Exercise AND-OR-NOT. This laboratory exercise requires the design of a simple combinational circuits using AND-OR-NOT gates (i.e. 74xx08, 74xx32 & 74xx04). This exercise aims to familiarize the students in the use of logic gates as well as implementing circuits from a truth table. Group 1 wxyz 0000 0001 0010 0011 0100 0101 0110 0111 f 1 1 1 1 0 1 1 1 wxyz 1000 1001 1010 1011 1100 1101 1110 1111 f 0 0 0 0 0 0 1 1 wxyz 0000 0001 0010 0011 0100 0101 0110 0111 f 1 0 1 1 0 0 0 1 wxyz 1000 1001 1010 1011 1100 1101 1110 1111 f 1 1 1 1 0 0 0 1 Group 2 Group 3 wxyz 0000 0001 0010 0011 0100 0101 0110 0111 f 0 0 1 0 0 0 1 1 wxyz 1000 1001 1010 1011 1100 1101 1110 1111 f 1 1 1 1 0 0 1 1 wxyz 0000 0001 0010 0011 0100 0101 0110 0111 f 1 0 1 0 0 1 0 1 wxyz 1000 1001 1010 1011 1100 1101 1110 1111 f 1 0 1 1 0 1 1 1 wxyz 0000 0001 0010 0011 0100 0101 0110 0111 f 1 0 0 0 1 1 1 1 wxyz 1000 1001 1010 1011 1100 1101 1110 1111 f 1 0 0 0 1 1 0 0 Group 4 Group 5 Group 6 wxyz 0000 0001 0010 0011 0100 0101 0110 0111 f 1 1 1 1 0 0 0 1 wxyz 1000 1001 1010 1011 1100 1101 1110 1111 f 0 0 0 1 1 1 1 1 wxyz 0000 0001 0010 0011 0100 0101 0110 0111 f 0 1 0 0 1 1 1 1 wxyz 1000 1001 1010 1011 1100 1101 1110 1111 f 0 1 0 0 0 1 0 1 wxyz 0000 0001 0010 0011 0100 0101 0110 0111 f 0 1 0 1 1 0 1 0 wxyz 1000 1001 1010 1011 1100 1101 1110 1111 f 0 1 1 1 1 0 1 1 Group 7 Group 8 4. NAND Gates. This laboratory exercise requires the design of a simple combinational circuits using NAND gates (i.e. 74xx00, 74xx10 or 74xx20). This exercise provides some insight into intuitive minimization at the package level (number of ICs used) rather than the gate level. set A (assigned to groups 1 & 8) wxyz 0000 0001 0010 0011 0100 0101 0110 0111 f 0 0 0 1 1 1 1 1 wxyz 1000 1001 1010 1011 1100 1101 1110 1111 f 0 0 0 1 0 0 1 1 f 0 0 0 1 0 0 1 1 wxyz 1000 1001 1010 1011 1100 1101 1110 1111 f 1 1 1 1 0 0 1 1 set B (assigned to groups 2 & 7) wxyz 0000 0001 0010 0011 0100 0101 0110 0111 set C (assigned to groups 3 & 7) wxyz 0000 0001 0010 0011 0100 0101 0110 0111 f 0 1 0 1 0 1 0 1 wxyz 1000 1001 1010 1011 1100 1101 1110 1111 f 0 0 0 1 1 1 1 1 f 0 0 0 1 0 0 0 1 wxyz 1000 1001 1010 1011 1100 1101 1110 1111 f 1 1 1 1 0 1 0 1 set B (assigned to groups 4 & 5) wxyz 0000 0001 0010 0011 0100 0101 0110 0111 Paper Design (to be included in the lab report). Design and implement a 4-bit majority-1 circuit using NAND gates (i.e. 74xx00, 74xx10 or 74xx20). A majority-1 circuit is a circuit that outputs a 1 when three or four of the inputs are1. 2. Digital Meets Analog Lab Exercise Seat Belt Warning System. In a certain seat belt warning system, a warning indicator is activated (turned on, high logic or logic 1) when at least one of the car passenger is not wearing the seat belt. Design a circuit (no need to simplify, use AND-OR-NOT gates) that will show the seat belt warning system output. Use this digital seat belt warning system output to control a buzzer. Note that the digital output might not be able to drive the buzzer so you have to use a transistor driver or an amplifier circuit. The system will work regardless of the number of passengers inside the car. Assume: car is 4-seater, each seat has a sensor (S1, S2, S3, S4) and each seat belt has a sensor (B1, B2, B3, B4 corresponding to each seat sensor). Seat sensor is high (1) when it is occupied else low (0). Seat belt sensor is high when it is being used else it is low. Light Sensor with Motor Control. You are to design a light sensor input system and motor control circuit. It consists of three input variables and two output variables. The variables are described as follows: (3) selectors and (2) controls. The selectors (S2, S1 and S0) are input signals coming from the light sensors (L1 and L0) and a switch, S1 = 1 when L1 is activated (light sensor ON) and S0 = 1 when L0 is activated (light sensor ON), S2 = 1 when the switch is ON. The control variables (C1 and C0) are output signals to the analog circuit that controls the DC motors (M1 and M0). The selector inputs (S2, S1 and S0) determine the motor functions (C1, C0) as follows: S2 S1 S0 C1C0 function description 0 0 0 1 1 forward : both motors are ON 0 0 1 0 1 turn right : M1 is ON, M0 is OFF 0 1 0 1 0 turn left : M1 is OFF, M0 is ON 0 1 1 1 1 forward : both motors are ON 1 X X 0 0 stop : both motors are OFF Note: In the absence of DC motors, a tungsten lamp maybe used to simulate the activation of the motor. 3. Full-adder & full-subtractor Objective: To fam i l ia r i z e the students wit h the construc t i o n and vario us imp le m e n t at i o n s of A d de r and Subtract o r circ uits. Half-Adder A half-Adder is a com b i n at i o n a l logic circuit that is able to perf or m the addit i o n of two bits. It takes two input signals, X and Y, adds them and outputs a sum (S) and carry (C). This ad diti o n consists of four possible com b i n a t i o ns of inputs and outputs, namel y, 0+0=0, 0+1 = 1, 1+0= 1 and 1+ 1 = 1 0. The first three operatio ns have a sum whose lengt h is only 1 bit but the fourt h, has a sum that consists of two digits. The carry is the higher signi f i c a n t bit of the two digits in the fourt h possible com b i n at i o n. The truth table belo w is deri ve d fro m this descript i o n. INPUT OUTPUT X Y C(Carry) 0 0 0 0 1 0 1 0 0 1 1 1 S(Sum) 0 1 1 0 The Boo lean expressio n for each output can be deri ve d fro m the truth table: The two im p le m e n t a t i o n s sho w n belo w of the half- adder circ uit are the sum of produ c ts and produ c t of sums notatio n taken fro m the truth table above. Sum of Produ c ts Produ c t of Sums Note that S is the exclus i v e- O R of X and Y. The com p le m e n t of S is the equiv ale n c e (exclu sive-N O R) of x and y. Sum of Produ c ts Produc t of Sums The half- adder belo w is im p le m e n t e d using an exclusi v e- O R (XO R) and an A N D gate. a. Construct a Full-Adder Circuit. A full-adder is a combinational circuit that forms the arithmetic sum of three input bits. It consists of three inputs and two outputs. Two of the input variables denoted by x and y, represent the two significant bits to be added. The third input, z, represents the carry from the previous lower significant position. Two outputs are necessary because the arithmetic sum of three binary digits ranges in value from 0 to 3, and binary 2 or 3 needs two digits. The two outputs are designated by the symbols S for sum and C for carry. The binary variable S gives the value of the least significant bit of the sum. The binary variable C gives the output carry. (C,S = X + Y + Z). The partial truth table of the full-adder is given below. Kindly complete the table then implement the circuit. If you can, implement S and C using only XOR, OR and AND gates. X Y Z C S 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 Note: Don’t dismantle the circuit, you might need it in the succeeding exercise. Shown below is an XOR gate IC, 74LS86. b. Construction of a Full-Subtractor Circuit A full-subtractor is a combinational circuit that performs a subtraction between two bits, taking into consideration that a 1 may have been borrowed by a lower significant stage. This circuit has three inputs and two outputs. The three inputs, x, y and z, denote the minuend, subtrahend and previous borrow, respectively. The two outputs, D and B, represent the difference and the output borrow, respectively. (B,D = X - Y - Z). The partial truth table of the full-subtractor is given below. Kindly complete the table then implement the circuit. If you can, implement D and B using the circuit constructed above and an INVERTER. X Y Z B D 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 4. Decoders Objective To fam i l ia r i z e the students wit h the use and applicat i o n of decoders in digital circ uits. Decoders A decoder is a mult i p l e- input, mult i p l e- output logic circu it that converts coded inputs into coded outputs, where the input and output codes are dif fere nt such as n-to-2 n Binar y Coded Deci m a l (BC D) decoders. Dec o ders have an enable pin, wh ic h needs to be turned on for the decoder to funct i o n, other w i s e its outputs assume a single "disabled" output code wor d. Deco d i n g is necessary in applicat i o ns such as data mult i p l e x i n g, 7 segment display and me m o r y address decod i n g. Let us consider n-to-2 n type binary decoders. These decoders are com b i n a t i o n a l circ ui ts that convert binary inf or m a t i o n fro m 'n' nu m be r of coded inputs to a max i m u m nu m be r of 2 n uniq ue outputs. We say a maximum number of 2 n outputs because if the 'n' bit coded info r m a t i o n has unused bit com b i n at i o n s, the decoder wou l d have less than 2 n outputs. A v a i l a b le decoders are the 2-to-4 decoder (74xx 1 3 9), 3-to-8 decoder (74xx 1 3 8) and 4-to-16 decoder (74xx 1 54). W e can for m a 3-to-8 decoder fro m two 2-to-4 decoders (with enable signals). W e can for m a 4-to-16 decoder fro m two 3-to-8 decoders (with enable signals). Exa m p l e: A 2-to-4 Line Dec o der (without an enable line) Exa m p l e of T T L ICs (a) dual 2-to-4 decoders with enable (74LS139); (b) 3-to-8 decoder with enable lines (74LS138) Lab Exercise: a. For the 3-to-8 decoder IC (74LS138) verify that it does the following function as shown in the table below: IN IN G2B' G2A' IN IN IN IN OUT OUT OUT OUT OUT OUT OUT OUT G1 C B A Y0' Y1' Y2' Y3' Y4' Y5' Y6' Y7' X X 0 X X X 1 1 1 1 1 1 1 1 X 1 X X X X 1 1 1 1 1 1 1 1 1 X X X X X 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 Note: “X” means “don’t care”,i.e., may take the values of 0 or 1. Connect inputs G2B', G2A', G1, C, B and A to switches sw5, sw4, sw3, sw2, sw1 and sw0 respectively. Connect the outputs Y0', Y1', Y2', Y3', Y4', Y5', Y6' and Y7' to LED0 to LED7 respectively. IN IN G2B' G2A' IN IN IN IN OUT OUT OUT OUT OUT OUT OUT OUT G1 C B A Y0' Y1' Y2' Y3' Y4' Y5' Y6' Y7' X X 0 X X X X 1 X X X X 1 X X X X X 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 b. Application: 4-to-16 decoder. Implement the following truth table using 3-to-8 decoders (74xx138) and a 4-input NAND gate (74xx20). The inputs d, c, b and a are to be connected to sw3, sw2, sw1 and sw0 respectively. Output f is to be connected to LED0. set A (groups 1, 5 & 9) dcba 0000 0001 0010 0011 0100 0101 0110 0111 f 1 0 0 0 1 0 0 1 Cont. dcba 1000 1001 1010 1011 1100 1101 1110 1111 Cont. f 0 0 0 0 0 0 1 0 set B (groups 2, 6 & 10) dcba 0000 0001 0010 0011 0100 0101 0110 0111 set C (groups 3 & 7) dcba 0000 0001 0010 0011 0100 0101 0110 0111 f 0 1 0 0 0 0 1 0 Cont. dcba 1000 1001 1010 1011 1100 1101 1110 1111 Cont. f f 1 0 0 0 0 1 0 0 Cont. dcba 1000 1001 1010 1011 1100 1101 1110 1111 Cont. f f 0 0 1 0 0 0 1 0 Cont. dcba 1000 1001 1010 1011 1100 1101 1110 1111 Cont. f 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 set D (groups 4 & 8) dcba 0000 0001 0010 0011 0100 0101 0110 0111 0 0 0 0 1 0 0 1 Hint: Construct a 4-to-16 decoder with two 3-to-8 decoders (74LS138). 5. Multiplexers A digital multiplexer or mux is a device that performs multiplexing; it selects one of many digital input signals and outputs that into a single line. Example of 2-to-1 Multiplexer (symbol shown above) without an enable signal. Example of TTL ICs: (a) dual 4-to-1 multiplexer with enable (74LS153) and (b) 8-to-1 multiplexer with enable line (74LS151). Truth table for a 4-to-1 multiplexer: Selector Selector Strobe/Enab le Output Inverted Output C B G' Y W X X 1 0 1 0 0 0 C0 C0' 0 1 0 C1 C1' 1 0 0 C2 C2' 1 1 0 C3 C3' Application: Tail Lights. You are to configure two multiplexers (74xx151 or equivalent) into a tail light system. It consists of four input variables and two output variables. The four input variables are describe as follows: (1) blinker and (3) selectors. The blinker input is connected to the CLOCK output of the digital kit. Use an appropriate frequency setting (one where blinking of LEDs can be observed) for the CLOCK output. The blinker is used to make the outputs turn on and off (LEDs blink). The selector inputs (S2 = sw2, S1 = sw1 and S0 = sw0) determine the tail light functions as follows: S2 0 0 S1 0 0 S0 0 1 0 1 0 0 1 1 x 1 x function description do nothing : the output LEDs are at logic low turn right : the right output LED is blinking while the left output LED is at logic low. turn left : the left output LED is blinking while the right output LED is at logic low emergency : all output LEDs are blinking brake : all output LEDs are at logic high Where x means “don’t care” i.e. may take the values of 0 or 1. Note: For better output display, connect two LEDs per output i.e. two LEDs for left signal and two LEDs for right signal. 6. PL D We will be using a PAL/PALCE/GAL16V8A (PLD with 16 programmable pins, 8 of which are inputs and the other 8 as input/output). We will be using a PLD compiler. A sample template accepted by the compiler is as follows: Any line that starts with a bar ( | ) is considered as a compiler statement and any line that does not start with a bar ( | ) is considered as a remark or a comment. PLD Compiler Template A. Using Boolean equations | Device_name in: (input_variable_declaration), io: (i/o_var_declaration) | Boolean_equation B. Using Tables (Truth) | Device_name in: (input_variable_declaration), io: (i/o_var_declaration) | Table: input_var_list -> output_var_list | { all_possible_input_combination -> output } C. Example Implement using PLD. xyz 000 001 010 011 100 101 110 111 f 0 1 1 1 0 0 1 0 using K-map: f = yz' + x'z Using PAL/PALCE/GAL16V8A (say saved in file example.pld) sol'n #1 | GAL16V8A in: (x,y,z), io: (f) | f = (y & z' ) # (x' & z) sol'n #2 | GAL16V8A in: (x,y,z), io: (f) | table: x, y, z -> f | { 000b -> 0 | 001b -> 1 | 010b -> 1 | 011b -> 1 | 100b -> 0 | 101b -> 0 | 110b -> 1 | 111b -> 0 } sol'n #3 | GAL16V8A in: (x,y,z), io: (f) | table: x, y, z -> f | { 0 -> 0 | 1 -> 1 | 2 -> 1 | 3 -> 1 | 4 -> 0 | 5 -> 0 | 6 -> 1 | 7 -> 0 } D. Use of Compiler/Programmer The compiler and programmer is located in c:\pld. So, from drive c, do the following commands. c:\> cd pld c:\pld> pld example.pld The pld.exe compiler, if no errors are encountered, will generate three (3) other files namely *.lst, *.jed and *.vec files. These files are described as follows: example.lst -- contains the following original file the sum of product form of the equation or truth table pin assignments * fuse file (JEDEC format) example.jed -- contains the fuse file in JEDEC format that will be the input file of the PLD programmer example.vec -- the vector file containing the check vectors If there is an error the .lst file will tell you where the error occurred. * The pin assignment by default is as follows pin 1 is reserved for the clock pulse pin 2-9 for the inputs respectively pin 10 is ground (gnd) pin 11 is for flip-flop enable (not used at the moment) pin 19-12 for outputs respectively pin 20 is for Vcc (+5 V) After generating the .jed file, run the PLD programmer (wpld.exe). load the JEDEC file check whether the PLD is blank if not then bulk erase it then program the PLD You are all set (the default pin assignment will be 10 for gnd, 20 for Vcc, 2 for X, 3 for Y, 4 for Z and 19 for f). The Lab. Exercise 1. Binary-to-seven-segment decoder. You are to program your PLD into a binary to 7-segment decoder. The decoder is a combinational circuit that accepts 4-bit input and generates the appropriate outputs for selection of segments in a display indicator used for displaying the decimal digit or letter (we'll be using hexadecimal representation). The seven outputs of the decoder (a, b, c, d, e, f and g) select the corresponding segments in the display as shown below (a). (a) As a preliminary exercise, you are to find the pin assignment for the seven-segment LED display using only a +5V supply and a 1k ohm resistor. Have a nice day! 2. Tail Lights. You are to program a PLD into a tail light system. It consists of four input variables and two output variables. The four input variables are describe as follows: (1) blinker and (3) selectors. The blinker input is connected to the TTL output of the function generator. Use an appropriate frequency setting (one where blinking of LEDS can be observed) for the TTL output. The blinker is used to make the outputs turn on and off (LEDS blink). The selector inputs (S2, S1 and S0) determine the tail light functions as follows: S2 0 0 S1 0 0 S0 0 1 function description do nothing : the output LEDs are at logic low turn right : the right output LED is blinking while the left output LED is at logic 0 1 0 turn left 0 1 1 x 1 x brake emergency low. 3. : the left output LED is blinking while the right output LED is at logic low : all output LEDs are at logic high : all output LEDs are blinking Optional. To be assigned by your lab. instructor. 7. FLIP-FLOPS and SEQUENTIAL CIRCUIT Objective To fam i l ia r i z e the students wit h the construc t i o n and use of dif ferent types of flip- flops in digital circ uits. Flip-Flops A flip-flop maintai ns a binary state indef i n i t e l y (as long as the circuit is po were d) until it recei v es an input signal to switc h states. There are vario us types of flip flops that dif fer in the nu m b er of inputs they possess and ho w the inputs affect the binary state. Basic Flip-Flop/SR Latch The basic flip-flop or the SR latch has two inputs, the set(S) and reset(R). The sche mat i c for a basic flip- flop is sho w n belo w. A N O R gate outputs a logic lo w when there is at least one logi c high input. It only outputs logic high when all inputs are zero. W he n logic high is applied to the set(S) input and a logic lo w is fed to the reset(R) input, the botto m N O R gate outputs a logic lo w due to the logic high of the S input regardless of what is the value of the other input. The logic lo w output of the botto m N O R gate is then fed to the upper N O R gate, together wit h the logic lo w of the R input. The result i n g output fro m the S=1, R=0 input com b i n at i o n is Q= 1, Q’=0. The oppos ite happens when R= 1 and S=0, the result i n g output is Q=0 and Q’= 1. W he n Q= 1 and Q’=0, it is said to be in the set state and when Q=0 and Q’= 1, it is in the clear state. N A N D gates can also be used to construc t a basic flip- flop. Its dif f eren ce is that to acti vate the set mode, a 0 must be fed to the input S whi le input t i n g a 1 to the input R, oppos ite of the N O R im p le m e n t at i o n. Exercise For the N O R im p le m e n t at i o n of the basic flip- flop, do the com b i n at i o n of inputs S and R belo w, in order and record the output into the truth table. Con nec t inputs S and R to switc hes sw 1 and sw0 respect i v e l y. Con nec t outputs Q and Q’ to LE D 1 and LE D 0 respecti v e l y. Deter m i n e wh ic h com b i n at i o n of inputs should be avoided because of its outputs. S 1 0 0 0 1 R 0 0 1 0 1 Q 1 1 0 0 0 Q’ 0 0 1 1 0 RS Flip- Flop The RS flip-flop is a mod i f i e d basic flip- flop where an addit i o na l input contro ls when the states of the flip- flop change. The basic flip- flop changes states as soon as the inputs change wh i l e an RS flip- flop changes states at the next cloc k pulse. The truth table for the changi n g state of the Q output of the RS flip- flop is sho w n belo w. Q S R Q(t+1) 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 Indeter m i n a t e 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 Indeter m i n a t e W he re Q is the present state and Q(t+1) is the next state of the output. Note that whene v er S and R are both high, the next state is indeter m i n a t e because it places zeroes into the inputs of the basic flip- flop used and makes outputs Q and Q’ both high, whi c h is avoided because both must be com p le m e n t s of each other. Exercise Constr uc t an RS Flip- flop by addin g two more N A N D gates to the N A N D imp le m e n t a t i o n of the basic flip- flop circ uit. Con nec t the three input elements, CP(cloc k pulse), S(set) and R(reset) to the pulser, sw 1 and sw0 of the digital kit respecti v e l y. Con nec t outputs Q and Q’ to LE D 1 and LE D 0 respect i v e l y. Ma k e the pulser’s speed lo w enoug h to observe the cloc k pulse. The mo m e n t the cloc k pulse goes high, the logic high of either the S or R input shoul d be fed into the inputs of the basic flip- flop. Ver i f y that the cloc k contro ls the state change by observ i n g when the outputs change state. D Flip-Flop The D flip-flop addresses the proble m of the RS flip- flop about both inputs being 1 at the same time. The sole input, D is connected to the S input wh i le its inverted value is fed into the reset input of the RS flip- flop to ensure that only one input is high and the other, lo w at a ti me. If D is 1, the next state of the output Q goes to 1 and when D is 0, the next state of the output Q beco m es 0. Exercise Constr uc t the D flip- flop fro m the N A N D imp le m e n t a t i o n of the RS flip- flop. Co m p l e t e the truth table of the D flip- flop belo w. Q D Q(t+1) 0 0 0 1 0 1 0 1 0 1 1 1 JK Flip-Flop The JK flip- flop is another mod i f i c a t i o n of the RS flip- flop whi c h has its ow n way of deali ng wit h the RS flip- flop’s undesirab le input com b i n at i o n (when S= 1 and R= 1). The JK flip- flop has 2 inputs J and K, each A N D e d wit h the cloc k pulse and its correspo n d i n g N O R output. The sche m at i c for the JK flip- flop is sho w n belo w. Exercise Constr uc t the JK flip- flop circ uit. Observ e what happen when the inputs are J=1 and K = 1 . Co m p l e t e the truth table for the next state output belo w. Q J K Q(t+1) 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 T Flip-Flop The T flip- flop is a mod i f i c a t i o n of the JK flip- flop but it has only one input instead of two inputs that the JK flip- flop has. The next state is depende nt on the value of the input T. W h e n T=0, the next state output is retained but when T= 1, the next state output is the oppos ite of the present state. Q T Q(t+1) 0 0 0 0 1 1 1 0 1 1 1 0 Exercise Dra w and construc t the sche m at i c for the T flip- flop based on the infor m a t i o n you have gathered fro m the JK flip- flop and the descript i o n of the T flip- flop. Ver i f y your circu it using the T flip- flop’s truth table. SEQU E N T I A L CI R C U I T E X E R C I S E S Set 1/5/9 A. Design a counter using D flip-flops. The circuit counts 0-1-3-7-15-7-3-1-0-1-3-etc. a. give the state diagram & the transition table b. the expressions for the D inputs c. the expression for the output if any d. the logic diagram e. do the actual circuit implementation -------------------------------------------------------------------------------------------------------------Set 2/6/10 C. Design a counter using D flip-flops. The circuit counts 0-8-12-14-15-14-12-8-0-8-12etc. a. give the state diagram & the transition table b. the expressions for the D inputs c. the expression for the output if any d. the logic diagram e. do the actual circuit implementation -------------------------------------------------------------------------------------------------------------Set 3/7/11 E. Design a counter using D flip-flops. The circuit counts 0-1-3-7-15-0-1-3-7-15-0-1-etc. a. give the state diagram & the transition table b. the expressions for the D inputs c. the expression for the output if any d. the logic diagram e. do the actual circuit implementation -------------------------------------------------------------------------------------------------------------Set 4/8/12 F. Design a counter using D flip-flops. The circuit counts 0-8-12-14-15-0-8-12-14-15-0-8etc. a. give the state diagram & the transition table b. the expressions for the D inputs c. the expression for the output if any d. the logic diagram e. do the actual circuit implementation FYI, The D-flip-flop IC is 74LS74, shown below. PRE' CLR' CLK D Q Q' 0 1 X X 1 0 1 0 X X 0 1 0 0 X X 1 1 1 1 POS 0 0 1 1 1 POS 1 1 0 1 1 0 X Q0 Q'0 LEGEND: 0 = logic low 1 = logic high X = don't care POS = positive edge of clock, low to high transition. Q0, Q'0, means previous values of Q i.e. retain old value (HOLD) 8. COUNTERS Construct a digital circuit that counts from 00 to 99 using two BCD counters (2 x 74LS190) and necessary gates. Use the 7-segment display of the digital design kit to show the counter output. Use the digital kit variable clock for the clock input of the counter. Use an appropriate frequency. You can connect CTEN' input to sw0 to make it an up or down counter. CTEN' D/U' CLK LOAD' A B C D QA QB QC QD RCO' MAX/ MIN 0 X X 0 a b c d a b c d * ** 0 1 POS 1 X X X X Count down Count down Count down Count down * ** 0 0 POS 1 X X X X Count up Count up Count up Count up * ** 1 X X X X X X X QA0 QB0 QC0 QD0 * ** LEGEND: 0 = logic low 1 = logic high X = don't care POS = positive edge of clock, low to high transition. QA0, QB0, QC0, QD0 means previous values of Q i.e. retain old value Count down means if previous count is 7, new count is 6 Count up means if previous count is 7, new count is 8 * = during the UP count MAX/MIN goes HIGH at count 9, during the DOWN count MAX/MIN goes HIGH at count 0. ** = during the UP count RCO goes LOW at count 9, during the DOWN count RCO goes LOW at count 0. 9. SHIFT REGISTER Construct a digital circuit that counts 0,1,3,7,15,31,63,127,255 then back to zero using two universal shift registers (2 x 74LS194) and necessary gates. Use the 8 LEDs to display output. Use the digital kit variable clock for the clock input. Use an appropriate frequency. MODE INPUTS CLR' S1 S0 CLK 0 X X 1 OUT- PUTS SL SR A B C D QA QB QC QD X X X X X X X 0 0 0 0 X X 0 X X X X X X QA0 QB0 QC0 QD0 1 1 1 POS X X a b c d a b c d 1 0 1 POS X 1 X X X X 1 Qan Qbn QCn 1 0 1 POS X 0 X X X X 0 Qan Qbn QCn 1 1 0 POS 1 X X X X X Qbn Qcn Qdn 1 1 1 0 POS 0 X X X X X QBn QCn Qdn 0 1 0 0 X X X X X X X QA0 QB0 QC0 QD0 LEGEND: 0 = logic low 1 = logic high X = don't care POS = positive edge of clock, low to high transition. QA0, QB0, QC0, QD0 means previous values of Q i.e. retain old value 10. Mini-PROJECTS :-) Possible Projects: a. T-BIRD TAILIGHTS The design of a circuit that emulates the operation of the taillights of a Thunderbird is carried out in this project. Lab. Exercise You are to design and build a circuit that controls the eight taillights on a Thunderbird. Use eight LEDs to simulate the eight taillights (four on each side of the car), and use two toggle switches (L & R) for the turn signals and another for brake (B). The turn signals and brake (L, R and B) determine the tail light functions as follows: B 0 0 L 0 0 R 0 1 function do nothing turn right 0 1 0 turn left 0 1 1 1 0 0 1 0 1 emergency brake brake + right turn 1 1 0 brake + left turn 1 1 1 parked light description the output LEDs are at logic low the 4 rightmost output LEDs should cycle as shown in figure 1 while the 4 leftmost output LEDs are at logic low. the 4 leftmost output LEDs should cycle as shown below while the 4 rightmost output LEDs are at logic low. all output LEDs are blinking all output LEDs are at logic high the 4 rightmost output LEDs should cycle as shown below while the 4 leftmost output LEDs are at logic high. the 4 leftmost output LEDs should cycle as shown below while the 4 rightmost output LEDs are at logic high. all output LEDs are on LED Pattern: Left turn: 0000 -> 0001 -> 0011 -> 0111 -> 1111 -> 0000 and so on Right turn: 0000 -> 1000 -> 1100 -> 1110 -> 1111 -> 0000 and so on 0 = LED off 1 = LED on b. LAMP PING- PONG The design of the Ping-Pong machine for two human players is carried out in this project. The machine is an amusing application of shift registers as well as an exposure to control logic. Design and construct a circuit that allows two people to play Ping-Pong using eight indicator lamps in a row to display the moving ball and using two push button (or toggle switches) for paddles. Use two cascaded 4-bit shift registers containing a single turned on LED to represent the ball. Use one push button (toggle switch) for the right-hand user, one for the left-hand user. The ball should be moved by a clock source that causes a shift once every quarter second or so. When the ball is moving to the right, the right-hand player must depress his push button (toggle switch) at the time the ball is in its rightmost position. (The circuit should be sensitive only to the leading edge of the push button signal or toggle switch). If the player pushes at the correct time, the direction of the shift should be reversed and the ball should move toward to the left. The left-hand player must then the volley by pressing his button (toggle switch) when the ball is in its leftmost position. If a player presses his push button (toggle switch) too soon or too late, the ball should disappear at the end. When this happens, the player who has scored should be able to restart the game (serve) by pressing his push button (toggle switch). OPTIONS A number of options can be provided to make the game more interesting. First of all, provide a number of different rates at which the ball can move. The rate of ball movement should be selected automatically as each player return a volley. The rate selected should be a function of how the volley is returned, perhaps with the fastest rate selected when the volley is returned at the last possible moment. To implement this feature you will need control circuitry to select a rate, a register to store the rate, and a counter to generate the different rates. A second option is to keep score. Each player’s score should be kept in a 4-bit counter. The 4-bit scores should be displayed in the lights whenever the ball is out of play. c. Student Proposal :-) 11. IC Symbol & Pin-Outs