Academia.eduAcademia.edu
- -- Digital Design -------' FOURTH EDITION M . Morris Mana Emeritus Professor of Computer Engineering California State University, Los Angeles Michael D. Ciletti Deportment of E1ectricol and Computer Engineering University of Colorado at Colorado Springs • Uppe r Sad dle River, NJ 07458 Contents ix Preface Digital Systems and Binary Numbers 2 1.1 Digital Systems , 1.2 1.3 1.4 Binary Nu mb ers Number-Base Conversions Oct al and Hexade cim al N um bers 3 5 8 1.5 Complements 9 1.6 Signed Binary Numb ers 14 1.7 Bina ry Codes 11 1.8 , .9 Binary Storage and Registers Binary Logic 25 28 Boolean Algebra and logic Gates 2. 1 2.2 2.3 2.4 Introdu ction BasicDefinition s Axiom atic Definition of Boolean Algebra 36 36 36 38 Basic Theorem s and Prop erties of Boolean Algeb ra 41 2.5 2.6 Boolean Functions Canonical an d Standard Forms 2.7 Other logic Operations 2.8 2.9 Digital Logic Gates In tegrated Circuits 44 48 55 57 63 iii lv 3 Contents 3.1 3.2 3.3 M 3.5 3.6 3.7 3.B 3.9 3.10 4 4. 10 4. 11 4. 12 Pou r-Variable Map Five-Variable Map Produ ct-of-Sums Simplification Don't-Care Conditions N ANn and NOR Implementation Oth er rwo-teveumptementeticns Exclusive-ORFunction Hardware Description Language 70 70 76 81 83 86 89 96 10' 106 Introduction 122 Combinational Circuits Analysis Procedure Design Procedure Binary Adder-Subtractor Decimal Adder Binary Multiplier Magnitude Comparator Decoders 122 '22 ' 23 126 130 139 142 ' 44 ' 46 Encoders '50 Multiplexers HDl Modelsof Combinational Circuits 152 159 182 Synchronous Sequential Log ic 5.1 5 .2 5 .3 5.4 5.5 5.6 5.7 5.B 6 totrcducuco The Map M ethod Combinational logic 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5 70 Gate -Level Minimization Introduction Sequential Circuits Storage Elements: latches Storage Elements: Flip-Flops Analysisof Clocked SequentialCircuits Synthesizable HDL Modelsof Sequential Circuits State Reduction and Assignment Design Procedure 182 182 184 '88 '95 207 221 22 5 242 Registers and Counters 6 .1 6.2 Registers Shift Registers 242 245 Contents 6.3 6.4 6.5 6.6 J 284 Introduction Random-Access M emory Memory Decoding Error Detection and Correction Read-Only Memory Programmable Logic Array Programmable Array Logic Sequential Programmable Devices 284 285 291 296 299 305 309 311 Design at th e Register Transfer Level 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 B.l l B.12 8.13 9 253 258 265 269 Memory and Programmable logic 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 8 Ripple Counters Sync hronous Counters Other Counters HDL for Registers and Counters Introduction Register Transfer level (RTl) Notation Reqister Transfer Level in HDl Algorithmic Stale Machines(ASMs) Desig n Example HDl Description of Desiqn Example Sequential Binary Multiplier Control Logic HDl Description of Binary Multiplier Design with M ultiplexers Race-Free Design latch-Free Design Other l anguage Features 334 33 4 334 336 345 352 361 371 376 382 390 40 1 403 404 415 Asyn chronous Sequential logic 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 Introduction Analysis Procedure Circu itswith la tches Design Procedure Reduction of Stateand Flow Tables Race-Free State Assignment Hazards Design Example v 415 4 17 425 433 439 446 452 457 vi 10 Contents Digital Integrated Circuits 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 11 471 413 477 48 1 484 493 4'5 4' 8 50 1 505 Laboratory Experiments with Standard ICs and FPGAs 11.1 11.2 11.3 11.4 11.5 11 .6 11.7 11.8 11.9 11.10 11.11 11. 12 11.13 11.14 11. 15 11.16 11.17 11.1 8 11.19 11.20 12 Introduction Special Characteri stics Bipolar -Transistor Characteristics RTl and DTL Circuits Transistor-Transistor l ogic Emitter-Coupled Logic Me tal-Ox id e Semiconductor Com plementary MOS CMOS Transm ission Gate Circuits Switch -Level Model ing with HDL 471 Introduction to Experiments Experiment 1: Binary and Decima l N um bers Experimen t 2: Dig ital logic Gates Experiment 3: Simplifica tion of Boolean Functions Experimen t 4: Combinatio nal Circuits Experimen t 5: Cod e Converters Experim ent 6: Design with Multiplexers Experim ent 7: Adders and Subt ractors Experimen t B: Flip-Flops Experim ent 9: Sequential Circuits Experim ent 10: Counters Experiment 11: Shift Registers Experimen t 12: Serial Addition Experiment 13: Memory Unit Experim ent 14: Lam p Handball Experime nt 15: Clock- Pulse Generator Experime nt 16: Parallel Adder and Accumulator Experiment 17: Binary Multiplier Experiment 1B: Asynchronous Sequential Circuits Verilog HDl Simulation Experime nts and Rapid Prototyping with FPGAs SI1 511 5 16 5" 520 522 524 526 527 530 532 5 34 535 538 53' 541 5 45 547 54' 553 553 SS9 Standard Graphic Symbols 12. 1 12.2 12.3 Rectangu lar-Shape Symbols Qualifying Symbols Dependency Notation 55' 56 2 564 Co ntents 12.4 12 .5 12.6 12.7 12.8 Symbols for Com bina tional Elements Symbols lor Flip-Flop s Symbo ls for Registers Symbols for Counters Symbol for RAM vii 566 56B 570 573 575 Answers to Se l e c t e d Problems 577 Index 597 Preface Digi tal electro nic ci rcuits An: the e ngines o f cell phon es. M PEG play ers, d igital cameras. cu mpe te rs. data serv e rs. personal d ig ital devices. CPS displ ays. an d many oth er con su mer prod . UCIS thai proces s and use in form atio n in a d igit al format. Th is boo k prese nts a basic treauue ut o f digi tal circuits and the fund am en tal co nce pts used in the ir de sign . It is wi lable for use as a lextho ok in an introd uctory co urse in an electrical en gineering. co mputer engi nee ring. or cornpurer scie nce curriculum . Eac h sig nifica nt adva nce in ind ustry practice ullima tcl y wor ks its way into the e nginee ring curricu lum. Si nce the mid-1 9HO's. the use of computer -based des ign rool-, has transformed the el ect ron ics ind ustry wor ldw ide . Ap plica tion speci fic integrated circ uits (AS IC,,) are designed tod ay hy usi ng a hard ware de scri ption lan gua ge nI OL ). suc h as Verilog \lr V UOL, to write a be ha vio ra l model o f the circuit's functio nalit y. and then ..ynthes il.ing thllt de scrip tio n into a hard war e reu lizution in a part icu lar tec hno logy. e.g.. Ct\.10S integrated ci rcuits o r field progra mma ble ga te arrJ.ys ( FPGA...). No longer a novehy, these design too ls arc nnw readily ava ila ble to universities. a nd are mig rat ing in a strategic wa y from grad uate lev el curric u la into unde rgrad uate co urses. It is clear that HD Ls have an e~semi al. sig nific ant ro le in educat ing ou r future enginee rs. Le arn ing to design with an HO L is as impo n antm today's stude nts. we think. as osc illosco pes. bread board s. and logic anal yzers were to pre vio us ge nerations of engineers . so this ed ition o f the te xt ad ds more weight to the use o f hardware description lan guag e.. in designing digita l ci rcuits . We note that introd uci ng HDts in a firs t course in designi ng digi tal ci rcuit.. is nut intended to replace fu nda me ntal unders tand ing of the buildi ng bloc kv o f such ci rcuit"> or to elimina te a di <;cussion o f manual methods of de sign . It is still essential for a s tude nt to under stand how lu m JlI"u rt' w(Jrh . Th us. we retain a thoro ugh tre utmcnr o f com bina tio nal and seque ntiallogic devices. Manua l de..ign prac tices arc pre sented . and the ir results are compared with those obl:tineJ with a HDL· hased paradigm . wb .u we are pre~c n t ing . ho we ve r. is a shift in emphas is x Preface on how hardware iI designed, a shift that. we think. better prepares a student for a career in tcday's industry . ..... here HO L- ba ~ed desig n practices are prevalent. FLE X I B ILIT Y The sequence of topics in the text can accommoda te courses th:!t adhere to traditional. man ual-based. treatments of d igital desig n. COUf1;e5 that trea t desig n using an HD L, an d courses tha t arc in transition between or ble nd the two approaches. Because mod em synthes is too ls au tomatica lly perform logic minlmization. Karnaugh maps and related topics in op timization can be presented at the beginning of utrcatme m of digital design. or they can be presented after circu its and their appl ica tio ns are examined. designed . and simulated with an HDL. T he tex t incl udes both man ual and Hljl. chascd design examples. O ur end-of-c hapte r proble ms further fac ilitate this flexibility by crow-referencing problems that addres.sa trad itional ma nual desig n task with a co mpanion proble m that uses an HDL to accom plish the task. Additio nally. we link ma nual and HOL · based approaches by presenting anno tated res ults of simulatio ns in the text . in answers to selected pro blems at the end of the text . and in the sol utions man ual. WHAT 'S NEW ? Th e previous edition of this text recognized the impo rta nce of ha rdware descr iption languages in the design of digital circ uits. and incorporated ne w ma terial and examples introducing students to the Verilog langu age. as defin ed by IEEE Stan da rd IJM - 1995. This revision updates and ex pands that treatmen t by: • revis ing Hlj k -based examples to presentthe ANS I-C like sy ntax that was adop ted in the standards IEEE I3M- 2oo1 and IEEE 13M -2oo5 • ens uring that ali i rDL ex am ples conform to industry-acceptedpractices for mod ellin g digital circu its • provi ding a sys tema tic met hod ology for desig ning a darapath contro ller • prese nting selec ted exercises an d solu tio ns to end-of-chapter pro ble ms in Verilog 1995 and Veri log 200112005 sy ntax • introd ucing an importa nt des ig n too l - the algorit hmic slate machi ne and dara pat h (AS MDI chan • rev ising the end-of-c hap ter problems and ex panding the set o f prob lems by incl ud ing ov er 75 addi tiona l prob lems • prov idi ng students with full) ' developed answers to selec ted problems. includi ng sim ulauon resu lts • prov iding stude nts with a CO- RO M co ntaining simu lato r-ready HDL solutions of answe rs to se lecte d prob lems • expa nding the treatme nt o f prog rammable logic devices to incl ude FPG As Prefa ce xl re vivin g the solunonc manual an d web- based ma ler ial\ and ens uring tha t solutions of HO L· ba <.ed exercoev conform to ind ustry pracuccs fo r modelling with an HOI. • di..cu\sing and de monstrating the import ance of te"l plans for \''--rifying HDI. models of circuus • providi ng instru ctors with veri fied . simulalor -ready source cllde and tes t bcecbe, I'll.. all end-of chapter pruhlems ma ling al l fil!urt' \ . lab ks. and HD L examples a\'ailable (0 instru ct orv f(1f do\\. nltlddlOg in PDF format from the publ i~her incl ud ing \\.ilh the book a C O- RD ""! with tUltll"iab and simulalon. for the IEE E- I99 5 and IF.EE · .:!OOI S land,lI'lh of she Ve:riIO{! language In addi tion to the abo ve c:: nhancemenh. lhe text incorporate- more: gr4ph ical material to be lter serve kame....\\.be are orientedtowar d a gra ph ica l med ium . Annoeated graphical recuhs and e xplananonv of simulation' are prescnrcd m he lp uuoc m.. under-aand digital circ uits and to Ia cilucte classroom dtscu....inn" of them. Kam augh map' are presen ted with addi tional gra phlcv. DESIGN METHODOLOGY Th i" edition of lhe text extends lhe previous edition-s trcarr ncnr of sy nc hm mut-, fi nite ";tle r nachinc'>by prese nting a , ys lemi\ll\; mcthodology 1" '1' J e, igni ng a \ lille mach ine 10 cont rot the datapath of a d igi tal sys te m. Mor eov er, the fram ework in w hich lh i\ mmcrinl i, pre vented treat s the reali stic situation in whic h Ihe co ntroller use-, ,>igna ls fro m lhe datapalh. i.e .. the syste m has feedback. Th e met hodology i' app licab k to man ua l an d HD L-ba"Cd approaches to dc,>il!n. HDl -BA SED APPROACH II i.. not sufflciem for an intrcdecticn 10 HDL~ 10 dwell on lunguage synla.\ . We pre-em only lho-.c elemen ts of the \'eril o~ lan l!uill!e Ihal arc matched 10 the jeve l and scope uf !hi\> tex r. Al so . co rrect "yn la\ doe .. nol.l!uarantee thaI a mode l mecb a tu nctional vpecification or that il ca n be \y nthesil-ed into php ical ha rd...are . We introduce ,>luJenl'>10 a di...:ipliJK'd u-e of ind u\try.ba-.ed pra cti ces for \\.rilinj! mode l" to ens ure that a behavioral de'>t.-ripl ion can be synIke , ilCd in to ph y'"ica l har dwarc . and Ihill the behavior 01 thc 'y nthesized circuit will march that of the bcha' ioral dc scnplion . Failu re In follow Ihi" disc ipline ca n lead 10 sonware race con dition s in the HOI. mod ele o f -uc h mach ines. race cnml itio n, in the tevtbe nch used 10 \e rify' them . and a mi sm atch between Ihe re,ull.. of sim ulat ing. a be havioral mod el and it, syn the sized physical coc nterpcrt. S im ilarly. f;lilurc III abide by' inductry pract ice.. may lead 10 dc\i gn, thaI ..imulate co rrec tly. tlul \\.hil"h have hard ware Iarchev (hal ar e: introduced into the Je, i~ n acc ide ntally 3'> a consequence of the mod ellin g style used by the lIc ,>il!ner. Th e indu stry -based rnethed olcgy we prc cemIcads tn race-free und latc h-free de ~i gn s . If j" ir nport unr rha r stud ents learn and foll ow ind ust ry practic es in u"in!! HOL mod els . indepe nden t of whether a student' curric ulum ha s access to sy'nlhe,is tool s. xii Pr e fa ce V ER IFICATION In induSlJ)'. significant effort is expended 10 verity that the functionalit)' of a circuir is COlTeI:1. Yet given 10 veliflCalion in inU1XluetoryleXB on d igital design. where the focus is on design itself. and te~ling is perhaps viewed as a secondary undertaking. Our experience is thai this view can lead to premature declarations that "'the circuit worXs beauufully," Likewise. industry gains repeated returns on its investment in an H DL mode l by ensuring thaI it is readable. poruble and reusable. We demonstrate naming practices and the use ofparameters. We also peovide test benches for all of the solutions and exercises 10 (I ) verify the functionality of the circuit. (2) underscore the importance of thorough testing. and ( 3) mcodoce students to important concepts. suc h a, self-checking Ie \( benches. Ad vocatin g and illustrating the de\'c1opment of a r~sl ploll to guide the development of a test benc h. we meodoce them in the text a nd expand the m in the soleuons manua l and in die answers to selected problems at the e nd of the text nut much attention is HOl CONTE NT Th is ed itio n of the te xt update s lind e xpan ds its tre at me nt of the Ve ri log H ard w are Desc ri plion La nguage ( ~lD L) and ex ploi ts key e nha nce me nts available in IEEE S ta ndar d s 1364-200 I a nd 1364 -2005. We ha ve e nsu red that all ex amp les in the text and all an s we rs in th e solu tion ma nual confor m 10 accepted industry prac tic es fo r mod elin g d igit al hard ware . As in the previo us ed ition. HD L ma terial is inserted in separate sect ions so it ca n he covered or ski ppe d as desi red. doe s not di min is h treatment of man ua l-based desig n. a nd does not dic tate the J.('q ue nc e of prese ntat ion. The treatme nt is a t a leve l suitable fo r beg inning students th at are learni ng d igit al circui ts and a hard .....are descript ion language a r the same time. The text prepares st ude nts to wor-k on significant inde pe nde nt de~ign projects and to s uceed in a later course in computer architecture. Dig ita l circuits are introduced in Chaplcr.. I through 3 with an introduction 10 Verilog HDL in Section 3.10. Funher di"oCUssion of modeling wit h HD Ls occurs in Section ..l.12 following the of combtnauooat circuits. ~Iud) • Sequential circuits are covered in Chapters 5 and 6 with coere ...p onding HDL examples in Sections 5.6 and 6.6 . • The HD L description of memory is presented in Section 7.2. • The RTL sy mbols use d in Verilog a re irurcduced in Section...8.3. • Examples of RTL a nd structural mode ls in vernog are provided in Sections 8.6 and 8.9 . C ha pte r 8 also presents a ne w, com pre hensive tre atme nt of HD L· bascd de sign of a datapath co ntroll e r. Sect io n 10.10 covers s w itch- leve l modeling co rres pon ding to C M O S circuits. Sec tio n 11.20 sup ple me nts the ha rdware e xpe rim e nt s of C ha pte r I I with HDL e xperime nts. Now the circuits des ig ned in the la bo ratory ca n be c hec ked by mod eli ng the m in Verilog and simulating their behavio r. Then they can be synthcvized and implemented with an FPGA on a prctoty ping board. Pre face ",iii HDL SIMULATORS The CD-R01\1 in the bad. o f the book con tai ns the Verilog HDL source cod e file s for the ex amples in the book and two vimu taror s provided by Sy na ptiC AD . The first simulator i\ veril.ogger Pro.a traditional Verilog simulator that can he used to simulate the Hnt. exempie -, in the hook and to veri fy the so lutions of HDL problems. Th is ..imula tor accepts the sy nta x o f the IEEE - I99 5 Standard and will he usefu l 10 those who ha ve legacy models. As an interactive simu lator. Verilogger Extreme. acce pts the s) nla., o fIEEE -:!OOI as well as lEEE· 1995. allowing the design er to simulate an d analyze design ideas before a co mp lete simulation mode l or schem atic is available. Th is technolog y is part icularly useful for stude nts. bec ause they can quickly ent er Boo lean and D nip-flo p or larch input equ atio ns to check eq uiv ale ncy or 10 ClI perirnenr with flip -flops and lat ch designs. INSTRUCTOR RESOURC ES Instructo rs can download the following classroom -ready reso urces from the pub lish er (www. pre nhall.co mlma no): • Sour ce code and tel,l benches for all Veri log HDL examp les in the lest • All figur es and table s in the te xt • Sour ce code for all HD t. mod els in the solutio ns ma nual A solution manu al in typed hard copy form at with gra phics. suirable for clue-room presentatio n. will atso be provided instru ctors. CHAPTER SUMMARY The fo llowi ng is a brief summary of the topics that are cove red in eac h cha pter. C ha pter I pre sents the variou s binary sys tems suitable for rep re-entin g ie forrmuion in digital sys tems. Th e bin ary num ber sys tem is ex plained and binary code s are illustra ted , Exa mples arc gi ven for addition an d suhrrucno n of signed bin ary num bers and dec ima l numbe rs in BCD C ha pter 2 introd uces the hu ~ ic postulates of Boolean alge hrJ. and show, the co rre lation betwe en Boolean expr essions and their corr es po nding logic dia gram s. All possible logic opcrJtlon s fo r two variables are inves tigated and from that. the mos t usefullogic ga les used in thc design of d igital syst e ms are determined. The cha rac teristics o f integ rated e i r~'u it gates arc mention ed in this chapter bUI a more detailed analysis of there the electronic circ uits of the gates ilt don e in Ch ap ter 10. C ha pter J cove rs the map method for simplifyi ng Boolean exp ress ions , The map met hod is also used to simplify digital c ircuits construc ted with AND ·OR , N A~ D. or NO R gates. All oth er powiblc two -lev el gate circuits are considere d and their met hod of impleme ntatio n is ex plained . verilo g HDL is introduced toget he r wi th simple gat e-level modelin g e lluillples. C h:tpte r ~ \lutline, the form al procedu res for the anal ysis and design o f co mbinatio nal circuits. Som e basic compo nents u,cd in the design o f digit al 'y,tems. suc h as adders and cod e xlv Preface conveners. are introdu ced as design examples. Frequently used dig ital logic funcuon, such as para llel adders and subtractors . decoders. encoders. and multiple xers are explained . and their use in the design of combinational circui ts is illustrated. HDL examples are given in the gatelevel. dataflow, and behav ioral modeling 10show the alternative ways avai lable for describing combinational circuits in Verilog B DL. The procedure for writing a simple test bench to provide stimulus to an HDL design is presented. Chap ter 5 outlines the formal procedures for the analy sis and de sign of clocked (synchronous) sequential circuits. The gate structure of several types of flip-flop s is presented rogcrher with a discussion on the difference between level and edge triggering. Specifi c examples are used to show the derivation of the state table and state d iagram when analyzing a sequential circ uit. A number of design examples are pre sented with emphasis on sequential circuits that use D.type flip-flops. Behavioral modeli ng in Verilog HDL for sequential circui ts is e xplained. HDL Examples are given to illustrate Mealy and Moore models of sequential circ uits. Chapter 6 deals with various sequential circuits components such as registers, shift registers, and counters. These d igital components are the basic building blocks from which more complex digital systems arc constructed . HDL descriptions of shift registers and counter arc presented . C hapter 7 deals with random acce ss memory (RA M) and programmable logic devices. Memory decoding and error correction schemes are discussed . Com binat ional and sequen tial programmable devices are presented such as ROMs. PLAs. PALs. CPLDs. and FPGAs. Ch ap ter 8 deal s with the register tran sfer level (RTL ) representation of digital systems . The algorithmic state machine (AS M) chan is introduced. A numbe r of examples demo nstrate the use of the ASM chan. ASMD chan, RTL represe ntation, and HDL description in the design of digital systems. The desi gn of a finite stale machine to control a datapath is presented in detail, inclUding the realistic situation in wh ich status signals from the datapath are used by the slate machine that controls it. This chapter is the most important chapter in the book as it provides the studen t with a systematic approach to more advanced de sign projects. Chapter 'J present s formal procedures for the analysis and design of asynchron ous scq uential circuits. Methods are outl ined to show how an asynchronous sequential ci rcuit can be imp lemented as a combinational circuit with feedback. An alternate implemen tation is also described that uses SR latches as the storage elements in asynchron ous sequential circu its. Chapte r 10 presents the most common integrated circuit digital logic families. The electron ic circuits of the common gate in each family arc analyzed using electri cal circuit theo ry. A basic knowledge of electronic circuits is nece ssary to fully unders tand the material in this chapter. Examples of Verilog switch-level description s demonstrate the abi lity to simulate circu its constructed with ~IOS and CMOS transistors. Chapte r II outlin es experiments thai can be performed in the laboratory with hardware that is readily available commercially. The operation of the integrated circuits used in the e xpcrimcms is explained by referri ng to diagram s of similar co mponents introduced in prev ious chapters. Each experiment is presente d Informally and the student is expected to produce the c ircuit diagram and formulate a procedure for chec king the ope ration of the circui t in the laboratory, The [ast section supplements the experiments with co rrespo nding HOI. expcrirncms. Instead of. or in addition 10, the hardware construction, the student can use the Verilog HOL software provided on the C D- RO ~1 to simulate and verify the design. Cha pte r 12 presen ts the standard graphic symbo ls for logic funct ion s recommended b)' an ANS I/ IEEE Sta ndard . T hese graphic symbo ls ha ve bee n de veloped for SSI and MSI Preface xv com ponent s so that the user c an reco gniz e e ach functio n from the unique graphic sy mbo l assig ned. The chapter , hllw~ the stan dard graphic s)'lIlbols of the inte grated circ uits used in the laboratory e xper ime nts. Th e vario us d igital com po nents that arc repr esented through out the book arc similar to commercia l integ rated ci rcui.... Ho we ve r. the te xt doe s not mentio n s peci fic in teg rated c ircuit, e xcept in Chapters I I and 12. Doin g the <, ugg l"sted expe rime ms in Chapter II while studying the theory prcse mcd in the te xt will en hance the prac tica l appl ication of d igi tal devig n. LAB EXPERIMENTS The book rna)' be usee in a stand-a tone course or with a co mpanio n lab based on the lab experiment s included with the te xt. The Iah e xperiments ca n be used in a stand-a lo ne manner IIx ). and can be accomplished by a traditional approac h. with a breadboa rd and TTL circuits, or with an HDU synthesis approac h u ~ i ng FPGA s. Today. software fur :.ynthesil-ing an IIDL model and implementin g a circuit with an FPGA Is available at no CIN from vendors of fl'G As. allowi ng stude nts to co nduct a significant amo unt of work in their persona l envi ronment before using prototypin g boards and other resources in a lab. Cirt:uit ttoard , for rapidly pWlIJt yping circuits with FPGA , arc available ill nomina! CO <.l. and typica lly include puvh huuons, vwitchcs.•md seven-seg ment dicplays. LCD~ . keypads and ot her UO devices. With these reso urces. stude nts can work prescribed lab exercises or their ow n projects and get results immediately , The operation of the integrated ci rcuit, used in the experi ment" ivex plained tty referring to diagrams of similar components introd uced in prev ious chapters. Each expe riment is presented informally and the stude nt is e xpected to produ ce the ci rcuit diagram and formu late a procedure for ve rifying the operati on of the circu it in the labor atory. The last section vupplemcnt-, the e xperim ents with co rrespon d ing HOL experi ments. ln vtcud of, or in addition to. the hardware concrrucuon. thc stude nt ca n use the Verilog HDL software provided on the CD-RO \ lto simulate and c heck the de sign . Sy nthesis tools ca n then be used tu impleme nt the ci rcuit in a n FPGA on a prototyping board. Our thank s go to the edito rialteam at Prentice Hall for com mitting to this timely revis ion of the text. Finall y. we arc grateful 10 our wives. Sandra and Jcrilynn. for encouraging our pursuit of thi" project. M. l\1 () ~ Rt S \1 A ~{) Emeritus Proff'J.wr of Computer Engineering Clilifomil/ SllII t' University. LO.I tl ll ge-It'.{ M ICHAEL D . C1U ,TT I Drpartmrnt of Elrctricai and Compll fer Hnginerring University of Coto raao at ColortuJ" Sprill}:I Chapter 1 Digital Systems and Binary Numbers 1.1 DIGITAL SYSTEMS Digital systems have such a pro minen t role in everyday life that we refer to the present tec hnolo gical period as the digital (IKe. Digital S)' SICm S are used in co mmunication. bu siness transactions. traffic con trol. "pace guidance. medical treatment. weather mon itoring, the Internet, and many other commercial. industrial. and scientific en terprises. We have digitaltel ephones. dig- iral television. digital versatile discs. digital cameras. handheld devices. and. of course. digital computers. The most striking property of the digital computer is ils generality. It can follow a sequence of instructions. ca lled a program. that operates on give n data. Th e user can specify and change the program or the data according to the specifi c need. Because o f this flexibifiry, general- purpose digi tal computers ca n perform a variety of Information-processing tasks that ranBe ove r a wide spec trum o r applications. One characteristic of digital sys tems is their ability to re present and manip ulate discrete ele ments of informa tion . A ny set that is restricted In a finite numbe r o f clements co ntains discre te information. Exam ples o f d isc rete sets are the 10 decimal dig its. the 26 letters of the alphabe t the 52 playing cards. and the 6-t squares of a che ssboard . Early digital computers were used for numeric computatio ns. In this case. the discrete elements were the d igits. From this application. the term digita! co mputer e merged . Discrete clement s of information are represented in a digital system by physical quantities ca lled sig nals. Elect rica l sig nals such as voltages and currents arc the most co mmon . Electronic devices called transistors predominate in the ci rcuitry that implements these signals. Th e signa ls in most present-day electronic d igital systems use j ust two discrete val ues and are the refore said to be biliary. A binary d igit. called a bit. has two values: 0 and I. Discrete cl ements of infonn ation are represent ed with groups of bits called binary codes. Forexamp le. the deci ma l dig its 0 through 9 are represemed in ' disit, l ' r'temwith a code of four bits (e.g.. the number 7 is represented by 0111). 2 Chapter 1 Digital System s and Binary Numbers Throu gh various techniques, groups of bits can be made to represent discrete symbols, which are then used to develop the system in a digita l fermat. Thus, a digital system is a system that manipulates discrete clements of information represented internally in binary fonn . Discrete quant ities of information either emerge from the nature of the data being processed or may bequantiz ed from a co ntinuous process. On the one hand, a payroll schedule is an inherently discrete process that co ntains employee names, soc ial sec urity numbers, weekly salaries, income taxes, and so on. An employee's paycheck is processed by means of discrete data values such as letters of the alphabet (names), digits (salary), and special symbols (such as $). On the other hand. a research scientist may observe a continuous process, but record only specific quantities in tabular fonn . The scientist is thus quantizing continuous data. making each number in his or her table a discrete quantity. In many cases, the qua ntization of a process can be performed auto matica lly by an ana log-to-dig ital convene r. The general-purpose digital computer is the best-known exa mple of a digital syste m. The major pans of a computer arc a memory unit, a central processing unit, and input-output units. The memory unit stores programs as well as input. output, and intermediate data. The ce ntral processing unit performs arithmetic and other data-processing operations as spec ified by the program. The program and data prepared by a user are transferred into memory by means of an input device such as a keyboard. An output device, such as a printer, receives the results of the computations, and the printed results are presented to the user. A digital computer can accommodate many input and output devices. One very useful device is a com munication unit that provides interaction with other users through the Internet. A digital computer is a powerlui instrument that can perform not only arithmetic computations. but also logical operations. In addition, it can be programmed to make decisions based on internal and external conditions. There are fundamental reaso ns that commercial products are made with digital circuits. Like a digital computer, most digital devices are programmab le. By changing the program in a programmable device, the same underlying hardware can be used for many different applications. Dramatic cost reductions in d igital devices have come abo ut beca use of advances in digital integrated circuit technology. As [he number of transistors that can be put on a piece of silicon increases to produce co mplex. functions, the cost per unit decreases and digi tal devices can be bought at an increasingly red uced price. Equipment built with d igital imegruted circuits can perform at a speed of hundreds of millions of operat ions per second. Digital systems can be made to operate with extreme reliability by using error-correcting codes . An example of this strategy is the digital versatile disk (DVD), in which digital information representing video, audio, and other data is recorded without the loss of a single item. Digital information on a DVD is recorded in such a way that, by exami ning the code in each digital sample before it is played back, any error ca n be automatically identified and corrected. A digital system is an interconnection of digital modules. To understand the operation of each digital module , it is necessary to have a basic knowledge of digital circuits and their logical function. The first seven chapters of this book present the basie tools of digital design, such as logic gate structures, combinational and sequential circuits, and programmable logic devices . Chapter 8 introduces digital design at the register transfer level (RTL). Chapters 9 and to deal with asynchronous sequential circuits and the various integrated d igital logic families. Chapters I I and 12 introduce commercial integrated circuits and show how they can be connected in the laboratory to perform experiments with digital circu its. Sectio n 1.2 Binary Numbers 3 A major trend in digital design method ology is the use of a hard ware descri ption language (HD L) 10 describe a nd simulate the func tionali ty of a d igita l ci rc uit. An HDL resemble s a programm ing language an d is suitahle fo r de scribing d igital circuits in textual forrn. It is used to simulate a d igital sys tem 10 verify its ope ration bef ore hard ware is built in. It is also used in co nj unc tion with logic synthes is too ls to auto mate the desig n proc ess. Becau se it is important that stude nts beco me familiar with an HDL· based design methodology, HDL de scrip tio ns of di gital c ircuits arc presented througho ut the book. Wh ile these exa mples he lp Illustrate the featurex IIf an HDL. the y also de monstrate the best pra ctices used by indu stry Iu e xploit HDLs. Ignor ance of these practice s will lend 10 cut e. but worthl ess. HD L mod els that may simulate a pheno me non. but that ca nnot he synthes ized by design too ls. o r to model s tha t waste silicon area or sy nthes ize to hard ware that c annot ope rate correctly. As previo usly stated. d igital syste ms ma nipulate d iscrete quantities of information that a rc re presented in binary form. Ope rand s used for c alculations may be ex presse d in the binary numbe r syste m . Other d iscrete clements. including the deci mal digits. are repre sented in binary cedes. Digital circuits. a lso refe rred 10 as logic circuits. proc e ss data by means of binary logic elem en ts (logic gates) using binary signals. Quantit ies are stored in binary (two- valued) sro rage ele ments (flip- fl ops ). The purpo se of this chapter is to introdu ce the various binary co nce pts cs a frame of refere nce for furthe r study in the succ eed ing chapte rs. 1. 2 BINAR Y NUMBERS A decimal num be r suc h as 7.392 rep resents a q uant ity eq ual to 7 thousand s. plu s 3 hundreds. plus 9 len s. plus 2 units. Th e thousa nds. h und reds. etc .. are pow er!'> of 10 im plied by the position of the coe fficie nts in the number. To be more exac t. 7.39 2 is a shorthand not ation fo r what sho uld be writte n as 7 X I O~ + -' X 102 + t} X 10' + 2 X 10° Howe ver. the co nvention is to write only the coe fficients and. fro m their position. ded uce the nece ssary powers of 10. In gene ral. a numbe r with a decimal poi nt is represented by a series of coe fficients : The cce fflcie ms e j a rc any o f the 10 d igits (0. I. 2• . . .. 9). and the subsc ript valucj gives the place value and. he nce . the pow er o f 10 by which the coefficien tmust he mu ltiplied. Thu s. the preced ing deci ma l numb er ca n he exp resse d as IO-' a ~ + lO~a... + 10\ )3 + I0 2 + IOt a ] + IOlltl() + 10- 1" _1 + 1O-2u _ + 10- 3° _3 al 2 The decim al number system is said 10 he of base, or radix. 10 because it use s 10 d igits and the coe ffic ients are mult iplied by pow ers of 10. The binary sys te m is a di fferen t numbe r S)' Stern. The coe fficie nts of the binary numbe r syste m ha ve on ly two [Kls ..ible va lues: 0 a nd I. Each coefficie nt u ) is mu ltiplied by 2). and the rc sults are added to o btain the decim al eq uivalent of the number. The rad ix point Ie.g .. the decimal point whe n 10 is the radix) distingu ishes posit ive po wers of 10 from negative powers of 10. For e xample. the decimal equivalent of the 4 Chapter 1 Digital Syste ms and Binary Numb er s bin ary num ber 11010.11 is 26.75, as show n from the multiplication of the coe fficients by pow ers of 2 : I x 24 + I X 23 + 0 X 22 + I X 2 1 + 0 x 2° + I X 2- \ + I X 2- 2 = 26.75 In genera l. a num ber expressed in a base-r system has coefficients multiplied by powers of r:. a lt ' , " + a " _I ,,,,-1 + .. . + + a _2 " - 2 + . .. {l2 ,,2 + ai " + ao + a_ I , , - 1 + a _m' T -. The coe ffic ients a } range in value from 0 10 T - I . To distinguish between numbers of d ifferent bases, we enclose the coe fficients in parenthese s and write a subscript equal to the base used (exce pt sometimes for decimal numbers. where the co ntent makes it obvious that the base is decim al). An example of a base-S number is (4021.2)5 = 4 X 53 + 0 X 52 +2 X 51 + I x 5° + 2 X 5-1 = (5 11.4) 10 T he coefficient values for base 5 can be only O. 1, 2, 3. and 4. Th e octal number system is a base-S system that has eight di gits: 0, 1, 2. 3, 4, 5, 6. 7. A n exa mple of an oc tal num ber is 127.4. To determine its equivalent decimal value. we ex pand the num ber in a po wer se ries with a base of 8: ( 127.4)8:::: I X 82 +2 X 8 1 + 7 X gO + 4 X 8- 1 = (87.5) 10 Note that the di gits 8 and 9 cannot appe ar in an octal num ber. It is customary to borrow the needed r digits for the coe fficients from the decimal system when the base of the number is less than 10. The letters o f the a lphabet are used to supplemem the 10 decimal d igi ts when the base of the num ber is greater than 10. For example, in the hexadecimal (base - t o) num ber sys tem, the first 10 digits are borrowed from the decimal syste m. The letters A, B. C, D, E, and F are used for the digits 10. I I, 12, 13, 14, and 15. rcspcc live ly. A n exa mp le o f a hexadecimal num ber is ( B65F) ltl = 11 X 16 3 + 6 X 16 2 + 5 X 16 1 + 15 X 16° = (46.687) 10 As noted before . the digits in a binary number are called bits. When a bit is equal to O. it does nOI contribute 10 the sum during the conversion. Therefore, the co nve rsion from binary to decima l can be obtained by add ing o nly the numbers with powers of two corresponding to the bits thai are equal to I. For example, ( 1lOJO lh = 32 + 16 + 4 + I = (53) 10 There are four l 's in the binary number. The correspo nding decimal num ber is the sum o f the four pow ers of two. The first 24 numbers obtained from 2 to the power of n arc listed in Table 1.1. In computer work, 2 10 is referred to as K (kilo ), 220 as M (mega), 2 30 as G (giga), and 240 as T (tera). Thus. 4 K 2 12 := 4,096 and 16M = 224 16.777.216. Computer capacity is usually given in bytes. A byte is equal to eight bits and can accommod ate (i.c., represcnt the code of) one keyboard character. A computer hard disk with four gigabytes of storage has a capacity of 4G = 232 bytes (approximatel y 4 billion bytes). = = Section 1.3 Number-Base Conversions 5 Tablet.1 Powers of Two n Z" 0 I I 2 2 4 3 8 ie 32 , 4 6 7 64 128 Z" n , 256 5 12 " 14 " Z" " 65.536 131.072 17 18 19 26~.I ~ 8.192 20 21 1.048.576 2.097.152 16.384 32.768 22 4. 1 94.3~ 23 8.388.608 9 10 12 13 n I .O~~ 2.0·111 4.1..196 5 2~. 28 8 Ari thmeti c ope rations wit h numbers in base r follow the sa me rule s as for dec imal numbers. When a base other than the fa miliar base 10 is used. one must he careful to use o nly the r-allo weble digit s. Examples o f add ition. subtraction . and multiplicatio n of two binary num bers are as follow s : augend: addend: sum: 10 1101 + 100111 1010100 minuend : subtrahend: di fferen ce : 10 1101 - 100 111 multip licand : mult iplier : 0001 10 1011 ~ 1011 0000 101 1 prod uct: l lD l ll Th e sum of two binary numbers is calc ulated by the same rules as in decim al. exce pt that the digits of the sum in any significant position can be only 0 or I . Any carry obtained in a give n sig nificant posi tion is used by the pair of digits o ne sig nifica nt position higher. Subtractio n is slightly more complica ted. The rules are still the sa me ax in deci mal. exce pt Ihal the borrow in a gi ven significant po sition adds 2 10 a minuend dig it. fA bo rrow in the deci mal syste m add s 10 to a minuend digit.) Mult iplication is simple: The mult iplier d igits are always I or 0 : therefore. the part ial produ cts arc equal either to the multiplicand or to o . 1.3 NUMBER -BASE CONVERS IONS Th e co nversio n o f a number in base r to decimal is done by expanding the number in a power series and adding allthe te rms as show n previously. We no w present a ge neral proced ure for the rev erse ope ratio n of co nverting a decimal number to a number in base r. If the numbe r incl udes a radix po int. it is necessary to separate the number into an integer part and a fraction part. since each part m U ~ 1 be conve rted differently. The conversion of a decimal integer 10 a number in base ,. is don e by divid ing the num ber and all successive quotie nts by r and accu mulating the remainders. This procedure is bes t illustrated by example. 6 Chapter 1 Digital Systems and Binary Numbers Con vert decimal 4 1 10 bin ary. First, 4 1 is di vided by 2 to give an integer qu oti en t of 20 and a re mainde r of!. Then the qu ot ien t is agai n divided by 2 to give a new qu otien t and remainder. The proc ess is continued until the integer quoti ent becomes O. Th e coefficients of the desired binary number are obt ained from the remainders as fo llows : Int eger Quotient :=: 20 20/2 = 1012 :=: 10 512 = 2 212 = 112 :=: 1 4 1/2 Remainder + + + + + + 5 0 Coefficil'nt l Uo :=: 0 UI 0 U2 :=: 0 U3 :=: 1 0 U4 :=: 0 1 (.1 5 :=: 1 , , 1 1 = 0 Ther efore , the answe r is (4 1) 10 = ( USU4UY I 2(.1I Uoh :=: ( 10 100 1h. Th e ar ithmetic process can be manipulated more conve niently as foll ows: Integer Remainder 41 20 I 10 o 5 2 o I o o I I 101001 = answe r Conv ersion from decimal integers to any base-r system is similar to this ex am ple. except th at divi sion is don e by r instead of 2. • Conve rt decimal 153 to oc tal. The required base ' is 8. First, 153 is divided by 8 to give an integer qu ot ient of 19 and a rema inde r of 1. Then 19 is di vided by 8 to give an intege r quo tie nt of 2 and a rem ainder of 3. Fin ally, 2 is divided by 8 10 give a quotient of 0 and a rem ainder of 2. Thi s proc ess ca n be co nve nie ntly man ipulated as follow s: 153 19 I 2 3 o 2 = (H i ls Section 1.3 Number-Base Conve rsions 7 Th e conve rsio n of a decimal / ra elion to binary is accomp lished by a me thod similar 10 that used for intege rs. Howe ver. multiplication is used instead of divi sion . and integers instead of remainder s a re accumulated. Again. the meth od is bes t e xplained by exa mple. • ·,a4tjiQ"'. Con vert (0 .6875) JO to binary. First. 0.6875 is mull iplied by 2 10 give a n imege r and a fraction . Then the new fraction is multiplied by 2 to giv e a new imeger and a new fraction. The process is continued until the fraction becomes 0 or until the number of digits ha ve sufficient accuracy. The coe fficie nts of the binary number are o btain ed from the intege rs as follow s: Integer x 2= I = 0 0. 7500 x 2= I 05000 x I 0 .6875 0.3750 X 2 2 = Fracti on + + + + Coefficient = I 0.37 50 (/ - 1 0.7500 (/ - 2 =0 05000 {I- ~ = O.UOOO " -4 = Therefore. the ans .... er is (0.6875)10 = (0.1I-111 -21l-YI _4b :=. (0. 10 11h To conve rt a decimal fraction 10 a number ex presse d in base r, a s imilar proced ure is used. Howe ver. multiplicat ion is by r instead of 2. and the coe fficie nts found from the Integers may range in value from 0 to r - I instead of 0 and I. • ·"%1'9···· Convert (0 .5 13)10 10 oc tal. 0..513 X 8 = 4.104 0 ,10-1 X 8 = 0. 832 0.832 X 8 = 6,6.56 0.656 X 8 = 5.248 0.248 X 8 = 1.98-1 0.984 X 8 = 7.872 The a nswer . to seven significa nt figures. is ob tained from the intege r pa rt of the produ ct s: (0.5 13l lll = (OA06 5 17 . .. lH 8 Chapt er 1 Digita l Systems a nd Binary Number s The conve rs ion of decimal numbers with both integer and frac tion parts is don e by convening the integer and the fraction separately and then co mbining the two answers. Using the results of Examples 1.1 and 1.3. we ob tai n (4 1.6875)10 - ( 10 100 1.10 11), From Exampl es 1.2 and 1.4, we have ( 153.5 13) 10 = (2 3 1.4065 17Js • 1.4 OCTAL AND HEXADECIMAL NUMBERS The co nve rsion from and to bina ry. oc ta l. and hexad ecim al plays an important ro le in digital co mputers. Si nce 2 3 = 8 and 24 = 16, each octal digit corresponds to three binary digi ts and each hexadecimal digit corres ponds to four binary di gits. The first 16 num bers in the decimal, binary. octal, and he xadecim al number sys tems are listed in Table 1.2. Th e co nvers ion fro m bin ary to octal is eas ily accomplis hed by partitioning the binary number into groups of three digit s eac h. starti ng from the binary point and proceedin g to the left and to the rig ht. The corresponding oc tal digit is then assigned to eae h group. The follo wing exa mple illustrates the proced ure: ( 10 110 00 1 101 011 I II 2 6 I 5 3 7 100 4 000 0 110 ), = (26 153.7406), 6 Ta bl e 1 ,2 Numbers wi th Different Bases Ded m a l (base 10 ) Binary (b a se 2) Oct a l (b a se 8) He xa d ec im a l (base 16 ) 00 01 02 03 0000 0001 0010 0011 00 01 02 03 0 04 0100 0101 0 110 0 111 05 06 07 0' 09 10 11 12 13 14 IS 1000 1001 1010 1011 1100 1101 1110 lI ll 04 05 06 07 10 II 12 13 14 15 16 17 I 2 3 4 5 6 7 8 9 A B C D E F Section 1.5 Compleme nts 9 Convers ion from binary to hexadecimal is similar, except that the binary number is di vided into groups o f/our digils : ( 10 2 11 00 0 1If) 10 1 [ 111 1 C 6 Il F OO lOh "" ( :!C6B.F2)lfI 2 The co rrespo ndi ng he xadecimal (or ()cta!) digit for each group of bina ry digils is ea.~ i ly remembered from the va lues lis ted in Table 1.2. Conversio n from oct al or hexadeci mal to binary is don e by re versing the prec ed ing procedure . Each oc tal d ig il is convened to irs three-d ig it bi nary eq uiva lent. Simi larly, ea ch hexudeci mal d igit is co nve rted to ih four-d igit binary eq uiv alent. Th e procedure is illustrat ed in thc fo llowi ng e xamples; (673.12. ). ~ ( 110 III 6 7 011 3 (X)) 010 I 2 aod (3 06. D) 16 "" (00 11 3 O<XIO Ol IO 0 6 I/O / D 100), • rz Binary numbe rs are difficult In work wi th becau se they require three or four limes a.. many digit.. a.. their decimal eq uival e nts. For exa mple, the bin ary num ber I J 1111111111 is equivalent to dec imal .J095. However. d ig ital computers usc binary nu mbe rs, and it is sometimes necessary for the human ope rator or user to conuuumcatc directly with the mac hine by mean s of such numhe rs. On e scheme that retains the binary sys tem in the com puter. but reduces the number of digits the human must co nsider, utili/es the relation..hip be twee n tho: binary num ber system and Ihe uc la l ~lr he xall ed rnal :.)':. 1\:111. By th i:. 1I1\:lh"o.I. thc hUI1l,u lt hil)k... ill len l1""foC lal o r hc Jl. ad...~. i rlla l numbe..... and perfo r ms the req uired con version by inspection when di rec t com munication with the machine i.. ncce....a ry. Thu... the binary nu mber 11111 11111 11 has 12 digits and is expressed in oc tal as 7777 (.J digit s ) or in hexadecimal as Ff -F (3 digits ). Du ring com munication betwee n peo ple (abou t binary num bers in the com pute rj. jhc fIClal or hexadecimal repres e ntatio n is more de..irable because it ca n be expre..sed more co mpactly with a third or a qu arter of the numbcr of digits required for (he eq uivalent binary number. Thu s. most computer ma nuals use e ither oct al or hexadeci mal number s to specify binur y q uunthic... Th e cho ice be tween them is arbitrary, although hexadecimal tend.. to win OUl, since it can rcprc..cnr a byte w ith two digits. 1.5 COMPLEMENTS Co mplements arc u..cd in d igital computers to sim plify the subtraction ope ration and for logical man ipulation . Simplifying ope ration s lead s to simpler. less expe nsive circ uits to implement the ope ratio ns. Th ere are IWO types o f complem ents for each base-r sys te m: the radi x: complement and the di minished radi x com ple ment. The first is refe rred to as the r's com plem ent and the seco nd as the (r - I )'s comple ment. When the val ue o f the base r is substituted in the nam e. the two types are referred to as the 2's co mplement and I's ccmptemen r for bina ry numhe rs and the 10\ comple me nt and 9's co mpleme nt for deci mal numbe rs. 10 Chapte r 1 Digita l Systems and Binary Numbers Diminished Radix Complement Given a num ber N in base r having n d igits, the (r - I )' lo co mpleme nt of N is defined as (r" - I ) - N . For decimal numbers, r == 10 and r - I "" 9, so the 9' s complement of N is ( 10" - I ) - N , In this case. 10" repre sents a number that con sists of a single I followed by nO's. 10" - I is a number represented by n 9 's. For e xample, if n "" 4. we have I~ = 10,(0) and I~ - I "" 9999 . II follo .....s that the 9's complement o f a decimal number is obtained by subtracting each digit from 9. Here are some numeri cal examples : The 9 ' s comple ment o f 54-6700 is 999999 - 54-6700 "" ..$53299 . The 9' s co mplement of 0 12398 is 999999 - 012 398 == 987601 . For binary numbers.v "" 2andr - I "" Lso tbe l 's complemen r ofN is (2" - I ) - N . Agai n, 2n is represented by a binary num ber that consists of a I follo w ed by nO's. 2n - I is a binary number represented by n I's. For example, if 11 "" 4 , .....e have 24 "" ( l (X)()()h and 24 - I "" ( 1111h Th us, the l 's complement of a binary num ber is obtained by subtract ing eac h digit from 1. Ho we ver, when subtrac ting b inary dig its fro m I, w c ca n ha ve e ither I - 0 "" I or 1 - I == 0, which ca uses the bit to change from 0 to 1 or from I to 0, respectively. Therefore, the l's compleme nt of a binary num ber is formed by changi ng l ' s to D's and O's to J's . The followi ng are some numerical examples: The t 's complemcnt of 1011OOO isO lOO I I I. The I's co mpleme nt o f 0 101101 is 1010010. The (r - I )' s compleme nt of octal or hexadeci mal numbers is obtained by subtracting each digit from 7 or F (decim al 15), respec tivel y. Radix Complement The r's complement of an a-digit number N in ba se r is defined a.. r n - N for N "F- 0 and as o for N "" O. Comparing with the (r - I )' s complement. we note that the r's complement is obtained by add ing I to the {r - I )' s complement, since r" - N "" [(r" - I ) - N] + I. Thu s, the lO's co mpleme nt of deci mal 2389 is 7610 + I "" 76 11 and is obtai ned by adding I to the c's-complernent value . The 2's comp leme nt of h inary 10 11 00 is 0 10011 + I "" 010 100 and is obtained by adding I to the t 's-co mple meru value. Since 10 is a number represented by a 1 followed by II a 's, 10" - N , w hich is the tu's co mplement of N. can be formed also by leaving all least significant n's unch anged , subtrac ting the first nonzero least significant digit from 10, and subtracting all highe r significant digits from 9 . Thu s, the 10 's complement o f 0 12398 is 987602 and the In's complement o f 24-6700 is 753300 Sectio n 1.5 Complements 11 The lO's complem e nt of the first num ber is o bta ined by subrrcctin g 8 from 10 in the leas t significa nt po sition and subtrac ting all ot he r digi ts from 9. Th e- lO's compleme nt of the second num be r is o bta ined by leaving the two least significant O's unch anged . subtrac ting 7 from 10, and subtract ing the othe r three d igits from 9. Similarly, the Z's co mple me nt ca n be formed by lea ving all least signifi cant u's a nd the first I unch anged and re placin g I 's with O's a nd 0 \ with J'!'. in all other higher sig nificant digits. For e xa mp le, the- :!'s com pleme nt o f 1101 100 is 00 10100 and the 2\ com ple ment of 0 110 1J I is 1001 00 1 The 2's co mple me nt of the first number is o btained by leaving the two least significant O's and the first I uncha nged and then re placi ng l's with O's and O's with ls in the other four most signifi cunt d igits. The 2's co mple ment of the second num ber is o btained by lea ving the least signific ant I unchanged and compleme nti ng all other digits. In the pre vio us defin itions, it was ass umed thai the numbers did not have a radix po int. If the origina l num be r N contain s a radix poi nt. the poi nt should be re moved te mporarily in order 10 form the- r's or (r - I )'s co mp lemen t. The rad ix poi nt is the n restored to the co mple mented num be r in the same relative posi tion. It is also wort h me ntionin g that the co mple ment of the comple me nt restores the numbe r to its or iginal va lue. To see this relationship. note tha t the r 's co m ple me nt o f N is r" - N , so that the co mp le me nt o f (he com plem e nt is r n - ( r" - N ) = N and is eq ual to the original numbe r. Subtraction with Complements The dire c t method of subtraction taught in ele ment ary schools uses the b OrTOW conce pt. In this melhod . we h O rTOW a I from a highe r sigrnficum posi tion whe n the minue nd digit is smaller (han the subtra he nd digit. The me thod wor ks we ll when peo ple perform subtrac tion with pa per a nd pencil. Howe ver. whe n subtrac tion is impleme nted with digital ha rdwar e. the- met hod is less efficie nt than the meth od that uses com ple me nts . The subtrac tion of two II-d igit unsigne-d number s 1\.1 - ,V in base r ca n be done as follows : I. Add the m inu e nd AI 10 th e r's comp le me nt of the subtra he nd N. Mathematica lly, M + (r " - N) = ,\1 - N + r", 2. If !of 2 N, the sum will prod uce a n e nd carry r", which ca n be discarded : whal is left is the res ult M - N . 3. If M < N, the s um doc s not prod uce a n end carry and is eq ual to r " - ( N - M ), which is the r's co mplcm cnr of (N - AI ). To o btain the a nswer in a fa miliar form . tak e the r's co mple me nt of (he sum and place a nega tive sign in front. 12 Chapter 1 Digital Systems and Binary Numbers The following examples illustrate the procedure : Using 10's complement. subtract 72532 - 3250. M = 72532 lO' s complement of N = + 96750 Sum = 169282 Discard end carry lOs = - 1 0‫סס‬oo Answer = 69282 Note that M has five digits and Nhas only four digits. Both numbers must have the same number of digits, so we write N as 03250. Taking the 10's complement of N produces a 9 in the most significant position. The occurrence of the end carry signifies that M ~ N and that the result is therefore positive. • Using lO's complement, subtract 3250 - 72532. M = 03250 l O's complement of N = + 27468 Sum = 307 18 There is no end carry, Therefore, the answer is - ( IO's complement of 307 18) = - 69282. Notc that since 3250 < 72532, the result is negative. Because we are dealing with unsigned numbers, there is really no way to get an unsigned result for this case, When subtracting with complements. we recognize the negative answer from the absence of the end carry and the complemented result. When working with paper and pencil, we can change the answer to a signed negative number in order to put it in a familiar (a nn . Subtraction with complements is done with binary numbers in a similar manner, using the procedure outlined previously. • Given the two binary numbers X = 1010100 and Y = X - Y and (b) Y - X by using 2's complements. (8) 1‫סס‬oo11 , perform the subtract ion Section 1.5 X '" 1010100 2' s complement of Y '" +J!!..!..!..!Q! (a) Sum '" 100 10001 Discard end carry 2' '" AII.m'er: X - Y '" - / ()()()()()()() y ", 10000 11 (b) Com plements 13 1)() IOOOI 2' " com ple ment of X "" + 0 101100 Sum = 1101111 There is 110 l'" d carry. Therefore, till' answe r h Y - X - OO IOlXII. = - (2' s comple tucm of 1101 I I I ) = • Subtraction (If unsigned numbers can also be done by means of the ( r - J)' s complemen t. Remember th<ll the ( r - I )'s complement is one less than the r's complement. Because of this, the result of :u.lding rhe minuend to the complement of the subtrahend produces a sum that is one less than the correct difference when ntil end carry occurs. Removing the end carry and adding I to the sum is referred 10 as an end-around carry. M1tAmQIII:1I Repeat Example 1.7, bUI this time using t's complement. f a) X - Y = 1010100 - 100001 I X = 1010100 I' s complement of Y = + OJ11100 Sum = l OO IOfX){) End-around carry = + Al1.m er: X - Y = I 00 HX)() I (b) Y - X = jOfX){) 11 - I OlOHXI Y = 100XIOII I'scomr lcment of X = + 01010 11 Sum = 1101110 There is no end carry. Therefore. the answer is Y - X "" - ( I' s complement of 1101110 ) = - 00 tooo I. • Note thaI the negative result j'i. obtained hy taking the I's complement of the sum, since this is the type of complement used. The procedure with end-around carry is also applicable to subtracting unsigned decimal numbers with 9's complement. 14 1.6 Chapter 1 Digital System s a nd Binary Numbers SIGNED BINARY NUMBERS Positive integer s (including zero ) can be represented as unsigned numbers. However, to represent negative integers, we need a notation for negative values. In ord inary arithmetic, a negative number is indicated by a minus sign and a positive number by a plus sign. Because of hardware limitations. co mputers must represent e verything with binary digits. It is customary to represent the sign with a bit placed in the leftmost position of the number. The convention is to make the sign bit 0 for pos itive and I for negative. It is important to realize that both signed and unsigned binary numbers consist of a string of bits when represented in a computer. The user determines whether the number is signed or unsigned. If the binary number is signed, then the leftmost bit represents the sign and the rest of the bits represent the number. If the binary number is assumed to be unsigned. then the leftmost bit is the most significant bit of the number. For example, the string of bits 0 100 1 can be considered as 9 (unsigned binary) or as + 9 (signed binary) because the leftmost bit is O. The string of bits 11001 represents the binary equ ivalent of 25 when considered as an unsigned number and the binary equivalent of - 9 when considered as a signed number. This is becau se the 1 that is in the leftmost position de signates a negative and the other four bits represent binary 9. Usually, there is no confu sion in identifying the bits if the type of representation for the number is known in advance . The represe ntation of the signed numbers in the last example is referred to as the signedmagnitude convention. In this notation, the number consists of a magnitude and a symbol ( + or -) or a bit (0 or I) indicating the sign. This is the representation of signed numbers used in ord inary arithmetic. When arithmetic operations are implemented in a computer, it is more convenie nt to use a different system, referred to as the signed-complement system, for representing negative numbers. In this system, a negative number is indicated by its complement. Whereas the signed-magnitude system negates a number by changing its sign, the signed-complcrncnr system negates a number by taking its complement. Since positive numbers always start with 0 (plus) in the leftmost position. the complement will always start with a I, indicating a negative number. The signed -complement system can usc either the l 's or the 2's complement. but the 2' " complement is the most common. As an example, co nsider the numbe r 9, represented in binary with eight bits. + 9 is represented with a sign bit of 0 in the leftmost position, followed by the binary equivalent of 9, which gives 0000 100 1. Note that all eight bits must have a value; therefore, O's are inserted following the sign bit up 10 the first I. Althou gh there is o nly o ne way to represent + 9, there are three different ways to represent - 9 with eight bits; signed-magnitude representation: 1000 100 1 signed- f 's-complement reprcsemano n: 11 110110 signcd-Z's-c omplement representation: 11 11 0 11 1 In signed-magnitude. - 9 is obtained from + 9 by changing the sign bit in the leftmost position from () to I. In signed-Fa co mplement, - 9 is obtained by complementing all the bits of + 9, including the sign bit. The signed-J's-complc mcnt representation of - 9 is obtained by tak ing [he 2's complement of the positive number, includ ing the sign bit. Section 1.6 Signed Binary Numbers 15 Table 1.3 SJgntd Binory Numbers Oedma l +7 +h +' +4 +3 +2 +1 +0 -0 Slgned.2'$ Comp lem ent Slgned .1 '$ Co mple m ent Signed Magnitude 0111 0110 0101 0 111 0 110 0 101 0 100 00 11 0 1II 0110 0101 0100 oo n 00 10 OO()[ O(JU(} - I 1111 -2 -., 1110 1101 - 4 -, "00 -6 -7 1011 1010 100! -, 00 10 000 1 0 100 00 " 0010 ooo t 0000 I II I 1110 1I0 ! 00'" 1000 1001 "'" lOl l 1011 lOW 1"'1 1000 1010 "'" 110 1 1110 1111 IUOO Tabl e: 1.3 lists all possib le fo ur-b it sig ned bin ar y nu mbers in the three representations. Th e equiva lent decimal numbe r is also shown for reference . Note tha t the posi tive numbers in all three rep resen tatio ns are: ident ical and ha ve 0 in the lefuuost po sition. T he sig ned -z'scompleme nt syste m has only n ne represent ation for O. whic h is alw ays positive . T he oth er two sys te ms have eit her a positive 0 or a negat ive O. some thing not enco unte red in ord inary arirhmcric . Note tha t all negativ e numbers have a I in the le ftmost b it po sitio n: that is the way we distinguish them from the positive numbers. With four hits. we can rep rese nt 16 binary num bers. In the sig ned- mag nitude and the ls-ccm ple rnent representations. there are e ight posi tive nu mbers and eig ht negnnv e number s. incl ud ing two zeros . In the 2's-co mple ment represe ntati o n. the re a re eig ht po sitive num bers, including on e ze ro. and e ig ht negati ve numbers. Th e sig ned-mag nitude sys te m is used in ordi nary arit hme tic. b ut is awkwa rd when employed in computer arit hmetic because of the se parate handlin g o f the sign and the magni tude . Therefo re. the signed-complement system Is normally used. T he Fs complement imposes some d iffic ultie s and is seldo m used for arithmetic o perations . It is usefu l as a logical operatio n. since the change of I to 0 or 0 10 I is equiv ale nr ro a log ical comple ment ope ration. as will be shown in the next chapter. The d isc us..ion of signed binary arithmetic that fo llow s deals exclu sively with the sig ncd-z's-cornple ment representation of negative numbers . The same procedures can he app lied to the sigued-!"..-complemer usystem by including the end-around carry as is do ne with unsigned numbers. 16 Chapter 1 Digita l Systems and Binary Numbers Arithmetic Addition The addition of two numbers in the signed-magnitude system follows the rules of ordin ary arith metic. If the signs are the same , we add the two magnit udes and give the sum the common sign. If the signs are different, we subtract the smaller magnitude from the larger and give the difference the sign of the larger magnitude. For example, (+ 25) + ( - 37) = -( 37 - 25 ) = - 12 and is done by subtrac ting the smaller magnitude, 25. fro m the larger magn itude, 37, a nd appe nding the sign of 37 to the result. Thi s is a proce ss tha t req uires a comparis on of the signs and magni tudes and then performi ng either addition or subtraction. The sa me procedu re applies to b inary numbers in signed-magnitude representa tio n. In contrast, th e rule fo r adding numbers in the signed-comple ment system doc s not require a com parison or subtract ion . but only addition. The proce d ure is very simple and can be stated as follow s for bin ary nu mb ers: The additi on of two signed binary numbers with negative numbers represe nted in signedZ's-complement forrn is obtain ed from the add ition of the two numbers , including their sign bits. A carry out of the sign-bit position is discarded . Num erical examples for addition follow : + 6 + 13 + 19 + 6 - 13 - 7 00000110 0000110 1 000 100 11 O()()OO 110 11110011 1111100 1 - 6 + 13 + 7 - 6 - 13 - 19 11111010 0000 1101 000001 11 111 11010 111100 11 1110 1101 Note that negativ e numbers must be initial ly in Z's-complement form and that if the sum obtai ned after the additi on is negative, it is in z 's-compleme nt form . In each of the fo ur cases, the operation performed is add ition with the sign bit incl uded . Any carry out of the sign-bit position is discarded, and negat ive results are automatically in z'scomple ment form. In order to obtain a correct answer, we mu st ensure that the result has a suffic ient number o f bits to accommodate the sum. If we start with two u-bit numbers and the sum occupies n + I bits, we say that an ove rfl ow occ urs. When one performs the addi tion with paper and pencil , an ove rflo w is not a problem, becau se we are not limited by the width of the page . We j ust add another 0 to a positi ve num ber or another I 10 a negative num ber in the most significa nt position to exte nd the num ber to n + I bits and then perform thc addi tion. O verfl ow is a problem in computers beca use the number of bits that hold a num ber is finite, and a result that exceeds the fin ite value by I cannot be accommoda ted. The complement form of representing negative numbers is unfamiliar to tho se used to the signed-magnitude system. To determine the val ue o f a negative number in signcd-z 's complement, it is necessary to conve rt the num ber to a positive number to place it in a more famil iar form . For example, the signed binary number 1111100 1 is negati ve because the leftmost bit is 1. Its 2's complement is 00000 111, which is the binary equivalent of + 7. We therefore recogni...' e the orig inal negative number to be equal to - 7. Sec tio n 1.7 Bina ry Codes 17 Arith metic Subtract io n ' ' ''0 Su btraction of signed binary numbe rs when nega tive numbers are in J 's-cornplemcn r form is simple and can he stated as follow s: Take the 2's co mplement of the subtrahend (including the sign bill and add it to the m inuend (includ ing the sign biu. A carry out of the sign-bit position is d isca rded . Thi s proced ure is adopted because a subtract ion operation ca n he changed III an addi tion o peratio n if the sign of th e subtrahend is c hanged . as i!'. d emo ns tra ted by the foll owing relationshi p: (± A) - ( T 8 ) (± A) - (- 8 ) (± A ) T ( - 8 ): ( ± A) T (+ 8) . But changi ng a pos itive num ber to a negative number is eas ily don e by taki ng the 2's co mp lement of the posi tive num ber. The reverse is also true, because the co mplement of a negative number in comple ment form produ ces the equivalent pos itive number. To see this. co nside r the subtrac tion ( - 6 ) - (- 13) "" + 7. In binary with eig ht bits, this operation is wriue n as ( 11111010 - l l l lO(}J I ). The subtraction i!'. changed to addition by taking the 2's complement of the subtrahend (- 13), giving ( + 13). In binary, this is 11111010 + 00001 101 = 100000 11L Removing the end carry, we obtain the correct answer: 00000 111 (+ 7). II is wort h noting that binary num ber s in the signed -co mpleme nt syste m arc added and subtracted by the same basic addition and subtraction rules as unsigned numbers. Therefore, computers need only one common hardw are circu it to handle both types of arit hmeti c. The user or programm er must interp rett he results of such addi tion or subtraction differently, depe nding on w heth er it is assumed thai the num bers are signed or unsigned . 1.7 BINAR Y COD ES Digital systems use signals that have two d istinct value.. and circ uit element s thai have two stable slates, There is a direct analogy among binary signals. binary circ uit elements, and bi nary digits. A binary number of /I digits, for example, may be represemcd by n binary ci rcuit elemems. each havin g an output signal eq uivale nt 10 0 or I. Digital syste ms represent and ma nipulate not o nly bi nary numbe rs, but al so man y other d iscrete elemen ts of information. Any discret e ele ment of inform ation that is distinct among a gro up of quanti ties can he rep rese nted with a binary code (i.e. , a pattern of D's and I 's). The codes must be in binary bec ause, in today's techn o logy, only circuits thut represe nt and manip ulate patterns of D's and I 's ca n be manu factu red ec onom ically for use in computers. However. it must be realiz ed that binar y codes merely change the symbols, nor rhe mea ning of the elements of informatio n that they represe nt. If we Inspect the bits of a co m puter at randum, we w ill find that most of the time they represe nt some ty pe of code d informatio n rather than binary num bers. An n-bit binary code is a group of 11 bits that ass umes up to r distinct co mbinations o f l 's and 0 '5. with each co mbination representing one elemem of the set that is bei ng coded . A sci of fou r elem ents ca n be cod ed with IW O biu. with eac h eleme nt assigned one of the follo wing bit combinations: 00 . 01. 10. 11. A set of eigh t elem ents requires a three-b it cod e and a set of 18 Chapter 1 Digital System s and Binary Numb er s 16 elements requires a four-bit code. The bit combinat ion of an n-bit code is determi ned from the count in binary from 0 to 2" - I. Each element must be assigned a unique binary bit combination, and no two elements can have the same value; otherwise, the code assignmem will be ambiguou s. Although the minimum number of bits required to code 2" distinct quantities is n, there is no maximum number of bits that may be used for a binary code. For example. the 10 decima l digits can be coded with 10 bits, and each decimal digit can be assigned a bit combination of nine O's and a I. In this particul ar binary code , the digit 6 is assigned the bit combination 0001000ooo. BCD Cod e Although the binary number system is the most natural system for a co mputer, most people are more accustomed to the deci mal system. One way to resolve this difference is to convert dec imal numbers to binary, perform all arith metic calculations in binary, and then co nvert the binary resu lts back to decimal. Th is method requires that we store decimal numbers in the co mputer so that they can be co nverted to binary. Since the computer can accept only binary values. we must represent the decimal digits by means of a code that contains l ' s and D's. It is also possible to perform the arithmetic operations directly on decimal numbers when they are stored in the co mputer in coded fonn . A binary code will have some unassigned bit co mbinations if the number of elements in the set is not a multiple power of 2. The 10 decimal digits form such a set. A binary code that distinguishes among 10 elements must co ntain at lea..t four bits. hut 6 out of the 16 possible combinations remain unassigned. Different binary codes can be obtained by arranging four bits into 10 disti nct combin ations. The code most commonly used for the decimal digits is the straight binary assignment listed in Table 1.4. This scheme is called binary-c oded decimal and is commonly referred to as BCD. Other decimal codes are possible and a few of them are presented later in thi.. section. Table 1.4 Binary -Cod«J D«. lmol (BCD) Dedmal Symbol BCD Digit o ‫סס‬oo 1 ()()() 1 0010 0011 01 00 2 3 , 4 6 7 8 9 0101 0110 011 1 1()()() 1001 Section 1.7 Binary Codes 19 Ta ble 1.4 gives the fou r-bit code For o ne decimal digit. A num ber wi th k dec imal J igil s will -t* b it" in n CD. [)..,c ;"",1 .1% is rc p ,·c s " ," c d ;11 n CD w id , 1.2 h it .s " .s (lO ll 100 1 0 1 10 . w ith each group of 4 bits represen ting one deci ma l d igit. A ucctm ut num ber in BC D Is the requ i re "a m e a s it" e q u iv a le n t bi n ary n umber on ly w h e n th e numbe r is be twee n 0 a n d 9 . A BC D n U IIl be r grea ter than 10 look s different from jh equ ivalent bina ry num be r. e ve n thou gh both con- tain f's and O ' ~ . Moreo ver. the binary co mbinatio ns 1010 throug h II II a rc not used and ha ve no mea ning in BCD. Con..ide r deci mal 185 and its co rres ponding value in BCD an d bina ry: ( 185)1f) = ((XXII HJ()(l 0101 hK'D = ( 1O l l lOOlh The BCD value has 12 bil" to e nco de the c ha rac ters o f the dec imal value . hUI the eq uivale nt bin a ry nu mbe r needs only 8 bits. II i:.. o bv io us tha t the re prese ntation of a BCD number needs more bits then il';.eq uiv ale nt binary valu e . Howe ver. the re is a n adva ntage in the use of deci ma l numbers. bec a use co mputer input and outp ut data are ge nera ted by people who use the de cimal sys te m . II is impo rtan t to reali ze that BCD numbe rs lire decimal numbe rs and nOI bi nary nu mbe rs. altho ug h they use bits in their re prese nta tion. The only diffe ren ce betwe e n a decimal number a nd BC D is tha t deci mal" a rc wnuen wi th the sym bo l.. O. I. 2•. .. • 9 and BCD numbe rs use the binary code 0000. 000 1. 00 10. . .. . 1001 . Th e decimal valu e is e xactl y the sa me . Decim al 10 is re pre sent ed in BCD w ith eight b it.s as 000 1 0000 a nd decimal 15 as 000 1 0101. T he correspo nd ing binary value... are 10 10 a nd I I 1I a nd ha ve only fo ur bits . BCD Addition Conside r the addition of two decimal digits in BCD .lO geth e r with a possi ble ca rry from a pre vio us less signific ant pai r of dig its. Since cad i dig it doe s not e xceed 9 . the s um cannot be grea te r than 9 + 9 + I = 19......ith the I be ing a previous carry. S uppose we add the BCD dig . its a.. if the y we re binary numb e rs. Then the bi nar y sum w ill produ ce a result in the ra nge fro m 0 to 19. In bin ary. th i.. ra nge will be from (XKX) to 1001 1. but in BCD. it is from 0000 to I 100 1. with the first (i.e.• letrmo..t) J being a carry an d the ne xt fo ur bits be ing the BCD sum. Wh e n the bina ry sum is eq ua l to or less than I(X)I (w itho ut a ca rry ). the corresponding BC D digit is correct. Howe ver. whe n the bina ry s um is grea ter tha n or equ al 10 10 IO. the result is an invalid BCD digit. The addition of 6 = (0 110) 2 10 the binary sum conve rts h ro the co rrect digit a nd also produ ce .. a carry as req uired . This is bec a use a ca rry in the mo st sig nifica nt bit po sition of the bina ry surn a nd a decima l ca rry d iffer by 16 - 10 = 6 . Con side r the foll owing thr ee BCD add itions : ~ 01 00 ~ 0 100 8 1000 +5 + 0 101 +8 + 1000 +9 --.lQQ! 9 100 1 12 1100 17 1000 1 + 0 110 + 0 110 100 10 101 11 In eac h cas e. the two BCD d igits are added as if they were two binary numbe rs . If the bina ry sum is greeter than or eq ual to 10 10. we add 01 10 to o btain the correct BCD s um a nd a ca rry. In the first e xa mple. the sum i.. eq ua l 109 and is the corr ec t BCD sum. In the second example. 20 Chapter 1 Digita l Systems a nd Binary Numbe rs the binary sum produ ces an invalid BCD digit. The addi tion of 0 110 produ ces the correc t BCD sum, 00 10 (i.e., the number 2), and a ca rry. In the third example, the binary sum produce s a carry Th is condi tion oc curs when the sum is greater than or equal to 16. Alth ou gh the other fou r bits are less than jOO I. the binary sum req uires a correction because of the carry. Add ing Oli O, we obtain the required BCD sum Ol ll (i.e.. the numbe r 7) and a BCD carry. The add ition of two n-digit unsigned BCD num bers follows the sa me procedu re . Co nsider the add ition of 184 + 576 = 760 in BCD: BCD Binary sum I 000 1 1000 0 100 184 + 0 10 1 0 11 1 0 110 + 576 0 111 10000 10 10 0 110 OllO Ol iO 0000 Add 6 BC D sum I 0 111 76() The first , least significa nt pair of BCD di gits prod uces a BCD di git sum of 0000 and a carry for the next pair of digit s. The second pa ir of BCD d igits plu s a previous carry produ ces a digi t s um of 110 and a carry for the next pair of digits. The third pair of digits plus a carry produ ces a binary sum o f 0 111 and doe s no t req uire a correction. a Decimal Arithmetic The representation of signed decimal numbe rs in BCD is sim ilar to the rep resentation of signed num be rs in binary . We ca n use either the famil iar sig ned- magnitude system or the signed-complement sys tem. The sign of a deci mal numbe r is usua lly rep resented with four bits to conform to the four-bit cod e of the dec imal dig its. It is customary to design ate a plus with four O's and a minus wi th the BC D eq ui valen t of 9 , which is 100 1. The signed- magnitude system is seldom used in computers. The signed-complement sys tem can be eit her the 9's or the lO's compleme nt, but the lO's comp lement is the one most ofte n used. To obtain the lO's co mplement o f a BC D num ber, we first lake the 9 's complement and then ad d 1 to the least significan t digit. The 9 's compleme nt is calc ulated fro m the subtrac tio n of each di git from 9. The procedur es deve lope d for th e signed-2's-complement sys tem in the previous sectio n also apply to the signed- IO's-co mp le ment sys tem for deci ma l numbers . Add itio n is don e by sum mi ng all digits, incl uding the sign digit, and discard ing the end carry. Th is o pe ration assume s that all negative number s are in lO' s-co mple me nt fonn. Consider the add itio n ( + 37 5 ) + ( - 240) = + 135, don e in the signed-c omplement sys tem: o +9 o 375 760 135 The 9 in the leftmost po sition of the second number represents a mi nus, and 97 60 is the 10's comple me nt of 0240. T he two num be rs are adde d and the end carry is d iscard ed to obtain + 135. Of course, the decim al numbers insid e the computer, includin g the sign d igits, must be in BCD. The add ition is done with BCD digits as described pre viously. Sectio n 1.7 Binary Codes 21 Th e subtractio n o f decim al numbe rs. either un signed or in the slgncd- tu's-com ple me nt sys tem. is the same as in the binary case : Take the 10'l> comple me nt of the s ubtrahend and add it to the mi nue nd. Man y compute rs have special hard ware 10 pe rfo rm ari thm etic ca lcu lation s dir ectly with deci ma l numbe rs in BCD. Th e user of the co mpute r can speci fy pro grammed instruction s 10 perform the arithme tic operation wi th decimal numbers d irec tly. w ithout having 10 conve rt them to binary. Oth er Decimal Codes Binary cod es for deci ma l digits requi re a mi nim um of fou r bib pe r digit. Many different code s ca n be form ulated by arr anging fou r bits into 10 d istinct combinatio ns. BCD and th n..-c othe r repre sentati ve cod e s are shown in Tab le 1.5. Each cod e uses only 10 o ut of a po ssib le 16 bit co mbina tions that can he arr an ged with fo ur bits. The othe r six unu sed co mb inat ions ha ve no meaning and s ho uld be avo ided. BCD and the 2·U I code an: examples orweighted codes. In a weighted code. each bit position is ass igned a weighting factor in such a way Ihat each digit ca n be evaluated by add ing the we i~ h b of all the I '~ in the coded combination. Th e BCD code has weights of8. 4. 2. and I. which COITespe nd to the po wer-o f-two values of each hit. Th e bit assignment 0110. for ex ample. is interpreted by the weights to represent dccimalf because 8 x 0 + 4 x 1 + 2 x I + I x 0 == 6. Th e bit combination 110 1. when weighted by the respective digits 2421. gives the deci mal eq uivale nt of 2 x I + 4 x I + 2 x 0 + I x I == 7. Note that so me digits can be code d in two possible ways in the 242 1 code . For instance. decimal 4 ca n be assigned to bit co mbination 0 100 or 1010. since both combinatio ns add up to a total weight of 4. Table 1.5 four Differtmt Binary Codesfor the Decimal Digiti Decimal Digit BCD 8421 0 I , 0000 ClOOl (XlIO ,, 00 11 0 100 .1 6 0101 0110 7 Di ll , • Un used bil combi- nations 2421 Excess · ] 8,4, - 2, - 1 " "0 0000 ru u 1100 1 OIlXI 0010 0 101 0 11 0 0111 0011 Ol/ XI 1011 11100 011 1 0110 0 101 0 100 1011 10 10 1100 IlXlI 1010 lUll IOUI 110 1 111 0 1111 nco 1001 1000 11J1 lOW 1011 1100 0101 0110 0111 0000 (XXII (XIIO 1101 11 10 1111 1000 100 1 IOIU 11 0 1 111 0 11 11 000 1 00 10 00 11 1100 1000 11 0 1 11 10 22 Chap ter 1 Digital Systems and Binary Numbers The 242 1 and the excess-J codes are ex amples of sel f-complementing codes. Such codes have the property that the 9 's co m plement of a decimal number is obtained di rectly by changing I 's to D's and D's to I 's (i.e., by co mplementing eac h bit in the pattern ). For example. decimal 395 is repre sent ed in the excess-S code as 0 II0 1100 1000 . The 9 's co mp lement of 604 is represent ed as 1001 00 11 0 111, which is obtained simply by complementing ea ch bit of the code (as with the I 's co mplement of bi nary numbers) . The excess-S code has been used in some olde r co mputers beca use of its self-complementing prope rty. Excess-S is an unweighred cod e in which each coded co mbination is obtained from the corres po nding binary value plus 3. Note that the BCD code is not self-complementing. The 8, 4, -2, -I code is an exa mple of ass igning both positive and nega tive we ights to a dec imal code. In this case, the bit co mbi nation 0 I I0 is interpreted as deci mal 2 and is catculatedfrom 8 X O + 4 X I + ( - 2 ) X I + ( - I) x O =2. Gray Code The out put dat a of man y physical systems are quantities that are continuous. These da ta must be conven ed into digital form before they are applied to a digital system. Co ntinuous or analog information is converted into digital form by means of an ana log-to-d igital converter. It is sometimes co nvenient to use the Gra y code shown in Table l.o to represent digital data that have bee n co nverted from analog da ta. The adva ntage of the Gra y code over the straight binary num ber sequence is that on ly one bit in the cod e group chan ges in go ing fro m one num ber to the next. For example, in going from 7 to 8, the Gray cod e changes from 0 100 to 1100. Only the first bit changes, from to I ; the other three bits rema in the same. By contrast. w ith binary numbers the change from 7 to 8 will be from 01 11 to 1000 , which ca uses all four bits to change values. a Table 1.6 Gray Code Gr ay Code 0000 DecImal Equival ent o 0001 I 0011 0010 2 3 0 110 Oll t 0 101 4 0100 11 00 1101 ti ll 11 10 10 tO tOil 1001 1000 5 6 7 8 9 10 II 12 13 14 IS Section 1.7 Binary Codes 23 Th e Gray code is used in applicatio ns in which the norm al seq uence of binary numbe rs may produ ce an error or ambig uity d uring the tran sition fro m o ne numbe r to the ne xt. If binary numbers are used. a change. for ex ample. fro m 0 111 to 1000 rna)' prod uce an inter med iate erroneou s numbe r 1001 if the value of the rightmo st bit takes longer to cha nge than do the values of the ot her three bib . Th e Gray cod e eliminates this p roblem . since only o ne bit cha nges ils value du ring any transiti on between two num bers . A typical app licatiu n uf the Gray co de t, the repre sentation o f analog da ta by a cont inuo us c ha nge in the angular posi tio n of a sha n. Th e shaft is pa rtitio ned into segme nts. and each segme nt is assig ned a number. If adja cent seg me nts are made to co rres po nd with the Gr ay-code seq uen ce . a mbiguity is eliminated be twee n the angle o f the shaft and the value encode d by the se nsor. ASCII Character Code Man)' applications of digital co mputers requ ire the hand ling nul only of numbers. but also o f other characters or ..ymbols . such as the leiters o fthe alphabet. For instance , an insurance co mpany with thousands o f po licyho lders will use J computer to process ils files. To repre se nt the na me" and other pertine nt inform ation . it is nece:--"af)' to formu late a binary code for the letters o f the al phabe t. In add ition. the same binar y code IIlU"t represen t numerals and spec ial characters (such as 5 ). An alphan umeric character set is a set of c lements that includes the 10 decimal digits. the 26lcuI.'rsof rhe a lphabet. and a number o f special characters . Such a set COIItuin -, bel ween 36 and 64 clements if onl y ca pital letters are incl uded. or be lween 64 and 12S cle ments if both uppercase and lowercase letters are includ ed . In the first cuse. we need a binary code o f six bits. a nd in the seco nd. we need a binary cod e of seven bits. The standard binary cod e for the alphanumeric chuructcrs is the Amer ican Standard Cod e fo r Info rmatio n Intercha nge (ASC II), whic h uses seve n bits 10 code 128 characte rs. a s sho wn in Table 1.7. T he se ven bils of the code are designa ted by h i throu gh [,7. with h 7 the most sig nifica nt bit . Th e lett er A. for example. is represented in ASC II a:,> 100000 1 (co lumn 100 . row 000 1). The ASCII cod e also contains 94 graphic characters that can be pr inted and J 4 non printing characters used for various control functions. Th e graphic cha racters co nsist o f the 26 the 10 numer als (0 upperca se letters (A throu g h Z) . the 26 lowercase leit ers (a throug h thro ugh 9). and 32 "ped a l printable cha racters, such a" C'k , ". and S. Th e Jot co ntrol characters arc de signa ted in the ASC II table with abbreviated names. Th ey are listed agai n below the table with their functiona l names. Th e co ntrol characters are used for routing data and arra ng ing the primed text into a prescribed for mat. Th ere are three type s of co ntrol characters: forma l effecto rs. information scparmors. and commu nica tion- control charactcrs . Format effe ctors arc characters that co ntrol the layout o f pri nting . T hey include the fami liar word proc essor and typew riter contro ls such as backspace (BS I. horboma lrabuhnion (HTl. and carriage return (C R). Information separators lire used 10 sepc rure the data into di visions suc h as paragra phs and page s. TIley include cha racters such a... record separato r (RS ) and fi le separator (FS ). T he co mm unica tio n-co ntrol characters are useful during the transm ission o f tex t betwe en remote terminals . Exa mp les o f co mmuntca rio n-co mro l characters are STX tstan o fr exu and ETX (end of text I. which are used 10 frame a textmessage transmitted through telephon e wires. n. 24 Chapter 1 Digital Syste ms a nd Binary Num bers Table 1.7 American Standard Code for Information Interchange (ASCII) b,b,bs b4b Jb zb , 000 001 010 011 100 101 OOOJ l\"UL OLE SP 0 (0) , SOH STX ETX EDT DC. DC2 DC3 DC. "AB Q El'Q ~A K ACK BEL BS HT LF SYN 0010 00 11 0100 010 1 0110 0 11 1 1(0) 1001 lOW 1011 11 00 VT 1110 FF CR SO 1111 $I 110 1 1 1 3 •S ,, . 6 7 & ETB CA:-.i ( s EM SUB ESC FS ) 9 • + < • > as RS US I ? C 0 E F P R S T U V 110 111 • b q c ,d , f P ,r u v w a w H X I Y J Z j ,,z K L [ k { M N 0 \ 1 A b • m n 0 I } DEL Control c:ha raders /,\UL ~ull OLE SOH STX Sian of heading Stan of lell End of lexl End o f tran<;,mi!>sioo DCI DCl DC3 DC. Enquiry :'\A K Ackno.....ledge SYN ETX EDT E"\Q ACK BEL BS HT LF VT FF CR SO $I SP Rdl Back space Horizontal tab Line feed Vertica l tab ETB CAS Fonn feed EM SUB ESC FS Carriage return Shift OUI Shift in Space RS US DEL as Da ta-link escape Device comrol I Device comrot 2 Devi ce con trol 3 Device comrol 4 l'\egative acknowledge S)nchronous idle End -o(-lran ~ mi ssion block Cancd End o f medium Subsumte Eo;cape f-i le separator Group separator Record separator Unit separa tor Delete ASCII is a seven-bit code. but most computers ma nipulate an eight-bit quanti ty as a single unit called a byte, Therefore. ASC II characters most often are stored one per byte. Th e extra bit is sometimes used for othe r purposes. depending o n the application. For example . some printers recognize eight-bit ASCII characters with the mo st significant bit set to O. An additional Section 1.8 Binary Sto rage and Registers 2S 128 eig ht-bit characters with the most significant bit set to I are used fo r othe r symbo ls, such as the Gre ek alphabet or italic type font. Error-Detecting Code To detect errors in da ta communicatio n and processing. an eighth bit is someti mes added to the ASCII character to indicate its parity. ApI/dry bit is an extra bit included with a message to make the tota l num ber o f ls either even or od d. Co nside r the foll owing IWO characters and their even and odd purity: ASC II A = 100000 1 ASC II T = 1010100 With even par ity 0100000 1 11010 100 With odd parit y 1100000 1 0 1010 100 In eac h case , we insert a n e xtra bit in the left mo st posi tio n o f the co de to prod uce an eve n number of ls in the c ha racter for eve n parity or an odd num ber o f ls in the c harac ter for odd pa rity. In ge neral, o ne o r the ot her parity is adop ted. wit h eve n parit y be ing mo re co mmo n. Th e pa rity bit is he lpful in detecting error s durin g the transmission o f information from on e locution to another. Th is function is handled by generating an e ven pari ty bit at the send ing e nd for each character. The eight-bit ch aract ers that includ e parit y bits are transmitted to their destinaticn. The parity of each character is then checked at the receiving end. If the parity of the received character is no t eve n. then at lea..t one bit has changed va lue d uring the transmission. T his method detects o ne, three. or any odd co mbination o f errors in each character that is transmitted. An even combinatio n o f errors . however. goes undetected. and additio nal error detection codes may he neede d to take care of that possibility. What is dune afte r an er ror is detected depen ds on the particu lar a pplicatio n. O ne possibility is to reques t rermnsmiss lon of the me ssage o n the ass umptio n that the erro r was ra ndo m and will not occ ur again. T hus. if the rece iver detects a parit y error. it sends bac k the ASC II NAK (negative ackn owledg e ) co ntrol charac ter co ns isting of an eve n-parity e ight bits 100 10 101. If no error is de tectedthe receive r sends bac k an AC K (acknow ledge ) COIItrol character. namely. 00000 110. T he send ing e nd will respo nd to an NAK by trans mitt ing the message aga in until the co rrec t parity is recei ved. If. after a nu mbe r o f atte mpts. the transmission is still in err or. a message ca n he se nt to the opera tor to c heck for ma lfunc tio ns in the tra nsm issio n path. 1. 8 81NARY STORAGE AND REG ISTERS Th e binary info rmation in a d igital co mputer must have a physical e xistence in so me medium for storing indiv idua l bits. A hillary cell i.. a device that possesses two stable states and is capab le o f storing o ne bit (0 o r I ) o f info rma tion. T he input to the cell receives excitation sig· na l.. that set it to o ne of the two states. T he output of the ce ll is a ph ysical q uantity thai d istinguishes between the two states. T he inform at ion stored in a ce ll is I when the ce ll is in o ne stable ..tate and () whe n the ce ll is in the other stable state. 26 Chapter 1 Digital Systems and Binary Numbers Registers A register is a group of binary cells. A register with n cells can store any discrete quantity of information that contains n bits. The stale of a register is an n-tuple of l 's and O's. with each bit designating the state of one cell in the register. The content ofa register is a function of the interpretation given to the information stored in it. Consider. for examp le. a 16-bit register with the following binary content: II ()()()() 1111()()1()()1 A register with 16 cells can be in one of 2 16 possible stales. If one assumes thai the content of the register represents a binary integer. then the register ca n store any binary number from oto 2 16 - I. For the particular example shown. the content of the register is the binary equivalent of the decimal number 50. 121. If one assumes instead that the register stores alphanumeric characters of an eight-bit code. then the content of the register is any two meaningful character s. For the ASCII code with an even parity placed in the eighth most significant bit position. the register contains the two characters C (the leftmost eight bits) and I (the rightmost eight bits). If. however. one interprets the content of the register to be four decimal digits represented by a four-bit code. then the content of the register is a four-di git decimal number. In the excess-S code. the register holds the decimal number 9.096. The content of the register is meaning less in BCD. because the bit combination 11 00 is not assigned to any decimal digit. From this example. it is clear that a register can store discrete elements of information and that the same bit configuration may be interpreted differently for differe nt types of data. Register Transfer Adigital system is characterized by its registers and the components that perform data process ing. In digital systems. a register tran sfer operation is a basic ope ration tha t consists of a transfer of binary info rmation from one set of registers into another set of registers. The transfer may be direct. from one register to another. or may pass through data-processing circuits to perform an operat ion. Figure 1.1 illustrates the transfer of information among registers and demon strates pictorially the tran sfer of binary inform ation from a keyboard into a register in the memory unit. The input unit is ass umed to have a keyboard . a control circuit. and an input register. Each time a key is struck. the control circui t enters an equivalent eight-bit alp hanumeric character code into the input register. We shall assume that the code used is the ASCII code with an odd-parit y bit. The informatio n fro m the input register is transferred into the eight least significant cells of a processor register. After eve ry transfer, the inp ut register is cleared to ena ble the control to insert a ne w eight-bit code whe n the keyboa rd is struck again . Each eig ht-bit character transferred to the processor register is preceded by a shift of the previous character to the next eight cells on its left. When a transfe r of four characters is completed. the processor register is full. and its contents are transferred into a memory register. The content stored in the memory register shown in Fig. 1.1 came from the transfer of the cha racters " J:' " 0:' " H:' and " N" after the four approp riate keys were struck. Sect ion 1.8 Binary Storage and Reg ist ers i'::'::=::±=:-:-c:':"::=~::::c=:'1 27 AI.......,· Re~C'r " , - ,•or Rcgi<,!('r InpUI RegiMer :' ('OSTROl Keyboard ',' ..,. ~: FIGURE 1 .1 Transfer of Information among reg lslers To process di scre te q uantities of information in binary for m. a computer rnuvt be pro vided with devices thai hold the data 10 be processed and with ci rcu it elements that manipulate individual bits of infor mal ion. Th e device most common ly used fo r holding data is a re gister. Binary variables are manipulated by means of di gital log ic circuits . Fig ure 1.2 illustrates the process of adding two ID-bit binary nu mbers. The memo ry unit whic h normall y co n..ists of millions of registers. is shown with only th ree of it.. reg ister s, The pan of the proces ..or unit shown co n..i..l, orr nree rcgi ..lt.:rs-RI . R1. and R3-togclhcr with digilal logic circ uits that man ipul ate the hits of RI and R2 and tran ..fer in to RJ a bin ary num ber cqcalto the ir a rithme tic " UIlI . Mem ory regi..tc rs store infor mation anti arc incapable of processi ng the two o perands. Howe ver. the informa tion store d in mem ory can be transferred to proce sso r register s. and the res ults obtain ed in proce....or registers can he transferred back iruo a mem ory register for storage until needed aga in. Th e dia gram she w.. the conten ts of IWO o pera nds transfer red from two mem or y registers into RI and R2. Th e digitallogic ci rcuits produce the sum, which is transferred to regi ster R3. T he co nte nts of RJ can now be trans(erred back 10 one of the mem ory regis ters . The laS! two exa mples dem onstrated the information -flow capa bilities of a digital syste m in a simple manner; The registers of the system are the ba..ic eleme nts for Moring and hold ing. the binary informatio n. Digital logic circui ts process the binary inform ation stored in the 28 Chapter 1 Digital System s and Binary Numbers ~1EMORY uxrr 10000000000 Operand I Sum 0011100 0011 Ope reed 2 000 10000101 OOO I OOOO I O I RI 1 Digitallogic circuits for -...j 0 1 OO1 0 0 01 1 1R3 binary addition 1 0011lOOOO1l R2 - PROCESSOR !.N IT FIGURE 1.2 Example of binary inform ation processing registers. Digital logic circuits andregisters are covered in Chapters 2 through 6. Tbe memory unit is explained in Chapter 7. The description of register ope rations at the register transfer level and the design of digital systems are covered in Chapte r 8. 1.9 BINARY lOGIC Binary logic deals with variables that take on two d iscre te values and with ope rations thai assume logical meaning. The two values the variables assume may be called by different names (true and/alse. yes and no, erc.). but for our purpose, it is co nvenient to think in terms of bits and assign the values I and O. The binary logic introduced in this section is equivalent to an algebra called Boolean algebra. The formal presentation of Boolean algebra is covered in more detail in Chapter 2. The purpose of this sect ion is to introduce Boolean algebra in a heuristic manner and relate it to digitallogic circuits and binary signals. Sect ion 1.9 Binary Logic 29 Definition of Binary Logic Binary logic constsrs of bina ry varia bles and a set of logical operations. The variables are desigouted by letters of the alphabet. such as A, H. c. x.y. Z. etc .. with each variable havi ng two and only Iwodistinet possible values : I and O. The re are three baste logical operations: ANO. OR , and NOT. 1. AND: T his operation is represented by a dor or by the absence o f an operator. For exam ple. .r ' y = z or xy = z is rcad-r Af\D y is equal to z." Th e logical operation Af\ D is inte rpre ted 10 me an that z = I if and o nly if .r = I and .v = I; o the rwise ;: = O. (Reme mber that .r, y. and z arc binary varia bles and ca n be equ al either to I or O. and nothing else. ) 2. OR: T his operation is represemed by a plus sign. For exa mp le. .r + ." = :: is read vr OR yls cqual ro z.vmea ntng that z e l if x = l o r if y = l ori f both x = l and y = 1. lf both .r = D and y = uthen c = O. 3. NOT: Th is ope ration is represe nted by a prime (som etimes by a n overbar). For e xample , .r " == z (or x = c) is rea d " not x is eq ual 10 : :. mea ning that z is what .r is not. In other words . if .r = I. then z = 0, bUI if .r = O. then z = 1. Th e NOT operatio n is also referre d to as the co mpleme nt operation. since it changes a I to 0 and a 0 to I. Binary log ic resem bles binary arit hme tic. and the ope rat ions AN D and OR have similarilie s to multiplication and add ition. respectiv el y, In fact. the symbo ls used fo r Al\'D and OR are the sa me as those used for multiplication and additio n. Howe ver, binary logic should nOIbeconfused wi th binary arithmetic. One sho uld rea lize tha i an arith meti c varia ble designa tes a num ber that may co nsis t of many d ig its. A logic variable is alway s e ither I or O. For exa mple. in binary arithmetic. we hove I + I = 10 (read "one plus one is equal 10 2") , whereas in binary lo gic, we have I + I = I (read "one O R o ne is equa l to one" ). For eac h combination of the va lues of .r and j', the re is a value of z spec ified by the definilion o f the logical operation . De finition s of log ical ope rations may he listed in a compact form call ed lr11l11 tab les, A tru th table is a table of all po ssible combination s of the var iables . sho wing the relat ion betwee n the valu es tha t me variable s may take and the re sult o f the ope ration . Th e truth ta bles for the operat io ns A ND and OR with var iable s .r and .v arc obtai ned by list ing :111 pos sible values that the varia bles may have whe n combined in pai rs. For eac h co mb ination. the result o f the ope ration is the n listed in a se parate row . T he truth table s for AN D. OR . and NO T are give n in Tab le 1.8. Th ese tables cle arly dem onstrate the definition of the ope rations . Table 1 .8 Truth Tables of Logical Operations AND .r 0 0 I I Y X Y 0 I 0 0 0 I 0 0 I I 0 I 0 I 0 I NOT OR .t · Y .t + .1' 0 I I I m I II 30 Chapter 1 Dig ital Systems and Binary Numbers Logic Gates Logic ga tes are electronic ci rcuits that operate on one or more input signals to produ ce an OUt put signal. Elec trica l signals such as voltages or currents e xist as ana log signals having values over a given range. say. 0 to 3 V. but in a d igital syste m are interp reted 10 be e ither of two recog nizable value s. 0 or I. Volt age-oper ated logic circ uits respo nd to two separate voltage level s that represent a binary variable equal to logic I or logic O. For example . a part icular digita l system may defi ne logic 0 as a signal equal to 0 vo lts and log ic I as a signal equal to 3 volts. In prac tice. eac h volt age le ve l has an acceptab le range . as shown in Fig. 1.3. The input terminals of d igita l circuits acce pt binary signals within the allowable range and res pond at the outp ut terminals with binary signals that fall withi n the specified range. The intermedi ate region betwee n the allowed reg ions is crossed only duri ng a state transition. A ny des ired informati on for co mputing or control ca n be operated on by passing binary signals thro ugh various comb ination s of logic gates. with eac h signal representing a particular binary vari able . The grap hic sy mbo ls used to designate the three types of gates are show n in Fig. 1.4. T he gates are block s of hardware that prod uce the eq uivalent of logic- I or loglc-O out put signals Volts 3 I Si,,,1 ra nge for logic I 2 I T ransitio n occurs betweenr ese limits 1 I S;,,,1 ra nge for logic 0 o FIGURE 1.3 Example of binary signals : ~y :~)' (a) T wo-input AND gate (b ) Two-input OR gate FIGURE 1.4 Symbols for digitalloglc circuits (c) NOT gate or inverte r Prob lems r 31 -.!!.In - 'L-,,-_.!!.{J {J o lJ FIGURE 1 .5 Inpul -ouiput signals for gates ~~ " A .,. n + C + f) C D (8 ) Th ree -input A;-';O gate (h) Four -input O R gate FIGURE 1.6 Gate s with multip le Inputs if input logic requirements arc satisfied . The input sig na l~ x and y in the Al"\D and O R gates may exist in one of four pos sible states: 00 . 10. I I. or OI. Th ese inp ut signals are shown in Fig . I j toge ther with the correspo nding ou tput signal for each gale. Th e tim ing d iagram s illustrate the response of each gate to the four input signal combinations. The horizontal axis of the lim ing di agram represent s time. and the ve rtical axis sho ws the signal as it changes be tween the tw o possih lc volt age level s. 'm e low level represents logic O. the high levellogic 1. Th e A!\1) gate respon ds with a logic I output signal when hoth input signals are logic I. The OR gate responds with a log ic I output signa l if any inp ut signal is logic I. The NOTgate is co m monly referred to as an inverter. TIle reaso n for this name is apparent from the signal respon se in the tim ing diagram . which shows that the output signal invert s the logic se nse of the inp ut signa l. AND and O R gales m ay have mor e than two inputs. An A ND gale w ith th ree inputs and an O R ga te with four inp uts arc show n in Fig . 1.6. T he three-input A ~ D ga le resp on ds w ith logic 1 output if all three inpu ts arc logic I. T he outp ut produces logic 0 if any input i:-, log ic O. T he four- Input OR gate responds wi th log ic 1 if any inp ut is logic I: irs ou tput be co mes logic 0 on ly when all input s arc logi c O. P RO BLEM S Answers In problcmv marked ..... nh • appear at the end uf the book. 1.1 Li" the octal and he xadec imal numbers from 16 to 32. Using A. B. and C fo r the lust three J ig!ls. listthe numb ers from II 1\ 1 28 in base 13. 1 .2- What is the exact number otbyres in a system that contatne la) J 2K hytcS. lh ) (w M hyIC" and (e ) 6 AG bytes? 32 Chapter 1 1 .3 Digita l Syste ms a nd Binary Numbers Convert the following numbers with the indicated bases to decimal: (b)* ( 198)12 (a)* {43 10h ~) { lli ) 8 W ) (5~ l b 1 .4 What is the largest binary number that can be expressed with 14 bits? What are the equivalent decimal and hexadecimal numbers? 1 .S · Determine the base of the numbers in each case for the following operations to be correct: 14/2 "" 5, (b) 54/4 = 13, (c) 24 + 17 "" 40. (a) 1 .6* The solutions to the quadratic equation x 2 base of the numbers? 1 ,7* Convert the hexadecimal number 68BE to binary, and then convert it from binary to octal. 1 .8 Convert the decimal number 43 1 to binary in two ways: (a ) Convert directly to binary; (b) convert first 10 hexadecimal and then from hexadecimal to binary. Which method is faster? 1 .9 Express the following numbers in decimal : (a)* {1011O.OIOlh (c)* {26.24)g (e) (lO IO.lOlOh - II x + 22 "" 0 are x = 3 and x = 6. What is the (b)* ( 16.51 Ib (d) (FAFA)16 1 . 10 Convert the following binary numbe rs to hexadecimal and 10 decimal: (a) 1.100 10, (b) 110.010. Explain why the decimal answer in (b) is 4 times that in (a). 1 , 11 Perform the following division in binary: 111011 + 101. 1 ,1 2*' Add and multiply the following numbers without converting them to decimal. (a) Binary numbers 1011 and 101. (h) Hexadecimal numbers 2E and 34. 1 ,1 3 Do the following conversion problems: (a) Convert decimal 27.3 15 10 binary. (b) Calculate the binary equivalent of 213 out to eight places. Then convert from binary to decimal. How close is the result to 213? (c) Convert the binary result in (b) into hexadecimal. Then convert the result to decimal. Is the answer the same? 1 ,14 Obtain the I' s and 2's complements of the following binary numbers: (a) I()()()()OO() (b) OOOOOOOO (c) 11011010 (e) 10000 101 (d) 0 11 10110 (f) 1111 111 1. 1.15 Find the c's and the to's complement of the following decimal numbers: (a) 52,784,630 (b) 63,325,600 (c) 25,000.000 (d) 00,000,000. 1 .1 6 (a) Find the 16's complement of B2FA. (bl Conv ert B2FA to binary. (c) Find the 2's complement of the result in (b ). (d) Convert the answer in (e ) 10 hexadecimal and compare with the answer in (a). Problems 1.17 Perf orm subu ecuo n on lht given unvigned num bers u\in ll lilt 10's co mplemen t o f the: suberahend . Where the re\u1l ~houlJ be negalive.lind it' IO·~ complemenl and affh a minu\lI ign , Ver ify )our an..wers. (a ) 6.428 - 3.409 (c) 2.0..0 - 6. 152 1.18 33 Ib) 125 - 1.Il.OO (d ) 1.63 1 - 745 Perform wbt raction on the give n unsigned binary numberv u..ing ltat 2's compleme nt of the !tUblrahend . Where the re..uh ..hoo ld be I1C'f alive. find it v 2'.. ccm plemen r and affi x a minu s sign. ( a) 10011 - J(XJ()J Ib) I(O) JO - IMII ( e ) 1001 - 101000 fd) I I(J(XJO - 10101 1.1 9'" The following decima l numbers ;'l~ ..hown in dg n-magnitude form : +9.286 and + 80 1. COO\'crt the m 10 <,ignai. 1O'l>-eomp lcmcnl form and perform tbe following operat ions (note thai the sc m is + JO.627 and requ irelo five digib and a sigm. ( a) (+ \.1. 21\6 ) + (+ 80 1) ( b ) ( + 9.286 ) + ( - SOl ) (c ) ( - 9.286 ) + ( H OI ) Cd ) ( - 9 .2X6 ) + ( - 80 1) 1 .20 Convert decimal + 46 and + 29 to binary. using the signed-2' \-compleme nl representation and en oug h digil' tu acc ommodate the numbe rs. The n pcrfonn the binary equivalent o f (+ 29) + (- 49 ). ( - 29) + (+49) . and( - 29 ) + ( - 49) . Conv ert the ans we rs back In deci mal and verify lhal the y arc correct. 1.21 If the numbe r.. ( + 9.742 )10 and ( + 64 1he are in sig ned magnitude formal. the ir sum is ( + 10.383 110 and rtquire' five d igits and a ..ign, Co nvert the numbers II) sig ned. I O·~-eomple. mem form and find lhe follo wing sum..: fa) (+ 9.74 2 ) + ( + 64 1) ( b) ( + 9.14 2) + (- 6.JI ) lc t (- 9.14!) + (+M I) tdl ( - 9.142 ) + (- 641) 1 .22 COO\'et1 decimal 11.123 to bo!: h BCD and ASC II codes. For ASC II. an even parity bit is 10 be ap~nded at lhe Iefl. 1. 2 ! Represent tbe unvigned Oecnlla l numbers 8-l! and 5.'7 in RCD. and then sbo.... rbe steps to fonn their vum, 11C'Cer..- 'kil')' 1.24 Formulate 3. .... eigbted I:li nary code for lhe decimal di~ i t" u,ing .....eigh t.. (a )- b. 3. I. I I b , b. 4 . 2.1 1 .2.5 Represcnl lhc dfi: imal numhl:r 5.1.\7 in (a ) BCI>. (h j e ~(e~ ,- 3 (od e. fc) 242 1 code . and (d) a 6.\ l l wde . 1 .26 Find th... 9\ com plement ofdecim:115. 137 and e x pre~<, it in 242 1 cooe . Sho.... th3.1 the result is lhe 1"s. complement of the answer 10 tc ) in Problem 1.25. This dernon-ararcs that the 2421 code i, self-complememing . 1.27 A s ~i ~n 3. binary code in some orderly manner to the :'l2 playing cards. Use the minimum number ofbits. 1.28 wn re the ex presvicn " G. Hoole" in ASC II. using an e i~ lll - bil ......sde. Incl ude the po.: riud and the space. Trt3.1 the leftmn,1 bil of each character as a panty bil. Each ei ght-bit code lohould have e..en parily. lGc orgc Boote was a 19th ( en lul) marhemaucia n. Boo lea n algebra . introduced in the neXlchapeer. bean. his name .) Chapter 1 Digital Systems a nd Binary Numbers 1 .29'" Decode the following ASCII code : 1000010 110100 1 1101100 1101100 100011111000011110100 110010111 1001 1. 1.30 The following is a string of ASC II characters whose bit patterns hav e been converted into helladecimal for com pactnes s: 7J F4 E5 76 E5 .fAEF 62 73 . Of the eight bus in each pair of dig its. the leftmos t is a parity bit. The remainin g bits are the ASCII code. (a) Convert tlv: string to bit form and decooe the ASCII. (b) Determine the parit y used : odd or even ? 1.31 · How many printing characters are there in ASCI I? How many of them are special charac1ers (noI: letters or numera ls)? 1-32" What bit must be com plemented 10 ch ange an ASC II leiter from capital to lowercase and vice versa? 1.33· The state of a 12· bit register is 1000 100 1011 1. What is ns contenr if it represents (a) (b) (c) (d) three decimal dig its in BCD? three dec imal digits in the excess-a code ? three decimal digib in the 84-2· 1 code ? a binary number? 1 .34 List the ASCI I code fur the 10 decimal digits with an odd parity bit in the leftmost position . 1.35 By means of a timing diagram sirnilar to Fig. 1.5. M10w the signals of the oolpUlS f and g in Fig. P I .35 as functions of the three inputs a. b. and c. Use all eight possible comb inations of a. b.:UId c. • bc H '- r FIGURE Pl.35 1.36 By mean s of a timing diagram similar to Fig. 1.5. show the signals of the outpu ts f and g in Fig. PI .36 as functio ns of the two inputs a and b. Use all four possible combinations of a and b. • b FIGURE. P1 .36 References 3S REFERENCES 1. CAVANAGH. J. J. 19K4 . lJigital COli/pilfer A rithmet ic. Ne w York: .'-.k Gra w-Hill. 2. M A7'l O. M. ~1 . 19K8 . CO/lll' lIter Eng ineering: Hardware Design . En glewood Cliffs. N J: Pren tice - 1. Hall. N!:LSO:-;. V. P.. H. T. NAGLe, J. D. IRWIN. and B. D. CARROLL. 199 7. Digital Logic CircuitAnu lysis mtd Design. Upper S addle River, NJ: Prentice Hall. 4. SCHMID. H. 1974 . Decimal Computa tion . New York: John W i le y. Chapter 2 Boolean Algebra and Logic Gates 2 .1 I N T RO D U CTI O N Becau se binary logic is used in all of toda y's digital co mputers and de vices. the cost of the circuits that implement it is an important factor addressed by designers. Finding simpler and cheaper. but equivale nt. realizations of a circuit can reap huge payoffs in red ucing the overall cost of the design. Mathematical methods that simplify circu its rely primarily on Boo lean alge bra . There fore , this chapter provide s a basic voca bulary and a brief founda tio n in Boolean algebra that will enable you 10 optimize simple circuits and 10 understand the purpose of algorithms used by software tools to optimize complex circuits invo lving mill ions of logic gates . 2.2 BASIC DEFINITIONS Boolean algebra. like any other deductive mathematica l system. may bedefined with a SCi of elements. a set of ope rators. and a number of unproved axioms or postulates. A set of elements is any collection of object s. usually having a common property. If S is a set, and x and y are certain objec ts. then x E 5 means that x is a member of the set 5 and y Ii!: 5 means thai }' is not an eleme nt of 5. A set with a denumerable num ber of ele me nts is spec ified by braces: A = { I, 2. 3. 4 } indicates that the elem ents of set A are the numbers 1, 2, 3, and 4. A binary operator defined on a set 5 of elements is a rule that assigns, to each pair of elements from S, a unique element from 5. As an example, co nsider the relation a · b = c. We ~y that .. is a binary operator ifit specifies a rule for finding c from the pair (a. b) and also if a, b, C E S. However... is not a binary operator if a. b E 5, if C Ii!: S. 36 Section 2.2 Basic Definitions 37 The postula tes o f a mat hem at ical ..ysrern form the ba sic assumpt ions from which it is possible to deduce the- rules. theorem s. and prope rtie s o f the s),..tern . Th e most common po ..tula tes used to formu late van ou .. alge braic struc tures are as fol lo w..: I. Closure, A se t S is closed wit h re..peer to a binary ope rator if. (or ever)' pair of e leme nts o f S. the binary o perator specifies a role for ob taini ng OJ. unique element of S. For example. Ih~ set of natural numberv N = 1.2. J• ..a•••• } i.. cl osed with re..pee r to the bin ary r operator + by the rule .. of arithmetic addition. since. for any Q. b e N, there is a unique c E N such that a + b = r, The set of nat ural numbers i.. IWI closed with respect to the b inary o perato r - by the ru les of arithmetic sub traction. because 2 - J = - I and 2. J eN. bU1 ( - I ) .N. 2. Associative full' . A binary operato r '" o n a "C'I S i.... aid 10 be associative whene ver (x " y ) · .: = x * (y * .:) for ullx. .". : .e S J. Comnuaattve law. A bina ry opcrator > on a sci S i.. sa id to be co mmutative wheneve r x · y = y ·x for all .\', y e S ~. Idt'ntity element. A set S is said 10 ha ve a n ide ntity element with respect to a binary operation • o n S if there exi sts an ele ment r e S with the-propert y that e· x = x· t':::: x for everyr e S Example: Th e ele ment 0 is an identity element with respec t 10 the binary opera tor + o n the set of intege rs 1 • { . . .. - 3. - 2. - I. O. I. 2. 3•. .. }...ince .r + 0 = 0 + .r = .r for anya e The ~1 r of natural numbers. N. ha s no Identity ele me nt. ..ince 0 is excl uded from the set . 5. Inve rse , A se t S hav ing the identity element t' with respect to a binary operator • is sa id 10 ha ve an Inverse 'A bcncver. for every .r e S . tbe re exists an ele ment ye S such that x"',r = t' Example: In the set o f integers . I. and the ope rator + . with t.' = O. the inverse of an elerneru a is {r-«}. since n + (- a ) = O. 6. Distributive law. If • and • are IWO binary ope-rato rs o n a set S• • is sa id 10 bedistributi vc o ver • w henever x "'(Y ' : ) = (x"'y) · (x".:) Afield is an exa mp le o f an a lgeb raic structure. A field is a set o f ele me nts. toget her with two binary ope rators. each havin g propert ies I thro ugh 5 and bo th o perators combining 10 g ive pro pert y 6. Th e set of rea l num be rs. together with the binary ope rators + and - . fonns the field o f real numbers. Th e fie ld o f rea l numbe rs. Is the ha.\ is for ari thme tic and o rdinary algebra. Th e operators a nd po stula tes ha ve the foll owin g meanin g..: The binary operator + defines add ition . The add itive identity is O. 38 Chapter 2 Boolean Algebra and logic Gates The add itive invers e defin es subtraction. The binary operator • defin es multiplication . The multiplicative identity is I . For a * O. the multipli cative inverse of a = Ila defi nes div ision (i.e.• a ' l l a = I ). The only distributive la..... applicable is that of . over +: a · (b + c) 2 .3 ~ (a · b) + (a · c) AXIOMATIC DEFINITION OF BOOLEAN ALGEBRA In 1854. George 8 00le de veloped an algebra ic system now called Boolean algebra. In 1938. C. E. Shannon introdu ced a two-valu ed Boolean algebra called switching algebra that represented the propert ies of bistabl e electri ca l switching cir cuits. For the form al defi nition o f Boolean algebra. .....e shall employ the postu lates formulated by E. V. Huntington in 1904 . Bool ean algeb ra is an algebraic struct ure defined by a set of e lements. B. toget her w ith t.....o binary ope rato rs. + and - , provided thai the follo ..... ing (Huntington) po stulates are satisfied; I. (a) The structure is closed w ith respe ct to the operator +. (b) The structure is closed w ith respect to the operator - . 2. (a) The element 0 is an identity eleme nt w ith respect to +; thai is. x + 0 = 0 + x = x . (b) The element I is an identity element w ith respect to -: that is. x · I = I · x = x. 3. (a) The structure is commutative with respect to + : that is. x + )' = )' + .r. (b) The structure is commutative with respect to - : that is. x ' )' = )' . x . ... (a) The operator . is distributi,·eover + : thatis.x · ()' + :) = (x ' )') + ( x ' ;), (b) The operator + is distributive over - : that is. x + (y - c} = (x + y ) . ( x + z). 5. For every element .r e B. there e xists an element x' e 8 (called the such tha t (a) x + x' :::: I and tbjx - x' :::: O. compl~m~nt of x) 6. Th ere exist at least two element s x; y e B such tha t x :;:. )'. Comparing Boolean algebra with arithmetic and ordinary algebra (the field of real num bers). we note the follow ing differences: I. Huntington postulates do not include the associa tive law. However. this law holds for Boolean algebra and can be derived (for both operators) fro m the other postulates. 2. Th e distributive law of + over' (i.e .• .r + (y . z) - (x Boo lean algebra. but not for ordinary algebra. + y) . (x + z» . is valid fo r 3. Boo lean algebra does not have addi tive or multiplicative inverses: there fore. the re are no subtraction or division operations. Sect ion 2.3 Axiom at ic Definition of Boolean Algebra .a. 39 Po stulate 5 defines an operator ca lled the co mplement that is not ava ilable in ordi nary algebra. S. O rdina ry alge bra deal s with the real numb ers. which constitute an infinite se t of element s. Boo lean algeb ra dents with the as yet undefined set of clem ents. B, but in the two-valued Boolean algeb ra defined next (and of interest in our SUbsequent usc of that algebra ). H is defined as a se t with only two elements. 0 and I. Boolean algebra resembles ordinary algeb ra in some res pects. Th e cho ice o f the sy mbols + and , is inte ntio nal. to fac il itate Boo lean alge braic man ipulati on s by perso ns already familiar wit h ordinary algebra . Although one can use some know ledge from ordi nary al gebra 10 dea l with Boolean algebra. the beg inner must he ca reful not to substitute the rules of ord inary algebra wher e they are not applicable. It is important to d istinguish between the c leme nts of the set o f an algebraic structure and the varia bles of an alge braic system. For example . the clement s of the field of rea l numbe rs are numbe rs. whereas variables such as a , h. c. etc.• used in ordinary algebra. arc symbo ls that .\'Iandfor rea! numbers. Similarly, in Boolean algebra, one defines the cle ments o f the SCi H, and variables such as .r. j-, and ; are merel y sym bols that represe nt the cle ments. At this poi nt. it is impo rtant to realize that . in order to have a Boo lean algebra, one must show thai 1. the clements o f the se t 8 . 2. the rules of oper ation for the two binary operators. and 3. the se t of el em en ts. B. together with the postulat es. IWO ope rators. satis fy the six Huntington O ne ca n formulat e ma ny Boo lean algebras, depending o n the choice of elements o f fl and the ru les of ope ration. In our subseq uent work , we deal only with a two-valued Boolean alge bra ti.e.• a Boole an algebra with on ly two ele ment s }, Two -valued Boole an a lgebra has applications in set theory (the alg ebra of classes) and in propo sitional log ic . O ur interest here is in the applica tion of Boo lean algebra to gme-typc circuits. Two -Valued Boolean Algebra A two -valued Boo lean algeb ra is def ined on a se t of two eleme nts. 8 :::: {O, I}. with rules for the two binary operators + and, as shown in the following ope rator table s (the rule for the complement operator ls for verification of postulmc 5): ~ o o I I n o o o o I I I x y o o o I I I o I x+ y n I I I l o I I o 40 Chapter 2 Boolean Algebra and logic Gates These rules are exactly the same as the AND. OR. and NOT operations. respectively. defined in Table 1.8. We must now show that the Huntington postulates are valid for the set 8 "" {D. I } and the two binary operators + and ". 1. That the structure is clou d with respect to the two operators is obvious from the tables. since the result of each operation is either I or 0 and I. 0 E B. 2. From the tables. we see that (a) 0 + 0 = 0 0 + 1 = I + 0 = I; (b» ) ' ) = 1 1' 0 =0' 1 = 0. This establishes the two identity elements. 0 for late 2. + and I for ' . as defi ned by postu- 3. The commutative laws are obvious from the symmetry of the binary ope rator tables. 4. (a) Th e distribllti ve law x ' (y + z) = (x · y) + (x ' e) can be shown to hold from the operator tables by forming a truth table of all possible values of .r, y. and z. For each co mbination. we derive x · (y + z} and show that the value is the same as the value of (x 'y ) + (x ', ), x y x y + x x o(r + z ) x·y X' x (x ' r ) + (x ' z) 0 0 0 0 I I I I 0 0 I I 0 0 I I 0 I 0 I 0 I 0 0 I I I 0 I I I 0 0 0 0 0 I I I 0 0 0 0 0 0 I I 0 0 0 0 0 I 0 I 0 0 0 0 0 I I I ) (b) The distributive law of + over' can beshown to hold by means of a truth table similar to the one in part (a). 5. From the complement table. it is easily shown that (a) .r + x' = I. since 0 + 0' = 0 + I = I and 1 + ) ' = I + 0 = I. (b) x - x ' = O. since 0 · 0 ' = O' I = 0 and I ' I ' = I ' 0 = O. Thus, postulate I is verified. 6. Postulate 6 is satisfied because the two-valued Boolean algebra has two elements, I and O. with I 'F O. We have j ust established a two-valued Boolean algebra having a set of two elements. I and O. two binary operators with rules equivalent to the AND and OR operations. and a complement operator equivalent to the NOT operator. Thus, Boolean algebra has been defined in a fonnal mathematical manner and has been shown to beequivalent to the binary logic presented heuristically in Section 1.9. The heuristic presentation is helpful in understanding the application of Boolean algebra to gate-type circuits. The formal presentation is necessary for developing the theorems Section 2.4 Basic Theorem s and Properties of Boolean Algebra 41 and propert ies of the algeb ra ic system. The two-valued Boo lean algebra de fined in this section is also called "switching algebra" by engi neers . To emphasize the similari ties betwee n two-value d Boo lean algebra and other binary systems , that alge bra wa ... culled "'hinary logic" in Section 1.9. From hen: on . we shall dro p the adjective "two-valued' Ir om Boo lean algebra in subsequent disc uwions. 2 .4 BASIC THEOREMS AND PROPERTIES OF BOOLEAN ALG EBRA In Sect ion 2.3. the Hunt ington po... tulut es w ere listed in pa irs and designat ed by pan (a ) and pan (b l. O ne pari may he obt a ined from the oth er if the bi nary operato rs and the ide ntity ele ments are interc hanged . T his important properly of Boolean algebra is called the duality principle and slates th at every al ge braic ex pre ssion deducible fro m the postula tes o f Boo lean a lgebra remains valid if the operators and ide ntity elements arc interchan ged. In a two- valued Boo lean alge bra. the ide ntity e lements and the clement s o f the se t B are the same : I and O. Th e duality prin ciple has ma ny npplic atiuns . If the dual of an al gebraic e xpres sion is desired. we sim ply intercha nge OR and AND o perators and replace I 's hy O's and O' s by ls. Basic Theorems Tab le 2.1 lists six theorems o f Boo lean algebra and four of its po..tulates. T he not ation is slmplifi ed by omittin g the binary ope rator whe ne ve r do ing so does not lead to confusio n. The theore ms a nd postul ate s listed are the most basic re lationships in Boo lean alge bra . The theorem s. like the po stu lmcs , are listed in pairs: each relation is the dual o f the one paired with it. The pos tula te s arc basic axioms of the algebraic structure and nee d no proo f. Th e th eorems m ust be proven from the po..tulares. Proofs o f the theorems with one variab le are presented next . A t the ri ght is listed the number of the postu late which j u..rifl es tha t particu lar step o f th e proof. Table 2.1 Postulates and Theorems of Boolean Algebra (a ) Theorem 2 I '" I (x ')' '" .r (a l .r + Y '" )' ... .l (a l x + (y + .:) '" (.l + r) + : la ) .1(Y + .:) '" .l." + .l : (a l (x + .1')' '.1' (a l x + xy '" x Th eorem :\. invol utio n Postulate .l , co mmu emve Theorem a, acsoclauve Postulate -f. d ictribu nve Theorem 5. DeMorgan Theorem 6. absorpt ion ( a) Ca) ( a) .r + 0 '" Post ulat e 2 Po ..tulare 5 Theorem 1 .r x + .r" '" .1 +.I " .t .r + Ib) Ib) .I ' 1 - .r x·x' '" 0 .r ( b) I "X '= (b ) .1 "0= 0 (b l .l.'y "' )'x (b ) .fer:) '" (x.\'): (b) (bJ (b) .\ ... y: '" (.t + Y)( ,l' + z) (.1',1')' = \., + \ .1( X + y) = .r 42 Chapter 2 Boolean Algebra and Logic Gates THEOREM l ( a ) : x + x = x. Statement x+x = = = = (x +x ) ' 1 (x + x )( x + x ' ) x + x x' x +O Just ifica tion postulate 2(b} 5(a) 4(b) 5(b) 2(a ) THEOREM 1 ( b): x · x = x. Sta tement x 'x =xx +O = xx + xx' = x( x+ x') = x· 1 = x Justinca tion postulate 2(a) 5(b) 4(a) 5(a ) ' (hI Note that theore m I(b) is the dual of theorem I(a) and that each step of the proof in pan (b) is the dual of its counterpart in pan (a). Any dual theorem can be similarly deri ved from the proof of its corresponding theorem. THEOREM 2(a): x + I = I. Statement x + I = I · (x + l ) ~ (x + x' )(x + 1) = x + x' · l = x + .e' = 1 J ust inca tlon postulate 2(b) 5( a) 4(b ) 2(b) 5(a) THEOREM 2 (b ) : x · 0 = 0 by duality. THEOREM 3 : (x')' = x . From postulate 5. we have x + x ' = I and X" x' "" O. which together define the complement of .r. The complement of x ' is x and is also (x'}'. Therefore. since the complement is unique. we ha ve (x ')' = x. The theore ms invo lving two or three variables may be prove n algebraically from the postulates and the theorems that have already bee n proven . Take. for example. the absorpt ion theorem : Section 2.4 BasicTheo rems and Prope rties of Boolean Algebra THEOREM 6 ( 0) : , + .fY ....r. SlJIh,.menl .r + .r)' J iWinca Uon x-I + .r y f'O!'lulate 1lb ) ., (1 + ;\,) .,,, + 1) 3(.) .r (y THEOREM 6(b): 43 "'" .1 '1 2(a) = • 2(bl .r ( x .... y ) "" x by duality. The theore ms of Boole an a lgebra ca n be pro ven by means of truth tables. In truth tables, both sides of the rela tion are checked to sec whether they yield identical results for all possible combinations of the variables involved. The following (ruth table verifies the first absorptio n theorem: , x " 0 I 0 I o I I 3 x + xy n o o 0 I I I 0 Tbe algebraic proofs of the associa tive law and lXMorgan 's theore m are lo ng and will not be shown here . Ho w ever. their validity is easily shown .... ith truth tables , For example. the IJUth tab le tor tbe liN Dl:Morgan 's theorem. ( .r + yY "" x'y '. is as follows: .< o 0 I I , 0 1 0 I x + , 0 I I I ( x .... 1 0 0 0 ,r x' " I 0 1 0 1 () () ) x', ' I 0 0 0 Operator Precedence The operator precede nce for eva luating Boolean exp ress ions is ( I ) parenthese s. (2) NOT, (3) AND. and (~) O R, In other words, expressio ns inside paren theses must be e valuated before all other operations. The nell.l operation thai ho lds precedence is the co mplement. and then follo ws the A r\ D and, finally, (he OR. As. an exa mple. co nsider the truth table for o ne of DeMorgan' s theorems. The left "ide of the exp ressio n is ( .f + v}'. Therefo re, the express ion inside the pare ntheses i.. evaluated first and the result then co mplemented. The righl side of 44 Cha pter 2 Boolean Alge bra and logic Gates the expression is x ' y ' , so the complement of x and the complement of y are both evaluated first and the result is thenANDed. Note that in ordinary arithmetic, the same precedence holds (excepl for the complement) when mu ltiplication and addition are replaced by A!'o1) and OR. respectively, 2.5 BOOLEAN FUNCTIONS Boolean algebra is an alge bra that dea ls with binary variables and logic operations. A Boolean function descri bed by an algebraic ex pression consists of binary variables, the consta nts 0 and I , and the logic operatio n symbols. For a give n value o f the bi nary varia bles, the function ca n be equ al to either I or 0" As an ex ample, conside r the Boo lean function F] = x + y 'z The funct ion F] is equal to 1 if x is eq ual 10 I or if bot h y' and z are equal to I . F] is eq ual to = I, Y ... O. Therefore. F I "" I if x I or if y 0 and z I . A Boolean function e xpresses the logical re lationship between bi nary variables and is evaluated by determining the binary value of me expression for all possible value s o f lhe vari ables. A Boolean function can be represented in a truth table. The number o f row s in me truth tab le is 2", where n is the number o f variables in the function. The binary combinations for the truth tab le are ob tained from the binary numbers by cou nting from Othroogh 2" - J. Table 2.2 shows the truth tab le for the function Fl ' There are eig ht possible bi nary combinatio ns for assigni ng bits 10 the three variables .r, y , and z. The co lumn labeled F) contains either 0 or I for eac h o f these com binations. Th e tab le shows that the funct ion is eq ual to I when x = I or whe n YZ :>II 0 1 and is eq ual to 0 otherwise. A Boolean function ca n be transformed from an algebra ic ex press ion into a circuit diagram composed of logic ga tes co nnected in a particular structure. The logic-circ uit diagram (a lso called a schematic) for F) is show n in Fig. 2. 1. There is an inverter for input )' to generate its co mple ment . There is an AN D gate for the term y' Z and an O R gate that co mbines .r with y ' z. In logic-ci rcuit diagrams. the variables of the funct ion are taken as the inputs of the circuit and the binary variable F 1 is taken as the output of the circuit There is onl y one way that a Boo lean function can be repre sented in a truth table . However. whe n the funct ion is in algebra ic fonn. it can be expressed in a vari ety of ways, all of which oot herwise. The complement operation dictates thai whe n y ' = = = Table 2,2 Truth Tobin for F1 and ' 2 x r x 0 0 0 0 I 1 1 1 0 0 0 " I I I I 0 0 I 0 0 1 1 0 0 0 1 0 I I 0 I I I I " 0 I I I 0 0 Sectio n 2.S Boolea n Funct ion s 45 Ffc;.URE 2 .1 Gate impleme-ntallo" of F 1 '" x + ., ': :~_--i----,D-F' FIGURE 2.2 Impl em enta t io n of Boo lea n fu n ct ion F 1 with gates have equiv alent logic. The particula r expression u sed [0 represe nt the function will dictate the interco nnect ion of gates in the logic-ci rcuit d iagra m. Here is a key fact that motivate s our usc o f Boole an algebra : By manip ulat ing a Boolean ex pression accordi ng to the rule s of Bool ean algebra. it is so metimes possi ble to obtain a simp ler expre ssio n fo r the same func tion and thus red uce the number of gates in the ci rcui t and the number of inputs to the gate . Designers Me' motivated to reduce the co mple xity and numbe r of gates because the ir effort can significa ntly redu ce the COSI of a c ircuit. Con sider, fo r exa mple. the following Boolean functio n: FZ = x 'y '.:: + .f ' y .:: + .rj - A sc bema nc of an implementa tion o f this funct io n with logic gates is shown in Fig. 2.2(a l. 46 Chapter 2 Boolean Algebra and l ogic Gates Input variables .r and y are complemented with inverters to obtain .e' and y', The three terms in the expression are implemented with three AND gates. The OR gate forms the logical OR of the three terms. The truth table for F2 is listed in Table 2.2. The function is equal to I when .rvz = 001 orOl 1 or when xy = 10 (irrespective of the value of z) and is equal to ootherwise. This set of conditions produces four I' s and four O's for F2• Now consider the possible simplification of the function by applying some of the identities of Boolean algebra: F2 = x' y'Z + x'YZ + xy' = x'z{y' + y ) + xy ' = x ' z + xY' The function is reduced to only two terms and ca n be imple mented with gates as sho wn in Fig. 2.2(b ). It is obvio us that the circuit in (b) is simpler tha n the one in (a), yet both implement the sa me function. By means of a truth table, it is possible to verify that the two expressions are equivalent. The simplified expression is equal to I when xz = 0 1 or when xy = 10. This produces the same four I 's in the truth table. Since both expressions produce the same truth table , the y are eq uivalent. Therefore, the IWO circ uits have the same out puts for all possible binary combi nations of inputs of the three variables. Each circuit impleme nts the same identical function. but the one with fewer gales and fewer inputs 10 gates is preferable because it requires fewer wires and co mponents. In general , there are many eq uivalent representations of a logic function. Algebraic Manipulation When a Boolean expression is implemented with logic gates, each term requires a gate and each variable within the term designates an input to the gate. We define a literal to be a single variable within a term, in complemented or uncomplemented form. The function of Fig. 2.2(a) has three terms and eight literals, and the one in Fig. 2.2(b) has two terms and four literals. By reducing the number of terms, the number of literals, or both in a Boolean expressio n, it is often possible to obtain a simpler circuit. The manipulation of Boolean algebra consists mostly of reducing an expression for the purpose of obtaining a simpler circu it. Functions of up to five variables ca n be simplified by the map method described in the next chapter. For complex Boolean functions, designers of digital circuits use co mputer minimization programs that are capable of producing optimal circuits with millions of logic gates. The concepts introduced in this chapter provide the framework for those tools. The only manual method available is a cutand-try procedure emp loying the basic relations and other manipu lation techniques that become familiar with use, but remain, nevertheless. subject 10 human error. The e xamples that follow illustrate the algebraic manipulation of Boolean algebra. Simplify the following Boolean functions to a minimum number of literals. l. x( x' + y) = xx ' + .ry = 0 2. x + .ry = (x + x ' )(x + y) + xy = xy. = I(x + y) = x + y, Section 2.5 Boolean Functions 3. (x + y )(x + r') = .r + ~, xy + x ' ;:: + y :: = xy + .rj- .r 47 + xy' + yy' = x( I + Y + y' ) = .r. , + y::(x + x' ) xy + x ' ;: + xy:: + x ·y.: xy( 1 xy 5. (x + y )( .t ' + ;::)(y + + ::) + x ' ;:( 1 + y ) x ' ::. + ::) = (x + y)(x ' + .:). by d uality fro m function 4. • Functio ns I and 1 are the du al o f each other and l) ~e du al ex press ions in co rres pond ing steps. An easie r way 10 simpli fy fu nctio n 3 is by means o f po st ulate 4( b ) fro m Table 2.1: (x + y)( x + y' ) = x + )'Y' = .r. The fourth function illustrates the fact that an increase in the number of literals someti mes leads to a simpler fina l ex pression. Funct ion 5 is nor minimized d irectly, bUI can be derived fro m the d ual of the ste ps used 10 deri ve function 4 . Func tio ns 4 and 5 are together known a.~ the CO!lsen.tII,t theorem. Complement of a Function The comp lement of a function F is F' and is obtained from an interchange o f Il's for l 's and l 's for O's in the value of F. The co mplement of a function may be derived algebraica lly through Dejvlorgan' s theorem s. listed in f ab le 2,1 for IW O variables. Delvlorgan's theo rems ca n be extended to three or more variables . T he three-variable form of the first DeMorgan' s theorem is derived as follows. from po stulates and theorems listed in Table 2. 1: (A + B + C}' = (A + x )' = A' x ' = A' (R let B + C = x by theorem 5 (a ) (DeMo rgan ) + C) ' substitute B + C = .r = A' (B 'C ) by theorem 5 (a ) ( De Morgan ) = A'B 'C' by theorem 4 (b ) (assoc iative ) De bt organ 's theorems for any number of var iab les rese mble the two -var iable case ill form and ca n bederi ved by success ive substitutions similar to the method used in the preced ing derivetlo n. These t~l,)(ems can be generalized as follows : ( A+ B+ C+ D+· " + F)' = A' B'C ' D· . . . F' (ABe D .. . F )' = A' + B' + C ' + D ' + .., + F ' The ge neralized fonn of Dej-lorgan' s theorem s states that the co mple ment of a funct ion is obtained by interch anging AND and OR ope rator!' and co mple menting eac h literal. 48 Chapter 2 Boo lean Algebra and logic Gates Find the complem ent of the funct ion s F1 = x 'y ;:' + x'y';: and F2 ~ x(y ';:' + yz ). By applying DeMorgan '!io theorems as many times as nece ssary. the comple me nts art obt ained as follows: F j = ( x'yz ' + _,'y'z )' = (x 'yz')'(x'y'z)' = (x + .'" + z )(x + Y + z') Fi = [x(y ' z' + YZ )J' = x' + (y't + y<: )' = x ' + (y' <:')' (yz)' : x ' + (y + ' Hy' + , ') =x ' + y z' + y' Z • A simpler procedure for derivi ng the complement of a function is to take the dual of the func- tion and complement each litera l. Thi s method follows from the genera lized forms of De j dorgan's theorems. Remember that the d ual of a function is obtai ned from the interch ange of AND and OR operators and I 's and D's. Find the complem ent of the functions F. and F2 of Example 2.2 by taki ng their duals and complem enting each litera l, I. F1 = x'yz' + x'y' z. + .'1 + z' )(x' + y' + z ). Co mplement each literal : (x + y' + z )(x + ). + ;:') = The dual o f F. h. ( x' 1. F2 = x (y ' z' + j'z}. The dual o f F2 is x + (y' + z' )(y + z). Complement each litera l: x' + (y + z)(}" + z' ) = Fi. 2 .6 Fl. • C ANONICAL AND STANDARD FO RM S Mlnternu a nd Maxterms A binary variable may appear either in its normal forrn (x) or in its complement form (x ' }. Now consider two binary varia bles x and y combined with an AND ope ration. S ince eac h variable may appear in either form, there are four poss ible co mbinations: x' y', x'y. xy ' , and x)'. Eac h of these four AND term s is called a minterm , or a standa rd product. In a similar manner. n variables can be combined to form 2/1 minrerms. The 2" different mintenns may be determi ned by a met hod similar to the one shown in Table 2.3 for three variables. Th e binary numbers from 0 to 2" - I art listed under the 11 variables. Each mintenn is obtained from an AND term of the n variables. with eac h variable bein g primed if the corres ponding bit of the binary num ber is a 0 and unprimed if a I . A symbol for eac h minterm is also shown in the tab le and is of Section 2.6 Canonical and Standard Forms 49 Tabl e 2.1 Mint~rms and Max rerm s for Three Binary Variab/~s Mlnterms • y z Term 0 0 0 0 I I I I 0 0 I x'y' :' /110 .t'y' : ni l 0 I X',l':' nl 2 .t'y: m ) 0 I I 0 0 I I 0 I 0 I Milixterms Designation xy'z xyz' X) ':; De signat ion .f + ," +: x + }' + c' x + y' + : AI, AI, + ,\" + : ' AI, : c' x'+y'+: x' + y' + c' 'I, .r m, m, m, m, .1) ':' Ter m .\., + Y + x' + y + M~ AI, AI, 'I, Table 2.4 Functions of Three Variab l~s • y z Functlon'1 Function 12 0 0 0 0 I I I I 0 0 0 I 0 I 0 I 0 I 0 I 0 0 I 0 0 I 0 0 0 I 0 I I 0 0 I I I I I the form m j ' where the subscript) denote s the decimal equi valent of the binary numbe r of the minrerrn des ignated, In a similar fashion. 11 variables formin g an OR tern}. with each variable being primed o r unprimed. pro vide 2" po ssible combinations. calle d IIUJxt erms. or standard sum.~ , The eig ht maxrerms for three variables. toget her with their sy mbolic designat ions. are listed in Table 2,3. An) ' 2" max term s for fI variab les ma y be de te rm ined sim ilarly. It is impo rta nt to note th ai ( I ) each maxterm is obtained from an OR term of the 11 variables. with eac h vari able being unprimed if the corresponding bit i.. a 0 and primed if a I. and (2 ) eac h maxterm is the co mplemen t of its co rres pondi ng mintenn a nd vice versa. A Boolean funct ion can be expr essed algeb raically from a given tru th table by form ing a minterrn for eac h combination of the variables that produces a I in the functio n and then taking the OR of a ll those terms. For e xample. the function I t in Table 2.4 is dete rmined by expressing the combinatio ns 001. 100. and I I I as .r'y'z. .ev'z'. and X)"z. respe ctively, Since e ach o ne of these minterm s results in 11 = I. we have II = .t 'y ' ;: + .tY' Z' + .ty: = ni l + 1114 + 111 7 50 Chapter 2 Boolean Algebra and Logic Gates Similarly, it may be eas ily verified that f2 = .ryz + xy' z + xYZ' + xYZ = "'3 + 11/5 + 11I6 + "'1 These examples demonstrate an important property of Boolean algebra: Any Boo lean function can be expressed as a sum of rnlnterms (with "sum" meaning the ORing of tenns). Now consider the complement of a Boo lean function. It may be read from the truth tab le by forming a minterm for each combination that produces a 0 in the function and then OR ing those terms. The compleme nt of / 1 is read as /i = .t' y' z' + x' yz' + x 'yZ + xy' z + .tyZ' If we take the complement of Ii. we obta in the function / t: /1 = (x + y + z)(x + ).' + z)(x' + y + z' )( x' + y' + a) = M'O·M'2· M3· M s· M6 Similarly. it is possible to read the expression for f2 from the table: h = (x + y + z)( x + y + z' )(x + r' + z)( x' + y + z) = MOM tM2M4 These examples demonstrate a second property of Boo lean algebra: Any Boolean function can be expressed as a produc t of ruaxterrns (with "p roduct" meaning the ANDing of terms). The procedure for obtaining the product of maxterms directly from the truth table is as follo ws: Form a maxterm for each combination of the variables that produces a 0 in the function. and then form the AND of all those maxterms. Boolean functions expressed as a sum of minrerms or prod uct of maxterms are said to be in canonical/ an n. Sum of Mlnterms Previously. we slated that. for " binary variables. one can ob tain 2" distinct minterms and that any Boolean function can be exp ressed as a sum of rninterms. The mintenn s whose sum defines the Boolean function are those which give the ls of the function in a truth tab le. Since the function can be either 1 or 0 for each minterm. and since there are 2" minterms. one can ca lculate all the functions that can be formed with n varia bles [Q be 2211. It is sometimes convenient to express a Boolean function in its sum-of-minterms form. If the function is not in this form. it can be made so by first expanding the ex pression into a sum of AND terms. Each term is then inspected to see if it contains all the variables. If it misses one or more variables. it is ANDed with an expression such as .r + x', where .r is one of the missing variables. The next example clarifi es this procedure. Express the Boolean function F = A + R'C as a sum of minrerms. The function has three variables: A . R. and C. The first term A is missing two variables: therefore. A ~ A(B + 8') = A8 + A B' Section 2.6 Canonical and Standard forms 51 Th is function is still missing one variable, so A = AB(C + C ) + AB' (C + C' ) = ABC + ABC' + AB'C + AB'C' The second renn B'C is missing one variable: hence. B'C = B'C(A + A' ) = ,I B'C + A' B'C Com bining all terms. we have F = A + B'C = ABC + ABC + AB'C + AWe ' + A ' B'C Bur AB'C appears twice. and according 10 theorem I (x -+ .r -- .\'), it is possible 10 remove one o f rho..e occurrences. Rearranging the mintcrms in a..ce nding order. we finally obtain F = A ' B' C + AH 'C + AB ' C + ABC' + ABC • When a Boolean function is in its sum-ot-minter mstorm. it is sometimes convenient to express the function in the fo llowing brief notation: F( A.B. C ) - ~ ( 1.4 .5 . 6 . 7 ) The summation symbol ~ stands for the DRing o f terms; the numbers following it are the mintcrm s o f the function. The letters in parentheses follo w ing F form a list of the variables in the order taken when the minrerm is converted 10 an AND term . An alternative procedure for deri ving the minterms of a Boolean function is to obtain the truth table of the function directly from the algebraic expression and then read the minrerms from the truth table. Co n..ider the Bool ean function given in Example 2A : F ::$ A + H' C The truth table shown in Table 2.5 can be derived directly from the algebraic exp ression by listing the eight binary com binations under variables A. B. and C and inserting ls under F for those Tab le 2 .S Truth TobIe for F = A + H'C A B ( f 0 0 0 I I 0 I 0 I 0 0 I 0 \ I I I 0 0 0 I I I I 0 0 0 I I 0 I I 52 Chapter 2 Boolean Algebra a nd logic Gates combinations for which A = I and BC = 01. From the truth table, we can then read the five mintenns of the function to be 1, 4, 5, 6. and 7. Product of Maxterms Each of the 22/1 functions of n binary variables can be also expressed as a product of maxterm s. To express a Boo lean function as a product of maxterms, it must first be brought into a form of OR terms . Thi s may be done by using the distri butive law, x + yz = (x + y)(x + z) . Then any missing variable x in each OR term is ORed with xx ' . The procedure is clarified in the following example . Express the Boolean functio n F "" xy + x' z as a product of maxterm s. First, convert the function into OR term s by using the distribu tive law: + x 'z = (xy + x')( xy + z) ~ (x + x')(y + x')(x + ,)(y + z) - (x' + y)(x + ,)(y + a) F = xy The func tion has three variab les: x. y. and z, Each OR term is missing one variable; therefo re, x' +y "" x' + y + zz' x + z = x + Z + yy' )' + Z "" Y + z + xx ' + y + z)(x' + y + a') (x + y + z)(x + y' + a) (x + y + z )(x' + y + z) = (x' = = Combining all the terms and removi ng those which appear more than once. we finally obtain F "" (x + y + z)(x + y' + z)(x' + )' + z)(x' + y + z') "" M oM2M4Mj A convenient way to expre ss this functio n is as follows: r t». y, a) - nro, 2, 4. 5 ) The prod uct symbol, Il , denotes the AND ing of maxterm s: the numbe rs are the maxterms of the func tion. • Conversion between Canonical Forms The complement of a function expressed as the sum of minterms equals the sum of minterms missing from the original function . This is because the original function is expressed by those minterms which make the function equal to 1, whereas its complement is a I for those mintenns for which the function is a D. As an example, consider the function F(A,B , C ) ~ ~ ( 1 ,4 , 5,6.7 ) This function has a comp lement that can be expressed as F' (A , B, C) = I(D, 2. 3) = rno + '" 2 + m3 Sect ion 2.6 Canonical and Standard Form s 53 Now . if we ta ke the com plement o f F' by DeMorgan''i,theorem . we ob\ain F in a dif ferent form ; F = (mo + 1112 + 11/; ) ' = I1lU'm 2' /IIj = .\-fnlth "'l.; = n (O.2, J ) The last conversion follo ws from thedefinitionof rninterms and maxterms a" shown in Table 2.3. Fro m the table . it is d ear tha i the follow ing relation holds: m) = ,1, 11 Th at is. the maxt cmt with subsc ript} is a co mplement of the mi ntenn with the same subsc ript } and vice versu. Th e last exa mp le dem on strate s the conversion between a fu nction ex pressed in sum -ofmlnrerms form and its equivale nt in produ ct-of-maxtcrm s form . A similar argume nt wil l sho w tha i the conversio n bet ween th e produ ct of maxtc rm s and the sum of minterm s is similar. We now state a genera l conve rsion proced ure: To co nvert from one cano nical form to another. inte rc hange the symbo ls ! and n and list tho se num bers missing fro m the or igi nal form. In order to find the missing terms. one must realize I llil l the total num ber o f mintcrmv or r nuxtcrms is 2". where " is the number o f binary variables in the functi on . A Boolean funct ion can be conve rted from an algebraic expression to a product of malltcn n.. by me ans of a truth ta ble and the ca nonica l co nversion proc ed ure. Co nside r, for example. the Boo lean expression F = xy + x ' .: First. we de rive the truth table of the function. as show n in Tahle 2.6. The l 's under F in the table are determined from the co mb ination of the variab les for whic h .l ,\' = I I or x ;: = a I . The minrerms o f the function are read from the truth tab le to he J. 3. 6. and 7. The funct ion expressed a.. a sum of mintenns i"i f ·( x. y• c} = ~ ( I , J. 6. 7) Si nce there is a total of eig ht mililenns o r marterm s in a functio n of three variables, we determi ne the missin g.term s to be 0.2. 4 . and 5 . Th e funct ion expresse d as a prod uct of rnaxtcrm s i.. F( x. y. : ) = n (O.2. •. 5) the same answer as obtained in Example 2.5 . Ta ble 2 .6 Truth Tobie fo r F = xy + IC'Z • y z F 0 0 0 0 0 I I 0 I 0 1 0 \ 0 I 0 1 l\ I I II , I II II I I I I I II l\ S4 Chapter 2 Boolean Algeb ra and logic Gat es Standard Forms The two canonical forms of Boolean algebra are basic forms tha i one obt ains from reading: a given function fro m the truth table . Tbese forms are ve ry se ldom the ones with the leasl num ber of literals. because eac h minterm or maxterm mu st con tain. by defin ition. all the variables. either com plemented or uncomplemented. Another way 10 express Boolean functi ons is in standard form. In this con fig uration. the term s that form the functi on may contain one . two, or any number of literal s. There are N,O types of standa rd forms: the sum of products and prod ucts of sums. The sum of products is a Boolean ex pression containing AND term s, called product tnms. with one or more literals eac h. The sum denotes the DRin g of these terms. An exam ple of a function ex press ed as a sum o f products is FI = Y' + xy + x'yz' The expression has three product term s. with o ne. two. an d th ree literal s. Th eir sum is. in effee t. an OR operation. The logic diagram of a sum-of-prod ucts expre ssio n consists of a group of AND gales fol lowed by a single OR gute. This configuration pattern is shown in Fig. 2.3(a). Each produ ct term requ ires an AND gate . except for a term with a single literal. The logic sum is formed with an OR gate whose inputs are the outputs of the AND gates and the single literal. It is as sumed that the input variables are directly available in their complements. so inverters are not included in the di agram. Thi s circuit co nfiguration is referred to as a two-level implementation, A product ofSilins is a Boolean expression containing OR terms. called sum tt'n ns. Each term may have an y num ber o f litera ls. The p roduct den otes the ANDing of these terms. An e xam ple of a function expressed as a product of sums is F, ~ x(y' + , )(x' + ,. + , 'j Thi s expression has three sum terms. with one. two. and three literal s. The product is an Al'D operation. Th e use of the words product and sum stems from the similarity of the AA"D operarion to the arithm etic product (multiplication) and the similarity of the OR opera tion to the arithmet ic ..urn (addition). The ga te structure of the product -of-sums expression con sists of a group o f O R ga tes for the sum term s (except for a single literal). followed by anANU gate. as sho w n in Fig . 2.3(b ). Th is standard type of expression resu lts in a two- level gat ing structure . ,._ - - - .., ;'=::[::::)-~==t=: ,. _ ., - - --, f - - - F, , _-r--, , ,.- ......-~ ). z - """t-_' (a) Sum of Prod ucts FIc;UR£ 2. ) Two-level Implementation ( b) Prod uct of Sums Sect ion 2.7 Other logic Operations SS A_ ...r- , B ~ =:[=)-~=:[:::: F, c - ...r-, F. tto)A B + CD ... CE la) AB .. Cl D + E) f iGURE 2 .4 Three- and tw c-jevet lm pte me ntaucn A Bool ean (unction may he e xpresse d in a non standard form . For exa mple. the funct ion f, = AS + C( D + f: ) is nei ther in su m-o f-prod ucts nor in product-of-sun» form . T he implemen tatio n of this ex pression is show n in Fig . 2.4(a ) and requ ires two A:'oJD gates and IWOOR ga tes. Th ere are three levels of gating in this circuit. II can be c hanged to a standard form by using the distributive law to remove the paren theses: F.1 = AS + C( D + £ ) = AH + CD + CE The sum-of-prod ucts ex press ion is impl ement ed in Fig. 2Alb l. In gene ral. a two-level implementation is pref erred bec ause it produces the least amo unt of delay through the gale.. when the signa l propagates fro m the inputs to the ou tput. Ho we ver. the numbe r o f input s to a given ga te might not be pract ica l. 2.7 OTHER LOGIC OPERATIONS When the binary operators AND and O R are placed betwee n two variables •.\ undv. they form IWO Boo lean fu nction s. .r "," and .' + ." . respectively, Pre viou sly we ..rated that there are 2 211 functi o ns for 11 binar y variable s. Th us. for IWO variable s. II = 2. and the number o f possible Boo lean fu nct ion.. is 16. Th eref ore. IheA..'\JD and O R fu nction s an: only 2 of a 101011 o f 16 pu ssible functions fo rmed with IWO binary variab les. II would be instructive 10 find the other 14 fu nctio ns and inve stig ate thei r prope rties. Th e truth tables for the 16 functio ns formed with l WO binary variables are listed in Table 2.7. Each o f the 16 co lumns. ' 010 FI ~ ' represe nts a truth table of o ne possib le fu nction fo r the two variables, .r and y. Note thai the functions are de ter mined from the 16 binary combinations that can be as..igned 10 F. The 16 functions ca n be expressed algebraica lly by mean s of Boolean funclion s. a.. is sho wn in the first co lumn o f Table 2.R. Th e Boolean expressio ns listed are simplifled to thei r minimum number of literals. Althou gh each function ca n be e xpressed in terms o f the Boo lean ope rators AND. O R. and f'OT. tbere is no reaso n one cannota...sign special operat or symbols for expre..... ing the oihc r tunclions. Suchoperator symbols are li..red in the second co lumn of Table 2.8, However. of all the new ..ym bol-, ..hew n. only the e xcl u..ive -O R symbol . ttl, is in co mmon use b)' digital de...igncrs, 56 Boolean Algebra and logic Gates Chapter 2 Table 2 .7 Truth Tabl~j for the' 6 Functions of Two Binary Variables • y F, F, F. F. F. F, F. F, F. 0 0 I I 0 0 0 0 0 0 0 0 I 0 0 I 0 0 0 0 I 0 0 0 0 I I 0 0 I I I I 0 I I I I 0 I I 0 0 0 F, F.. F" Fu F" F,. F" I 0 0 I I 0 I 0 I 0 I I I I 0 0 I I 0 I I I I 0 Ta ble 2 .8 Booleon Express/ons for the 76 Functions of Two Variables Boolean Functions Fo '" 0 F[ ;; .ry Operator Symbol Name Null AND X'y "" F2 '" xy' F3 ,. x Inhibition Tran sfer }/x Inhibition Transfer F/) - xy ' + x ' )' xED)' F7 - x + y Fa '" (x + y)' x +y x! y (x e y)' y' Excl usiv e-Og, OR NO R Complement x· xC )' x' Implication Complement X' + )' x::Jy lmplic anon NAND F4 '" x'y Fs "" )' F9 = X)' FlO = Y' FIt == Fl 2 F I3 - Fl ~ F1S X + x ' )" + s: "" (A)')' I .1" Equivalence 1)' Identity "" Commen ts Binary co nstan t 0 xan d y .r, but not )' •y, but not x y x or ) ; bUI nm both xor J Not-OR .r equals ), Not)' If )~ then x No. . If x: then )' Noc·AND Binary constant I Each of the functions in Table 2.8 is listed with an accompanying name and a comment that explains the function in some way. The 16 functions listed can be subdivided into ihree categories: I. Two functions that produce a constant a or I. 2. Four functions with unary operations: complement and transfer. 3. Ten functions with binary operators that defi ne eight different operations: AND . OR. NAND. NOR. exclusive-OR. equivalence. inhibition. and implication. Constants for binary functions can be equal to only I or O. The complement function produces the co mplement of each of the binary variables. A function that is equa l to an input variable has been given the name transfer. because the variable x or y is transferred through the gate that forms the function without cha nging its value. Of the eight binary opera tors. two (inhibition and implication) are used by logicians. but are seldom used in computer logic. The AND and OR operators have been mentioned in conjun ctio n with Boo lean algebra. The other four functions are used extensively in the design of digital systems. Section 2.8 Digit al logic Gates 57 Th e NO R functio n is the co m ple me nt o f the OR functio n. and its name i"i an abbrevia tio n of Iw t·O R. Sim ilar ly. NA ND is the compleme nt of A ND and is an abbreviatio n o f /lot -AND . The exclusive-O R. abbrevia ted XO R. is simila r 10 OR . but exc ludes the combinatio n o f both .r and y bei ng equal to I ; it hold s o nly whe nr and." di ffer in value. (It is somet imes referred to a, the bin ary differen ce opera to r.I Equ ivalence is a function tha t is I wh en the two binary variables are eq ual Ii.e.• when both are () or both are I ). The excl usive-O R and equi valence functio ns arc the co mpleme nts o f each ot her, Thi s can be eas ily verified by inspec ting Table 2.7: Th e trut h tab le for excl us ive-O R is F6 and for eq uivale nce is 1-"9. and these two function s are the complem en ts o f eac h othe r. For this reason . the eq uivale nce functio n is ca lled ex cl usive :"lO R. ab breviated XNOR. Boo lean algebra. as defin ed in Section 2.2. ha ... two h inary o perators . which we have ca lled AND and O R. and a unary opera tor, SOT (co mplcme nn. From the definition s. we huve deduced a number of prope rties of these operators and now have defined other binary ope rators in tenus o f the m. Th ere i... nothing un ique abo ut thi s procedur e . We co uld ha ve j ust as well starte d with the o perator NO R ( l). for ex ample. and later de fined AND . O R. and NOT in term s o f it. Th ere are . nevertheless. 800d reaso ns for introd uci ng Boo lean algebra in the wa y it has bee n introduced . Th e:concep ts o f "and. " "or:' and " not" are fam iliar and are used by people to express evcryda y log ical ideas. Moreo ver. the Huntington po stulate s refl ect the dual natur e of the a lge bra. em phasizin g the sy mme try of + and' with re spec t 10 cucb other. 2 .8 D IGITAL lOG IC G ATE S Since Boo lean fu nct io ns arc expresse d in te rms o f AND. OR . anti NOT operatio ns. it is easier to imple ment a Boo lean functio n with the se type of gates. Still. the po ssibility of co nstruc ting gates for the other logic o perations is o f practical interes t. Factors 10 be weighed in con side ring the construction of o ther types of logic gates are ( I) the feasibili ty anti ecollo my of prod ucing the gate with physical co mponen ts. (2) the poss ibility o f cxte nd ing the gale 10 more tha n two inputs. (3) the ba sic pro pe rties of the binary operator. such as co mmutativity and associativity. anti (4) the abil ity of the: gate to impleme nt Boo lean funct ions atone or in co nj unction .... ith other ga les. Of the: 16 funct io ns defi ned in Table 2.8. two are equal to a consta nt and four are:repeated. The re are o nly 10 functio ns le ft to be co nside red as cand id ates fo r logic gates . Two-c-i nhibi tion and imp lication- are not co mmutative or associative and thus are imp ract ical 10 use as standa rd log ic ga tes. Th e o ther ci gb t-c-complemc m. transfe r. AND. OR . NAN D. I\'O R. excl usive- O R. and eq uivale nce- are used as standar d gat es in d igita l design . Th e graphic sy mbo ls and truth ta bles o f the eig ht gates are sho w n in Fig. 2.5. Each gate has o ne o r IWO bi nary input variab les. designated by .r and y. and one binary o utput varia ble. design ated by F. The AN D. OR . and inverter ci rcuits were defined in Fig . 1.6 . Th e: invert er ci rcuit inve rts the logic sense o f a binary variab le. prod uci ng the NOT. or co mpleme nt. functio n. Th e sma ll circle in the o utput of the graphic ...ymbo l o f an inverter (referred to as a bllbble ) design arcs the log ic comple me nt. The triangle symbol by itself designates a buffer cir cuit . A buffer produce s the transfe r functio n. but doe s not produ ce a logic ope ration. since the binary va lue of the output is equal to the bina ry va lue (1 1' the: input. Thi s ci rcuit is used for po wer amphfl cat ion of the sig nal and is equivalent to two inve rters co nnec ted in casc ade . 58 Chapter 2 Boolean Algebra and logic Gates G raphic ')"Dlbol ~arne OR Algebraic function X ~F Y~ Inverter x-----{)o--- F Buffer x---t>--F :-lAND NO R Exciush'e·OR (X O R) Exclusive-NO R or equivalence FIGURE 2 .5 Dlg ltal log lc gates x y l~~ ~"$ ~ . ' F '. F x~ Y xY ~ F ,,-~. ~ F x~ y .., ~<,. .~ F -x + y F- x· Trulh table x y F 0 0 1 1 0 I 0 I 0 0 0 1 x y F o o 1 0 1 0 0 1 1 I 1 1 ~ :I ~ F -x F .. (xy )' F .. (x .... y)' F - x,·' + x'y - x$ y F .. xy+x 'y' - (x ffi y)' x y F 0 0 1 1 0 1 0 1 1 1 1 0 x y F 0 0 I I 0 I 0 I I 0 0 0 x y F 0 0 I I 0 I 0 I 0 I I 0 x y F 0 0 0 1 1 0 I 1 0 0 I 1 Sect ion 2.8 Digit al l og ic Gates 59 Th e NA ND function is the co mpleme nt of the AN D fu nct ion. as ind icated by a graphic symbol that cOl\l;ists of an AN D ~r<lphk symbol fo llowed by a small circle. The r-;O R function is the com plement of the OR funct ion and uses an O R graphi c sym bo l followed by a small circle. NAND and NO R gates arc used extensively as sta ndard log ic gates and nre in fact far more pop ular than the AND and O R gate s. This is because NAND and NO R gates arc eas ily co nstruc ted with transistor ci rcuits und because d igita l c ircuit s can he cavily imple mented with them. Th e ex clus ive -O R gate h as a graph ic symbol similar 10 th at of me OR gate . except fo r the add itio nal curved line o n the in put side . The equ ivalenc e . or exclusive- NO R. gat e is the co mplement of the exclus ive-Og. as ind icated by the small circle on the o utput side of the graphic sy mbo l. Extension to Multiple Inputs The gate s show n in Fig . 2.5 -except for the inverte r and bu ffer-s-can he ex te nded to ha ve more tha n two inputs. A gate can he e xte nded 10 have mu ltiple inputs ift he binary operatio n it represents is co mmutative and associa tive. T he AS D and O ~ ope ratio ns. defined in Boolean alge bra. possess these two prope rties. For the O R functio n. we have x + y ( c~lmm\lt ati ~ e) = y + .t and (x + .\.) + c = .r + (y + =) == .r + y + :: (assoc iative ) which indic ates that the ga te inputs can re interchanged and that the O R funct io n can be extended 10 three or more var iables. The NA:"IlD and NO R functions are com mutative . and their gates can be extended to have more than t wo inputs. provided that the definition of the operation i ~ modified slightly. The difficult y is that the NAND and NOR operators arc not associative (i.e.. (x ! y) ! = #- .r 1 (y ! z) ). a....huwn in Fig. 2.6 and the follo wing equations; Ix j v) I , .r ~ [Ix + v)' + , I' + c)'!' I Iy I : ) = Ix + ( y ~ Ix + y ), ' + c) = x ' ly ~ x: = v'v + y:' + x ' ;:: To ove rco me thi s difficulty. we defi ne the multiple NO R (o r NAN D ) gate as a co mple me nted O R (o r AND) ga te. Thus, by de finitio n. Vieha ve .r !y of T y T:. = ! t: == ( x + y + =)' (xy:.)' Th e gra phic symbo ls (or the three -input gates are show n in Fig . 2.7 . In w riting ca..ended NO R anJ NAN D o peratio ns. one must use the correc t parenthese s 10 signify the proper seque nce of the gates. To demon strate this princi ple. consider the ci rcui t of Fig . 2.7(c ). The Boolean fun clion for the ci rcuit must he writte n as F = IIA BC)' ( DF.)']' = ABC + DF. 60 Chapter 2 Boolean Alg ebra and logic Gate s , _J"~_ ,--L:::Y--, , ---,/"!,> )o- - (xJ. y) ! z ,. [r + y)z' --------fi0~Jt~ >· p..--xJ.(y! z) - x'(y + z] FIGURE 2.6 Demons tr ating the non associativity of the NORope rato r: (x ! y ) ! z ; z ~ .:".,., (a) 3-input (x + y +z)' ~OR gale I :!f!.:?:?F' ::~i:~;i~ ;z >F x ! (Y! z} (x,") ' (b) 3-inpu t :-;"Al\""O gate F '" « A BC)' . (D£ IT - ABC + DE D-== E --\:L= (c) Cascaded :"olA~D gates FIGU RE 2.7 Multiple-input and cascaded NOR and NAND gat es The second expression is obtained from one of OeMorgan's theorems. It also shows that an expression in sum-of-products form can be impleme nted with NAN D gates. (NAND and NOR gates are discussed further in Section 3.7.) The exclusive-O R and equivalence gates arc both commutative and associative and can be extended to more than two inputs. However, multiple-input exclusive-OR gates are uncommon from the hardware standpoint. In fact, even a two-input function is usually constructed with oilier types of gales. Moreo ver, the definition of the function must be modified when extended to more than two variables. Exclusi ve-OR is an odd func tion (Le .• it is equal to I if the input variables have an odd number of I 's). Th e con struct ion of a three-inp ut exclu sive-OR function is shown in Fig. 2.8. Thi s funct ion is norma lly implemented by cascadi ng two-inpu t gates, as shown in (a). Graphically, it can be represented with a single three-input gate, as shown in (b). The truth table in (c) clearly indicates that the outpu t F is equal to I if only one input is equal to I or if Section 2.8 :=D-----1 , :~ F -X$y e: (al U~ing Digital l og ic Ga tes o 0 0 0 I I I I 2.inpul ga lC:~ { ~ F. "t $ Y E9 : 0 1 0 I 0 I 0 0 I I 0 0 I I 61 n- 0 I I 0 I 0 0 I (el Truth table (b) y-ln pur gate FIGURE 2.8 Three -Input exciusive·O R gate all three inputs are eq ual to I (i.e., whe n the total numbe r of I 's in the input variables is odd) . (Exclu sive-O g gales are discu ssed further in Section 3.9.) Positive and Neg ative Logic The binary signal at the inpu ts and OUlpUISof an)"gate bas one of two values. except durin g tran sition . One signal value repre sent s logic 1 and the other logic O. Sin ce ( WO signa l values are assigned to two logic values. there exist two different ass ignments of signallevel to logic value. as shown in Fig. 2.9. The higher signal le vel is designated by H and the lower signal level by L. Choo sing the high-level H to represent logic I defines a positive logic sys te m. Choosing the low -level L to represent logic I defines a ne gative log ic sys tem. The terms positin ' and negative are some what misleadin g. since both signals rna)" be pos itive or bot h may be negative.h is not the actual values of the signals that determi ne the t)"PC of logic, bUI rather the ass ignme nt of logic values 10 the relative am plitudes of the two signal levels. Hardware digital gates are defined in term s of sig nal ..-alues such as H and L. It is up to the user to dec ide o n a positive or negative logic polarity. Co nsider. for example, the elcc tronic gale shown in Fig. 2.1Ofb). Th e truth table for this gate is liMed in Fig. 2. IO(a). It specifies the physical beh avior of the gate when H is J volts a nd L is 0 vol ts. The truth table of Fig. 2.I O(c ) ass umes a positive logic assignme nt. with H ;: I and L = O. Thi s truth table is the same as the one for the AND o pera tion. The graphic symbol for a positive logic Af\D gate is shown in Fig. 2.lO(d) . Lo gic value 0 Signal value ~ Logic Sig nal value value H L ( a) Posinv e logic fiGURE 2.9 Signal assignment and logic po larity (b JS c:pli\'c: logic 62 Chapter 2 Boolean Algebra and Logic Gates x y z L L H H L H L H L L L H (a) Truth table with Hand L x y z 0 0 1 1 0 1 0 1 0 0 0 1 (c) Truth table for positive logic x y z I I I 0 1 I o o 0 (b) Galt: block diagram x y ~, . (d) Positive logic AND gate 1 1 o (e) Truth table for negative logic (f) Negative logic OR gate FIGURE 2.10 Demo nstration of positive and negative log ic Now consider the negative logic assignment for the same physical gate with L = 1 and H = O. The result is the truth table of Fig. 2. IO(e). This table represents the OR operation, even though the entries are reversed. The graphic symbol for the negative-logic OR gate is shown in Fig. 2.10(f). The small triangles in the inputs and output designate a polarity indicator, the presence of which along a terminal signifies that negative logic is assumed for the signal. Thu s, the same physical gate can opera te either as a positive-logic AND gale or as a negative-logic OR gale. The conversion fro m positive logic to negative logic and vice versa is essentially an operation that changes J's to O's and O's to t's in both the inputs and the output ofa gale. Since this operat ion produces the dual of a function. the change of all terminals fro m one polarity to the other results in laking the dual of the function. The upshot is that all A ~1) operations are converted to OR opera tions (or graphic symbols) and vice versa. In addition, one must not forget 10 include the po larity -indicator triangle in the graphic sym bols when negative log ic is assumed. In this book, we will not usc negat ive logic gates and will assu me thai all gates operate with a positive logic assignment. Section 2.9 2 .9 Integrated Circuits 63 INTEGRATED CIRCUITS An integrated c ircuit (abbreviated Ie) is a silico n semiconductor crystal. call ed a chip. containing the electron ic component s for con..tructing digital gate... T he variou s gates are interconnected inside the ch ip to form the requ ired circuit. The chip is mounted in 3. cer amic or plastic co ntainer, and co nnection s are we lded to external pi ns to fo rm the integrated circuit. The number of pins may range fro m Jol on a ..mall IC pack age to seve ral thou sand on a larger package. Each Ie has a numeric de signation prin ted o n the surfac e o f the package for identificati on . Vendors provi de data books , catalogs. and Intern et wcbsue s that co ntai n description.. and information abou t the IC", that the)' manu fac ture . Levels of Integration Dig hal K s arc ofte n categ orize d acco rd ing to the co mplexity of (heir circ uits. a.. mea..urcd by the numbe r of logic gates in a single package . Th e di fferen tiation betwee n those chips which have a few internal ga les and those having hundr ed s of tho usands of gates is made by custern ary re ference to a pack age as being either a small- . mediurn -, large-, o r very large -scale integration de vice. Small -scale integra /io n ISS I) de vices co nta in several inde pe nde nt gates in a s ing le pac kage . Th e input s and o utputs o f the gates are co nnec ted d irectly 10 the pin s in the pac kage . Tbc number of gates is usuall y fe we r than 10 and h lim ited by the num ber o f pin s avail able in Ihe Ie. Medium -scale inte grano« ( ~1 S I ) device s ha ve a co mplexity o f approx imatel y 10 to 1.000 gates in a single packa ge. They usually perform specific ele mentary dig ital operation s. MSI digital function... are introdu ced in Chapter -sas decoders. adders. and multipl exe rs an d in Ch apter 6 a.. registers and cou nters. Large -scale integration ILS II devi ce .. contain thou sands of gat es in a single pack age. They include d igital systems suc h a.. proce ssors. memory ch ips . and programmab le logic devices. Some LSI compo nents are presented in Chapter 7. \ 'fol)" large-scale integration l VLSI ) device.. contain hund red o f tho usand s o f gates within a single pack age . E xamples arc large memory arrays and co mplex microcompu ter chips. Beca use o f their small size and low co ...1. VL SI devices have revo lutionized the co mputer system design techno logy, g iving the design er the capability to create struc tures that were previou sly uneconomical to b uild . Digital logIc Families Digi tal integ rated cir cuits arc cla ....ified not only by thei r co mplex ity or log ical ope rati on . hut also by the spec ific cire uittec hno logy 10 which they belo ng. 111e ci rcuit tech no logy i..referred to a.. a digital logic fa mi!.\" Each logic family ha .. its u w n ba...ic elec tro nic circuit upon which more complex digital circuits and co mpo nent!'> are developed. The ba sic circuit in each tec hnology is a NA :'ol J). KOR . or inverter gate. Th e e lectron ic co mpo nents em ployed in the co nstruction of the basic circuit are usuall y used to na me the techno logy. ~1 an )' d ifferent logic 64 Chapter 2 Boolean Algebra and logic Gates fam ilies of digital integrated circuits have been introduced commercially. The follo wing are the most pop ular: TIL ECL emitter-co upled logic; MOS metal-oxide semiconductor; CMOS complemen tary metal-oxide semiconductor. transi stor-transistor logic; TIL is a logic family that has been in use for a long time and is considered to be standard. ECl has an advantage in systems requiri ng high-s peed operation. MOS is suitable for circuits that need high component density, and CMOS is preferable in systems requiring low power consumption, such as digital came ras and other handheld portab le devices. Low power consumption is essential for VLS I design; therefore, CMOS has become the dominant logic fam ily, while TIL and ECL are declining in use. The basic electronic digital gale circ uit in each logic family is analyzed in Chapter to. The most important parameters that are eval uated and compared are discussed in Section 10.2 and are listed here for reference: Fan-out specifies the number of standard loads that the output of a typical gate can dri ve without impairing its normal operation. A standard load is usually defi ned as the amount of current needed by an input of another similar gate in the same family. Fan-in is the number of inputs available in a gate. Power dissipation is the power cons umed by the gate that must be availa ble from the power supply. Propagation delay is the average transition delay time for a signal to propagate from inpu t to output. For example , if the input of an inverter switches from 0 to I , the output will switch fro m I to 0, but after a time determi ned by the propagation delay of the device. The ope rating speed is inversely proportional to the propagation delay. Noise margin is the maximu m external noise voltage added to an input signal that does not cause an unde sirable change in the circui t output. Computer-Aided Design Integrated circui ts having submicron geometric features are man ufactured by optically pro-je cting patterns of light onto silicon wafers. Prior to exposure, the wafers are coaled with a pho toresistlve material that either hardens or softens when exposed to light. Removing extraneous photoresist leaves patterns of exposed silicon. The exposed regions are then implanted with dopant atom s to create a semiconductor material hav ing the electrical properties of transistors and the logical prope rties of gate s. The de sign process transl ates a functional specification or description of the circuit (Le., what it must do) into a physical specification or description (ho w it must be impleme nted in silicon). Th e design of digital systems with VLSI circuits co ntaining mill ion s of transistors and gates is an enorm ous and formida ble task. Systems of this co mplex ity are usually impossible to de velop and verify witho ut the assista nce of com puter-ai ded design (C AD) too ls, Section 2.9 Integrated Clrcutts 6S .....hich con sist of ...oftware pro grams that su pport co mpute r-based re pre sent at ion s of circuits and a id in the dev el opment o f d igit a l hard w are by auto mat ing the d esi gn proc ess. Elec troni c d esign aut om at ion (EOA ) coven all ph ases o f the de sign o f integrated circu its. A typic al design flow fo r crea ting VLSI circu it s co nsis ts of a !iequence of step" beginning with design entry (e.g.• e ntering a scbematic! and culminating with the generation o f the data base tha t co nta ins the pho tomask used 10 fab ricate the IC. There are a variety of o ptio ns available for crea ting the physical realizat io n o f a digital ci rcuit in silicon . Th e designer can choo ...e be tween an a pp lica tio n-s pecific integ rat ed circu it (ASIC). a field -prog rammable gate a rra y (FPG Al. a pro grammable logic de vice (PL O). and a full-cu stom IC. With eac h of these devices co mes a sel o f CA D tool s thai pro vide the necessary software to facilitate the hardware fabrication of the unit . Eac h of these technol ogie s ha s a mar ket niche determin ed by the size o f Ihe mar ket and the unit COSI of the de vices thai are requ ired 10 implement a de sig n. Some C AD syste ms incl ude an edi ting program fo r creating and mod ifying schematic diagrams on a computer screen. Th is proce ss is called schematic capture or schematic entry. w ith the aid of menu s. keybo ard co mmands. and a mou se. a sc hematic edito r can draw ci rcuit diagram s o f d igital circuits o n the comp uter scree n. Components can be placed on the screen from a list in an inte rna l libr ary and can the n be connected wi th lines thai represent wire s. Th e sc hematic entry software creates and mana ges a database contain ing the info rma tion prod uced with the schematic. Primitive gate.. and funct ional bloch have associated models tha t allow the functionality ti .e.. lo gical behavior) and tim ing of the circu it to be veri fied . Veri ficatio n i" performed by applying input .. to the ci rc uit and using a logic simulator 10 determine and di..play the outputs in text or wa veform fonnal. An important develo pment in the design o f digital systern.. i.. the u..e of a hardware description lan guag e (HD L). Such a lan guag e resembles a co mputer programming language. but is specifically oriented to describing digital hardw are . It represents log ic diagram s and other digu al informati on in textual form to de scribe the fun ct ionality and structure of a circu it. Moreo ver, the HDL description of a ci rcuit' s fu nct ionality can be abstra ct. withou t refere nce to specific hardw are.thereby freei ng a designer to de vote attention to higher level functio nal detail te .g.• under certain co nditions the ci rcuit must detect a pa rticular pa ttern o f I 's and D's in a se rial bit "ITeam o f data) rather than tran sisror-level detail. HDL-ba sed model s o f a circuit o r system are ..imula ted 10 chec k and verify its functionality before it is submitted 10 fabricauon. there by red ucing the risk and wa ste of manufacturi ng a circ uit tha i fa ils to ope rate correctly. In tan dem with the emergence of HDL-hased de sign la nguage s. 1001" have been developed to automati cally and op timally sy nthesize the logic described by an HD L mod el of a ci rcuit. These two adv anc es in technology have led to an almo ..t total reliance by ind ustry on HDL-based sy nthes is too ls and meth odologies for the design of the circuits of co mplex degttal sys tems. Two hard ware descriptio n la nguages- Veri log and VHDL-have been approved as sta ndards by the Institute of Electro nic s and Electric al Eng ineers (IEEE) and arc in use by de sign team",wor ldwid e . The Ver ilog HOL i" introduced in Section 3. 10. and beca use of its importance . we incl ude several exerc ises and desi gn prob lems based on Veri log throughout the book . 66 Chapter 2 Boolean Algebra and Logic Gates PROBLEMS Answers 10 prob lems mark ed with • appear at Ihe end of the book. 2.1 Demonstrate the validity of Ihe following iden tities by means of truth tables : '= x'y'z' and (xyz )' (a) DeMorgan's theoremfor three variables: (x + y + z)' (b) The distributive law: x + yz '= (x + y )( x + e) (c) The distributive law : x (y + z) = xy + .cz (d) The associative law: x + (y + z) = (x + )" ) + Z (e) The associative law and x(y z) = (xy).:: '= .r" + y' + ;:' 2.2 Simp lify the following Boolean expressions to a minim um number of literals: (a)* xy + x)" (b)" (x + y)( x + y ') (c)* x)'.:: + x')" + xy..:' (d)" (A + B )' (A' + B' )' (e) xYZ' + x'YZ + xyz + x'YZ' (f) (x + y + z')( x' + y' + e) 2.3 Sim plify the fo llowing Boolean expressi ons to a minim um numb er of literals: (a)* ABC + A ' B + AB C' (b)" x'si + xz (c)'" (x + y)'( x' + y') (d) " xy + X( WI + WI' ) (e)"( BC' + A' D)(A B' + CD') (f) (x + y' + z')(x ' + I ' ) 2.4 Reduc e the following Boolean exp ressi ons to the indicated number of literals: (a)" A'C' + ABC + AC' to three literals (b)" (x 'y' + I)' + Z + xy + w z to three literals (e)" A 'B (D ' + C'D) + B(A + A'C D) toone literal (d)" (A' + C)(A' + C')(A + B + C'D) to four literals (e) ABCD + A'BD + ABC' D to two literals 2 .5 Draw logic dia grams of the circuits that implement the original and simp lified expressions in Problem 2.2. 2.6 Draw logic diagrams of the circuits that implement the original and simplified expressions in Problem 2.3. 2.7 Draw logic diagrams of the circuits that implement the original and simplified expressions in Probl em 2.4. 2.8 Find the complement of F = wr 2.9 Find the comp lemen t of the following exp ressions: (a)" xy' + x'y (b) (A 'B (c) (x' + yz: then sho w that FF' = 0 and F + F ' = I. + CD )£' + £ + Y + z' )(x + y' )(x + e) 2. 10 Given the Boolean functions F1 and F2. show that (a) The Boolean function E = f 1 + F 2 con tains the sum of the mintenns of F I and F 2. (b) Th e Boolean fun ction G = F 1F 2 con ta ins on ly the minte rm s that are common to F t and F 2. 2.11 List the truth table of the function : (a)* F = xy + .ry ' + y' Z (b) F = x '..:' + yz 2.12 We can perform logical ope rations on strings of bits by considering eac h pair of corres ponding bits separately (called bit wise oper ation). Given two eight-bit strings A = 10110001 and B = 1010 1100, eva luate the eigh t-bit result after the following logical operations: (a )* AND . (b) OR. (C)'" XOR . (d)'" NOT A, (el ~ OT 8 . Problems 67 2.13 Draw logic diagrams to impleme nt the follo....-ing Boolea n expressions: (a ) Y = A + H + H' ( A + C ) ( h) Y = A(B ffi D ) + C' r '" A + CD + ABC (d) Y '" ( A Ell C)' + B (e) y "" ( A' + B' ) (C + tr; (f) Y = l eA + B' ) (C' + D J] (c) 2 .14 Implement the Boolea n function F '" xy + , \ + y' .:: fa) with AND. OR, and inverter gates. (h )* with OR and inverter gates, (c) with AND and inverter gate s. fd) with NAND and inverter gales, and rej with NOR and inverter gate s, 2 .15· Simplify the following Boolean functio ns T I and T2 to a minimum number of literals: A B C T, Tz 0 0 0 0 1 1 1 1 0 0 0 1 I I I 0 0 0 0 I 1 1 1 1 0 0 I I 1 0 1 0 1 1 I 0 0 0 0 0 2 .16 The logical sum of all n nnrerms of a Boolean function of (a) Prove the previous stateme nt for 11 = 3. cb ) Suggest a procedure for a general proof. /I variables i~ I. 2 .17 Obtain the truth table ofthe following functions. and express each function in sum-of-nnnterms and product-of-maxterms form : (a )* ClY + : )( Y + x.:: ) Ib i ( x + ."')(y ' + ;:) (c) x' ;: + II' X' y + 11'.\';:' + lI" y ' Id ) ( .l ." + vc' .... ol ' ;:)( X + .::) 2 .18 For the Boolean function F = xy'.:: + x'y ' .:: ... 1I" .l ." + lI"X'Y + II'X." fa) Obtain the truth table of F. (b) Dra w the logic diagram. using the original Boolean e xpression. (c!* Use Boo lean algeb ra to simplify the function to a minimum number of literals, (dj Obtain the truth table of the functio n from the simplified expression and sho w that it is the same us the one in pan (a ), Ie) Draw the logic diagram from the slmplifled expression. and compare the total number of gates wnh the diagram of part (b), 68 Chapter 2 2.1~ Boolean Algebra and Logic Gates Express the following function as a sum of minterms and as a product of maxrerms: F(A ,B.C. D ) "" B' D + A' D + BD 2 .20 Express the complement of the following functio ns in sum-of-minterrns form: <a} F (A, B, C, D) "" I (3, 5, 9. 11 . 15 ) (b) F (x, y, z] "" IT(2. 4, 5. 7) 2,21 Convert each of the following to the other canonical form: <a) F (x. )'. z) "" I (2,5 .6) (b) F (A.B.C,D) "" IT(O.I.2,4, 7, 9,12 ) 2.zr Convert each of the follow ing expressions iOlo sum of prod ucts and prod uct of sums: (a ) ( AB + C)( B + C D) <b) s' + x(x + )")()' + z') 2 .23 Draw the logic d iagram corresponding to the following Boolean expre ssions without simplifying them : (a) BC + AB + ACD (b ) (A + B)(C + D )(A ' + B + D ) (c) ( AB + A' B' )(C D' + C'D ) (d) A + CD + (A + D' )(C' + D ) 2.24 Show that the dual of the exclu sive-OR is equal to its complement. 2.25 By substituting the Boolean expre ssion equiva lent of the binary operations as defined in Table 2.8, show the following: (a) The inhibition operation is neither co mmutative nor associative. (b) The exclu sive-OR operation is commutative and associative . 2.26 Show that a positive logic NAN D gate is a negative logic r-;OR gate and vice versa . 2 .27 Write the Boolean equations and draw the logic diagram of the circuit who se outputs are defined by the following truth table: " I 0 0 I 0 0 I I " 0 0 I I I I I 0 , • b 0 0 0 0 0 0 0 I I 0 0 I I 0 I I I I I I 0 I 0 I 2 ,28 Write Boolean expressions and construc t the truth tables descri bing the outputs of the circuits described by the following logic diagrams: a a b , b y c d d , , f (a (b ' Re f ere n c e s 69 REFERENCES 1. 2. J. BOOL F-. a. 1 11 5~, A ll Im ·f'.Higaliml "jlhl' UIII'S rif 71IO/igll/ . New York: Dover. D1En lE\"F. R. D. 1.. 19XX. Logic Design of Digil tll Svstems. Jd ed . Bosto n : Allyn and Bacon. H lJ STl ~GTO~ . 5 4. ( 1 90~ I: E. V. Sets of independent postulates forthe algebra of logic. Trans. Am . A!(/fh. Soc .. 2811-309 . IEEE Standard iiurdware Desc ription Lllnglla f(r 8 m'ed 01/ Ihl<' V".rilug Hard ware Descript ion u mg /il/gfO. La nguage Reference Manual (LRM). IEEE Std. I364 -1995. 1996. 200 1. 200 5. The tnsunnc of Electri ca l and Elect ronics Engineer s. Piscataway, NJ. S. IEEE Standa rd Vl ID!. LmlgllOgt Ref erence M/IIwIlI (L RM ). IEEE Std. 1076- 19117. 19 88. The tnvnure of Electric al and Elc..x ronlcs Engineer s. Piscataway. NJ. 6. M ...so. M. M.. and C. R. KI\.lE. 2000. Log ic ( 1fI(1 COIII/ lllter D r sign Fundamentals, 2d ed. Upper Saddl e River. NJ: Prentice Hall. 7. S H "' S" O~ , C. E. A sy mbolic a nalysis of rel ay and switching circuits, Trans . AlEE 57 (19 38 ): 7 13-723. Chapter 3 Gate-Level Minimization 3 .1 INTRODUCTION Gate-level minimization re fer s 10 the de sign ta..k of finding an optimal gate-level implementation of the Boole an function s describing a digital ci rcuit. Th is tas k is well under stood . but is difficult to e xecute by manual methods when the logic has more than a few inputs. Fortun ately. co mputer-based logic synthesis tools can minimize a large ~I of Boolean equations effi ciently and qu ickl yNeverthele ss. it is import ant thai a designer understand the underlyin g mathematical descrip tion and solution of the problem. Thi s chapter serv es as a foundation for you r unde rstanding of that impo rtant topic and will enable ) 'O U to e xecut e a manu al design of sim ple circ uits. pre paring you for skilled use of modem des ign tools. The chapter will also introd uce a hardware desc riptio n language that is used by modem desig n tools. 3 .2 THE MAP METHOD The comple xity of the digital logic gates that implement a Boolean function is directly related to the comp lexity of the algebraic expression from which the function is implemented . Although the truth table representation of a function is unique. when it is expressed algebraically it can appear in many different. but equivalent. forms. Boolean expressions may be simplified by algebraic means as discus sed in Section 2.4. However. this procedure of minimization is awkward because it lacks specific rules 10 pred ict each succeeding step in the manipulative process. The map method presented here provide", a simple. straightforward procedure for minimi zing Boo lea n function s. Thi s method may be regarded as a pictorial form of a truth table. Tbe map method is also known as the Kam augh map or K-map. 70 Sectio n 3.2 The M ap Method 71 A x -rnup is a dia gram made up o f squares, with each square rep resenting one mintenn o f the function thai is to he minimized . Since any Bool ean function can he e xpressed as a sum o f miru errns. it follows that a Boolean function is recognized grap hica lly in the map fro m the area enclose d by those square:;, whose mlnterms are included in the function. In fact. the lIlap present s a visual d iagram of all possible ways a function may he ex pressed in standard form . By recognizing vario us patterns. the user c an derive alterna tive algebraic e xpress ions for the same funct ion. from which the simplest can he selected. Th e si mplifie d exp ress ion>; produ ced by the m<lp are alw ays in one of the two standard fo rms: sum of products or produc t o f sums. It will be assum ed that the simples t a lgebraic ex pression is an algeb raic e xpression with a minimum number of term s and with the smalles t po ssible number of literals in each term. Th is expressio n produ ces a circuit diagram with a min imum numbe r of gales and the minimum num ber o f inputs to each gate. We will see subsequently that the simplest expre ssion is not un ique: II is some times possible to find two or more expre ssions thut satisfy the minimization criteria. In that case . either solutio n is satisfac tory, Two-Variab le Map The two-variable map is shown in Fig , 3, I(a). The re are four m lruerm s for two variables; hence, the map consists of four sq uares. one lo r each minterm . The map is redrawn in (bJ 10 sho w the relationshi p betwe en the squares and the two variables .r and y, The 0 and 1 marked in eac h row and co lumn de signa te the values of variables. Variable x appears primed in row 0 and unprim ed in row I . Similarly. .v appears primed in column 0 and unprimed in column I. •! 0 ,1 I (a ) -, 0 .t 'y ' "" ~ - I x) ", .rv xv (I;l J flctURE 3.1 Two-varia ble map If we mark the squares whose minterm s be long 10 a g iven function. the two -variab le map becomes another usefu l wa y to represent any one o f the 16 Boolean funct ions o f two variables. a ) is placed As an example. the function xy is shown in Fig. 3.2(a). Since xy is eq ual to inside (he squa re that belon gs to t1l 3 ' Similarly. the function .r + y is represented in the map of Fig. 3,2(bJ by three squares marked with t ' s. Th ese sq uares are foun d from the rrnmerms of "'3. the function : 1711 + "' 2 + 111 3 :::: .t'y + xy' + xy = .r + )' Th e three squares co uld also ha ve bee n determ ined from the intersection of variable .r in the second row and variable .\' in the seco nd column. which enclo ses the area be long ing to .r or j-, In each example, the minterms at which the functio n is asserted are ma rked with a I. 72 Cha pter 3 Gate-Level Minimiza tion y , y 0 ~ 0 .r -,1 -,, ~ 11 "" y ,y ~ 0 y 0 ,I', (a) xy (b) x +y FIGURE 3. 2 Representation of functions in t he map y •" mo m, m, m, m, m, m, m, -, -, ,I,-, -, 00 01 11 -, 0 x'y' z' x'y'z _x'}'z . xy 'z' .ry'z '" 10 -, x' yz ' -, x)'::' z ('I (bl FIGURE 3 .3 Thre e-va riable map Three -Vari able Map A three-variable map is shown in Fig. 3.3. There are eight minterms forthree binary varia bles; therefore, the map consists of eight squares. Note that the rninterms are arranged. not in a binary sequence. but in a sequence similar to the Gray code (Table 1.6). The characteristic of this sequence is that only one bit changes in value from one adjacent column to the next. The map drawn in part (b) is marked with numbe rs in each row and each column to show the relationship between the squares and the three variables. For example. the square assigned to I1ls correspo nds to row I and column 0 1. When these two numbers are concatenated, they give the binary number lOt , whose decimal equiv alent is 5. Each cell of the map corresponds to a unique minterm, so another way of looking at square ms = xy'Z is to consider it to be in the row marked x and the column belongin g to y' z (column 01). Note that there are four squares in which each variable is equal to I and four in which each is equal to O. The variable appears unprimed in the former four squares and primed in the latter. For convenience. we write the variable with its letter symbol under the four squares in which it is unprimed. To understand the usefulness of the map in simplifying Boolean functions, we must recognize the basic property possessed by adjacent squares: Any two adjacent squares in the map differ by only one variable, which is primed in one square and unprimed in the other. For example, I1ls and m 7 lie in two adjacent sq uares. Variable J is primed in 1115 and unprimed in 11l7' whereas the other two variables are the same in both squares. From the postulates of Boolean algebra. it follow s that the sum of two mintenn s in adjacent squares can be simplified to a single AND Section 3.2 The Map Method 73 te rm co nsisting o f only IwO literals. To clari fy th is co ncept con..ide r the sum o f two adjacent m ~ and "'7; squares suc h as "' ~ + "'7 = .(y ' : + xy: "" x: (y' + y) EO .oc: Here. the two squares d iffer by the variable y. w hich can be remo ved when the sum o f the two rninterrns is formed . Th us. any two minterms in adjacent squares (vertically or hori zont ally. bul not diagonally. adjacent) that are ORed together will cause a removal of me dissi milar varia ble. The next four examples explain the procedure for min imizing a Boo lean funct ion with a ma p. -tt·MIQ"·· S impli fy the Boo lea n fu nct io n F (x.y. : ) ~ ~(2.) . ... 5) First. a I is marked in each rninterm that represents the function. Thi s is shown in Fig , 3.4. in which the sq uares fo r rnimerr ns 0 10. 011 . 100. and 101 are marked with ts. Th e next step is 10 find po ssib le adj ace nt squares , Th ese are ind icated in the map by two rectangles, each en - closi ng two l 's. Th e upper right recta ngle re presents the are a enclos ed by x'y, Th is are a is de term ined by o bservi ng that the two -square area is in row 0, corresponding [0 .r", and the last two co lumns. co rres po ndi ng 10 y. Similarly. the lower lef t rect an gle represent s. the produ c t term .rv'. (The seco nd row represe nts .r a nd the two left col umns represe nt y ' .) Th e lo gical sum of the se two prod uct term s gives the simplified expression F : .ty + .t y' :,,: x',, , OJ 01 0 " -, 10 -. . FIGURE 3.4 MapforExample3 .1,F(x., y, z ) = ~ ( 2, 3, 4. 5 ) = x · y ~ xy' • In certa in cases. I WO sq ua res in the map are coust de red 10 be adja cent even thou gh they do not touc h each othe r. In Fig , .'. 3, "'u is adj ace nt to 11I 2 and 11I4 is adjacen t to"'6 beca use the minte rms differ by o ne variabl e . Th is difference ca n be readily verifi ed alge braica lly; "'0 -+ "'4 + "'2 '" ,f 'y ':;' + m ~ = X:" ' : ' x'y :' '" .,':'(y' + y ) '" x':' -+ .f:." :' "" .ec' + C", + :,.) "" .t:' Consequently, we must ITltld ify the de finitio n o f adjacent sq uare.\ to inclu de this and other similar cases . We do so by co nsidering the map as be ing d rawn on a surface in w hic h the righ t and left edges tou ch each ot her to form adjacent sq uare ... 74 Chapter 3 Gate-Level Minimization Simplify the Boo lean function F(•• y, , ) - ~ ( J . 4. 6. 7 ) The map for this function is sho wn in Fig. 3.5. There are four squares mark ed with l 's, one for each minterm o f the function . Two adjac ent squares are co mbined in the third column to give a two-lit eral term yz. Th e rem aining two squares with J's are also adja cent by the new definition. The se two squares. when co mbined, give the two-literal term xz'. The simplified functio n then beco mes F = yz + xt. ' ," 0 , j . ). 00 ... I . . .. . 01 11 -, 10 I - 1 I ,. 1 I . ~ . XYI ' .VQle: xy ' t ' + XYI' - u ' FIe'URE J .S Map for Example 3.2. F(x, y, z ) = I (3, 4, 6,7 ) - yz + xz' • Co n...ider now any combination of four adjacent squares in the three-variable map. Any such combination represe nts the logical sum of (our minrerms and results in an express io n with only one literal. As an example. the logical sum of the four adjace nt mintcrms 0, 2, -I, and 6 reduces to the single literal term z': rnO + "'2 + m .. + rn6 = x 'y';:' + x 'y;:' + xy ' ;:' + x.v:. ' = x':.' (J ' + y ) + x::: ' (y ' + y ) = x' :::' + xz' = :::' (x' + x) = z' The number of adjace nt squares that may be co mbined must always represent a number that is a power of two, such as 1, 2,4, and 8. As more adjacent squares are combined , we obtain a productterm with fewer literals. One square represents om: minterm . giving a term with three literals. Two adjacent ~uares represent a term with two literals. Four adjacent squares represent a term with one literal. Eight adjac ent square.. encompass the entire map and produce a funct ion that is always equal 10 I. Sectio n 3,2 The Map Meth od 75 Simplify the Boo lean function F( x. y.:) = ~ (O . 2. •. 5. 6 ) Th e m ap for F i....he wn in Fig. 3.6. First. we com bine the fo ur adjac ent o;quares.in the first and last col umns 10 give:the ..ingle literal term z'. The remaining single square. represennng rrnnterm S. i.. co mbi ned w ith an adjacent !>quare that has.alrea dy bee n used o nce . Th is.is not o nly per mis..ible . 001 rather desirable. bec ause the two adiacenr squares give the two-li teral term -lJ ' and the single sq uare represen ts the three -lite ral mi nrcrm xy ' z. Th e sim plified functio n is F = :' + .\').' \ 'Z .I" z, ·t (Xl ---,.,, ~ , ,~. O ',~ x{ I, II OJ 10 " m, yz ' ~1~:~, "':>" 1 I n f1C;URE 3 .6 Map for Example 3.3, F(JI, y, z l = ~ ( O, 2, 4, 5,6) = z : + xy' • If a func tio n is not e xpressed in ...um-of- rninterms form . it is possible 10 use the map 10 obtain the mintenns of rbe fu nction and then simpli fy the function to an expression with a minimum num ber of term s. II h nece..."a ry. howe ver. to make su re tha t the algebraic expres sion is in sum-o f-prod ucts fo rm . Eac h prod uct term can tIC pla ne d in the map in o ne, IWO. or mort' sq uares . Th e min term s of the functio n are then re ad d irec tly from the map . 11111E13'P"C· Let the Bool ean funct ion F = A'C + A' B + AB'C + BC (a) Express this fu nct ion as a sum of min rerm s. (b) Find the m inimal o;um·of·producIH Xpres.l<lio n, Three prod uct terms in the expre ssion have two literal s and are represent ed in a th ree -..-ariable map b y two squares eac h. The IWO sq uares co rres pond ing to the firs t term . A'C. are found in Fig. 3 .7 from the coi ncidence of A ' ( f r-, t row ) and C uwo midd le columns) 10 gi..·e sq uares 001 76 Chapter 3 Gate-Level Minimizatio n A BC B 00 01 11 .. ., . + "0 0 A 'B 10 ""f?, \';\ ' '~·':'i~~ ~k. 1:,:;~,.~~ I •• I , C -, C FIGURE 3.7 Map for Example 3.4, A'C + A' B + AB'C + BC = C + A'B and Oi l . Note that, in marking I 's in the squares, it is poss ible to find a 1 already placed there from a preceding term . Thi s happens with the second term, A' B. which has I's in squares Oi l and 010. Square 011 is common with the first term. A 'C , though. so only one I is marked in it. Continuing in this fashion, we determin e that the term A B'C belongs in square 101. corresponding to minterm 5, and the term BC has two I 's in squares 0 II and Ill . The function has a total of five minterms, as indicated by the five I 's in the map of Fig. 3.7. The mintenns are read directly from the map to be 1,2. 3, 5, and 7. The function can be expressed in sum-ofminterms form as F (A , B, C) = ~ ( l . 2, 3, 5, 7) The sum-of-products expression. as originally given. has too many terms. It can be simplified. as shown in the map, to an expression with only two terms: F =C + A' B • 3 .3 FOUR -VARIABLE MAP The map for Boolean functions of four binary varia bles is shown in Fig. 3.8. In (a) are listed the 16 minterms and the squares assigned to each. In (b). the map is redrawn to show the reo lationship between the sq uares and the four variables. The rows and columns are numbered in a Gray code seq uence, with only one digit changing value betwee n two adjace nt rows or columns. The minrerm correspo nding to each square can be obtained from the concatenation of the row number with the column number. For example. the number s of the third row ( I I ) and the second co lumn (0 1), when concatenated, give the binary number 1101, the binary equiva lent of decim al 13. Thus, the square in the third row and seco nd column represe nts mintenn m 13. The map minimization of four-variable Boolean functions is similar to the method used to minimize three-variable functions. Adjacent squares are defined to be squares next to each other. In addition, the map is considered to lie on a surface with the top and bottom edges , as well as the right and left edges, touching each other to form adjacent squares. For example, Section 3.3 wx Four -Variab le Map yo: 00 m, '"0 m, '"' 11/] 00 W' ,l 'y ' ::' ...' x'.~ · :: \I" x '.\':: fil l m> "'7 II/~ O( '. m. m" In n ml ~ m l~ 11 It',\.\'·'" », "'8 m~ 1111\ Ill lU 10 ",x 'y m. ..··xr:: ...·xy·;: W ' ,lY ' ;:' '" rn" '. m" "',(.1";: " K"Xy .:': ....t 'y ·: (, ) 10 11 01 m m, m Il 77 " 14".\"' .1';:' ~ ",'xyz ' moo , wx)'z ' m oo W.t 'y:: ....t'>"Z· . (h ) FIGURE 3.8 Four-variable map /n o and m 2 fonn adjacent squares. as do 111) and "tn- The combination of adjacent squares that is useful durin g the simplification process is easily determ ined from inspec tion of the fourvariable map: One square represents one minrerm. giving a term with four literals. Two adjace nt squares rep resen t a term with three literal s. Four adjacent squares represent a term with two literals. Eight adjacent squares represen t a term with one literal. Sixteen adjacent squares produce a function that i.. nlways equal tc I. No other combination of squares can simplify the function. The next two example" show the procedure used to simplify four-variable Boolean function... MUiMRIII& Simplify the Boolean function F ( u-,x.y, , ) : ~ (O.1.2 .4 .5 .6. 8 .9 . 12.13. 14 ) Since the function has four variables, a four-variable map must be used. The minterms listed in the sum are marked by I's in the map of Fig. 3.9. Eight adjacent squares marked with Fs can be combined 10 fonn the one literal term v'. The remaining three I's on the right cannot be combined to give a simplified leon ; they must be combined as two or four adjacent squares. The larger the number of squares combined, the smaller is the number of literals in the term. In this example. the top two ls on the right are combined with the top two I's on the left to give the term 11" ;:' . Note that it is permissible to use the same square more than once, We are 78 Chapter 3 Gate-level Min imization z y' + W 'Y l' = w'a' + XYl' = Xl ' N ote: W'Y ' l ' XY'l' FIGURE 3.9 Map for Exampl e 3.5, F( w, x, y, z) ,., L (O, 1, 2,4, 5, 6, 8, 9, 12, 13, 14) y' + w'z' + lCZ' =' now left with a square marked by I in the third row and fourth column (square 111 0). Instead of taking this square alone (which will give a term with fou r literals), we comb ine it with squares already used to form an area of four adjacent squares. These squares make up the two middle rows and the two end columns. giving the term xs', The simplified function is F =' y' + w'z' + Xl ' • Simplify the Boolean function F =' A'B'C' + B'CD ' + A 'BCD' + AB 'C' The area in the map covered by this function consists of the squares marked with I's in Fig. 3.10, The function has four variables and, as expressed. consists of three terms with three literals each and one term with four literals. Each term with three literals is represented in the map by two squares. For example, A ' B'C ' is represented in squares ()(X)J and 0001. The function can besimplified in the map by taking the l 's in the four comers to give the term B' D' . Thi s is possible because these four squares are adjacent when the map is drawn in a surface with top and bottom edge s, as well as left and right edges, touching one another. The two left-hand I 's in the top row are combined with the two I's in the bottom row to give the term B'C' . The remaining 1 may becomb ined in a two-square area to give the term A'e D' . The simplified function is F = B'D ' + B'C' + A'CD ' • Section 3.3 Four-Variabl e Map 79 A 'WC A 'S 'C D' A8 en c UO 11 Ol 10 A 'S TD ' A 'CD ' B A A HTD ' A8'CD' ART' D NOII': A 'R'CD' + A '8'eD ' = A ' R' n ' AR 'CD ' - AS ' CD ' . A R' D' A 'B 'D ' ~ AS 'V ' = H'l)' A '/lT' - AH 'C = R'C' FIGURE 3.10 Ma p fo r Example 3.6, A'B 'C ' + 8'CD ' + A'B CD' + AB'C = B'D' + B' C + A'C D' Prime Impllcants In choo sing adjacent sq uares in a map, we must en sure that ( I ) all the minterms of the function are co vered wh en we combine the squares, (2) the number o f ter ms in the ex pressio n is min imized , and (3) there are no redundant terms (i.e .. minrerms alrea dy cove red by other terms). Some times there may he two or more e xpress io ns thai satisfy the simplification criteria. Th e proc ed ure for co mb ining sq uare s in the map may be mad e mo re syste matic if we understand the meani ng of IWO spec ial type s of terms. A p rime implicant is a product term obtained by comb ining the maximu m po ssible number o f adjacent squares in the map . If a minrerm in a sq uare is cove red by o nly o ne pri me implicant. thai pri me imp lica nt is said to he essential. Th e pri me imp lica nts o f a functi on ca n be ob tai ned fro m the ma p by combining all poss ib le ma ximum num ber s of squares. Thi s mean s that a si ng le I on a ma p re presents a prime implica nt if it is not adj ace nt to any ot her l's. Two adjace nt Fs form a pri me implica nt. pro vided tha t they arc not within a gro up o f four adjacent sq uares . Four adj ace nt I 's form a prime im p lica nt if the y are not withi n a g roup of eight adjacent squares. and so o n. Th e esse ntia l pri me implica nts are fo und by loo king at each square mar ked with a I a nd checki ng the num ber o f prime implicanrs that cov e r it. Th e p rime imp lican t is esse ntial if it is the only prime implicant that co ver s the mintenn . Consider the foll owin g four -variable Boolea n functio n: F(A. B. C. D ) ~ ~( O. 2. 3. 5. 7. 8. 9. 10. II . 13. 15) The minterms o r the function are marked with Fs in the maps o f Fig. 3.11. Th e partial map (pan (a) o r the figure) shows two ess ential prim e implicants. each formed by co llapsing fo ur ce lls into a term having only two litera ls. O ne term is esse ntial beca use there is only o ne way to include 80 Chapter 3 Gate-Level Minimizati on C AB CD 00 01 10 II 00 A 'H' C D' BD 01 -, ""'' /% W\<'il I -" . A 'B ' CD ' ~ 1~ CD ~ ~;l,:~ -" Is "/J"'I/ '1/ i-W'&,' !1/I;171i; ~ - 00 -. AD ~ {I 10 AB' C'D ' C A BeD 00 1 n 01 -, 1tr,'1 .",'::-.",'f. H:;,!'! . ' ~', ".t.<I:i1f"!iii rZlli ""l. ...~ " >!J ,:, f 'l . D D ."J 31i -.." -, AS'CD' 10 .. ~ S'C -_~ AS' Nor..:A 'B' C'D' ''' A 'B 'eD ' '"' A'B'D ' AB'C' D' + AS ' CD ' - AS'D' A ' B' D' + AS 'D ' - B'D ' (a) Esse ntial prime implican ts (b) Prime implicants CD, B'C, BD and B 'D ' A D , and AB' FIGURE 3.11 Simp lificat ion using prime implicants minterm mo within four adjacent squares. These four squares define the term B' D' . Similarly. there is only one way that mintenn m ~ can be combined with four adjacent squares, and this gives the second term BD. The two essential prime implicantscover eight minterms. The three minrerms that were omitted from the partial map (m3. me. and mil) must be considered next. Figure 3. 11(b) shows all possible ways that the three minterms can be covered with prime implicants. Minterm ffl3 can be covered with either prime implicant CD or prime implicant B'C. Minterm 111 9 can be covered with either AD or AB' , Minterm III II is covered with anyone of the four prime implicants. The simplified expression is obtained from the logical sum of the two essential prime implicants and any two prime implicants that cover minterms m3. m9. and mll ' There are four possible ways that the function can be expressed with four product terms of two literals each: + B'D' + CD + AD = BD + B'D ' + CD + AB' = BD + B'D ' + B'C + AD ::: BD + B'D ' + H'C + AB' F = BD The previous example has demonstrated that the identification of the prime implicants in the map helps in determining the alternatives that are available for obtaining a simplified expression. The procedure for finding the simplified expression from the map requires that we first determine all the essential prime implicants. The simplified expression is obtained from the logical sum of all the essential prime implicanrs, plus oilier prime implicants that may be needed to cover any remaining mintenn s not covered by the essential prime implicants. Occasionally. there may be more than one way of combining squares, and each combination may produce an equally simplified expression. Section 3.4 3.4 Hve -varlabte Map 81 FIVE -VARIABLE MAP Map s for more than fou r varia ble" are not as si mple 10 use a" maps for (our or fewer variable s. A five-variable map need .. 32 square.. and a ..i s-variable map need s tH squares . When the num be r of variable s become s large, the num ber of ~uares becomes c..xcesslve and the geometry for com bining adjacent squares beco mes more involve d. The five-variable map is shown in Fig. 3.12. It consi..t.. of 2 four-variable map s \\,ilh vari abies A. B. C. D. and E. Variab le A di..tin gui shes betw een the two maps. as indica ted at the top of the dia gram. Th e le ft-hand four- vari able map repre sen ts lhe 16 ~ uares in which A = O. and the other fou r-vari ab le map rcpre ..ents the square .. in wh ich A = I . Minterm s n through 15 belon g with A = 0 a nd mim erm .. Ie throu gf 3 1 with A "" I. Eac h fo ur-variable map retain.. the previou sly defined adja cency when taken separately. In addition. each square in the A "" 0 map is adjace nt to the corre sponding squa re in the A = I map . Fo r example. mimcnn .. is adjacent 10 min tenn 20 and min rerm 15 to 3 1. The best way to visualize this new rule for adja cent squares is to co nsider the two half map s 3 !> bein g o ne o n top of the o ther. Any two squares Ihat fall one ove r the other are co nsidered adjac ent . By followi ng the proced ure used fo r the five-variable map. it is possible to co nstruct a six variable map with 4 four-variable ma~ 10 ob tain the required 64 square s. Maps with six or more vari ables need (00 man y sq uares and are Impracri cal to use . The alternative b 10 employ com. pute r programs specifica lly written to facili tate the simplifica tio n of Boo lean functions with a large number o f varia bles . By inspection. and lak ing Into acco unt the new definitio n of adjacent s-quares. it is po....ible 1 10 show that an)' 2 adjacent squ ares, for k "" (0. 1. 2. . . . • n ) in an e-v an able map . will rep rese nt an area that give s a term o f n - k literal s. For this statement 10 have any meanin g. however, n must be larger tha n L When n = k , the entire are a o f Ihe map is co mbined 10 give the A = J BC D D£ 00 01 B j II 10 11 ", ", ~ 00 01 0 I .., ~) 7 6 01 13 15 " 11 -" £ FIGURf 1 .12 Five-variable map 10 c -. 00 2 ~ 8 1' £ 3 -,, -,, -, -, "'" -" - " " -, - " ". 12 RC 10 c R \0 I' 20 -"21 -"23 -. 24 I" 10 -" 18 ""22 -. -, - -, -, 28 -" 11 "'"17 " , -, 11 01 ""3\ 29 27 " £ 30 26 c 82 Chap ter 3 Gate-Level Minimization Table 3.1 1M Rdationship ~ tM Numbn 01 AdIOCtl1t Squorts and tM Num bn at UttrOli In tht Tmn Number of Ad jace n t Squares Number of literals In a Tenn In an n-varlable Map « 2' 0 1 2 2 3 4 I I 3 4 2 4 0 2 1 2 3 I 2 3 , 4 0 = 2 0 = J n =4 0 8 I. 0 = 0 J s I 0 32 identity function. Table 3. 1 shows the relationship between the number of adjacent squares and the numbe r of literals in the term. For example. eight adjacent squares combine an area in the five-variable map to give a term of two literals. Simplify the Boolean function F(A.B.C.D.£) ~ I (O.2. 4.6. 9.13.21 .23.25.29.31 ) The five-variable map for this function is shown in Fig. 3.13. There are six minterms from "" O. The othe r five minterms belong with o to 15 that belong to the pan of the map with A A "" I. Fo ur adjacen t squares in the A "" 0 map are co mbined to give the three-literal term A' B' E' . Note that it is necessary to include A' with the term beca use all the squares are as sociated with A = O. T he two foquares in co lum n 0 I and the last two rows are co mmon to bot h part s of the map. Therefore. they co nstit ute four adjacent sq uares and give the threeliteral term BD ' E. Variable A is not included he re because the adjacent sq uares belong to bo th A = 0 and A = I. The term ACE is obtai ned from the four adjac ent squares that arc enti re ly with in the A = I map . T he simplifie d func tion is the logical su m of the three terms: F = A'B 'E ' + BD ' E + ACE • Section 3.S Product-of-Sums Simplification 83 D m A ' B V '£ B r::· · · . J ,.•••• , f D DE 00 : A BD ' £ 01 II 10 ! i ;01 i { :: / ~; ;.j.=-:.. ~~~~ . r FIGURE J ,n Map for Exam ple 3.7, F · A'BT + BD'f ... ACE 3 .5 PRODUCT-Of -SUMS SIMPLIfiCATION The minimized Boolean Iunctions derived from the map in all previous examples were ellpressed in sum-of-prod ucts form . With a minor modifi cation.the produc t-or-sums form can be obtained . Th e proc edu re for obta ining a minimized function in product-or-sums form fo llow s from the basic properties o f Boole an function !'> . Th e 1' 5 placed in the sq uares of the map represent the rnimerm s of the functio n. The mintcnn s not included in the srandard sum-of-prodocts form o f a fun ct ion den ote the co mpleme nt of the function . From this obse rvatio n. we see thai the co mp leme nt o f a funct ion is represe nted in the map by the sq uares not marked by I's . If we mar k the em pt)' sq uares by Irs and co mbine the m into valid adjace nt MJuarc s, we obtain a simplified ex pressio n o f the com pleme nt o f the functio n {i.e.• o f F' ). Th e complement of F' gi ves us back the function F. Bec ause o f the ge neralized DeM organ '.. theorem . the func lion so obtained is autom atic ally in produc t-o f-su ms for m. Th e be st .....ay to sbo ..... th is is by e xample. 84 Chapter 3 Gate-Level Minimization .. C AS CD 00 00 01 II I 0 BC D' o, 01 II A 0 1 0 0 -. o, 10 CO o, I .. 0 0 , o, I BCD ' 1 0 .. 0. B o~ 1 AB o NOlt : BCD' + BCD' - RD ' FIGURE 1.14 Map for Example 3.8, F(A, B, C, D) = ~ ( O, (A' + B' )( e' + D' )( 8' + D) r, 2, 5, 8, 9, JO) = B' D' + B'C' + A'CD - Simplify the: following Boolean function into (a) sum-of-products form and (b) product-ofsums fonn: F(A , B, C, D ) = ~ (O, 1.2, 5, 8,9,10) The ls marked in the map of Fig. 3.14 represent all the minterms of the function. The squares marked with O' s repre sent the min term s not included in F and therefore de note the complement of F. Combining the squares with I 's gives the simplified function in sum-of- products Conn: + B'C' + A'C'D If the square s marked with O's are combined, as shown in the diagram, we obtain the simplified complemented function: (a) F = S'D' F ' = AS + CD + 8 0 ' Applying DeMorgan 's theorem (by taking the dual and comp lementing each literal as described in Section 2.4), we obtai n the simplified function in product-of-sums form : (b ) F ~ (A' + B' )(e' + D' )(B ' + D) • The implementation of the simplified expre ssion s ob tained in Example 3.8 is shown in Fig. 3.15. Th e sum-of-products expression is implemented in (a) with a group of AND gates. one for each AND term . The ou tputs of the AND gales are connected to the inputs of a single OR gale . The same function is implemented in (b) in its produ ct-of-sum s form with a gro up o f OR gates. o ne for each OR term . The outputs of the OR gales are connected to the inputs of a single Al\'D gale. In each case. it is assumed that the input variables are directly Section 3.S 85 A' i>_-, ··Tfl ----, 0 ·...,.-t,_ Product-of-Sums Simplification • . ...,.-c,....- ./ , C' --'-':---..'}-_ --==fi 0·.,...._ _ r o-LJ ----' (a) F - B ' D ' ... 8 ' C + A T 'V ,1'0 1F '"' f A ' .. B' )( e' ... D ' )(H' ... 01 fl (, URE J.15 Gat e implement ati ons of the function of Example 3.8 Table 3.2 Truth Tobie of Function f K y z II II II II I I I I II II 1 II I II I II I II I I II II I I , II 1 II 1 I II I II available in the ir co mpleme nt. ..0 inverte rs a re noe needed. The configuration pat tern establivhed in Fig. 3.15 is the general form by which an)' Boolean function is implemented when ex pressed in one of the sta ndard form s. A~D gates are co nnected 10 a single O R gale when in sum-of-prod ucts form : OR gates are connec ted to a single AND gale when in product-of"urn" fonn . Eithe r configuration forms two le vel.. of gales. Thus. the implementatio n of a funct ion in a standard form is said 10 be a two-level impleme ntatio n. Exa mple 3.8 sho wed the proced ure for obtaining the produ ct-of-sums simplification when the function is o riginally expres sed in the sum-of-mime nu s ca nonica l fOnTI. Th e procedure is a lso val id when the function is origina lly ex pressed in the product-of-maxrerrns ca nonica l form . Co nsider, for exa mple, the truth table rhat defi nes the funct ion F in Table 3.2. In sumof-r ninrerms fOnTI. this function is expressed as F(x. X. c) = ~( I. 3. 4. 6) In product-of-max rerms form . it is exp res..ed as ' (x. x. ' ) ~ n (O.2.5. 7) In other words. the ls of the function represen t the mintcrm .. and the D's rep resent the maxterms . Tbe map for this function is shown in Fig. 3.16. One can start simp lifying the function by fin.1 marking:the I' " for each minterm thai the func tion is a I. The rema ining square s arc 86 Chapter 3 Gat e-Leve' Minimization . , 00 II 01 o .. 10 u ' FIGURE 3. 16 Map for the function of Table 3.2 mark ed by D's. H, instead, the product of maxterm s is initially given, one can SIal1 marking D's in those sq uare s listed in Ihe fu nction; the remaining sq uare s an: then mark ed by J's . Once the 1' 5 and n's are marked, the function can be simplified in eith er one of the standard forms. For the sum of prod ucts, we combine the J's to obtain F = .t ' , + x, ' For the produ ct of sums, w e com bine the D's to obta in the simplified co mpleme nted funct ion F' = .rz + x' , ' which shows that the excl usive-O R functi on is the complement of the equi valence function (Section 2.6). Taking the complement of F' , we obtain the simplified function in product -ofsums fonn: F = (x' + z')( x + z) To enter a function expre ssed in product -of-sums form into the map, use the compleme nt of the function to find the squares that are to be marked by n's. For example, the functi on F = ( A' + B' + C' )( B + D ) can be entered into the map by first taki ng its compleme nt, namely, F' = ABC + B'D' and then marki ng D's in the sq uares represe nting the minterms of F' , The remain ing squares are marked with t 's. 3 ,6 DON 'T-CARE CONDITIONS The logica l su m of the mmrerm s assoc iated with a Bool ean function speci fies the conditions under wh ich the function is eq ual to I. The funct ion is equal to 0 for the rest o f the minte nns. This pair o f con ditions assumes that all the comb inations of the values for the variables of the fu nction are valid. In pract ice, in some applications the functio n is not speci fied for certain combinatio ns of the variables. As an exam ple, the four-bit binary code for the decimal digits has six combinations that are not used and conseq uently are considered to be unspecified . Section 3.6 Don 't-Care Conditions 87 Functions that have unspecified outputs for some input combinations are called incompieteiy spe cified fun ction s, In most applications. we simply don't care what value is assumed by the function for the unspecified minrerms. For this reason, it is customary to call the unspecified minterms of a function don 't-care conditions. These don't -care conditions can be used on a map to provide funh er simplification of the Boo lean expression. A don 't-care minterm is a combination of variables whose logical value is not specified. Such a miruerm cannot be marked with a I in the map. because it would require that the function always be a I for such a combination. Likewise. putting a 0 on the square requires the function to be O. To distinguish the don ' r-cere condition from l 's and a 's. an X is used. Thus. an X inside a square in the map indicates thai we don 't care whether the value of a or I is assigned 10 F for the particular mintcrm. In choos ing adjace nt squares to simplify the function in a map. the don' t-care minrerms may be assumed to be either 0 or I. When simplifying the function. we can choose 10 include each don 't -care minterm with either the Fs or the O's. depending on which combination gives the simplest expression. • "3'&''- Simplify the Boolean function F(II ·, x. y, Z) :::: ! (J. 3. 7, 11. 15) which has the don' t-care conditions d( w.x,y,,: ):::: ~ ( O ,2 ,5 ) The minterms of F are the variable co mbinations that make the functio n equal 10 I. The minterms of d are the don ' t-care minterms that may be assigned either 0 or I. The map simplificarion is shown in Fig. 3. 17. The minterms of F are marked by I 's. those of d are marked wr y VZ 01 IXl II ~J m, IXl 00 W'.l ' ""'.: m, X II OJ m" 0 01 0 JO X X 0 0 0 0 X m'l U In, m, IJ OJ m, X In" 0 II 10 ! .1':: " 'X 10 IJ "' m, 10 0 0 yz l a ) F '" y:: + w'x ' f iGURE: ) .17 Example with don't -care cond it ions ( b ) F . )"z "T" w'.: 88 Chapter 3 Gate-level Minimization by X's. arxI the remaining squares are filled with a's. To get the simp lified express ion in sumof-prod ucts foen, we mu st include all five I's in the map , but we may or may n OI incl ude any of the X's, depending on the way the function is simplified. The term JZ cove rs the four minterms in the third col umn. The remaining mintenn, m l , can be combi ned with mint erm m 3 10 give the three -literal term _ .•. 1'.:. However, by including One! or two adj ace nt X's we can combine four adjacent sq uares to give a two- literal term. In part (a) of the diagram, don't -care numerms oand 2 are inclu ded with the t 's, resulting in the simplified funct ion F = )·: +M... ..r' 10 pan (b ). don' t-care mmrerm 5 is incl uded with the F = JZ t's. and the simplified funct ion is no w + w' : Either one of the precedin g two expre ssions satisfies the conditions stated for this example. • The previou s example hass shown that the don' t-care minterrns in the map are initially marked with X's and are considered as being either Dor I. The choice betwe en 0 and I is made depending o n the way the inco mpletely speci fied function is simplified. Once the choice is made , the simplified function obta ined will consist of a sum of minrerms thai includ es those mintenns wh ich were initially unspecified and have bee n chose n to be included with the ls. Consider the two simp lified expre ssion s obtained in Example 3.9: F (",. ..r,y,: ) = y: + ",'x ' F("" .r, J,:) = j'z = ~ ( O,I , 2 , 3 , 7, 11. 15 ) + _.': - "!(I , 3, 5, 7, I I, 15) Both exp ressio ns include min tenns 1, 3, 7, I I , and 15 lhat ma ke the function F eq ual to I . The don' t-care mintenns 0,2, and 5 ar e trea ted differently in each expression. The firs t expression includes min terms 0 and 2 with the t 's and leaves minterm 5 with the n's. The second expression incl udes minterm 5 with the I 's and leaves minterms 0 and 2 with the D's. The IWO expressio ns repre sen t t.....o functions that are not algebraically eq ual. Both cover the specified minterm s o f the function. but eac h cov ers different don't-care mint erms. As far ax the inco mpletely specified function is concerned, either ex pressio n is acceptable because the o nly d ifference is in the value o f F for the don ' t-care mlnrerms. If is also possible (0 obtain a si mplified prod uct-o f-sums ex press ion for the func tio n of Fig. 3. 17. In thi s case. the only way to combine the D's is to include don 't-ca re minrerms 0 and 2 wit h the D's to give a sim plified comp lemented funct ion : F' = z' + wj-' Taking the compleme nt of F' gives the simplified expression in produ ct-of- sums form : F(w. x. y. , ) = , (w' + r) = ! ( 1.3. 5. 7. 11. 15) 10 this case, we include minterms 0 and 2 with the D's and mimcnn 5 with the t ' s. Section 3.7 3.7 NAND and NO R tmp tementetlcn 89 N A N D A ND N O R I M PL EME NTATIO N Digital circuits art frequ ently con structed with NAND or NOR gales rather than with AND and O R gal es. :-JAND and NOR g a le~ arc ear...ier to fabricate with electronic com ponents and are the bask gales used in all Te digitallogic families. Because o f the prominence of ~A!': D and NOR gales in the design o f d igital circui ts. rule s and procedures haw been developed for the co nversion from Boolean fun ctions g ive n in term s o f ASD. O R. and f'OT into equivalent NASD and NOR logic di agram .... NAND (Inuit. The NASD gate is.said 10 be a universal gate beca use an) ' digi tal system can be implemented with it. To sho w thai any Boolean funct ion ca n be implemented with N AN D gates. we need only show thatthe logical operations of A~D. O R. and complement ca n beobtained with NAN D ga l e~ alo ne. Th is is indeed shown in Fig. 3.18.The- complement operation is obtained from a oreinput NAN D gate that behave s exactly like an inve rter, The AN D operation req uires t.....o NAN D gales. The first prod uces the NA ND ope ration and the second inverts the logica l sense of the signal. The O R operation is achieved through a NAN D gale with additio nal inverters in eac h input. A convenien t way to im plement a Boo lean function wit h NAND gat es is to obtain the simplified Boolean fu nctio n in term s of Boolean ope rators and then co nve rt the fu nction to NAN D log ic . The convers ion of an alge bra ic expression from AN D. O R. and complement to NAN D ca n be done by stm plc circuit munipularion techn iques thai ch ange AND-OR d iag ra ms to NAND diagrams. To fac ilita te the co nversion to NA~D logic . it is con ven ient to define an alternative graphic 5)'01001for the: gate. Two equivalent gra phic symbols for the NASD ga te art shown in Fig , 3. 19 . A~O OR '=:J=o- (.I"·.v')' '' .r + y ! FIGURE 1. 18 logic ope rat ions with NAND gates ~ =t::=)-- (x,·=r ~ v--- (a) A SD·in \"('n FIGURE 1.19 Two gr aphic sym bo ls for th e NAND gat e (b) (n\'en ·O R x' ....1' · ... ='. (.'."=)' 90 Chap ter 3 Gate-Leve l Minimization The AND-mvert symbol has beendefined previously and consists of an AND graphic symbol followed by a small circle ne~ation indicator referred to as a bubble. Alternatively, it is possible to repeesem a NAND gate by an OR graphic symbol that is preceded by a bubble in each inpuL The inverl.QR symbol for the NAND gale follows DeMcq:an's theorem and the con vention that the negation indicator oenoees com plementation. The 1\1.<0 graphic symbols' represen tations an: useful in !he anal ysis and design of NAND circuits. When both symbols are mixed in tbe same diagram, the circuit is said to be in mixed notation . Two-Level Implementation The imp lementa tio n o f Boolean function s with NAND gates requ ires that the functions be in sum-of-products form. To see the relationship betwee n a sum-of-product expre ssion and its equiv alent NAND implementation, co nsider the log ic diagrams dra wn in Fig. 3.20. Alllhree diagrams are equ ivalent and impleme nt the function F = AB + CD The funct ion is implemented in (a) with AND and OR gat es. In (b), the AND gate s are replaced by NAND gates and the OR gate is replaced by a NAN D gate with an OR-invert graph ic symbol. Remember thai a bubb le denotes complementation and two bubble s along the same line rep resent double complementation, so both can be removed . Remo ving the bubbl es on the gales of (b) produces the ci rcuit of (a). The refore. the two diagrams implement the same function and are equivale nt. In Fig. 3.20(c) . the OUlpUI NAND gale is redrawn with the A.." lD-in \'ert graphic symbol. In drawing NA ND logic d iagram s. the circuit shown in ei the r (b ) or (c) is acce pta ble. Th e A--r= B- -L.cJ F c - f:>.i;;;,\ D--== (. ) A _-r=, A--r- , B- -L- / F (b) RGURE 3.20 Three ways to Implement F = AB + CD B- = = F (0) Section 3.7 NAND and NOR Implementation 91 one in (b ) is in mixed no tation and represe nts a more direct relat ionship 10 the Boole an ex press ion it implements. The NAND implementation in Fig. 3.20(c ) can be verified algebraically. The function it impleme nts can easi ly be converted to su m-o f-products form by Delvtorgan's rheorem: F ~ « AB)'( CD)') ' ~ AB + CD IIW3iAIu. lmple memthe following Boolean function with NAN D gates: F(x. r. r) ~ ( 1.2. J. 4. 5. 7) The first step is to simplify the function into sum-of-products fo rm. This is done by means of the map of Fig. 3.2 1(a). from which the simplified function is obtained : F = xy' + x 'y + :: The two-level NAND implementation is shown in Fig. 3.2 1Ib) in m ixed notation. Note thai input :: must have a one-input NAND gate (an invenen to compensate for the bubble in the secondlevel gate. An alternative way of drawing the logic diagram is given in Fig. 3.2 )(c) . Here, all the NAND gates are drawn with the same graphic symbol. The inverter ....,ith input z has been removed. but the input variable is. complemented and denoted by z'. • F = xy' .... x'y +;: x.\" [a x "x' F F !' t: (b) FIGURE 1.21 Solution to bample ] ,10 (0) 92 Chapter 3 Gate-level Minimiza tion The procedure desc ribed in the previous example ind icates that a Boolean function can be imple mented with two levels of NAN D gates. The proce dure for obtaining the logic d iagram from a Boolean function is as follow s: I . Simplify the function and express it in sum-of-prod ucts form . 2. Draw a NAND gale for eac h product tenn of the expression that has atleast two literals. The inputs 10 each NAN D gate are the litera ls of the term. This procedure produces a group of first-level gates. 3. Draw a single gate using the AND -inver1 or the Invert-Ok graphic symbol in the seco nd level, with inputs coming from outputs of first-level gales . 4. A term with a single literal requires an inverter in the first level. However, if the single literal is complemented, it can be connected directly to an input of the second-level NAND gate. Multilevel NAND Circuits The standard form of expressing Boolean functions results in a two- level imple me ntat ion. There are occasions. however, when the desig n of digital systems results in gati ng structures with three or more levels. The most common proce dure in the de sign of multilevel circu its is 10express the Boolean function in terms of AND, OR , and complement ope rations. The function can then be imp lemented with AN D and OR gates. After that, if necessary. it can be conven ed into an all-NAND circuit. Consi der. for exa mple. the Boolean function F = A(CD + B) + BC' Although it is possible to remove the parentheses and reduce the expression into a standard sumof-products for m. we choose to implem ent it as a multilevel circu it for illustr ation . The AND-OR impleme ntation is shown in Fig. 3.22(a). There are four levels of gating in the ci rcuit. The first level has two AN D gates . The secon d leve l has an OR gate follow ed by anAND gate in the third level and an OR gale in the fourth level. A logic diagram with a pattern of a1ternating levels of AND and OR gales can easily be convened into a NAN D ci rcuit with the use of mixed notation. shown in Fig. 3.22(b) . The procedure is to change every AND gale to anAND-invert graphic symbol and every OR gate 10 an inven-OR graphic symbol. The NAN D circuit performs the same logic as the AND- OR diagram as long as there are two bubbles along the same line. Th e bubb le associated with input B causes an exira com pleme ntation. which must be compensated for by chan ging the input literal to B' . The genera l procedure for conve rting a multileve lAND-QR diag ram into an all-NAN D diagra m using mixed notation is as follows: l. Convert all AN D gate s 10 NAN D gates with AND-inver1 graphic symbols. 2. Convert all OR gates to NAND gates with invert-Ox graphic symbols. 3. Check all the bubbles in the diagram. For every bubble that is nOI compensated by another small circle along the same line, insert an inverte r (a one-input NAN D gate ) or complement the input literal. As another example. consider the multilevel Boo lean function F = (AB' + A' B)(C + D' ) Section 3.7 NAND and NOR Impl ement at ion 93 C D - - ---,L-- " 8 - - - - -- - --L.--" A F 8 c - - -L-J {e} A NU -OR gates c ---r-----., D - - -1..- _ / 8' -- - - - - - - 1-/ A 8 - ---r-" -.l---<L~ c _ _-L.-JP' F (b) NA:'IlD gates FIGURE 3.22 Implementing F ~ A( CD + 8) + 8(' The AND-OR implementation of this function i.. shown in Fig. 3.23(a) with three levels of gating. The conversion to NAND with mixed notation is presented in part <b) of the diagra m. The two addition al bubbles a..sociated with inputs C and 0 ' cau..e these two literals to be comple mented to C' and D. The bubble in the output NAND gate compleme nts the output value. so we need to insert an inverter gate at the output in order to complemcnt thc signal again and get the original value back . NOR Implementation The NOR operatio n is the dual of the l'\AND operation. Therefore. all procedures and rules for NOR logic are the duals of the corresponding procedures and rules developed for NAND logic. The NOR gate is another universal gale that can be used ( 0 implement any Boolean function. The imp leme ntation of the complement. OR. and AND operations with NOR gates is shown in Fig. 3.24. The com plement operation is obtained from a one -input NOR gate that behaves exactly like an inverter. The OR operation requires two NOR gates. and the AND operation is obtained with a NOR gate that has inverters in eac h input. The two grap hic symbols for the mixed notation are shown in Fig. 3.25. The OR-invert symbol defin es the NOR operation as an OR follo wed by a complement. T he invert · AND symbol complements eac h input and then performs an AND operation. The two symbols de sig nate the same NOR op erati on and are logicall y identical becau se of DeM orga n 's theore m. 94 Chapter 3 Gate-Level Minimization F ( a) AND-OR gales A 8' A' 8 C' D .~ ~. ,-""~.- :t~~: ':§;" .';.. (b) N A ND gates FIGURE 3.2 3 Imp lementing F = (AS' Inverter OR + A's He + D' ) x ~>----------" '-~~--I>o-- <+ y y AND ,--j >~- FIGURE 3 .24 Logic operations with NO R gat es ~~(x+ J + Z)' ,~ (aj O g-invert FIGURE 3 .2 5 Tw o graphic symbols for the NOR gat e ~Z 3:~ .... ".~ (b) Invert-AND x'y'z' = (x + y + Z)' Section 3.7 NA ND and NOR Implem entati on 95 A two-le vel implementatio n with NOR gates req uires that the funct ion be simplified into product-of-sums fo nn . Rem em ber that the simplified produc t-of- sums ex pressio n is obtai ned fro m the ma p by comb ining the D's and compleme nting . A prod uct-of- sums express ion is imple me nted with a first level o f O R gates that produ ce the sum term s foll owed by a seco ndleve l AND gate to prod uce the product. T he tr ansfo rmation from the OR-AND diagram to a NOR d iagram is achieved by changing the O R gates to NO R gate s wit h Ok-invert graphic symbo ls and the AND gate to a NOR gate with an inven -AND gra phic symbo l. A single litera l te rm go ing into the second-level gate must be co mplemented. Fig . 3.26 shows the NO R implem entation of a functio n ex pressed as a product o f sums: F = (A + BHC + D )E Th e O R-AND pattern can easily be detected by the remo val of the bubbles along the same line. Variab le E is co mpleme nted to co mpe nsat e for the third bub ble at the inp ut of the second-leve l gate. Th e procedure for co nvert ing a multilevel AND-OR dia gra m to an aU-NO R dia gram is similar to the one prese nted for NAN D gale s. For the NO R cascowe must co nvert each O R gate to an O R- inven sy mbo l and eac h AND gale to an invert-AND symbol. A ny bubb le that is not com pensated by another bub ble alon g the same line needs an inv erter. or the co mplementation of the inp ut literal. The transformation of the AND-OR diagram o f Fig. 3 . 2 .~ ( a) into a NO R d iag ram is show n in Fig . 3.27. The Boo lean funct ion for this circu it is F = ( AB' + A' BH C + D' ) .<~ ~ > , B D . ' . . E' FIGURf 3.26 Implementing F == (A + SHe + DlE A B' - -""""'" ~, ==~E:?r-----" FIGURf 3.27 Implementing F == (AS' + A'sHe + D' ) with NORgales 96 Chapter 3 Gate-Level Minimization Tbe equivalent AND--OR diagram can be recog nized fro m the NOR diagram by removing all the bubbles. To compensate for the bubbl es in four inputs. it is necessary to complement the corresponding input literal s. 3. 8 O TH ER TWO -LEVEl IMPLEMENTATION S Tbe types of gates most often found in integrated circuits are NAND and NOR gates. For this reason. NA.\,'lJ and NOR logic implementations ace the most Important from a practi cal point o f view. Some (but not all) NM'D or l'OR gates al low the possibi lity of a wire connecti on between the outp uts of two gates to pro vide a specific logic function . Thi s type of logic is cal led wired logic. For exam ple. ope n-collectoc TIL NAND gates. when tied together. perform wiredAND logic. (The open-co llecto r TTL gale is shown in Chapter 10. Fig. 10.11 .) Th e wire dAND logic perfor med with two NAND gates is depicted in Fig. 3.28(a). The AND gate is drawn with the lines goi ng through the ce nter of the gate to d istin guish it from a conventional gate. Th e wired- AN D gate is not a physical gate. but only a symbol to designa te the function obtained from the indicated wired con nection . The logic functio n imp lemented by the circuit of Fig. 3.28(a) is F = (AB)'· ·· (CD )' = ( AB + CD )' = ( A' + B' )(C' + 0 ' ) and is call ed an AND--OR-INVERT function . Si milar ly. the NOR ou tputs of Ee L gates (see Figure 10.1 7) can be tied toge ther to perfonn a wired -Ole function. The logic func tion imple mented by the circuit of Fig. 3.28(b) is F - (A + B)' + (C + 0 )' - I( A + B)( C + D)]' and is cal led an OR- AND- INVERT function. A wired-logic gale does not produ ce a phys ical second-level gate . since it isjust a wire connect ion . Nevertheless, for discussion purposes, we will con sider the circuits of Fig . 3.28 as two-level implementations. The first level con sists o f NAND (or NOR) gates and the second level has a sing le AND (or OR) gate . The ....ired connection in the graphic symbol will be omi tted in subsequent discussion s. A B t-t-- F- (A B + CD)' +7-- F = [(A + B)( e + D) J' c ---r))~:::J D (a) Wired-AND in open-collecto r "tTL N A N D gales. (b) w ired-Og in EeL gales ( A l'D-OR- LNVERT) (OR-ASD-INVERT ) FIGUR£ 3 .2 8 Wired logic (a) Wired-AND logic with two NAND gate s (b) Wired·OR In emitter-co up led logic (ECL) gates Secttcn 3.8 Other Two-level Im plem ent at io ns 97 Nondegenerate Forms It will be instruc tive from a theoretica l po int of view to find out ho w many two-l evel co mbinations of gates are possibl e . We consider four type s of gales: AND. OR.1"lAND. am) NOR. If we assign o ne type of gate for the first le vel and one type for the second le vel . We find that there are 16 possib le co mbinatio ns of two- level forms. (Th e same type of gate ca n be in the first and seco nd le ve ls. as in a NAND-NAND implementation.) Eight of these combinations are said to be degenera te forms because they degenera te to a sing le operation. Th is can be seen from a circuit with AND gates in the first le vel and an AN D gate in the seco nd level. T he output o f the circuit is merely the AND function of all input variables. The remaining eight nandegenerate form s produce an implementation in sum-o f-prod ucts form or producr-of-surns form . T he eight nondegc ncrate forms arc as fo llows: AN D-OR N AN [}-NAND NOR-Q R OR-NAND OR- AND NOR-NOR N AN[}-AND AN [}-NOR The first gate listed in eac h o f the form s constitutes a firstleve l in the implemen tation . The second gate listed is a singte gate placed in lhe l'C'.':oOO tevet. Note thal any two (orms listed on the same line are duals o f each other. Th e AND-OR and OR-A ND form s are the basic two-level form s discussed in Sec tio n 3.4. Th e NA ND-NAND and NO R- NOR forms we re presented in Section .3.6. T he remaining four forms are investigated in this section. AND-OR-INVERT Implementation The tWO fonn s NAN D-AN D and AND-NO R are eq uivalent and ca n be trea ted toge ther. Both perfo rm (he AN D-OR- INV ERT function. as she.....n in Fig. 3.29. T he AND-NOR fo rm rese mbles the AND-OR form. but with an invers ion done by the bubble in the output of the NO R gate . It implement s the functi on F A - -r--., 8 - -L-- / F >: - - - - - - ' ~ ( AB + C D + E )' A A 8 8 C C F [) >: >: laJA ND-NO R F D (b) AN D- NO R FIGURE 3 .29 AND-OR-INVERT circuits, F '" ( AB + CD + f )' (c) NAN D- A ND 98 Chapter 3 Gate-level Minimization By usi ng the alternati ve graphic symbo l for the NOR gate. we obtain the d iagram of Fig. 3.29(b). Note that the single vari able E is not co mplemented, beca use the only change made is in the graphic symbol of the NOR gate. Now we move the bubble from the input terminal of tile second-level gate to the output terminals of the first-level gates. An inverter is needed for the single variable in order to co mpensate for the bu bble. Alternatively, the inverter can be removed . provided that input E is complemented. The circ uit of Fig. 3.29(c) is a NAND-AND fonn and was shown in Fig. 3.28 to implement the AND-OR- INVERT function. An AN D-OR impleme ntation requ ire s an expressio n in su m-of-pro ducts form. The AN D-OR- INVERT implementation is similar, except for the inversion. Therefore, if tile comp lement ofthe function is simplified into sum-of-products fonn (by combining the D's in the map). it will be possible to implement F' with the AND-OR part of the function. When F' passes through the always present output inversion (the LNVERT pan ), it will generate the output F of the function . An example for the AND-OR- INV ERT imp lement ation will be show n subsequently. OR-AND-INVERT Implementation The OR- NAND and NOR..Q R forms perform the OR- AND-INVERT functio n, as shown in Fig. 3.30. The OR-NAND form resembles the OR-AND form , exce pt for the inversion done by the bubble in the NAN D gate. It implem ents the function F = [( A + S)( e + D )E]' By using the alternative graphic symbo l for the NA ND gate, we obtai n the d iagram of Fig. 3.30(b). The circuit in (c) is obtained by moving the small circ les from the inputs of the second-level gate to the outputs of the first-level gates. The circuit of Fig. 3.30(c) is a NO R-QR fonn and was shown in Fig. 3.28 to imp lement the OR-AND-INVE RT func tion. The OR- AND-INV ERT implementation req uires an express ion in product-of-sums fonn. If the compleme nt of the function is simplified into that form, we can implement F' with the OR- AND part of the fu nction. When F' passes through the INVERT part. we obtai n the complement of F', or F, in the output. C D E- A 8 A 8 A 8 F - - -' C E- (a) OR- NAND ~ '" D - - F F E --C>o-J -' (b) OR-N AND (c) NOR--OR Flc;URE ) .3 0 OR-AND-INVERT circuits, F ", [(A + S)(e C D + D)E )' Section 3.8 Other Two-level lmp leme nta tlo ns 99 Table 3.3 Implementorionwith Other Two-Level Forms Equiv al ent Nond egenerat e Fonn Implements t he Funct ion ( e) (b)' AND-N OR NAND-AND A N~R - I N VE RT NOR...D R O R-A~D-I /,; VE RT F' To Get a n Output Into of Sim pli fy Sum-of-prod ucts form by combining O's in the map . Prod uct-of-sums F form by combmmg I 's in the map and then complementing. F "Form etl) requires an inverter fur a ~ing le literal term Tabular Summary a nd Example Table 3.3 summarizes the proced ures for implementing.a Boolean function in any one of the four 2-1e\"e1 forms. Because of the INVERT pan in eac h case. it is convenient to usc the simplification of F' n he complement) of the function. Whe n F' is implem e nted in one uf these forms. we o btain the comple me nt of the function in the AND-OR or OR- AND form . The four z-leve l forms invert this function. giving an output that is the complement of F ' . This is the normal output F. Implement the function of Fig. 3..'.] la) wit h the four z-leve l forms listed in Table 3.3. The complement of the function is simplifi ed into sum-of-products form by combining the n's in the map: }-" ' = x 'y + x,\" + z The normal o utput for this function can be e xpressed as F = ( x'y + xy' + z}' which is in the AND-OR- INVE RT form , TIle AND-NOR and NAND-AND implementations are shown in Fig. 3.3 1(b). Note that a one-input NAN D. or inverte r, gate is needed in the NAND-AND implementation. but not in the A ND-~ OR case. The inverter can be rem oved if we apply the input variable z' instead of 0;. The OR- AND-INVE RT forms requ ire a simplified expression of the compleme nt of the function in product-of-sum s form . To obrain this expression. we first combine the l 's in the map: F = x' ,v',:' + xy::' 100 Chapter 3 Gate-l eve l Minimizatio n • :l' 01 11 0 0 0 0 ... ., ., -.,' ., ., 00 0 x'y'z' y Y< 0 10 ., . F : x'y'z ' +xyz' F .. x 'y +xy'+z 0 1- ~ xy z' , (a> Map simplifICation in sum of products .'- -,",,= " , ' --"=~ y-== Y--wo= F F , ---..J , --j>>-J A ND-NO R N A ND- AND (b) F - (.l 'y + xy' + Z)' y , .' y' F "y' '-'~' , -,,,",, , -J---L= -J---L_/ F z ; -J---L_; OR- NAND NO R-DR (c)F - [(x + y+ z)(x' + y' + Z)]' FIGURE 3 .3 1 Other two-level impleme nt at io ns Then we take the complement of the function: F' :; (x + y + z)( x' + y' + a) The normal output F can now be expre ssed in the form F : [(x + y + z)(x ' + y' + z)l " which is the OR-AND-INVE RT fonn . From this expression, we can implement the function in the OR- NAND and NOR- OR forms, as shown in Fig. 3.31(c). • Section 3.9 3 .9 Exclusive -OR Function 101 EXCLUSIVE -OR FUNCTION The exclu sive -Og (XOR). denot ed by the symbo l fB . i'i a lo gical operation that performs the following Boo lean ope ratio n: x$ y = .ty' + x 'y Th e exclu sive-O g i!o eq ual to I if only .r is equal 10 I or if only.' is equal to I (i.e.. .t and J d iffer in value], bUI nOI when both arc equ al to I o r when hOlh are eq ual to O. Th e exclusiveSOR. also kno wn as equivalence. performs the following Boo lea n operation: (.t e r) ' = x.\' + x'y ' Th e exclusive-NOR is equa l 10 I if bot h .r and y are equa l 10 I or if both are equal 10 O. Th e exclusive -NOR can be shown 10 be the complement of the excl usive -Og by means o f a trut h table or by algebraic manipulatio n: (.t fB y )' "" (xy' + x' y )' = ( x ' + yH .\ + y') "" xy + x 'y ' Th e follow ing ide ntities apply to the exclusive-OR operation: x ffi O = .t .t e I "" .e' .re x = 0 xEl x' "" I x 8y' "" x ' my '" ( x m y )' Any o f these identities can be proven with a lrulh table or by repla cing the iII operation by its eq uivale nt Boolean expression . Also . il can be ..hewn that the e xclusive-OR ope ration i.. bot h co mmuranve and associative: thai i, . A EIl B = 8 E1lA and ( A Ell B) Ell C = A Ell ( B EIl C) = A Ell 8 E1l C Thi s mean s tha i the two input s 10 an exclusive-O R gate ca n he interchanged without affecting the operation . II also means thai we can evaluate a three -varia ble exclusive-OR operation in any orde r. and for this reaso n. three or more variables can be expresse d without pare ntheses. Thi s would imply the poss ibility of using exclusive-O R gates with three o r more inputs. However, multip le-input excluslve-Ok gates are d ifficull to fabricate with hardware . In fact. even a IW()input function is usually con structed with other types o f gates . A two-Input excl usive-O k funclion is con structed with co nventiona l gates using two inverte rs.lWoANO gates . and an OR gate. a.. sho wn in Fig. 3.3 2(a). Figure 3.32(b) sho ws the implementation o f the exclu sive-OR with four NAS O gates . Th e first :'JAr\O gate perfo rm.. lhe operation (x.")' "" (x' -I- y' ). The o ther two-le ve l NA~ D circuit produces the sum of product s of its inputs : (.t' + y' )x -I- (.t' + y') .\' = .t y' + _t 'y = .r e .'" 102 Chapter 3 Gate -Level Minimization ,-T"--------r;~;;., , -4-.------i.~/ (a) With A:'Io"D-OR-NOT gat" , - 4-.- - - - - 4:::.-/ (b) Wit h NAND gates FI(,URE 3.32 fxdusi v ~OR implementations Onl y a limited number of Boo lean functions can be expressed in terms of exclu sive -OR operatio ns. Nevertheless, this function emerges quite ofte n during the design of digilal systems . It is particularly usefu l in arithmetic operations and error detection and correction circuits . Odd Function The exclusive-OR ope ration with three or more variables can be converted into an ordi nary Boolean function by replacing the 6:) symbol with its equivalent Boo lean expression. In particular. the three-variable case can be converted to a Boo lean expression as follows: A EIl B EIlC ~ ( AB' + A' B)C' + (A B + A' B' )C AB' C' ~ ~ (l , + A' BC' + ABC + A' B' C 2, 4, 7) The Boolean express ion clearly indicates that the three-variable exclusive-OR function is equal to 1 if only one variable is equal to 1 or if all three variables are equal to 1. Contrary 10the twovariable case , in which only one variab le must be equal to 1, in the case of three or more variables the requ irement is that an odd number of variables be equal to 1. As a consequence. the multiple-variable exclusive-OR ope ration is defined as an oddfun ction. The Boolean funct ion deri ved from the three- variab le exclu sive-O R operation is expressed as the logical sum of fo ur minterms who se binary numerical values are 00 1. 010 . 100 . and II I . Each of these binary numbers has an odd number of I 's. The remain ing four min terms Section 3.9 exclusive-OR Funct ion 103 not incl ude d in the functio n are 000. Oi l , 101 , and 110. a nd they have an ev en num ber of I' s in their b inary numer ical va lues , In ge ne ral, an e-var iable ex cl us ive- O R fu nction is an odd fu nc tio n de fined as the lo gical sum o f the 2"(2 mi nte rms who se binary num eri ca l va lues have an odd number o f I 's , The de finition of an odd function can be clarified by plornng it in a map , Figure 3.33( a) shows the map for the three -variable exclu sive -O x function , Th e four minterm s o f the functio n are a un it di st ance apa rt from each othe r. The odd fun ction is ide nti fied fro m the fou r minterm s whose binary val ues have an odd number of Fs . Th e compleme nt o f an odd functio n is an e ven function. A... sho w n in Fig. _'.33(b ). the three -variabl e eve n functi on i... eq ual to I when an even number o f its variab les is equal to I (incl udi ng the co ndi tion tha t none of the variabl es is equal to I ). The thre e-inpu t odd functio n is imple me nted b)' means o f two- in put cxcl u... ive-Ox gates, a.. sho wn in Fig. 3 . 3~{al . The co mpleme nt o f an odd function is o bta ined by replacing the output gate wit h an exctu sive-N tjk gale. as show n in Fig. 3 ,341b ), Con sider now the four -variable exclu sive-O R o peration. By algebraic man ipu latio n, we can o btain (he sum of ml nrcr ms for mis function : A $B $ C $ D = ( AB' + A' B ) $ (CD ' + C D ) = ( AB' + A' B )( CD + C D' ) + ( AB + N B' )(CD ' + C' D) : ~ ( 1. 2 , • . 7, 8. 11. 13. 1. ) There are 16 minterm s for a four-variab le Boole an function. Half o f lhe rninrerm s have binary nume rical values with an odd number o f l 's: the othe r half of the nu nrerrns have binary nume rical A BC 00 ~ 0 A I, " I 01 -,, 10 11 " -, •., I ~ C (a ) (kid function F . A A BC . "0 o -r e He c 1 -,01 -. 1 II " _. 1 -, -, 10 1 C (h ) Eve n func1ion F '" (A Gl B E£l C)' 3.)3 Map for a three-variable exclu sive-OR function FIGURE fa ) J. inpul odd fu nction 3.34 l ogi( diagram of odd and even functions FIGURE lb ) 3-inpu t e\'C' Dfunct ion 104 Chapter 3 A Gate-Level Minimization CD • 00 C . 00 A m" m" m, 1 10 ., I . m" m" ., m, 1 m, 10 Il m, 1 m, 01 Il 01 m, I 00 1 .. C 00 01 m, m" .. m" m" 1 m, 1 • m" 1 m, 10 D (a) Odd functio n F = A EEl B E!l e m D I 1 Il A m" ., 10 m, m, », • Il m, 1 01 I 1 m" A . CD m" m" I 1 D ( b ) EII!:n [ uncti on F - (A EEl 8 E!l C mO J' FIGURE 3 ,35 Map for a four-variable exclustve-O R function values with an even number of 1'5. In ploni ng lhe function in the map, the binary numerical value for a minterm is determined from the row and column numbers of the square thai represents the mintenn. The map of Fig. 3.35(a) is a plot of !he four-variable excluslve- Og function. Th is is an odd function because the binary values of all the minrerms have an odd number of I's. The com plement of an odd function is an even function. As shown in Fig. 3.35(b), the four-variable even function is equal to I when an even number of its variables is equal to I. Parity Generation and Checking Excluslve-Og function s are very useful in systems req uiring error detection and correc tio n codes . As discussed in Section 1.7, a parity bit is used for the purpose of detecting errors during the transmission of binary information. A parity bit is an extra bit included with a binary message 10 make the number of l 's either odd or eve n. The message, including Ihe parit y bit, is transmitted and then checked at the receiving end for errors. An error is de tected if the checked parity does not correspond with the one transmitted. The circuit thai generales the par· ity bit in the transmitter is called a parity generator. The circ uit that checks the parity in the receive r is called e parity checker. As an example, consider a three-bit message to be transmitted together with an even parity bit. Table 3.4 shows the truth tab le for the parit y ge nerator. The three bits-c-r . y, and zconstitute the message and are the input s to the circuit. The parity bit P is the output. For even parity. the bit P must be generated to make the total number of I' s (including P) even. From the tru th table, we see that P constitutes an odd function because it is equal to I for those minterm s whose numerica l values have an odd numbe r of I's. Therefore, P can be ex.pressed as a three-variable exclus ive-Ok function: P = xEB yEB z The logic diagram for the parity generator is shown in Fig. 3.36(a) . Section 3.9 Exclusive-OR Function 105 Table 3.4 Everl.Parity,Gerlerator Trurh Table Th re e -Bit Message Parlt)' Bit • Y z P 0 0 0 0 0 I 0 I 0 I II I 0 I I 0 I 0 0 I u I I I I () I I 0 0 I I .~ :~ c r (al 3-hit even par ity ge nera tor tb) ~ ·h it eve n parity che cker FIGUR E. J .J6 logic diag ram of a parity generator and checker The three bits in the message. toge ther with the parity bit. arc transmitted to their de stination. where they are applied 10a parity-chec ker circuit to check fo r possible errors in the transmission. Since the informatio n was transmitted with even parity. the four bits rece ived must have an even numbe r of ls. An e rror occ urs durin g the transmission if the four bits rece ived have an odd number of ls, indicating that o ne hit has changed in value d uring transmission. TIle ou tput of the parity checker, de noted by C. will be equal 10 I if an erro r oc curs-ctbar is, if the fou r bits received have an odd num ber of ls. Table 3.5 is the truth table for the even-pari ty checker, From it. we sec that the function C con..ists of the eigh t mintcrms with binary numerical values ha ving an odd num ber of Fs. The table corre sponds to the map of Fig. 3.35 (a ), wh ich rep resents an odd function . Th e parity checker can be implemented with exclusive-OR gales: C = x$yEB::EB P The logic d iagr am of the p:lrity checker ill shown in Fig. 3.36( b). It is worth noting that the parity ge nerator can be implemented with the circuit of Fig. 3.36(b) if the input P is connected to logic 0 and the output is marked with P. Thi s is because z 0 = c. causing the value of :. 10 pass through the gate unchanged. The adva ntage of this strategy is that the sa me c ircuit can be used for bo th parity ge neration a nd checking. e 106 Chapter 3 Cete-Level Minimization Table 3 .S £v~n.Parfty.Checlcer Truth Tobie Parity Error Four Bits Received Check x y z P C 0 0 0 0 0 0 J 1 0 I 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 I 1 1 1 0 0 0 1 1 1 1 I 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 I 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 It is obvious from the foregoing example that parity generation and checking circuits always have an output function that incl udes half of the minterms whose numerical values have either an odd or even number of 1'5. As a consequence, they can be im plemented with exclusi ve-O R gales. A function with an even num ber of f' s is the complement of an odd function. II is implemented with excl usive-O R gales, except that the gate associated with the output must be an excl usive-NO R to prov ide the required co mplementation. 3 .10 HARDWARE DESCRIPTION LANGUAGE Manual methods for designing logic circuits are feasible only when the circu it is small. For anything else [i.e.• a practical circuit), designers use com puter-based design tool s. Coupled with a correct-by-construct ion methodo logy, computer-based design too ls leverage the creativity and effort of a designer and red uce the risk of produ cing a flawed design . Prototype integrated ci rcuits are too expen sive and time consum ing to build, so all modem design tool s rely on a hard ware descripti on language to describe , design, and test a circu it in software before it is ever manufactured . A ha rdware description language (HDL) is a com puter-based language that describes the hardware of digital systems in a textual fonn. It resembles an ord inary computer programming language, such as C , but is spec ifically oriented to describing hardware struc tures and the behavior of logic circuits. It ca n be used to represent logic diagrams, truth tab les. Bool ean Section 3.10 Hardware Description language 107 expre ssio ns. and com ple x abstrac tion s of the behavior o f a digital system. O ne way to view an HDL is to observe that it describes a relat ionshi p betwe en signa ls that are the inputs to a ci rcuit and the signals that are outputs o f the c ircuit. For exa mple. an HD L de script ion o f an AND gate describe s how the log ic va lue of the gate 's output is determi ned by the log ic va lue s of its inp uts. As a docume ntation langu age. an HD L is used to repre sent and doc ume nt d igita l sys tems in a form that can be read by bot h hum ans and compute rs and is suitable as an exc hange language be tween de sign ers. The la nguag e content can be stored . retrieved . edi ted . and tran smitted ea sily and processed by computer so ftware in an effici ent ma nner. HDL s are used in seve ral majo r steps in the de sig n n o w of an integrated ci rcu it: de sign entry, fu nct io nal simulatio n o r ver ific atio n. log ic sy nthes is. tim ing ve rifica tio n. and fault simulatio n. Design e/!try crea tes an HD L· based descrip tion of the functio nalit y that is ( 0 be impleme nted in hard ware. Depend ing on the HDL . the descri ption can be in a variety of form s : Bool ean logic equ ations. trut h tables. a netlist o f interconnec ted gates. or an abstract behav ioral mod el. T he H DL mod el may also represent a part ition o f a larger ci rc uit into sma ller interco nnected and interact ing fun ctio nal unit s. Logic simulation displays the be havior o f a digi tal sys tem thro ugh the use o f a compute r, A simulator interprets the HDL de script ion and eith er produ ce s readab le output. suc h as a timeordered seq ue nce of input and output signal values. or dis play s wa vefo rm s o f the signa ls. Th e simulation o f a c ircuit pred icts ho w the hard ware will beh ave before it is actua lly fabrica ted. Simu latio n allo ws the de tec tion of function al errors in a de sign without having to ph ysica lly create and ope rate the circuit. Erro rs that are det ected du ring a simu latio n can be correc ted by modi fying the appropriate HDL stateme nts. T he stimulus (i.e.. the logic values of the inputs to a circ uit) that test s the functiona lity of the design is ca lled a fest bench. Th us. to simulate a digital system. the de sig n is first descri bed in an HDL and then verified by simulating the de sign and checking it wit h a test ben ch . ....-hlch is also wr itte n in the HDl. A n alte rnative and more co mplex approa ch reli es on fo rmal mathem atical method s to prove that a c irc uit is functionally correc t. We will foc us e xclusive ly on simulation. Logic synthesis is the process of der ivi ng a list o f physic al compone nts and the ir intercc nnections (called a nettistv from the mod el o f a d igi tal system des cribe d in an HD L. Th e netl ist ca n he used to fabricate an integrate d ci rcuit or 10 layout a printed ci rcuit hoa rd with the hardware co unte rpart s of the gates in the list. Logic synthe sis is simi lar to co mpiling a prog ram in a co nve ntional high-level langu age . Th e d ifference is that. instead of prod ucin g an object code. logic sy nthes is prod uce s a datab ase descri bing the e lemen ts and structure of a ci rcu it. Th e data base specifies how to fabrica te a phys ica l integrated circuit that implements in silicon the func tionality de scribe d by statements made in an H DL. Logic synthes is is based o n form al exact procedures.that imp lem e nt dig ital ci rcu its and add resses that part of a dig ital desi gn whi ch ca n be auto mated with co mputer so ftware. Th e design o f tod ay's larg e. co mplex c ircuits is made possible by log ic synthes is so ftware. TIming verification confirm s that the fabricated integ rated ci rcu it will ope rate at a speci fied speed. Because eac h log ic gate in a ci rcuit has a propagatio n de lay. a signal transition at the inp ut o f a circ uit ca nnot imme dia tely cause a change in the log ic va lue of the out p ut o f a c ircu it. Prop agat ion del ays u ltima tely limit the speed at wh ich a ci rcuit can o perate. Tim ing 108 Chapter 3 Gate·Level Mi nimization verification chec ks eac h signal path to verify that it is not com promised by propagation delay. This step is done after logic synthesis spec ifies the actua l device " thai will compose a circui t and before the circuit is released for production. In VLSI circui t dcsign,jaull sitmlwrion compares the behavior of an ideal circuit with the behavior of a circuit that contains a process-ind uced flaw. Dust and other part iculate s in the etmospbere of the clean room can cause a circuit to be fabric ated with a fault. A circuit with a fault will not exhibit the same fuoctiooa.Iity as a fault -free circuit. Fau lt simulation is used to identify input stimuli thai can be used 10 reveal the difference between the faully circuit and the fault -free circuit . These test patterns will be used to test fabri cated devices to ensure that only good devices are shipped to the customer. Test gene ration and fault simu lation may occ ur al different steps in the design process. but they are always do ne befo re prod uction in orde r to avoid the disaster o f producin g a circu it whose internallogic cann ot be tested. Companies that design integrated circuits use proprietary and public HDLs. In the public domain. [here are two standard HDLs that are suppo rted by the IEEE : VHDL and Verilog . VHDL is a Dep artment of Defen se-mandated language . (The V in VHDL stands for the first letter in VHSIC. an acronym for very high spee d integrated circui t.) Verilog began as a proprietary HDL of Cadence Design Systems . but Cad ence transferred co ntrol of Verilog to a consortium of comp anies and universities known as Open Verilog International {OVO as a step leading to its adopt ion as an IEEE standard. VHDL is more diffi cult to learn than Verilog. Becau se verilog is an easier language than VHDL to describe. learn. and use. we have chosen it for thi s book . Ho w ever. the Verilog HDLdescriptions listed throu ghout the book are nOI ju st about Verilog. but also serve to introd uce a de sign meth odol ogy based on the co ncept of co mputer-aided mode li ng of digital systems by means of a typical hardware descri ption language. Ou r emphasis will be on the modeling. verification. and synthesis (both manual and automated) of Verilog models of circuits having specified behavior. The veril og HDL was initially approved as a standard HDL in 1995: revised and enhanced versions of the language were approved in 2001 and 200 5 . We will address only thos e feature" of verilog. incl uding the latest standard. tha t support our discu ssion o f HDL·ba sed design meth odology for integrated circuits . Module Declaration The language refe rence manual for the verilog HDL presents a syntax that describe s precisely the co nstruc ts tha t ca n be used in the language . In particular. a Veri log model is composed of text using keywords. of which there are abo ut 100 . Key w ords are predefined lowe rcase ident ifiers that define the language co nstruc ts. Examples of keywo rds are module. end module. Input. output. wire. a nd . o r . and no t. For clarity. keywords will be displayed in boldface in the text in all exa mples of code and whe rever it is appropri ate 10 call attention to their use . Any text between two forward slashes (/1) and the end of the lin e is interpreted as a co mment and will have no effect on a simulation using the mod el. Mu ltiline comme nts begi n with , .. and terminate with ..t, Blank spaces are ignored . but they may not appear within the text of a keyword. a user-specified identifier. an opera tor. or the represe ntation o f a number. Veri lo g is case sensi tive. which means that upp ercase and low e rcase le tters are distinguis hable (e.g .• not is not the same as SOT). The term module refers to the text enclosed Section 3.10 Hardware Descripti on Languag e :~__W l_tB 109 D E FIGURE 1.17 Circuit to d em onstrate an HDl by the keyword pair modul e ... end mod ule. A module is the fundamental descriptive unit in the Verilog language. h is declared b)' the keyword module and must always be terminated by the keyword end mod ule. Combinational logic can bedescribed by a schematic connection of gates. by a set of Boolean equations. or by a truth table. Each type of description can be developed in Verilog. We will demonstrate each style. beginning with a simple example of a Vcrilog gate-level description to illustrate some aspects of the language. The HDL description of the circuit of Fig. 3.37 is shown in HDL Example 3.1. The first line of text is a comment (optional) providing useful informcrion 10 the reader. The second line begins with the keyword module and starts the declaration (description)of the module: the last line completes the declaration with the keyword endmud ulc. The keyword module is followed by a name and a list of pons. The name (Simple_CirrI/it in this example) is an identifier. Identifier.' are names given to modules. variables (e.g.. a signal). and other elements of the language so that they can be referenced in the design. In general. we choose meaningful names for modules. Identifiers arecornposed of alphanumeric characters and the underscore LJ. and are case sen...itive . Identifiers must sian with an alphabetic character or an underscore. but they cannot stan with a number, HOI. Exam ple 3.1 (Combinational logic modeled with pr imitives) 1/Verilog model of circuit of Figure 3.37. IEEE 1364- 1995 Synlax modu le Simple_Circuit (A , B. C, D. E); output D, O: input wire A.~ , C: and not 0' endmod ule w'\; G1 (w 1, A, B); /I Optional gate instance name G2 10 , C): G3 (0, w 1, E); The pon \iM of a module is the interface between the module and its environment. In this example. the ports are the inputs and outputs of the circuit. The logic values of the inputs to a circuit are determined by the env ironment: the logic values of the outputs are determined within the circ uit and result from the action of the inputs on the circuit. The port list is enclosed in parentheses. and commas are used 10 separate elements of the list. The statement 110 Chapter 3 Gate-level Minimization is terminated with a semicolon (;) . In our examples , all keywords (which must be in lowercas e) are pri nted in bold for clarit y. but that is not a requirement of the language . Next. the ke ywo rds in p ut and o utp u t specify whic h of the ports are inp uts and which are outputs. Intern al connections are declared as wire s. The circuit in this exa mple has o ne intern al connection. at terminal wi , and is dec lared with the keyword wire . The struc ture o f the circuit is specified by a list of (predefined ) primitive gates, each identified by a descri ptive keyword (a nd , not, or ). Th e elements o f the list are refe rred to as instant iations of a gate, each of which is re ferred to as a gate instance. Eac h gate instant iat ion consists of an optional name (such as OJ, 02. et c.) followed by the gate output and inputs separated by co mmas and enclos ed in parentheses. T he outpu t of a primitive gate is alw ays listed first. follo wed by the inputs. For example. the OR gate of the schematic is represented by the or primitive. is named 0 3, and has output D and inputs wl and E. (Note; The output o f a primitiv e must be listed first. but the inputs and outp uts of a modu le may be listed in any orde r.) T he mod ule description ends with the keyword end module. Each state ment must be terminated with a semico lon. but there is no semico lon afte r endmod ule. It is important to understand the distinc tion betwee n the tenus declaration and instantiation. A Verilog module is declared. Its declaration specifics the input-output behavior of the hard ware that it represents. Predefi ned primitives are not declared, because their definition is specified by the la nguag e and is not subject to change by the user. Primit ives are used (i .e., instantiared j. j ust as gates are used to populate a printed circuit board. We' ll see that once a mod ule has been declared. it may be used (instant iated ) within a design . Note that Simple_Cirellit is not a comp utational model like those developed in an ord inary programm ing language: The sequential ordering of the statements in the model does not specify a sequence of computations. A verilog model is a descriptive model. SimpleCircuit describes what primi tives form a circuit and how they are connected . The inp ut-output behavior of the circuit is implicitly specified by the descr iption beca use the behavior of eac h logic gale is defined. Th us. an HDL-based model can be used to simulate the circuit that it rep resen ts. Gate Delay s All physical circuits exhibit a propagation delay between the transition of an input and a resulting transition of an outp ut. When an HDL mode l of a circuit is simulated. it is sometimes necessary to specify the amou nt of delay from the input to the output of its gates. In Verilog. the propagation delay of a gat e is specified in terms of time units and is specified by the symbol N. The numbers assoc iated with time delays in Verilog are dimens ionless. Th e associa tion of a time unit with physica l time is made with the ' timesca le compiler directive . (Com piler direct ives start with the (') back quote. or grave accent, symbol.) Such a d irect ive is specified before the declaration of a modu le and applies to all numerical values of time in the code that follows. An exa mple of a times ca le direc tive is t imescale 1ns /10 0 ps The first number specifies the unit of measureme nt for time delays. The seco nd num ber specifies the precision for which the del ays are rounded off in this case to 0.1 ns. If no timescale is specified. a simulator may display d imensionless values or default to a certain time unit. usually I ns ( = 10- 9 sec ). Our examples will use only the default time unit. Section 3.10 Hardware Description Language 111 Table 3 .6 Outp ut of Catn ott er CH1o'l Tlm e Units ( n s) Initial (lunge 10 '0 30 '"'0 In pu t Out pu t ABC Ewl D 0 00 111 11 1 1 11 111 111 111 I 0 1 I 0 1 0 0 1 0 0 1 0 I 0 0 I 0 0 I 1 HO L Exa mp le 3.2 repeats the descri pt ion of the simple circ uit of Example 3. 1. bu t with propag atio n de lays specified fo r eac h gate. Th e and . or. and not gules have a time de lay of30. 20. and 10 ns. respe ct ively . If the c ircu it is simulated and the inputs c hange from A. H. C = 0 to A. B. C = I. the outputs cha nge ax show n in Tab le 3.b (calculated by hand o r gene rated by a simu lato r). The output o f the in verter at E changes from I to 0 a fter a 1000s del ay. The output of the AND gate at w] changes from 0 to I after a ]()..ns delay. Th e ou tput of the OR gate at D chan ges from 1 to 0 at , = 30 n,; and the n changes bacl.: to I at , = 50 ns. In bo th cases. the change in the output of the OR ga le results from a change in ib inputs 20 ns earl ier. It is clear from this result tha t although output D e\'emually returns to a final value of I after the inpul changes. the ga te del ays produce a negative spike thatlasts 20 ns before the final value is reecbed HOL Exam ple 3.2 (Gale. le\'el mod el with prop !dJ:,3Iion d ela) sl II Verilog model of simple circu it with propagation delay modu le Simple_Circuityrop_delay IA. B. C. D. E); output D. E; inpu t A, S, C; wt : wire and not 0' # (30) Gl (w1 , A, BI: #(' 0) G2 (E, C I: #(20 ) G3 (D, w1 , E): endmod ule In o rder to simulate a circ uit with an HDL. it is nece ssa ry to ap ply inpu ts 10 the circ uit so that the si mulator wi ll generate a n ou tput response. An HDL descri ption tha t pro vides the stimulu s to a design is ca lled a test bench. 111e writing of test benc hes is ex plai ned in more de tai l at the end of Section ~ . 12 . Here. we demonstrate the procedure with a simple example wi thout dwelling on 100 man y detail s . l lD L Example 3.3 sho ws a test bench fo r simulating the ci rc uit with del ay. (Note the di stin gu ishi ng nam e Simpft'_Cirn lit-prop_Jelay.) In its sim plest 112 Chapter 3 Gate-level Minlmlz.ation form. a test bench is a modu le containing a signal genera tor and an instantiation of the model that is to be verified. Note that the test bench (cSimple_Ci rcuit..]Jrop_deJay ) has no input or output port s. because it does not interact with its enviro nment. In general, we prefe r to name the test bench with the prefix C concatena ted with the name of the module that is to be tested by the test bench, but that choice is left to the designe r. Within the test bench. the inputs to the circuit are dec lared with keyword reg and the outputs are declared with the keyword wire. The module Simple_Ci rcuit..]Jrop_delay is instantiated with the instance name M I . Every instantiation of a module must include a unique instance name. Note that using a test bench is similar to testing actual hardware by attach ing signal generators to the inputs of a ci rcuit and attaching probe s (wires) to the outputs of the circuit. (The interaction between the signal generators of the stimulus module and the instantiated circuit mod ule is illustrated in Fig. 4.33.) HDL Exa m ple 3.3 1/ Test bench for Simple_Circu it...prop_delay module t_Simple_Circuit""prop_de lay; wire D, E; reg A, B, C; Simple_Circuit""prop_de lay M 1 (A, B, C, D, E); II Instance name required Initial beg in A = 1'bO; B = 1'bO; C = 1'bO; #100 A = 1'b 1; B = 1'b1; C = 1'b1; end Initial #200 $f1nls h; end mod ule Hardware signal generators are not used to verify an HDL model : The entire simulation e xercise is done with software models executing on a digital computer. The waveforms of the input signals are abstractly modeled (generated) by Verilog statements specifying wavefo rm values and tran sitions. Th e initial keyword is used with a set of statements tha t begin executing when the simulation is initialized; initial terminates execution when the last statement has finished executing. initial statements are commonly used to describe wa veform s in a test bench. The set of stateme nts to be exec uted is called a block stateme nt and consists of several statements enclosed by the keywords begin and end . The action specified by the statements begins when the simulation is launched, and the statements are executed in sequence , from top to bottom. by a simulator in orde r to provide the input to the circuit. Initially, A. B, C = O. (A, S , and C are eac h set to I 'bO, which signifies one binary digit with a value of 0 .) After 100 ns, the inputs change to A. B. C = 1. After another 100 ns, the simulation termi nates at time 200 ns. A second initial statement uses the Sfinls h system task to specify termination of the simulation. If a statement is preceded by a delay value (e.g., # 100). the simulator po stpones executing the statement until the specified time delay has elapsed . The timing diagram of waveforms that result Sectio n 3.10 , ame O.O n~ Hardware De scription Lan gua ge 5S.0 ns usn , n~ 113 174.0 n~ A B C D E ---J FIGURE 3 .38 Simulation output of HDl Example 3.3 from the simulation is shown in Figure 3.38. The total simulation takes 200 ns. The inputs A, B. and C change from 0 10 I after lOO ns. Output J:: is unknown for the first IOns (denoted by shading).and output D is unknown fo r the first 30 ns. Output E goe s from J to 0 at 110 ns. O ur- put D goes from I to 0 at 130 ns and back 10 1 at 150 ns. just as we predicted in Table 3.6. Boolean Expressions Boolean equations desc ribing co mbina tionallogic are spec ified in Verilog with a co ntinuo us a.ssignment statement consisling of the keyword 1Is..'i I~ n followed by a Boolean expression. To distinguish arithmetic operators from logical operators. veruog u-.e'i. the symbols (&), (I ), and (- ) for AND. OR. and NOT (complement). respectively. Thus. 10 describe the simple circuit of Fig. 3.37 with a Boolean expre.... ion. we U~ the ..tatemenr ass ign D ~ (A & B jl-c: HDL Example 3A desc ribes a circuit that is specifi ed with the follow ing two Boolean expres..ions : E = A + BC + B 'D F=B ' C+ BC ' D ' The equations specify how the logic values £ and F are determined by the values of A. B. C. and D. IIDL Ex a m pl~ 3.4 (Cllmbinational logil' mod"h.'d wilh Buolean equations) 1/Verilog model: Circuit with Boolean expressions module Circuit_Boolean_CA (E. F, A, B, C, 0 ); output E, F; Input A, B, C, 0 ; . sslgn E =AI (B & C) I (- B & D); ass ig n F =(- B & c) I (B & -C & -0); end mod ule 114 Chapter 3 Gate-Level Minimization The circuit has two outputs E and F and four inputs A, B, C, and D. The two assign stat ements describe the Boolean equations. Tbe values of E and F duri ng simulation are determined dynamically by the values of A. B. C. and D . The simulator detect s when the test bench changes a value of one or more of the inputs, When this happen s. the sim ulator updates the values of E and F. 1be continuous assignme nt mechanism is so named beca use the relationship between the assi gned value and the variables is permanent. The mechanism acts just like combinational logic. has a gate-leve l equivalent circuit. and is referred to as implicit combinational logic. We have shown that a digital circ uit can be described with HDL state ments. just as it can be drawn in a circuit diagram or specified with a Boo lean ex pressio n. A third alte rna tive is to describe combina tional logic with a truth tab le. User-Defined Primitives The logic gale s used in Verilog descri ptions with keywords a nd . or . etc., are defi ned by the system and are referred to as system primitives. (Caution: Other languages may use these words differently,) The user ca n create additional primitives by defining the m in tab ular form. Th ese types of circuits are referre d to as user-defined primitives (UDPs). One way of spec ifying a digital ci rcuit in tabular form is by means of a truth table. UDP desc riptio ns do not use the keyword pair module . . . endmodule. Instead , they are declared with the keyword pair primitive . . . endprlmluve. Th e best way to demonstrate a UDP dec larat ion is by means of an e xample. HDL Exampl e 3.5 defines a UD P with a truth table . It proceeds according to the following gene ral rules: • It is declared with the keyword primitiv e. followed by a name and port list. • There can be onl y one output. and it mu st be listed first in the port list and dec lared with keyword output. • There can be any number o f inputs. Tbe order in which they are listed in the In pu l declaration mu st conform to the order in which they are gin n values in the table that follows. • The truth table is enclosed within the keywo rds table and endta ble . • The values of the inputs are listed in order. ending with a co lon (:). The output is alw ays the last entry in a row and Is followed by a semicolon (:). • The declaration of a UDP end s with the keywo rd endprfmttive. Note that the variables listed on top o f the table are part of a comment and are shown onl y for clari ty. The sys tem recognizes the variables by the order in whic h they are listed in the input declaration. A user-defi ned primitive can be instantiated in the cons truct io n of other mod ule!'> (dig ital circuits), just as the system primiti yes are used. For example. the declaration Circuit_with_UDP_02467 (E. F, A, B, C, D); will prod uce a circuit that impleme nts the hardware show n in Figure 3.39. Although Verilog lI DL uses thi s kind of de scrip tio n fo r UDPs only, o ther HD Ls and computer-aided design (CA D) syste ms use oth er procedures to speci fy di gital circ uits in tabular form . The table s can be proc essed by CAD software to derive an efficient gate suuclure of the design . None of Veri log 's pre defined primitiv es describes seq uential logic. The Section 3.10 Hardware Description Language flDL Example 3.5 II Verilog model : User-defined Primitive primitive UOP_02467 (0 , A. B. C); out pu t 0 ; Input A, B, C; 11 Truth table for 0 :: t (A, B. C):: ! (0. 2, 4, 6, 7); table ABC II a 0 0 0 1 o o 0 1 0 1; o 1 1 0; 1 1 0 0 0 1 1; 0; 1 t: 1; 1 1 1 1 ° 11 Column header comment 1; 0; endtable endprlmr uve 11 Instantiate primitive 1/ Verilog model: Circuit instantiation of CircuiCUDP_0 2467 mod ule Circuit_wlth_UDP_02467 (e, I, a. b, c. d l: output e. t: input a, b, c. d: UDP_0 2467 and endmod ule (e. e. b ,C): (t. e. dl; FIGURE ) ,)9 Sch em atk fo r Cirtu lt with _UDP_D1461 1/ Option gate instance name ormrted l1S 116 Chapter 3 Ga te-Le vel Minimization model o f a sequential UOP requires tha t its output be decl ar ed as a r eg data type. and that a column be adde d 10 the truth tab le to descri be the next state. So the co lumns are orga nizes as inputs : state : next state. In this sectio n. we introduced the Verilog HOL and pre sented simp le examp les 10 illu strate alterna tive s for mode ling combinational logic. A more detai led present ation of Verilog HOL ca n be found in the next chapter, The reade r familiar with combinational circu its can go directly to Section 4.12 to continue with this subjec t. PROBLEMS Answers to problems marked with '" appear al the end of the book. 3 .1 '" Simplify the following Boolean functions. using three-variable maps: (a) F(x , y, : ) - ~ (O,2 ,6. 7 ) (b) F(x, y, : ) - ~ (O.2. 3 ,4 ,6 ) (e) r t «. y.:) - :E(O, 1. 2. 3. 7) (d) F(x. y. : ) .. :E (3, 5. 6, 7) 3 .2 Simplify the following Boolean functions, using three-variable maps: F( x, )'• c) IS I (O, I. S. 7) (br F(x, y, .::) "" :E ( I. 2. 3, 6, 7) r i «. ,',.::) - I(O. 1, 6. 7) (d ) F(x, y,: ) ~ I (O, 1. 3,4,05 ) (e) F(x, ,'. c) - I (I .3,S, 7) (0 F( x, y. : ) ~ I(I,4,S,6, 7) (3)'" (e) 3.3'" Simplify the following Boolean expressions, using three-variable maps: (ar F(x,y,l) - X) ' + x' y' : ' + x' y: ' (b)'" F( x.)'.: ) "" .f'y' + yz + x'y: ' (c)'" F(x, y,:) "" x'y + r a' + y'.::' (d) F( x, y.:) '"' xyz + x'y'.:: + xy' .::' 3.4 Simplify the following Boolean functions, using Kamaugb maps: (b)'" F(A . B, C. D ) :; I(4. 6, 7, 15) 15) (d)'" F( w, x, y• .::) :; :E (2, 3, 12, 13, \4, 15) (0 F (w, x. y• .::) - I (0. I.S.8.9) ( a )'" F(x, y, .z: ) - I (2, 3. 6, 7) (c )'" F(A. B, C, D) ". I (3, 7. I I. 13. 14, (e) F(w• .t , ,". l ) "" ~ ( 1. 4.5 ,6. 7. 13 ) 3 .5 Simplify the following Boolean functions. using four-variable maps: (a)· F(w. x, y. .:: ) '" :E ( I, 4. 05 , 6, 12. \4 , 15) (b) F(A ,B. C. D ) :; :E (1.5, 9. 10. 11. 14. IS) (e) F( w.x, y• .:: ) "* I (O, 1. 4. 5, 6. 7. 8. 9) (d )'" F(A. . B, C , D ) :; I (O. 2. 4. S. 6. 7. 8. 10. 13. IS) 3.6 Simplify the following Boolean expressions, using four-variable maps: (arA ' B'C'D' + AC' D' + B'CD' + A' BCD + BC'D (b )'" x'e + w'xy' + w( x'y + xy' ) (e) A'B 'C'D' + A'CD' + AB'D ' + ABeD + A'BD (d ) A'B 'C'D' + AB'C + B'CD' + ABCD' + BC'D 3.7 Simplify the following Boolean expressions, using four-variable maps: (a)'" w' ::: + xz + X ' )' + WX' l (b) C' D + A' B'C + ABC' + AB'C (e)'"AB'C + B'C' O' + BCD + ACD ' + A'B 'C + A'HC' D (d ) x)"t. + Ill)' + wxy ' + x' )' 3.8 Find the minterms of the following Boolean expressions by first plouing each function in a map: X)' + rz + XY'l (b)'" C ' V + ABC' + ABD' + A'B 'D (ar ~ ~ + ~ x ' +~ .:: ' MA ' B +A~ + 8 'C D +~D ' Problems 117 1 .9 Find all the pri me implicants for the follow ing Boo lean func tions. and determine which are essential: (a)· F(w•.r. y.~ ) '" ! (O. 2. 4. 5. 6, 7. 8. 10. 13. 15) lb,· F(A. B. C. D ) = l t~. 2. 3. 5. 7. 8. 10. I I. I• . 15) (e) F (A .8.C,0) '" ~(I . 3 . 4 .5 . IO. II . 1 2 . 1 3 . 1 4, 15) (d) F(w. .r. y.~) '" ~ (I . 3. 6. 7. 8, 9. 12.13 . 14. 1.5 ) ( e) F( A. B. C,D ) '" ~ (O. 2 . 3.5 . 7.8. 10. 11, 13. 15) (0 F(w. ,t. y.;: ) '" ! (D.2. 7.8.9, 10. 12, 13. 14, 15) 1 .10 Simplif)"the following Boolean functio ns by first finding the essential prime implicams: (a) F (w. .r, y.:: ) '" I (D. 2, 4. 5. 6, 7. 8. 10. 13.1 5) (b) F ( A. 8 . C. D ) "" sro, 2. 3. 5. 7. 8. 10. I I. 14. 15) (CI* F (A . B. C. D ) :: ! ( 1. 3.4. 5. 10. II . 12. 13. 14, 15) (d) F ( w. "t. )". ~ ) "" ! ( 1. 3. 6. 7. 8, 9. 12. 13. 14. 15) (e) F(A . B. C. D ) '" ! (O. 2. 3. 5. 7. 8.1 0. I I. 13. 1.5 ) (fJ F(" '. .r. y. ;:) '" ! (O. 2. 7. 8. 9.10. 12. 13.14. IS) 1 .11 Simp lify the following Boolean functions. using five -variab le maps: ( a )" F (A . B. C. D. E ) '" ! (o. 1. 4. 5.1 6. 11. 21. 25. 29 ) (b) F (A .B.C.D) = A'B 'Ct: ' + B'C' D' E' + A' B' O' + B'CD ' + A'CD + A' BD 1 .12 Simplify the following Bool ean functions to product-of-sums form : (a) F(w•.r , y.::) .. ~ (o. I. 2. 5. 8. 10. 13) lb,· F(A. B. e. D) = n (I . 3. 5. 7. 13. 15) le i F(A .B.C.D) = n ( 1.3. 6. 9. 11. 12. 1.) 1 .13 Simplify the following e xpressions to ( I) sum-of-products and ( 2) products-or-sums: ( a )* x ';:' + y'.::' + y:' + xy (b) ACD ' + C' D + AB ' + ABeD (cl ( A + C' + O' )(A ' + B' + O' )(A ' + B + D' )(A ' + B + C ' ) ( d ) ABC' + AB' O + BCD 3 .14 Giv e three possible ways F 3 ,1 S R (Q express the following Boole an function with eig ht or fewer literals: HT ' D' + AB 'CD ' + BC'D + A'RCD Simplify the follcwlng Boolean functio n F. together with the do n't -care co nditions d, and then expre ss the simplified function in sum-of-mime nns form : (a) F(.t . y. ~) ::::: ~ (2 . 3. 4. 6. 7) (b )* F ( A. B. c' D ) := ~ (O. 6. 8. 13. 14) dl x, " . , ) (e) ~ ~ (O. 1. 5) F (A .B.C.D) = ! (4.5 . 7. 12. 13. 14) d(A.B. e.D ) e l (1,9.1 1.l5) (d ) d( A. fl . e. D ) e l (U . 10) F ( A.B. e , D ) "" };( 1. 3,8. 10, 15) d(A . B. e. D ) = l (0.2.9) 3 .16 Simplify the follo wing func tions. and implement them with two-level NAND gate circ uits: ( a) F( A. B. c'D ) "" A' B'C + AC' .. Ae D + Ae D ' + A' B' D ' (b) F (A . B.C. D ) = AB + A'Be + A' RT 'D (e) F(A . B,C ) = ( A' + B' + C'H A' + B' )( A' + C' ) (dJ F (A , B.C. D ) '" A'B + A + C' + 0 ' 3 .1 7* Draw a NAND logic diag ram that imple me nts the comple me nt of the follow ing function: F (A . B. C, D ) "" };(O, I. 2. 3, 4. 8. 9. 12) 118 Chapter 3 Gate-Level Minimization 3.18 Draw a logic diagram using only two- input NOR gates to implement the following function; F( A. B. C.D) c ( A <!l B )" (C<!l D ) 3.19 Simplify the following functions , and implement them with two-level NOR gate circuits: zo wx ' + y' ~' + w' yz ' (b) F( w. x , y, z) "" ~ ( I , 2, 13, 14) (c) F (x , )'o t) - [(x + )')(x' + t ))' (a)+ F 3.20 Draw the multi-le vel !'\OR and multi-leve l NAND circ uits for the following expression: ( AB' 3.21 + CD' )E + BC( A + B) Draw the multi-level NAN D circuit for the follow ing expression: w(x 3 _22 + y + z) + xyz Convert the logic d iagram of the circuit shown in Fig. 4 .4 into a multiple-level NAND circ uit. 3.23 Implement the follow ing Boolean function F, together with the don't-care conditions d, using no more than two NOR gate s: F(A , B. C. D ) = I (2. 4, 6. 10, 12) d(A. B. C. D ) • I(O. 8, 9. 13) Assume that both the normal and complement inputs are available. 3.24 Implement the following Boo lean function F, using the two-le vel forms of logic (a ) NANDAND, (b) AND-NOR, (c) O R-NAr\ D, and (d) NOR-OR: F( A, B, C, D } = I (O,4.8.9, 10, 11, 12, 14) 3.25 List the eight dege nerate two-level form s and show that they reduce to a single opera tion. Explain how the degenerate two-level fonns can be used to extend the number of inputs to a gate. 3.26 With the use of maps, find the simplest sum-of-products fonn of the function F "" Is , where I "" g = (a abc' + cd + a'cd' + b'cd' + b + c' + d ' )(b ' + c ' + d )(a' + c + d' ) 3.27 Show that the dual of the excl usive-OR is also its complement. 3 ,28 Derive the circuits for a thre e-bit parity generator and four -bit parity checke r using an odd parity bit. 3 .29 Implement the following four Boolean expressions with three half adders D ". Ae BffiC E '" A ' BC + AB 'C F = ABC' + (A' + B' )C G = ABC 3 .30'l' Implement the following Boo lean expression with exclusive-O R and AND gates: F = AB'C D' + A' BCD' + AB'C'D + A'BC ' D Problem s 119 1 .11 Write a Ve n lo~ gure-tevet deccripnon of the circuit shown in la) Fig. 3.111al tn l Fi~ . 3.1 2(bl (' I Fig. 3.23(a ) Ie) Fig. 3.16 (f l ri g. 3.27 (d l Fig. ~.1~l n) 1 .12 Using co nun uouv uxsignmer nstateme nts. write a Verill1g dcscnprio n of the circ un shown in (a ) Fig. 3.22(al Ib ) Fig. 3.21(bl lei Fig. 3.2313) (dJ h g. 3.23(hl ret Fig. 3.26 10 Fig. 3.27 1 .11 The excl usive-O R circuit of Fig. 3.32(3) has gate, with a delay of ~ ns for an inverter. a ~ ns dela y for an AND gale. and a HI ns dela y for an O R gate. The input of the circ uit goes from l ,\ ' '" 00 10 .t .\' '" 0 1. (a ) Determine lhe signals ,It the OUIPUI o f each g.llc from 1 "" 0 to t = 50 ns. Ih ) Write a vcnl og gate -level description uf the ci rcuit. including the dela ys. te l Write a stim ulus module (i.e .• a IcMbench similar to Hm. Example 3.] ). and simulate the circuu to verify the answer in pan (a ). 1 .M Using continuous a ss i gnmc nt ~ , write a Verilog desc n pno n o f the circuit specified by the follow. ing Boolea n functio ns: Oll/_l "" (C + 8 )(A ' + I>}8 ' 0 11/_2 =' (C R' + ABC + C ' B )(A + lJ ' ) 0 11I_3 "" C( AD + R ) + SA ' Write a test bench and simulate the circuit's beha vior. l ,lS· Find the sy nta x e rrors in rhc follu.....ing declarat ions ( note that na mes for prim itive gates are oprionalj: module Exmpl·3(A, B, C. D. F) inputs A. B. C . Ou tpu t 0 , F, output B a nd g l (A. B. 0); not (0 , A, C), OR (F, B; C I; e ndofmod u le ; 1 .16 1/ Line 1 1/ Line 2 1/ Line 3 1/ Line 4 1/ Line 5 I/ line 6 1/ Line 7 Draw the logic diagram of (he d igi tal ci rcuit specified by the follow ing Ven log descri pnon : l a l m odule CircuiCA (A, B, C . 0 , F); Input A, B. C, D; output F; wire w, x. y. z. a , d; and (x. B. C , d) ; and (y, a ,C ); (w , Z ,8 ); a nd or (z . y, A); or (F, x. w); not (a , A); not (d, D); endmodule 120 Chapter 3 Gate-level Minimization (b) module Circull_B (A-fjtB, AJtB, A_eqB, AD, A1, BO, Bl ); outp ut A-fjIB , AJ IB, A_eqB; Input AD, Al , BO, B1; nor (A_gIB, A_ ItS, A_eQB); or (AJ tB, w 1, w2, w3); and (A_eq B, w4 , w5); and (wt. w6, B1); and (w2, '0'.'6 , w7, BO); and (w3, w7, 80, Bl ); not (w6, A1); not (w7, AD); xnor (w4,A 1, B1); xnor (w5, AD, 80); endmedule (c) modu le CircuiCC (output y1, Input a, b, output y2); assi gn y1 :: a & b: or (y2, a, b); endmodule 3 .37 A majority logic function is a Boolean functioo thai is equal to 1 if the majority of the variables are equal 10 I , equal 10 0 otherwise. Write a Verilog user-defined primitive for a four-bit majo rity function. 3 .38 Simulate the behavior of CircuiU,>'ith_UDP_02467, using the stimulus waveforms shown in Fig. P3.38. AI I 60 I 80 t, ns 70 60 70 I 80 t. ns 30 60 7. I 80 t, 50 i I 10 20 I 30 40 30 10 20 I 30 ., 10 20 30 40 ·1 I I I cl FIGURE P3 .38 Sti mulus waveforms fo r Probl em 3.38 ns Refer ences 121 REFERENCES 1_ 2. J. 4. S. 6. 7. 8. 9. BHASK.ER. J. 199 7. A \{Orilog HDL Primer: Allent own. PA: Star G alax y PIT' s. Cll.ETT1. ~tD . 1999. .\f (I(i t'/itlg. Sytl rht'sis an d Rap id Protoryp ing with ' hI' \{Orilog H DL Upper Sadd le River. NJ: Prentice H.tII. H ~ F. 1. and G. R. Pere aso s . 19 8 1./nmlC!ucricltI to Switching Tht'ol')' an d Logi cal Dr sigtl. 3d N . New York : John Wile y. IEEE Standard HUnfM'Urt' De sc ription umgu agt' Bau d on tht' \ {on'log Ha rdwa re Dt'scri pli otl La nguogt' ( IEEE Sid 1364 -1995 1. 1995 . New York : The l nsnt ute of Elect rical and Elect ronics Engineers . KAR........lIGH. M. A Map Method for Synthe~i s of Co mbin ationa l Lo gic Ctrcuns. TrQ/uoc,iatl.~ of AlEE, Commun icat ion and Electronics. 72. pan I (N ov, 1953 ): 593-99 . KOHA\'l. Z. 1978. S,,'irchitlg and A' llOmota Theory, 2d ed . Ne w York : Mcflr aw-Hill. MA.'Ilo. M. M.. and C. R. KIME. 2004. Logi c and Computer Dt',figtl Fund amenta ls. Jrd ec. Upper Sadd le River, NJ: Pre ntice Hall. McCW SKEY. E. J. 19 86 . Log ic Design Princip les. Englewood C liffs. Nl : Pren tice-Ha ll. PA~ tTKA R . S . 1996 . verilog HDL: A Guide to D igital Desig n and S.\"nthesis. Mou ntain View. CA : Su nSo fl Pre ss (a Pre ntice Hall title ). Chapter 4 Combinational Logic 4 .1 INTRODUCTION Logic circ uits for digi tal sys tems may be combinational or sequential. A combinational circui t cons ists of logic ga tes whose outputs at any time are determined from only the presen t cornbination of inputs. A combinational ci rcuit performs an operation that ca n be spec ified logically by a set of Boolean functions. In contrast, sequential circuits employ storage elements in addi tion 10 logic gates. Their outputs are a function of the inputs and the stale of the storage elements. Becau se the state of the storage elements is a function of pre viou s inputs. the outputs of a se quential circuit depend not only on present values of inputs. bUI also on past inputs. and the circuit beh avior must be specified by a time seq uence of inp uts and interna l slates , Sequ ential circ uits are the building bloc ks of digital systems and are d iscussed in Cha pters 5, 8. and 9. 4 .2 COMB INATIONAL CIRCU ITS A combinational ci rcuit co nsists of input vari ables , logic gales, and output variables. Co mbination allogic gates react to the values of the signals at their inputs and produ ce the value of the output signal, tra nsfonning binary inform ation from the given inpu t da ta to a requ ired outpu t data. A block diag ram of a combinational circuit is shown in Fig. 4. 1. Th e 11 input binary vari ables come fro m an ex ternal so urce; the III output variables are produ ced by the internal combinational logic circuit and go to an external destination. Each input and OUiPUI vari able exists physic ally as an analog signal whose values are interpreted to be a binary signal that represen ts logic I and logic O. (Not e: Logic simulators show on ly D's and l 's, not the ac tual analog signals.) In man y app lication s. the source and destination are storage registers. If the regis ters are included with the co mbinational gates, then the total circu it must be co nside red to be a seq uential circuit. 122 Section 4.3 " i npu l~ Ana lysis Procedure 123 Combinalional circuit FI(;URE 4 .1 Bloc:k d iagram of combination al circuit For n input varia bles. there are r poss ible binary input co mbinations. Por each possible input co mbina tion . the re is one possible output value. Th us, a co mbinatio na l c ircuit can be pectfled wit h a truth tab le that Ii ... t" the o utput va lues fo r each com binatio n of in put va riabl e A co mbina tion al ci rcuit a lso can be described by m Boolean fu ncti on s. one for each output ..-ariable . Eac h o utput fun cti on is ex p resse d in terms o f the " inpul varia ble .... In Ch apter I. we learned a bout binary num be rs and binary cod es thai represe nt discrete q uantities of info rma tion. Th e binary ..-ariables are rep rese nted ph ysicall y by elect ric ..-oh age s or so me ot he r type of sig nal. Th e slgnals can be ma nip ula ted in d igital logic gat es 10 perform req uired fu ncn on s. In Ch apt er 2, we introd uced Boo lean a lge bra a" a way 10 ex pre s... logic funct ion s algebraica lly. In Ch apter 3. we learned how to simplify Boo lean functions to ach ie ..-e eco no mica l (s imple r) ga te Imple ment an on s. Th e pu rpo~ o f the c urre nt chapter is to use the know led ge acqui red in previou s cha pters 10 formulate sys te ma tic analysi s and de sig n proce du res for com binational c ircuits. T he so lutio n o f so me typi ca l exa mp les ..v iii pro vide a usefu l ca talog of ele mentary funct io ns tha t are import ant for the understand ing of d ig ital syste ms. We' ll addre ss three tasks: (1) A na lyze the behav ior o f a g iven logic ci rcu it. (2) synthesize a ci rcui t that wi ll have a g ive n beha vior. and (3) write II DL model.. fo r so me co mmo n ci rcuit s. Th ere are se veral co mbinat iona l c ircuits that arc e mployed ex te nsive ly in the de sign o f digital systems. These circ uits are a..-ailable in integra ted circ uits and are cla ssified a.. standard components. Th ey pe rfo rm specific di gital fun cti on s commonly needed in the de sign o f d igita l sys tems . In thi .. chapter. we introduce the mos t important ..tandard co mbin ational ci rcu its. suc h as adde rs. subtrectors. comparators. decoders. encoders. and multip lexers. These co mponents are ava ilable in integrat ed ci rcu its a.. mediu m-scale integrat ion ( ~I S I) ci rcu itv. Tbey arc also used as standard cells in co m plex wry 13J1!e -<;Cale integrated IVLS I) circuits such a" applicatio nspeci fic integrat ed c ircuits (AS IC,,). Th e sta ndard ce ll funct ion s are interco nnected wi thin the VLS I c ircuit in the same way that the)' are used in mul tip le-Ie .\151desig n. 4 .3 ANALYSIS PROCEDUR E Th e ana lysi s of a co mbinationa l ci rcuit requires that we dete rmine the fu ncti o n that the circ uit imp lem ent s. Th is task starts with a given logic diagram 0100 culmi nates with a se t o f Boo lean func tions a truth table . o r, poss ibly. an expla natio n of the ci rcu it ope ratio n. l f the logic d iagram 10 be analyzed is accompan ied by a functio n name or an ex p lanatio n o f wh at it h. assu med to accom pli sh. then the a naly st.. prob le m red uces to a veri fic atio n o f the sta ted functi on . Th e analys is can he performed man ually by findi ng the Boolean funct ions or truth ta ble o r by usin g a computer simulation program . 124 Cha pte r 4 Combinational l ogic The first step in the analy sis is to make sure that the given circuit is combinational and not sequential. The diagram of a combinational circuit bas logic ga tes with no feed back paths or memory elements. A feedb ack path is a connection fro m the output of one gate to the input of a second gate that forms pan of the input to the first gate. Feedback paths in a digital circ uit define a sequential ci rcuit and must be analyzed according to procedures ou tlined in Ch apter 9. Once the logic diagra m is ve rified co be that of a co mbinational circuit. o ne can proceed to obtain the output Boolean functions or the truth tab le. If the funct ion of the circui t is und er investigation. then it is necessary to interpre t the ope ration of the circuit from lhe derived Boolean functions or truth table. Th e success of such an investigation is enhanced if one has previous experience and famili arity with a wide varie ty of digital ci rcuits. To obtain the output Boolean funct ions fro m a logic diagram. we proceed as follows: 1. Label all ga te outputs that are a functio n of inpu t variables with arbitrary sy mbols-but with meaningful names. Det ermine the Boolean functions for each gate output. 2. Label the ga tes that are a function of input variables and pre viously labeled ga tes with other arb itrary sy mbo ls. Find the Boolean funct ions for these gate s. 3. Repeat the proce ss outlined in step 2 until the outputs of the circ uit are obtained . 4. By repe aled substitution of previously defined functions. obtain the output Boolean functions in term s of inp ut variab les. The analysis of the combi natio nal circ uit of Fig. 4.2 illu str ates the proposed procedure. We note tha t the circuit has th ree binary inputs- A. B. and C-and two bi nary outpUls-F\ and F2. ~ =:l]~~2_----------------h:;')-__F, A----'-,.- T, B f-'-'-c - -<::,-"" - - - - - --, T, A - -[;;;;, B --=.../ A - -r- , c --1~')-;::::::;!i!!>~---------- F, B -r;;;<;\ C- ...........;' " FIGURE 4 .2 l o g ic diag ram fo r ana lysis example Section 4 .3 Analysis Procedure 125 Th e outputs of various ga tes are la beled with interm edi ate sy mbols . The o utputs o f ga tes that are a fu nctio n only of input varia b les are T1 and T'!. O utput F,! ca n easily be de rived from the input variables . The Boo lean funct ion s for these three outputs are F,! = AB + AC + BC TJ =A +B + C T,! = A BC Next . we co nside r ou tpu ts of ga tes that are a fun ction o f al ready defined symbo ls: T~ = FiT, Fj =T3 + T'! To obtain FI as a fu nction of A . B. and C. we form a series o f sub..titutio ns as follow ..: F 1 = T J, + 7 ,! "" FiT l ~ + AB C = ( A R + AC + HC )' (A + B + C) + A HC ( A' + 8 ' )(,1' + C')( 8 ' + C' )( A + 8 + C ) + ABC = ( A' + B'C' )(AB' + AC' + BC' + B' C ) + ABC = A'R e ' + A 'B' C + AB'C' + A BC If we want to pur sue the in vestigation and det erm ine the info rmation transfo rmation task achieved by th is circ uit. we can draw the circ uit fro m the derived Bool ean ex pre ss ions and try to recog nize a fam iliar operation. The: Boo lean funct ions for F l and F] implement a circuit d iscussed in Sec tion ~.5 . Merel y find ing a Bool ean representat ion of a circuit doe sn' t prov ide insight into its be havior, but in this example we "ill observe that the Bool ean equ ations and tru th tab le for F 1 and F,! matc h tho se desc ribing the functi o nalit y o f " hat we call a full adder. Th e derivation of the truth table fo r a circuit is a straightforward process once the ou tpu t Bool ean func tio ns are known . To obtain the truth tabl e d irectly from the logic d iagram with o ut goin g throug h the derivation s of the Boo lean func tion s. we proceed as follows : 1. De termine the number of input " m abies in the c ircu it. For " inpu ts. form the 2" possible in put co mbinatio ns and list the binary num bers from 0 to 2" - I in a table . 2. Labe l the o utputs of selected gale!' with arbitrary symbols. 3. O btai n the truth table for the ou tputs o f tho se ga 'e ~ wh ich are a function o f the inpu t varia bles only. 4 . Proceed to obtain the truth table for the outputs of tho se gates whic h are a func tion of previo usly defined values unt il the co lumns for all outputs are de term ined , Th is process is illu strated with the ci rcu it o f Fig. 4 .2. In Tab le 4 ,1. we fo nn the eight posst- ble co mbinatio ns for the three inpu t variables. Th e tru th tab le for F2 is determin ed directl y from the values of A. B. and C. wit h F2 equal to I for any co mbination tha t has two or three inpu ts equa l to I . The trut h tabl e for f' ~ is the co mpleme nt of that o f f 2. Th e tru th tab les for T 1 and 7 2 are the O R and AND funct ion .. o f the in put variabl es. res pectively, Th e val ues for T} are deri ved from 7 1 and F i : 7.1 is eq ual to I when both T1 and F i arc eq ual to I. and T3 is equ al to 0 oIh...'T · wise . Finally. F, is equ al 10 I for those combination.. in which either T2 o r T3 or both are eq ual 126 Chapter 4 Combinational Logic Table 4.1 Truth Table for the l.ogic Diagram of Fig. 4.1 A 0 0 0 0 I I I I • c 0 0 I I 0 0 I 0 I 0 I 0 I I 0 I I I F, F, T, T, T, F, 0 I 0 0 0 0 0 0 I 0 I I I I 0 0 0 0 I I I I 0 I 0 I 0 0 I 0 0 0 0 0 I I I 0 I I 0 0 0 I I I I to I . Inspection of the truth table combinations for A. B, C. Fl. and F2 shows that it is identical 10 the truth table of the full adder given in Section 4.5 for .r, y. z, S. and C. respectively. Another way of analyzing a co mbinat ional circuit is by mea ns of logic simulation. This is not practical, however, because the number of input patterns that might be needed to generate meaningful outputs could be very large. But simulation has a very practica l application in verifying thai the functionality of a circuit actually matches its specification. In Section 4.12. we demonstrate the logic simulation and verification of the circuit of Fig. 4.2, using Verilog HDL. 4 .4 DESIGN PROCEDURE The design of combinational circuits starts from the specification of the design objective and culminates in a logic circuit diagram or a set of Boolean functions from which the logic diagram can be obtained. The procedure involves the following steps: I. From the specifications of the circuit. determine the required number of inputs and outputs and assign a symbol to each. 2. Deri ve the truth table that defi nes the required relationship between inputs and outputs. 3. Obtain the simplified Boolean functions foreach output as a function of the input variables. .s. Draw the logicdiagramand verifythe correctness of the design (manually or by simulation). A truth table for a com binational circui t consists of input col umns and output co lumns. The input columns are obtained from the 2" binary numbers for the n input variables. The binary values for the outputs are determined from the stated specifications. The output functions specified in the truth table give the exact definition of the combinatio nal circuit It is important that the verbal specification s be interpreted correctly in the truth table. as they are often incomplete, and any wrong interpretation may result in an incorrect truth table. The output binary functions listed in the truth table are simplified by any available method, such as algebraic manipulation. the map method, or a computer-based simplification program. Frequently, there is a variety of simplified expressions from which 10 choose. In a particular Section 4.4 Design Procedure 127 application. certain criteria will serve as a guide in rte process of c hoosi ng an irnple rnenration , A practical de sign must con sider such con straints a~ the number of gale ". number of inputs to a gate. propagation time of the signal throug h the gales. number o f interconnections. limitations of the dri ving capability of each ga te {i.e .. the number of 1!a tes 10 w hic h the o utput of the circuit may be co nnec ted ). and various other criteria that must be taken into co nsid erat ion w hen lksigning integrated circuits. Si rce ~ importance of each eunstrailll h dicta ted by the particular application. it is difficult to make a general state ment about "h.at constitutes an acceptable implemenration. In most cases. the simplification beg ins by lo3tisfying an ele me ntal)"objective. such as producing the simplified Boolean function s in a standard form . Then the simplification proceeds with fu rther steps 10 meet other performance criteria. Code Conyerslon Example The avai lability o f a large varie ty of codes for the sa me d iscrete elements of informa lion results in the use o f differen t code s by different digital sys tems . II is som etimes nece ssary to usc the output of one system as the input 10 another. A co nversio n ci rcuit must be inserted betwee n the two syste ms if each uses d ifferent codes for the same infor mation . Thu s. a code converter is a ci rcuit that makes the two systems com patible eve n though eac h uses a different binary code . To co nvert from binary code A to b inary code R. the input lines mUSIsupply the hit combinat ion o f eleme nts as spec ified by code Aand the o utpurhne.. must generate the corre spo nding bit combination of code B. A combinationa l circu it performs thi.. transformat ion by mean s of logic gales . The de sign procedure will be illu strated b)' an example tha t converts binary coded decimal (BC D) 10 the exc es s-J code for the dec imal Ji gi('\,. The bit combinnrionv assigned to the BC D and excess-J codes are fisted in Table 1.5 (Section 1.7). Since each code uses four bits to repre sent a dec imal digit. there must be fou r input vari ables and fo ur out put variable s. We designate the four input binary vari ables by tlk: sym bol s A. 8 . C. and D. and the fou r ou tput variab les by ~I' . X. .". and :. The truth tabl e relating the input and output variables i" sho w n in Table 4 .2. T he llil co mbination.. for the inpu t.. a nd their Table 4 .2 Truth Tob~ for Codt -Convenion bomplt Output b ee n ·) Code Input BCD A • w K o o o II II n 1 1 o o o o 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 o o 0 1 1 z D II 0 0 0 0 y C II II 1 o 0 1 1 1 0 1 0 1 u o 1 1 1 1 0 II o o 1 0 0 0 1 1 1 1 1 o "o 1 o o 0 128 Chapter 4 Combin ation al Logi c corresponding outputs are obtained d irectly from Secti on 1.7. Note tha t four bin ary variables may have 16 bit combinations. but only 10 are listed in 1M truth tab le. The six bit combinations not listed for the input variables are don 't-care combinations . These values have no meaning in BCD and we assu me that they will never occ ur. Therefore . we are at liberty to assign to 1M output variables either a , or a 0, whiche ver gives a simpler circuit. The maps in Fig. 4.3 are plotted to obtai n simplified Boo lean functions for the outputs. Eac h one of the four maps re presents one of the four outputs o f 1M c irc uit as a fu nction of the fou r input vari ables . The t's marked inside the squares are obtained from the minterms that make the output equal to I . The J' s are ob tained from the truth table by goi ng over 1M outp ut columns one at a time . For example. the colum n under output z has five t's: therefore, the map fo r z has five t's. eac h being in a square corre spo nd ing to the mlnterm that makes c equal to I . Th e six don ' Hare mintenns 10 through 15 are mark ed with an X. On e po ssi ble way to simpli fy the functions into sum-of-prod ucts fonn is listed under the map of each vari able. (See Chapter 3.) C , CD 00 AH ~ .~ 00 01 01 II 10 »- m, m, I ~ 1 II A " "X ""X ~ ~ ~, 10 I .. I 01 I I X -. ; C CO 00 I! I -, -, - "X AH B X II X 10 00 01 m, ~ , I- I -, .. m, ""X X m, ~ .... m.. II X -, A 10 _ P. -, -, 11'1. - I..'''' -, I...!... 01 , ~ I -. m .. ~ ... " _ 1, X X I I. " .. X " Xl X I X -. X -.. X c CD 10 m, 01 ' 1 Il'x o AB 00 m, 00 m, , - CO +CO' C , ~ I~ ~ 1 o AB 10 ~ 1d I : - D' CD 00 II ~ 01 ", 10 II m, m, 00 I m. 01 B II A '~ X , 10 I""i"1":: 'I Ifj -.. I"';:' X ~ I I=~~ -., X I , o .c " B"C + B"D + BCD' FIGURE 4 .1 Map s for BCD-tere.cess-3 cod e con verter D ... ., ,, + BC+ SO m" .. .X Section 4.4 De sign Proced ure 129 A two-le vellogic diagram may be obtained d irectly from me Boo lean expre ssions derived from the maps. There are various other possibillues for a log ic diagram that impleme nts this ci rcuit. The e xpressions obtained in Fig. 4 .3 may be manipulated alge braically for the purpose of using co mmo n gates for two or more outputs. Th is manipulatlon . shown ne xt. iltusumc s the fle xibility obtained with multi ple-output systems when imp leme nted with three or more levels of gates: :. = D' Y = CD + C D' = CD + (C + D )' + H' D + He'n' = B' (C + V ) + BC'V ' = B' ( C + D ) + B(C + D )' = A + Be + 8 0 = A + H(C + D ) .r = H'C I" The logic d iagra m that imple me nts these ex pre ssio ns is show n in Fig . 4.4 . Note thai the O R gate who se o utput ls C + D has been used to implem en t part ia lly each or thr ee o utputs. No t counting input inverters . the imple menta tio n in su m-of-prod uc ts 1'01'111 requires se ven AN D gates and three O R gates, Th e impleme ntatio n o f Fig . 4 .4 req uire!'. four AND gates. four O R gates. and o ne inverte r. If onl y the norm al inputs are available. the first implementation will require in vert ers for variab les B. C. and D. an d the seco nd imple me ntatio n will requ ire inve rters fo r variab le!'. B and D. Th us. the three-lev el logic circuit requ ires fe wer gales. all o f w hich in tum req uire no more tha n two inputs. D' CD ~ =:;:::t:::f-)E'--------l-")----- Y '>-- ..---41>0--; Ie + OJ' ~ --L_/ C +lJ B - , -- - - - 1 - - -- - -1 )-- fiGURE 4 .4 logic diagram for BCD-to-e xcess-3 code co nve rt e r - , 130 Chapter 4 Combinational l ogic 4 .5 BINARY ADDER -5UBTRACTOR Digital comp uters perform a variety o f inform ation-processing tasks. Among the function s en countered are the various ari thmetic ope ratio ns. The most basic arithmetic operation is the addition of two binary digits. This simple addition consists of four possible e lementary operations: o + 0 = 0, 0 + 1 = I. 1 + 0 = I, and I + I = 10. T he first three operations produce a sum o f one digit, but when both augend and addend bits are eq ual 10 I . the binary sum consists of two dig its. The higher significant bit of this result is called a carry, When the augend and addend numbers contain more significant digits.the carry obtained from the addition of two bits is added to the next higher order pair of significant bits. A combinational circuit thai performs the addition o f two bits is called a halfadder, O ne that performs the add ition of three bits (two significant bits and a previous carry) is al llll adder. The names of the circuits stern fro m the fact that two half adders can be employed to implement a full adder. A binary adder- subtracte r is a combinational ci rcuit that performs the arithmetic operations of addition and subtraction with binary num bers. We will develop this circuit by means o f a hierarc hical design. The half adder design is carrie d OUI first, from which we develop the full adder. Con necting n full adders in casc ade prod uces a binary adder for two c -bit num bers. The subtraction circuit is included in a complementing circuit. Half Adder From the vernal explanation of a half adder. we find that this circuit needs IWO binary inputs and two binary outputs. The input variables designate the augend and addend bits; the output variables produce the sum and carry. We assign symbols .r and y to the two inputs and S (for sum) and C (for carry ) to the outputs. The truth table for the half adde r is listed in Table 4.3. The C outpu t is I only when both inputs are 1. The S outp ut represe nts the least significant bit o f the sum. The simplified Boolean functions for the IWO outputs can be obtained direct ly from the truth table . Th e simplified sum-of-products expressions are S = x 'y + xy' C = x )' The logic diagra m of the half adder implemented in sum of products is show n in Fig. 4.5 (a), It can be also implemented with an exclusive-OR and an AND gate as show n in Fig. 4 5(b). This form is used to show that IWO half adders can be used to construct a full adde r. Table 4 .3 Half Adder x y C S 0 0 I I 0 I 0 I 0 0 0 I 0 I I 0 Section 4.5 ~- s Binary Adder-Subtraetor "' ~ " "" .' . I" ;=:::C:))---- - --- 131 .......'. /.{;<.: c fa l S = .\,,\., ....t ' .1 S c ( b) S · .f e \· c = ,\',\ C " .t .\· . F1C;URE 4 .5 Implem entatIon of half adder Full Adder A full adder is a combinational circuit that forms the arithmetic sum of three bits. It consists of three inputs and two outputs. Two of the input variables, denoted byr and y, represent the two significant b il.~ to be added. The third input. :. represents the cany 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 digit...The two outputs are designated by the symbols S for sum and C for cany. The binary variable S gives the value of the least significant bit of the sum. The binary variable C gives the output cany. The truth table of the full adder is listed in Table 4.4. The eight rows under the input variables designate all possible combinations of the three variables. The output variables arc determined from the arithmetic sum of the input bits. When :111 input bits are 0, the output i..O. The S output is equal to I when only one input is equal to I or when all three inputs are equal 10 I. The C OUiPUI has a carry of I if two or three inputs are equal to I. The input and output bits of the combinational circuit have different interpretations at vuriou..stages of the prohlem. On the one hand. physically. the binary ..ignals ofthe inputs are considered binary digits to be added arithmetically to form a two-digit sum at the output. On the other hand. the same binary values are considered as variables of Boolean functions when expressed ill the truth table or when the circuit is implemented with logic gales. The map ~ for the ourput-,of the full adder are shown in Fig. 4.6. The simplified expressions arc Tabl e 4.4 Full Adder x , r 0 0 0 0 1 1 I I 0 0 I I 0 0 1 1 0 I 0 I 0 I 0 1 c s 0 0 I I 0 I 0 0 1 0 0 I 0 I I 1 132 Chapter 4 Comb inationa l l ogic , y~ 0 . y 00 10 ., ., ., ., ., 1 1 Y' y . 01 00 a 1 1 ., , 11 11 01 ., , m, " + 10 11 1 m, 1 I "i ", FIGURE 4 .6 Maps fo r full adder + x'YZ' + xy'Z' + .ryz C = xy + xz + }'Z s = x 'y 'Z The logic diagram for the full adder implemented in sum-of-products form is shown in Fig. 4.7. It can also be implemented with two half adders and one OR gate. as shown in Fig. 4.8. TheS outpUt from the second hal f adder is the excl usive-O R of z and the output of the first half adde r. giving S - zEll (x EIly) = z'( xy' + x'y) + z(xy' = z'( xy' = xy' z' + x 'y ) + z(xy + x'y}' + x'y') + x 'yZ' + xyz + x ' y ' Z The carry output is c= y' z(x)" + x 'y ) + xy = xy'z + x'vz :::f-L~ ' ---t_ - ' FIGURE 4 .7 Implementation of full adder in sum- of- pro ducts form + xy Secti on 4 .5 Binary Adder-Subtractor 133 x8 y FIGURE 4 .8 Im pl ementati o n of full adder wi th two half add er s and an OR g ate Bin a ry Adde r A binary adder is a digital circuit that produces the arithmetic sum of two binary numbers. It can beconstructed with full adders connected in cascade. with the outp ut carry from each full adder connected to the input carry of the next full adder in the chain. Figure 4.9 shows the interconnection of four full-adder (FA) circuits to provide a four-bit binary ripp le carry adder. The augend bits of A and the addend bits of B are designated by subscript numbers from right to left with subscript odenoting the least signif icant bit. The carries are connected in a chain through the full adders. The input carry to the adder is Co. and it ripples through the full adde rs to the o utput carry C4 The S outputs generate the required sum bits. An II-bit adder requires n full adders. with each output carry connected to the input carry of the next higher order full adder. To demonstrate with a speci fic example. consider the two binary numbers A = 101 1 and 8 = 00 11. The ir sum S = 1110 is formed with the fou r-bit adder as follows: Subscript I: 3 2 0 Input carry c; Augend Addend 0 1 1 0 0 0 0 1 1 Sum 1 1 0 s, Output carry 0 0 1 Ct+l A; B; The bits are added with full adders . starti ng from the least significa nt position (subscript 0). 10 fonn the sum bit and carry bit. The input carry Co in the least significant posi tion must be O. The value of C;-+l in a given significant position is the output cart)' of the full adder. Th is value is transfe rred into the input carry of the full adde r that adds the bits one higher significant p0sition to the left. The sum bits are thus generated starting from the rightmost position a nd are available as soo n as the corresponding previous carry bit is generated. A ll the carries must be generated for the correc t sum bits to appear at the outputs. The four-bit adder is a typical exa mple of a standard component. It ca n be used in many applications involving arithm etic o perations. Observe that the design of this circuit by the cla ssical method would require a truth table with 29 = 5 12 entries. since there are nine inputs to 134 Chapter 4 Comb inational Logic A, 8, I I c, FA r•, FA c, c, FA FA Co I s,• 5J s, FIG.URE 4 .9 Four-bit adder the ci rcuit. By using an iter ative method of ca scading a standard function, it is possibl e to obtai n a sim ple and straightforward implementation. Carry Propagation The addition of two binary numbers in parallel implie s that all the bits of the augend and adde nd are available for compu tatio n at the same time. As in any combinat ional circuit, the signal must propagate through the gates before the correct out put sum is avai lable in the output terminal s. The total propagation time is equal to the propag ation delay of a typical gate. times the number of gate levels in the circuit. The longes t propagation delay time in an adder is the time it take s the carry to propagate throu gh the full adders. Since each bit of the sum output depends on the value of the inpu t carry. the value of Sj at any given stage in the adder will be in its stead y-state final value only afte r the input carry to that stage has been propagated . In this regard . consider ou tput S3 in Fig. 4.9. Inputs A 3 and BJ are available as soonas inpu t signa ls are applied to the adder. However, inpu t carry C 3 does no( settle to its final value until C 2 is available from the previou s stage. Similarly, C2 has to wait for C 1 and so on down 10 Co- Th us, on ly after the carry propa gates and rippl es through all stages will the last output 5J and carry Col settle to thei r final correct value . The num ber of gate levels for the carry propagation can be found fro m the circuit of the full adde r. The circuit is redraw n with different labe ls in Fig. 4.10 for convenience . The input and A, 8, II P, ,~ r.e c, s, ./ l )G, c, f lG.Un 4.1 0 Full ad der with P and G shown l ~ P,Cr + G, Sect ion 4.5 Bina ry Adder-Subtraetor 135 o utput va riables use the ~uhscri pt i to denote a typi cal stage o f the adder . The signals at P; and G, settle to their steady -state values after they propagate through their res pec tive gales, T hese two signets are co mmo n to all full adde r.-. and depend only onthe input au gen d and addend hils. The signal fro m th e input carry Cj 10 the out put carry C;- I pro pagat es through an AND ga te and an OR gate. whi ch co n..tirutc two gale levels. If there are fou r full adders in the adde r. th e o utpu t carry C4 wou ld ha ve 2 x 4 =- 8 gale levels from Co to C-4' For an u-bi r adde r. there are 211 gate levels for the carry to propagate fro m input to output. The ca rry propagation lime is an import ant attri bute of th e adde r because it lim its the speed with wh ich two numbers are added . A lthough the adde r-c-o r. for thaI matt er. any combi netio na! circuit-s-will always have some value at its ourpot rerm inal s. the outputs w ill not be correc t un less the signals arc gi ve n e nou gh time to propagate through the gate s co nnec ted fro m the inp uts 10 the ou tputs. Since all other ari thmet ic o pera tions are imple men ted by succes si ve addi tion s. the time co nsumed durin g the addi tio n proce ss is critica l. An obv ious so lutio n for reducing the carry propagat ion del ay time is to employ fas ter ga te s with reduced delays. However, phy sical c ircu its have u lim it to thei r ca pabi lity. Another solution is to increase the co mplex ity o f the equipment in suc h a way that th e carry delay time is reduced. Th ere arc se vera l techniques for reducin g the carry prop agation time in a paral lel adde r. Th e most w idel y use d technique emp loys the principle o f carry tooka heaa IORie. Consider the circui t of the full adder shown in Fig. 4.10. If we define 1'01.'0 new binary vari ab les P; = A, @8, G j = A;8; the o utput sum and carry ca n respecuvety be e xpresse d a~ S j =P; EB C ; C j + 1 = G; + P,C , G, i.. ca lled a carry 1:t.'tlerare. and it produ ces a carry of I wh en bot h A, and 8, are J. regardIe~s o f the input carT)' C,. ~ is ca lled a wrl)' proP<'1:l11<,. because it determines whether a carry into ..rage i will propagat e into stage i .... I (i.e .. whether an a....e rt ion of Ci will propagate to an assertion of Ci-tl. We no w write the Bool ea n functio ns for the carr)' outputs o f eac h stage and sub stitu te the valu e of eac h C; from the pre viou .. eq uatio ns: cu = input carry C] = Gn + PoCu C~ = G I + P tC ] = (il C~ = G~ + P~C ~ =- G~ + PI(Go + PoCo) = G I + P IGO + P tPoCo + P2G ] + p ~p ] Go =- P~P 1Prt:O Since the Boolean function for eac h out put carry is expressed in sum-of-prodocts form. eac h function can be implemented with one level of AN D gates followed by an OR ga te (or by a two- level NAND).1lle three Boolean functions for C t. C2• and C) are implemented in the carry loo kahead gene ra tor shown in Fig. 4 .11. Nule that thi.. circuit can add in less time bec ause CJ doe s not have to wail for C 2 and C. to propagate: in fac t. C" is propagated at tbc sa me time as C t and C2. Thi s ga in in speed o f operation is achi eved at tbe expense of add itional comple xity (hardware). 136 Chapter 4 Combinational Log ic - ~ ~ :j c, -L/ c, P, G, ~ I I P, G, :-i G. ~ r- c, C. FIGURE 4.11 Logic diagram of carry looka head generator The construc tion of a four-bit adder with a carry lookahead scheme is shown in Fig. 4.12. Each sum output requires two exclusive-OR gales . The output of the first exclusive-OR gale generales the 11 variable, and the AN D gate generates the G1 variable. The carries are propagated through the carry lookahead generator (similar 10 thai in Fig. 4. 11) and app lied as inputs to the second exclusive-OR gate. All output carrie s are generated after a delay through two levels of gates. Thus, outputs 5 1through 53 have equal propagation delay times. The two-level circuit for the output carry C4 is not shown. This circuit can easily be derived by the equationsubstitution method. Binary Subtractor The subtraction of unsigned binary numbers can bedo ne most conveniently by means of complements, as discussed in Section 1.5. Remember that the subtraction A - B can be done by taking the 2's complement of B and adding it to A. The 2's co mplement can be obtained by taking the I 's complement and adding 1 to the least significant pair of bits. The I 's complement can be implemented with inverters. and a I can beadded to the sum through the input carry. R, A, P, G, R, A. C, S, p. p. G. c, eo FIGURE 4 .12 rcur-bit adder wit h ca rry lookahead I I The c ircuit for subtracting A - R co nsists o f an adde r with inverte rs placed be tween eac h d ata input B and the correspo nd ing input o f the ful l adde r. Th e input c arry Co must be equ al to I when subtractio n is pe rfo rmed . Th e operat ion thu s pe rformed becom es A. plus the ) 's co mplement of 8 . plus 1. This is equal to A plus the 2's complement of B. For unsigned numbers. that g ives A - B if A ~ 8 or the 2' s complement of ( 8 - A ) if A -c B. For signed num bers . the resul t is A - 8 , prov ided thai there is no ove rflow, (See Section 1.6.) The addition and subtraction operations can be combined into one circuit with one common binary adder by including an exclusive-Olegate with each full adder.A four-bit adder-s ubuaetor c ircuit is shown in Fig. ~ . 13 . Th e mode input /If controls the operatio n. Wh en M = O. the ci rcuit is an adder. and \\ he n .\f = I. the circuit becomes a subtracter. Each exclusive-OR gate receives input M and one of lhe inputs of B. When M = O. we have B Ell O = B. The full adders receive the value of B. (he inptn carry is O. and Ihe circu it perform s A plus B. When M = I. 138 Chapter 4 Combinational Logic B, 8, B, r-+---+~--+----+-r-+----+-.--+--r-- M I 8: y c, FA y c, FA c, FA c, FA ~, <, II FIGURE 4 .13 Four-bit adder-subtractor we have B EB 1 = B ' and Co = 1. The B inputs are all complemented and a 1 is added through the input carry. The circuit performs the operation A plus the 2' s complement of B. (The exclusive-OR with output V is for detecting an overflow) It is worth noting that binary numbers in the signed-complement system are added and subtracted by the same basic addition and subtraction rules as are unsigned numbers. Therefore. co mputers need on ly one common hard ware circ uit to hand le both types of arithmetic. The user or programmer must interpret the results of such addition or subtraction differently. depending on whether it is assumed that the numbers are signed or unsigned. Overflow When two numbers with n digits each are added and the sum is a number occupying n + I digits. we say that an overflow occurred. This is true for binary or decimal numbers. signed or unsigned. When the add ition is performed with paper and pencil. an overflow is not a problem. since there is no limit by the width of the page to write down the sum. Overflow is a problem in digital computers because the number of bits that hold the number is finite and a result that contains n + I bits cannot be accommodated by an a-bit word. For this reason. many computers detect the occurrence of an overflow. and when it occurs, a corresponding flip-flop is set that can then be checked by the user. The detection of an overflow after the addition of two binary numbers depends on whether the numbers are considered to be signed or unsigned. When two unsigned numbers are added. an overflow is detected from the end carry out of the most significant position. In the case of signed numbers. two details are important: the leftmost bit always represents the sign. and negative Sect ion 4.6 Decimal Adder 139 numbe rs are in Z's-co mple ment form . W hen two signed numbe rs are adde d. the sign bit is treated as part of the number and the end carry doe s nOI ind icate an overflo w. An o verflow cannot occ ur after an addition if one number i!'o positive and the other is negative. since add ing a positive number to a negative number produces a re sult whose magnitude is smaller than the larger of the two original numbers. An o verfl ow may occ ur if the two numbers added are both positive or bo th negative. To see how this can happen. consider the followi ng exa mple : Two signed binary numbers, + 70 and + 80. are sto red in two eight-bit registe rs. The range of numbers that each register can acco mmodate is fro m binary + 127 to binary - 128. Since the sum of the two numbers is + 150. it exceed!'. the capacity of an eight-bit register. This is also true fo r - 70 and - 80. The two add itions in binary arc shown ne xt, together with the last two carries: carries: +7 0 + 80 + 150 0 1 0 1000110 o ior oooo 1 00 10 110 carries: 0 - 70 - 80 - 150 1 1 0 111010 ouoooo a 110 1010 Note that the eig ht-bit result that should have been positive has a negative sign bit (i.c.• the 8-th bit) and the e ight-bit result that should have been negative has a positive sign bit. If, howeve r, the carry o ut of the sign bit position is take n as the sign hit of the result. then me nine-bit answer so obtained will be correct. But since the answer cannot be accom modated within eight bits. we say thai an overflow has occ urred. An ove rfl ow co ndition can bedetected by observing the carry into the sign bit positio n and the carry out of the sign bit position. If these two carries arc not equal. an ove rflow has flCCUITCt1. This is ind icated in the examples in which the two carries are ex plicitly sho wn. If the two carries are appli ed to an exclusive-O R gate. an overflow is detected when the o utput of the gate is equal to I. For this method to work correctly. the 2's co mplement of a negative number must be co mputed by taking the I 's comp lement and add ing 1. This takes care of the cond ition when the maximum negative number is co mplemented. The binary adder-subtracte r circuit with ou tputs C and V is shown in Fig. 4. 13. If the two binary numbe rs are co nsidered to be unsigned. then the C bit de tects a carry after add ition o r a borrow a fter subtraction. If the numbers are co nsidered to be signed, men the V bit de tects an o verflow. If V :::: 0 after an add ition or subtraction. then no o verflow occurred and the nbit result is co rrect. If V :::: I. men the result of the ope ration co nta ins 1/ + I bits, but o nly the rightmost n bits of the number fit in the space available. so a n ove rflow has occ urred. The (n + 1jth bit is the actual sign and has been shifted out of posi tio n. 4 .6 DECIMAL ADD ER Computers or calculators that perform arithmetic ope ratio ns directly in the decim al number system represent decimal numbers in binary coded form An adde r for such a com puter must employ arithmetic circuits that accept ced ed decima l numbers and present results in the same code. For binary add ition. it is sufficient 10 consider a pair of significant bits together with a previous carry. A decimal adder requires a minimum (If nine inputs and five outputs. since four bits are required to code each deci mal digit and the circuit must have an input and output carry. There 140 Cha pt er 4 Combina tional Logic is a wide variety of possible decimal adder circ uits, depending upon the code used to represent the decimal digits. Here we examine a decimal adder for the BCD code. (See Section 1.7.) BCD Adder Consider the arithm etic addition of two dec imal dig its in BCD, together with an inp ut carry from a previous stage. Since eac h input digit doe s not exceed 9, the output sum cannot be greater than 9 + 9 + 1 = 19, the I in the sum bein g an input carry. Suppo se we apply two BCD digits to a fou r-bit binary adde r. The adder will form the sum in bina ry and produce a resu lt tha t ra nge s fro m 0 th rou gh 19. Th ese binary number s are lis ted in Tab le 4.5 and are labeled by sy mbols K , 2 8, 2 4 , 2 2, and 2 ]. K is the carry, and the subscrip ts under the letter 2 rep resent the weights 8, 4 , 2, and I that ca n be assig ned to the fou r bits in the BCD code. The columns und er the binary sum list the bi nary value th at ap pears in the output s of the four-bit bin ary adde r. The output sum of two deci mal digits must be represented in BCD and sho uld appe ar in the fonn listed in the co lumns und er "BC D Sum." The probl em is to find a rule by which the binary sum is co nverted to the correct BCD dig it rep rese ntatio n of the numbe r in the BCD sum. In examining the co ntents of the ta ble, it becomes apparent that when th e binary sum is equal to or less than 1001. the corresponding BCD number is identical. and there fore no co nversion is need ed . When the binary sum is greater than 1001, we obtain an inva lid BCD represe ntation. Table 4 .5 Deriva tion of BCD Adder Bin ary Sum BCD Su m • Z. Z. Z, Z, 0 0 0 0 0 0 0 0 0 I 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 I I 0 I I I I 0 0 0 I I 0 I I 0 0 0 0 0 0 0 0 0 0 0 I I I I I I 0 0 I I 0 I I I I 0 0 0 I I 0 I I 0 0 0 0 0 0 0 0 0 0 0 I I 1 1 C So S, Dec im a l S, S, 0 I 0 I 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 I I 0 I 2 3 I I I I 0 0 0 4 I I 0 e I I I 0 0 0 0 0 I 7 8 9 0 0 0 0 0 0 0 10 I II I I 0 12 13 I I I I 0 0 0 14 I 15 I. I 0 1 I I 0 0 I I 0 0 I 0 0 0 0 0 0 0 0 0 I 17 18 19 I I I I I I I I I 0 5 Section 4.6 Decimal Adder 141 The addition of hinary b lO\ \0 ) to the binary sc m conv erts it 10 the correct BCD represema- lion and also produces an output carry as required. The logic circ uit that detects the: necessary correction can bede rived from the:entries in the tab le. II is ob vious that a correct ion i.. needed when the hinary ..urn ha.. an output carry K = I . The other ~i :\ combinations from 1010 thro ugh 11' 1 thai need a correction have a 1 in pos ition ZlI. To distinguish them from binary 1000 300 100 1. whic h also have a I in po sitio n ZlI. we specify furth er that ei ther Z4 Of Z2 mu ..t have a I. Th e co ndi tion for a co rrec tio n a nd an ou tpu t carry can he ex pressed by the Bool ean functio n C = K + Z8Z-4 + ZllZ2 When C :: 1. it is necessary 10 add 0 110 10 the binary sum and prov ide an output carry for the ne xt stag e . A BCD adder \h~ add... two BCD digits and prOO~ a scm digit in BCD is shown in n g . 4..14. The IWO dec ima l digits.togetha" with the input carry. are first adde d in !he lop four -bit adde r 10 produce the binary sum. when the outpUI carry is equa t ro O. no thing is add ed to the binary sum. Au ~cnd A ddend Carry 0"' 4-bi1binary adder K Z. O UIP UI r un) o - - --r+-1!o FIGURE 4 .1 4 81a<kdi agram of a BCD adder 7..~ Z~ Z, Carry in 142 Chapter 4 Combinational Logic When it is equal to I. binary 01 10 is added 10 the binary sum through the bot tom four-bit adder. The output carry ge nerated from the bottom adder can be ignored. since it supp lies information already avai lable at the ou tpu t carry terminal. A deci mal parallel adder tha i adds n dec imal digits needs n BCD add er stages . The output carry from one stage must be connected 10 the input carry of the next higher order stage. 4 .7 B I N A RY MULTIPLIER Multiplication of binary numbers is performed in the same way as multiplication of decimal num bers . The multiplicand is multiplied by each bit of the multiplier. starting from the lea..t sign ificant bit. Each such multiplication fonns a partial product. Suc cessive parti al products are shifted one position to the left . The final prod uct is obta ined fro m the sum of the partial prod ucts. To see how a binary mul tipli er ca n be imple me nted with a combinational ci rcuit. cons ider the multi plicat ion of two 2·bit num bers as show n in Fig. 4.15. Th e mul tiplicand bits are BI and Bo, the mu ltipli er bits are A I and A o, and the prod uct is C3C2C ICo. The fir st part ial produ ct is form ed by multiplying Billa by A o. The mul tiplication of two bits such as Ao and Bo produces a I if both bits are I: otherwise. it produces a O. This is identical to an AND operat ion. Th erefore , the partial product ca n be implemented with AND gates as shown in the diagram . Th e secon d part ial prod uct is fonned by m ult iplying B1Bo by A 1 and shifting one po sit ion 10 the left. Th e two parti al prod uct s are added wi th two half-adder ( HA) circuits. Usually, there are more bits in the parti al products and it is necessary to use full adders to produce the sum of the parti al C, B, B. A, AoB, A. A,B. A IB I A 1B o C, C, C. FIGURE 4 .15 Two-bit by two-bit bin ary mu ltiplier A. A, B, B, B. .. Section 4.7 Binary Multiplier 143 produ cts. No te that the least sig nific ant bit of the product doe s not have to go through an adde r. since it is fo rmed by the output o f the first AN D gate. A co mb inatio na l c ircuit bin ary mu lti plie r with more bits can be co nstruc ted in a similar fashi on . A bit o f the mu ltiplier is ANDed wi th each b it o f the mult iplicand in as man y level s as the re are bits in the mult ip lier. The b inary output in eac h level of AN D gates is added with the part ia l prod uct o f the pre viou s le vel to form a new part ial produ ct. The las t leve l produce s the prod uct . For J mu lti plier bits and K mu ltipli can d bits. we need (J X K ) AN D gates and (J - 1) K-bit adders to prod uce a produ ct of J + K bits. As a second example. consider a multiplier circuit that mu ltiplies a binary number repre sented by four bits by a number represented by three bits. Let the mu ltiplicand be represen ted by B3B1Bl Eo and the mu ltiplier by A 2A ]A Q • Since K = 4 and J = 3. we need 12 A ND gales and 2 fou r-bit adders 10 produce a product of seven bits.The logic diagram of the mult iplier is shown in Fig. 4 .16. Ao ------ - - - - - - - - - - r -=-; -,,---·..--=---. s" s, C" f1GUR14 .16 rcur -bn by three-bit binary multiplier 144 Chapter 4 Combinational logic 4 .8 MAGNITUDE COMPARATOR The comp arison of two numbers is an operat ion that determines whether one number is greater than. less man. or eq ual to me other number. A magnitude compa rator is a combinational circuit that compares two numbers A and B and determines their relative magnitudes. The outcome of the compariso n is specified by three binary varia bles mat indicate whether A > B. A = B. or A < B. On the one hand. the circuit for comparing two n-bit numbers has 2 2n entries in the truth tab le and beco mes too cumbersome. eve n with n = 3. On the other hand. as one may suspeer. a comparator circuit possesses a certain amount of regularity. Digital functions tha t possess an inherent well-defined regulari ty can usually be des igned by mean s of an algorithm-a procedur e which specifies a finite set of steps that. if follo wed. give the solution to a prob lem. We illustrate this method here by deriving an algo rithm for the design of a four-bit magnitude co mparator. The algorithm is a d irect application of the procedure a person uses to compare the relauve magnitudes of two numbers. Consider two numbers. A and B. with four digits each. Write the coefficients of the numbers in descending order of significance: A= A3A2AI Ao B = B)B2B1Bo Each subscripted leiter represents one of the digits in the number. The two numbers are equ al if all pairs of significant digits are equal: A) B3. A 2 = B2. Al B I • and Ao = Bo. When the numbe rs are binary. the d igits are either I or O. and the equality of each pair of bits can be expressed logically with an exclusive-NOR function as = XI = A;B; + AiB ; = for i = 0.1 . 2. 3 where x; = I only if the pair of bits in position i are equal (i.e.• if both are I or both are 0). The equa lity of the two numbers A and B is d isplayed in a co mbinational circ uit by an out put binary variable that we designate by the symbo l ( A = B ). Thi s binary variable is eq ual to I if the input num bers. A and B. are eq ual. and is equal to 0 otherwi se. For eq uality to ex ist. all Xi variab les must be equal to I. a co ndi tion that dictates an AN D ope ratio n of all var iable s: (A = B) = X3X2X 1XO The binary' variable (A = B) is equal to I only if all pairs of digits oflhe two numbers are equal. To determine whether A is greater or less than B. we inspect the relative magnitudes of pairs of significant digits. starting from the most significant position. If the two digits of a pair are equal. we compare the next lower significant pair of d igits. The co mpariso n co ntinues until a pair of unequal digits is reached. If the corresponding d igit of A is I and that of B is O. we conclude that A > B. If the corresponding digit of A is 0 and that of B is I . we have A < B. The sequential co mparison can beexpressed logically by the two Boolean functions (A > B) = A )B) + (A < B) = A )B) + X)A2B2 + X)X2Ai Bj + X3X2X ,AOBo x )A 2B2 + X)X2AI Bi + X)X2X IAoBo Sect ion 4.8 Magnitude Comparator 145 The symbols (A > 8 ) and ( A < B) are binary OUlpUI variables that are equal 10 I when A > B and A < B. respectively. The gate implementation of the three output variables j ust derived is simpler than it seems because it involves a certain amount of repetition . The uneq ual outputs can use the same gates that are needed 10 generate the equal output. The logic diagram of the four-bit magnitude co mparator is shown in Fig. 4.17. The fou r x outputs are generated with exciu sive·NO R ci rcuits and are applied to an AND gale to give the output binary variable (A = B). The other two outputs use the .r variable s to generate the Boolean functions listed previously. This is a multilevel imple mentation and has a regular pattern. The procedu re for obtaining magnitu de co mparator ci rcuits for binary numbers with more than four bits is obvious from this exa mple. (A < 8 ) A , ~--f»--r, 8 , -.e.--[»--L~ (A > 8 ) L!~=lEG}--------- (A ~ B ) FIGURE 4 .11 Four -bit mag nitude compa rator 146 Chapter 4 Combinati onal logic 4 .9 DECODERS Discrete quanti ties of informa tion are repre sented in digital systems by binary codes. A binary code of n bits is capable of representing up to 2" distinct elements of coded information. A duo oder is a co mbinational circuit tha t converts binary inform ation from" input Hne.. to a maxi mum of 2" unique ou tpu t line c. If th e ,,- bit coded information ha.. unused co mbi nation... the decoder ma y ha ve te wer than 2" ou tputs. The decoders presented here are cal led n-to-m-line decoders , where m :s: 2". Their purpose i ~ to generate me 2" (or fe.....er) mi nterms of n input variables. The name decoder is abo used in conj unctio n with other code converters. such as a BC D-lo-seven-segment decoder. As an exam ple. consider the three-to-eight-line decoder circuit of Fig. 4.18. The three inputs are decoded into eight { )(JtPUl~. each represe nting one of the minterms of the three input variables. The three inverters provide the complement of the inputs, and each one of the e ight AND gates generates o ne o f the minter ms. A part icular applicat ion of thi s decoder is binary -to-octal Do - .t')":' " I \ r-, , I --y J DJ .r.... '\ J '\ FIGURE 4 .18 'rbree-tc-e lq ht-une decoder - x) : Section 4.9 Decod ers 147 Tabl e 4 .6 Truth Table of a Three·to-flght·Lfne Decoder Outputs Inputs x y z D. D, D, D, D. D, D. D, 0 0 0 0 0 0 I 0 0 I 0 0 0 0 0 0 0 0 0 0 0 0 I I 0 0 0 0 0 0 0 0 0 0 0 0 I 0 0 I 0 0 0 0 0 0 0 0 0 0 I 0 0 I 0 0 0 0 0 I 0 0 0 0 0 I 0 0 0 I I I I I I I I I 0 I 0 0 0 0 0 0 0 0 conversion. The input variables represent a binary num ber. and the outputs represe nt the eight dig its of a num ber in the octal numbe r system. However, a three-to-eight-line decoder ca n he used for decod ing al/Y three-bit code to pro vide eight o utputs, one for each element of the code. The operation of the decoder may be clan lied by the truth table listed in Table 4.6. For each possible input co mbinatio n, the re are seve n outputs that are eq ual 10 0 and o nly o ne thai is eq ual (0 I. The output whose value is eq ual 10 I represent s the mintenn equ ivalent of the binary num ber curre ntly avai lable in the input line s. Some decoders arc constructed with NAN D gates. S ince a NAND gate produces the AN D operat ion with an inverted output. it becomes more eco nomical to generate the decoder mintcrm s in their com plemented form. Furthermore. decod ers include one or more enable inputs to co ntrol the circuit ope ration. A two-to-four-line decode r with an e nable input co nstructed with NAN D gates is shown in Fig. 4.19. The circuit opera tes with complemented outputs and a com plement D, £ A B D, D, D, D, I 0 0 U .Y .Y 0 0 I I 0 I 0 I I 0 I I I I I 0 I I I I I U I I I I I 0 0 E -..J _~ ')~ (a) Logic dia gram FIGURE 4 .19 'rwc -tc -Ic ur-une decoder with enable inp ut Ib) TrUlh tab le 148 Chapter 4 Combinational logic enabl e input. The decode r is en abled when E is equ al to 0 (i.e.. active-low enable ). As indicated by the truth table. only one ou tput can be equal to 0 at any given time; all other outputs are eq ual 10 I. The OUlpUI whose value is equal to 0 represents the mintenn selec ted by inputs A and B. The circuit is disab led when E is equal 10 I. regardless of the va lues of the other two inputs. When the circuit is disabled . none of the outputs are equ al 10 0 and none of the rnintcrms are selected . In general . a decode r may operate with complemented or uncornple mented ou tputs. The enab le input may be acti vated with a 0 or with a 1 signal. So me dec oders have two or more enab le inputs that must satisfy a given logic co ndition in onle r to enable the circuit. A decode r with enable input can function as a demultiplexer- a circuit that receives information fro m a single line and directs nr c one of 2" possible ou tputlines. The selec tio n of a specifi c ou tput is co ntrolled by the bit combina tion of n selec tion lines. Th e decod er of Fig. 4 . 19 can functio n as a o ne-to-four-line dem ultiplexer when E is taken as a data inpu t line and A and B are ta ken as the selection input s. The single inp ut variable E has a pat h 10 all four outputs. but the inp ut information is directed 10 on ly one of the output lines. as specified by Ihe bi nary combina tio n of the two selectio n lines A and B. Th is feature can be verified from the tru th tab le of the circuit. For example , if the se-lection lines A B = 10, Oll1pUI llz will be the same as the input value E. while all other outputs are maintained at I. Because decod er and de multi plexer ope rations are obtained from the same circu it. a decod er with an enable input is refe rred to as a decoder-demultiplexer. Decod ers with enable inputs can be connec ted toge the r to form a larger dec oder ci rcu it. Figure 4.20 sho ws two j -ro-g-li ne dec oders with enable inputs connected to form a 4 -10-16line decoder. When w = O. the top decod er is enabled and the ot her is disabled . The botto m decod er outputs are all O's. and the top eight outpu ts ge nerate min terms 0000 to 011 1. When w = I , th e en abl e co nditions are reversed : The bottom decod er ou tputs generate mtnterms 1000 to 1111, while the outputs of the top decod er are all D's. Thi s example de monstrates the usefulness of enable inputs in decoders an d other co mbinationallogic co mponents. In genera l. e nable inputs are a co nve nient feature for interconnecting two or mo re standard co mpo nents for the purpose of combining them into a similar function with more inputs and outputs. ,. ' X8 decoder I-- Do 10 [J, E I r-, - 3 )(8 decoder _ I--f; I FIGURE 4 .20 4 x 16 decoder const ructed with two 3 x 8 decoders Section 4.9 Decoders 149 Combinational logic Implementation A decoder pro vides the 2" rrur uerms of II input variables . Each asserted output of the decoder is assoc iated with a uniq ue pattern of input b its. Si nce any Boolean fun ction can be ex prcs...ed in sum-of-rninterms form . a decoder that ge nerates the- rninterms o f the function. together with an external OR gate that fo rms their logical sum. provide .. a hard ware implementation of the function. In thi s wa y. any comb inatio nal ci rcuit with I I inputs and m outputs ca n be impleme nted wit h an II-l<l-2"-line decod er and m O R gates . T he procedu re for implem enting a combinatio nal ci rcuit by means of a decoder and O R gates requires that the Boolean functio n for the ci rc uit be- express ed a.. a sum of mint erm s. A decode-r is then chose n that genera tes all the mi nrerms of the input variable". Th e inputs to eac h O R gate are selec ted fro m the de coder ou tputs acco rdi ng to the list o f mint erm s o f eac h function. Th is procedu re will be illustrated by an example that imp leme nts a full-adder ci rcuit. Fro m the truth tab le of the full adder (see Table 4 .4). we o btain the functions for the comb inatio nal ci rcuit in sum-o f-minter ms form : S ex. y. a) = C(x. y. : ) = ~ (\, 2. 4 . 7 ) ~ ( ). 5 . 6. 7 ) S ince there are three input s and a total of eight min term.... we need a three-to-eig ht-line decoder. The impl ement at ion is shown in Fig. 4 .2 1. Th e- decod er generates the eight n untcrms for x. y. and z. T he O R gate for output S fo rms the log ical sum o f minterms I. 2. 4 . and 7. The O R gate for output C forms the logical sum o f mime rm s 3. 5. 6. and 7. A function with a long list of mintcrm s requ ires an O R gate- with a large num ber of inpu ts. A fu nct io n having a list of k. mintc rms can be expressed in it" compleme nted fo nn F' with 2" - k. mint erm s. If the number of min term s in the function is greater than 2"/2. then F' can be expresse d wi th fewer min rerm s. In such a case. it is adva ntageous to use a :"lO R gate to sum the min rcrm s o f F ' . Th e output of the l'\O R ga te compleme nts this sum and genera tes the normal output F. lf NAN D gate s are used for the decode-r. as in Fig. 4.19. then the external gales must be NAND gates instead of O R gates. Th is is beca use a two -level :'Il'AN D ga te ci rcuit implement s a sum-of-mi nrcrrns functio n .lOJ i.. equivalent to a two-le vel AN D-OR ci rc uit. y FIGURE 4 .21 Impl ementation of a fu ll ad der wi th a decod er 1SO 4 . 10 Chapt er 4 Combinational Logic ENCODERS An encoder is a digital circuit that performs the inverse opera tion of a decoder. An encoder has 2" (or fewer) input lines and" outpu t lines. The output lines. as an aggregate. generate the binary code corresponding 10 the input value. An example of an encoder is the octal-to-binary encoder whose truth table is given in Table 4.7. It has eight inputs (one for each of the octa l d igits) and three outputs that generate the corresponding binary number. It is assumed that only o ne input has a value of I at any given time. The encode r can be implemented with OR gates whose inputs are determined d irectly from the truth table. Ourput c is eq ual to I when the input octal digit is I. 3. 5. or 7. Output )" is I for octal digits 2. 3. 6. or 7. and output x is I for digits 4. 5. 6. or 7. These condition s can be expressed by the following Boolea n output functions: D j + D3 + D5 + D7 y = D1 + D3+ D6+ D7 z = .r = D4 + D5 + Do + D7 The encoder can be implememed with three OR gates. The encoder defined in Tab le 4.7 has the limitation that only o ne input can beactive at any given time. If two inputs are active simultaneously. the output prod uces an undefined combination. For example. if DJ and Db are I simultaneously. the output of the encoder will be 111 because all three outputs are equal 10 I. The output II I does not represent eithe r binary 3 or binary 6. To resolve this ambigui ty, encoder circuits must establish an input priority to en sure that only one input is encoded. If we establish a higher priority for inputs with higher subscript numbers, and if both lJ) and Do are 1 at the same time , the output will be 110 because D6 has higher priority than D.l. Another amb iguity in the oc tal-to-binary encode r is that an output with all O's is generated when all the inputs arc 0; but this output is the same as when Do is equal to I. The discrepancy can be resolved by providing one more ou tput to ind icate whether at least one input is equa l 10 I . Table 4 .7 Truth Table of an Oda/-to -Binory Encoder Outputs Inputs D. I 0 0 0 0 0 0 0 D, D, D, D. D, D. D, x y z 0 I 0 0 0 0 0 0 0 0 I 0 0 0 0 0 0 0 0 I 0 0 0 0 0 0 0 0 I 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 I 0 0 0 0 0 0 0 0 I 0 0 0 0 I I 1 1 0 0 I I 0 0 I I 0 I 0 I 0 I 0 I Sectio n 4.10 15 1 Encoders Table 4 .8 Truth Tobie of a Priority Encoder Inpu ts Out puts O. 0, 0, OJ 0 0 0 0 1 X X X 1 0 0 X X 1 0 0 0 0 X 1 , Y V X 0 0 X 0 0 1 1 0 1 1 1 1 1 1 Priority Encoder A priority encoder is an e ncode r circuit that includes the priori ty func tio n. Th e opera tion of the priority encod er is such that if two or more inputs are equa l to I at the same time. the input having the h ighest priority will take precede nce . T he truth tab le of a four-input priority enco der is given in Table 4.8. In add itio n to the two o utputs .r and y. the circuit has a third output desig nated by V: lh i ~ is a valid bit ind icator that is set to I when one or more inpu ts are eq ual to I. If a ll input s are 0 , there is no val id input and V is eq ual to O. The othe r two o utpu ts are not inspected when v eq uals 0 and are specified as don 't -care co nd itio ns. Note thut whereas X's in ou tput co lumns repre...cnt don ' t-care co nd itions , the X 's in the in put co lumns are usefu l for representing a trut h table in condensed fonn. Instead of listing all 16 rnint erms of four variables, the tru th tab le use s an X 10 represent either I o r O. Fu r example , XIOO rep resents the two mi nterm s 0 100 and 1100 . Acco rdi ng to Table 4.8, the higher the subscri pt num ber, the higher the priori ty of the input. Input D.~ has the hig hest prio rity. so , regardless of the val ues of the othe r inputs. whe n this D, II D, f "' D ~ + D 1 D' ~ FIGURE 4 .22 Map s for a p riority e ncode r 10 152 Chapter 4 Combinati onal l ogic 0, r -{» 0, . 0, I'" ~ '--\ "<, ~ FIGURE 4 .23 Po ur-inp ut priorit y encoder input is 1, the output for .ej- is I I (binary 3). ~ has the next priority level. The output is 10 if l.J..z = 1, provided that ~ = 0, regardless of the values of the other two lower priority inputs. The output for 0 1 is generated only if higher priority inputs are 0, and so on down the priority levels. The maps for simplifying outputs .r and)' are shown in Fig. 4.22. The minterms for the two function s are der ived from Table 4.8. Although the table has o nly five rows. when each X in a row is replaced first by Oand then by I , we obtain all 16 possible input co mbinations. For example. the fourth row in the table, with inputs XX 10. represent s the four minterm s 0010 ,01 10. 10 10. and 11 10. The simplified Boolean ex press ions for the priori ty encoder are obtained from the maps. The condition for o utput V is an OR function of all the input veriabies. The priority encoder is implemented in Fig. 4.23 acco rding to the following Boolean functions: x = D2 + lh y = 0 ) + D IDi V = Do 4.11 + D 1 + D 2 + D.l MULTIPLEXER S A multiplexer is a combinational circuit that selects binary information from one of many input lines and directs it to a single output line. The selection of a particular input line is controlled by a set of selection lines. Normally. there are 2n input lines and II selection lines whose bit combinations determine which input is selected. A two-to-one-line multiplexer connects one of two l -bit sources to a com mon destination, as shown in Fig. 4.24. The circuit has two data input lines. one output line. and one selection line S. When 5 = O. the upper AND gate is enabled and 10 has a path to the output. When S = I, the lower AND gate is enabled and 11 has a path to the output. The multiplexer acts like Sectio n 4.11 Multiplexers 153 I" I" 0 t, -----t--r- , Y M UX Y' t, 5 (allo@:icdiapam (b l Block d Iagra m FIGURE 4.24 Two-to -o ne-line muttlplexer an electronic swi tch tha t sch-ctx n ne of two sou rces . The block dia gram of a mult iplexer is someti mes depicte d by a wedge -shape d symbo l. as sho wn in Fig. 4.24(b). It sugges ts visually how a selec ted o ne of multiple data sources is d irected into a single destination. The multiplexer ill often labeled "M UX" in blOl:\I. diagrams . A fou r-to-one-li ne mult iplexer h. sho wn in Fig. 4.25. Each of the four Inputs. /n thro ugh 1.\ . is applied 10 o ne input or an AK D ga te. Selection lines S, and So are dccol.k-d 10 selec t a }' 5, 5" 5, 5.,- - - '-' 0 0 I 1 0 I 0 I y I, t, t, I, Ib ) Functton 1al:>l 0: FIGURE 4 .25 pour -to-one-line multipleller 154 Chapter 4 Combinational l ogic particula r AND gate . The outputs of the A ~ D gate" arc applied to a single OR gale that provides the one -line o utput The functio n table lists the input that is passed to the outpu t for each com binalion o f the binary selection values . To demonstrate the operation of the circuit. co nsider the case when 5 150 = 10 . The AXD gate associated with input h has 1\.\ 0 of its inputs eq ual to I and the third inpu t co nnected to 12. The other three AKD gates have at lea..t one input eq ual to O. which makes their outputs equal to O. The o utput of the OR gate is now eq ual to the value of h. providin g a path from the selected input to the output. A multiplexer is also called a delta selector, since it selects one of ma ny inputs and steers the binary informat ion to the output line. The AKD gates and inverters in the multiple xer resemble a decoder circuit. and indeed. they decode the selection inputlines. In general. a 2"-lo- l-line multiplexe r is constructed from an ,1-10-2" decode r by adding 2" input lines to it. one to each AKD gate. Tbe outputs of the AKD gates are applied to il .. inglc OR gate. Th e size of a multiple xer is specified by the number 2" of its data input line.. and the single output line. The II selection tines arc implied from the 2" data lines. As in decod ers. mult iplexe rs may have an enable input to control the operation of the unit. When the enable input is in the inactive suuc. the outputs are disabled. and when it is in the active "tate. the circu it funct ions as a normal multi plexer. Multiple xer circu its can he combined with com mon selection inputs to provide multiple-bit selection logic. As an illu-arntic n. a quadrup le z-to-l-line multiple xer is shown in Fig. ~ . 26 . The circuit has four multiplexers . each capable of selecting one of two input lines. Ou tput Yo can be selected to co me from either input Ao or input Bu. Similarly. output Y, may haw the value of A 1or 8,. and won. Input selection line S selec ts o ne of the lines in each of the four multi plexers. The ena ble input E must be acuve (i.e .• asse rted) for normal operat ion. Althoug h the circuit contains foor z-to-t -line multiplexers. we are more likely to view it a-s 3 circuit that selects one of two -l-bit setv of dat a lines. As shown in the function table. the unit is enabled when E = O. Then. if S = O. the four A input.. have a path to the four outputs. If. by contrast. 5 ""' I . the four B inputs are applied to the outpu ts. 1be outpu ts have 311 O's when E "" I. regard lclOs of the value of 5. Boo lean Function Implementation In Section 4.9. it was -bown that a decoder can be used to implement Boolean functions b)' em ploying external OR gates. An e xamination o f the logic diagram of a multiplexer reveals that it is esse ntially a decoder that includes the OR gale within the unit. Th e mintcrm v of a function are genera ted in ;. mul tiple xer by the circuit associated with thc selectio n inpu ts. The individ ual mint erm s can he selec ted by the data inputs. thereby providin g a meth od of implementing a Boolean function o f II variabl e" wit h a mult iplexer that has II selection inputs and 2n data inputs. ()11 ~ for each rninrerm . We will now show a more efficient method for implementing a Boolean function of II variables with a multiplexer that hits ,1 - 1 selection inputs. The first II - I variables of the function arc connec ted to the selection inputs of the multiple xer. The remaining single variable o f the function is used for the data inputs. If the single variable is denoted by c, eac h data input of the meltiplexer will be z. c', I. or O. To demonst rate this procedure. consider the Boolean function r t». y. ,) = ~ ( 1.2 . 6. 7 ) Section 4.1 1 Multiplexers l M~':;~ A, C\ l.22Y A, l !_",::,\ ) 155 l" " Y, I: :;/ r-, J: Y ;-. l U'Ui) r--: H, S - i f- :::J r-, cu (sefe £ (ena ble) v Y, ':/ f- :=J;;iJi; f- :=J/ if'!', £ S Output Y 1 X 0 1 all o-, 0 0 select A sdcci B Fun clion ta ble {>0v FIGURE 4 .26 Quadruple two-to -one -line mu ltipl e.er Th is fu nct ion of three variable s can be impleme nted with a fou r-to-one-line mult iplexer as shown in Fig. 4.27. The two variab les .r and )' are applied to the selection lines in that orde r; .r is connected to the 51 input and y to the So input. The values for the data input lines are determined from the truth tab le of the fu nction . When .rj- "" 00 . output F is equal 10 z beca use F "" 0 wben c = 0 and F = I whe n z = I. Th is requires that variable z be applied to data input O. The operation of the multiple xer is such that when .rj' = 00. data inpul 0 has a path to the output. and that makes F equal 10 z. In a similar fashion. we can determine the required input to data line s I. 2. and 3 from the value of F when xy = 01. 10. and II. respectively. Th is particular examp le shows all four possibilities that can be obtained for the data inputs. 156 Chapter 4 Combinationa l logic ~ .r y 0 0 0 0 0 0 , I , ,, , r u 0 I I II I I 0 I 0 0 II I II II I I II I I I , x I ML'X S, P "' z r - z' ' -II , " II o r 2 ,.-, J (a) T ruth table (b ) ~ lultip1e~e r implementatio n F1GUR£ 4 .27 Impleme nting a Boolean function with a m ultiplexer The general procedure for implementin g any Boolean function of n variables with a multiplcxcr with n - I selec tion inputs and 2"- 1 data Inputs follows from the previous example . To begin with, Boolean function is listed in a truth table. Then first II - I variables in the table are applied to the selection inputs ofthc multiplexer. For each combination of the selection variables. we evaluate the output as a function of the last variable. This function can be O. I. the variable. or the com plement of the variable. These values are then applied to the data inputs in the proper order. As a second exa mple. co nsider the implementation of the Boolean function F ( A. e. C. D ) ~ ~ ( 1.3. 4. I I. 12. 13. 14. 15) This function is impleme nted with a multipl exer with three selection inputs as shown in Fig. 4.28. Note that the first variuble A must be con nected to selection input S2 so that A. B. and C corres pond to selectio n inputs S2. SI< and So. respect ively. The values for the data inputs are determined from the truth table listed in the figure. The corres ponding data line number is determine d (rom the binary com hination of ARC. For exa mple. the table show s that when ABC = 101. F = D . so the input variable LJ is applied to data input 5. The binary constants oand I correspond 10 two fixed signal values. When integrated circuits are used. logic 0 corresponds 10signal ground and logic I is equ ivalent to the power signal. depe nding on the technology (c.g .. 5 volts). Three-St at e Gates A multiplexer can he constructed with three-slate gates-digital circ uits that exhibit three stares. Two of the slates are signals equivalent to logic I and logic 0 as in a co nventional gale. The third Mate is a llixh -impedtmce state in which (1) the logic behaves like an ope n circuit. which mean s thai the output appears to be disconnected. (2 ) the circ uit has no logic significa nce. and Section 4.11 A B C D F 0 0 0 0 0 0 0 I 0 I F= D 0 0 0 0 I I 0 I 0 I F= D 0 0 I I 0 0 0 I I 0 F e: D' U I I u 0 I I I U U F =O I I U U U U o 0 F =O I I 0 0 I I U U I I F =D I I I I 0 0 0 I I I 1' -' I I I I I I 0 I I I F =l I 0 M ult iple xers 157 8 x l MUX c - - - - -- - s, 8 A 51 52' D-~--_r- F o --1----:-.--13 FIGURE 4 .28 Implementing a four -input function w ith a multiplexer (3 ) the circuit connected to the output of the three-state gate is not affec ted by the inputs 10 the gate. Three-state gates may perform any converuicnallogic, such as AN D or NAN D. However. the one most commonly used is (he buffer gate. Th e graphic' symbol for a three-state buffer gate is shown in Fig. 4 .29. It is di stinguished from a normal buffer by a n in put co nt rolline e nter ing (he bonom of the sym bo l. Th e buffer has a normal inp ut. an output. and a control input that determines the state of the output. When the control inp ut is equa l to I, (he outp ut is enabled and the gate behaves like a conventional buffer. with the outp ut equal to the normal input. When the control input is O. the output is di sabled and the gate goes to a high-impedance state. regardless of the value in the normal input. The high -imped ance stale of a three-state gate provides a spec ial feat ure not available in other gates. Beca use of th is feature. a large number of three-state gate OUI puts ca n be connected with wires to for m a com mon line with out enda ngering loadi ng effec ts. Normal input A ------t:?---: ~ Co ntrol input C fiGURE 4 .29 Graphic symbol for a three-state buffer O utput Y = A if C = 1 High-Impedance if C = 0 158 Chapter 4 Combinational logic T he construction of mu ltiplexers with th ree-state buffers is dem onstrated in Fig. 4.30. Part (a ) of the figure she .... s the con structio n of a two- to-one-line mu ltiplexe r w ith 2 three -stat e buffers and an inverter; The two o utputs are conn ect ed together to fonn a single o utput line . (Note that this type of connect ion ca nnot be made w ith gates that do nor have th ree-..tate o utputs.) When the select in put i.. O. the upper buffe r is enab led by its contro l input and the lo wer buffe r is disabled . Output Y is then equal to input A. Whe n the select input is 1. the low er buffer is enabled and Y is eq ual to B. The construction of a fou r-to-o ne-line multiplexer is shown in Fig. 4.3O<b). The outputs of 4 three-stare buffers are connected toget her 10 form a single output line. The control inputs to the buffers determine whic h o ne of the four normal inputs 10 through 13 w ill be con nected to the output line. No more than o ne bu ffer may be in the active state at any given time. The connec ted buffe rs must be controlled so that only I three-sene buffer has acce ss to the output .....hile all other buffers are maintained in a high-impedance state. One way 10 ensure that no more than one control input is active at any given time is to use a decoder. as shown in the d iagram. When the e nable input of the decoder is O. all of its four outputs are 0 and the bus line is in a highimpedance state because all four buffers are disable d. When the enable input is active. one of the three -state buffers will be act ive. depending on the binary value in the select inputs of the decode r. Carefu l investigati on reveals tha t this circuit is another way of constru cting a fou r-toone- line multiplexer. I, r-, A ~ '1 - - -- - - - - - - -- -I:>---r--- y v B 0 r-, '1 - Select - 51> Enable - Select Sl EN 2 X4 decoder I l ----J 21-- ---' L-_..:r-3 (a) z-io-t.ltne mux FIGURE 4 .30 MUltipl ex ers wil h three-state gates (bl 4-lo-l-line mua y Section 4.12 4 .12 HOt Models of Combinational Circuits 1S9 HDl MODElS OF COMBINATIONAL CIRCUITS The Veril og hard ware descrip tion lan guage (HDL) wa s introd uced in Sec tio n 3. 10. In the cu rrent sect ion . we present mo re elaborate e xample.. and com pare alternative descri ption.. of combinational circuits in Verilog . Seque ntial ci rcuits are pre sented in the next chapter. As mentione d previou sly. the module is the basic b uild ing block for mod eling har dware with the Veri log HDL The logic of a modu le can be described in an y one ( Of a co mbination] o f the follow ing mode ling sty les: Gal e-level modeling using instantia tions o f predefin ed and use r-de fined primi tive gates. Dataflow modeling using cont inuous assignment statementv w ith the keyword a _...<; i ~ n . Behavioral mode ling using proced ural assignmem ..ratcrne nts with the keyword alw a ys. Ga te-level (structu ral] modeling describes a circu it by specifyi ng its gales and how they arc connected with each other. Dataflow modeling is used mostly fur describin g the Bool ean equation.. o f combinational logic. We ' ]] also consider here behavi oralmodeling that is used to describe com binational and sequential circuits at a higher level of abstraction. Th ere is one ot her mod d ing style. ca lled switch-le vel modeling It is so me times used in the simulation of MO S tra nsistor circuit mod els. but not in logic synthesis. \I,,'e co nsider "," w itch-level m odeling bricO)" in Section 10.10. Gate·Level Modeling G ate- level model ing wa.. introd uced in Se ctio n 3. 10 wit h a si mple e xam ple . In this type of represe ntation. a circuit is specified by its logic gates and their interconnections. Gate-le vel mod el ing pro vides a te xtual description of a scbemauc diagram. The ventog HDL includes 12 bas ic gates as predefined primitive ... Four of lhese primitive ga te.. are o f the three-state type . The othe r eight are the same as the one.. Ii..led in Sec tion 2.8. They are all decl ared with the towe n..ase keyw ords and. na nd . or . no r . " or. xecr. not. and b ur. Prim itives such as a nd are »-i npur pnrmuves. Th ey ca n have an y number of scalar inpu t.. (e.g.• a three-in put a nd pn muive). The buf and not primitives are u-oe tpu r primitives. A ..ingle input ca n d rive multi ple output lines distinguished by their idcnnficrs. The verifog lan gua ge incl udes a functio nal descriptio n o f ea ch type of ga te. too . The logic of each gate is based on a four-valued ..ystem, W hen the gates are sim ulated . the simula to r assi gns.one va lue to the o ut put of e ac h gate at any instant. In addition to the two logic value s of 0 and I. there arc two other value..: unknown and impedance , A n unkno wn val ue is de noted by x and a high imped ance by 1.. An unknown va lue is assigned duri ng si mulation wh en the logic value of a signal if. am biguo us- for in stance. if it can no t be det ermin ed wheth er its value is 0 o r I (e. g.• a flip -flop wit hou t a rese t co nd ition ). A high-imped ance co ndition occ urs at the o utput of th ree-..tate gate s th at arc no t e nabled o r if a wire is inad venently left unconn ect ed . The four-v alue d logic tru th table s for the a nd . o r . " or. and n ot prim itives are show n in Table 4 .9 . The tru th tab le for the o the r fou r gates is th e same. e xc..e pt that the o utputs are co mpleme nted . Not e that for the a nd gate. the outp ut is I only w hen both inputs are I and the output is 0 if any input is O. Otherw ise . if one input is x or t , the ";1<" 160 Chapter 4 Com binationa l l o gic Table 4 .9 Truth Table tor Predefined Primitive Gates and 0 1 0 0 1 0 1 , , 0 0 0 xur 0 0 1 ,, 0 0 , , , ,, , ,x x , 0 I I 0 , , , , , , , , , x '" 0 1 0 0 1 1 x x x 1 1 1 1 , not input x , x , , , ,1 ,1 output x 0 I x x I 0 , , , , , output is x. The o utp ut of the or gate is 0 if both inpu ts are O. is I if any input is I. and is x otherwise. When a primiti ve gate is listed in a mod ule. we say that it is instantiated in the module. In general. component instantiations are statements that reference lower level co mponents in the design. essentially creating uniq ue copies (or instances) of those components in the higher level module. Thu s. a module that uses a gate in its description is said to instantiate the gate. Think of instantiation as the HDL counterpart of placing and connecting parts o n a circuit board . We now present two examples of gate-level modeling. Both examples use identifiers having multiple bit widths. called I'eerors. The syntax specifying a vector includes within square brackets two numbers separated with a colon. The following Veri log statements specify two vectors: output [0: 3) 0 ; wi re [7: 0) SUM; The first statement declares an output vector D with four bits. 0 through 3. The seco nd declares a wire vector SUM with eight bits numbered 7 through O. (Note: The first (leftmost) numbe r (array index) listed is alway s the most significant bit of the vecror.) The individua l bits are specified within square brackets. so D[21 specifies bit 2 of D. It is also possible 10address parts (contiguous bits) of vectors. For example . SUM [ 2: 01 specifies the three least significant bits of vector SUM. HDL Examp le 4.1 shows the gate -level descri ption of a two-to-four-line decoder. (See Fig. 4. 19.) Th is decoder has two data inputs A and B and an enable input E. The four outputs arc specified with the vector D. The wire decla ration is for internal connections. Th ree not gates produce the complement of the inputs. and four nand gates provide the outputs for D. Remember that the output is always listed fi rst in the port list of a primitive , followed by the inputs. This example describes the decoder of Fig. 4. 19 and follows the procedures established in Section 3.10. Note that the keywords not and nand are written only once and do not have to be repeated for each gate. but commas must be inserted at the end of each of the gates in the series. except for the last statement. which must be termin ated with a semicolon. Section 4.12 HDl Model s of Co mbinational Circuits 161 HDL Exa mple ~ .I 1/Gate-level description of two-to-four-line decoder /I Refer to Fig, 4.19 with symbol E replaced by enable . for clarity. module decoder_2x4_gates (D, A. B, enable); output (a; 3] 0; Input A, 8 : Input enable; wi re A_not. 8_not, enable_not; not G1 (A_not, A), G2 (B_not, B). G3 (enable_not. enable): nand G4 (0 10], A_not, B_not. enable_not ), G5 (DI1], A_not, 8 , enable_not), G6 (D{2], A. 8_not. enable_not), G7 (D[3], A. B, enable_not): endmodule Two or more modu les can be combined to build a hierarchical de scription of a design. There are two basic types of de sign methodologies: top dow n and bottom up. In a lop -down design. the top -le vel block is defined and then the subblcc ks necessary 10 build the IOplevel block are identi fied . In a bottom-up design. the buildin g blocks are first ident ified and then combi ned to build the lop-level block. Take. for example. the binary adder of Fig. 4 .9. II ca n De conside red as a top -block component built wit h four full-adder block s. while eac h full adder is built with two half-adder blocks. In a top-do wn design. the four-bit adder is defined first, and then the two adders arc de scribed. In a bottom -up design. Ihe half adder is defined. then each full adder is const ructed. and then the four-bit adder is built from the fu ll adders. A ha ltom-up hierarch ical description of a four-bit adder is shown in HDL Example 4.2 . The half adder is defi ned by instantiating primitive gate s. The next modul e describes the full adder by instantia ting two half adders. The third mod ule desc ribes the four -bit adde r by instantia ting four full adders. Note that the first character of an ide ntifier ca nnot be a nu mber, but can be an underscore . so the mod ule na me _ebi tadder is valid . An alternative name that is mean ingful. but does not requ ire a leading underscore. is adder_4_bit . The lnstantiarion is done by using the name of the modul e thai is instantiated together with a new (or the same) set of port names. For example. the half adder HA I inside the full adde r modu le is instantiated with port s SI . CI . .r. and y. T his prod uces a hal f adder with outputs 51 and eland inputs x and v. 162 Chapter 4 Combinational logic HUt Exampl e 4.2 1/ Gate-level description of four-bit ripple carry adder /I Description of half adder (Fig. 4.5b) /I module half_adder (S, C, x. y); 1/ output S, C; 1/ Input x, II Verilog 1995 syntax module half_adder (output S, C, input x, y): II Instantiate primitive gates II Verilog 2001,2005 syntax v; xor (S, x, y): and (C, x, y); endmodule /I Description of full adder (Fig. 4.8 ) II module full_adder (S. C, x, y, z): /I output S, C; 1/ input x, y, z; /I Verilog 1995 syntax module full_adder (output S, C, Input x. y, z); wire S1, C1, C2; /I Verilog 2001, 2005 syntax /I Instantiate half adders half_adder HA1 (S1, C1, x, y): half_adder HA2 (S, C2, S1, z]: or G1 (C, C2, C1): endmodule /I Description of four-bit adder (Fig. 4.9) /I Verilog 1995 syntax II module ripple_cs rry_4_bicadder (Sum, C4, A, S, CO): /I output 13: OJ Sum: /I output C4; /I input (3: OJ A, B; /I Input CO; II Alternative Verilog 2001, 2005 syntax: module ripple_carry-4_bicadder ( output (3: OJSum, output C4, Input [3: 0] A, B, Input CO); wire C1, C2, C3; II Intermediate carries II Instantiate chain of full adders full_adder FAO(Sum[O], C1, A[O], B[OJ, CO), FAl (Sum[1], C2, A[l] , 8 [1), Cl ), FA2 (Sum[2], C3, A[2], 8[ 2], C2), FA3 (Sum[3], C4, A[3], 8[3), C3): endmodule Sect ion 4.12 HDL M od els of Com binat ional Circuits 163 H DL Ex amp le ·L! illu stra tes Verilo g 2001. 2005 synta x. which eliminate s extra typing o f ide ntifiers dec lari ng ihe mode (e .g.. ou tpu n. rype (!TRI. and declarauo n o f a vect or range te.g.• (3: OJ I. Th e first version of the standard ( 1995) use, separate stateme nts for these declarations. Note that modules can be instantiated rnested j with in other modules. but modu le dc-claralio ns cannot be nes ted : that is. a module de fin itio n Idc'claranonj cannot be placed within another mod ule dec laration. In other wonk a mod ule defi nitio n cannot be inse rted int o the text betw een the module and en d module keyword s o f another module. Th e ani) ' wa )' on e module defi nition can be incorporated into another mod ule i" by ins tantiating it. In..tantiat ing modules within o the r mod ules creat es a hierarchi ca l decomposition o f a design. A description o f a module is said 10 be a structural description if it is co mposed of instantia tions o f other module s. Note a lso that i nstance lIt1mes must be specified .... hen defined modules are in..tuntiated (such a.. FAO fo r the fi"'l full adde r in 1h1: third modu le ). bUI using a name is o ptiona l whe n insranriaung primitive gat es . Mod ule ripplf'_ctlrl)'_4_biU uldu is co mposed of insta ntia ted and Interconnect ed full add ers. each o f w hich is itself co mposed o f half adders and ..orne glue "Wk. The top level. or paren l modu le. of the design hierarchy h.the modu le rip pfe_Cllr1)·_4jliUldder . Four copies o f fi, /C atlder arc its child mod ules, e tc. CO is an inpu t of the cel l form ing the least significant bit of the chain. and C4 is the output of the cell formin g the most significant bit. Three ·State Gates As menti oned in Section "'.1 1. a three-state gate has a contro l inpu t tha i can place the gale into a high- impedance ..tale. The high-impedance stale is symbolized by z in Verilog . There are fou r type s o f three-..tate gales. as sho w n in Fig. ..1.31. The bulifl gate behaves like a normal buff er if cont rol ;; I. The o utput goes 10 a high-impeda nce ..tate 1 ....hen control ;; 0 "The hu linl ga te behaves in a similar [achion, exce pt that the h igh-impedance ..tate occ urs .....hen ("011/",1 "" I. The two nol gates operme in a similar mann er. except that the o utput is the co mp le me nt o f the input w hen the ga le is nOI in a high -im pedance state. The gates arc instantiat ed with the ..tate me nt eate name to utput. it/IIII', clmlm /l: i, --{>- o", CUrl lrol~ hurifl i'T °"' comr ol nolin flGUAl '-.31 Three-state gates " --{;;>----- 0 ", CUrl ln'l~ hufifO m --t»-- Ctlrll fOI -.J nohm 0 ", 164 Chapter 4 Combinat iona l Log ic The gate name ca n be that of any 1 of the a three-state gates. In simu lation. the ou tput ca n result in O. I. x. or z. Two exa mples of ga te instantiat ion are bufif1 (OUT, A. control); notifO (Y, B, e nable); In the first exa mple. input A is trans ferred to OUT whe n control = I. OUT goes to z whe n control = O. In the second example. ou tput Y = z whe n enable = I and out put Y = B' when enable = O. The outputs of th ree-state gates can be connected together to form a co mmon outp ut line. To identify s uch a connec tion. verilog HDL uses the keyword lri (fo r tristate) to ind icate that the output has mu ltiple drivers. As an exa mple. cons ider the two-to-one-line multiplexer with three-state gat es sho wn in Fig. 4.32. The HDL description mu st usc a t ri data type for the output: /I Mux with thre e-s tate output module mux_tri (m_o ul, A. B, select); outp ut m_out; input A, B, se lec t; trl - m_out: b ufif1 (m_o ul, A, select) ; bufifO(m_oul. B, select); e ndmod ule The 2 three- state buffers have the same output. In order to show that the y have a co mmon connection, it is necessary 10 declare m_our with the keyword t r io Keywords wire and t r i are examples of a set of data types called 1/1;'/.1". which re prese nt co nnections betwee n hard ware cle ments. In simulation. thei r va lue is detennined by a co ntinuous ass ignment stateme nt or by the device whose ou tput they represe nt. T he wor d 1/1;'1 is not a keyword. bu t represents a class of da ta types. such as wi re. wor, wa nd . t r iosup ply l , and su pplj u. T he wire decl aration is used most freque ntly. In fuct. if an identifier is used. but nOI declared. the langu age spec ifics that it will be interprete d (by defaul t) as a wire . Th e net nor model s the hardw are im plementation of the wired-O R co nfiguration (emitter-coupled logic ). Th e wand mod e ls the w ired-AND co nfig ura tio n (open-collector technology: see Fig. 3 .28 ). The nets s up ply ! and suppbu represent pow er supply and grou nd. respectively. They are used to hardwire an inp ut of a device to e ithe r I or O. select ....._ _ ---.J FIGURE 4 .32 Two -to -one -line mu ltiplexer with three-state buffers Section 4 .12 HDl Models of Combinational Circuits 165 Dataflow Modeling Dat aflow modeling.o f co mbinatio nal logic uses a number of operators that act o n operands to prod uce desired results. Verilog HDL provides aboUl30 different operators. Table 4.10 lists some of these operator s. their sy mbo ls. and the operation that they per form . (A co mplete list of operators supported by Vcrilog 20D1. 2005 can be foun d in Table 8. 1 in Sec tion 8.2.) II is neces!'o af)' to d istinguish betw een arithmetic and log ic op erations. so different symbo ls are used fo r each. Th e plus sy mbo l ( +) indicat es the arith metic oper atio n of addition : the bit wise log ic A ND ope ration (conj unction) uses the sy mbo l & . There are special symbols for bitw ise logica l O R (d isj unctio n ). ~OT. and XO R. Th e eq uality symbo l uses two eq uals signs (w ithout spaces between them ) to distinguish it from the equa ls sig n used with the assign stateme nt. Th e bitwise ope rators operate bit by bit o n a pa ir of vector ope rand s. Th e concat enation opera tor prov ides a mechanism for appending multip le ope rand s. For exa mple. two ope rand s with two bits each can be co nca tenated to form an o perand with four bits. The co nd itiona l operator acts like a multiplex er and is ex plained later. in conj unct ion with HDL E xampl e 4.6. Dataflow mod e ling uses co ntinuous assignm ent s and the keyword ass lgn. A cont inuou s assignment is a state ment that assigns a value to a net. The data type famil y net is used in vcrilo g HDL to rep rese nt a phy sical co nnec tio n bet ween ci rcu it ele me nts. A ne t is decl ared explic itly by a net keyw ord te.g.. " 'ire ) or by declaring an identifier 10 be an output port. T he logic value assoc iated with a net is determin ed by w hat the net is connected to. If the net is co nnected 10 an OUIPUI of a gate. the net is said 10 be drive n by the gate. and the log ic value of the net is determin ed by the logic value , of the inputs 10 the gale and the truth table of the gate, If the ident ifier o f a net is the left-hand side of a co ntinuous ass ig nment statement or a procedural ass ig nme nt sta te me nt. the va lue assi gned to the net is specified by an expression tha i uses operands and operator s. As an exa mp le. assumi ng that the variables were decl ared . a tWO-IOone-lin e mult iplexer with data input s A and B. select input S. and o utput Y is desc ribed wit h the co ntinuous assignment a ssig n Y "" (A & 5)I(B & - 5) : Table 4 .10 Some Veril og HDL Operar on Sym bol + Operation binary addition binary subtracnun & I > < bitwise AND bitwise OR bitwise XOR bitwise NOT equality greeter than lcss than {} concatenati on '! : conditional 166 Chapter 4 Combinational logic The relationship betwee n Y, A . B, and S is declared by the keyword a ssign. followed by the target output Yand an equals sign. Following the equa ls sign is a Boo lean expres sion. In hardware terms. this assignment would be equivalent to connecti ng the output of the OR (I) gate (0 wire Y. The next two exam ples show the datafl ow model s of the tw o previous gate-lev el exam ples . The dataflow description of a two-to-fo ur-line decoder is show n in HDL Example 4.3. The circuit is defined with four continuous assignment statements using Boo lean ex pressions. on e for each output. The dataflow description of the four-bit adder is shown in HDL Examp le 4.4. Tbe additi on logic is described by a single statement using the operators of addition and co ncatenatio n. Th e plus symbol ( +) speci fies the binary addition of the four bits of A with the four bits of B and the one bit of C_in. The targe t output is the concatenation of the output carry C_OIII and the four bits of Sum . Concatenation of ope rand s is expressed within braces and a comma separating the operands. Th us, fe _out, Slim} repre sents the five-bit result of the addition ope ration. HOI. E xa m ple 4.3 /I Dataflow description of two-to-fo ur-hne decoder II See Fig. 4.19. Note: The figure uses symbol E, but the /I Verilog model uses enable to clearly indicate functionality. module decoder_2x4_df ( [0: 3) 0, output Inp ut A,6, enable ); assign /I Verilog 2001 ,2005 syntax 0[0] = - (- A & - 6 & -enabre). 0(1) = - (-A & 6 & -enabte). 0(2) = - (A & - 6 & - enebre). 0( 3) = - (A & B & - eneble): endmo dule 1I0L Exam ple 4.4 /I Dataflow description of four-bit adder II Verilog 2001, 2005 module port syntax module binary_adde r ( output [3: 0) output inpu t 13: OJ Inp ut ); assign {C_out. Sum) endmo dule Sum, C_OUI, A. B. CJ n = A + B + C_in: Sect ion 4.12 HDL Models of Combinational Circuits 167 Dataflow HDL mode ls desc ribe co mbinational circuit s by their function rather than by the ir gate structure. To show how dataflow descriptions faci litate d igital design. consider the a-bit magnitude co mparator descri bed in HDL Example 4.5. Th e mod ule spec ifies two 4 -bit inputs A a nd B and three outputs. One output (A_'eEl is logic I if A is less than R. a seco nd output tA....ge B J is logic I if A is greater than B. and a th ird output (Ajq_B) is logic I if A is eq ual to B. Note that eq uality (identity ) i:-. symbo lized wit h two equals signs ( = = ) to distin guish the operat ion from that of the ass ignment operator ( = ). A Veri log H DL synthe sis co mpiler can accept this mod ule description as input. execute sy nthes is algori thms. and pro vide an output netllst and a sche matic of ,I circuit eq uivalent to the one in Fig. 4. 17, all without manual interve ntion ! 111>1. Exa mple ~,5 1/ Dataflow description of a four-bit comparator IN 200 1, 2005 syntax module mag_compare ( output AJ t_B, A_eq_B, A-9'-B, input [3: OJ A, B ): = ass ig n A_ICB (A < B); assi gn A_9t_B = (A > B); assi gn A_elLB (A B); endmo dule = == Th e next exa mple uses the co ndition al ope rator ( ? : ). This operator lakes three ope rands : cnndition ? true-expressio n .' [alse -expression: The condition is eva luated. If the result is logic 1. the true expression is evaluated. If the result is logic O. the false e xpression ls evaluated. The two co nditions together arc eq uivalent to an if-else condition. HDL Example 4 .6 describes a two-t o-one-li ne multiplexer using the conditional ope rator. Th e continuous assignment assi gn OUT = select ? A : B; specifies the co nd itio n that OUT = A if select = I . el se OUT = 8 if .1'('/ ('(' 1 = lilli , E xa mple .a,6 1/ Datanow description of two-to-one-lme multiplexer module mux_2x1_df(m_out. A, B. select); output rn_out; input A, B; Input select; assi g n m_o ut endmod ule =(select )? A : B; O. 168 Chapter 4 Combina tional Logic Beh avio ra l Modeling Oeh avioral modding H'J""C'nl.. digi ta l circuits at a fu nction al and alaori thmic level. It is used tnmtly to de scribe seq uential circuits, bu t can also be used to de scribe combinational circuits, Here, we give two !oimple combinational ci rcuit examples to introduce the ubject. Behavioral Il'lOlklina i.. presented in more detail in Secti on 5.6. aft er the Mudy of -.coqucntial circuit... Behavioral descrip tion..use the keywonJ al"I1)'!\. followed by an optionalevent con tro l ex pres..ion and a li..t o f procedural a....ignmcnt ..rarcmems. The event control exprel'llioo ..peci fies when lhc ..tatement.. will e xec ute. The target ou tpul of procedural a....ignment stateme nts rnust he of the ITa data type. Contrary 10 the "I ~ data t)'1'1('. whereby the target output o f an allsig nme m may he conunuoc..ly updated. a I"t"Rdata type rtta in!\' ih value until a new va lue i.. assigned, HDl Example " .7 ..bows the behavioral descripti on of a two-to-one-tine multiplexer. (Compare it whh 1101. Example " .6.l Si nce variable m _tlIII i.. a la'iet outpu t. it mu..t be declared a" I"t"J: da ta (in addition to the oulpul declaration ). The procedura l a, ..ignment statements inside the al" a) " bloc k. are executed every ti me there i.. a change in any of the variable Ii..ted after the @ symbol. ( Noee that the re: is no semicolon (:) at the end of the al"a)-1I stareme nt. ) In th i'. case. these vari ables ure the input variable.. A. 8 . and select. 11lC statements execute if A , 8 . or select changes va lue . Note that the ke yword or. in,lead of the bitwise j., u"iCd between variables. The cond itio nal ..retemenr Ir-t"I"iC' prolog k al OR operator vide s a decisiun based upon the value of the .f t'l t't "' input. The Ir statement can be written withQui the equality symbo l: -r, If (select)OUT • A: The statement im plie s that St'It'C1 is checked for 10i!1c I, IIUL Eumph' 4.7 II Behavioral doscription of two-tc>orlfMlne multlplellef modul. mux_21l1_beh (m_OUl A, B, select): o utp ut m_out: Input A, B, seJect ~g m_out . Iw.)', @(A or B or select) If (select - - 1)rn_0U1 - A: . 1,. m_out B: ::I . nd mod ul. HDl Example " .8 descr ibes the function of a four-to- one -line multiplexer. The lrlt'C' 1 input i, defined a, a two-bit \ ector, and outptJl )' is declared 10 have type rq:.1llc al,,-a) . !lIatcrnent. in this example. ha.. a seq uentia l blO(k enckN:tl between the "cyword.. (11 and rndcu"'4:. Tbe block i.. executa! whcnc ' ·er any or the inpu15 Ii!totcd after the @ )'lIIbtli ch anges in value . Tbe ('a\C' slate- ment j" a meluway CtW'llliliuoal branch etln~ Whenever in_O. in_I. in..1.inJ or wl«, dlan~. the case exprt~'ton (~/f'Ct) is evaluated and it.. value compa red. from lOp to bouorn. .....ith lhc values in lhc Ii" of stall,'rnenl' that follow. the so-ce lled C1l"it" items. 1bC' Malcmtnt a'stll:iated with Sect ion 4.12 HDt Models of Combinational Circuits 169 the first caw item that matches the case ex press ion is executed . In the absence of a match. no statement is exec uted. Since select is a two-h it number, it can be equa l to 00 . 0 1, 10, or I I . The ca se items have an implied priori ty becau se the list is evalua ted from top to bo ttom. Th e list is call ed a sensitivity list (Verilng 1001.1005) and is eq uivalent 10 the 1!\'1'1It COil ' trol express ion rverilog 1995 ) formed by "Oking'' the signals. HDL Example .a.S /I Behavioral description of four-to-one line multiplexer /I Verilog 2001, 2005 port syntax module mux_4x1_beh ( o utput re g m_out , Input in_O. in_1, i" _2 , 1" _3, Input [1: OJ select ); alw ays @ (in_O, iO_1 , in_2 , in_3, select) cas e (select) 2'bOO, m_out In_O: 2'b01: m_out In_1: 2'b10: m_ou l =in_2: 2'b11: m_out in_3: endcase endmodu le If Verilog 2001, 2005 syntax = = = Binary num bers in Ver ilog are speci fied and interpreted wi th the letter h preced ed by a prime . T he size of the numbe r is ....ri nc n first and then its value . Th us. 2' hOI speci fies a two bit bina ry num ber whose value is 01 . Numb ers are stored as a bit pa tter n in memo ry. but they can be re ferenced in decim al. oc tal. or he xadecimal form ats with the lene rs ' d . ' 0 , and ' h . re spec tively. If the ba se of the num ber is not specified. its interpretati on defau lts to deci mal, If the size of the number is not specified. the sys tem assumes that the size of the number is at least 32 bits: if a ho...t simulator ha.. . a target word tcn gth-c-say, M bits- the language will use that value 10 store un sized num bers. T he integer da ta type (keyw ord Integer) i... stored in a 32-bit representation. Th e undersco re (_1 may be inserted in a num ber to improve readabili ty o f the code (e.g .. 16 ' bOIOU 110_0 10 1_001 1). It has no other effect . Th e cas e cons truct has two import ant variat ions: cuse x and ca sea . Th e first will treat as don 't -car es any bits of the ca se ex pressio n or the case ite m that ha ve log ic va lue x or z. T he easez co nstruct treat s as d on't-cares only the logic value z. for the purpo se of detecting a match between the ca se ex press io n and a case item . If the list of ca se items does not include a ll possible hit patte rns of the ce se e xpression. no match can be detected . Unlisted cas e item s. i.e .• bit patterns that are not ex plicit ly decoded can be trea ted by using the d efau lt keyword as the , last item in the list o f cas e ite ms. Th e as...ocia ted suuernem will execu te when no othe r match is fo und. T his fe ature is use ful. for e xampl e . when there are more possible stale codes in a seque ntial mach ine than are actua lly used . Having a d efault case item lets the de signe r map all of the un used sta tes 10 a de sired ne xt stale without having to elabo rate eac h individual state. rathe r tha n allo wing the synthes is 1001 10 arbitraril y as...ign the ne xt slate. 170 Chapter 4 Combinational Log ic The exernptes of bcbaviora l de~ription ~ of combinational circuits shown bere are simple ones. Behavioral modeling und procedural assignmenl ..retcmem s require knowledge of seque ntial circuits and an: covered in more detail in Section 5.6, Wri ti ng a SImple Test Bench A tot bench i.. an 110 1.program used (or describing and applying a stimulus to an IIDL model of a circuit in order 10 h.~ it and observe its response during simulation. T~ benches can be quite: complex and lengthy and may lake longrr 10 develop lhan the des ign that j, tested. The results of a te..t are only a~ good as the: test bench thai is used to teMa circuit. Cart must be taken to write stimuli lhat will te!Ol II circuit thoroughly, exercising all of the operating Ieatures thai are specified. However. the te..t benches con~ idemJ here an: relatively simple, since the: circuit\ we want to re..1 implement only combinauonal logic. The examples are presented to dcmon\U'Ble some ba...tc features of HDL stimulus modules. Chap(cr 8 considers tese bcnc~ in greater depth. In eddiu on to empillying the 11I"a)" sraremem, te..t benches U\C' the Initial stete mcm ro pr0vide a stimulus to lhe circuit being l~lc:d . We use the term "al" a)', uetemem" 10o!loCly. Actually. a ht a )"s is a Verllog language con..truct spccif)'ing now the as\OCi.ued statement is to execute (subject to the event control expression). TIle al" 8)"s state ment executes repeatedly in a loop. The Inllh.1 statement executes only once. starting from simulation time O. and may connn ue with any operations that are delayed by a gi\'C~ n number of time units. ItS specifled by the symbol'. For c ..ample. conside r the Initial block Initia l be gin A - O; B - O; ' 10 "' - 1; '20 A - 0;B - 1: ond The block ill enclosed betwee n the: keywords begi n and end . At time O. A. and B are set to O. Ten time units later. A is chanSed to l . jwenty lime unil\ after that (al , . 30) A. i..changed 10 oand B 10 I . Inpub sr....xified by a three-bit troth table can be generated with the Inlli..1block: Initia l tMtgln O . 3"bOOO: re pea t (7) 11I10 0 .0 + 3'bOO1 ; ond When the: simulator runs. the three-bit vector 0 ilro initialiled to 000 li t time - O. The keyword repeat specifics a looping statement: 0 i5 Incremented by I seven limes. once every 10 lime units. The re..ult is a M'qUCnce of binary numbers from 000 to III . A stimulU1. module has the following form: module test_module_name; 1/ Declare loca l reg a nd wire idenbfiert. /I Instantiate !he des;gn module under teet. II Specify 8 stopwatCh. uslng $finlSh to terminale lhe simulatIOn. Section 4.12 HOl Models of Combinational Circuit s 171 /I Generate stimulus, using Initial and alw ays statements. /I Display the output response (text or graphics (or both )). endmodule A test modul e is w r itten like any other modu le. but it typically has no inputs or outputs. The signals that are applied as inputs to the design mod ule for simulation are declared in thc stimulus module as local reg data type. The outputs of the des ign module that are displayed for testing are declared in the stimulus modu le as local wire data type . The module under test is then instantiated. using the local identifiers in its port list. Figure 4.33 clarifies this relationship. The stimulus mod ule gene rates inputs for the design module by declari ng local identifiers t...A and C B as reg type and checks the output of the design unit with the wire identifier The local ide ntifiers are then used to instantiate the design modu le being tested. The simulator associates the (actual ) local identifiers within the test bench.t...A , and ,-CO with the formal identifi ers of the module (A , B, C). The association shown here is based on position in the port list, which is adequate for the examples that we will consider. The reader should note, however, that Veri log pro vides a mo re flexible name association mechanism for co nnecting ports in larger circuits. The response to the stimulus generated by the inilia l and a lways blocks will appear in text format as standard output and as waveform s (liming diagrams) in simulators having grap hical output capability. Numerical outputs are displayed by using Verilog system 'asks. These are builtin system functions thai are recognized by keywords that begin with thc symbol S. Some of the system tasks that are useful for d isplay are ,_c. ,_B. Sd lsplay-c-display a one-time value of variables or strings with an end -of-line return. Swrile-same as Sdi splay . but without going to next line. $monitor-display variables whenever a value changes during a simulation run, $Iime-di splay the simulation time, $finish-tcnni nate the simulation. m:i~l:~'~:~.t: ;~~~(~ ..j ~ (<;:; panl~~i-t=~', FIGURE 4 .3 3 Interaclion between stimulus and design modules 172 Chapter 4 Combinationa l loglc The syn tax for $d islJlay , $write , and $mo n ltor is ofthe fonn Task -name (forma t specification, argumem list }: T he formal specification uses the symbol % to spec ify the radi x of the num ber s tha t are displayed and may have a string enclos ed in quotes C). Th e base may be bin ary. deci mal. hexa decim al. or octal. idcntjfled with the sym bols %b. Ckd. %h. and %'0. respectively (q. B. 'l' O. q. H. an d %0 are valid too). For exa mple, the statement Sd ispla y f'%d %b %b- , C, A, B): speci fies the d isp lay of C in decim al and of A and B in bi nary. No te that there are no commas in the former speci fication. that the format specific ation and argu ment list ar e separated by a comma . and that the argume nt Jist has commas betw een the variables. An example that specifies a string enclo sed in quotes ma y look like the statement $di s play ('"time = %OdA '" %b B = %b-, Stime, A, B); and will produc e the display time =3 A = 10 B =1 where (tim e = ). (A = ), and (B =0 ) are part of the stri ng to be displayed . The format spec tflers /lOd. 'kb. and 'k b specify the base for Stl me . A. and B. respecti vely. In di splaying time values. it is better to use the form at %Od instead of %d. Th is provide s a display of the significa nt digits without the lead ing spaces that %d will incl ude. (%d will display abou t 10 leading spaces because time is calculated as a 32· bil num ber.) A n exa mple of a stimulus module is shown in HDl Example 4.9. The ci rcui t to be tested j., the two-to -one-line multiplexer described in Example 4.6 . The module Ullu:c_2.t l _df has no ports. The inputs for the mux are dec lared with a reg keyword and the outpu ts .... ith 3 w ire keyword . The mux is instantiated with the local va riab les. The initial block speci fies a sequence of binary values to be applied during the simu lation. The ou tput respon se is checked with the $mo n itor sys tem task. Every time a variable in its argument chan ges value. the simulato r displays the inputs, output. and time. The result o f the simu lation is lis ted under the simulation log in the example. It shows that In_out = A when select = I and In_ OW = B when setect » O.vcnfying the operatio n of the mu ltipl exer. MDL Example 4.9 1/Test ben ch with stim ulus for mux_2x1_df module cmux_2x l _df; wire l_mux_ou l: reg I_A. t_8 : reg I_select; param eter stop_lime = 50; mux_2x1_df M1 (l_mux_out. t_A, I_B. t_select); II Instantiation of Circuit to be tested Section 4.12 HDL Models of Combinational Circuits 173 Initi al # stop_time Sfinish ; init ial begin I_select = 1; I_A = 0; I_B = 1; #10 t_A = 1; I_B = 0; #10 I_select = 0; # 10 I_A'" 0; 1_8 " 1: end 1/ Stimulus generator Initial beg in 1/ Respon se monitor II Sdlsplay time Select A B m_out" ); 1/ Smon lto r (Stl me.. - %b %b %b %b~ , I_select, I_A, I_B. t_rn_out); Smon itor ("time = ~, Stime .. "select = %b A = %b B = %b OUT = %b~ , I_select, C A. C 8 . Cmu x_ouI); end end module r 1/ Dataftow description of two-to-o ne-fine multiplexer 1/ from Example 4.6 module mux_2x1_df (m_out, A. B. select); o utp ut m_oul; inp ut A. B: In put select; ass ig n rn_out = (select)? A : B; end mod ule Simulation log: select = 1 A =O B seled= 1 A= 1 B seIed:=O A = 1 B select = OA = 0 B = 1 OUT = OOUr =o o u r = 1 our o = time = 0 - 1 time ·1 0 = Obme = 20 = 1 time 30 = Logic simula tio n is a fa'>t. accura te method of ana lyzing co mbinational circ uits to veri fy that they operate prope rly. There are tw o types of verification: functional and timing. lnfulIctionaf verification. we study the circ uit logical operat ion indepe nde ntly of timin g considera tio ns. Th is can be done by deriving the trut h table of the combinational ci rc uit. In timi ng verific ation. we study the ci rcuit's operation by including the effec t of de lays through the gates . Thi s can be don e by obse rving the waveforms at the outputs of the ga tes whe n the y respond to a given input. An examp le of a circuit with gate de lays was presen ted in Sectio n 3.10 in HDL Exa mp le 3.3. We next show an HOI.. example that prod uce s the tru th ta ble of a co mbinatio nal ci rcuit A $monito r system task d isplays the ou tput caused by the given stim ulus. A co mmented atrerna rive sta tement having a Sdlspla y task woul d create a heade r that co uld be used with a mo nitor state me nt to eliminate the re petitio n of names on each line of output. Th e analysis of com binational circ uits was covered in Section 4.3. A m ultile vel circuit of a full adde r .....a.. analyzed . and its truth table was derived by inspection. The gate-level descri ption of this circuit is sho w n in HDL Example 4.10. The ci rcuit has three inputs, two outputs. and 174 Chapter 4 Combinational logic nin(' gate~. The tJc"crircion of the circui t foll ow~ lhe interconrections between the gate' accord ing 10 the scbemanc diagram of f ig, 4.2. The stimulus for the circuit is listed in the sec ond module , The i " pu l ~ for ~ i mu lat i ng the circuit are specified with a three-bit R1t vector D. D/l / is eq uivalent 10 input A. V/ / Ito input B. and D/O/lo input C. The OIJtpulS of the circui t F. and F;: art dec lared a~ " lIT. The complement o f 1'2 i~ named f "2_b to illustrate a common induMry precnce for designati ng lhe complement o f a sjgnal ( i n~tC'ad of appending _n QI) . This procedure follow s the -reps outlined in Fig. 4.33. 'The repea t loop pro·videsthe seven binary numbers after £XX) for the truth table. Tbe mull of lhe simulation [tencrat~ the OUlpol truth lable dh.played with the e xample. The truth table 1i ~led shows that the circuit i, a full adde r. II Dt f:ll.i1 m pl~ ,u o II GaI&4evel deSCl'iptiOn of Circuit or Fig. 4.2 modul. CirCuit_otFig_4_2 (A. B. C. F1, F2); In put A. e. C: output F1, F2; wi,.. T1, T2. T3, F2_b, E1, E2, E3 ; or g l (n , A. e , C); a nd g2 (12 . A. B. C); a nd g3 (E1. A. B); .n. a nd or not a nd g4 (f2, A, C): g5 (E3. B. C); g6 (F2, f t . f2 , f3): g7 (F2_b. F2); g8 (T3. n , F2_b ); ... g9 (F1, T2. T3): end modul. II Stimu lus to analyze the circu it modul . tes t_CirCuit; .... 12'0) 0 : wlr. F1. F2; C'cuil_O'_F1IL'_2 "'] 4_32 (0[2),0(1).0(0). Fl , F2): Initial be gin 0 - 3'bOOO: .nr..pe at (7) #10 0 - D. 1'b 1: Initial $monlto r r ABC - %b F1 - %b F2 - %b -, D, F1. F2): e nd modu" SimulatiOn log: ABC - 000 F1 - 0 F2 - 0 ABC - 00 1 F1 - 1 F2 - 0 ABC - 0 10 F1 - 1 F2 - 0 ABC - 011 F l - O F2 - 1 ABC - 100 F1 - 1 F2 " 0 ABC - 101 F1 - 0 F2 - 1 ABC - 110 F1 - 0 F2 - 1 ABC - 111 F1 -1 F2 - 1 Problems 175 PROBLEMS Answers to probl ems marked with · appear al lhc end o f the book. Where appro priate. a log ic design and its related HDl mode ling problem are cross refere nced . 4 .1 Con sider the ccm binauonal circui ts shown in Fig. N .I (IfDl - o;ee Probl em .. ...9). A - - r - - - -- - ----f--..., 8 -~+--1'>~1, c --t-f--'---L L-=L>--F' AGURE P4.1 (a )· Deri ve the Boolean e xprr.l>sioOl' for T t throu gh T•. Evaluate the outputs F I and F211-\a function of the four inputs . (b) Liil the tru th table with 16 bi.nary oombinat.ion!l.of the four input v ariab~ . 1hen liM the binary \·a.lues for T 1 throop' T. and OUTputs F 1 and F 2 in !he tab le. (c) Plot the Boo lean outpul (unct ions obt ained in pan (b! on maps, and ~how thai the sim plified Boolean eXpR ssioo s are equi valent to the ones obtained in pan (al. 4 .2- Obtain the simplified Booleanexpresslcns for oorpets F and G in rerms o f the input variables in the c ircu it of Fig. N .2. "v 8 C -J D J , r J F 1 G I ')- 1 FIGURE '4.2 4 .3 For the circuil sbown in Fig. 4.26 (Section 4.11). (a) Write the Boo lean funcnoes (or lhe (ou r ou tputs in term s o f the inpu l variabl es . (b ,· U the circuit is listed in II truth table . how many ro ws and columns wou ld lhe ~ be in the table? 176 Chapter 4 Combinational logic 4 .4 De~iin 4 ct.Jmbin.altooaJ circuit with tnree input~ and onc output. Ca) Tbe output i~ I wben lhe binary value of the input ~ i ~ Icn than .l lhc output i' OOlhefy,i'loC. Cb) Tbe output i~ I when the binary .... Iue of the inpub i~ an odd number. 4 .5 l:Jnii n . rombin.alionaJ circuit with three input!.. A . y. and :. and tbree outpurs. A. 8 . and C. "'11m the binary input i' O. 1. 2. or 3. the binary output i.. two , K. ler than the input. When the binary input i.. 4 . S. 6. or 7. the binary output i~ uuee len lhan lhe input. 4 .6 A majority circuit i,. romb in.tKJRlIcircuit wbose output i~ cqual to I if the Input variah~ have than 0',_The outpul h OOlhcrw i'IC. Cal· Oni, n . tIft,: ·inpul majority circuit by findin, the circuiu truth table. BooleanC(jU&tiort.and a lOiic di. Sram. eM wrue and vcrify . VcrilOl daanow mudd of the circuit. II'IlJn: I '~ 4 .7 Oni, n 11Io."tXllbinalional cin.'1Iit that COIn-crt, a four·bit Gray rode 4Table 1-6. to . rour·bil bina· numtlt"r. Ca)- Implemenl the circuil wilh exclu..ivc-oR ' lI IC". cbl V~i nlt . Cll...:' ..catemcnt. .....'rite and ..-crify a Vcrilo, model of the circuit. I'}' 4.• - De..i, n . ..'OoJc convener that C'Olwert,. dc<imal J iiit from the 8. 4. - 2. - 1 rode to BCD ( I « Tablc 4 .9 I .~ J . (HDl - see ProblcmUO.) i,. An ABCD.to-'IoC\ Cn-'IoCln)Cnt d«odcr combinational circuit thaI convert, a dc<imal dilit in BCD to an ilppror riatc rolk (or the 'Clcc1ion o( loCllmcnh in an indicalor uiON to ditoplay the cecimal digit in a fantiliar form. The K vcn outpul' of lhe tb.'OoJcr (a. b. c, J. ,.f, gl select the ClJI'. K"pondin, 'o(',mc-ms in the di..pl. y. I I ~w n in FI, . P4.9(a). The numeric di, play cbosen to KpKloCnt the d«irrud di,it is ,,"-,wn in Fi,. P4.9tb). U, in. a truth taMe and KunaUllh map". de"In the BCD- to- ~vcn· !lC8 mcnt ~Jdcr. u~in, a minimum numbcrof l ate'. The s.i.. invalid corabiru.tion....hould r<'!>U1t in a blank di..play. (IIDt.-...cc Problem 4.51.' • (al SelUl'lCnl ~ltna t i " n FIGURE ' 4 .9 4 .1 D-' Oni,n a four·bil ..·ombirulional circuil 2', rom plemenlcr. (The outpullcncrate, the 2\ complement of the inpul binary number., Show that the circuit can be ron1oU\K1Cd ......hh el c!u\ h'c-OR 1. lc, . Can you predict .... rn.t the output (unction.. are f(1I" a five-bu 2', rom plcmcnlt'r? 4 .11 V,i nl four half-aJdcn (HDL- ICC Problem -'.521. (a) De..i", . four-bit rom btn.:llional circuit irJl.:n:mcntcr (a circuit tb.1t Mkb 110 . four·bit bina· I'}' numl:lcr). (bl Or, i,n a four-bit rom binali(JRlI circuit dccKmcntcr 'a cirro il that wbtrac1 ~ I from a fourbit binary numberl. 4 .12 (a) De..i,n . t1a lr· ~ubU1",:lor circuit .....'ith i npuh .~ lind y and OUlput~ Oil / . nd 8_ . The circuit \Ubtra~:b t~ bit, x - ). and plill,." n the difference in DiIJ and the borrow in B_ . Problems 177 (b)· Design a full-subuactor circuit with three inputs. x. y. B/~ . and two outputs Diffand BOlI / . The circuit subtracts x - ). - B,~ , where Bm is the input borrow. 8 ",,/ is the output borrow. and Diff is the difference. 4 .13" Tbe adder-subtracter circuit of Fig. " .13 has the following values for mode input M and data inputs A and B: (0) (b) (0) (d) (0) M A 0 0 I 1 I 01 11 1000 1100 0 101 0000 B 0 110 100 1 1000 10 10 000 1 In each case. determine the values of the four SUMoutputs. the carry C. and overflow V. (HDLsee Problems 4.37 and 4.40.) 4 .14" Assume thatl he ell.c1usive-OR gate bas a propagation delay of IOns and that the A.IIJDorO R gates have a propagation delay of 5 ns. What is the total propagation delay time in the four-bit adder of Fig. ...12? 4 .15 Derive the two-level Booleanexpression for the output carry Col shown in the Jookahead carrygenerator of Fig. 4.12. 4 .16 Deline the carry propagate and carry generate as p; "'A / + B/ 0 / - A,B; respectively. Show thai the output carry and output sum of a full adder becomes C /+ I Sj = (C/ O;' + P/ )' =: ( P,G;,) $ C/ The logic diagram of the first stage of a four-bit parallel adder as implemented in Ie type 74283 is shown in Fig. P-I.J6. ldemify the P/ and 0 ;' terminals and show that the circuit implements a full adder. c, c,----f)_--~--[>O_-...J FIGURE P4 .16 First stage of a parallel adder 178 Chapter 4 Combinational logic 4.17 Show thilt the output c;any in a fuJl ·ltddct c;irwilnn be u~ In the AND-OR·ISVERT form C/. G; + P,C, • (G/ P,' + e r'C/ )' 1 • IC Iype 701 182 JSIl loo.. , htlltJ c;AIT)' ' C'MrllIOf dn.-uil lhal BC'nC'f8IC'1 tht c;atrin wjthAro.'O·OR·IN· VERT IAOI) '1I 1('~ 1'C'C' Section ) ·8.1'tbc cin:uit ,\\U!TK'SIMlltIe inpul lmTIinal!o hau' tnt compkmenh nf the (ts.lhe P:•. • nd of C•. Derive lhe: Book an functions fOf the loubhe:1lJcanin C z• C). and C~ in thi.IC. lHi",: Use the: tquati un ' MI~t i fution rnetbod to cerive the ~arriel in rerms of C,-) 4 .1S· ~i,n 1I comt'lin;UKJnlI circuu that , ennal('llo the: 9's compk!TK'nt of a BCD diSil. tII OL - 'C'C' Pruhk m 01 .501.) 4 .19 ConslfUl:1 1 BCD .kkkr-lubtnM:tor cucuu. U~ tt'lC' aCI> Idder or Fis . 4.14 and the II', comptementer of Problem 01 ,II'. UlIC blocL diairams for the: compooenu . (HOL - !ICC Problem 4.55.1 4.20 A bilW)' multiph" r multipliC'$ 1"," 0 un\ii ned four-bit numben. tl) Usin, Ar-;D ~ ate\ and bil1lll)' Id&en (lICC Fia. 01 ,16/. de·dsn lhe cin:uil. lb) Wrile and \('tlf)' II VcrilOJ dataflo..... mo,Jcl of the circuu , 4 .21 ".U· De\ i, n a cumbin;lt ional cin."Uil thai comparn two foor·bil numbC'n Iochcc L if the)' are el.jual. 'The cin:uil.I"lUlput i!o (" Iual to I if the: two nembers are C'qual and 0 otherwise. De\iin an ('1I\.'ns·3·tlJobif\MY d«OdCf u\ ;n, the unu'oCd L:ombinationl of the code condilions. (f UJl. - lICC Pnlhll.'m 4.4 2.) a~ do,fl -('af(' 4 .23 Dnllr lhe: ll.Jlllc dl.ll fI m of . t.....o-Io·four· line dI.'\:OOCl' U, inl'.) NOR ' III~ 0111)'. and(b) NASD 'lit" onl)'. hlL:llkIc an ('nable input. 4 .2.4 Oni,n a BCD-to-&cimal de\."tJlkrU\inl the: unused ~'Offibinal iOll' of the: BCD CtJlka, do."IIl·I-('af(' CtJlldilions. (HOt - see Problem ·1.60.) 4 .2.5 Ct"lll\ttul."1 a 5-lo-JI·line de\."twJer with foor J ·lo-8-line de\."tJlkn with enabk and . 2·hl-l-1i1l(' dr· rodrr. Use bkd Jiapam, for lhe Ctlmponrnb. 4- 26 COII'>lruo.·t . 4·to- !(l.line de\."tJdcr with five 2.. 0-4·line <krodcn wilh enabk. 4 .27 A cOllIt>inatiollal d n:uil i\ ' pI."'ifiC'd by the folluwini three Boole;m fur",..ti("IIl': F,(,.4 .B. e) . ! (J .5.6) F: (,.4 . H. C) . I {I.oI) F)(,.4 .B. e) . ! (2. 3. 5.6. 7) Impk mcnt the ('in:uil wilh I ~wJer consttuell.'d wilh NAND , ales (similar to Fi, . 01.191 and NAND or AND ~ .lln ~'UflI'II.'\.'taI lu the drxudI.'f outplllJo. U!o(' '' t*xk diagram for the de\."tlder. Mini mize the: numhel of inpub in the enerna t gaIn. 4 .28 U\ini a d«odt'1' ~ nd C'llemaJ ,ale\. dc!.iln the Ct'llI"lbihOlli{lnal cil'C\lil dl.'fi nN by the folk"","in. Boolean fun<;1KJ!l\ : (a l f l • f: · .I ') " : ' + t: » ....y.t. .. Ib) r, » tl" 1": • .I t. .f)" t.' + .1' .\' of. .1,\' t) t. ) "t. ' ....t ) ·· f ) . (.f' -+ ).)t. + .,.t.' ueee Problems 179 4 .29'" Desig n a four-input prio rity e ncode r with inputs as in Table 4.8. but with input Do ha ying the highe st priori ty and input D3 the lo west prio rity. ( H DL-~e Problem 4.5 7.) 4 .30 Spec ify ihe truth tab le of an octa l-to-binary priorit y e ncoder, Provide an output V to ind icate that at least o ne of the inputs is present. The input with the highest subscript numbe r has the highest prio rity. What will be me value of the fo ur outputs if inputs Dl and Dt> are I at the same time? 4.n 4 .32 Con struc t a 16 X I multiplexer with two 8 X I and o ne 2 X I multiplexers. Use block diagrams. Implemen t the following Boolean functio n with a mulnplexer (HDL-see Prob lem 4.46) : F(A . B. C. D ) • ~ (O. 2. 5. 7. 11. 14) (b) F( A. B. C. D ) - n (3. 8. 12) (0 ) 4 .33 Implement a full adder with two 4 x I muniplexers. 4 .J.4 An 8 X 1 mult iplexer has inputs A. B, and C con nected to the se lection inputs 52. 51' and 50- respectively. The data inputs 10 through 17 are as follows: 0; 13 "" /5 "" I; 10 '"" /J - 0 ; and 4. "" 0 ' , (b) / 1 - / 2 '" 0 ; 13 = 17 "" 1; 14 " Is - 0 : and 10 - It> "" D' . (a)· I I "" 11 '" / 7 '" Determi ne the Boolean funct ion thai the multiplexe r implemerus . 4 .35 Implement the follo wing Boole an functio n with a 4 X 1 mult iplexer and exte rnal gates. (a )· F (A . H, C, D ) = ! (I . 3. 4, 11. 12.1 3. 14, 15 ) (b) F (A , B, C. D ) '" I ( 1. 2, 4, 7, 8 , 9, 10. 11. 13, 15 ) Co nnect Inputs A and B to lhe selec tio n lines. The input requirements for the four data lines will bea function of variab les C and D. The se values are obtained by e xpressing F as a function of C and D fo r eac h of the four cases whe n AB = 00,0 1. 10 , and 11. The functio ns may have to be implemented with e xternal gales and with con nect ions to power and gro und. " .36 Write the HDL gate-leve l de scription of the priority encoder circui t sho wn in Fig . 4.23 . (HDL see Probl em 4.45 .) 4 .37 Wrile the HDL gale-leve l hierarchical description of a fou r-bit adde r-subtracte r for unsigned binary numbe rs. The ci rcuit is similar to Fig. 4 .13 bUI without output V. Yo u c an instantiat e the four-bit full adde r described in HDL Example 4.2. (See Problem s 4. 13 a nd 4.40.) 4 .38 Write the HDL dataflow description of a quadruple two-to -one-tine multiple xer with enab le. (See Fig. 4.26.) 4 ,39l' wnre an HDL behavioral description of a four-bit co mparator with a six- bit output ytS:O). Bit S of Y is for "eq uals:' bit 4 is for " not eq ual to," bit 3 is for "grea ter than," bit 2 is for "less than," bit I for "greater than or eq ual to: ' and bit 0 for "less than or eq ual to." 4 .40 Using the condi tional ope rator (1 .), write an HDL dataflow descri ption of a fo ur-bit adder subtractor of unsig ned numbers . (See Problems 4. 13 and 4.37.) 4 .41 Re peal Problem 4.40. using a cyclic behavio r; 4 .42 (a) Write an HDL gate-le vel descri ptio n of the BCD -to-e xcess-3 co nve rter ci rcuit sho wn in Fig. 4.4 (see Proble m 4.22). (b) Write a dataflo w dcS(.'ription of the BCD-tQ-CXCCliS-3 converter. using the Boo lean e x pres.~ ions listed in Fig. 4.3. (c f' Wnte an HOL behavkxal ~pUon 01. BCD-IO-C~...l COClwrlCT. (dl Write . ~ ttcacb to wmulate and tnlthe BCD-~.ceu. J COClvntn cirnlil in onkr 10 vnif)' the uuth 1.&. 00.:... aU ueee circuiu. 4.4 J EJ.plaln the f\l.lKCIOG ol lht circWt ipecifJCd by lhc fulkrtoin, HOI. dncrip6on: module Prob4_4 3 (A. B, S , E, Q ); Input 11 : 0) A. B; Input S. E. outPut 1' : 0) Q. --'sJn Q - E 7 lS 7 ... : Bl : 'W; endmodule 4 .44 Usin,. CI~ ..,Iemenl. wri te In HOL behavionl detai ptioa of I d ,ht·bit arithmetic.lot:ic unit (ALU). The circuit ha\ . 1.hlTe·bit wI«! bus fSfoO. d ,hl.bit input dltapath, fA(7: 0/ and 8{ 70' 0/, I n dJtIl ·bil OUl put dlllp"lh 1.]{7: Of). and perform the arillunettc and Iot:icll opera' tion , li\IN bdo lO ~ Opem~ 000 001 '1 - l ' bO '1 - " & B '1 - " 18 0 10 011 100 101 110 111 '1 -" ~ 8 '1 • " + 8 '1 • A - 8 '1 • " A '1 . I 'bff ....... end ....... '" 8ltWlM eJlClUaivoa Ol" ....... Add (AMume '" tlnd B ... unelgned l BdwlM~ 1( 4A5 Write an HOI. behavioral dncrip600 01.. four ·input priorit)' encoder. Ute I four-bit \ 'K'IOl" fOt" the 0 inpulJ and;al( ... . ,. block with jf-ebe w.a&mwnu. Auume thai: inpd O[ JI tau the hi~ nI priority bee PTobkm 4.36). 4 .46 Repeal ProNem .&J2. u\in, I d.atafiow dncription. 4A7 Repelt Prob&nn .&,37. u ina: a datafio,.. detcriptioo. 4.... De\-elop and modify the ri,hl:-bit ALU IpC'rifJCd in Problem ...,u to dw it tw lhtft·.case output Q)fIlJ'oBcd by aa mabIr inpvl. En_Write . In( bmdl and u mulale the cimlit. 4A9 For the circuit ""Nin in R, . P4.1. fa ) .... rile and vtnf) and verify a pce'~\'d HOL ItKllilI 01 the cirnlit (b) compare your multi .. ith 1holle obtained in Proble m 4.1. 4 ,50· Uwn, a c...e Q!CmmL developand simulate . beha vionl modd 01the 8-1-2-1 10BCD rode 001II' \·etttr dN:ribed 4 ,51 In Proble m 4.8. Dr\'dop and Wnulale a behavioral tnOLkl of tht ABC().to-wven-te ,IDent d«odn dncrtbed in Problem " .9. 4 ,52 U, in,. con linlltlUI .nip mm t. lkv dop and , imulalc. dataflow model of ,.) the four·bi t u'lcttmcntn delCribed in Probkm " .I I' a) lb) the four-hil d«mncntn delcriMd ill Problem " .1lib). 4 .5) [)e,.f'1op and umu1alc. wuetunJ model ot the decimai Uln w..1l in M, . 4.1". 4 .54 ~ f'kJp and Wnu" a bcNvicnJ model oIacircuit thai aeneraan !he 9', comp&ement oIa BCD dip ( I« Probkm " .18). References 4 .55 181 Con~tahierarchical mode l of the BCD adder-subuactor describedin Prob lem 4.19. 1lIc BCD adder and the 9 '5 complerrenteran to be described as behavioral mode ls in separate mod ules. and they arc to be imlanliated in a top-le vel mod ule. 4 .S6- Write . ccnueuous assig nme nt statemen t lhat compares IWO four-bu num bers toc beck if the ir bit panems match . Tbe uriable to which the assignment i' made i ~ to eq ual I if the numbers match and 0 otberwise. 4 .57- Develop and veri fy a be havioral mod e l o f the fo ur-bit p riorit y e ncod er described in Pro blem 4 .29 . 4 .58 Writ e a Veril og model o f a circ uit whose J2·b it ou tp ut is fo rmed by shi ft ing its 3 2-bit input three positions to the right and filli ng the vacated posi ti ons with the bit thai wa s in the MSB before the shift occurred (sh ift arith metic right ). 4 .59 Writ e . Veril og model of a ci rc uit who se 32 -m t out pu t is formed by sh iftin g its 32 · bi t inp ut three positions to the left and fi lling the vac ated positions with Os (s hift lo!!ical lcftl. 4 .60 Writ e a Veri log mod el o f a BCD -to-d eci mal decoder usi ng the un used co mbi natio ns o f the BCD code as don ' t-ca re co nd itio ns (see Pro blem 4 .24) . 4 .61 Us ing th e port sy nta x of rhe IEEE 1364 · 200 1 standa rd, writ e and verify a gat e-level mode l of the 4 -bit eve n parit y c hec ker sho wn in Fig . 3.36 . 4.62 Using co ntinuo us a.ssignme nt sraremems and the port synta x of the IEEE l3 ~- 200 1 sta ndar d. write and ve rify lin HDL model o f the 4 -bit even pari ty checke r shown in Fig. 3 .36 . REFERENCES 1. 2. J. 4. 5. 6. 7. BItAS KER. J. 199 7. A liorilog HDL Primu :. Allentown. PA: Star Galaxy Press. BKASKER, 1. 1998. \ rrilog HDL S)"1/theJis. A llentown. PA: Star Galaxy fun . cusrn. ~t. D. 1999 . MoJeling. S,.",hcsis. aNi Rapid ProlOf)ping Mo'j,h l rri fog HDL. Uppe r Sed dle River, SJ: Prennce Hall. DI£TMEYFJt. D. L. 1988. Lngie'Design of Digitol Systems, 3d ed , Boston : AII}"11 Bacon. GAJ5KJ. 0 , D. 199 7. Pn'nciples ol Digilol eNs ign. Uppe r Saddle River, NJ: Pre ntice HaU. HAYES. J. P. 1993. lnlroJucrion to Digital Logic Design. Readin g. MA; Addison -Wed ey. KATZ. R. H. 2(Xl5 . Contemporary Logic Design. Upper Sadd le River. NJ: Pea rso n Pre ntic e Hall . 8. 10. M","lo. M . M .. and C. R. KJME. 2000 . Logic and CompU/er Desifln Fundamemals, 2d ed. Upper Sadd le River. NJ: Prenuce Hal l. NELSON. V. P.. H. T. NAGI.E.. 1. D. IRWIN. and B. D. CARROL1.. 1995. Digital Logic Cirruil Analy . sis and Design. Englew ood Ctiffs, NJ: Pre ntice Hall. PALN tTKAR, S. 1996. Veri/og HDI.: A Guid e 10 Digital Design wid Synrhesis. Mou ntain View, 11 . 12. CA: SunSoft fu ss (a Prentice Hall title ). ROTH. C. H. 1992 . FundamentuLJ ol Logic Design. 4th cd. SI. Paul. MN: West. THOMAS. D. E.. and P. R. Moo RB Y. 1998. The \+rilog HarrJworPDescription UurgllQRe. 4th ed. 1 J. Bost on : Kluwer Academic Publ if>hcrs. WAKERLY. J. F. 2000. Digital eNs ign: Pri/fCip/e3 cutd Procrices. 3d cd. Uppe r Sadd le River. S J: 9. Prenuce Hall. Chapter 5 Synchro no us Seque nt ial Logic 5.1 INTRODUC TION 'The digital ci rcuits COll,idertd ihu s far have been combination al: thaI i... the OOlpub an= enurely tkpcndcfII on the current lnpcrs. Ahhou gh every digital ")' ~cm i'\ likely to have \011lC com binationa l circuit... fllO!r-l ,)'"Ic m .. encou ntered in practice al..o include Menge clcmcnh. which require that the '\Y!iolcm be described in term..of stqllC'miol loR;C. Fi~I. we reed 10 undc.....and what dislingui\ hc:'\ ~ ucnlial 5 .2 1ogk from combinationallogic. S EQU ENTI AL C I RC U IT S A block dia gram of a ,..:quentinl cirruit i.. sbow n in FiB. 5.1. It cons!..t of. cornbinauonal circuuro whkh M{KlI~C clement.. are COflna:1a.1 (0 fonnll feedback pam. 1llC !>wrag e ele me nts art device s capable of !>Ioo ng binary information. The binary information stOf't'lJ in Ihe"oC elerrems al any given time: de fine.. the state of thC' sequential cireuit al tha t time. The sequential circuit receives binary informa tion (rom external inpu t!> Ihut. logethcr with the present \lale of the I npun Ou/pun ( ·umt!\IUlI""".1 r-r- fiGURE. 5.1 Blo<k diagram of 182 '~q uen tlal OfCUl1 M C ID... '" clemeni. dttult - Section 5.2 Sequential Circuits 183 storage elements. determine the binary value of the outputs. These external inputs also determine the condition for changing the state in the storage elements. The block diagram demonstrares that the outputs in a sequential circuit are a function not only of the inputs, but also of the present state of the storage elements. The next state of the storage elements is also a function of exte rnal inputs and the present state. Thus, a sequential circ uit is specified by a time sequence of inputs, outputs, and internal states. In co ntrast. the outputs of combinational logic depend only on the present values of the input s. There are t....-c main types of sequential circuits, and their classification is a function of the timing of their signals. A synchronous sequential circuit is a system whose behavior can be defined from the knowledge of its signals at discrete instant s of time. The behavior of an (lS)" Ichronous sequential circuit depends upon the inp ut signets at any instant of time and the order in which the inputs change, The storage element s commonly used in asynchronous sequential circuits are time-delay devices. The storage capa bility of a time-delay device varies with the time it takes for the signal to propagate through the device. In practice, the internal propagation delay of logic gates is of sufficient duration to produce the needed delay, so that actual delay units may not be necessary. In gate-type asynchronous systems, the storage clement s consist of logic gales whose propagation delay provides the req uired storage . Thus, an asynchronous sequential circuit may be regarded as a combinational circuit with feedback. Because of the feedback among logic gates, an asynchronous seque ntial circuit may become unstable at time s. The instability problem imposes many difficulties on the designer. Asynchronous sequential circuits are presented in Chapter 9. A synchronous sequential circuit employs signals that affect the storage elements at only discrete instants of time. Synchro nization is achieved by a timing device called a dock Rt'Ilt'rutor, which provides a clock signal having the form of a periodic train of cloc k pulses . The clock signal is commonly denoted by the identifiers clock and elk. The clock pulses are distributed throughout the system in such a way that storage elements are affected only with the arrival of eac h pulse. In prac tice. the clock pulses determine when comp utational activity will occur within the circuit, and other signals (external inputs and otherwise) determine what changes will take place affecting the storage elements and the outputs. For example, a circuit that is to add and store two binary numbers would co mpute their sum from the values of the number s and store the sum at the occurrence of a clock pulse. Synchrono us sequential circuits that use clock pulses to co ntrol storage elements are called clocked sequential circuits and are the type most freque ntly encountered in practice. They are called synchronous ci rcuits because the activity within the circuit and the resulting updating of stored values is synchronized to the occurrence of clock pulses. The design of'sy nchronous circuits is fea sible because they seldom manifest instability problems and thei r timing is easily broken down into independent discrete steps, each of which can be considered separately. The storage clements (memory) used in clocked sequential circuits are called flip-flops. A flip-flop is a binary storage device capable of storing one bit of inform ation. In a stable state, the output of a nip -flop is eithe r 0 or I. A seq uential circuit may use many flip-flop s to store as many bits as necessary. The block diagram of a synchronous clocked seq uential circuit is shown in Fig. 5.2. The outputs are formed by a combinational logic function of the inputs 10 the circuit or the values stored in the flip-flops (or both). The value that is stored in a flip-flop when the clock pulse occurs is also determined by the inputs to the circuit or the values presently 184 Chap ter 5 Synchron ou s SequenUalloglc Inpull ... Outpull Comtoinalio......1 tl'CUIl FlIP.fIor' Clock pultn I- I IN TImillJ dilarlm of clock pubn FIGURE. 5 .2 Synchronous dod.ed SflIuen Ual circuit stored in the flip-flop lor both). The new value is stored (i.e .• the flip-fl op is updated) when a pulse of the clock si, n.tl occurs. Prior 10 the occurrenceof the clock pulse. the combinational logic forming the next value of the flop-flop must have reached a 5.tIbie value. Consequently, the speed at which the combinational logic circuits operate is critical. If the clock (syochronizing) pulses arri ve at a regular interval, a, shown in the timing diagram in Fig. S.2. the combinational logic must respo nd 10 a change in the stale of the flip-flop in time to be updated before the next pulse J.IT'i ves. Propagation delays play an important role in determining the minimum interval between clock pulses that will allow the circuit to operate correctly. The state of the flip-flop!' can change only during a dock ru be lran, ition- fOf example. when the value of the dock signals changes from 0 to I. When a clock pulse is not ective. the feedback loop between the value sroredin the flip-flop and the value formed at the inpul to the flip-flop is effectlvely broken teceuse the flip-flop outputs cannot change even if the outputs of the combinational circuit driving their inpuls change in value. Thus. the transition from one stale to the next occurs onl) at predetermined intervals dictated by the clock pul5.Ct. 5.3 ST O RAGE ElEM ENTS : LATCHES A storage elemers in a digital circuit can maintain a binary sUICindefinitely (as long as power is delivered to the circuit). until directed by an input signal to switch states. The major differences among various types of storage clements are in the number of inputs they ~\loCsS and in the manner in which the inpuls affect the binary stale. $ro'Og(' ('/('m('nU tM I operate " ';,h s/gllfll 1('1'('/s (rolhu lhan signal lronsitionJ) arr rrfrrnd to as lalchu : those controlled bJ a clock transitionorrfl ip-flops. Latches arc said to be level sensitive de\'ka : flip- llop5. arc edgesensitive dc \'ilXS., lbc two I)'PCSof storage elements are related because latchc. are the be ic circuits from which all Ilip-flops areconstructed. Although latches arc useful (or storing binary Information and roe the de ign of asynchronou sequential circuits (!ICC Section 9.3). they arc Sect ion 5.3 Storage Elem en t s: l at ches 18S not practical for use in synchronous seq uential circuits. Because they are the building blocks of flip-flops. however. we will consider the fundamental storage mechani sm used in latches before considering flip-flops in the next section. SR Latch The SR latch is a circuit with two cross-coupled NOR gales or two cross-coupled NAND gates. and two inputs labeled S for set and R for reset. The SR latch constructed with two cross coupled NOR gates is shown in Fig. 5.3. The latch has two useful states. When output Q "" I and Q' "" O. the latch is said to be in the set state. When Q "" 0 and Q' "" 1. it is in the reset state. Output s Q and Q' are normally the complement of each other. However. when both inputs are equal to I at the same time, a condition in which both outputs are equa l to 0 (rather than be mutually complementary) occurs. If both inputs are then switched to 0 simultaneously, the device will enter an unpredictab le or undefined state or a metastable state. Consequently, in practical applications. setting both inputs to 1 is forbidden . Under normal condition s. both inputs of the latch remain at 0 unless the state has to be changed. The application of a momentary I to the S input causes the latch to go to the set state. The 5 input must go back to 0 before any other changes take place , in order to avoid the occurrence of an undefined next state that results from the forbidden input condition. As shown in the function table of Fig. 5.3(b), two input conditions cause the circuit to be in the set state. The first condition (S "" 1. R "" 0 ) is the action that must be taken by input S to bring the circuit 10 the set stale. Removing the active input from S leaves the circuit in the same state. After both inputs return to O. it is then possible to shift to the reset state by momentary applying a 1 to the R input. The 1 can then be removed from R, whereupon the circuit remains in the reset state. Thus. when both inputs S and R are equal to 0, the latch can be in either the set or the reset state. depen ding on which input was most recent ly a 1. If a 1 is applied to both the Sand R inputs of the latch. both outputs go to O. This action produces an undefined next state. becau se the state that results from the input transitions depends on the order in which they return to O. It also violate s the requirement that outputs be the complement of each other. In normal operation. this condition is avoided by making sure that 1' s are not applied to both inputs simultaneously. The SR latch with two cro ss-coupled NAND gates is shown in Fig. 5.4. It operates with both inputs normall y at 1. unle ss the state of the latch has to be chan ged. The applicati on of 0 :JL R (reset) --ff:Y4-- S (set) - - L../ (a) Logic diagram FIGUR£ S.3 SR latch with NOR gate s S R Q Q' Q Q' 1 0 0 0 0 1 0 0 1 1 1 0 1 0 (afterS =l, R -O) 0 1 0 1 (aIterS -O. R -I) 0 o (forbidden) (b) Function table S R 00> I 0 I I 0 I I I 0 0 0 0 I I I I I (. hn S. I. R . OI 0 o (.f'l n S -O. R . n IC'~ ) (b) Full(t ioa table fIGURl5 .4 S.a.tm with NAND ,.Iel 10 the S input ca uses output Qto ' 0 10 I . putt in, the latc h in the ~ Male. When the 5 input , oe'l hack to I. the circuit remains in the set state. After both i n pu t~ 10 back to I. we art' allowed to change the Mate of tbe lalch by r lucing a 0 in the R input. Thls ecuon causes lhe circun to go to the reset state aoo May there even after bol h input' return to I . The condition that i' fOfbidden for the NAND latch i~ bot h inputs being equal to O at the ~1l\C' time . an input combination that "hOuld be avoided . In comparing the l'ASD with lhc NOR latch. note that the inpul signal\ for the NAND require lhc romrkmmt t.f too..e valuew. used for the NOR latch . 8cao\C lhc NA,.'O latch requil't\ a 0 lii, naI to change' it, stale. it i ~ somenmes referred 10 a, an S' R' lalch . 11M: prirtlC'l (or. §OO1C'. li~ ban over thc k llcn) dcr.ignate lhc faC1 that the inputs mu~ be in thC'ir com pkmcnl form 10.ronle the ci rcuit. 11M: opnation of the ba\k SR latch can be modi fied by pC'Ovidins: an add itiofu] input ~. ­ nalthat dc1cnninn (c' ,"lro b) t4'h nl the!iWe o f the latch ca n be cb3n~. An SR lalch ""'ilh a control input i" !ohown in Fi• . .5.5. It ron\i\lS oh hc ba.,k SR lalch and IWO add ittonal NAND i alC\.1bt: control inpul En aC1Sa" an mabI, s1[1:nal for the ocher two inputs. 1bc ou tputs of the NAND , ale, -.lay at the loBic· 1 leve l as the enable 'ignal f'C'TtWns at O. Th i, i lhc qui C'\«II I condil ion for the SR tarcb . wben lhc enable' input ion 10 I. information from lhc S or R inpul i~ allowed to alT«t the latch . The !IoC1. stare i\ ru chn.! with S - I. R - O. and En • I tecn ve-high ena bled t. To change to the' reset state. the i n pu t~ mU:\1 be: S - O. R • I. and Ion' .'li s 0 Ffl S Fn 0> 0 I I I I R X X 0 0 0 I I 0 I I Nut ... re of (J Sl)dl.n,e NI), h. nle Q .O:.~I"'.Ie O · I: wl '....e Indetenn in8le R H'I f..mctiollt.No: "GUll 5.5 Sla.tch wtIh controf input Section 5.3 Storage Elements: latches 187 D E, ---+------+ En D Next slate of Q o No cha nge X 1 0 1 1 (a) Lo gic diagram Q '" 0; reset state Q = 1; se t state (b) Function table FIGURE 5.6 Dlatch En == I. In either case. when En returns to 0, the circuit remains in its current state. The control input disables the circuit by applying 0 to En. so that the state of the output does not change regard less of the values of Sand R. Moreover. when En == I and both the Sand R inputs are equal to O. the state of the circuit does not change. These cond itions are listed in the function table accompanying the diagram. An indeterminate condition occurs when all three inputs are equal to I . This condition places O's on both inputs of the basic SR latch, which puts it in the undefined state. When the enable input goes back to O. one cannot conclusively determine the next state. because it depends on whether the S or R input goes to 0 first. Thi s indeterminate co ndition makes this circ uit diffi cult to manage. and it is seldom used in practice. Nevertheless. it is an important circuit because other useful latches and flip-flops are constructed from it. o Latc.h (Tra nspare nt Latch) One way to eliminate the undesirable cond ition of the indeterminate state in the SR latch is to ensure that inputs S and R are never equal to I at the same time. This is done in the D latch, shown in Fig. 5.6. Thi s latch has only two inputs: D (data) and En (enable). The D input goe s directly to the S input. and its complement is applied to the R input. As long as the enable input is at 0, the cross-coupled SR latch has both inputs at the I level and the circuit cannot change state regard less of the value of D. The D input is sampled when En == I . If D == I, the Q output goes to I. placing the circuit in the set state. If D = O. output Q goes to O. placing the circuit in the reset state. The D latch receives that designation from its ability to hold da ta in its internal storage. It is suited for use as a temporary storage for binary information between a unit and its environment The binary information present at the data input of the D latch is transferred to the Q output when the enable input is asserted. The output follows changes in the data input as long as the enable input is asserted . This situation provides a path from input D 10 the outp ut. and for this reason. the circuit is often called a transparent latch. When the enable input signal is deasserted. the binary information that was present at the data input at the time the transitio n occurred is retained (i.e.. stored) at the Q output until the enable input is assened again. Note that 188 Chapter S Synchronous Sequential Logic --j s -~ ., - --l R -~ R ,. --j v rR o fiGURE 5.7 Graphic symbols for latc hes an inverrer coctd be pta..red at the enable Inpcr. Then. depending on the physical clrcvit. the extemal enabling ~ig na l will be a value of 0 (active low) or I (active high). The graphic symho l ~ for the verioes latches are shown in Fig. 5.7. A latch is designated by a rectangular block with inputs on the Icft and OUlpub on the right. One octpet designales the oormal output. and t~ other (with the bubble dcsiBnation) desiBnalC's thc complement OUlput. The graphic symbol for the SR latch has inputs S and R indicated inside the block. In the CMe of a NAND gDtC latch. bobbles are added to the inputs 10 indicate thai setting and relloCuin, occur with a logic-o signal. The graphic symbol for the 0 latch has input D and En indicat ed inside the block. 5. 4 5TORAGE ElEM ENT5 : Fl IP ·FlOP5 'The stare of a latch or nip-flop is swilched by "change in the control input This momentary change is called a 'ri8 ~('r. and the transition it causes h said to trip cr the flip- flop. The 0 latch wilh pulses in its control input is n.'Cntially a fli p-flop that is tri "~ every time the pulse goes 10 the logic-I level. As long a the pulse input remains at this level. any changes in the data input will change lhe output and the state of the latch. As seen from the bhlCk diagram of Fig. 5.2. a sequential circuit has a fm!bock path from the output\ of the fli p-flop~ 10 the inputof the combinational circuit. Consequently. the inputs of the flip-flops are derived in pan from the outpub of the same and othtt flip-l1op5. when latches arc used for the ~tora ge elements, a ser ioc difficulty arisc!'>. TIlestare lnUl!iitiom o(the lalches st3l1 1'1 soon a.'l the d ock pulse changes to the logic-I level. The new state of a latch appears at the output while the pulse is still active. This output is connected to the inputs of the larcbes through thecombinationalcircuu. H the inputs applied 10 the latcbes change while theclock pulse i 5IilI at the logic-I level. the latches will respond10 new val~s and a new output slale may occur. TI1C' m ult is an unpredictable situation. since the state of the latches may keep chanJing for as long as the d ock pulse slay!'> at the active level. Because of this unrehable operation. the output of a latch cannot be applied directly or through combinalional logic to the input of the same or another latch when all th~ latches lU'l:' triggered by a common d ock MJUI'CC'. fl ip-flopcircuits are con5UUC1C'd in such a way a\ to make them operate properly when they are pan of a 5C'q~ntial circuit that employs a common dock. Tbe problem with the latch is thai it responds to a change in the In '('1 of a clock pulse. As shown in Fig. j .8(a). a posiuve level response in the enable inpul allows changC' in Ihc output when the D inpul ChaniC5 while lhe Sectio n 5.4 Sto rage Elem ents : Fli p-Flop s 189 (a) Response to positive level (b) Positive-edge response (e) Negative-edge response FIGURE 5 .8 Clock response In latch and flip-flop clock pulse stays at logic I. Th e key to the proper operation of a flip-flop is to trigger it only during a signal transition. Th is can be accomplished by eliminating the feedback path that is inherent in the operat ion of the sequential circ uit using latche s. A cloc k pulse goes through tWO transitions: fro m 0 to I and the return from 1 to O. As shown in Fig. 5.8. the positive Iransition is defined as the positive edge and the negative transition as the negative edge . There are two ways that a latch can be modified to form a flip-flop . One way is to employ two latches in a special configuration that isolates the output of the flip-flop and prevents it from being affected while the input to the flip-flo p is changing. Another way is to produce a flip-flop that triggers only during a signal tra nsition (from 0 to I or from 1 100) of the synchronizing signal (clock) and is disabled du ring the rest of the clock pulse. We will now proceed to show the implementation of both type s of flip-flop s. Edge-Triggered 0 Flip-Flop The construction of a D flip-flop with two D latches and an inverter is shown in Fig. 5.9. The first latch is called the master and the second the slave. The circuit samples the D input and changes its output Q only at the negative edge of the synchronizing or controlling clock (designa ted as y D- - - I elk ----J~_ _-D~ fiGURE 5.9 Maste r- slave D fltp-tlop Q __ ---1 190 Chapter's 'synchronous Sequential Logic C/~ ) . When lhe cluck i' O. the output of the innnc r ill I. The slave latch h enabled. and it!'> out• O. When lhe inpul pulse changes III the logic-! level.tbe data from the e xternal D input arc transferred 10 the ma..ter. The slave. however. i.. disabled a." long a.-. the clock. remain, at the I level. because ih ,naM~ inpul j, equal to O. Any change in the inpul changelllhc master output 011 r. bUI canIKJI affect tbc ...101\'(' output. When the clod pube rerum- to O. thc master ill L1i ~bl cd and i!'> isolated from the /) input. At the :<.arne lime. the ..lave i.. enabled and the value of r is rran..ferrcd 10 (he output of the Oip·Oop at Q. lllU!l. a change in the output of the nip -Oop can be triggered unly by aoo during the rran..ition of the clod from) 10 O. The behavior of the master - ..lave Ilip-Il op jU!'>1 described dic tates thai ( lI the output may change only on\,·c.121,. Ch,IO!!Cin the OOlput is lrin elT'd I'l y the ncBa t i H~ edge of the dud .. and 1.'1 the change may occur only during the clock's ncgauve level. The value that ill prodoccd 011 the output of the I li p-ftop b. the value that w a!'> stored in the macer ..rage iml1ll.-diaICI)· before the negauve edge occurred. II i.. also pOlisible to design lhe circuit MJ thatlhc fllp-Ilop octpcr changes on the positive edge of the clock. This happen.. in a nip-Oop that ha!'> an a&Jitinna! inverier between lhe CII. terminal and the jurcuon between the other inverter and input £11 of tbe ma..tcr latch. Such a Ihp-Ilop i.. triggered with a negative pol"", 1iO th.dlhe: IlCgath'c edge of lhe d ock affC'C1" the master and the positive edge affC('h the slave and the output terminal. Anothcr consrrucuon of an edge-m ggered 0 Oip·nup U"'li three SR latchc!> av shown in Fig. 5. 10. Two lalChc" respond 10 lhe: external 0 (daral and CIA (doc k) inpuh. The third lalch provides the: UUlPUh flit the: Ittp-Ilop. The: S and R inpul ~ of the octpetlatch are maintained 011 the logic-I level when Clk - O. Thts causes the output 10 remain in its pre1iCnt state. (npuc 0 rut Q i~ cquullO the m;l,l er output r.The master latch i, L1i:<.ablcd because CU • n - - - - if---1._ ./ FtGURf S,10 D-type poslltve-edge-trigger~ flip-flop , Section SA - FIGURE 5.1 1 Graphk symbol Storage Elements : Flip-Flops --j ll f~ 191 II edge-trlggered D nip-flop ma y be eq ual to 0 or I. If D "" 0 when C/k becomes I. R changes to O. Thi s causes the ni pflop to go to the reset state. mak ing Q "" O. If there is a cha nge in the D input whi le Clk I, termin al R rem ains at 0 because Q is 0, Th us. the flip -flop is lock ed out and is unresponsive to further chan ges in the inpu t. When the cloc k returns to O. R goe s to I, placin g the o utput hitch in the quiescent cond ition witho ut changing the output. Sim ilarly, if D = I when Clk goes fro m 0 10 I. S changes to 0 , Thi s causes the circuit to go to the set state, makin g Q "" I. Any change in D while Clk ... I doe s not affect the outp ut. In sum. when the inpu t cl ock in the posidve-e dge-mg gered flip-flo p males a pos itive Iransiuon. the value of D is tran sferred to Q. A negative transition of the cl oc k (i.e.• from I to 0 ) does not affe ct the output. nor is the output affec ted by changes in D when Clk is in the steady l08ic-1 level or the logfc-n level. Hence. this type of flip-flop responds to the tran sition from 0 10 I and nothi ng el se . The timing of the res ponse o f a flip-flop to input data an d 10 the cl ock must be take n into consideration when one is u..ing edge-triggered flip-fl ops . The re is a minimu m lime ca lled the setuo time duri ng which the D input must be mai ntained at a constan t value prior to the occurrenc e of the cloc k transit ion . Si milarly. there is a minimum time ca lled the hold time du ring which the D input must DOl change,ifter the application of the positive tran sition of the clod... The propagatio n de lay lime o f the ni p-flop is de fined as the interval between the trigge r ed ge and the stabilization of the output 10 a new state. These and ot her parameters are spec ified in man ufac ture rs ' data books for speci fic logic famili es. The graphic symbo l for the edge -trigg ered D flip-flop is show n in Fig . 5.11. It is sim ilar to the sy mbol used for the [) latch, exce pt for the arrow headlike symbol in front o f the letter Clk, designating a dynamic input. The dynamic indicator de notes the fact that the flip-flop respo nds to the edge transition of the clock . A bubb le outside the block adjacent to the dynam ic indic ato r designates a negati ve edge for triggerin g the circuit. The absence of a bubble designates a positive-edge response. = Other Flip-Flop. Very large-scale integ ration ci rcuits contain thousands of ga tes within one pack age. Circuit.. are cons tructed by intercon necting the various gates to provide a digital system, Each flip-flop is con structed from an interco nnection o f ga les. The mos t economica l and efficie nt flip-fl op constructed in this manner is the edge-triggered D flip-flop. because it req uires the smallest num ber 192 Chapter S Synchronou s Seq ue ntial logic / - - - ---;- / I-t-+-Q K- -D- --f"--'" ~I 'I - --1 / ----1t> m - l.:..•.J - flC.URI 5,U IK nip-flop of gates. Other types 01' nip-flop!'can be ron~r\ldC'd by u~ing the D nip-flop IlOd external logic. Two nip-flop-. lee.. widely used in the design of digital systems are the JK IlOd Tnip-flops. There are three operations that can be: performed with a nip-flop: Sc:1 it to I. reset it to O. Of complement i l ~ output. Wilh only a single input. the 0 nip-nop can set or reset the: output. depending on the value ( 11" the: 0 input immediately before the: clock transition. Synchronized by a clock. signal, lhe: JK nip- flop ha'l two inputs and performs all three operation". The circuit diagram of a JK nip-flop constructed with a 0 nip-flop and gates is shown in Fig. S,12(a). The J inpul sets the: Ilip-Ilop 10 I, the: K input resets it to O. and when both inputs an: enabled. the OUlpul j" complerremed. This can be: verified by invC'stigating the circuit applied to the: D input: D - IQ' + K'Q When J • I and K - O. 0 • Q' + Q • I . so the 11C1I.t clock edge sets the: output 10 I. When J - 0 uOO K • I, 0 "" O. so the: next clock. edge relocts the output to O. When bod1 J • K • I and D • Q' , the ne1l.1dock edge rompkmen~ the output. When both J • K • 0 aoo 0 • Q. the: clock edge leaves the output unchanged. The graphic symbol for the JK flip-flop is shown in Fig. S.12(b), It is sirnilar to the graphic symbol of the: D flip-flop. except that now the: inputs are marked J and K. The: T (toggle) flip·l1op is a complemenung flip-flop and can be obta ined frum a JK flipflop when inputs J and K are tied rc gerber. This is shown in Fig. S,13(a), When T • 0 ( J • K - 0 ). a clock edge does noc change the output. When T - I (J • K - I). a clock edge complements the OUlput. The complementing flip-flop is useful for lk"i Bning binary counters The Tflip-nop can he constructed with a D Ilip-Ilop and an exclustve-Og gate a.\ sbown in Fig. 5.13Ib). The expression fOf the D input iv . D -T eQ -TQ' +T'Q When T - O. D - Q and there i ~ nochanBc in the output. When T - I. D • Q' and the output complements, The graphic symbol for this flip-flop has a T i ymbol in the: input Section 5.4 Storage Elements: Flip-Flops T-'--1 J T 11 " elk T " K {a) FromJK flip-flop 193 - - jl>Clk (b) Fro m D flip-fl op fiGURE. 5.1 J Tflip-flo p (c) Graphic symbol Characteristic Tables A characteristic table defines the logical properties of a flip-flop by describing its operation in tabular form. The characteristic tables of three types of flip-flops are presented in Table 5. 1. They define the next state (i.e.. the state that results from a clock transition) as a function of the inputs and the present state. Q<r) refers to the present state (i.e.• the state present prior to the application of a clock edge). Q( t + I ) is the next state one clock period later. Note that the clock edge input is not included in the characteristic table. but is implied 10 occur between times t and I + I. Thus. Q(t) denotes the state ofthe flip-flop immediately before the clock edge. and Q(t + J) denotes the state that results from the clock transition. The characteristic table for the l K flip-flop shows that the next state is equal to the present state when inputs 1 and K are both eq ual to O. This co ndition can be expre ssed as Q(t + I ) = Q(t ). indicating that the clock produces no change of state. When K = I and Ta b le 5.1 Flip -Flop Charac teris tic Tables JK Flip -Flop J K Q(t + 1) 0 0 I I 0 I 0 I 0 I Q'(' ) e» No change Reset So< Complement D Flip-Flop 0 Q(t + 1) 0 I 0 I T Flip-Flop Reset So< T Q(t + 1) 0 I Q' « ) Q(t ) No change Complement 194 Chapter S Synchronou$ Sequential logic J - O. the dock reM'I!llhe ni p-nul' and Q( I + I ) - u. wn h J - I and K - O. the niP-tlOf ~I ~ and Q( 1 ... I ) "" I. When hot h J and K are equal to I. the ne xt ~tate ,"h.m~e!l to the: rom plemenr of'the peesem state, a rran siuon HUll ca n be ex pressed as Q(t ... t ) - Q' ( I). The f)C kt ~t3te o f a 0 nip-flop is depende nt o nly on the 0 inpu t and is independent o f lhc prt~nt state. Th is can beell. ~!\Cd a'iQ( t + I ) • D. II means thallhe nCII.l-!.late value is equa to the va lue of D. Note that the: 0 ni p-fl op doe s not have a "no-c han ge" condition . Such a con diti on ca n be acco mplbbed either by d isabl ing the dod or by operating the clock by ha vini the ou tput of the fli p-flop connected into lhe () inpu t. Either method effectively circulates ttl< OUlpu t o f lhc fh p-Ilop whe n the:S1ale of the flip-flup mu..t remain uncha nged . The chardC1cri~ic tableof the Ttlip-l1op has on ly two (,'{n1i tion..: Whe n T • O. the clock edge does not cbengc the st.ue: whe n T - I, the d od ed ge com plemenL'i the !'>la te of the Ilip- Ilop. Charact eris ti c Equations The log ical pn"en ic- of 3 Ilip-Ilop, a'i c.k"MTibcd in the charoK.'1cri..tic table. can be: e ll.prn.i ed al· gcbreically with a charal,.1cri~ ic equation. fQr the 0 Oip-lK'P. we bave the char.tctcri'-lic eqoatton Q(/ + I ) -/) which slates that thc= ne xt !ltate of thc: ou tpu t will be equ al to the va lue of input 0 in the prC'~' ent Male. The characteristic eq uat ion (Of' the JK Ilip-Itop ca n be deri ved fro m the charecteristic tab le or from the ci rcuit o f Fig. S. 12. We obtain Q(/ + 1) - JQ' + K 'Q where Q i ~ the value (If the ni p- nop ou tput prior to the app liCi tinn of a d ock ed ge. The char for the T flip-flop i~ ohcaincd from the circuit o f Fig. 5.13: ecrer isnc eq uation Q(/ + 1) - T (II Q - TQ' + T'Q Direct Inputs Some Ihp-flops hav e iL\Ynchronou... inptlts mat art' used 10 force the n ip- nop to a panicul ar state independently o f the c lock. The inpol thal !ICt~ the ni p-flop 10 t h ca lled pm t'l or J i lt'''l set. The inpu t that clean the Iltp-nop to O is ca lled clear or di rect It'st". When pow er is turned 00 in a di ~ital system. the state of the ni p-nops is un known. The direct input~ are u~fu l for brin ging all ni p-flu!", m Ihc= syste m 10 II know n Maning ..late prior to the clocked opera tion. A po... itive -etl¥C'"t ri~~rtd D nip-llop with ecu ve- jow a..ynchnKkllJ"m.et is ~1l in Fig. S. 14. The circuit diagra m is lhe sa me as the one in R g. .5. 10. except for the add itional reset inpul conrecuons to three NAr-;D ga les. When the reset inpul i~ (). it forces ou tput Q' to Slay 011 I. which. in tum. clean output (! 10 O. l hu~ re~ui n g the Ilip-fl op. Two other co nnections from the m<1 input ensure thai the .\ inpu t o f the third SR latch stay~ at logic I while lhe re set input is at O. reganlle!>\ of the vallk."s of 0 and Clk. The graphic symbol for the 0 nip-flop with a di rttl reset ha... IllIlkkIitional inpu l maned with R. Tbe bu bble aloo g the inpu t ind icates that the fC!>C1 is ec u ve at the 1000ic.Q le vel . Hip- Flops with II direct .-.el U \C the symbo l S for rbe async hnmou s SCi inpu t. The functi on table s pecif iesthe operalion of the circun. When R • O. the OIJlpu t i.. reset 10 O. Th is ~tate is Inde pendent of the values o f 0 Of' C/~ . Normal clock operatio n ca n proceed on ly Sect ion 5.5 Analysis of Clocked Seq uential Circuits 195 Clock R t''; f l - -- ' --' fa) Circuit diagram Dura Clock 1--0 [) elk R Reset 1>-- 0' I (h) Graphic symbol R CfkD Q Q' o 0 o o X t t X I oo I I 0 I (b) Function table FIGURE 5 .14 D flip-flop wit h async hro no us reset after the reset input goes to logic I. The clock at elk is shown with an upward arrow to indicate that the flip-flop triggers on the positive edge of the clock. The value in D is transferred to Q with every positive-edge clock signal. provided that R = I. 5 ,5 ANALY51 5 OF CLOCKED SEQUENTIAL CIRCUIT5 Analysis describes whnt a given circuit will do under certa in o perating conditions. The behavior of a clocked sequential circuit is determi ned from the inputs. the outputs. and the state of its flip-flops. The outputs and the next state are both a function of the inputs and the present 196 Chapter 5 Synchronous S~uentlalloglc stale. The analysis of Usequennat circuit comim of oblaining a table or a diagram for the time sequenceof inpuI~. outputs. and internal lIalell. It ill ,'11M) poss ible 10 write Boolean e xpre sion~ that describe lhe behavior of the sequential circuit, Tbese expressions must indudc the necessary time sequence. enber direcny or indirmly, A logic diagram i!o recognized all a d ocked sequential circuit if it includes nip-flops with clock i nput~. The flip-tlop!i may be of any type. and the logic diagram may or may not include combinational circuit gates. In this section. we introduce an algebraic representation for specifyinJ the next-state condition in terms of the prtsc:m slate and inputs. A state table and slate diapam are then peesenecd to describe the behaviorof lhe r.tquentiaJ circuit AnlXhr:r algdnic repreKnlation is meodcccd for spccifyi ni the logic diagram of ~nlial circuits. Examples are used to illustrate the various procedure , State Equations The behavior of a clocked sequentialcircuit can be descri bed algebraically by means of state equations. A JW" ' qUe/lion (also called a transition , q.klt;Otf) specifies the IlC'llt stale as a funclionof thc pre\Cnt stall' and inpns. Considn thc sequential circuit r.bown in Fig. 5.15, 11 consists I . :::L J <, ./ 0 A r- [> n l. A' 1 0 8 f- t> CIA 8' C1/1d: ~ I' e, v neUR! S.lS Example of ~uentlal circuit I J .. Section S.S Analysis of Clocked Seq uential Circuits 197 of two D flip-flops A and B, an input x and an outp ut y. Since the D input of a flip-flop determines the value of the next state (i.e., the state reached after the cloc k transition), it is possible to write a set of sta te equations for the circ uit: A(I + 1) = A(t )x(t ) + B(I )x (l ) B(I + 1) = A' (t )x (t ) A stale equation is an algebraic exp ression that specifies th e co ndition for a flip -flop state transitio n. The left side of the equation, w ith {r + 1). denot es the next state of the flip-flo p one clock edge later. The right side of th e eq uation is a Boolean expression that specifies the present sta te and input conditions th at make the next state equal to I. Since all the variables in the Boolean expres sions are a function of the present state. we can omit th e designation (t) afte r each variable for convenience and ca n express the state equations in the more compact fonn A (t + 1) = Ax + Bx B (r + I ) = A' x The Boo lean expressions for the state equ ations ca n be deriv ed dire ctl y fro m the gates that form the co mb inational circu it part of the sequential circu it. since the D values of the co mbinational circ uit determine the next state. Similarly, the prese nt-s tate value of the output can be expressed algebra ically as )'(1) = [A(I ) + B(t )Jx' (t ) By removing the symbol ( t ) for the present sta te. we obta in the output Boolean equatio n: y = (A + B)x' Stale Table The time sequence of inputs, outputs, and flip-flop states can be enumerated in a state table (sometimes called a transition table ). The state table for the circu it of Fig. 5.15 is shown in Tab le 5.2. Table 5.2 State Table for the Circuit of Fig. 5.75 Present State Input Next State Output A 8 x A 8 Y 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 I 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 198 Chapter S Synchronou s Sequential logic The table con..i ~l ~ of lour section.. labeled presem jlrl1~, inpul, n,,;1 jfjU~, and II ut/ml . The present-stare !oeCtiofl shows tbc ",Ialel of nip-nop" A and H III any gweo lime t. The inpul seclion giv~ a value of .r for ecch possible pn:!lCnt state. The nnl-litllte section !>ho,," ~ lhe Malell of the nip-fl()p~ onc clpck cycle later, at lime I + I. The OUlput section gives the value of )' al lime 1 for each present ..talc and inpul coedinon. The dcrivlIIiun of 11 , laiClable requires liMinB all p'-M ible binary combinalion" of present rolalella oo inputs. In th l ~ ca1OC. \\" e have ei, hl binary com binaliom (rom 000 10 III . The RCli ' state values are tben "klcmlincd from the logic diagram from lhC' !lo IIlIC equatioevTbc RCIII stare of nip-nop A mu-i 5a l i~fy the liilate equation t. A(r + I ) - A.t + Bs The r\C1I1·s lale section in the ..laic table under column A ha... three 1':10 where the present state of A aoo input ,t arc hillh equal 10 I or the presem ..laic of H aod input .r are both equal to I . Similarly.the r\C1I1..I.lIIl.." of Itip-Ilop H illderi ved from Iht.' "laic equeuon H(/ + I ) -A '.t and i\ equal ~o I when lhe present \t alc of A ill derived from the ourput equation i~ 0 and inpul x equal 10 I. The Ollipul column j" y - Ax' + R.t · 11lcMale tahlc o( a ~"q ucn lial d rcuil wilh [J.IYPC nip- noV" ill obtnincd by the same procedure ollilined in the previou-, example. In general. a sequential circuit with m nip-nos» and n inpuh need.. 2.... 11 rows in the state table . The binary numbers from 0 through 2.... 11 - I arc: listed under the presem-aac and inpsn columns. Tbc next-state section ha~ m columns one for each nip-flop. The binary \'alut'll (or the next slate are derived direclly from the state equations. T1lC' output section has as many colu mns a\ tbete arc outpu t variables. liS binary value is de rived from rbe circuit or from tbe Boolean function in the ~me manner as in a truth table. It i\ sometimes coo ver nenr ro cxpre:\.\ the ..talc table in a slightly different form having only three sections: present -tate, next state. and output. 'The inpul conditions arc enumerated under the nnl ·slale and out put sections. The state table of Table S.2 is repealed in Table S.J in this !i«OOl.I Iorm. each IlfC\C'lI Male. there arc two po!-..i~le nut slalCll andocipcrs, depending 00 lhe value of 1M- input. (me form may be preferable 10 the ce bcr. dcpcfk1ini on the application. I,. T.ble S.3 S«ond Fann of fM Stofl Tobk Presenl SI.le NaxlSlale • • 0 Outpul • • I • • 0 •• I A • A • A • r r 0 0 I I 0 I 0 I 0 0 0 0 0 0 0 0 0 I I I I I 0 0 0 I I I 0 0 0 0 Section 5.5 Analysis of Clocked Sequential Circuit s 199 , .0 00 0/1 ' ,0 , ',0 1,0 @ - - -"-'-- -( 11 FIGUA£ 5 .16 State diagram of the circuit of Fig. 5.15 State Diagram The information available in a state table can be represented graphically in the form of a suue diagra m. In this type of diagram. a state is represen ted by a circle . lind the (clock- triggered) transitions betwee n states arc ind icated by directed lines connecting the circles. The slate diagram of the seq uentia l ci rcuit o f Fig. 5. 15 is shown in Fig . 5. 16. The state diagram provides the ....me infonnation as the stare tab le and is obtained d irectly from Table 5 .2 or Table 5.3. The binary number in..ide eac h circ le identifies the state of the flip-flo ps. The directed line.. are labeled with two binary numbers separated by a slash. The input value during the present stale is labeled first. and the nurnbe...after the slash gives the output during the present stale with the given input. ( It is important to remembe r that the bit value listed for the output along the directed line occu rs during the present stale and with the indicated input. and has nothing to do with the tran sition 10 the next state .) For example. the directed line from slate 00 10 01 is labeled liU. meaning that whe n the sequential ci rcuit is in the present stale 00 and the input is I. the output i.. O. After the next cloc k cycle. the circuit goes 10 the next state. 0 1. If the input changes to O. then the output becomes I. bur if the input remain.. at I. the output "lays at O. Th is information i'> obtained from the stare diagram along the IWO directed line.. emanating from the circle with stale 0 1. A d irected line co nnecting a circle with itself indica tes tbar no change of state occurs. There is no difference between a state table and a state diagram. e xcept in the manner of rep" re..entation. Th e state table is easier 10 derive from a given logic diagram and the stale equatio n. The state d iagra m fo llows directly from the: state table . The slate diagram gives a pictorial view of state transitions and is Ihe form mo re suitable for hum an interp retation of the circuit' s ope ration. For example, the state diagram of Fig. 5.16 clearly shows that, starting from state 00 . the output is 0 ali long as the inpu t stays at I . Th e first 0 inpu t after a string of I ' ~ gives an output of I and transfers the ci rcuit back to the initial slate. 00. The machine repre sented by the state diagram acts 10 detect a zero in the bit strea m of data. Flip -Flop Input Equations The logic diagram of a sequential circui t consists of ni p-flo ps and gates. The interco nnectio ns among the gates (a nn a co mbinational circuit and may be specified algebraically with Boolean 200 Cha pter 5 Sync h ro no us Seq ue nt ial l o g ic expression s. The knowledge of the type of flip-flops and a list of the Boolean expression s of the combinational circuit provide the information neede d to dra w the logic diagram of the sequentia l circuit. The part of the combinational circuit that gene rates external o utputs is described algebraically by a set of Boolean function s called output equations. The part of the circuit that generates the inputs to flip -flops is described algebraically by a set of Boolean functions called flip -flop inp ut equations (or, some time s. excitation equations ). We will adopt the convention of using the flip -flo p inp ut sy mbol to denote the input equat ion varia ble and a subscript to designate the name of the flip -flop outpu t. For exa mple. the following input equation specifies an O R gate with inp uts x and }' connected to the D input of a flip-flop whose out put is labeled with the symbol Q: DQ = x + }' The sequential circ uit of Fig. 5.15 cons ists of two D flip -flops A and B. an input .r. and an output j-, Th e log ic diagram of the circ uit can be expressed alge bra ically with two flip-flop input equati ons and an output eq uation: D" = Ax + Bx DB = A' x Y = (A + B)x' Th e three eq uations provide the necessary informat ion for drawing the logic diagram of the sequential circ uit. The symbol D" specifies a D flip-fl op labeled A. DB speci fies a seco nd D flip-fl op labe led B. T he Boo lean expressions assoc iated with these two variables and the expression for output}' specify the combinational circui t part of the sequential circuit. The flip-flop input equa tions constitute a convenient algebraic form for specifying the log ic diagram of a sequential circuit. They imply the type of ni p-flop from the letter symbol. and they fully speci fy the combinational circuit that drives the flip -flops. Note that the expression for the input equation for a D flip-flop is identical to the expression for the corre spondin g state equation. This is because of the characteristic equat ion that equates the next slate to the value of the D input: Q(t + I ) = DQ • An a lysis with D Flip-Flops We will summarize the procedure for analyzing a clocked sequential circuit with D flip-flops by mean s of a simple example. The circuit we want to analyze is described by the input equation The DA, symbol impli es a D flip-flop with ourput A. Th e .r and y vari ables are the inputs to the circ uit. No output equations are given, whic h implies that the outp ut comes from the o utput of the flip -flop. The logic diagram is obtaine d from the input equa tion and is dra.....n in Fig. 5.17(a). The state tab le has one column for the present state of flip-flop A. two columns for the two inputs, and one column for the next state of A. The binary numbers unde r At)' are listed from 000 through I II as shown in Fig. 5.17(b). The next-state values are obtained from the state equation A(l + I) = A$xEl:ly Ana lysis of Clocked Sequential Circu its Section 5.5 201 Present Next state Input s state D_:._, .r A y Clock (a) Circuit diagram A , y A 0 0 o0 o1 0 0 1 1 1 1 1 0 1 1 o0 o1 1 0 1 1 0 1 1 0 1 0 0 1 (b) State table 01.10 00. 11 01,10 (c) State diagram FIGURE S.17 Sequential circuit with D flip-flop The expression specifies an odd function and is equal to 1 when only one variable is I or when all three variables are 1. This is indicated in the column for the next state of A . The circuit has one flip-flop and two states. The state diagram consists of two circles, one for each state as shown in Fig. 5.17(cl. The present state and the output can be either 0 or I, as indicated by the number inside the circles. A slash on the directed lines is not needed, because there is no output from a combinational circuit. The two inputs can have four possible combinations for each state. Two input combinations during each state transition are separated by a comma to simplify the notation. An a lysis with JK Flip-Flops A state table consis ts of fo ur sect ions: present state, input s. next state, and out puts. The first two are obtained by listing all binary combinations. The outp ut sectio n is determined from the output equations. The next-state values are evaluated from the state equations. For a D-type flip-flop, the state equation is the same as the input equation. When a flip-flop other than the D type is used, such as lK or T, it is necess ary to refer to the corresponding characteristic table or characteristic equation 10 obtain the next-state values. We will illustrate the procedure first by using the characteristic table and again by using the characteristic equation. 202 Chapter S Syn chr onous Sequential logic TIle next-stale value s of a seq uentia l circuirtbat usesJK- or T-ty~ flip-f lops can be derived as follows: I . Determine the flip-l1op input equations in terms of the present state and input variables. 2. Li..t the binary values of eac h input equalion. J. Use the corresponding flip-flop characteristic table to determine the next- state value s in the slate table . As an example. consider the seq uential circuit with two JK flip-flops A and B and one input x, as shown in Fig. 5 .18. The circuit has no outputs; there fore . the state table doe s not need an output co lumn. (T he outputs of the flip-flops may he co nsidere d as the outpu ts in this case.) The circ uit can be spec ified by the nip-flop input eq uation s JA = B K A = Bx ' JB = x' KB = A 'x + Ax' = A $ x The state table of the sequ ential circui t is shown in Table 5.4. The present -state and input co lumns list the eight binary co mbinations . The binary values listed under the columns labeled flip -flop input s are nor part of the slate table, but they are needed for the purpo-.e of evaluating the ne xt sla te as spec ified in step 2 of the procedu re . These binary: value s are obtain ed directly from the four input eq uations in a manner similar 10 that for obtai ning a U11th tab le from a Boolean express ion. The next slate of each Ilip-flop is evaluated from the co rresponding J and K inp uts and the charac teris tic tabl e of the JK llip- l1op listed in Table 5.1. Th ere are fou r cases to co nside r, Wh en J = I and K = O. the ne xt state is I. When J = 0 and J C/4 , J K • J Clk K . ~ Clock FIGURE 5.18 . S ~ uen tla l circuit with JK flip- flop B Section 5.5 Ana lysis of Clocked Seq uential Circuits 203 Table S.4 State Table for Sequential Circuit with JK Fllp.Flops Presen t State Next Stat e Inpu t Flip-Flop Inputs A • x A B t, K, /, K, 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 K = I. the next slate is O. When 1 = K = O. there is no change of state and the next-slate value is the same as that of the present state. Whe n 1 = K = I, the next-state bit is the compleme nt of the present-state bit. Examples of the last two cases occ ur in the table when the present state AB is 10 and input .r is O. lA and KA are both equal to 0 and the present state of A is I. Therefore , the next state of A remains the same and is eq ual 10 1. In the same ro w of the table, lB and KB are both equal 10 I. Since the present state of B is O. the next state of B is co mplemen ted and changes to I. The next-state values can also be obtained by evaluating the state equations from the characteristic eq uation. Thi s is done by using the following procedure : I. Determine the flip-flop input equations in terms of the present state and input variables. 2. Substitute the input equations into the flip-flop characteristic equation 10obtain the state equat ions. 3. Use the correspo nding state equations to determine the next-state values in the slate table. The input equ ations for the two lK flip-flops of Fig. 5.18 were listed a couple of paragra phs ago. The characteristic equations for the flip-flops are obtained by substituting A or B for the name of the flip-flop. instead of Q : A (t B(I + I) = l A ' + K ' A + 1) = JB ' + K 'B Substituting the values of l A and KA frum the input equations. we obtain the state equation for A: A (t + I) = BA ' + ( Bx ' )' A = A 'B + AB' + Ax The state equa tion provides the bit values for the column headed "Next Stale" for A in the state table. Similarly. the stare equation for flip-flop B can be derived from the characteristic equation by substituting the values of Je and K B : B(t + I) = x ' B' + ( A EIl x )' B = B'x ' + ABx + A 'B x ' 204 Chapter 5 Synchronous Sequent ial Log ic o so i;ii 11 S3 o o o 10 S2 fiGURE 5.19 State diagram of the circuit of Fig . 5.18 The state equation provides the bit values for the column headed "Next State" for B in the state table. Note that the co lumns in Table 5.4 headed "Flip-Flop Inputs" are not needed .... hen state equ ations are used . Th e state diagram of the seq uential circu it is show n in Fig. 5. 19. Note that since the circuit has no outp uts, the directed lines out of the circl es are marked with one binary number on ly. to designate the value of input.r. Analysis With T Flip-Flops The analysis of a sequential circuit with T flip- n a ps follow s the same procedure outlined for JK ni p-flops. The next-state values in the state table can be obtained by using either the characteristic table listed in Table 5.1 or the characteri stic equation Qr, + I) ~ T EIlQ = T'Q + TQ' Now consider the sequential circuit shown in Fig. 5.20. It has two ni p-flops A and B. one input .r, and one output y and can be described algebraically by two input equations and an output equation: TA :::: Bx To :::: x r> A8 The state table for the circuit is listed in Table 5.5. The values for y are obtained from the output equ ation. Th e values for the next state can be de rived from the state eq uations by substituting TA and TB in the characteristic equat ions. yielding A(t + I) :::: ( B.t )' A + (Bx) A' :::: AB' + Ax ' + A' Bx B( , + I ) = x Ell B Sect ion 5.5 Analysis of Clocked Sequential Circuits J A T ) 205 I y elk R I o A H T OOI!!}-- --'--- - «Ol l!! B CIk 1 R T Il l! }-- H o ---;- - --{lO/O o V Clock reset (a) Circuit diagram (b) State diagram FIGURE 5.2 0 Sequential circuit with Tflip -f1ops The next-state values for A and B in the state table are obtained from the expressions of the two state equa tions. The state diagram of the circuit is show n in Fig. 5.20(b). As long as input x is equal 10 I, the circuit behaves as a binary counter with a sequence of states 00, 0 1, 10, I I , and back to 00. Tabl e 5.5 State Table for Sequen tial Circuit with T Flip-Flops Present State Input Next State Output A B x A B Y 0 0 0 0 1 I I I 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 I I I 0 1 I I I I 0 0 0 I I 0 0 0 0 0 I I 206 Chapt er S Synchronous Sequential Logic When .r ;: O. the circuit remain s in the same state . Output y is equal 10 I when the prese nt state is I I. Here. the output depends on the present Mate only and is independent of the inp ut. The two value s inside each c ircle and separa ted by a ..lash are for the present state and output. Mea ly and Moore Models of Finite State Machines The most general model of a seque ntial circuit has inputs. outputs. and intemal states . It is cu ste rnary 10 distinguish between (W O models of seque ntial circuits: the Meal y model and the Moore model. Both are shown in Figure 5.21. The y differ o nly in !he way the output is generated . In the Meal y model . the output is a funct ion ef both the present stare and the input . In the Moore model. the o utput i", a function of o nly the presen t state. A circuit may have both t)pe' of out puts. The two models of a sequential circuit are co mmonly referred 10 as. a finite state machine. abb reviated FS ~t. Th e Mealy model o f a seq uential c ircuit is referred 10 as a Mealy FSM or Mealy mac hine. The Mou re mode l is referred 10as a Moore FS M or Moore mac hine. An exa mple of a Mealy model is given in Fig, 5.15. Output )' is a function o f both inputr and the present slate of A and 8 . The corres pond ing state d iagram in Fig. 5.16 sho ws both the input and outpu t val ues. separated by a slash along the directed lines between the states. An exa mple of a Moo re model is given in Fig. 5.18. Here. the output is a function of the present state only, T he corresponding state diagram in Fig . 5. 19 has only inputs marked along the • p~ U?mbi~ ~ [~ -";i:~ - .., pm ,Vr s;tS Iatc' - s_ HfKif,frF L Output Cumbitl'lli"rnrl I- Lotti. A I Clod. (.) Jl uof'<' • , - J\'ul SIUII' Comhilf(llimw l Logic ,UQdl/lI ~ - St"t.. RegiIfa Ollll'ltl Combi""f;rl/l a/ I Clock ( b' fiGURE 5.21 Block dia g ram s of Mealy and Moore state ma ch ine s Lo gic OUlp ll U t-- (M oo rN:OfHl Sect ion 5.6 Synt hesizable HDl Models of Sequen tial Circuits 207 d irected lines. The outputs are the flip-flop states marked inside the circles. Another example of a Moore model is the sequential circuit of Fig. 5.20. The output depends only on flip-flop values, and that makes it a function of the present state only. The input value in the state diagram is labeled along the directed line, but the output value is indicated inside the circle together with the present slate. In a Moore model. the outputs of the sequential circuit are synchronized with the clock, because they depend only on fl ip-flop outputs that are synchro nized with the clock. In a Mealy model, the outputs may change if the inputs change during the clock cycle. Moreover, the outputs may have momentary false values because of the delay encountered from the time that the inputs change and the time that the flip-flop outputs change. In order to synchronize a Mealytype circuit , the inputs of the sequential circuit must be synchronized with the clock and the outputs musl be sampled immediately before the clock edge. The inputs are changed ar the inactive edge of the clock to ensure that the inputs to the fli p-fl ops stabilize before the active edge of the clock occurs. Thus, the output of the Mealy machine is the value that is present immediately before the active edge of the clock. 5.6 SYNTHESIZABLE HDL MODELS OF SEQUENTIAL CIRCUITS The Verilog hardware description language lHDL) was introduced in Section 3.10. Combinational circuits were described in Section 4. 12, and behavioral mode ling with Verilog was introduced in tha t section as well. Beh avioral mode ls are abstract represe ntat ions of the functionality of digital hardware. Designers write behavioral models to qu ickly describe how a circuit is to operate, without having 10 first specify its hardware. In this section, we continue the discussion of behavioral modeling and present description and exa mples of fl ip-flops and sequential circuits in preparatio n for modeling more comp lex circ uits. Behavioral Modeling There are IWo kinds of abstract behaviors in the Verilog HDL. Behavior declared by the keyword initia l is called single-pass behavior and specifies a single statement or a block statement (i.e.. a list of statements enclosed by either a begin ... end or a fork .. . join keyword pair). A single-pass behavior expires after the associated statement executes . In practice, designers use single-pass behavior primarily 10 prescribe stimulus signals in a test bench-never to model the behavior of a circuit-because synthesis tools do not accept descriptions that use the initi a l statement. The always keyword declares a cyclic behavior. Both types of behaviors begin executing ....-hen the simulator launches at time 1 ;;: O. The initial behavior expires after its statement executes; the a lwa ys behavior executes and reexecutes indefinitely, until the simulation is stopped . A mod ule may contain an arbitrary number of initi al or a lways behav ioral statements. They exec ute co ncurrently with respect to each other starting urtime 0 and may interact thro ugh com mon variables. Here 's a word description of how an a lways statement works for a simple model of a D fli p-flop: Whenever the rising edge of the clock occurs. if the reset input is asserted. the output q gels 0; otherwise the output Q gets the value of the input D. The execution of statements triggere d by the clock is repeated until the simulation ends. We'll see shortly how 10 write this descri ption in Verilog. 208 Chapter 5 Syn chr on ous Sequential Logic An initi al behavioral statement exec utes only once. II begins its execution at the start of simulation and expires after all of its statements have com pleted execution . As mentioned at the end of Section 4.12, the initi al statement is useful for generating input signals to simulate a design. In simulating a sequential circ uit, it is necessary to generate a clock source for trigge ring the flip-flops. The following are two possible ways to provide a free-ru nning clock that operates for a specified numbe r of cycles : Initia l begin clock = 1'bO; repeat (3D) #10 clock = - ctccs: end Initial beg in clock = l 'bO; end Initial 300 $finls h; always #10 clock = -clock; In the first version, the initi al block contains two statements enclosed within the beg in and end keywords. The first statement sets dock to 0 at time = O. The second statement specifies a loop that reexecutes 30 times to wait 10 time units and then complemem the value o f clock. Th is produces 15clock cycles, each with a cycle time of 20 lime units. In the second version. the first initlal behavior has a single statement that sets clod to 0 at time = 0, and it then expires (causes no further simulation activity). The second single-pass behavior declares a stopwatch for the simulation. The system task fini sh causes the simulation to terminate unconditionally after 300 time units have elapsed. Because this behavior has on ly one statement associated with it, there is no need to write the begin . . . end keyword pair. After 10 time units, the a lways statement repeatedly comp lements dock, providing a clock generator having a cycle time of :!Olime units. The three behavioral statements in the second example can be written in an)' order. Here is another way to describe a free-running clock : initial be gin clock = 0; forever #10 clock = - ciock; end This version. with lW O statements on one line. initializes the clock and then executes an indefi nite loop (fore ver ) in which the cloc k is complemented afte r a delay of 10 time steps. Note thai the single-pass behav ior never finishes exec uting and so does nOI expire. Another behavior would have to termi nate the simulation. The activity associated with either type of behavioral statement can be controlled by a delay operator thai waits for a certain time or by an event control operator that waits for certain conditions to become true or for specified eve nrs (changes in signals) 10 occur. Time delays specified with the # de lay control operator are co mmonly used in single-pass behaviors. The delay contro l operat or suspends execution of statements until a specified time has elapsed. We ' ve already seen examples of its use to specify signals in a test bench. Another operator. @. is called the event cont rol opera lOr and is used 10 suspend activity until an event occurs . An event can be an unconditional change in a signal value (e.g.• @A) ora specified transition ofa signal value (e.g.• @ (posed ge cloc k» , Th e general form of this type of statement is always @ (event control expresston) begin /I P roce dural assi gnme nt s ta teme nts that e xecute when the cond ition is met end Section S.6 Synthesizable HDL Models of Sequential Circuits 209 The event control expressio n specifies the condition thai must occur to launch exec utio n of the proce dura l assignment stateme nts. The variables in the left-hand side of the proce dural statements must be of the reg data type and must be declared as such. The right-hand side can be any express ion that produces a value using Verilog-defined opera tors. Th e eve nt co ntrol express ion (also called the sensitivity list) specifies the eve nts that must occ ur [ 0 initiate execution of the procedural statements assoc iated with the alway s block. Statements withi n the block exec ute sequentially from top to bottom. Afte r the last stateme nt executes. the behavio r waits for the event control expression to be satisfied. Then the statements are executed again. The sensitivity list can specify level-sensitive eve nts, edge -sensitive eve nts, or a com bination of the two . In practice, designers do not make use of the third opt ion. beca use this third form is not one that synthesis tools are able to translate into physical hardware. Levelsensitive eve nts occ ur in comb inationa l circ uits and in latches. For example, the stateme nt always @ (A or B or C) will initiate execution of the procedural stateme nts in the assoc iated a lways block if a change occ urs in A , B, or C. In synchrono us sequent ial circu its, changes in flip-flops occ ur only in respo nse to a transition of a cloc k pulse. The transi tion may be either a positive edge or a negative edge of the cloc k. but not both . Verilog HDL takes care of these conditions by prov iding two keywords: posed ge and neg edgc. For example, the expression always@(posedge clock or negedge reset) 1/ Verilog 1995 will initiate execution of the assoc iated proce dural stateme nts only if the clock goes through a positive transition or if reset goes thro ugh a negative transition. The 200 1 and 2005 revisio ns 10 the Verilog language allow a comma -separated list for the eve nt control express ion (or sensitivity list): always @(posedge clock, negedge reset) 1/ Verilog 2001, 2005 A procedural assign me nt is an assignment of a logic val ue to a variable within an initial or 81",8)'s stateme nt. Thi s is in contrast 10 a cont inuous assignment discussed in Sec tion 4.1 2 with dataflow modeli ng. A contin uous assign ment has an implicit level-sensitive sensit ivity list consisting of all of the variables on the right-hand side of its assignment statement. The updating of a contin uous ass ignment is triggered whenever an eve nt occ urs in a variable listed on the right-hand side of its expression. In contrast, a procedural assign ment is made only when an assig nment statement is execu ted within a behavio ral stateme nt. For exa mple, the clock signal in the precedi ng example was complemented only when the statement clock = -rctock exec uted; the statement did not exec ute until 10 time units after the simulation began . It is importa nt to remember that a variable having type reg remains unchanged until a procedural assign ment is made to give it a new val ue. There are two kind s of procedural assignmen ts: blocking and nonblocking, Th e tw o are d isting uishe d by the symbols that they use. Blocking assignmen ts use the symbol ( =) as the assignme nt operator, and nonblockin g assignm ent s use « =) as the operato r. Blockin g ass ignme nt sta tements are exec uted seq ue ntially in the orde r they are li sted in a block of state me nts. No nbloc king assig nments are execu ted co ncurrentl y by evaluating the set of ex pressions on the rig ht-ha nd side of the Jist of stateme nts; they do not mak e ass ignme nts to thei r left -han d sides until all of the expressio ns are evaluated. Th e two types of 210 Chap ter S Synchronou s Sequential logic ass ignments ma y be better unders tood by means of an ill ustra tion . Co nsider the se IWO pro cedura l blocking assign me nts: 8=A C = B +1 The firs! stateme nt transfers A into B. The seco nd statement increments the value o f 8 and transfers the new val ue to C. At the completion of the assignme nts. C contains the value of A +1. Now consider the I WO statements as nonblock ing assignments : B <= A C <= B + 1 When the state ments are e xec uted, the ex press ions on the righ t-hand side are evaluat ed and stored in a tempor ary location. The value of A is kept in one storage location an d the val ue of B + I in another. After aU the express ions in the block are evaluated and stored. the ass ignment to the targets on the left-ha nd side is made. In this case, C w ill co ntain the orig inal value of B. plus 1. A ge neral rule is to use block ing ass ignments when sequential ordering is imperative and in cycl ic beha vior that is level sensitive (i.e., in co mbinational logic ). U!iC nonblockin g ass ignments when mod eling conc urre nt execution (e.g.. edge-sensitive behavior such as synchronous. co ncurre nt reg ister tran sfers ) and when mod eling latched behavior. Nonblocking assignments are im perative in dealing with register transfer level design . as shown in Chapter 8. The y model the concurrent ope ratio ns of physical hardware sy nchronized by a comm on clock . Tcd ay's designers are ex pected to know what features o f an HDL are useful in a practical way and how to avoid feat ures that are not. Following these rules will pre vent condi tion s that lead synthes is too ls astray an d create m ismatches betwe en the behavior o f a model and the behavior of physical hardw are that is produced by a sy nthes is tool. Flip-Flo ps a nd Lat che s HOL Examples 5. 1 thro ugh 5.4 show descrip tions o f vario us flip-flops and a D latch. The D latch is transparent and responds to a change in data input wit h a change in out put . as long as the enable input is asserted. The mod ule description of a D latch is show n in HD L Examp le 5. 1. It has two inputs . [) and enable , and one output Q. Since Q is evaluated in a procedu ral stalernenr. it must be decl ared as reg type . Latches respond to input signalle vels . so the two inp uts are listed without edge q ualifiers in the eve nt enable expression following the @ symbol in the alw ays statement. There is only one block ing procedu ral assig nment statement . and it speci fies the transfer of input D to output Q if enable is true (log ic I). Note that this state ment is executed every time there is a change in D if enable is I. A V -type flip-fl op is the simplest example o f a sequential m achin e . HO L Exampl e 5.2 describes two pos itive-edge D flip-flops in two mod ules. The first responds only to the cloc k: the second includes an asynchronous reset input. Output Q must be dec lared as a reg da ta type in addition to being listed as an output. Th is is because it is a target output in a procedural assi gnment statement. The keyw ord posedge ensures that the transfer of input D into Q is synchro nized by the positive-ed ge transition of e lk. A chan ge in D at an y othe r time doe s not change Q. Section 5.6 Synthesizable HOl Models of Sequential Circuits 211 HD L Exa mple 5. 1 /I Description of 0 latch (See Fig. 5.6) module DJ atch (a, 0 , enable); output a; Input 0 , enable; reg a; always @ (enable or D) If (enable) <= 0; endmodule a /I Same as: If (enable == 1) /I Alternative syntax (Verilog 2001, 2005) module DJ atch (output reg a, input enable, D): alwa ys @ (enable, D) If (enable) <= 0 : /I No action if enable not asserted endmodule a HOI. Examp le 5.2 /I 0 flip-flop without reset module DJ F (a, 0 , Clk); output Q; input 0 , Clk; reg Q; always @(posedge Clk) Q <= 0 : endmo dule /I 0 flip-flop with asynchronous reset (V2001, V2005) module OFF (output reg a, inp ut 0 , Clk, rst) : alway s @ (posedge Clk, negedge rst) If (-r5t) <= 1'bO; /I Same as: If (ret == 0) else <= 0 ; endmodule a a The second modu le includes an asynchronous reset input in addi tion to the synchronous clock. A specific form of an if statement is used to describe such a flip-flop so that the model can be synthesized by a software tool. The event expression after the @ symbol in the alway s statement may have any numbe r of edge events. either posed ge or negedge. For modeling hardware, one of the events must be a clock event. The remaining events specify conditions under which asynchrono us logic is to be executed. The designer knows which signal is the clock, but clock is n OI an identifier that software tools automa tically recognize as the synchronizing signal of a circuit. The 1001must be able to infer which signal is the clock , so you need to write the description in a way that enabl es the tool to infer the clock correctly. The rules are simple to follow: (I ) Each if or else If statement in the procedural assignment statements is to correspond to 212 Chapte r 5 Syn chronou s Seq ue ntial Log ic an asynchron ou s event. (2 ) the last else statement corresponds 10 the clock event. and (3 ) the asyn ch ro nou s events arc tested first. Th ere are tw o ed ge eve nts in the second module of HDL Example 5.2. Th e negedge rsr (reset ) eve nt is asy nchron ou s. since it ma tche s the If ( ..... rst} s raremenz. As long as rst is 0, Q is cleared to O. If elk has a posi tive tra nsition. its effect is blocked . Only if rs t = I can the posedge clock event synchro nously transfer D into Q. Hard ware alway s has a reset signa l. II is strong ly reco mmended th at all model s of edgese nsitive be havior include a reset (o r preset) input sig nal; otherwi se, the initial Slate o f the ni pflops of the seq uential circuit cannot be determin ed. A seq ue ntial circuit cannot be rested with HDL simulation unless an initial stale can be assigned with an input signal. HDL Example 5.3 describe s the constru ction of a T or lK flip-fl op from a D flip -flop and gates. Th e ci rcuit is descri bed wi th the characteristic equa tion s of the flip-fl op s: Q(I + I) = Q $T Q(I + I) = JQ' + K 'Q for a T ni p-flop for a 1 K flip-flop Th e first module. TFF, desc ribes a T flip-flop by instan tiati ng DFF. (Instantiation is ex pla ined in Sect ion 4.12.) The declared wtre, DT, is assigned the exclusive-O R of Q and T, as is req uired for bu ildin g a T flip-flop with a D flip-flop. Th e instanti ation with the val ue of DT replaci ng D in module DFF prod uccs the required Tflip-flop. Th e lK flip-fl op is spec ified in a similar manner by using its ch arac teristic equation to define a replaceme nt for D in the instantiated DFF. HDL Example 5.3 II T flip-flop from D flip-flop and gates module TFF (0 , T, Clk, rsl ); output 0 : input T, Clk, rst; wire DT; assign DT = 0 '"T ; II Instantiate the 0 flip-flop OFF TF1 (a, DT, en, rst): endmodule 1/ Continuous assignment /I JK flip-flop from D flip-flop and gates (V2oo1. 2005 ) mod ule JKFF (output reg 0 , Input J, K. Clk, rst); w Ire JK: as sIg n JK = (J & -0) I (- K & 0 ): /I Instantiate D flip-flop DFF JK1 (a . J, K, Clk. rst); endmod ule /I D flip-flop (V2001. V2OO5) module DFF (output reg 0 , i nput D, Clk, rsl ); alwa ys @ (po sedge Clk, negedg e rst) if (- rst) 0 <= 1'bo ; else 0 <= D; endm c eute Section 5.6 Syn th esizabl e HDl Models of Seq uentia l Circuit s 213 HO L Example 5.4 shows another way to de scribe a JK flip-flop. Here, we choose to describe the flip-flop by using the characteris tic table rather than the characteristic equation. Th e case mult iw ay branch co ndition chec ks the tw o-bit number obtained by concatenating the bits of J and K. The case expression ( {J, K } ) is ev aluated and co mpare d wi th the values in the list of statements that follow s. The first va lue that mat ches the true condition is ex ecuted . Since the co nca tenatio n of J an d K produces a two-bi t numbe r, it can be equal to 00. 0 1. 10 , or 11. Th e first bit gives the va lue o f J and the second the va lue of K . T he four possible con dit ions spec ify the value of the next state of Q afte r the applica tion of a po sitive-edge dock. 1101. Exa m p le 5.4 /I Functional description of JK flip-flop (V2001, 2005) module JKJF (i nput J, K, Clk, output reg Q, output Q_b); assign O_b = - 0 ; always @ (p osedge Clk) case ({J,K}) 2'bOO: Q <= Q; 2'b0 1: Q <= 1'bO; 2'b10:Q <= 1'b1: 2'b11 : Q <= - Q; ••«nooo endmodule State Diagram An HOL mod el of the operation of a sequential circuit ca n be based o n the formal of the c ircu it' s stale diagram . A Mealy HO L model is. presen ted in HO L Exa mple 5.5 for the state machine described by the state diagram sho wn in Figure 5.16. Th e inp ut, output, clock . and reset are declared in the usual manner. T he sta te of the Ilip-flops is declared with identi fier s state and neXCSlafe. T hese va riable s hold the val ues of the present stale and the next va lue of the seque ntial circuit. The state's binary ass ignment is done with a parameter state ment. (Verilog allows constan ts to be defined in a module by the keyword pera meter .) Th e four state s SO throug h 53 are ass igned bina ry au through 11. Th e notation S2 = 2'blO is preferable to the alternati ve 52 = 2. The former uses only two bits to store the constant. whereas the latter res ults in a binary num ber with 32 (or 64 ) bits. HDL Exa mple 5.5 " Mealy FSM zero detector (See Fig. 5.16) mo dul e MealLZero_Detector ( output reg y_out, input x_in, clock, reset ); state, next state: reg [1: 01 SO = 2'bOO, S1 = 2'b01 , S2 parameter Verilog 200 1, 2005 syn tax =2'b10 , $3 =2'b11; 214 Chapter 5 Synchron ou s Sequential Logic always @ (pos&dge d ock, negedge reset) if (reset == 0) state <= $0 ; else state <= next_state; Verilog 2001, 2005 syntax 1/ Form the next state always @ (state. x_in) case (state) $ 0: if (x_in) next_Slate = $1 ; els e next_sla te = SO; 51 : if (xjn) next_slate = $3 ; else next_state = SO; 52 : if (- xJ n) nexCstate = 50 ; else next_state = 5 2; $3 : if (xJ n) next_state = $2 ; else next_state = SO; end easa alw ays @ (state. x_in) case (state ) SO: Loul =0; 51 , $2 . $3 : L Out = - x_in; end ease endmodule II Form the output module t_MeaIL Zero_DetectOf; wi re t_Lout; reg c x_in, I_clock, C raset; MealLZero_Detector MO (Cy_out, t_xj n, I_clock, t_reset); Ini tia l #200 $fi nish; Ini tial begin I_clock = 0; forever #5 t_clock = - c clock; end In itial fork Cresel = 0; #2 U eset = 1; #87 C reset = 0; #89 t_reset = 1; #10 t_x_in = 1; #30 t_x_in = 0; #40 t_x_in = 1; #50 t_x_in = 0; #52 t_x_in = 1; #54 t_x_in = 0; #70 t_x_in = 1; #80tx - in= 1"' #70 t_x_in = 0; #90 t_x_in = 1; #100 I_x_in = 0; #120 I_x_in = 1; #160 t_x_in = 0; #170 t_x_in = 1; - jo in endmodu le Section 5.6 Syntheslzeble HOt Models of Sequential Circuits 215 The Verilog mood in HDL Example 5.5 uses three a lways blocks that execute concurrently and interact through common variables. The first always statement resets the circuit to the initial state SO = 00 and specifies the synchronous clocked operation. The statement slate <= ne x r.stat e is executed only in response to a positive-edge transition of the d ock. This means that any change in me value of nexC state in the second a lways block can affect the value of state only as a result of a posed ge event of clock. The second a lways block determines the value of the next state transition a." a function of the present state and input. The value assigned to state by the nonblockin g assignment is the value o f nexC.I"tale immediately before the rising edge of clock. Notice how the multiway branch condition implements the state transitions spedlied by the annotated edges in me state diagram of Fig. 5.16. The third always block specifies the output as a function of the present state and the input. Allhough this block is listed as a separate behavior for clarity, it could be combined with the second block. Note that the value of output >,_oul may change if the value of input x_in changes while the circuit is in any given state. So lei' s summarize how the model desc ribes the behavior of the mach ine: At every rising edge of clock. if reset is not asserted, the state of the machi ne is updated by the first a lway s block ; whe n state is updated by the first a lways block. the change in state is detected by the sensitivity list mechanism of the second a lways block; then the second al ways block upda tes the value of next_state 01will be used by the first alw ays block at the next tick of the cloc k); the third al ways block also detects the change in state and updates the value of the output. In addition. the second and third alw a ys blocks detect changes in x_ill and update nextstate and Y_OUl accordin gly. The test bench provided with Meal.v_u ro_DeleclO r provides some waveforms to stimulate the model, producing the results shown in Fig. 5.22. Notice how t~'_f)lIt voltd M ealy o utp ut FIC'URE 5.22 Simulation outp ut of Mealy_Zero_Detector Mealy glilch 216 Chapter 5 Synchronou s Sequential logic responds to changes in bo th the state and the inp ut and has a glitc h (a tran sient logic valu e). The waveform descrip tion uses the fork ... j oin co nstruct. Sta tement.s within the fo rk ... joln block exec ute in parallel, so the tim e del ays are re lative to a common reference of ' "" O. It is usuall y more convenient 10 use the fork ... join block instead of the begin . .. end bloc k in describing wavefo rms. The wa veform of reJet is triggered "on the fly" ro de monstrate that the mach ine recovers from an unexpected reset conditio n during any state. How doc s our Verilog mo del Mealy_Zero_Detector corre spond to hard ware ? Th e first a lway s bloc k corres po nds to a 0 flip -flop impleme ntation of the state register in Fig. 5 .11 : the second ulu 'u."1l' block is the com blnanonul lcg jc block descri bing the next state: lilt" third alw ays bloc k de scribes the ou tput co mbinatio nal logic of the zero-detecting Mealy machine. The register ope ration of the state transition uses the no nblocking assignmen t ope rator « "" ) because the (edg e-se ns itive ) flip -flop s of a sequential machi ne are updated con cu rrently by a common clock. T he secon d and third a lways block s de scribe combinational logic. which is level se nsitive, so they usc the blocking ( "") assignment operator. Their sensitivity lists include both the state and the input becau se thei r logic must respond to a cha nge in either or bot h of them. Note: the model ing style illu str ated by Meafy_Zero_Detector is co mmonly used by de signers. Noti ce th at the reset signal is associated with the first a lways block. It is mod eled here as an ac tive-lo w reset. By including the rese t in the mode l of the stare tran sition. there is no need to include it in the combinational logic (hat specifies the nex t state and the o utput. producing a simpler and more reada ble descri ption. The behavior of the Moore FSM having the state diagram shown in Fig. 5.19 can be modeled by the Verilog desc ription in HDL Example 5.6. Thi s exam ple sho ws that it is poss ible to de scribe the state transition s of a cloc ked sequential mac hine with only one 8 1" '8)'S block. The present state of the circu it is identified by the variable state. The state transitions are triggered b)' the rising ed ge of the cloc k acco rding 10 the conditions listed in the case statements. The co mbinational logic that implicit ly determines the next slate is included in the nonblocking assignmcnt to state . In this examp le. the output of the circuit is indepe ndent of the inp ut and is taken directly from the outputs of the flip-fl ops. The two-bit output y_out is specified with a co ntinuous (a,,<;i~nl statement and is equal to the value of the prese nt state vecto r. Figure 5.23 shows some simulation results for Moorej.todeC Fig_S-' 9. Notice that the output of the Moore machine doe s not have gli tches. HUL Example 5.6 1/ Moore mode l FS M (see Fig. 5.19 ) Ve rilog 2001 ,2005 synta x m odule Moore_Mode L Fig_5_ 19 ( o utput (1: OJ L out , xJn, clock , reset inp ut ): stale ; reg (1: OJ SO :: ZbOO, 5 1 :: 2'b0 1, S2 :: 2'b10 , S3 :: 2'b 11; param et er always @ (po s e dge clock, negedge reset) if (reset e e 0) sla te <= SO; else case (state) II Initialize 10 state SO Sectio n 5.6 so: 5 1: 52: 83 : Sy n t h e sizable HDl Mo d el s o f Seq uential Circuits 217 it l - xJ n) state <: 51 : etee state <: sO', it (x_in) stale <: 52 ; el se s tate <: 53 ; if (- xJn) stale <: 83 ; else stale < : 82; if (- x_in) stale <: SO; else stale <: 83: endcase I$sign Lout : stale ; 1/Outpu t of flip-flops e nd mod u le ., 0 I_d oc k. IJr....r IJjll Jrorr! I:O! 0 2 3 0 0 3 '_,'_oll/! I :O/ 0 2 3 0 0 , FIGUR£ 5 ,2) Simulation o ut p ut of HDl Examp le 5.6 Structural Description of Clocked Sequential Circuits Combinational logic ci rcuits can be described in Verilog by a connection of gates (primitives and UDPs). by dataflow statements (cont inuous as..ignmems). or by level-sensitive cyclic behaviors (alw ays block s), Sequential circuits are composed o f co mbinational logic and flipflops, and their HDL mode ls use sequential UDPs and behavioral statement.. (edge-sensitiv e cyclic behaviors) 10describe the operation of flip-flops. One way 10 describe a sequentia l circuit uses a combination of dataflow and behavioral statements. Th e flip-flops are described with an always statement. The combi national part can be described with assign stateme nts and Boo lean equations, The separate modu les ca n be co mbined to fonn a structural mode l by instant iation within a module. Th e structural de script ion o f a seq uential circuit is shown in HDL Example 5.7. We want to encourage the reader to co nside r a lternative ways to mode l a circuit. so as a point of co mpariso n. we first pre sent Moore_MudeC Fig_5_20. a Verilog be havioral description o f the machine hav ing the stale diagram show n in Fig . 5,20, Thi .. style of mod eling is di rect. 218 Chapter S Syn chronou s Sequential Logle An alternative style . used in Moore_Mod eC STR_Fig_5_20. is to represe nt the struc tu re shown in Fig. 5.20<a). This style uses two modu les. The first describes the circu it of Fig. 5.20l a). The second describes the T flip-n op that will be used by the circui t. We also sho w two ways to model the T flip-flop. The first asserts tha r. ar every clock rick . the value of the ourput o f the flip· flop togg les if the togg le inp ut is asserted. Th e second model describes the beha vior o f the toggle ffip -Ilop in tenus of its c harac te ristic equ ation. Th e tim style is at tr acti ve because it does not req uire the reader to re member the c haracte rist ic eq uatio n. No nethele ss. the models are interchangea ble and will synthes ize to the same hard ware circuit. A test bench mo dule provides a stimulus for verifyi ng the fun cti onalit y of the cir cuit. Th e seq uent ia l circ uit is a two- bit bi nar y co unte r co ntrolled by inp ut x_i ll. The output, y_out, is enabled whe n the co unt reach es binary II . Fli p-flop s A and 8 are incl uded as outpu ts in order to c hec k their ope ration . Th e flip-flop input equ ation s and the o utput equation are evaluated with co ntinuous assig nme nt (a ssip;n ) sta tements havin g the co rrespo nd ing Boo lean express io ns. The insta ntiated T flip-flop s usc TA and TB as defined by the inpu t equations . The second mod ule describes the T fli p-flop . The reset inpu t reset s the flip-flop to 0 wi th an active-low sig nal. T he operation o f the flip-n ap is ..pccified by its character istic equatio n. Q(I + I) - Q IIi T. The test bench incl udes bot h models of the machine. The stimulus mod ule provide .. com mon inputs to the circuits to simultaneously display their OUtput respon ses. Th e first in itia l block provid es eig ht clock cycle .. with a period of IOns. Th e seco nd ini tia l block specifies a toggling o f input x _ill that occurs at the negative edge tran sition o f the cl ock . The result of the simulation is shown in Fig. 5.24 . The pair (A. B ) goe s through the binary sequence 00. 0 1. 10. I I, and back 10 00 . The change in the count is triggered by a positive edge of the clock. provided that x_i ll :: I. If xjll :: O. the count does not change. y_oll1 is equal to I when both A and B are equa l to I. T his verifie s the main functionality of the c ircuit. but not a reco very from an unex pected reset eve nt. HIlI. Example5.7 /I State-diagram-based model (V2001, 2005) module Moore_ModelJig_5_20 ( output L out, Input x_in. clock, reset ): reg [1: OJ state; parameter 80 = 2'bOO. 81 = 2'b01. 82 = 2·b10. 83 = 2'b11; always @ (posedge clock. negedge resell If (reset == 0) state <= 80; else case (state) 80: jf (x_in) stale <= 81; elsa stale <= 80; 81: If (x_in) state <= 82; else state <= 81; II Initializeto state 80 Section S.6 Syntheslzable HDl Models of Sequential Circuits 52: if (xJ n) state <= S3: else stale <= 52: 53: if (x_in) slate<= SO; else state <= 53; endcase assign L out = (stale == 53); endmodule II OlJlpUt of flip-flops If structural model module Moore_Model_5TRJ iIL5_20( output LOUt, A, B. Input x_in. dock. reset ): wIre TA, TB ; II Flip-flop input equations assign TA = xJ n & B: assign TB = xJn: 1/ Output equation assign Lout = A & B; 1/ Instantiate Toggle flip-Ilops Toggle_llip-'loP_3 M_A (A. TA. clock. resell: Toggle)lip-" op_3 M_B (B. clock. reset): re. endmodule module Toggle_lIip) lop (0. T. ClK, R5T_bl; output Input reg Q: T, ClK. R5T_b: 0: always@ (posedge CLK. negedge RST_b) if (RST_b == 0) a <= 1bO: else if (T) <= endmodule a -o: /I Alternative model using Characteristic equation 1/ module Toggle_flip_flop (Q, T, CLK. RST_b): 1/ output Q: If input T, CLK, RST_b; 1/ reg 0; If If 1/ If always@ (posedge CLK, negedgeRST) If (RST_b == 0) <= 1'bO; else Q<= QA T; endmodule a 219 220 Chapter 5 Syn chronous Sequential logic module tMoore_Fig_5_20; wire 1""y_out_2,1....Y_out_l ; reg tx-,n, tclock. U eset; Moore_Model]i9-5_20 Moore_Modet STR_Fig_5_20 M1(1""y_OUU , I_x_in, U:tock. tJeset); M2 (t y_out_2. A. B, '-)!,_in, U::lock. Uesel): Initial #200 Sfinish; initi al begin U eset =0; U:lock =0; #5 Ueset = 1; repeat (16) #5 t_clock = ~U:lock; ", init ial begin t_xjn = 0; #1 51_x_in = 1; repea t (8) #10 t x in = ~t x in' -- en' -- ' endmodule o v , ~. ' _cloclt. ~ '-rtH I --' I~j.. I..)'~<II"-' (->,_olll..1 A 8 FIGURE 5.2 4 Simulation output of HDl Example 5.7 '00, . " Sedion 5.7 5 .7 State Reduct ion a nd Assignment 221 5TATE REDUCTION AND ASSIGNMENT 1be ana lysis of seq uential circuits starts fro m a circuit diagram and culminate s in a state table or diag ram . The design (synthesis) of a seq uential circu it starts from a set of speci fica tions and culminates in a logic diagram. Design procedures are presented in Section 5.8. Two sequential ci rcu its may exhibi t the same input -output beh avior. but have a different number of inte rnal states in the ir state diagram . The curre nt sec tion di scu..ses certain propertie s of sequential circuits th at may simplify a design by reducing the number o f gates and flip- flops it use... In general . reduci ng the num ber of flip-fl ops reduces the co..t of a circuit. State Reduction T he red uct ion in the number of fli p-fl op s in a seq uential ci rcuit is re ferre d to as the stc rereduction problem. State-redu ction algorit hms are concerned with proce dure s for redu cin g the number of states in a state table. while keeping th e ex ternal input-output requi re ments unchanged. Since III Flip-flops produ ce 2'" states. a red uction in the number of states may (or may not) res ult in a redu ction in the number of flip-flops. An unpr edict ab le effect in reducing the number of flip-fl ops is that sometimes the eq uivalent circ uit (with fewer flip-flops ) may require more combinational gates. We will illustrate the state-red uction procedure with an example. We start with a sequential circuit whose speci fication is give n in the state diagram of Fig . 5.25 . In our ex ample. only the input-output sequences are important: the internal stares are used mere ly to pro vide the required seq uences. For that reason. the states marked inside the circ les are denoted by Jetter sy mbols instead of the ir binary values . This is in con tras t to a binary co unter. where in the binary val ue sequence of the sta res themselves is taken as the o utputs. 1/ 1 Flc;URE 5.25 State diagram 222 Chapter S Synchronous SequentlallogJc There are an infinite numbe r of input sequences thai may be applied to the ci rcuit: each re sults in a unique output seq uence, As an example . co nsider the input sequence 01010110100 starting fro m the initial state a. Eac h input of 0 or I produces an output of 0 or I and cau ses the circui t to go 10 the next stale. From the stare diagram. we obtain the ccrpn and..tate seqcence for the given input sequence as follows: With the circuit in initial state a. an input o f 0 produces an output of 0 and the circ uit remains in stal e a. with present sta te a and an input of I. the ocrput is 0 and the next state is b. With present state b and an input of O. the ou tput h. 0 and the next stare is c. Co ntinuing this process. we find the co mplete sequeoce to be as follows: state inpul output a o o a b o o I o c I o d o o f f I I o f g I I o o o g a o o In eac h co lumn. we have the prese nt state. input value. and output value. The next stale is wri tlen on la p of the next colum n. It is importa nt to real ize thai in this circuit the states themsel ves are of secon dary importance. bec ause we are interested only in out put sequences caused by input sequences. Now let us assume that ..lie have found a sequential circu it whose stat e d iagram has fewe r tha n seve n states. and ..uppose we wish 10 co mpare this circ uit with the circuit whose state diagram is give n b)' Fig. 5.25 . If identical input sequences are applied to the two circuits and iden tical ou tput s occ ur for all input sequences. the n the two circui ts are said 10 be equ ivalent (as far as the input-output is concerned) and one may be replaced by the otber.Tbe problem of stale reduction is to find ways of reducing the number of slates in a sequential circuit without alteri ng the input -output rela tio nships . We now proceed 10 reduce the number of states for thi s example. Firs t. we need the state tabl e: it is more con ..cnicnt to apply procedures for state reduction with the use of a table rathe r than a diagram. The ..tate table of the circuit is listed in Table 5.6 and is obtained directly from the slate d iagram . The following algorithm for the state reduction of a completel y speci fied state table is give n here withou t proof: "Two states are said to be eq ui valen t if. for eac h member of the set of input s. they gi..-c exactly the same ou tput and send the circuit either to the same state or 10 an Table 5.6 Statt Tablt Next State Pr esent State a b c d , f s x = 0 a c a , a s a x = 1 b d d f f f f Output x = 0 x= 1 0 0 0 0 0 0 0 0 0 0 I I I I Section S.7 State Reduction and Assignment 223 Table 5 .7 Rfiiudng the Stare Tobie Ne xl Sla t e Present St a t e x = 0 , , b r c x = 1 , f e = 0 X 0 0 0 0 0 0 b e , K d d rr d Ou t p u t f f f = 1 0 0 0 I I I equivalent state." When two states are equivalent. one of them can be removed without altering the input-output relationships. Now apply this algorithm to Table 5.6. Going through the state table. we look for two present states that go to the same next state and have the same output for both input combinations. States g and e are two such stares: They both go to states a and f and have outputs of 0 and I for .l = 0 and .r = I, respectively. There fore. states g and e are equi valen t. and one of these states can be removed. The procedu re of removing a state and replacing it by its equivalent is demonstrated in Table 5.7. The row with present state g is removed. and state g is replaced by state e each time it occurs in the columns headed "Next State," Present statefnow has next states e andf and outputs 0 and I for .r = 0 and x = I , respectivel y. The same next states and outputs appear in the row with present state d. Therefore, statesf and d are equivalent, and state j'can be removed and replaced by i/. The final reduced table is shown in Table 5.8. The state diagram for the reduced table consists of on ly five states and is shown in Fig. 5.26. This state diagram satisfies the orig inal input-output specifications and will produce the required output seque nce for any given input sequence. The following list derive d from the state diagram of Fig. 5.26 is for the input sequence used previously (note that the same output sequence results. although the state sequence is different): sla te input output a 0 0 a b 0 0 I 0 c d I 0 0 0 e d I 1 e d d 0 0 0 0 Ta bl e 5 .8 Reduced Stote Tobie Ne xt State Pr e se nt State a b c x =0 a c a x = 1 Ou t p ut x =0 x =1 d 0 0 0 0 0 0 I I b d , d d 0 e a d 0 e 0 0 a 224 Chap ter S Synchronou s Sequential logic 0,0 • 0.0 I "t) FIGURE 5.26 Redu ced state diagram In fact.this sequence is exactly the same as that obtained for Fig . 5.25 if we replace g by f' and f by d. Checking each pair of stares for equivalency can be do ne systematically b)' mean s of a proced ure thai employs an implic ation tab le. which co nsists of sq uares. one for every suspected pair of pos sible equivalent states. By j ud icious use of the table. it is possible to determi ne all pairs of equivalen t Slates in a state table.The use of the implicatio n table for reducing: the number of stales in a state table is demonstrated in Sect ion 9.5. The sequential circ uit of this exa mple was red uced from seven to five stat es. In general. re ducing the number of Mates in a stale table ma y result in a circuit with less eq uiprrem, HQ\\"ever. the fact th at a state tabl e has bee n reduced to fewe r slates does not guarantee a savin g in the number of flip- flops or the number o f gate s. St ate Assignment In order 10 design a -eq uenual ci rcuit with physical co mpone nts. it is necessary 10 assign unique coded binary \'aIUl•~. 10 the slates. For a circ uit with m slates. the codes must con tain n bits. ....here 2" <:! m. For example......ith three bits, it is pos sible to a..sign codes 10 e igh t states. den oted by binary numbers 000 thro ugh Ill . If the state table of Tab le 5.6 is used . we must as sign binary values to se ven states : the rem aining state is unu sed . If the state table of Table 5,8 is used . only five stares need binary assignment, and we are left with three unused states. Unused slates are treated as don't -care condiuons during the design . Si nce don't-care conditions u..ually hel p in obtaining a simpler circ uit, it is more likely that the circ uit with five Slates will req uire fe w er co mbinationa l ga tes than the one with seven states. The simplest way to code five states is to use the first five integers in binary cou ntin g order, as shown in the fiN assignme nt of Table 5.9. An other sim ilar assign men t is th e Gray code shown in assignrreru2. Here. onl y one bit in the code group changes w hen going from one number to the next. This cod e makes it eas ier for the Boolean functions 10 be placed in the map for simplifica tion . Another possible assignment o ften used in the design of Slate mac hines to con trol data-path units is the one-hot assignment. Th is configuration use s as many bits as there are Sect ion 5.8 Design Procedure 225 Table 5 .9 Three Possible Binory 5tate Assignments St ate Ass ignment 1, Bin a ry "b c d e Assignment 3, One -Ho t Assignment 2, Gr ay Code non (Xl(J 001 0 10 011 100 001 011 0 10 11 0 ()()()() I 000 10 00100 01000 I()()(()() Table 5 .10 Reduced 5ta te Table with Binary AJSignment J Ne xt State Pr e sent State 000 001 010 Oil 100 x =0 lXllJ 010 000 100 000 x =1 001 011 011 011 011 Output x =0 x = 1 0 0 0 0 0 0 0 0 I I states in the circuit. At any given time. only o ne bit is eq ual to I while all others are kept at O. This type of assignment uses one flip-flop per state. which is not an issue for register-rich fieldprogrammable gale arrays. (See Chapter 7,) One- hot encod ing usuall y leads to simpler decoding logic for the next state and output. One-hot machines ca n he faster than machines with sequential binary encoding. and the silicon area required by the extra flip-flops can be offset by the area saved by using simpler decoding logic. This trade-off is not guaranteed. so it must beeval uated for a give n design. Table 5.10 is the red uced state table with binary assig nment 1 substituted for the leiter symbols of the states. A diffe rent assign ment will result in a state table with d ifferent binary values for the stat es. The binary form of the state table is used \0 der ive the next-state and output-forming combinational logic part of the sequential circuit. The complexity of the combinational circuit depends on the binary state assignment chose n. So metimes, the name transition table is used for a stare table with a binary assignment. This co nvention distinguishes it from a state table with symbolic names for the states. In this book. we usc the same name for both types of stale tables. 5.8 DESIGN PROCEDUR E Design procedu res or methodologies specify hardware that will implement a des ired behavior. The design effort for small circu its may be manual. but industry relies on automated synthesis 226 Chapter 5 Synchronous Sequential Logic tool s for designing massive Integrated circuits. The building block used by !>ymhc!>i!> tool .. is the D flip -flop. Together with additional logic. it ca n tmple memthe behavior of JK and Tflipflops . In fact . desig ners ge nerally do not concern themselves with the type of flip-flop: ramer. their focus is on correctly describi ng the sequential functionality Ihat is to be implemented by the synthesis tool , Here we will illus trat e manu al methods using D. JK. and T flip-flops, The design of a clocked sequential circ uit starts fro m a set of specifications and culminate.. in a logic diagram or a list of Boolean functi ons from which the logic diagram can be obtained. In co ntrast to a com binat ional circu it. .....hich is fully ..pecified b)' a truth tabl e. a sequential circu it requ ires a stare table for its specifica tion. The first step in the design of sequential circuits is to obtain a state tab le or an equ ivalent rep resent at ion. such as a Slate diagram. A synch ronous ..equential circ uit is made up of flip-flops and combinational gate.... The design of the ci rcuit consists of choosing the flip- flops and then finding a combinational gate structure mat. together with the flip-flops. produces a circuit wh ich fulfills the staled specification... The number of Fl ip-flo ps is determ ined from the number o f states needed in the circ uit. The co mbinational circuit is de rived from the state table by evaluating the flip- flop input equ ations and output equations. In fact. once the type and number of flip-flops are determ ined. the design process invol ves a transformation from a sequential circ uit prob lem into a combinational circuit probl em . In this way. the techniques of combinational circ uit design can be app lied . Th e proced ure for design ing synchro nous seq uential circu its can be summariz ed by a Ii.. t of recom mended steps ; I. From the word description and specifications of the desired operation . deri ve a stale di agram fo r the circui t. 2. Reduce the number of states if nece ssary . 3. Ass ign bi nary values to the states. 4. Obtain the bin ary-coded Slate table . S. Choose the type of flip-fl ops to be used . 6. Deri ve the simpli fied flip-flop input equations and output equations. 7. Dra w the logic d iagra m. The .....ord spcc tncn ion of the circ uit behavior usually assumes that the reader is familiar .....ith digital logic terminology. It is necessary that the des igner use intu itio n and experience to arrive at the correct interp retation of the circuit spec ificat ion". because word description s may be inco mplete and inexact. On ce such a speci fication has been set down and the state diagram obtuined. it i... j:>().s.sibJe /0 use known synthesis proCt'(1ure.s ro complele the design. A lthough there are formal proce dures for state red uctio n and assignm e nt (steps 2 and Sj. tbey are seld om use d by experienced designer s. Steps 4 through 7 in the design can be imp lemented by exac t algorithms an d therefore can be automated. Th e pan o f the design that follows a well-defined procedure is refe rred [ 0 as synthesis. Design ers using logic synthes is tool s (software) can fo llow a simplified proce ss that develops an HDL descri ption directly from a state diag ram.Jetting the synthesi s 1001 determine the circuit elements and struct ure th at implement the de scription . 11)e first step is a critical pan of the proc ess. because succeeding steps depe nd on it. We .....iII give one simple exa mple to demonstra te how a stale diagr am is obtained from a .... ord specification. Sect ion S.8 Design Procedure 227 0 0 I 0 S,,., 0 • Sl iD SJi1 FIGURE 5 .27 State diagram for seque nce detector Suppose we wish to des ign a circuit that detects a sequ ence of three or more consecut ive l 's in a stri ng of bits coming through an input line (i.e .. the input is a seria l bit stream) . The state diagram for this type of circuit is show n in Fig . 05 .27. It is derived by starting with state So. the rese t stat e. If the input is O. the circ uit stays in So. but if the input is I . il goes 10 stat e 51 to indicate that a I was detected . If the next input is I, the change is to state S2 to indicat e the arrival of two con secuti ve t 's, bUI if the inpu t is 0, the ...tale goes bac k to So. The third con sec utive I send s the circuit to stare 53' If more I 's are detected , the circuit stays in 5 J • Any 0 input se nds the circ uit back to So- In this way. the circuit stays in 53 as long as there are three or more consec urive 1' 5 recei ved. Thi s is a Moore mod el sequential circuit , since the output i... I when the circ uit is in state 53 and is 0 otherwise. Synth~sls Using 0 Flip-Flops Once the stare diagram bas been derived, the rest o f the design fo llo w s a straig htfo rwa rd synthesi s procedure. In fact, we ca n design the circu it by using an HIJ L desc riplion o f the state diagra m and the proJX'r HOL synthesis 1001.. 10 obtain a sy nthe..ized netlist . (The Hp l. descnprion of the state diagram will be similar to HO L Examp le 5 .6 in Section 5.6.) To design the circu it by hand. we need to assign binary codes 10 the slates and list the state ta ble. Thi s is done in Table 05 .1 I. The table is derived from the Stale diagram of Fig. 5 .27 with a sequential binary assignment. We choose two D flip- flops 10 represent the four states, and we labe l their outputs A and B. The re is o ne input .r and one output j- , The charac teris tic equation of the D fl ip-flop is Q(t + I ) = DQ, whic h mea ns that the nex t-state values in the state table specify the lJ input condition for the flip-flop. The flip -flop input equat ions can be obtained directly from the nextstate columns of A and B and expre ssed in sum-of-minle rms fo rm as A(, + I) = D,( A. B. x ) = B(/ · 1) ~(J. 5. 7 ) = D. (A. B. x ) = ~ (1.5. 7) y(A. B. .r] = ~( 6. 7) Chapter 5 228 Syn chronou s Seque ntial logic Table 5 .11 Stot~ Tab~ for SeqlRnu Dtr«tOf Pre sent State Next Input State • • A 0 0 0 0 0 0 0 0 0 0 I I I I 0 0 A ,, I I , 0 0 0 ,, Output • r 0 0 0 0 0 0 0 I 0 0 0 I I I 0 0 0 I I I ,, where A and B are the pre sent -state values of fiip-flops A and B. x is the input. and D A and D B are the inpu t equations. Th e m intenns for output y arc obtained from the ou tput column in the state tab le. The Boolean eq uatio ns are simplified by means of the maps plotted in Fig , 5 .28. The simplified equ ation s are DA = Ax + Bx D8 =Ax +B'x Y = AB TIle advantage of designing with D fli p-flops is thai the Boolean equations.describing the inpuis to the flip-flops can be obtained directly from the stale table . Software tool s automatically infer and se lect the f)-type fli p-flop from a properl y written HO L model. The schematic of the sequential circuit is drawn in Fig. 5.29. • B A 0 AI, .. B 00 " II 01 " 1(' 10 " , " l"r I :'; " • B '=.,jJ , A 0 Al' . . II I " i:i~. ~.,& .,~ 00 01 D, fiGURE 5 .28 Maps for seq uence detector , B . II - A.r+ B 'x B 10 " .. A .. B 00 0 Al' -. II 01 " .. " If , , , - 14 8 10 -, ,i Section S.8 ~ l£4Z , 229 ~ J ,0 IS I J)§ I Ciock T Design Procedure I A 8 B' ) FIGURE 5.29 logic diagram of sequence detector Excitation Tables The design of a sequential circ uit with flip-fl ops other than the D type is complicated by the fact that the input eq uations for the circu it must be derived indirectly from the state table. When D-type flip-flops are employed, the input equations are obtained directly from the next state. This is not the case for the JK and T types of tli p-l1ops. In order to determine the input equations for the,e flip-flops, it is necessary to derive a functional relationship between the state table and the input eq uations. The flip-flop characteristic tables presented in Table 5. 1 provide the value of the next state when the inputs and the present stale are known. These tables arc useful for analyzing sequential circuits and for defining the ope ration of the flip-flops. During the design process, we usually know the transition from the present state to the next state and wish to find the flip-flop input conditions that will cause the required transition. For this reason, we need a table that lists the required inputs for a given change of stale. Such a table is calle d an excitation table. Table 5. 12 shows the excitation tables for the two flip-flops. Each table has a column for the present slate Q(t), a column for the next state Q ( r + I ). and a column for each input to show 2 30 Chapte r 5 Synch ronous Sequential Logle Table 5 .12 Flip -flop Excitation Tobles = 1) ~ = 1) J « Q(l) 0 0 0 0 0 0 0 I I I 0 I X X X X I 0 I I I 0 I I I 0 Q( t) Q(l I (a) JK 0 Q(t (b) T how the requ ired tran sition is achieved. There are four possible tran sitions from the prese nt slate to the next stare . Th e require d input conditions for eac h of the fou r transitions are derived from the information ava ilable in the characteristic table. The symbol X in the tables represent s a do n'H are condition, which means that it does not matter whethe r the input is 1 or O. The excitation table for the J K flip-tlop is shown in part (a). When both present "late and next state are O. the J input m ust remain at 0 and the K input can be either 0 or I. Sim ilarly. ....hen both present state and next state arc 1. the K input mu st remain at O. while the J input can be 0 or 1. If the flip-flop is to have a transition from the O-state to the l- state, J must be equal to I. since the J input sets the fl ip-flop. However. input K may be either 0 or I. If K = O. the J = I condit ion sets the flip-fl op as req uired ; if K = I and J = I. the flip-flop is com plemented and goes from the Ocstatc to the I-state as requ ired . Therefore. the K input is marked with a don't care condition for the O-to- I transition. For a transition from the I-state to the O-state. we must have K = I. since the K input clears the llip-flop. However. the J input may be either a or 1. since J = a has no effect and J = 1 together with K = 1 complements the flip-flop with a resultant transition from the l -state to the a -state . The excitation tab le for the T flip-Ilop is shown in part (b). From the characte ri...tic table. we find that when input T = I. the state of the flip-flop is complemented. and when T = O. the state of the fl ip-flop remains unchanged. Th erefore. when the state of the flip-flop must remain the same. the requ ireme nt is that T = O. When the state of the flip-flop ha.. to be complemented. T must equal I . Synthesis Using JK Flip-Flops The manual synthesis proced ure for sequential circuits with JK flip-flops is the same as with D flip-fl ops. except that the input equations must be evaluated from the present-state to the nextstate transition derived fro m the excitation table . To illustrate the procedure. we will synthesize the sequential circuit specified by Table 5.13. In addition to having columns for the present state, input. and next state . as in a conventional state table. the table shows the nip-flop input conditions from which the input equations are deri ved. The flip-flop inputs are derived from the state table in co nj unction with the exc itation table for the JK flip-nap. For example . in the first row of Table 5.13. we have a transition for llip-flop A from 0 in the present state to 0 in the next state . In Table 5.12. for the JK flip-flop. we find that a transition of states from present state a to next state 0 requires that input J be 0 and input K be a don't-care . So 0 and X are Section S.B Design Proced ure 231 Table 5.1J Srat~ Tabk and JK flip-Flop Inputs Present State Input Nellt State A • • A • 0 0 0 0 I I I I 0 0 I I 0 0 I I 0 I 0 I 0 I 0 I 0 0 I 0 I I I 0 0 I 0 I 0 I I 0 Fllp .Flop Inputs J• '. 0 0 I 0 X X X X X X X X 0 0 0 I J. '. 0 I X X X X I 0 0 I X X X X 0 I entered in the first row under J,4 and K A , respecti vely. Since the first row also shows a transition for flip-flop B from 0 in the present state to 0 in the next state, 0 and X arc inserted into the first row under I n and KB , respec tive ly, The seco nd row of the table shows a transition for flip-flop B from 0 in the present state to I in the next slate. From the excitat ion table. we find that a tran sition from 0 to I requires that J be I and K be a don 't -care. so I and X are copied into the seco nd row under JIl and K n. respecti vely. The proce.... is continued for eac h row in the table and for eac h ni p-flop. with the input conditions from the excitation table co pied into the proper row of the particular flip-flop being considered . The nip-flop inpu ts in Table 5.13 specify the truth table for the input equations as a function of present state A, present state B. and input .r. The input equa tions are simplified in the maps of Fig. 5.30. Th e next -stare value s are nOI used durin g the sim plification, since the input equat ion s are a function of thc present state and the input only. Note the adva ntage of using J Ktype nip-flops when sequential circuits are de signed manually. The fact that there are so ma n)' don 's-care entries ind icates that the combinational circuit for the input equations is likely to be simpler, because do n' t-care nun rerms usua lly help in obtaining simpler expressions. If there are unused states in the state table. there will be additi onal don 't -care conditio ns in the map. The four input equations for the pair of JK flip-flops arc listed under the maps of Fig. 5.30 . The logic diagram (schematic) o f the sequentia l circui t is dra wn in Fig. 5.3 1. Synthesis Using T Flip-Flops Th e procedure for synthesizing circuits using T flip , flops will be dem onstrated b), desi gnin g a binary co unter. An n-bit binary count er consists of n flip-flops that can count in binary from 0 102" - I. The stale d iagram of a three -bit counter is shown in Fig. 5.32. As see n from e e binary states indic ated in..ide the ci rcles. the nip -flop OUIP UIS repe at the binary coun t sequence with a return to 000 after 111. T he dire cted lines bet wee n circles are not marked with in put and output values as in other state d iagram s. Remember that state transitions in cloc ked sequential circuns occur d uring a clock ed ge; the flip-flop.. remai n in thei r present slate s if no cloc k is applied . For that reason. the cloc k doe s nOI appear explici tly a!'> an inpu t variable in 232 Chapte r S Synchronou s Seq uentia l l o g ic A B , B, . .. I,-, .. .. . II 01 ~, 10 " 0 A B, 1 X X 7 'j'" I~ X ,, A 00 II '. 0' -, .,10 I, .. .., .. 0 A .. B X X X X " , I" - Bx' A 0 .. ~I m, A B B Ir t' .. I, I ' ~ I ~ .. B" 0' II X " 10 A -. « " B" 00 X u X I, A X " II OJ " -, X 10 II"',• . II ' Il :, -., " X , FIGURE 5 .30 Maps for Jand K input equations , J' v J A J CIt J~; , A' J B , 11 .9 CIk Clod FI(j,URE 5.:31 Logic diag ram for sequenti al circuit with JI( flip- flops B' Sectio n S.8 WI Design Procedu re 233 III 0'. e @le---' FIGURE 5.32 State diag ram of three-bit binary counter a slate diagram or slate table. From this point of view. the state diagram of a counter does not have to show input and output values along the directed lines. The only input to the circu it is the cloc k. and the output s are specified by the present state of the Flip-fl ops. The next state of a counter depends entirely on its present state, and the state trans ition occurs every time the clock goes throu gh a transition. Table 5.14 is the state table for the three-bit binary counter. The three flip-flops are symbolized by A 2• A ]. and A o. Binary counters are constructed most efficiently with T flip-flops because of their complement property. The flip-flop excitation for the Tinputs is derived from the excitation table of the T nip-flop and by inspection of the state transition of the present state to the next state. As an illustration. consider the flip-flop input entries for row 001 . The present state here is 00 1 and the next state is 010. which is the next count in the sequence. Comparing these two counts, we note that A 2 goes from 0 to O. so TA2 is marked with 0 because flip-nap A 2 must not change when a clock occurs. Also, A I goes from 0 10 I, so TAJ is marked w ith a I because this nip-flop must be complemented in the next clock edge . Similarly, A o goes from I to 0, indicating thai it must be complemented. so T AO is marked with a I. The last row. with present state I I I. is compared with the first count 000, which is its next state. Going from all ts to all O's requires that all three flip-naps be complemented. Table 5.14 5tate Table for Three-Bit Counter Present St ate Next State A, AI A, A, A, 0 0 0 0 I I I I 0 0 I I 0 0 I 1 0 I 0 I 0 I 0 1 0 0 0 Flip-Flop Inputs Ao T" TAl 0 I I 1 0 I I I I 0 0 0 I I 0 0 I 0 I 0 I 0 0 0 0 0 I 0 0 0 I I I I 0 V I T" Chapter 5 2 34 A ,A1A ., ~I A u 00 ". . ,11 01 .', , 11 I'.~J~, ;1//f: 0 A Synchronous Sequential Logic m, ~A " ~}~;~, 10 01 11 10 m, . "' FIGURE 5.33 Maps for t hree-bit binary counter A, FIGURE 5.34 logic diagram of three-bit binary counter The flip-flop input equations are simplified in the maps of Fig. 5.33. Note thai T AO has t 's in all eight minterms because the least significant bit of the counter is complemented with each count. A Boolean function that includes all mlnterms defines a constant value of J. The input equa tions listed under each map speci fy the combinational part of the counter. including these funct ions with the three flip-flops, we obtain the logic diagram of the counter. as shown in Fig. 5.34. For simplicity, the reset signal is not shown, but be aware that every design should include a reset signal. PROBLEMS Answers 10 pro blems marked with " appear at me end of the book . Where ap pro priate, a logic desi gn and its related HD L mode ling prob le m are cross refere nced . No te: For each prob lem that requ ires writ ing and verifying a HDL model. a lesl plan shou ld be wrinen to ide ntify which functional fea tures are to be tested duri ng the simulation and how the~' will be tested. For example. a reset on the fly co uld be tested by asse rting the rese t signal wh ile me simulated mac hine is in a state other than the rese t state . Th e test plan is to guide the de velopment of a t~t bench that will imple ment the plan . Simu late the mod el. u.sing the test be nch. and verify mat the beha vior is Problems 235 correct. If synthesis tools and an ASIC cell library are available. the Verilog descri ptions developed for Prob\ems 5.34-5.46 can be assigned as ">)'l'I thesis exer cises. The gate-\e\'e\ circuit prod uced b)' the synthesis tools should be simulated and com pared with the simulation results for the presynthesis model . 5.1 The D latch of Fig. 5.6 is constructed with four NAN D gates and an inverter. Consider the following three other ways for obtai ning a D latch . and in eac h case draw the logic diagra m and verify the circu it operation; (a) Use NOR gates for the SR latch part and AND gates for the other two. An inverter may be needed . (b) Use NOR gates for all four gates. Inverte rs may be needed . (c) Usc four NAND gates only (without an inverte r). This can be done by con nect ing the output of the upper gate in Fig. 5.6 (the gate that goe s to the SR latch) to the input of the lower gate (instead of the inverter output). 5.2 Con struct a JK flip-flop. using a D flip -flop . a two-t o-one-line multiplexer. and an inverte r. (HDL-see Problem 5.34.) s.J Show that the characteristic equation for the complement output of a JK flip-flop is Q ' (I 5.4 + I ) = J 'Q' + KQ A PN flip -flop has four operations. clear 10 O. no change. com plement. and set to I . when inputs P and N are 00. 01. 10. and II. respe ctively. (a) Tabulate the characteristic table. (h)· Derive the charac teris tic equation. (c) Tabulate the exci tation table. (d ) Show how the PN flip-fl op can be converted to a D flip-flop. 5.5 Explain the differences among a truth table. a state table . a characteristic table. and an excitation table. Also. explain the di fference among a Boolean equation. a state equation. a characteristic equation. and a flip-flop input equation. 5 .6 A sequential circuit with two D flip-flops A and B. two inputs x and y, and one output z is specified by the followin g next-state and output equat ions (HDL-see Problem 5.35); A(t + I ) = x 'y + xB B(t + I ) = x/ A + , . ,- A (a) Draw the logic diagram of the circuit. (b) List the stale tab le for the sequential circu it. (c) Draw the co rrespond ing state diagram. 5 .7· A sequential circuit has one flip-flop Q. two inputs x and y, and one output S. It consists of a fulladder circuit connected to a D flip-flop. as shown in Fig. P5.7. Derive the stale table and state d iagram of the sequential circ uit. 5.S· Derive the state table and the state diagram of the sequential circ uit show n in Fig. P5.8. Explain the function that the circ uit performs. (HOt-see Problem 5.36.) 236 Cha pter S Synchronous Sequential Logic ,, ~[[--s c Q Clar/c FIGURl P5 .7 ]A' c~ 1 8' A ~ $j 8 C~ T_~"§J, I T I ~ ~ YT FIGURE PS.8 5 .9 A sequential ctrcvit ha.\ IVi oJK flip-flops A and 8 and one input x_The cecuu Is described b) lhe follow ing flip- flop inpul equatjon c J A "" x JB - K A -B' x K. - A (a)· Deri ve the ~tale eq uat ions A(t + I ) and 8 (t + I ) by !\Ub:.lituting the inpul equations fur the J and K vari ables, (b) Dra w the stale diagram of the circun . 5 .10 A seq uential circuit h~ IwoJKfiip-flops A and 8 . lwo inpul>. J: and y. and one ou tput :. The flipflop input equations and circuil outpur equation are J A - Bx + B' ,.' K A -= B' x}-' J . "" A'x K B "" A + X}-' Problems 237 (a} Draw the logic diagram of the circ uit. (b) Tabulate the state table . (c) ~ Derive the state equations for A and B . 5 .11 * Starting from stale 00 in the sta te diagram of Fig. 5. 16, dete rm ine the state tran siti on s and output sequence that wi ll be ge nera ted w he n an input sequence of 0101 10 11101 1110 is app lied. 5.1 2* Reduce the number of states in the fo llowing state table, and tabulat e the reduced state tab le: Ne xt Stat e Prese nt State X =0 a f b d " f X Output =1 b , e X =0 0 0 0 I 0 , , d c f f b I g g h 0 h g u I d , x =I 0 0 0 0 0 I I 0 5 .1 3'" Startin g from slate 11 and the input sequence 0 11100100 I I. determ ine the output sequence for (a) the state table of the previous pro blem and (b) the red uced state table from the pre vious problem. Show thai the same output sequence is ob- tained for both. 5.14 Substitute binary assignment 2 from Table 5.9 to the stales in Table 5.8, and obtain the binary state table. 5 .15* List a state table for the J K flip -flop , using Q as the presen t and next state and J and K as inputs. De sign the sequential circui t spec ified by the state table , and sho w that it is equivalent to Fig.5. 12(a). 5 .16* Design a sequential circu it with two D flip. flops A and B and one input x_in. (a) When x_ in = 0, the state of the circuit remains the same. When x_ in = I , the circuit goes thro ugh the state transitions from 00 to 0 1. to II , to 10, back to 00, and repe ats. (b) When x _ ill = 0, the state of the circuit remains the same. When -e.,in = I , the circu it goes through the state transitions from 00 to II , to 0 1, to 10, back to 00 , and repeats. (HDL-see Problems 5.38.) 5 .17 Design a one-input, one-output serial 2's co mplementer. The circuit accepts a stri ng of bits from the input and generates the Z's complement at the output. The circuit can be reset asynchronously to stan and end the opera tion. fHDL-see Prob lem 5.39.) 2 38 Chapter S Synchr o n o us Sequenti al Logle 5 .18· Design a seq uential circ uit with two JK flip-flops A and B and two inputs Eand F. 1f E "" O.the circui t rcrnain v in the same state regardle ss of the value o f F. When E "" 1 and F - I. the cir cuit goes through the state transitions from 00 to 01. to 10. to 11. back to 00. and repeats. Whe n E = I and F = O. the circ uit goes through the state trans itions fro m 00 to 11. to 10. to Ol . bac k to 00. and repeats. (HDL-see Problem 5.40.) 5 .19 A sequential circuit has three flip-fl op s A. B. and C: one input ",_in: and one OUtpu t y_out. The stale diagram is shown in Fig. P5,19. Tbe circuit is to be designed by treating me unu sed states as don't-care co nd itions. Analyze the circ uit ob tained from the design to det ermine the effect of the unused states. (HDL- see Problem 5.4 1.) (a )· Use D flip-flops in the design. (b ) Use JK flip- flops in the design, 0,0 001 0,0 II I 1,0 0,0 FIGURE PS .19 5 .20 Design the sequential circuit specified by the sta te diagram o f Fig. 5.19. using T flip-flops. 5 .21 What is the main difference betwee n an initial statement and an a1" -a)1i stateme nt in Verilog HDL? 5 .22 Draw the waveform ge nerated by the following sta tements: (a) Initial begin w= O; #15w= 1; #6Ow=O; #25w =1 ; #40w= O; end (bl initial fo rk w =O; #15 w=1 ; #6Ow=O; #25w =1 ; #4Ow=O; joi n 5 .2)- Con side r the following statements. assuming that RegA co ntains the value of 30 initiall)': ( a) Re gA RegS = 75; = RegA: (b) RegA <= 75; RegS <= RagA: Wh at are the values of RegA and RegB after exec ution ? 5.24 Write and \ c rif )' an HDL beh avioral descripnon o f a positive-ed ge-se nsitive D flip· flop with (a) acnve- jow a~)nchronous p«' K'1 and clear. (Th is t)'pe of flip-fl op i S ~"lI in Fig. 11 .13.) lb) active-low synduOt\OUs ptc'>C\ and deat" . S.2S A special posuive-edge-triggered flip-flop has I WO inplllS D I and D1 and a control inpu l lhal cbooees between the IWO. wrue and venfy an flD L behOls'iora llbcrip(ion of this fli p-flop. S.U Write and verify an i lD L bd lol \ioral de!;cription of the JK flip-Ilop. using an if-eh e statement ba!lC\l on the s alue of the pre-em "'ate. (a )-Consider the charac1erislk equation when Q .. Our Q .. 1 tb) Con side r ho w the J and K inpul s affect the outp ut o f the flip- flop at each clock lick. 5.27 Rewrite and s'eri fy the description o f HDL Exa mp le 5.S by combining the Sla{e tra nsition s and output into tine a lwlllli bloc k. 5.U Sim ulate the sequentia l ci n:ui t sho wn in Fig . 5. 17. (a) Write Ihe HDl tkM'riplion of the stale diagram (Le .. a behaviora l model). (b) Write the HDL de scription of the circuit diagram (i.e .• a structural model). (c) Write an Il Dl stimul us with the sequence 00. 0 I. I I. 10 of inputs . Verify that the response is the sa me for ho th descriptions. 5 .29 wrne a be havioral de!>Cripliun o f the state mach ine desc ribe d by the slate di agr am sho wn in Fig. P5.19. wnre a le~1 benc h and verify the func uo naluy o f lhe dc: ~ription. 5 .30'" Draw' the logic diagram for the "Cque ntia l circu it de scribed by the following HOl modu le: module SeCLCkl (Input A. B. C, Cl K, ou tput re g Q ); re g E; a lways @ (pos e dge Cl K); beg in E <= A &B; Q <= E IC; end endmodule Wh at chan ge-, if an)', lIlU ~1 be incfuded in Ihe circuit if the lavt twc statements use block ing instead of nunbloc ki ng as"ignment? 5 .31 . How ~ hou ld lhe dcscnpnon in Prob lem 5.30 be wn nen M) Ihal the circuit has the same be havior when the a,,~ig nme nb are made with = instead o f with < .. '! 5.32 Using an initial statement with ,I hc jtin ... end block . write a Vo:ri log de scription of the wa veforms shown in Fig. P5.32. Rcpo:al using a furk ••• joi n block. 5 .33 Explain wh y it is impo rtan t that the vtim ulus sign als in a teet be nch be synchro nized to the inecrive edge of the clock of the sequentia l circuit that is 10 be tes ted , 5.W Usi ng behavioral models fflr the D flip-fl op and the inverter, write and verif)' an HD l model of the J·K flip-Ilop described in Prob lem 5. 2. 5.35 Write and veri ty an n O L model o f tbe sequential circuir described in Problem 5 .6. 240 Cha pter 5 Synch ro no us Seque ntia l l ogi c enable A B C D E F I I 01020 '0 I 60 70 FIGURE P5 .32 Wa vefo rm s fo r Pro blem 5 .32 S.36 w rite and verify an HDl structural descri ption of the machine ha ving the circuit diagram (sc hema tic ) shown in Fig . P5.8. S.37 Write and verify HDl behaviora l descriptio ns of the stat e ma chines ..hewn in Fig. 5.25 and Fig . 5.26. w rite a test bench 10 co mp are the sta re seque nce s and input-output behaviors o f the two mac hines. 5 .38 Write and verify an HDl behavioral descript ion of the machi ne described in Problem ~ . 1 6. 5 .39 Write and verify a behavioral desc ription of the machine specified in Problem 5. 17. 5 .40 Write and verify a behavioral descri ption of the mac hine ..pecified in Problem 5. JS. 5 .4 1 Write and ver ify a behaviora l descri ption of the machi ne speci fied in Problem 5. 19. (Him: See the discus-ion of the default case item pre cedin g HDl Example ~. 8 in Chapter ~ . I 5 .42 Write and verify an HDl structural desc ription of the circuit shown in Fig. ~i.2 9 . 5 .43 Write and verify an HDl behavio ral descri ption o f the three -bit binary co unter shoy, n in Figure 5.3~. 5 .44 w rite and ver ify a verilo g model of aD flip- flop having synchronou.. reset. 5 .45 Write and verify an HDl behavioral description of the seq uence detector described in Figure 5.27 REFE REN C ES 1. B HASKER. l . 1997. A 2. BH ASKER.l . 1998. Verilog HDL Primer. Allent own. PA: Star Gala xy Pres... verilog HDL Sym hesis. Alle ntown . PA: Star Ga laxy Press. Refere nces 3. Cuam. r.1. D. 1999. Modeling. Synthesis, and Rapid Prororyping with Verilog HDL. Uppe r Sad- dle River, 4. S. 6. 7. 8. 9. 10. 11 . 12. 13. 241 ~J: Prentice Hall. DIET'>lEYl::R. D. L. 1988. Logic Design of Digital S.wellls. 3d ed. Boston: Allyn Bacon. GA-lSKI. D. D. 1997. Principles of Dig/tlll Design. Upper Sadd le Ri ver, NJ: Prentice Hall. HW EOS. J. P. 1993. /ntrodIKtioll to Digital Logic Design. Readi ng. MA : Addison -wesley. KATZ, R. H. 2005. Contemporary Logic Design. Upper Saddle River. NJ: Prentice Hall. !\1ASO, M . M .• and C. R. K IMI'.. 2005. Logic l.md Computer Design Fundamentals & Kilinx 6.3 Swdelll Edit/on, 3rd ed, Uppe r Saddle River, KJ: Prentice Hall. tee .sox, V. P.• H. T. NAGLE. J. D. IRWL"'. and B. D. CARROLL. 1995. Digital Logic Circuit Analy. sis and Design. Englewood Cliffs. Nl : Prentice Hall. PALr.; tn~AR, S. 1996. Verilog HDL: A Guide to Digital Design and Symhesis. Mount ain View, CA: Sun Soft Press (a Pren tice Hall title). ROTH, C. H. 2004 . Fundomentais of Logic Design, 5th ed . 51. Paul, M:-J: Brook s/Cole . T Hm lAS, D. E., and P. R, MOORBY. 2002 . The verilog Hardware Description u mgl/(/ge, 6t h ed. Boston: Kluwer Academic Publishers. WAKERLY, J. F. 2006. Digital Design: Principles and Practices, 4th ed. Upper Saddl e River. NJ: Pren tice Hall. Chapter 6 Registers and Counters 6.1 REGISTERS A clocked seq uentia l circ uit co nsists of a gro up of n ip-flops and comb inational gales co nnected to form a fe ed back path. The flip-flops are esse ntial beca use. in their absence. the circuit reduces 10 a purely combinat ional circuit (provide d that there is no feedback among the ga tes). A circuit with flip-flops is considered a seq uentia l circuit even in the absence of co mbinationa l gate s. Circui ts that incl ude flip-flops are usually cla ssified by the function they perform rather than by the name of the sequential circuit. Two such circuits are registers and counters. A register is a group of flip-fl ops. each o ne of which is capable of storing one bil of info rmation . An n- bit register consis ts of a group of II flip-flo ps capable of storing n bits of binary informat ion. In additio n to the flip-flops, a regis ter may have co mb inatio nal gate s that perform certain data-processing tasks. In its broadest defini tion. a regi ster co nsists of a group of fli p-flo ps together with gates that affect thei r ope ration. The flip-flops hold the binary infor mation. and the ga tes determine how the info rma tion is transferred into the reg ister. A COllllfer is essentially a reg ister that goes through a predetermined seq ue nce of binary states. The gates in the co unter are co nnected in such a way as to produce the prescribed seq uence of states. Although co unters are a special type of register. it is co mmon to differentiate them by giving them a different name. Various types of registers are available co mmercially. The simplest register is o ne that consists of only ni p-flops. without any gates. Figure 6.I shows such a register constructed with four D-type flip-flops to form a four-bit data storage register. The com mon clock input triggers all flip-flops on the positive edge of each pulse, and the binary data available at the four inputs are Section 6.1 'II Registe rs 243 A. T I, I' A, T ~ T I, D , };i~~~:~i k~~' l Clock Clear fiGURE. 6 .1 Four-bit regist er tran sferr ed into the register. The four outputs can be sampled at any lime to obtain the binary information stored in the register. The inp ut Clear_b goes to the active-low R (reset) input of all four flip-flops. When this input goes to O. all flip-flops are reset asynchronously. The Clear_b 244 Cha pter 6 Registers and Counters input is useful for clearing the register to all D's prior to its clocked operat ion. Th e R inputs must be maintained at logic I during normal clocked operation. Note that. depending on the nip-fl op. either Clear. Cteas;b. reset. or resecb ca n be used to indicate the transfer of the register to an all O's state. Reg ist e r with Parallel Load Synchronous dig ital systems have a maste r clock ge nerator that supplies a co nti nuous train of cloc k pu lses. The pulses are applied to all flip-fl op s and registers in the syste m. The master clo ck acts like a dr um that supp lies a co nsta nt beat to all pans of the sys tem. A se parate control signal must be used to dec ide which register operation will ex ecute at eac h cloc k pu lse . Th e transfer of new informat ion into a reg iste r is referred to as loading or updating the register. If all the bits of the reg ister are loaded simultaneo usly with a co mmo n clock pulse. we say that the loading is done in parallel . A clock edge applied to the C input s of the reg iste r of Fig. 6 .1 will load all four inputs in para llel. In this confi guration. if the co ntent s of the reg ister must be left unc ha nged . the inputs must be held constant o r the clock mu st be inhibited fro m the circuit. In the first ca se. the data bus dri ving the register would be unav ailab le for othe r traffi c . In the seco nd cas e. the clock can be inh ibited from reach ing the register by controlling the clock input signa l with an enabling gate . Howe ver. inserting gates into the clock pat h is ill advi sed because it means that logic is perfo rmed with clock pu lses. The insertion of log ic ga tes pro duce s uneven propagation delays between the master cloc k and the inputs of flip-flops. To full y synchronize the sys tem. we must ensure that all clo ck pu lses arrive at the same time anywhere in the system. so that all flip-flops tri gger simultaneo usly. Perform ing logic with clock pul ses insert s vari able del ays and may cause the sys tem to go out of sync hronism. For th is rea son . it is adv isab le to co ntrol the operation o f the reg ister with the D inputs. rath er tha n co ntrolli ng the clock in the C inputs of the flip-flops. Th is cre ates the effect o f a gated cloc k. but witho ut affe cting the clock path of the circuit. A four-bit data-stora ge reg ister with a load cont rol input that is d irected throug h gates and into the D inputs of the flip-flop s is shown in Fig. 6.2. The add itional gate s impl ement a twochannel mux whose output dri ves the input to the regis ter with either the dat a bus or the ou tput of the register. The load inp ut to the register de termines the action to be taken with each clock pulse. When the load input is I. the data at the four external inputs are transferred into the reg ister with the next positi ve edge of the cloc k. When the load input is O. the outputs of the nip-flops are co nnected to their respec tive inp uts. Th e feedback co nnecti on from output to input is necessary because a D flip-fl op doe s not have a " no change" cond ition. With each clock edge. the D input determines the next state of the regi ster. To leave the output uncha nged . it is necessary to make the D input equa l to the present val ue of the output ti.e.. the output circula tes to the input at eac h clock pulse). The clock pulses are applied to the C inputs witho ut interruption. Th e load input determines wheth er the next pulse will accept new information or leave the information in the regis ter intact. The transfer of informat ion from the data inputs or the outputs of the register is done simultaneously with all four bits in response to a clock edge. Section 6.2 Shift Registers 245 Load ----1 >~_,_-r>~__. f-J--- Ao I" - - - ----1f----t----fE2I I, ----+- - - +- ---[ !I t-J-- - A' f-~-- A , C/Q"k - - - - - - - - -- - - - - - - - - - - ---! FIGURE 6 .2 Four-bit register with parallel load 6 .2 SHIFT REG ISTERS A register capable of shifting the binary inform ation held in each cell to its neighborin g cell , in a selected direction. is called a shift register. The logical configuration of a shift regis ter consists of a chain of flip-flops in cascade. with the output of one flip-flop connected to the input ofthe next flip-flop. Allllip-flops receive common clock pulses, which activate the shift of data from one stage 10the next. The simplest possible shift register is one that uses only flip-flops, as shown in Fig. 6.3. The output of a given flip-flop is connected to the D input of the flip-flop at its right. This shift register is unidirectional. Each clock pulse shifts the contents of the register one bit position to the 246 Chapter 6 Reg isters and Counters Serial input eLK _"'--j SO Serial o utput - < - - - ---+-- -- ---'--------' FIGURE 6 .3 Four-bit shift reg ister right. The configuration does not support a left shift. The seria l il/flut determines v. hat goes into the leftmost flip-flop during the shift. The serial output is taken from the output of the rightmost flip-flop. Sometimes it is necessary to control the shift so thai it occurs only with certain pulses. but not with others. As with the data register discussed in the previous section. the clock's signal can be suppressed by gating the clock signal to prevent the register from shifting. A preferred alternative in high-speed circuits is to suppress the clock action. rather than gate the clock signal. by leaving the clock path unchanged, but recirculating the output of each register cell back through a two-channel mux whose output is connected to the input of the cell. When the clock action is not suppressed. the other channel of the mux provides a data path to the cell. It will be shown later that the shift operation can be controlled through the D inputs of the fl ipFlops rather than through the clock input. If, however. the shift register of Fig. 6.3 is used. the shift can be controlled with <In input by connecting the clock through an AKD gate. Note that the simplified schematics do not show a reset signal. but such a signal is required in practical designs. Serial Transfer A digital system is said to operate in serial mode when information is transferred and manipulated one bit at a time. Information is transferred one bit at a time by shifting the bib out of the source register and into the destination register. This type of transfer is in contrast to parallel transfer. whereby all the bits of the register are transferred at the same time. The serial transfer of information from register A to register B is done with shift registers. as shown in the block diagram of Fig. 6.4(a). The serial output (SO) of register A is connected to the serial input (51) of register B. To prevent the loss of information stored in the source register, the information in register A is made to circulate by connecting the serial output 10 it, serial input. The initial content of register B is shifted out through its serial output and is lost unless it is transferred to a third shift register. The shift control input determines when and how many times the registers are shifted. For illustration here, this is done with an A.~D gate that allows clock pulses to pass into the eLK terminals only when the shift control is active. (This practice can be problematic because it may compromise the clock path of the circuit. as discussed earlier.) Suppose the shift registers have four bits each. Then the cont rol unit thai supervises the transfer of data mu...t be designed in such a way that it enables the !ohift registers. through the shift control signal. for a fixed time of four cloc k. pulses. This design is shown in the timing diagram of Fig. 6.4(b). The shift control signal is synchronized with the clock and changes value just after the negative edge of the clock. The next four clock pulses find the shift control signal in the active slate. so the output of the AND gale connected to the eLK inputs produces Section 6.2 SO Shift Registe rs 247 Sf CL K -':' (a) Block diagram Clock Shift contro l CL K - _ - - _ 1_ _ _ - IUU1J1L T1 T2 TJ _ T~ (b) Timing diagram FIGURE 6.4 Serial tran sfer from regis ter A to register 8 four pulses: 71• Ti . T3. and h Each rising edge of the pulse causes a shift in both registers. The fourth pulse changes the shift contral to 0, and the shift registers are disabled. Assume that the binary content of A before the shift is IOJ I and that of B is 0010 . The serial transfe r from A to B occurs in four steps. as shown in Table 6.1. With the first pulse. T1• the rightmost bit of A is shifted into the leftmost bit of B and is also circulated into the leftmost position of A. At the same time, all bits of A and B are shifted one position to the right. The previous serial output from B in the rightmost position is lost, and its value changes from 0 to I. The next three pulses perform identical operations. shifting the bits of A into B. one at a time. After the fourth shift. the shift control goes to 0 and reg isters A and B both have the value 10 II . Thus. the contents of A are copied into B, so that the contents of A remain unchanged. Table 6 .1 Serial- Transfer Example Timing Pulse Initial value Afte r T1 Afte r T2 After T3 Afte r T4 Shift Reg ist e r A , , ' I, Q, '-.-> I- I I " I 1 I I , ..... 0 I o '-' ' ~ ~ O- 1 .--- 0 I' Shift Re g ist e r B .......~ 0, "--, i , 0 l_ D o '- 1 I I o 0 0 0 1 , I 0 , , o c c 248 Chapter 6 Registe rs a nd Counters The d ifference betwee n the serial and the parallel mode of operation should be apparent from this example. In the parallel mode, informatio n is available from all bits of a register and all bits can be transferre d simultaneo usly during one cloc k pulse. In the serial mode. the registers have a sing le serial input and a single serial output. The information is transferred one bit at a time while the registers are shifted in the same direction. Serial Addition Operations in digital computers are usually done in parallel because that is a faster mode of operation . Seria l operations are slower because a data-path operation takes several clock cycles. but serial operatio ns have the ad vantage of requiring fewer hardware components. In VLSI circuits. they require less silico n area on a chip. To demonstrate the serial mode of operation. we present the de sign of a serial adder. The parallel counterpart was presented in Sectio n -loA. The two binary numbers to be added serially are stored in two shift registers. Beginning with the least significa nt pair of bits. the circuit adds one pair at a time throu gh. a single full-adde r (FA) circuit. as shown in Fig. 6.5. The carry out of the full adder is transferred to a D flip-flop, the output of which i.. then used as the carry input for the next pair of significant bits. The sum bit from the S ou tput of the full adder could be transferred into a third shift register. By shifting the sum into A while the bits of A are shifted o ut. it is po ssible to use one register for sroring both the augend and the sum bits. The serial input of register 8 can be used to transfer a new binary number while the addend bits are shifted out during the add ition. Shift control CL.I< I /~~:"z:~:it;;q!~St? 1 $hifu¢gister,A -,~" ",~":*,~:;;;~;~" ,,!,, I • Ij ';i(~FA Ii.·;,/..i jll. Serial inp ut ~ ; 1///#/4/'1,S() I r-« z '' ;S ~'~~;~~~~I~'~ Q ~D C Clea r ~ :w.~~.t· "--'-' FIGURE. 6 .5 Ser Ial adder ' S f- !; .~'1 C I - Section 6.2 Shift Registe rs 249 Th e opera tio n of the serial add er is as follows: Initially. register A hold s th e a ugend, register B holds the adde nd. and the carry flip-flop is cleared to O. Th e outputs (SO) of A and B provide a pair of significant bit s for the full adder at x and y. Output Q of the flip -flop provides the input carry at z. The shift co ntrol enables both regi sters and the carry flip -flop . so at the next cloc k pul se. both registers are shifted once to the righ t, the sum bit from S enters the leftmo st flip -flop of A. and the output carry is tra nsferre d into flip -flo p Q. Th e shift contro l ena bles the reg isters for a number of clock pu lses equal to the numbe r of bi ts in the registers. For ea ch succee di ng clock pul se, a ne w sum bit is transferred to A. a new carry is tran sferred to Q, and both register s are shifted once to the right. Th is proc ess continues until the shift control is disa bled. Thu s, the addition is accomplished by passing each pair of bits together with the pre viou s carry th rough a sing le full -adder circuit and transferri ng the s um, on e bit at a tim e, into reg ister A. Initially, register A and the carry flip -flop are cle ared to 0, and then the first number is added fro m B. W hil e B is shifted throu gh the fu ll adde r, a sec ond number is transferred to it through its seria l inpu t. Th e seco nd nu mber is then added to the co ntents of regis ter A whi le a third number is trans ferre d seria lly into register B. Th is can be repeated to perform the addition of two, three, or more four-bit numbers and accumulate their sum in register A. Comp ari ng the seria l adder with the parallel add er de scribed in Section 4.4 , we note several differen ces. Th e para lle l adder uses registe rs with a parallel load. whereas the serial adder use s shift registers. The number of full -adde r circuits in the parallel adder is equal to the number of bit s in the binary numbers. whereas the serial adder requ ires only one full -adder circ uit and a carry flip -flop. Excluding the register s. the parallel add er is a co mbinational circ uit, whereas the serial adder is a sequential cir cuit which consis ts of a full add er and a flip -flop that stores the output carry. Thi s design is typic al in serial operation s because the result of a bit-time operation may depend not onl y on the present inputs, but also on pre viou s inputs that must be stored in flip-flops. To sho w that serial operations can be de signed by means of sequenti al circuit procedure . we will redesign the seria l adder with the use of sta te table. Fir st. we ass ume that tw o shift regi sters arc av aila ble to store the binary numbers to be adde d seria lly. Th e seria l outputs from the registers are de signated by x and y. The sequentia l circ uit to be designed will not include the shift registers , but they will be in serted later to show the co mplete circuit. The sequential circuit proper has the two inputs, x and y. that provi de a pair of signific ant bit s, an output 5 that ge ne rates the sum bit , and flip-fl op Q for stori ng the carry. Th e slate tab le that specifies the seque nti al ci rcuit is listed in Tab le 6. 2. The present state of Q is the present value of the carry. T he prese nt carry in Q is add ed tog ether with inputs .r and y to produce the sum bit in output S. The nex t state of Q is equal to the output carry . Note that the state table entri es are ide ntical to the ent ries in a full-adder truth tab le, ex cept that th e input carry is now the present state of Q and the output carry is now the next state of Q. If a D flip -fl op is used for Q, the cir cuit red uces to the one show n in Fig . 6.5 . If a JK flip flo p is used for Q, it is nece ssary to de termine the va lues of inputs J and K by referring to the excita tion tabl e (Table 5 . 12). Thi s is done in the last two co lum ns of Tab le 6. 2. Th e tw o flipflop input equat ions and the output equation ca n be simplifi ed by means of maps to JQ = .ry KQ = x 'y' = (x + y) ' 5 = x EB y EI1 Q 25 0 Cha pte r 6 Reg isters and Counters Table 6 .2 Stat,. TobIt for Strial Add« Present St ate , Next State Output Q • 0 0 0 0 Inputs Q • 0 0 0 0 0 0 0 I I 0 I I 0 I I 0 0 I I I 0 0 I 0 0 I I I I I I Shirl contr ol L .1/ Shifl I 0 SO A regi~lc:r flip-Flop lnpub I I I .- S/ SO Shifl rCl isler 8 K. 0 0 0 I X X X X X X X X 0 0 0 I y. .r eLK Serial inpUI J. ~ y L Q J - I> e " ./ am FICUR1 6 .6 SH ond form of serial adde r The ci rcuit d iagram is shown in Fig. 6.6. The c ircuit con..i..rs of three gales and a l K n ip-flop. The two !'.hift registers are included in the diagram to show the comp lete serial adder. S Ole that o utput 5 is a function not only of .r and )'. but also o f the prese nt sta te of Q. The ne xt "tate of Q is a function of thc present state of Q and of the values 0 ( .( and y th ai come out of the ..erial output s of the ..hift registers. Universal Shift Register (fth e flip-flop outpuus of a ..hift register are accessible. then information entered serialI)' b)' "hiIting can be taken out in parallel fro m the outputs of the nip-Oops. If a parallel load capability is added to a !>hift reg ister. then da ta entered in parallel can be take n OUt in serial fa..hion by shifting the data stored in the register. Sectton 6 .2 Shift Registers 251 So me shift regi ster s pro vide the nece ssary input and outputtermin als for par allel tra nsfer. Th ey may also have both shift-right and shift- left ca pabilities. The most general shift register has the following ca pabilities: l. A d ea r cont rol to clear the register to O. 2. A clock input to synchro nize the ope rations. 3. A shijt-right control to enable the shift-right operation and the serial input and ompllt lines associated with the shift right. 4 . A sl,i/I-lt/t <,;ontr.,l to enable the shrt t-le tt o per at ion a nd the serialsnpui and ot/ lp ut associated with the shift left. ut'o~ s 5. A pa ralle l-loa d co ntrol to enable a parallel transfer and the n input line s assoc iated with the parallel transfer. 6. 1/ para llel output lines. 7. A co ntrol state that leaves the infor mation in the regi ster unchanged in response to the clock. O ther shift regis ters may have only some o f the preced ing functions. with ut least o ne shift ope ra tion. A register capable of shifting in one d irection on ly is a unidirect ional shift register. One that can shift in both directions is a bidi rectional shift register. If the reg ister has both shifts and parallel-load capab ilities. it is referred to as a universal 5hift register. The block diagram sy mbol and the circuit diagram of a fo ur-bit universal shift reg ister that has all the capabilities j ust listed are shown in Fig. 6.7. The circuit co nsis ts of four D fli p-flops and four multiplexers. The four multiplexers have two commonselectioninputs 51 and sQ. Input a mc acnm utnptexcr i s ~ tcO;: IC,j whcn ~ 1~O - 00. inp u t I i ~ ~C kC1CU w hen .l'1.l"O - 0 1, ami si m - ilarly for the other two input s. The selection inputs cont rol the mode of operatio n o f the register accord ing to the function entries in Table 6.3. When 5 150 = 00 , the present value of the register is appli ed to the D inputs of the flip -flops. Thi s cond ition forms a path from the output of each flip-flop into the input o f the same flip-flop. so that the output recircu late!'> to the input in this mode of ope ration. The next cloc k edge transfers into each flip-flop the binary value it held previously. and no change of state occurs. When 5 \5 0 = 0 1. term inal I of the multiplexer inputs has a path to the D input s of the flip-flops. This ca uses a shift-right ope ration, with the serial input transferred into flip-flop A3. When 5150 = 10. a shift-left operation results, with the othe r serial input going into flip-flop A o. Finally. when 51.1'0 = II . the binary information on the parallel input line s is transferred into the register simultaneo usly during the next cloc k edge. Note that data enters M SH_in for a shift-right operation and enters LSH_ill for a shift-left opera tion. Stnft registers are ofte n used to interface digital systems situated remotely fro m eac h other. For exa mple. suppose it is necessary to transmit an n-bit qu antit y betwee n two points. If the distance is far. it will be expensive to use" lines to transmit the II bits in para llel. It is more economi cal to use a single line and trensrmt the info rmation serially, one bit at a time . T he transmitter acce pts the n- bit da ta in parallel into a shift register and the n transmi ts the da ta serially along the co mmon line. Th e receive r acce pts the data serially into a shift register. When all " bits are recei ved , they can be taken from the outputs of the registe r in par allel. Th us, the tra nsmitter performs a parallel -to- serial conve rsion of da ta and the receiver does a se rial-to-parallel conversion. 25 2 Chapter 6 Registers and Counters c V t. t., l--c c D V t.. r c V eLK ','0 - ' x l MUX , 2 I 0 , I , XI ' XI , MUX 2 I 0 I I 4X I MUX ~I UX 2 I 0 J 2 1 0 I I I L Serial input fur Serial L..- inpul for shift- right shift-left I, I, Parallel inputs (b ) FIGURE 6 .7 Four-bit universal shift register I. Section 6.3 Ripple Counters 253 Table 6 .3 f unction Ta bf~ .. for th~ RftJi~ t~r of f iq. 6.7 Mode Con trol " 6 .3 0 0 0 I I 0 I I Reg ist er Ope rati on S o change Shift right Shift left Parallel load RIPPLE COUNTERS A reg ister that goes throug h a prescribed sequence of stales upon the application of input pulses is called a COl/nttr. The input pc tses may be clock pulses. or the y may originate from some extern al source and may occur al a fixed Interva l of time or at ra ndom . The sequence of states may follow the binary number sequence or any other sequence of slates. A cou nter that follows the binary number sequence is ca lled a binary COl/flier. An n -bit binary Counter con sists of n tlip-tlops and cancoumin binary from 0 through 2" - J. Count ers are available in two categories: ripple counters and sy nchronous counters. In a ripple co unter. a fl ip-flop output tran sition serves as a sou rce for trigg ering other nip-flops . In other word s, the C input of some or all flip-flo ps are triggered. not by the common clock pulses. but rather by the transition that occurs in othe r flip-flop outputs. In a synchronous counter. the C input s of all flip -flops receive the commo n clock. Synchronou s counters are prese nted in the next two sec tions. Here. we pre se nt the binary and BCD ripp le counters and ex plain their operatio n. Binary Ripple Counter A binary rip ple counte r consis ts of a se ries connect ion o f com p le me nting fli p-fl ops. with the o utput of eac h flip- flop connec ted to the C input of the ne xt higher ord er flip-flop. Th e fli p-flo p hol d ing the least significant bit recei ve s the incoming count pulses. A co mplementing flip-flo p can be obtai ned from a l K fli p-flop with the 1 and K input s tied toget her or from a T flip-flop. A third possibility is to use a [) flip-flop with the comp lement output connec ted to the D input. In this way. the D input is alway s the complement of the present stale. and the next cl ock pulse will c ause the flip -flop to com plement. The log ic diagram of IWO a -bit binary ripp le counters is sho wn in Fig. 6.8 . Th e counte r is constructed with co mplem enting flip-flop s of the T type in part (a) and J) type in part (b). The o utp ut of each fli pflop is connec ted to the C input o f the nex t flip-flop in sequence. The flip-flop hold ing the least sig nificant bit receives the inc oming count pulses. The T inputs of all the flip-flop s in (a) are connected to a permanemlogic I , making each fli p-flop complement if the signal in its C input goes throug h a negative transition. The bubble in fron t of the dynamic indicator symbol next to C indicates that the flip-fl op s respond 10 the negative-ed ge transition of the 254 Chap ter 6 Registers and Counters } Cmm ti; 'o:..j!, ~ , CR ,;,~ i: T '~ '--< >C A, Count A, ,:I R " ? i\' ':;0.•', :I'."",ll'eil , '--< b-·.:"c R",,: .~. L. H - - A, [\ib:-:·;.I ..,,'1. ";,~ t>c R ;; Logic I Reset Resel (a) Wilh T nip·flops f1(;URE 6 .8 fo ur-bit binary rtpple counter (b) Wilh D nip-flops Sect ion 6.3 Ripp le Counters 255 Table 6.4 Binary Count Sequence A, A, A, A. a a a 0 0 1 1 0 1 a a 0 1 1 a 0 a a a 0 0 0 1 0 a 1 1 1 1 0 a a 1 1 1 0 input. The nega tive transition occurs when the output of the previous flip-flop to which Cis connected goe s from 1 to O. To understand the opera tion of the four-bit binary ripple counter, refer to the first nine binary numbers listed in Table 6.4 . The count st,U1Swith binary 0 and increments by I with each count pulse input. After the count of 15, the counter goes back to 0 to repea t the cou nt. The least significant bit. Ao• is complemented with each count pulse input Every time that Ao goes from 1 to O. it complements AI. Every time that Al goes from I to 0, it complements A 2. Every time that A2 goes from 110 0, it complements A 3. and so on for any other higher order bits of a rippl e counter. For exam ple, consider the trans ition from count 00 1110 0 1011 A o is com plemented with the co unt pu lse. Since A ogoes from I to 0 , it triggers A I and com plements it. As a result. A 1 goes fro m 110 O. which in tum comp lement s A ~ . changing it from 0 to I. A2 does not trigger A). because A2 produces a positive tra nsition and the flip-flop responds only to negative transitions. Thu s, the count from 00 11 to 0100 is achieved by changing the bits one at a time, so the count goes from 0011 1000 10 , then to 0000, and finally to 0 100. The flip-flops change one at a time in succession, and the signal propagates through the co unter in a ripple fashion from one stage to the next A binary counter with a rever se count is called a binary countdown counter. In a countdow n counter, the binar y cou nt is decreme nted by I with every input count p ulse. The count of a four-bit countdown counter starts from binary 15 and continues to binary co unts 14, 13. 12, .. .• 0 and then back to 15 . A list of the count sequence of a binary countdown counter shows that the least significant bit is co mplemented with every count pulse. Any other bit in the sequence is complemented if its previous least significant bit goes from 0 to I . Therefore. the diagram of a binary countdow n co unter looks the same as the binary ripple counter in Fig. 6.8, provided that all flip-flop s trigger on the positive edge of the clock . (The bub ble in the C inpUIS must be absent.) If negative-edge-triggered flip-flops are used, then the C input of each flip-flop must be connected to the complemented output of the previou s flip-flop. Then, when the true output goes fro m 0 to I. the complement will go from 1 to 0 and complement the next fl ip-flop as required, 256 Chapt er 6 Reg ist er s and Co un ters FIGURE 6 .9 State diagram of a deci mal BCD counte r BCD Ripple Counter A decimal counter follows a sequence of 10 states and returns to 0 after the co unt of9. Such a counter must have at least four flip-flops to represent each decimal digit. since a decimal digit is represented by a binar y code with at least four bit s. Th e sequence of stales in a deci mal counte r is dictated by the binary code used to represent a decimal dig it. If BC D is used. the sequence of slates is as shown in the state diagram of Fig. 6.9. A decimal counter is similar to a binary counter. except that the state after 100 1 (the code for decimal digit 9 ) is ‫סס‬oo (the code for decim al digit 0). The logic diag ram of a BCD rip ple co unter usi ng 1K flip-flops is shown in Fig. 6. 10. The four outputs are desig nated by the letter symbol Q. with a numeric subscri pt equ al to the binary weight of the corresponding bit in the BCD code. NOEe that the outp ut of QJ is applied 10 the C inputs of both Q2 and Qs and the output of Q2 is applied to the C inp ut of Q-I' The 1 and K input s are connected either to a perm anent I signal or to outp uts o f other flip-flop s. A ripple counter is an asynchronous seq uential circuit. Sig nals that affect the flip-tlop transition depend on the way they change from I to O. The operation of the counter can be explained by a list of conditions for flip-flop transitio ns. The se condition s are deri ved fro m the logic diagram and from know ledge of how a l K flip-flop operates. Remembe r thai when the Cinput goes from Ito O. the flip-flop is set if 1 = I. is cleared if K = I . is compl ement ed if 1 = K = I. and is left unchanged if 1 = K = O. To verify that these conditions resu lt in the seq uence requ ired by a BCD ripp le counter , it is necessary to verify that the flip-flop trans itio ns indeed follow a seq uence of states as specified by the state dia gram of Fig. 6.9. Ql changes state afte r each clock pulse. Q~ comp lements every time Q l goes from I 10 O. as long as Qs = O. Whe n Qs becom es 1. Q~ rem ains at O. Q4 complements eve ry time Q2 goes from I to O. Qs rema ins at 0 as long as Q~ or Q-I is O. When both Q2 and Q4 become I. Q8 complements when QJ goes from I to O. Qs is cleared on the next transition of Qj. The BCD counter of Fig. 6.10 is a decade counter. since it counts from 0 to 9. To count in decimal from 0 to 99, we need a two-decade counter. To count from 0 to 999. we need a three-decade counter. Multiple decade counters can be constructed by connecting BCD counters in cascade, one for each decade. A three-decade counter is shown in Fig. 6.11. The inputs to the second and third decades come from Qs of the previous deca de. When Qs in one decade goes from I 10 O. it trigger s the count for the next higher order decade ",'bile its ow n decade goes from 9 10 O. Section 6.3 1-.- Q, co- J c_, Ripple Counters c ~ K J '. :" 1-/ . - rt~~\~\f - Q. J C ~ t.., Q. J Logic I FIGURE 6. 10 BCD ripple count er X C x c' ~ 257 258 Cha pter 6 Registers and Counters Coun l pulses HY di git 10\ digit 100 digi t FIGURE 6 .11 Bloc k diagram of a three-decade dec imal BCD coun ter 6 .4 SYNCHRONOUS COUNTERS Synchronous counters arc different from ripple counters in that clock pulses arc applied to the inputs of all flip-flops. A common clock triggers all flip-flops simultaneously. rather than one at a time in succession as in a ripple counter. Th e dec ision whether a flip- flop is to be complemented is dete rmined from the values of the data inputs. such as T or J and K at the time of the cloc k edge. If T ::: 0 or j ::: K ::: O. the flip-fl op doe s not change state. If T ::: I or J ::: K ::: I. the flip-flop co mplements. The design proced ure for synchronous counters was presented in Section 5.8. and the design of a three-bit binary counter was carri ed out in conjunction wi th Fig. 5.31. In this section. we present some typical synchronous counters and explain their operation . Binary Counter The design of a synchronous binary co unter is so simple that there is no need to go through a sequential logic design process. In a synchronous binary counter. the flip-flop in the least significam position is complemented with every pulse . A flip-flop in any other position is complemented when all the bits in the lower significant positions arc eq ual to I . For exam ple. if the present state of a four-bit counter is A 3A2AtAo ::: 00 11 . the next co unt is 0100. Ao is always co mpleme nted. A I is complemented beca use the present state of Ao ::: I . A2 is compleme nted because the present Slate of AlAo::: I I. Howe ver. A 3 is not complemented. because the present state of A 2A] AO ::: 0 11. which does not give an a11- I 's co ndition. Synchronou s binary counters have a regular pattern and can be constructed with complementing flip-flops and gates. The regular pattern can be seen from the four-bit counter depicted in Fig. 6.12. The C inputs of all flip-flops are connected to a co mmon clock . The co unter is enabled with the co unt enable input. If the enable input is O. all j and K inputs arc equal to 0 and the clock does not change the state of the counter. The firs t stage. Ao-has its J and K equal 10 I if the counter is enabled. The other j and K inputs are equal to I if all previous least significant stages are equal to I and the count is enabled. The chain o f AND gates generates the required logic for the J and K inputs in eac h stage. The counter can be extended to any number of stages. with each stage having an additional flip-flop and an Af' O gale tha t gives an output of I if all previous flip-flop outputs are I. Section 6.4 Synchronous Counters J - !>c Coun t e nable K ---l ~Ot,;t;, -~!K;{;{)YY*f! C A, J - >C. K ---l J - I>C IC I je LK FICURE 6. 12 Four-bit synchronous binary counte r .. To next stage 259 260 Chapter 6 Regi sters a nd Counters Note that the flip-flops trigger on the positive edge of the clock . The polarity of the clock is not essential here. hut it is with the ripp le counte r. The synchronous counter can be triggered with either the positive or the negative clock edge. The complementing flip-flops in a binary counter can be of either the JKIYpe, the Ttype, or the D type with XOR gate s. The equivalenc y of the three types is ind icated in Fig. 5 .13. Up-Dow n Bina ry Counter A synchronous countdown binary counter goes through the binary states in reverse order, from 1111 down 10 ‫סס‬oo and back to 1111 to repeat the count. It is possible to design a countdown counter in the usual manner, but the result is predictable by inspection of the downward binary count. The bit in the least significant position is comple mente d with each pulse . A bit in any other position is complemented if all lower significant bits are equal to O. For exam ple, the next state after the present slate of 0 100 is 00 11. The least significant bit is always co mpleme nted. Th e second significa nt bit is co mplemented because the first bu is O. The third significant bit is complemented because the first two bits are equal to O. But the fourth bit does not change, because nOI all lower significant bits are equa l to O. A countdown binary co unter can be construc ted as shown in Fig. 6 .12, except that the inputs to the A ND gat es must come from the complemented outp uts. instead of the normal outputs, of the previous flip-flop s. The two operations can be combined in one circui t to fonn a counter capable of counting either up or down. The circuit of an up-down binary counter using T flip-flops is shown in Fig. 6.13. It has an up control input and a down control input. When the up input is I. the circuit counts up. since the T inputs receive thei r signals from the values of the previous normal outputs of the flip-flops. When the down input is I and the up input is 0, the ci rcuit counts down, since the complemented outp uts of the previou s flip-flops are applied to the Ti nputs. When the up and down input s are both 0, the ci rcui t does not change state and remains in the same count. When the up and down inputs are both I. the circuit counts up. Th is set of conditions ensures that only one operation is perfo rmed at any give n time. S Ole that the up input has priority over the down input. BCD Counter A BCD counte r count s in binary-coded decimal from ‫סס‬oo 10 1001 and back 10 ‫סס‬oo . Because of the return 100 after a count of 9, a BCD counter doe s not have a regular pattern. unlike a straight binary count. To derive the circuit of a BCD synchronous counter. it is necessary 10 go through a sequential ci rcuit design procedure. The stale table of a BCD counter is listed in Table 6.5. The input conditions for the Tfli p-f1ops are obtained from the present- and next-stale conditions. Also shown in the table is an output y. which is equal 10 I when the present stale is 100 1. In this way.yean enable the count of the nexthigher significant decade while the same pulse switches the present decade from 100 1 to (XX)(). Th e flip-flop input equations can be simplified by mea ns of maps. The unused stares for minterm s 10 to 15 are taken as don 't-care terms. The simplified functions are Section 6.4 26 1 Synchronous Counters Up -~---------~ ,:-..... c ::· .?2s·:· .:: 1~~~:%,;. !.~I;"t.----~- !-__ A, .t>If------- 1-__ e LK FIGURE 6 .11 Four-bit up-down binary counter A, 262 Registers and Counters Chapter 6 Table 6 .S Sto te Table for BCD Counter Present St ate Next State Output Qs Q., Q, Q. Qs Q., Q, Q. r 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 Fllp.Flop Inputs TQs TQ., TQ, 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 TQ. 0 1 0 1 0 1 0 1 0 0 TQ4 = Q2Ql TQ 8 = QIIQl + Q-lQ2Ql )' = QSQI The circuit ca n easily be dra wn with four T fhp-flops. five A ND gates, and o ne OR gate. Synchronous BCD counters can be cascaded to form a counter for decimal numbers of any length. The cascading is done as in Fig. 6.1I , except that output ), must be connected 10the count input of the next-higher significant decade. Binary Counter with Parallel Load Counters employed in digital systems quite often requ ire a para llel-load capability for transferring an initial binary number into the counter prinr to the count operation. Figure 6.1~ shows the lop-level block diagra m symbol and the logic d iagram of a four-bit regis ter that has a paralle lload capability and can operate as a counter. when eq ual to I . the in put load co ntro l d isables the count operation and causes a transfer of data from the four data inputs into the four flip-flops. If both contro l inputs are O. clock pu lses do not change the state of the register. The carry output becomes a 1 if all the flip-flop s are equal to I while the count inp ut is enabled. This is the condition for complementing the flip-flop that hold s the ne xt significant bit. Th e carry output is useful for expanding the counter to more than four bits. The speed of the co unter is increased when the carry is generated directly from the outputs of all four flip-flop s. because o f the reduced de lay for generating the carry. In going from state II I I to lXXXI. only one gate delay occ urs. whereas four gate delays occur in me AND gate chain shown in Fig. 6.12. Similarly. each flip-flop is associa ted with an AND gate that receives all previous flip-fl op outputs directly instead of connecting the AND gates in a chain. The ope ration of the co unter is summarize d in Table 6.6. The four control inputs-Clea r. e LK. l.ood. and GJ//Ilt-determ ine the next state. The Clear input is asynchronous and. when equal to O. cause!'> the co unter to be cleared regard less of the presen ce of cloc k pulses or other Section 6.4 Synchronous Counters CO""==;=iL_ I _ l.ood ~Bil ~ Bina ry C O\IfIle r ( a) Count Lood 263 .J - -{) ~ i> ~ <, I -{) := --j I - L.-- ~ I, - '------- ~ H !,h (;s L- - J1--j -L 1"1> '\ ---.,. A, J c . .. K t- --]\ r-t-t- ~ '-- -{) --r !---rl. ~ v 4® ~J fitt ~ ;ij V J C K ;-J A, c' 22/ c..o,;::. Cll'ur cu: ,," (bi FIGURE 6 .14 Four-bit binary counter with paraltelload C 264 Chapter 6 Regi sters and Counters Table 6 .6 Function TobIe for the Counter of Fig. 6.14 Cle ar e lK LOAd Co u n t 0 I I I X X I X X I 1 I I 0 0 0 Functio n Clear to 0 Load inputs COUn! ne xt binary No change ~tate inputs. Th is re lat io nship is ind ica ted in the table by the X entri es. which symbolize don't-care co nd itions for the ot her inputs. The Clear inp ut must be: in the I state for all ot her ope rations. With the Load and Count inputs both at O. the outputs do not change. eve n when clock pulses are applied . A Load input of I causes a transfer from inputs 10-/3 into the register during a positive edge of CLK. The input data are loaded into the register regardless of the value of the Count input. because the COIlIIt input is inhibited when the Load input is enabled. The Load input must be 0 for the Count inp ut 10 contro l the operation of the count er. A counter with a parallel load can be used to generate any desired count sequence. Figure 6.15 shows two ways in which a ccunrer with a parallel load is used to generate me BCD coum. ln each case, the Count control is sct to I 10 enable the count through the eLK input. AI'\(). recall thaI till: load control inhibits the count and mal me d ear ope ration is independent of other control input' . The AND gate in Fig. 6.15(a) detects the occurrence of state 1001. The co unter is initially cleared to O. and then the Clear and Count inputs are set to I. so the counter is activeat all times. As long as the output of the A ND gale is O. each positive-edge clock Increments the counter by I. When the o utput reaches the co unt of 1001. both Ao and A3 become I. making the output of the AN D gate equal to I. This condition activates the Load input therefore. on the next clock edge the register doe s not cou nt. but is loaded from its four inputs. Since all four inputs are connected to logic O. an all-D's value is loaded into the register followin g the count of 100 1. Thus. the circuit goes through the count from 0000 through 1001 and back to 0000. as is required in a BCD counter; In Fig . 6. l5( b). the NAN D gate detect s the count of 1010. but as soo n a.. thi.. count occ urs. the reg!ster is cleared. Th e co unt 10 10 has no chance of Slaying on for any appreciab le time. Loud C OIIIII z 1 CIt.'IIT COImr - I Counter of Fig. 6.14 Clrur - I LOdd - O CL K I I I t Inpu ts ha ve no effect (a) Using the load input (b ) Using the clear inpu t FIGURE. 6 .1 S Two ways to ach ieve a BCD counter using ill counter with p arallel load Sect ion 6.5 Oth er Counters 26S becau se the register goes immediately to O. A moment ary spike occurs in output Ao as the count goes fro m 10 10 to lOl l and immed iately to 0000 . The spike lIlay be undesirable, and for that reason. this co nfig uration is not recommended. If the counter has a synchronous clear input, it is possible 10clear the counter with the clock after an occurrence ofthe 100 1 count. 6. 5 OTHER COUNTERS Counters can be designed to gene rate any desired sl..'tJuence of states. A divide-by-V counter (also known as a modulo-N coun ter) is a co unter tha t goes through a repea led seq uence of N states. The sequence may follow the binary count or may be any othe r arbitrary seq uence. Counters are used 10 generate timing signals 10 control the sequence of operations ill a d igital system. Co unter s can also be constructed by means of shift registers. In this sectio n. we present a few examples of nonbinary counte rs. Counter with Unused States A circuit with" nip-flops has 2 ~ binary states. There arc occasions when a sequen tial circu it uses fewer than this maximum possible number of Males. Stales that are not used in specifying the sequential circu it are not listed in the Male fable. In simplifying the input equations, the unused states may be treated as do n' t-care condition s or may be assigned specific next states. Once the circuit is designed and constructed. outside interfe rence may cause the circuit to enter one of the unused states. In that case, it is necessary 10 ensu re that the circui t eventuall y goes into one of the valid slates so that it can resume normal ope ration. Otherwise. if the sequential circuit ci rculates among unused states. there will be no way 10 bring it back to its intended seq uence o f state transitions. If the unused slates are treated as don't-care conditions. then once the ci rcuit is designed. it must be invesrigatcd to determine the effect of the unused Slates. The next state from an unused state can be determined from the analysis of the circuit after it is designed. As an illustration. consider the co unter specified in Table 6.7. The count has a repealed sequence of six stales. with flip-nap s B and C rcpean ng the binary count 00. 01. 10. and flip-flop A alternating between 0 and I every three counts. The count sequence of the counter is nor straight binary, and IWO states. 011 and I I I. are nOI included in the count. The choice of JK llip-llops results in the flip-flop input conditions listed in the table. Inputs K B and Kc have only t's and X's in their Ta b le 6.7 Stat~ Table for Counter Present State A • 0 0 0 0 0 I t I 0 0 I t Flip -Flop Inputs Next St ate C A 0 I 0 0 I 0 0 0 I I t 0 • c I. B. I, 0 I 0 0 t 0 I 0 0 I 0 0 0 0 X X 0 I I X X X X X 0 0 0 I B, I, B, X I X X X I I 0 t X X X X X I X t 0 X t 266 Cha pt er 6 Registers and Counters A B c Logic 1 - '---+-{ /8):<'-- -8 ~ 0'0 100 (,;*---{O ll C/o<k (a) Logic diagram (b) Siale diagram FIGURE 6.1 6 Counter wIth unused st ates columns, so these inputs are always equal to I. The other flip-flop input equations can be stmplified by usi ng mintcrms 3 and 7 as don't-care conditions. The simplified equations are lA= B KA = B JB = C KB = I Jc = B' Kc = I The logic diagram of the counter is shown in Fig. 6. I6(a ). Since there are two unused stales, we analyze the circuit to determin e their effec t. If the circuit happens to be in stare 0 I I beca use of an error signal, the ci rcuit goes to state 100 after the application of a clock pulse. Thi s action may be determin ed from an inspect ion of the logic d iagra m by noting that when B = I. the next clock edge complements A and clears C to 0, and when C = I, the ne xt clock edge co mplements B. In a similar manner, we can evaluate the next state from present state II I to be 000. The state d iagram includ ing the effec t of the unused states is shown in Fig. 6. I6Ib ). lfthe circuit ever goes 10one of the unused slates because of outside interfe rence, the next count pulse transfers it to one of the valid states and the circuit continues to coo nt correctly. Thus. the counter is self-correcting. In a self-correcting counter, if the counter happens to be in one of the unused states , it eve ntually reac hes the nonnal count seq uence after one or more clock. pulses. An alternative design could use add itional logic to direct every unu sed state to a speci fic next stale. Section 6.5 Other Counters 267 Ring Counter liming signals that con trol the sequence of operations in a digital system can be generated by a shift register or by a counter with a decoder, A ring co unter is a circular shift register with only one flip-flop being set at any particular time; all others are cleared. The single bit is shifted from one flip-flop to the next 10 produce the sequence of timin g signals. Figure 6.17(a) shows a four-bit Sh,n _ _ right ... 1) .1 " 2, "...,. t (a) Ring-coun ter (initial value " ! (XX) ) e LK ___r T ,_ -.-Jn _ -.-Jne--_ _ T, _ _ (b) Seque nce of four timing signals Co unt e nable (c) Co unte r a nd decoder fiGURE 6 .17 Generation of timing signals 268 Chapter 6 Registers a nd Counters shift register connected as a ring counte r. The initial value of the reg ister is I@andrequires Preset/Cl ear fhp- flops . The single bit is shifted rig ht with every clock pu lse and circ ulate s back fro m T3 to To. Each flip -flo p is in the 1 state once every fou r clock cycles and prod uce s one of the four timi ng sig nals shown in Fig. 6. 17(b). Each outp ut becomes a 1 after the negative-e dge tran sition o f a cloc k pulse and remains 1 duri ng the next cloc k cycle . For an alterna tive design.the timing signals can be generated by a two- bit co unter that goe s through four distin ct states . T he de coder shown in Fig. 6 . 17(c) decod es the fou r states of the counter and ge nerates the required seq uence of timing signals . To ge nerate 211 timi ng sign als, we need either a shift register with 21t flip-flops or an ,,-bit binary co unter toge ther with an n-to_21t·line decoder. For example, 16 timing signals can be generated with a l6-bit shift register connected as a ring counter or with a a-bit binary coun ter and a 4-to-l 6line decoder. in the first case. we need 16 flip-flops. In the second, we need -t fbp-fl ops and 16 fourinput A.'ID gates for the decoder. It is also possible to generate the timing signals \\ith a combination of a shin register and a decoder. Tha t way, the number of flip-flops is less than that in a ring coumer, and the decoder req uires only two- input gates. This combination is called a Johnson cowl/a. Johnso n Counter A k-bit ring co unter circulates a sing le bit among the flip-fl ops to pro vide k di stingu ishable states. Th e number of states can be doubled if the shift reg ister is co nnec ted as a switch-tail ring counter. A sw itch-ta il ring counter is a ci rcular shift register with the comp leme nted ou tput of the last flip -flop co nnec ted to the input of the fir st flip-flop. Figu re 6 .18(a) sho ws such a shift 1-'----j D E C E' CLK 4- -l- --J --J (a ) Four-stage switch-tail ring counte r fl ip-flop Sequence number 1 2 3 OUl P UIS A B C E 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 4 5 6 0 7 8 0 0 1 1 1 1 0 AND gale required for output AT AB' Be CE' AE A 'B B'C C' E (b) Co unt seq ue nce and req uire d decoding FIGURE 6 .18 Construction of a Johnson co unte r Sectio n 6.6 HDl for Regi ster s and Counter s 269 register. The circular connection is made from the complemented output of the rightmost flipflop to the input of the leftmost flip-flop. The register shifts its contents o nce 10 the right with every clock pulse. and at the same rime, the complemented value of the E flip-flop is transferred into the A flip-flop. Starting from a cleare d state. the switch-tail ring counter goes through a sequence of eight slates, as listed in Fig, 6.18{b). In general, a k-bit switch-tail ring counter will go through a sequence of 2k states. Starting from all (l's, each shift ope ration inserts I 's from the left until the register is filled with all l 's. In the next sequences, O's are inserted from the lefl until the reg ister is again filled with all O's. A Johnson counter is a k-bit switch-tail ring counter with 2k decoding gates to provide outputs for 2k timing signals. The decoding gates are not shown in Fig. 6.18. but are specified in the last column of the table. The eight AND gates listed in the table. when con nected to the circuit. will complete the construction of the Johnson counter. Since each gate is enabled during one particular state sequence. the outputs of the gates generate eight timing signals in succession. The decodi ng of a k-bit switch-tail ring counter to obtain 2k timing signals follows a regular pane m. The a11-0's state is decoded by taking the compleme nt of the two extreme flip-flop outputs. The all- t ' s state is de coded by laking the nonnal outputs of the two extreme flip-flops. All other states are decoded from an adjacent I , 0 or O. 1 pattern in the sequence. For example. sequence 7 has an adjacent O. I pattern in flip-flops B and C. The decoded output is then obtained by taking the complement of B and the normal output of C. or B'C. One disad vantage of the circ uit in Fig. 6. 18(a) is that if it finds itself in an unused state, it will persist in moving from one invalid state 10another and never find its way to a valid state. The difficulty can becorrected by modifying the circuit to avoid this undesirable condition. One correcting procedure is 10 disconnect the output from nip-flop B that goes to the D input of flipflop C and instead enable the input of flip-flop C by the function Dc = (A + C )B where Dc is the flip-flop input equation for the D input of flip-flop C. Johnso n counters can be constructed for any number of timing sequences. The number of flip-flops needed is one-half the number of timing signals. The number of decoding gates is equal to the number of timing signals. and only two-input gates are needed. 6 .6 HD l FOR REGISTERS AND COUN TERS Registers and cou nters can be described in Verilog at either the behavioral or the structural level. Behavioral modeling describes only the operations of the register, as prescribed by a function table. without a preconceived structure. A structural-level descrip tion shows the circ uit in tenus of a collection of components such as gates, flip-flops, and multiplexers. The various compo· nents are instantiated to form a hierarchical description of the design similar to a representation of a logic diagram. The examples in this section will illustrate both types of descriptions. Shift Register The universal shift register presented in Section 6.2 is a bidirectio nal shift register with a parallel load. The four cloc ked ope rations that are perfonned with the register are specified in Table 6.6. The register also can be cleared asynchronously. Our chosen name for a behavioral 270 Chapter 6 Regi st ers a nd Counters descri ption of the fo ur-bit universal shift register sho wn in Fig. 6.7(a l. the nam e Shiff-Regis/a _-l_'}('I,. signifies the behavioral mod el of the internal de tai l o f the top-level block d iag ram symbo l and d istinguishes that mode l fro m a structural one . The behavio ral model is presented in HDL Example 6.1, and the struc tural model is given in HDL Example 6.2. Th e top-level block dia gra m symbol in Fig. 6.7(a) indicates that the four-bit universal ~ hift reg ister has two selection inputs (s1• .1-0), two serial inputs (shifUeft. shifc rigllt). 3 four -bit parallel inpuf (/..../JOr). and a four· bil parallel outp ut (A....jJflr). The elements of \ 'CClOr l...J¥lr/ 3: OJ corres pond to the bits /., ,. .. ,10 in Fig. 6 .7, and simi larly for AJar13: OJ. The al \\ a ~' s bloc k describes the fi ve operat ions that can be performed with the reg ister. The Clea rinp u( clears the register asynchronously with an ac tive-low signal. Clear must be high for the register to respond to the positive edg e of the cloc k. The four clocked operations of the register are determined from the values of the two select inputs in the case statement. (s l and sO are concatenated into a two- bit vector and are used as the expressio n argument of the case statemcnr.: Th e shifting operatio n is specified by (he concatenation of the serial input and three bits of the register. For example. the stateme nt speci fics a concatenation of the serial data input for a right shift o peration (.uSB_iIII with bits A-Jmr/3: I ) of tile output data bus. A reference 10 a contiguous range of bits .... ithin a vector is referred to as a pa rt select, The four-bit result of the concate nation is transferred ( 0 register A-par 13: OJ when the clock pulse triggers the operatio n. Th is transfer prod uces a shift-ri ght operat io n and updates the reg ister with new informat ion. The shift operation overwri tes the conte nts of A-IJa r/ OI with the contents of A-parl I ). Note that only the functionality o f the circuit has bee n desc ribed, irrespective of any particular hardware. A synthesis too l would ereale a netlist o f AS IC ce lls to implement the shift regis ter. ImL E xa m p le 6,1 1/ Behavioral desc ription of a 4·bit universal shift register /I Fig. 6.7 a nd Tab le 6 .3 m odule ShifCRegister_4_beh ( o utput reg (3: 0] AJlar, I....par, Inp ut 13: 0) 51 , Inp ut MSBJn. LSB _in. CLK. Clea r ); alw ay s @ (po sedg e CLK, negedge Clear) if (- Clear) A....par <= 4'bOOOO; sn. 1/V2001. 2005 1/ Register output 1/ Parallel input /I Select inputs /I Seri al inputs 1/Clock and Cle ar 1/ V2OO1. 2005 e lse case ({5 1, sa» 2'bOO: AJlar <= A""'psr; 2'b0 1: A....par <= {MSBJ n, A""par(3: 1]}; 1/ No change 1/Shift right Section 6.6 HDL for Registers and Counters 2'b10: A....par < :: {A_par[2: 01. LSB_in}: 2'b11: AJlar <:: I_par; end case endmo dule 271 /I Shift left If Parallel load of input Variables of type re g retain their value until they are assigned a new value by an ass ignment state ment. Co nsider the follo wing alternative case statement for the shift register model : case ({s1, sO}) 11 2'bOO: A_par < :: AJlar: 2'b01: A_par <:: {MSB_in, A_par [3: 1]}; 2'b10: A_par <:: {A_par [2: 0]. LSB_in}: 2'b11: A_par <:: IJlar; endca se fI No change {f Shift right fI Shift left /I Parallel load of input Without the case item 2 'bOO. the case statement wou ld nOI find a match between {s1, sO} and the case items , so register Ay ur wou ld be left unchan ged. A structural mood of the universal shift register can be described by referring to the logic diagra m of Fig. 6.7(b). The diagram shows that the register has four m ultiplexers and four D flip!lops. A m ux and flip-flop together are modeled as a stage of the shift register. The stage is a structural mudd, too, with an instantiation and interconnection of a module for a mux and another for a D flip-flop. For simplicity, the lowest-level module s of the structure are behavioral models of the mu ltiplexer and fl ip-flop. Attention must be paid to the details of connecting the stages correctly. The structural description of the register is shown in HDL Examp le 6.2. The lop-level module declares the inputs and outputs and then instantiates fo ur copies of a stage of the reg ister. The four instantiations specify the interconnections betw een the four stages and provide the detailed construction of the register as specified in the logic diagram. The behavioral description of the l1ip-flop uses a single edge -sensitive cyclic behavior (an always block). The assignment statements use the nonblockin g assig nment ope rator « =) , the model of the mux employs a single level-sensitive behavior, and the assig nments use the block ing ass ignment operator (=). HOI. Exam p le 6.2 If Structural description of a 4· bit universal shift register (see Fig. 6.7) module ShifC Register_4_str ( 1/ V2001, 2005 output [3: OlA_par, 1/ Parallel output Input [3: 0] IJlar, 1/ Parallel input input st . sO, 1/ Mode select input MSB_in. l SB_in. CLK, Clear 1/ Serial inputs, clock, clear ); If bus for mode control assign [1:0] sefect e {s1, sO}: If Instantiate the four stages stage STO(AJlar{O], A_par[1]. LSB_in. ,-par[O]. A_par[O], select. CLK, Clear): stage sr i (AJlar[1], AJlar[2], A_parl0], IJlar[1], A_parI1], select, Cl K, Clear): 272 Chapter 6 Reg ist ers and Counter s stage 5T2 (A'-par[2], A_par[3], A_p ar{l l , l.-par{21, A.-par{ 2], select, ClK, Clear); stage 5 T3 (A.-par[3), MSBJn, A.-par{21, 1J>a r{3J, AJ>8 r{3), select, ClK, Clear); endmod ule 1/ One stage of shift regis ter module stage (iO, 11, 12, 13, a, select. CLK, Clr); iO, 1/ circ ulation bit selection input 11, 1/ data from left neigh bor or serial input for shift-rig ht 1/ data from right neighbor or serial input for shift-left i2, 1/ data from parallel Input i3; o ut p ut Q; inp ut [1: 01 select; 1/ stage mode control bus input CLK, Clr; 1/ Cloc k, Clear for flip-flops wire mux_ou t; 1/ instantiate mux and flip-flo p Mux_4 _x_1 MO (mux_o ut, iO, i1, i2, i3, select ); (0, mux_out. CLK , Clr ); D_f1ip_flop M 1 end modu le 1/4x1 multiplexer 1/ behavioral model m odule Mux_4_x_ 1 (mux_ou t, iO, It . i2, i3, select); mux_out; o ut put i np ut iO, 11, 12, i3; In pu t [1 : OJ select; reg mux_o ut; i1 . 12, 13 ) always @ (select, case (select) 2'bOO: mux_out = iO; 2'b0 1: mux_out= 11; 2'b1 0: mux_out = i2 ; 2'b1 1: mux_o ul = i3; endcase end mod ule o. 1/ Behaviora l model of 0 flip-flop mod ule D_flip_f1op (0, 0 , CLK, Clr) ; Q; o ut put Inp ut 0 , ClK, Clr; reg 0; always @ (posedge CLK, neg edge Clr) If (- el r) 0 <= l 'bO; else Q <= 0 ; endmodule Section 6.6 HDL f or Registers and Cou nters 273 The above examples presented two descriptions of a uni versa l shift register to illustrate the different styles for modeling a digital circuit. A simu lation should veri fy that the models have the same functionality. In prac tice, a design er deve lops only the behavioral model , which is then synth esized. The function of the synthesized circuit can be compared with the behavioral desc ript ion from which it was co mpiled. Elim inating the need for the de signer to de velop a structural model pro duce s a hug e imp rovement in the efficiency of the des ign process. Synchronous Counter HDL Example 6.3 present s Bina1)'_Counter_4_Pa r_Load. a behavioral model of the synchronous counter with a paral lel load from Fig. 6.14. Count, Load, CLK, and Clear are input s that determine the operation of the counter according to the function specified in Table 6.6. The counter has four data inputs, four data outputs, and a carry output. The internal data lines (13, /2,/l, 10) are bundled as Data_in[3: OJ in the behavioral model. Likewise, the register that holds the bits of the cou nt (A3, A2, AJ , AO) is A_count[3: OJ. It is good practice to ha ve identifiers in the HDL model of a circuit correspond exactly to those in the docu mentation of the model. Th at is not always feasib le, however. if the circuit-le vel identifiers are those found in a handbook, for they are ofte n short and cryptic and do not exploit the text that is available with <l11 HDL. The top-level block diagram symbol in Fig. 6.14(a) serves as an interface between the names used in a circuit diagram and the expressive names that can be used in the HDL model. Th e carry output C_out is generate d by a combinational circuit and is specified with an a ssign statement. C_out = I when the coun t reaches 15 and the counte r is in the count state. Thu s, e_OUf = I if Co unt = 1, Load 0, and A = 1111; otherwiseC_out = O. Thc a lways block specifies the operation to be performed in the register, depending on the values of Clear, Load, and Count . A 0 (active-low signal) at Clearresets A to O. Otherwise, if Clear = 1, one out of three operation s is triggered by the positive edge ofthe clock . The if, else if. and else stateme nts estab lish a precedence among the control signals Clear, Load. and Count corresponding to the specification in Table 6.6. Clear overrides Load and Count ; Load overrides Count . A synthesis too l will produce the circuit of Fig. 6.14(b) from the behavio ral model. = HDL Exa m ple 6.3 /I Four-bit binary counter with parallel load (V2001, 2005) /I See Figure 6.14 and Table 6.6 module BinarL Counter_4_Pacload ( A_count, /I Data output output reg [3: OJ output C_out, /I Output carry Data_in, Input [3: OJ /I Data input Input Count, /I Active high to count /I Active high to load Load, /I Positive-edge sensitive ClK, Clear /I Active low ); 274 Chapter 6 Register s and Counters assig n C_out = Count & (- Load) & (A_count == 4'b1111); alway s @ (p osedge CLK, nege dge Clear) If (- Clear) A_count <= 4'bOOOO; else if (Load) A_count <= data_in; else if (Count) A_count <= A_count + 1'b1; else A_count <= A_count; II redundant statement endmodule Ripple Counter The struct ural des cription of a ripple co unter is show n in HDL Exam ple 6.-t The first module instantiates four inte rnally com ple me nting flip- flops defined in the sec ond mod ule as Comp _D..fl ip..flop (Q. CLK. Reset ). The cloc k (input eLK) of the first flip-flop is connec ted to the external control signal Count. (Counr repl aces CLK in the port list of Instance FO.) The clock input of the second flip -flop is connected 10 the o utput of the first. (AO replaces eLK in instance Fl .) Similarly, the clock of eac h of the other flip -flops is connected to the output of the previo us flip-flop. In this way, the fli p-flops are chained together to create a rippl e counter as show n in Fig. 6.8(b). Th e second mod ule describes a complementing fli p-flop with delay. The circuit of a complementing flip-flop is constructed by connecting the co mplement out put 10 the D inpu t. A reset input is incl uded with the flip-flop in order to be able to initialize the counter; otherv..ise the simulator would assign the unknow n value (X) to the output of the flip-flop and prod uce useless result s. The fl ip-flop is ass igned a delay of two time units from the time that the cl ock is applied 10 the time that the flip-flop co mplem ents. The delay is specified by the state ment Q <= #2 ..... Q. Notice that the delay operator is placed to the right of the nonblocking assignment ope rator. Th is form of delay, called intra-assignment delay. has the eff ect of pos tponing the assignment of the co mple men ted value of Q to Q. The effect o f model ing the dela y will be apparent in the simulation results. Th is style of mode ling might be useful in simulat ion. but it is to be avoided whe n the model is to be synthesized. The results of synthes is depe nd on the ASIC ee ll library that is accessed by the tool , not on any propagation delays that might appear within the model that is to be syn thesi zed. IIIlL E xa m p le 6.4 1/ Ripple counter (See Fig. 6.8(b)) 'timescale 1ns / 100 ps mod ule Ripple_Counter_4bil (A3, A2, A1, AO, Count, Reset); output A3, A2, A 1, AO; i nput Count, Reset; II Instantiate complementing flip-flop Comp_D_fIip_f1op FO(AO, Count, Reset); Comp_D_fIip_flop F1 (A1, AO, Reset); Comp_D_f1ip_f1op F2 (A2, A1, Reset); Sectlon 6.6 HOt for Registers and Counters 275 Comp_D_f1ip_f1op F3 (A3, A2, Reset): endmodule /I Complementing f1ip-ffop with delay I/ Input to 0 flip-flop = 0' module Comp_D_f1ip_flop (a. CLK, Reset); output 0; input CLK, Reset; 0: reg always @ (negedge CLK, posedge Reset) if (Reset) 0 <= 1'bO; else <= #2 - 0 : /I intra-assignment delay endmodule /I Stimulus for tesling ripple counter mod ule C Ripple_Counter_4bit; reg Count: reg Reset; AO. A1. A2, A3; wi re I/ Instantiale ripple counter Rlpple_Counter_4bit MO (A3, A2, A1, AO, Count, Reset); always #5 Count = -COUnt; Initial begin Count = 1bO; Reset 1b 1; #4 Reset = 1'bO; a = end initial #170 Sfi nlsh: endmodule The lest bench module in HDL Example 6.4 provides a stimulus for simulating and verifying the functionality of the ripple counter. The always statement generates a free-running clock with a cycle of 10 lime units. The flip-flops trigger on the negative edge of the cloc k, which occurs at t 10, 20. 30. and every 10 time units thereafter. The waveforms obtained from this simulation are shown in Fig. 6.19. The control signal Count goes negative every 10 ns. AU is complemented with each negative edge of Count , but is delayed by 2 ns. Each flip-flop is complemenred when its previous l1ip-flop goes from 1 to O. After t = 80 ns, all four flip-flops co mplement because the counter goes from Dil l to 1000. Each outp ut is delayed by 2 m•• and because of that. A3 goes from 0 to I at t = 88 ns and from I 10 0 at 168 ns. Notice how the propaga tion delays accumulate to the last bit of the counter, re\ ulting in very slow cou nter action. This limits the practica l utility of the cou nter. = 276 Chapter 6 Reg isters and Counters 0.0 ns 57.0 ns 114.0 05 171.0 ns Reset Count AD Al A2 A3 1 = 88 05 1 :. 16805 (a) From 0 to 180 ns 70.0 ns 77.0 ns 84.0ns 91.0 ns 98.0 m Reset Count -----' AD Al A2 A3 (b) From 70 to 98 ns FIGURE 6 .19 Simulat ion out put of HDl Example 6.4 PROBLEMS Answers to problems mar ked with " appe ar at the end of the boo k. Where ap propriate . a logic des ign and its relate d HDL modeling prob lem are cross referenced . Note: For each problem that requires writing and verifying a Verilag description, a test plan should be writte n to identify whic h funct iona l feat ures are to be tested during the simulatio n and how they will be tested. For example. a reset on the fly could be te sted by ass erting the reset signal 'W hile the simulated machi ne is in a state othe r than the reset stale. The test plan is to guide the de velopment of a test bench that will implement the plan. Simula te the model , using the test benc h. and verify that the behavior is correct. If synt hesis too ls and an ASIC cell library o r a field-prog rammable gate array (FPGA) are avai lable . the Veri log de scriptions develope d for Problems 6.3.\.-6.5 1 can be as sign ed as Problem s 277 synthesis exerc ises. The gate-level circuit produced by the syn thesis too ls should be simulated and co mpared with the sim ula tion results for the presynthes is model. (Be aware that in so me of the HOL problems there may be a need to de al with the issue of unused states: see the discussion of the defa ult case item preceding HO L Example 4. 8 in Chapter 4.) 6 .1 Include a two-in put :-lAND gate in the register of Fig. 6. 1, and co nnect the gat e output to the C inputs of all the flip-flops. One input of the l'Ar>.: D gat e receives the cloc k pulses fro m the clock generator, and the othe r inp ut of the NAND gate provi des a paralle lload co ntrol. Expl ain the operation of the mod ified regist er. Explain why this circuit might have opera tional pro blems. 6 .2 Include a sy nchronous clear input in the regis ter of Fig. 6.2. Th e modi fied register will have a parallel-load capability and a sync hronous clear ca pability. The register is clea red sync hronousl y whe n the dock goes through a po sitive trans itio n and the d ear inpu t is eq ual to 1. (HDL -see Problem 6.35(a). (b) .) 6.1 What is the difference betw een serial and para llel trans fer? Exp lain how to co nvert serial data to parallel and parallel da ta to serial. Wh at type of reg ister is needed? 6.4· The contents of a fo ur-bit register are initia lly lOll. The register is shifted six times to the rig ht, with the se rial inp ut being 101 101. What are the co nte nts of the regis ter after eac h shift? 6 .5 The four-bit unive rsal shift reg ister shown in Fig . 6.7 is enclosed within one IC pac kage. (a) Draw a block diagram of the IC, sho wing all inpu ts and ou tpu ts. Includ e two pins fo r the powe r supp ly. (b) Draw a bloc k diagram, using two ICs. to prod uce an eight -bit universal shift register. 6 .6 Desig n II fou r-bit shift register with a parallel load. usin g D flip- flops. Th ere are two control inputs: shift and load. When shift = I, the co ntents of the reg ister are sh ifted by one posi tio n. Ne w data are transferred into the register when load " 1 lind shifr » O. If both co ntrol inputs are equal to O.the contents of the regis ter do not chan ge. (HDL - see Pro blem 6.35(c ), (d). ) 6 .7 Draw the logic diagram of a four-b it register with fo ur D flip-flops and fo ur 4 x I multiplexers with mode selection inputs sl and so. The register operates according 10 the follo wing function table (HDt-see Problem 6.35(e), (D.) " n n .. o No chang<' Complemem the fOUl output. o C1O;\T n:gi.ter to 0 (.ynchronuu. with the d ock) Load paralleldata 6 .8· The serial add er of Fig . 6.6 uses two four-bit regist ers . Register A holds the binary number DIal and register B holds 0 111. The carry flip-flop is initiall y reset to O. List the binary val ues in register A and the carry fli p-flo p afte r eac h shift. 6.9 Two ways to imp leme nt a serial adder (A + B) are presented in Secti on 6.2. It is necessary to modify the circuits to convert them to seria l subrractors (A - B). (a) Using the circuit of Fig. 6.5, show the changes needed to perform A + 2' s comp lem ent of B. (HOL - see Proble m 6.35(h).) (b)* Using thc circuit of Fig. 6.6 . sho w the chan ges needed by modi fying Table 6.2 fro m an adde r to a subtracter circui t. (Se e Problem 4.12 .) (HOL - see Problem 6.35(i).) 278 Cha pter 6 Regi sters and Counters 6 .10 Design a seri al 2's complernenter with a shift register and a flip-flop. The binary number is shifted out from one side and its 2's complement shifted into the other side o f the shift register. tHOL - see Prob lem 6.35(j).) 6 .11 A binary ripple counter uses flip-flops that trigger on the positive edge of the clock. What will be the count if (a) the normal outputs of the flip-flops are con nected to the cloc k. and (b) the complement outputs of the flip-flops are connected to the clock? 6.12 Draw the log ic diagram of a fo ur-bit binary ripple countdown co unter. using (a ) flip-flops that trigger on the positive edge of the clock. and (b) llip-llo ps that trigger on the negative edge of the clock. 6 .13 Show that a BCD ripple counter can be constructed fro m a four-bit binary ripple counter ....-uh asynchronous clear and a NAND gate that detects the occurrence of cou nt IOIO. IHDL - see Problem 6.35(k ).} 6 .14. How many flip-flops will be complemented in a IO-bit binary ripple counter 10 reach the next count after the fo llowing counts? 1001100111 (b) 00111 11 I 11 (c) 11 11 11 111 1 (a) 6 .15. A flip-flop has a 3-ns de lay fro m the lime the clock edge occ urs to the lime the output is complemented. What is the maximum delay in a IO-bit binary ripple counter that uo;es this type of ll ipflop? What is the maximu m frequency the counter can operate with reliably? 6 .1 6* The BCD ripple counter shown in Fig. 6.10 has four tlip-flops and 16 states. of .... hich only 10 are used. Analyze the circuit. and determine the next slate for each of the othe r si,; unused states. What will happen if a noise signal sends the circ uit to one of the unused states? 6.17. Design a four-bit binary synchronous counter with D flip-flops. 6.18 What operation is pcrfonned in the up-down counter of Fig. 6. 13 when both the up and do wn inputs are enabled'! Modi fy the circuit so that whe n both inputs are eq ual to I. the counter does not change state. (HDL - see Problem 6.35(1).) 6 .19 The n ip' flop input equations for a BCD cou nter using Tflip-flops are give n in Section 6.4. Obtain the input equations for a BCD cou nter that use, (a) JK ni p-flops and (b J"' D flip-flops. Compare the three designs to determine which one is the most efficient. 6 .20 Enclose the binary counter with parallel load of Fig. 6. 1~ in a block. diagram. she ....ing all inputs and outputs. (a) Show the con nections of four such blocks to produce a 16-bit counter with a par..ule lload. (b) Construct a binary cou nter that counts from 0 through binary~. 6.21 . The co unter of Fig. 6.l4 has two control inputs-Load (L ) and Count (C )--and a data input. I,. (a) Derive the flip-flop input equation, for J and K of the first stage in terms of L C. and I. (b ) The logic diagram of the first stage o f an integrated circuit ( 7~ 1 61 ) is sbc .... n in Fig. P6.21. verify that this circ uit is equ ivalent to the one in (a). 6 .22 For the circuit of Fig. 6.14. give three alternatives for a mod -I 2 counter (a) using an AND gate and the load input. (b) uvlng the output carry. (c) using a ~A~ D gate and the asynchronou s clear input. Problem s 279 Co unt (C) ----+------""":-~IE;;;. FIGURE P6.21 6.23 Design a timing circuit which provides an output signal that Mays on for exactly eight clod: cycles. A start signal sends the ou tput to the I stare. and a fter eigh t cloc k cycles the sig nal returns to the a state. (HDL - see Problem 6.45.) 6.24· Design a co unter with T flip -flops that goes through the follo wing binary repeated sequence: 0, 1.3.7.6.4, Show that when binary states OIU and 101 are taken to be don' t-care con ditions. the co unter may not ope rate properl y. Find a way 10 correc t the design. (HDL - see Pro blem 6.53 .) 6 .25 II is necessary to ge nera te six repea ted timing signals To throu gh r:~ similar to the ones shown in Fig. 6. I 7(c) . Design the circuit using (HDL flip-flops only. (b) a cou nter and a decoder. see Proble m 6.46). (a ) 6 .26. A digita l system has a clock generator that prod uces puls es at a frequ ency of 80 MHz. Design a circuit thaI pro vides u cluck with u cycle time of 50 ns. 6.27 Design 3 coun ter with the following repea ted binary sequence: 0, 1. 2. 3, 4, 5. 6. Use JK flip- flops. (HDL - see Problem 6.5 1.) 6 .28* Design 3 cou nter wit h the following repea ted binary seq uence: O. 1,2. 4.6. Use D flip-flops. (HDL - sec Problem 6.5 1.) 6 .29 List the eight unused states in the switch-tail ring co unter of Fig . 6. 18(3). Determine the next state for each of these sta tes. and show that if the co unter finds itself in an inv alid state. it docs not return to a valid sta te. Modify the circui t as recommended in the tex t, and show that the counter prod uces the same sequence of sta res and that the circuit reac hes a valid slate fro m any one of the unused state s. 6.30 Sho ....' that a Johnson counter With 11 flip -flops produ ces a sequence of 2n stares. LiMthe 10 states prod uced with five flip-flops and the Boolean terms of eac h of the 10 AND gate output s. 6 .11 Write andverify the HDLbehavioral and structural descriptions of the four-bitregister of Fig. 6.1. 6 .32 (a) Write and verify an HD L behavioral descriplion o f a fou r-bit regi ster with paral lel load and asy nch ronous cle ar. Wr ite and veri fy an HDL struc tural descrip tion of the four- bit regi ster with parallel load shown in Fig. 6.2. Use a 2 x 1 mulliplexer for the fli p-flop inputs. Include an asynchro nous dear input. (c) Chec k both desc riptions, using a test bench. (b ) 6.33 Th e follo wing program is use d to simulate the binar y counter with paral lel load described in HDL Exa mple 6.3 : If Stimulus lor testing (he binary coun ter of Exam ple 6.3 m odu le testcounter: 280 Chapt er 6 Regist ers a nd Counters re g Cou nt, loa d. Cl K, Clr; reg [3: Ol iN; wire CO; wire [3: 0] A; coun ter cnt (Count, load. IN. Cl K, cir, A, CO) : always #5 ClK = · ClK; Initia l begin cir = 0: ClK = 1; loa d = 0; Count = 1; #5Clr= 1; #30 load = 1: IN = 4'b1 ' 00; #20 load = 0; #60 Count = 0; #20 $finls h; 00' en dmodul e Go ove r the program and predict what would be the out put of the counter and the carry output from t = 0 to 1 = 15 5 ns. 6 .34· Write and verify the HOL behavioral descripti on of a four-bit shift register (see Fig. 6.3 ). 6 .35 Write and verify (a) a structural HDL mode l for the registe r de scribed in Pro blem 6.2 (b)* a behavioral HDL mode l for the register desc ribed in Probl em 6.2 (c) a structu ral HDL model for the register described in Prob lem 6. 6 (d) a behavi oral HO L model for the register described in Pro blem 6.6 (e) a structu ral HOL model for the register described in Prob lem 6.7 (I) a behavioral HOL model for the regi ster described in Pro blem 6.7 (g) a behavioral HOL mode l of the binary counte r described in Fig. 6.8(b ) (h) a behavioral description of the serial subtracter describe d in Problem 6.9Ia) (i) a behavioral desc ription of the serial subtracte r desc ribed in Prob lem 6.9(b) a behavioral descri ption of the serial 2's com plernemer described in Problem 6.10 (k) a behavioral description of the BCD ripple counter desc ribed in Prob lem 6.13 (I) a behavioral descri ption of the up-down counter described in Prob lem 6. 18 m 6 .16 Write and verify the HDL behavioral and structural de scriptions of the four-bit up-down counter whose logic diagram is desc ribed by Fig. 6.13, Table 6.5. and Table 6 .6 . 6 .1P Write and verify a behavioral description of the counter described in Probl em 6,1-l. (a) using an if ••• else statement (b) using a case statement (c) a finit e state machi ne. 6 .38 Write and verify the HDL behavioral descri ption of a four-bit up-dow n counter with paral lel load usin g the following control input s: (a)* The counter has three control inputs for the three ope rations Load. Up, and Do....·n. The order of precedence is Load, Up. and Down. Problems 281 (b) The co unter has IWO !K'leclion inputs 10 specify fou r operations: Up. Down. Load. and 00 change . 6 .39 Write and veri fy HOI. behaviora l and structural descriptions of the cou nter of Fig. 6.16. 6 .40 Wri te and \'erify an HOI. description of an eight-bi t ring coun ter similar [0 the one shown in Fig. 6.17(a). 6.41 Write and verify the HDL <bcri ption of a four-bit switch-tail ring (Joh nso n) counter (Fig. 6.1& ). 6 ."Z- The comment with the lasl clause of the ih taremenl in Bin.a,,_Counrt'r_"_Par3nad in HOL Exam ple 6.3 11011$tha tlhc suuemem is redundant. Exp lain wh y thi~ statement can be removed without changing the behav ior im plemented by the desc ription . 6 .43 Th e sc heme shown in Fig. 6.4 gates Ihe d oc k to control the serialtransfer of da ta from shifl register A to shift registe r H. L sing multiplexers at the input of each cell o f the shifl regi sters . de ... e1op a structural model uf an alterna tive circuit that docs not alter the d ock path. The top level of the design hierarch y is to instantiate the shift registe rs. The modu le descri bing the shift register is to have instantiations of Flip-fl ops and rnuxcs . Describe'the mu x and fl ip-flop mod ules with behav ioral model s. Be sure to consider rese t. De velop a test bench 10 sim ulate the circ uit and demo nstra te the tra nsfer of data. 6.44 Modify the design of the serial adder shown in fi g. 6.5 by removing the ga ted cloc k to the D Flip!lop and supplying Ihe clock signal to it direc tly. Augment the D flip-flop with a mux 10 recirculate the con tents of the flip-flop when shifting is suspe nded and 10 provide the carry ou t of the full adder whe n shifti ng is act ive. Th e shift reg isters are 10 incorporate this feature also. ramer than use a gated d oc k. Tbe lOp level of the design is 10 insrantiale modules us jng beh avioral model s for the shift registers. full adder. D fllp-Ilop, and max. Assu me .synchronous reset De velop . test bench to simu late the circuit and demonstrate the tran sfer of data. 6 .4S. Write and "'eri fy a behavioral deM:Tiption of a finite state machine to implement tht- counter described in Problem 6 .24. 6 .46 Problem 6.25 specifies an impleme ntation of a circuit 10 generate timing signals using (a) only Ilip-flcps and (b) a coumer and a decoder. As an alternat ive, write a behavioral descrip tion (without conside ration of the actu al hardware) of a sta le machi ne whose output ge nerates the timing signals To lhrou gh Ts. 6 .41 w rtre a behavioral description o fthe circuit sho wn in Fig. 1'6047. and verify that the circuit's output is asse rted if successive sam ples of the input have an odd numher of 1' 5. 6 .48 Write and verify a behavioral de scription of the cou nter show n in Fig. P6.48(a ); repe at for the counter in Fig. P604!l(h). 6 .49 Write a test plan for verifying the functionality of the univ ersal shift reg ister descri bed in HDL Example 6. 1. U"ing the test plan , simulate the mod el given in HD L Example 6.1. 6.S0 Writ e and verify a behav ioral model of the counter descri bed in (a) Proble m 6 .27 (b) Prob lem 6 .28 6.51 Wilhou t requinng a stale machi ne. and usin g a shifl l't'gister and add itional logic. wri te lind verify a mode l of an anemative 10 Ihe seq uence detector described in Figure S.27. Co mpare the im ple me ntations. 282 Chapter 6 Registers. and Counters :1-"---1 0 Qf-J-f- P_odd FIGURE. '6.47 Circuit for Problem 6.41 ("I/UII' f 7: OJ COW'll f 7:0J c.) Cbl FIGURE. '6.48 Circuit for Problem 6.48 References 28 3 REFERENCES 1. 4. BH" SKER, J. 199 7. A Verilv.1I HDL Primer. Allentown. PA: Star Galaxy Pre ss. BHASKER, J. 1998 . Veri/og HDL Synthesis, Alle nto wn, PA: Sta r Galaxy Pr ess. Dum, 1\1. D. 1999. Modeling, Svnthesu. and Rapid Protoryping ....ith Veri/og HDL Uppe r Saddlc River, Nl Prenti ce Hall. Cl LEm, M . D . 2m3, Advanced Digital Design ....ith the Veri/oK HDL Upper Saddl e River, NJ: 5. Cnsrn. M. D. 2004. Starter's Guide to Verilog 200/. Upper Saddle Ri ver, NJ: Prentice Hall. 2. 1. Pre ntice Hall. 6. 7, D IETMEYER, D. L. 1988. Logic Design of Digital Systems, 3d ed. Boston: All yn Bacon. 11. GAJS Kt, D. D. 1997 . Principles of Digitol Design. Upper Saddle River, NJ: Pre ntice HaH. HAYES, J. P. 1993. Introduction 10 Digital Logic Design. Reading, ~A : Addison-Wesley. KATZ, R. H. 2(x)5. Contemporary: Logic Design. Upper Saddle River, NJ: Prentice Hall. MANO. M . M .• and C. R. KIM I'. 2005. Logic and Comp uter Design Fundam enta ls & Xi/inx 6.3 Sri/dent Edition, 3rd ed . Upper Saddle Ri ver, NJ: Pre ntice Hall. N I'LSO"J. V. P., H. T. N AGLE. J. D. IRWIN. and B. D. C,\RROLL. 1995. Digital Logic Circuit Analy- 12 . PALNITKAR, S. 1996 . Verilog HDI..· A Gilide to Digital Design and Synthesis. M ountai n View. 8. 9. 10. sis and Design. Englewood Cliffs. N J: Prenti ce Hall. CA: SunSoft Pre ss (a Pren tice Hall title). ROTH. C. H. 2004. Fundamentals of Lagic Design. 5th ed. St . Pa ul, XtN : Brook s/C ole . 11. 14. THOM AS. D. E.• and P. R. Mocea v. 2002. Th e J,,~n'L(lg Hard....ureDescription Language, 6th ed. 15 . Boston: KluwerAcademic Publishers. W AKfRLY, J. F. 2006. Digital Design: Principles and rracticrs. 4th ed. Upper Saddle River, ~J: Pren tice Hall. Chapte r 7 Memory and Program mable Logic 7 .1 INTRODUCTION A memory unit is a device to whic h binary information is transferred for storage and from which information is retrieved when needed for processi ng. Wh en data processing takes place . information fro m memory is transferred to se lected re gisters in the processing unit. Interme dia te and fina l results obta ined in the processing unit are trans ferred back to be stored in memory . Binary inform ation recei ved from an input device is stored in memory. and information transferred to an ou tput device is tak en from memory. A memory unit is a collecti on of cells capable of s.toring a large quantity of bi nary information. There are two types of memories that are used in digital systems: random-access memory (RA\f l and rrad-anly memory ( RO~). RA\t: stores new information for later U~. The Pl'OC\."'iS of storing new information into memory is referredto as a memory write operation. The proce..s o f transferri ng the stored info nnation out of memo ry is refe rred to as a memory " ad operation . RA~ can perform both write and read operations. RO~ can perfonn onl y the read operatio n. Th is means that suitable binary information is alre ady sto red inside memory and can be retrieved or rea d at any time. However, that information can not be altered by writing . ROM is a programmable logic device (PLO ). The binary information that is stored within such a device is specified in some fashio n and then em bedded with in the hard ware in a process is refe rred to esp rog rumm ing the device. The word "prog ram ming" here refers to a hardw are procedure which specifi cs the bits that are inserted into the hardw are configuration of the dev ice. ROM is one example o f a PLO . Other such units are th e pro grammable logi c array (PLA). programmable array logic (PAL), and the field -programmable gate array (FPGA). A PLO is an integra ted circuit with intcmallogic gates connected through electronic paths that behave similarly to fuse s. In the origi nal state o f the device. all the fuse s are intact. Pro gramming the de vice Invol ves blo wing those fuse s along the paths th at must be re moved in order to obtain 284 Section 7.2 Random-Access Memory (a) Conventional symbol 285 (b) Array logicsymbol FIGURE. 7 .1 Conventional and array logic diagrams for OR gate the particular contiguration of the desired logic function . In this chapter, we introduce the configuration of PLOs and indicate procedures for their use in the design of digital systems . We also present CMOS FPGAs, which are configured by downloading a stream of bits into the device to co nfigure tran smission gates to establish the internal connectivity required by a speci fied logic function (combinational or sequential). A typical Pill may have hundreds to millions of gates interconnected through hundreds to thousands of internal paths. In order to show the internallogic diagram of such a device in a concise form, it is necessary to employ a special gate symbology applicable to array logic. Figure 7.1 shows the conventional and array logic symbols for a multiple-input OR gate. Instead of having multiple input lines into the gate. we draw a single line entering the gate. The input lines are drawn perpendicular to this single line and are connected to the gate through internal fuses. In a similar fashion, we can draw the array logic for an AND gate. This type of graphical representation for the inputs of gates will be used throughout the chapter in array logic diagrams. 7 .2 RANDOM -ACCESS MEMORY A memory unit is a collection of storage cells. together with associated circuits needed to tran sfer information into and out of a device. The architecture of memory is such that information can be selectiv ely retrieved from any of its intemallccations. The time it takes to tran sfer information to or from any desired random location is always the same-hence the name randomaccess memory, abbreviated RAM. In contrast, the time required to retrieve information that is stored on magnetic tape depends on the locat ion of the data. A memory unit stores binary information in groups of bits called WOrt/so A word in memo ry is an entity of bits that move in and out of storage as a unit. A memory word is a group of I 's and D's and may represent a number, an instruct ion , one or more alphanumeric characters. or any other binary-coded infonnation. Agroup of 8 bits is called a byte. Most computer memories use word s that are multiples of 8 bits in length. Thu s. a l6·bit word contains two bytes. and a 32-bit word is made up of four bytes. The capacity of a memory unit is usually stated as the total number of bytes that the unit can store. Communication between memory and its environment is achieved through data input and output lines, address selection lines, and control lines that specify the direct ion of transfer. A block diagram of a memory unit is shown in Fig. 7.2. The n data input line s provide the information to be stored in memory. and the n data output lines supply the information coming out of memory. The k address lines specify the particular word chosen among the many available. The two control inputs specify the direction of transfe r desired : The Write input causes binary data to be transferred into the memory. and the Read input causes binary data to be tran sferred out of memory. 286 Cha pt er 7 Memory and Programmable logic II dala input ~ l: addre uees --+ "'rile IIdala output lines fiGURE 7.2 Block diagram of a me mory unit Th e me mor y unit is speci fied by the numb er of words it contains and the number of bits in eac h word. The address lines select one particul ar word . Each word in me mor} i ~ assigned an ide ntification num ber. called an add ress. starting fro m 0 up 10 24 - I. wh ere k is the number of address lin es. The selectio n o f a speci fic wor d inside mem ory is done by applying the k· bit address to the addre ss lines. An internal decod er accepts this addre ss and opcm the paths needed to se lect the wo rd spec ified. Mem ori es vary great ly in size and ma y range from 1.024 wo rds . req uiring an add res s of 10 bits. to 232 words. req uiring 32 addre ss bits. It is custo mary to refe r to the num ber of words (o r bytes) in mem ory with one o f the lcuers K (kilo). ~1 (mega). and G (g iga). K is equal to 2 10• 1'.1 is equal to 210• and G is equal to 2:10. Thus. (HK "" 2 1 6. 2~1 21J. and 4G = 232. Con sider. for example. a memory unit with a capacity of IK words of 16 bits each. Since I K "" 1.02-t = 210 and 16 bits constitute two byt es. we can say that the me[Jl()f) can accommod ate 2.()..t8 = 2K bytes . Figure 1.3 shows possible contents of the first three and the lao,{ = Memory add ress Binary Decimal o 11011010101011101 ! tOI01OIli00l IOOI 000000<XXl1 (lXXXlXlO IO !-temol)' coe teet 2 ICXKXl IIOIOlOOO IIO I Ii -., ~. ··· 1111111101 l02t 10011lOHl 1OIOl OO 1111111110 1022 10000110100011110 ! 1111III III 1023 neunooncoun flc;, URE 7.3 Contents of. 102-4 x 16 memory Section 7.2 Random-Access Memory 287 three words of this memory. Each word contains 16 bits that can be divided into two bytes. The words are recognized by their decima l address from 0 to 1,023. The equivalent binary address consists of 10 bits. The first address is specified with ten O's: the last address is specified with ten ls. because 1.023 in binary is eq ual to 1111111 111.A word in memory is selected by its binary address. When a word is read or written, the memory operates on all 16 bits as a single unit. The IK X 16 memor y of Fig. 7.3 has 10 bits in the address and 16 bits in each word. As another exa mple. a 64K X 10 memo ry will have 16 bits in the addre ss (since 64K = 2 16) and eac h word will consist of 10 bits. The number of address bits needed in a memory is depende nt on the total number of words that can be stored in the memory and is independent of the number of bits in each word. The number of bits in the address is determined from the relationship 2* e m. where m is the total number of words and k is the numb er of address bits needed to satisfy the relationship. Write and Read Operations The two oper ations that RAM can perform are the write and read operation s. As alluded to earlier. the write signal specifies a transfe r-in operation and the read signal specifies a transferout ope ration. On accepting one of these control signals. the internal circuits inside the memory provide the desired operation. The steps that must be taken for the purpose of transferring a new word to be stored into memory are as follows: l. Appl y the binary address of the desired word to the address lines. 2. Appl y the data bits that must be stored in memo ry to the data input lines. 3. Activate the write input. The memory unit will then take the bits from the input data lines and store them in the word spec ified by the address lines. The steps that must be taken for the purpose of transferri ng a stored word out of memory are as follows: 1. Apply the binary address of the desired word to the address lines. 2. Activate the read input. The memory unit will then take the bits from the word that has been selected by the address and apply them to the output data lines. The contents of the selected word do not change after the read operation. i.e.. the word operation is nondestructive. Commercial memory components available in integrated-circuit chips sometimes provide the two control inputs for read ing and writing in a somewhat different configuration. Instead of having separate read and write inputs to control the two operations. most integrated circuits provide two other control inputs: One input selects the unit and the other determi nes the operation. The memory operations that result from these control inputs are specified in Table 7.1. The memory enable (sometimes called the chip select) is used to enable the particular memory chip in a multichip implementation of a large memo ry. When the memory enable is inactive. the memory chip is not selected and no operation is performe d. When the me mory enable input is active. the read/w rite input determines the operation to be performed. 288 Chapter 7 Me mory and Programmable l ogic Tabl e 7.1 Control Inputs to Memory Chip Memory (nable Read/Write Memory Operation o x 1 1 1 None Write to selected word Read from selected word o Me m o ry Description In HDL M emory is mod eled in the Verilog H DL by an arra y of registers . It is decl ared with a reg keyword . using a two-dimensional arra y. The firs t number in the array spec ifies the numbe r of bits in a word (the word length ) and th e seco nd gives the num ber of words in memory (rnemory depth) . Fo r example, a me mory of 1.024 word s with 16 bits per word is declared as reg[15 : 0] memword to: 1023]; Thi s stateme nt descri bes a two-di mension al arra y of 1.024 reg isters. each containing 16 bus. Th e second array ra nge in the declaration of memword specifies the total number of wo rds in memory and is equivalent to the address of the memory. Fo r exam ple. memword[512] refers 10 the lfi-bit memory word at ad dre ss 5 12. The operation of a memory unit is illu str ated in HDL Example 7. 1. The memory has 64 word s of four bi ts each. Ther e are two control inputs : Enable and ReadWrite. The Dataln and DataOut lines ha ve four bits each . The input Address mu st ha ve six bits (since 26 = 64 ). Th e memory is dec lared as a tw o-dimensional array of reg isters , with Mem used as an identifier that can be refe renced with an index to acce ss an y of the 64 words. A memory operation requires that the Enable input be active . T he ReadWrite input de termi nes the ty pe of ope ration. If ReadWrite is I . the memory performs a read ope ration symbolized by the statement DalaOu t +- Mem [Address); Execution of this statement caus es a tran sfer of fou r bits from the selected memory word specified by Address onto th e Da1aOut lin es. If ReadWri1e is O. the memory performs a write operation symbolized by the statem ent Mem (Address) +- Oa ta ln; Execution of this statement causes a transfer from the four-bit Dataln lines into the mem ory word selected by Address. When Enable is equal to 0, the memory is disabled and the outputs are assumed to be in a high-impedance stale, indicated by the symbol z. Thus. the memoryhas three-stare outpu ts. HDL Exa m ple 7.1 1/ Read and write operations of memory II Memory size is 64 words of four bits each. modu le memory (Enable. ReadWrite, Address , Dataln, DataOut); in put Enable, ReadWrite; Input [3: OJ Dataln; Section 7 .2 Input (5: 01 Address; output 13: 01 DataOut; reg {3: OJ DataOut; reg (3: OJ Mem [0: 631: always @ (Enableor ReadWritel tf (Enable) If (ReadWrite) OataOut Mem [Address); else Mem (Address) " Dataln; else OataOut " 4'bz; endm odu le = Random-"cce~~ Memory 289 II 64 x 4 memory II Read II Write II High imped ance slate TIming Wav eforms The operat ion of the memory unit is controlled by an extern al device such as a central processing unit (C PU) . The CPU is usually synchronized by its own clock . Th e memory. ho wever. doc s no t employ an internal clock. Instead. its read and write ope rations are speci fied by co ntrol input s. Th e access time of memory is the time required to se lect a word and read it. The cycle lime of memory is the time requ ired to co mple te a writ e o peration. Th e CPU mu st pro vide the memory control sig na ls in suc h a way as to synchro nize its internal clocke d ope rat ion s with the read and write operatio ns of memory. Thi s means tha t the access time and cycle time of the memory mu st be within a time equal to a fixe d number of C PU cl oc k cycles . Suppose as an examp le that a C Pt; operates with a clock freq ue ncy of 50 ~H z., givi ng a period of 20 ns for one clock cycle. Suppose also that the CPU communicates wi th a memory whose acc ess time and cycle time do not exceed 50 ns. This means that the write cycle terminates the storage of the selected word within a 50-ns interval and that the read cycle provides the output data of the selected word within 50 ns or tess . (The two numbers are nOI always the same.) Since the period of the CPU cycle is 20 ns. it will be necessary 10 devot e at lea st twoan d-a- half. and possibly three. cloc k cycle!'. for each memory req ues t. The memory timing sho wn in Fig. 7.4 is for a CPU with a 5O-~ Hz clock and a memory with T2. and T3. 50 ns maximum cycle time. The write cycle in part (al sho ws three 2Q.ns cycles: For a write operation. the CPU must provide the addre..s and input data 10 me memory. This is done at the beginning of TI . (The two lines that cross eac h other in the address and data waveforms designat e a poss ible change in value of the multiple lines.) The memory enable and the readlwri te signals must be activated after the signals in the addres.s lines are stable in order to avo id destroying data in other memory words. The memo ry enable signal switches to the high level and the read/write signal switches to the low level to indicate a write operation. The two control signals must stay active for at least 50 ns. The add ress and data signals mu st remain stable for a sho rt time after the control signal s are deact ivated. At the completion of the thin! cloc k cycle. the memory write operat ion is completed and the C PU can access the memory again with the next TI cycle. The read cy cle sho wn in Fig. 7.4(b) has an address for the memory provided by the CPU. The memory -en ab le an d read/wri te signals m ust be in thei r high level for a read operation. The me mory place s the da ta of the word selected by the addre ss into the output da ta lin es within a 5O-ns interval (or less) from the time that the memory enable is activated . The CPU can transfer the data into one of its interna l registers duri ng the negative tran sition of T3. The next n cycle is available for another memory request. n. 290 Chapter 7 M emory and Programmable Logic _ 20 nsee -.I Cloo;:k Tl - \'--_ / Memory ~ T2 \'--~/ \,--_ 0 1 T3 Addr ess valid address - - ' " ,' _ ....c~~~~'__ L MCmOry - . ! enable \ >C ( Lat cbed .r: Initiate writing Read! Write Data input (a) Write cycle 50 nsec • Clock M em ory ~ Memor - . ! "'- enable _ >C Data valid >C Address valid -"""" '''''''' address --,"". L Initiate read Read! Write Data output ________________~x (b ) Read cycle FIGURE 7 .4 Memory cycle timing waveforms Types of Memories The mode of access of a memory system is determi ned by the type of com ponents used. In a random- access memo ry, the word locations may be thought o f as being separate d in space. each word occupying one particular locatio n. In a sequential-access memory. me informa tion stored in some medium is not immediately acces sible, but is available only at certain intervals of time. A magnetic disk or tape unit is of this type. Each memory location passes me read and write heads in turn. but inform ation is read out o nly when the req uested word has been reached. Sect ion 7.3 Memory Decod ing 291 In a random-access memory, the access time is always the samc regard less of the particular 10calion of the word . In a sequential -access memory. the time it take s to access a word depend!'> on the pos ition of the word with respect to the position of the read head : therefore. the access time is varia ble . Integra ted circuit RA ~! units are available in two cpereting modes: static and dynam ic. Static RA M (SRA..\ 1Jconsists essentially of internal latches that store the binary information . The store d inform atio n re mai ns valid as lo ng as po we r is applied to the unit. Dynamic RA M (DRA M) stores the binary information in the form of e lectric charges o n capacitors provided inside the chip by ~tOS transisto rs. The stored charge on the capaci tors tends to d ischarge with time. and the capacitors must be periodically recharged by refreshing the dynamic memory. Refres hing is do ne by cycling through the words c\'ery few milliseconds to restore the dec aying charge. DRAM offers reduced power consu mption and larger storage capacity in a singte memOf)' chip. SRA M is easie r 10 use and has shorter read and write cycles. Me mory units that lose stored information when power is turned off are said to be volatile , CMOS integrated circuit RAM s, both static and dynamic. are of this category , since the binary cells need externa l powe r to main tain the stored information. In contrast, a nonvolatile memo ry, such as magnetic disk. retain s its stored information after the remov al of power, This type of memory is able to retain information because the data stored on magnetic components are rep resented by the d irection of mag netization . which is retai ned after power is turned off ROM is another nonvolatile memory , A nonvola tile memory enables dig ital comp uters to store programs thai will be needed again after the computer is turned o n. Prog rams and data that ca nnot be altered are stored in ROM . wh ile other large program s are ma intained on magnetic dish. The lat rcr programs are tran sferred into the computer RA~ I as needed. Refore the powt:r is turned off. the binary information from tbe com puter RAM is trans ferred to the disk so that the information w iII be reta ined . 7. 3 MEMORY DECODING In addition to requ iring storage components in a mem ory unit. there is a need for decoding ci rcuits to se lec t the mtmory word speci fied by the input addre..... In this sect io n. we present the interna l construction of a RAM and demon strate the ope runon of the decoder. To be able to include the entire me mory in one d iagram . the memory unit presented here has a small capaci ty of 16 bits. arran ged in four words of 4 bits each. An example of a two-d imensional coinci dent decoding arrangement is presented to show a more effici ent decod ing scheme that is used in large memories. We then give an exa mple of addr ess multi plexi ng commonly used in DRAM integra ted circ uits. Internal Construction The internal construction of a R A ~1 o f m words and n bits per word consists of m X II binary storage cells and associated decoding ci rcu its for sele cting individual words . The binary srorage cell is the basic building block of a memory unit. T he equ ivalent logic of a binary cell that stores one bit of information is shown in Fig. 7.5. The storage part of the cell is modeled by an SR latch with associated gate s to fo rm a D latch . Actually, the cell is an elec troni c circ uit w ith 292 Chapter 7 Memory and Program mable Logic setea Input -~----1=~=l_) OutpUI • Jnpur~ Outpu t •I Read w rue L_~<}- ""_ _ ReadiWrilt (b j Block diagra m FIc;,URE 7 .S Memory ce ll four to six transistors. Nevertheless . it is poss ible and convenient to model it in term s of log ic symbols . A bin ary sto rage ce ll mus t be very small in order 10 be able to pack as many cells as possible in the small area available in the integrated ci rcuit chip. The binary ce ll stores one bit in its internal latch . T he select input enables the ce ll for reading or writi ng . and the read/write input de termines the o peration of the cell when it is selected. A I in the read/write input provides the read operation by fanning a path from the latch to the output termi nal. A oin the read/write input provides the write operation by forming a path from the input terminal to the la tch. The logical co nstruction of a small RA..\1. is shown in Fig. 7.6. This RA\1 co nsists of four words of four bits each and bas a total of 16 binary cells. The small blocks labe led Be represent the binary celt with its three inputs and on e output. as specified in Fig. 7.Slb J. A memory with four words need.. two addre ss lines. The two addre ss inputs go through a ~ X J. decoder to select one of the four words. The decoder is enabled with the memory-enable input When the memol'}' enable is O. all o utputs of the decoder are 0 and none of the memory w ords are selected. with the me mory select at I, o ne o f the four word !'> is selec ted. dictated by the value in the two address lines. Once a word has been selected. the read/ write input determine... the operation . During the read opera tion. the four bits of the selec ted word go through OR gates to the o utput terminal.... (Note that the OR gates are drawn according to the array logic established in Fig. 7.1.) Durin g the write operation. the data available in the input lines arc transferred into the four binary cells of the selec ted wo rd. The binary cells that are not selec ted are disabled. and their previous binary values remain unchanged . When the memory selec t input that goes into the decoder is equal to O. none of the word s are selected and the cont ents of all cells remai n unchanged regardless of the value of the read/write inpu t. Co mme rcial RA\h may have a capacity of thousand s of word s. and each word may range from I 10 ~ bits. The logical constructio n of a large-capacity memory would be a direc t extension of the configuration shown here . A memory with 2· words of II bits per w ord requ ires k address lines that go into a Ie X 21; decoder. Each one o f the decoder outputs ~ICCh one word of n bits for read ing or writing . Sectio n 7.3 Memory Decoding 293 Input dat a Word ol---l-----,r---- -l-----,-----,l-----,- - -jf--, Ad""" inpuh 2 x4 decoder 'i.e i.''" Memory enable fiN Word Jl--f-t-- ,---+-l----,---+-f---,- -t-j--, + __ Rc:adlWrite __..._ _ I_- ~'-_+- - ....- __1--- .J Output data FIGURE 7 .6 Diagram of a 4 )( 4 RAM Coincident Decoding A decoder with k inputs and 2 ~ outputs requires 21 AND gates with k inputs per gate. The total number of gates and the num ber of inputs per gate ca n he reduced by employing two decod ers in a two -dimensional sel ecti on scheme. The basic idea in two -dimensio nal decoding is to arrange the memory cells in an array that is close as possibleto square. In this configuration. two kJ2-input decoders are used instead of one k-inpul decoder. One decoder performs the row se lection and the othe r the co lum n selection in a two-dimensional matri x configuration . The two-d imension al selection pattern is demonstrated in Fig. 7.7 for a l Kcword me mory. Instead of using a single 10 x 1.024 decoder. we use two 5 x 32 decoders. With the single decoder. we would need 1.024 AND gates with 10 input s in each. In the two-decod er case. we need 64 A.~ gates with 5 inputs in each. The five most significant bits o f the address go to inp ut X and the five least significant bits go 10 input Y. Eac h word within the me mory array is selected by the coincidence of one X line and one Yline. Thu s. eac h word in memory is selected 294 Chapter 7 Memo ry a nd Programmable logic y • 20 • • • 31 x OIHXl 10 100 X Y f iGURE 7.7 Two-dimensional decod ing structure for a 1K·word memory by the coincidence between I of 32 rows and I of 32 columns, for a total of 1.01.t \>, ord... Note thaI eac h intersect ion re presen ts a word that may have any number of bits. As an example. consider the word whose address i s~. The Io-bit binary equivalent o f ~ is 0 1100 10100 . Th is makes X = 01 100 (binary 12) and Y = 10100 (binal') 10 ). The a -bit word tha i is selected lies in the X decoder Output number 12 and the Y decoder o utput number 20. All the bits o f the word are se lected for reading or wri ting . Address Mult ipl exing The SRAM memo ry cel l modeled in Fig. 7.5 typically contain.. six transistors. In order to build memories with higher density, it is necessary to reduce the number of transistors in a cell. The DRAM ce ll contains a single MOS tran sistor and a capacitor. The charg e stored on the capaciter discharges with lime, and the mem ory cells must be periodic ally recharged by refresh ing the memory. Becau se of thei r simple cell structure. DRA Ms typically have four time s the density of SRA~l s. Th is allows four time s as muc h memory ca pacity 10 be placed on a given size of chip. The cost per bit of DRAM storage is three to four times le ss than tha i of S RA~ J storage. A furth er COl'I savings is realized beca use of the lower PO" er req uireme nt of DRA~t cells. These advantage s make DRA M the pre ferred technology for large memories in personal dig ital computers . DRA M chips are available in capacities from ().lK 10 15 6~t bits. Most DRA~1s have a l -bit word size. so several chips have to be combined 10 produce a larger word size. Section 7.3 Memory Decoding 29S Because of their large capacity. the address decoding of DRA~h is arranged in a t w odimensional array. and larger memories often have multiple arrays. To reduce the number of pins in the Ie package. designers utilize address multiplexing whereby one set of address input pins accommodates the address components. In a two-dimensional array. the address is applied in two pans at different times......ith the row address first and the column address second. Since the same !IC1 of pins is used for both parts of the address, the size of the package is decreased significantly. We w ill use a 64K· word memory to illustrate the addre...s-mulnplexing idea. A diagram of the decoding configuration is she.....n in Fig. 7.8. The memory consists of a two-dimensional array of cells arranged into 256 rows by 256 columns. for a tota.l. of 28 x 28 = 2 16 = 64K words. There is a single data input line. a single data output line, and a readlwriteoontrol. as well as an eigbt-bit address input and two addless ,~1TlJ~j . the latter included for- enabling the row and column address into their respective registers. The row address strobe (RAS) enables the eight-bit row register. and the column address strobe (CAS) enables the eight-bit column register. The bar on top of the name of the strobe symbol indicates thaI the registers are enabled on the zero level of the signal. - - -" -~- RAS -t--~-------, RcadiWrile FI~URl 7 .8 Address multiplexing for a 64K DRAM Dala O,l" in ou t 296 Cha pt er 7 Memory a nd Progra mma ble Logic The 16-bit address is applied 10the DRA\1 in two steps using RAS and CAS. Initially, both strobes are in the I ..rare. The 8-bil row address is applied to the address inputs and RAS i,-. changed 10 O. This load.. the row address into the row address register, RAS also enables the row decoder so that it can decode the row address andselect one row of the array. After a time equivalent to the settling lime of lIle row selection. RAS goes back 10 the I level. The 8-bit column address is then applied 10the address inputs. and CAS is driven 10 the 0 Slate. This transfers the column acdres.. into the column register and enables the column decoder. Now the two pam of the address are in their respective registers. the decoders have decoded them 10select the 01lC' cell corresponding to the row and column address. and a read or write operation can be performed on lIlat cell. CAS must go back 10the I level before initialing anoebermemory operation" 7.4 ERROR DE TEC TION AND CORRECTION The dynamic physical interaction of the electrical signals affecting the data pam of a memory unit may cause occasional errors in storing and retrieving the binary information. The reliability of a memory unit may be improved by employing error-detecting and error-correcting codes. The most common error detection scheme is the parity bit. (See Section 3.9.' A parity bit is generated and stored along with the data word in memory. The parity of the word is checked after reading it from memory. The data word is accepted if the parity of the bits read out is correct. If the parity checked results in an inversion. an error is detected, but it cannot be corrected. An error-correcung code generates multiple parity check bits thai are stored \\ ith the data word in memory. Each cbcck bit is a parity avera group of bits in the data word. When the word is read back from memory. the associated parity bits are also read from mernot) and compared with a new set of check bits generated from the data that have been read. If the check bits are correct. no error has occurred. If the check bits do not match the stored parity, lht!)- generate a unique pattern. ca lled a syndrome. that can be used 10 identify the bit thai is in error. A single error occurs ......hen a bit changes in value from I to Oor from 0 10 I during the write or read operauon. If the specific bit in error is identified, then the error can be corrected by comptementing the erroneous bit Hamming Code One of the most common error-correcting codes used in RAMs was devised by R. W. Hamming. In the Hamming code. k. parity bits are added 10an n-bit data word. forming a new word of n + k bits. The hit positions are numbered in sequence from I to n + k, These positions numbered as a power of2 arc reserved for the parity bits. The re maining bits are the data bits. The code can be used with words of any length. Before giving the general characteristics of the code. we will illustrate its operation with a data word of eight bib . Consider. for example. the 8-bil data word I10001 no. We include ~ parity bits with the 8-bit word and arrange the 12 bits as follows: Bil position: I PI 2 Pl 3 4 I P4 5 1 6 0 7 0 8 f\ 9 0 10 1 II 0 12 0 Section 7.4 Error Detection and Correction 297 The 4 pari ty bits , PI. P2, Pol' and PII• are in positions 1,2. 4. and 8. respectively. T he 8 bits of the da ta word are in the remaining posi tions . Each parit y bit is ca lculated as follows: = XOR orbits (3. 5, 7, 9. II ) = 1 $1 $ 0$ 0$ 0 = 0 P2 = XOR of bits ( 3, 6, 7. 10. 11) = 1 E& DEB O$ I EB O = 0 Pol = XO R of bits (5. 6, 7. 12) = I $ O$ OEB O = 1 PI Pg = XORofbi ts (9 . IO, 11.1 2) = 0 $ 1 $0 $0 = 1 Remem be r that the cxctusive-Ok operat ion performs the odd function: It is equal to I for an odd number of " s in the variables and to 0 for an even nu mbe r of I 's oThus. each parity bit is set so that the total number of l 's in the chec ked position s. including the pari ty bit, is always even. The 8-bit data word is stored in memory to gether with the 4 parity bits as a 12-bit compos ite word . Subs tituting the 4 P bits in thei r prope r pos itions. we ob ta in the 12-bit co mposite word stored in memory: Bit position : o o 1 1 I 0 0 1 3 4 5 7 2 6 1 8 o I o 0 9 10 11 12 When the 12 bits arc read from memory. they are checked again for erro rs. The parity is chec ked over the same co mbination of bits. incl uding the parity bit. The 4 check bits are evaluated as follows: Cj = XOR orbits ( I. 3. 5, 7, 9. 11) C2 = XORof bits (2 . 3.6. 7, 10. 11) Col = XORofbit s (4. 5, 6, 7. 12) Cg = XOR ofbi IS (8. 9, 10, 11. 12) A 0 check bit de signates e ven pa rity ov er the checked bits and a I designates odd pa rity. Since the bits were stored with even parity, the result . C = CgC.jC2CI = 0000. indicates that no error has oc curred. However. if C 0, then the 4 -bit binary numbe r for med by the check bits gives the position of the erro neous bit. For example. co nsider the fo llowing three cases : *" Bit po sition: 1 0 1 0 2 0 0 0 J 1 1 4 I I 5 I 1 () I 1 6 0 0 0 7 0 0 0 8 1 1 1 10 1 1 1 9 0 0 0 11 0 0 0 12 0 0 0 1'\0 error Error in bit I Error in bit 5 In the first case, there is no error in the l2·bit word. In the second case. there is an error in bit position numbe r I bec ause it cha nged from 0 to I. The th ird case shows an error in bit positio n 5. with a change fro m I toO. Eva luating the XQR of the corres po nding bits, we determine the 4 check bits to be as follows: For no error: With error in bit I : With error in bit 5: c. C, C, C, 0 0 0 0 0 1 0 0 0 0 1 1 298 Chapter 7 Memory a nd Prog rammable Logic Th us. for no error, we ha ve C = 0000; with an error in bit I , we ob tain C = 0001: and w ith an error in bit 5. we ge t C =: 0 101. When the binary numbe r C is not equal to ()(X)(). it gives the pos ition of the bit in error. Th e error ca n be corre cted by complementing the correspondin g bit. Note that an error can occ ur in the dat a wo rd or in one of the pari ty bus. Th e Hamm ing code can be used for da ta words of any length. In ge neral. the Ham ming code co nsists of II. chec k bits and n da ta bits. for a total of II + II. bits. Th e syndrom e val ue C co nsists of II. bits and ha s a range of 2k values betw een 0 and 2k - I . On e of these values. usually zero. is used to indicate that no erro r was detected . leaving 2l - I val ues to indicate which of the k 11 + k bits was in error. Each of these 2 - 1 values ca n be used to uniq uely de scribe a bit in error. Th erefore. the range of k mu st be equal to or greater than /I + k. giving the re lationship 2k - I ;;::: Il + k Solving for n in terms of k, we obtai n 2k - I - k. ;;:::11 This rel ationship gives a fonn ula for es tablishing the num be r of data bits tha t can be used in co nj unc tio n wit h k check bits. For exa mple, whe n k. = 3. the numbe r of data bits that can be used is 1/ ~ ( 23 - I - 3 ) = 4 . Fo r k = 4. we have 2~ - 1 - -l = I I. giv ing " es 11. The da ta word rna)' be less th an I I bits, but mu st have at lea st 5 bits: otherwise. only 3 check bits will be needed. Thi s j ustifies the use of 4 chec k bits for the 8 data bits in the previous exa mple . Range .. of II for va rious values of k are listed in Table 7.2 . Th e gro up ing of bits for parity generation and checking can be determined from a list of the binary numbe rs from 0 throu gh i ' - I. The least signific ant bit is a I in the binary numbers I. 3, 5. 7. and so on . The second significant bit is a I in the binary numbers 2. 3, 6. 7, and so on. Co mparing these numbers with the bit positions used in generating and checki ng parity bi ~ in the Hamming code. we note the relat ionship betwee n the bit gro upings in the code and the position of the l-bits in the binary count sequence. Note tha t each group of bits starts with a number that is a power of 2: I, 2. 4. 8. 16. etc. These numbe rs are also the position numbers for the parity bits . Sing le-Error Co rrectio n, Double-Erro r Detection T he Hammin g cede can de tec t and correc t on ly a sing le erro r. By ad ding an other parity bit to the coded word, the Hamming code ca n be used to correc t a single error and detect double errors. If we include this add itional pa rity bn. rhcn the previous 12-bil coded wo rd becomes OO l llOOIOi OO PI ~ ' w here P 13 is ev al uated from the excl usive-O R of the other 12 bits. This Tab l e 7,2 Range of Data Bits for" Cheel Bits Number of Check Bits, ,. Range of Data Bits, 3 2-4 4 5- 11 12- 26 27- 57 58-120 5 6 7 IJ Section 7.5 Read-Only Memory 299 produces the 13·bit word 00 11100101 001 (eve n parity). When the 13-bit word is read fro m mem ory. the chec k bits are evaluated. as is the parity P over the entire 13 bits. If P = O. the pari ty is co rrec t (eve n parity). but if P = 1. then the parity over the 13 bits is incorrect (odd pari ty). Th e fo llowing fo ur cases ca n arise: If C = 0 and P = O. no erro r occurred. If C :F 0 and P = I, a single error occ urred that can be corrected. If C :F 0 and P = 0, a doub le error occurred that is detected . but that cannot be corrected . If C = 0 and P = I. an error occ urred in the P13 bit. This scheme may detect more than two erro rs, but is not guaran teed to detect all such errors. Integrated circ ui ts use a modifi ed Hamming co de to generate and chec k parity bit s for sing le-error correctio n and double-error det ecti on . The modified Ham min g code use s a more efficient pa rit y co nfig uration that balance s th e number of bits used to calculate the XOR operation . A typ ical inte grate d ci rc uit that uses an 8-bit data word and a 5- bit check wo rd is Ie type 74637. Oth er inte grated circuits are avai lable fo r dat a words of 16 and 32 bits. Th ese circuits ca n be used in co nj unctio n wi th a me mor y unit to correct a sing le erro r or detect double erro rs during write and read opera tions. 7 .5 READ -ONLY MEMORY A ROM is essentially a memory de vice in which permanent binary information is stored. The bi nary informatio n m ust be spec ified by the design er and is then em bedde d in the unit to form the required interconnection patt ern. Once the pattern is established. it stays within the unit even whe n po wer is turned off and on aga in. A block diagram of a RO M co nsisting of k inp uts and n output s is shown in Fig. 7.9. The inputs provide the address for memo ry. and the outputs give the data bits of the stored word that is selected by the add ress. The num ber of words in a ROM is determined from the fact that k address input lines are needed to specify 2k words. Note that ROM does not have data inputs. beca use it does not have a write operat ion. Integrated circ uit ROM chips have one or more enable inputs and sometimes come with three -state outputs to facilitate the construction of large array s of ROM . Con sider. for example. a 32 X 8 ROM. The unit co nsis ts of 32 word s of 8 bits eac h. Th ere are five input lines that form the bin ary number s from 0 through 3 1 for the address. Figure 7. 10 shows the internal logic construction of this RO M. The five input s are decoded into 32 distinct outputs by mean s of a 5 X 32 decoder. Each output of the decoder represents a memory address. n outputs (data) FIGURE 7 .9 ROM block diagram 300 Cha pt er 7 Mem ory a nd Programmable Logic I V A, FIGURE 7.10 Internal logic of a 32 x 8 ROM A. A, A. A, A, A, I '" The 32 outp uts of the decoder are connected to each of the eight OR gates. The diagram shows the array logic convention used in complex circuits. (See Fig. 6.1.) Each OR gate must be considered as having 32 inputs. Each output of lhe decod er is connected to one of the inputs of each OR gate. Since eac h OR gate has 32 input connectio ns and there are 8 OR gates, the ROM contains 32 x 8 = 256 internal connectio ns. In general. a 21 X n ROM will have an intern al k X 21 decoder and n OR gate s. Each OR gate has 2k inputs, which are connected to each of the outputs of the decode r. The 256 intersectio ns in Fig. 7.10 are programmable. A programmable connection between two lines is logically equivalent to a switch that can be altered to be either closed (meaning that the two lines are co nnected ) or open (meaning that the two lines are disconn ected). The programm able intersection between two lines is sometimes called a crosspoint. Various physical devic es are used to implement crosspoint switche s. O ne of the simplest tec hnologie s employs a fuse tha t normall y connects the two po ints. but is opened or "blown" by the app lication of a high-volt age pulse into the fuse. Th e internal binary storage of a ROM is specified by a truth tab le that shows the word conlent in eac h addres s. For example. the conte nt of a 32 X 8 ROM ma y be speci fied with a truth tabl e similar to the one shown in Table 7.3. Th e truth table shows the five inputs under which are listed all 32 addresses. Each addre ss stores a word of 8 bits. which is listed in the outp uts columns. The table shows on ly the first four and the last four words in the ROM. The complete tabl e must include the list of all 32 words. The hard ware procedure that program s the ROM blows fuse link s in acco rda nce wit h a given truth table . Fur exam ple. programming the ROM according to the truth table given by Table 7.3 result s in the configuratio n shown in Fig . 7 ,11. Eve ry 0 listed in the truth table Section 7.5 301 Read-Only Memory Ta ble 7. 3 ROM Truth Table (Partial) In pu ts I, 0 0 0 0 I. I, /, I, A, A, A, A, A, A, A, 0 0 I 0 I I 0 I 0 1 0 0 0 0 I I 0 1 I 0 0 I I I 0 I 0 0 0 0 I 0 1 1 I 1 1 0 0 0 0 0 0 0 I 1 1 0 0 0 0 1 I, I, I, I, 0 0 0 0 0 0 0 0 I 1 0 1 1 0 I 1 1 0 0 0 I 1 1 0 0 0 0 0 0 1 . Outputs 1 1 0 1 0 1 ", '!lllllJ.- -4----if----f--+--+- ---1'"--- f-- + - ~~;T ~?;.:::' ,:.." ·;1," :' :28 f---f--- f--- +-- +--+--+ - +-+-29f---+-4--'f--t- + - I--t- + 3O f-+~f-+--jI-+--j-+--j­ 'f".} l f----+-+ - + - >f..----jf-----+- + - +-- '---""---"''''''-'-' A, FIGURE 7 .11 Prog ra mming the ROM acco rding to Table 7.3 specifies the absence of a connec tion. and every I listed specifies a path that is obta ined by a connection. For examp le. the table specifies the eigh t-bit word 101100 10 for permanent storage at address 3. The four O's in the word are programmed by blowing the fuse links between output 3 of the decoder and the inputs of the OR gates associated with outputs A(i. AJ • A2. and Ao. The four l 's in the word are marked with a X to denote a temporary connect ion, in place of a dot used for a permane nt co nnection in logic diagrams. When the input of the ROM is 000 II . all the outputs of the decoder are 0 except for output 3, which is at logic I. The signal 302 Chapter 7 Memory and Programmable l ogic equivalent to logic I at decoder outpu t 3 propagates through the connec tions to the OR gate outputs of A , . A 3. A 4. and A ]. The other four outputs rem ain at O. The result is that the stored word 10I I00 rOls applied to the eight data outputs. Co mbinat io nal Circuit Implementat io n In Section 4.9. it was shown that a decoder generates the 2Krnimerm s of me k input variables. By inserting OR gales to sum the mintenns of Boo lean functions. we were able to gene rate any desired co mbinational circu it. The ROM is essent ially a devic e that includes both me decode r and the OR gates within a single device to form a minterm ge nerator. By choos ing connectio ns for those minterms which are included in the function , the ROM outputs can be programmed to represent the Boolean functions o f the output variab les in a combinational circuit. The internal operation of a ROM can be interpreted in two ways. The first interpretation is that of a memory unit that contains a fixed pattern of stored words. The second interpretation is mat of a unit which impleme nts a com binational circuit. From this point of view. each output terminal is considered separately as the output of a Boolean function expressed as a sum of minterm s. For example. the ROM of Fig. 7.11may beconsidered 10 be a combinational circuit wi th eight outputs. each a function of the five input variables. Output A , ca n be ex pressed in sum of minterms as A,(I,. I,. J,. 11. / 0) ~ };(O. 2. 3.... . 29) (The three dots represent minterms 4 throu gh 27, which are nOI speci fied in the figure.I A connection marked with X in the figure produces a minterm for the sum. All other crosepoints are not connected and are not included in the sum. In pract ice, when a combinatio nal circuit is designed by means of a RO\t. it is not necessary to design the logic or to show the internal gate connections inside the unit All that the designer has to do is specify the particular ROM by its Ie number and provide me applicable truth table. The truth table gives all the information for programming the RO ~1. No internallogic diagram is needed to acco mpany the truth table. Design a combinat ional circ uit using a ROM. The circuit accep ts a three-bit number and outputs a binary number equal to the square of the input number. The first step is to derive the truth table of the combinational circuit. In most cases. this is all that is needed. In other cases , we can use a partial truth table for the RO\I by utilizing certain properties in the output variables. Table 7.4 is the truth table for the co mbinational circuit. Three input s and six outputs are needed to accom moda te all possible binary numbers. We note that output Bo is always equal to input A o. so there is no need to ge nerate Bo with a ROM. since it is equal to an input variable. More over, output B ] is always O. so this o utput is a known constant. We actually need to generate only four outputs with the ROM; the other tWOare readily obtained. The minimum size of ROM needed must have three inputs and four outputs. Three inputs specify eight words, so the ROM must be of size 8 x 4. The ROM imple mentation is shown in Fig. 7. I2. The three inputs specify eight words of foue bits each. The tru th table in Fig. 7.12(b) specifies the information needed for progra mming the ROM. The block diagram Section 7.S Read -Only M emo ry 303 Table 7 .4 Truth Table for Circuit of Example 7. 7 A, A, Ao 0 0 0 0 0 0 0 I I 0 I I I I 0 0 I I ., .,.,., ., ., Outputs Inputs I I 0 I 0 I 0 0 0 0 0 0 0 0 1 I 0 0 0 0 0 0 I I 0 I 0 I I 4 9 0 16 0 0 0 25 0 0 I 0 I U U I 0 I 0 0 0 0 0 0 0 I 1 0 0 B, 0- Decimal - B, li.ff/;/{{:!"1//,.•... -W%f ~~', I,' i~'//(/j;~~j Ii!;j'ij;: • '. I " , " . " . , 8 x 4 ROM fl , B, [·'i1:{tXi,* f 1.4,1?/ 8, 1-;':fr~· ~1.:l,?}i!.I. .',J 8, . . i,}, ··c,".~l......'. .~. /·j.'I/-";:. (al Block diagram I 0 J6 49 A, A, Ao 8 , 8 , B, B, 0 0 U 0 I I I I U 0 I I 0 0 I I 0 1 0 1 0 1 0 I 0 0 0 0 0 0 I I 0 0 0 0 1 1 0 1 0 0 0 I U I 0 0 0 0 I 0 0 0 I 0 (b) ROM tr uth table FIGURE 7.12 ROM Imp lementation of Example 7.1 of Fig. 7.12(a) shows the required co nnections of the co mbinat ional circuit. • Types of ROMs The requ ired paths in a ROM may be program med in four different ways. The first is ca lled mask p rogramming and is done by the semiconductor co mpany duri ng the last fabric ation proce ss of the unit. The procedu re for fabricating a ROM requires that the customer fill out the truth tab le he or she wishes the ROM to satisfy. Th e truth ta ble may be submitted in a spec ial fonn provided by the man ufacturer or in a specified form at on a computer output medium . The manufacturer makes the corres ponding mask for the path s to prod uce the 1's and D's according to the customer's truth table. This procedure is costly beca use the vendor charges the custo mer a special fee for custom maski ng the particular ROM. For this rea son, mask progranuning is economi cal on ly if a large quantity of the same ROM config uration is to be ordered. For small q uantities, it is more econom ica l to use a second type of ROM called programmable read-only memory, or PROM. When ord ered, PROM units co ntain all the fu ses intact. giv ing all ls in the bits of the stored words. The fu ses in the PROM are blown by the 304 Cha pter 7 Memory a nd Progr ammable Log ic app lication of a high- voltag e pulse to the device throu gh a special pin. A blown fuse defines a binary 0 state and an intact fuse gives a binary I state. This proced ure allows the user to program the PR O~ in the laboratory to achieve the desired relationship betwe en input addre sses and stored words. Special instruments called PROM programmers are avai lable com mercially 10 facilita te the procedure. In any case, all procedures for programming RO~1s are hardware procedure s, even though the word programming is used . The hardw are procedure for prog ramming RO Ms or PROM s is irreversible. and once programrned.tbe fixed pattern is perm anent and cannot be altered. Once a bit pattern has been established . the un it must be discarded if the bit pattern is to be changed . A third ty pe of R O~1 is the erasable PROM. or EPROM. wh ich can be restructured to the initial state even though it has been programmed previo usly. When the EPROM is placed under a special ultravio let light for a given length of time. the shortwave radiation d ischarges the intern al floa ting gates tha t serve as the programmed connect ions. After erasure, the EPRO M returns to its initial state and can be rep rogrammed to a new set of values. The fou rth type of ROM is the electrically erasable PROM (EEP RO~ or E 2PROM ). This device is like the EPROM. except that the previously programmed connections can be erase d with an electrical sig nal instead of ultravio let light. T he advantage is [hat the device can be erased witho ut remov ing it fro m its socket. H ash memory devices are similar to EEPRO Ms. but have additional built-in circuitry to selectively pro gram and erase the device in-circuit, without the need for a special programmer. They have widespread app licatio n in modern technology in cell phones. di gital camera... se ttop boxes. digital T V. telecommu nications. non volatile data storage. and microc onrrolle rs. Their low consumpt ion of power makes them an attractive storage med ium for laptop and notebook computers. Flash memorie s incorporate add itional circ uitry , too. allowi ng simultaneous era sing of block s of me mory. for example, of size 16 Kbytes to 64 Kbytes. Like EEPROMs. flash me mories are subj ect to fatigue. typical ly hav ing about 105 block erase cycles. Combinational PLDs The PROM is a combinational programmable logic device (PLD}-an integrated circ uit with programm able gates divided into an AN D array and an OR array to prov ide an A."D-OR sumof-produ ct implementation. There are three major type s of combinational PLD s. differing in the place ment of the programmable connections in the A~D-OR array. Figure 1.13 sho ws the configuration of the three PLO s. The PROM has a fixed AND array con structed as a decoder and a programmable OR array. T he prog ramm able O R gates implement the Boolean functions in sum-of- mintenns form. The PAL has a programmable ASD array and a fixed OR array . The AND gates are programmed to prov ide the product terms for the Boolean functions. which are log ically summed in each OR gate. The most flexible PLD is the PLA. in which both the A.' <0 and OR arra ys can be programmed. The product terms in the AND arra y may be shared by any OR gate to provide the required sum-of-prod ucts implementation . The names PAL and PLA emerged from different vendors during the development of PLO s. The imp lementation of combinational circ uits with PROM was demonstrated in this section. The design of combinational circuits with PLA and PAL is presented in the next two sections. Section 7.6 Programmable Logic Array 305 (a) Programmable read-only memory (P RO~) IV "·;·:·' C·:->:'·L '· Inputs ble + ,,-.-programr:na .. '·' '''''''''' '{<'· '...,. f-------J:.L.~:.t:.~ ·'. : ._ :. :;.~~ :~:·."R··, ·"". ~~.::,.·:~,.':,.:~.•.:~'. :-.~ .~ .;.:~. :. ~. :' I---- !\:~:;1t~.~~r.~tf.~i;$·': ;v~.:'.: -, -}. ~<: .. ... Outpl<lS (b) Programmable array logic (PAL) tnputs ------+i~zt~~;~.~: 1:f-------r Outpu ts (c) Programmable logic array (PLAl FIGURE 7.13 Bai ic configu ratio n of t hree Pl Ds 7.6 PROGRAMMABLE LOGIC ARRAY The PLA is similar in concept to the PRO M. except that the PLA does not provide full decoding of the variables and does not generate all the minterms. The decoder is replaced by an array of AND gates that can be programm ed to generate any product tenn of the input variables. The product terms are then connected 10 OR gates to provide the sum of products for the required Boolean functions. The internallogic of a PLA with three inputs and two outputs is shown in Fig. 7.14. Such a circuit is too small to be useful commercia lly, but is presented here to demonstrate the typical logic configuration of a PLA. The diagram uses the array logic graphic symbols for complex circuits. Each input goes through a buffer-inverter combination, shown in the diagram with a composite graphic symbol, that has both the true and co mpleme nt outputs. Each input and its co mplement are connected to the inputs of each AND gate, as indicated by the intersections between the vertical and horizontal lines. The outputs of the AND gates are connected to the inputs of each O R gate. The output of the OR gate goes to an XOR gate, where the other inp ut can be programmed to receive a signal equal to either logic I or logic O. The output is inverted when the XO R input is connected to 1 (since x $ 1 = x'). The output does not change when the XOR input is connected to 0 (since x $ 0 "" x) . The particular Boolean functions implemented in the PLA of Fig. 7.14 are F1 = AB' F, ~ ( AC + AC + A' BC' + BC )' 306 Chapter 7 Mem o ry and Programmable logic B -----tL:==:::;l -+-+--iI-+-+-+---1~}---+-~I<-- AC '~"C- "'$.:§f£ --t--t- - C C' B B' A A ' BC I--t-- o t--+-- l i f;ii;:>- F, F, FIGURE 7.14 PLA with t hre e Inputs, four product terms, and two outputs The product terms generated in each AND gate are listed along the o utput of the gate in the diagram. The product term is determined from the inputs whose crosspoinrs are connected and marked with a X. The output of an OR gate gives the logical sum of the selected product terms. The output may be complemented or left in its true form , depending on the logic being realized. The fuse map of a PLA can be specified in a tabular form. For example, the programming table that specifies the PLA of Fig. 7.14 is listed in Table 7.5. The PLA programming table consists of three sections . The first section lists the product terms numerically. The second section specifies the require d paths betwee n inputs and AND gates. The third section specifies the paths betwee n the AND and OR gates. For each output variable, we may have a T'(for true] or C (for complement) for program ming the XOR gate. The product terms listed on the left are not part of the table ; they are included for reference only. For each product term. the inputs are marked with I, 0, or - (dash). If a variable in the product term appears in the form in which it is true, the corre sponding input variable is marked with a 1. If it appears co mpleme nted. the corresponding input variable is marked with a O. If the variable is absent from the product term , it is marked with a dash. Section 7.6 Programmable LogicArray 307 Table 7.5 PtA Programming Tobie Product Term AB ' BC 1 2 3 A' BC' 4 AC No": See telll for mean ings of dal.Bes. The paths betwee n the inputs and the AND gates are specified under the column head "Inputs" in the programming table. A I in the input column specifies a co nnection from the input varia ble to the AN D gate. A 0 in the input column specifies a connection from the co mplement of the variable to the input of the AND gate, A dash specifies a blown fuse in both the input varia ble and its complement. It is assumed that an open termin al in the input of an AND gate behaves like a I , The paths betwee n the AND and OR gates are specified under the colum n head "Outputs ," The output variables are marked with l 's for those product terms which are included in the function, Each product term that has a I in the output column require s a path from the outpu t of the AND gate to the input of the OR gate. Those marked with a dash specify a blown fuse , It is assumed that an open terminal in the input of an OR gate behaves like a O. Finally. a T (true) output dictate s that the other input of the correspond ing XOR gate be connected to 0, and a C (compleme nt) specifies a conne ction to I. The size of a PLA is specified by the number of inputs. the number of produc t term s, and the number of outputs. A typical integrated circuit PLA may have 16 inputs, 48 product terms, and eight outputs . For n inputs, k produ ct terms. and m outputs, the interna l logic of the PLA consists of n buffer- inverter gates, k AND gates, m OR gates, and m XO R gates. There are 2n x k connections between the inputs and the AND array, k x m connections between the AND and OR arrays . and m connectio ns associa ted with the XOR gates. In designing a digital system with a PLA, there is no need to show the internal connectio ns of the unit as was done in Fig. 7.14. All that is needed is a PLA programming table from which the PLA can be programmed to supply the required logic. As with a ROM, the PLA may be mask programm able or field progra mma ble. With mask programming. the customer submits a PLA program table to the manufacturer, This table is used by the vendor to produce a custom-made PLA that has the req uired internal logic specified by the customer. A second type of PLA that is available is the field-prog rammable logic array, or FPLA, which can be programmed by the user by means of a commerc ial hardware programmer unit. In implementing a combinational circuit with a PLA, careful investigation must be undertaken in order to reduce the number of distinct product terms. since a PLA has a finite number of AND gates. This can be done by simplifying each Boolean function to a minimu m number of terms. The number of literals in a term is not important, since all the input variables are 308 Chapter 7 Mem ory and Prog rammable Logic availabl e anyway . Both the true value and the complement of each function should be simplified 10 see which one can be expressed with fewer product terms and which one provides prodUCt terms thai are common to other functions. Implement the following two Boolean functions w ith a PLA: FI ( A,B, C) = L (O. 1.2,4 ) F, (A , B, C) ~ L (O. 5. 6. 7) The 1.....0 function s are simplified in the maps of Fig. 7. 15. Both the true value and the complement of the functions arc simplified into sum-of-products form . The combination that gives the min imum number of product term s is PI = (A B + AC + BC )' aod + F2 "" AB AC + A'B 'C ' Th is combination gives four distinct product terms: AB. AC, Be . and A' B'C' . The PLA programming table for the co mbination is shown in the figure . Note that outpu t PI is the true OUtput, even though a C is marked ove r it in the table . Th is is because F I is generated with an AND-OR circuit and is available at the output of the OR gate. The X OR gate complements the function to produce the true F I outpu t. PLA programming table AB AC BC Ou tp uts (T ) Produ ct Inputs (C) 1'= A BC Fl , - o . BC 0 B , 00 01 m, 1 11 m, 1 10 A 0 1 - 1 1 1 0 0 A l' m, m, 1 0 m, "', 0 0 C 0 A . BC m, £2 1 3 A 'S 'C' 4 A l' B 00 01 m, 1 0 10 m, 0 0 m. m. m, 11 m, 1 0 m, 1 1 C FIC;URE 7 . 15 Solutio n to Example 7,2 • The combinational circuit used in Example 7.2 is too simple for implementing with a PLA. It was presented merely for purposes of illustration. A typical PLA has a large number of inputs and product terms. The simplification of Boolean functions with so many variables should be carried OUI by means of compurer-asslsred simplification procedures, The computer-aided design program simplifies each function and its compl ement 10 a minim um number of terms. The program then selects a minimum number of product terms that cover all functions in the form in which they are true or in their complemented form. The PLA programmi ng table is then generated and the required fuse map obtained. The fuse map is applied to an FPLA programme r that goes through the hardware procedure of blowin g the internal fuses in the integrated circuit. Section 7.7 7 .7 Programmable Array Logic 309 PROGRAMMABLE ARRAY LOGIC Th e PAL is a programm able logic device with a fixed OR arra y and a programm able AND array. Because only the AND gates are programmable, the PAL is easier to program than. but is not as flexible as. the PLA. Figure 7. 16 shows. the logic configuratio n of a typical PA L with four inputs and four outputs. Each inp ut has a buffer- inverter gale. and each output is generated by a fixed O R gate. There are fou r sections in the unit. eac h composed of an AND-OR arra y that is three wide. the term used to indicate that there arc three programmable AK D gates in each seclion and one fixed OR gate. Each AND gate has 10 programmable input connec tions. shown in the d iagram by 10 vertical lines intersecting each horizontal line. The horizonta l line symbol. izes the mult iple-input confi guration of the AND gate. One of the outp uts is connected to a buffe r-inverte r gate and then fed back into two inputs of the AND gates. Commercial PAL dev ices contain more gates than the one shown in Fig. 7.16. A typical PA L integrated circuit may have ei ght inputs. eight outputs. and eight sections. each consisting of an elghr-wide Arcb -O g array. The output terminals are so metimes driven by three-state bulTers or inverters. In de signing with a PAL. the Boolean functions must be simplified to fit into each sec tion. Unlike the situation with a PLA. a product term cannot be shared among two or more O R gates. Therefore. each function ca n be simplified by itself, wit hout regard to common produ ct terms. The number of prod uct terms in each section is fixed. and if the number of tenus in the function is too large. it may be nece ssary to use two sectio ns to implement one Boo lean function . As an example of using a PAL in the design of a combinational circuit. consider me followi ng Boolean funct ions. given in sum-of-minterms form : ...(A. B. C. D ) - I (2. 12. 13) .,(A. B. C. D) =I (7. 8. 9.10. II . 12. 13. 14. 15) y(A. 1i.C, D ) = I (0.2. 3. 4.5. 6. 7.8. 10. 11. 15) , ( A. n. C. D) = I (U. 8. 12. 13) Simplifying the fo ur functions to a minimum numbcr o f terms results in the followi ng Boo lean function s: It-' = ABC' x= A + A 'B' CD ' + BCD J = A'H + CD + B'D ' 1. = ABC' = I I' + + A'H 'CD ' + AC' D ' + A' S'C'D AC'D' + A'S'C D Note that the function for c has four prod uct te rms. The log ical sum of two o f these ter ms is equal to 1\'. By using 1\', it is possible to red uce the number of term s fo r z from four to three . Th e PAL prog ramming table is similar to the: one used for the PLA . excep t that o nly the inputs of the AN D gates need to he programmed. Tabl e 7.6 lists the PA L programming table for the four Boo lean functions. The table is d ivided into four sections with three produ ct terms in 310 Chapter 7 Me mory and Programmable Logic AND gales inpUl' P"xI"" term 2 ----, 3 4 S 6 7 8 9 10 •I 2 , I, I I I , - , , ·i" . ~ • Ii 6 ./ F, .- I, 7 ~ • ./ , F, I, 10 ~ II ./ r.:-::7\ 1'<1%: 12 I, 2 3 4 S 6 7 8 9 10 f1GUR17. 16 PAL with four Inputs. four outputs. and a three- wide AND-OR rtrueture F, Section 7.8 Sequential Programmable Devices 311 T.ble 7,6 PAL Programming Tablr AND Inpub Product Term 1 2 3 A • I 0 I 0 C D .. " " '" ABC' + A' B'CO' 0 I Ou tputs 0 x'" A + BC D 4 5 • 7 10 II 12 )' - A' B~ CO ~ B ' D ' 0 8 9 I 0 0 l - w 1 0 0 0 0 + AC'O' + A'B 'C'O 0 I each. to conform with the PAL of Fig. 7.16. The first two sections need only two product terms to impleme nt the Boolean function. The last section. for outpu t z, need s four product terms. Using the output from w, we can reduce the function 10 three terms. The fuse map for the PAL as specified in the programm ing table is shown in Fig . 7,17, For each I or 0 in the table, we mark the corres ponding intersection in the diagram with the symbol for an intact fuse. For each dash. we mark the diagram with blown fuses in both the true and complement inputs . If the A..'\D gate is not used , we leave all its input fuses intact. Since the corre sponding input receive s both the true value and the co mplement of each input variable. we have AA' '" 0 and the o utput of 1he A.''D gale is always O. As with all PLDs. the de sign with PALs is facilitat ed by using computer-aided design techniques. The blowing of internal fuses is a hardware procedure done with the help of special electronic instruments. 7 .8 SEQUENTIAL PROGRAMMA8lE DEVICES Digital systems are desig ned with flip-flops and gates. Since the combinational PLD consists of only gates, it is necessary 10 include external flip-flops when they are used in the de sign. Sequential programmable devices include both gates and flip-flops. In this way. the dev ice can be programmed to perform a variety of seq uential-circ uit functions. The re are seve ral type s of sequential programmable devic es available commercially, and each device has vendor-specific variants within each type. The intema l logic of these devices is too complex to be shown here . Therefore. we will desc ribe three major types without going into their detailed construction: I. Sequential (or simple) programmable logic device (SPLD) 2. Complex programmable logic device (CPLD) J. Field-program mable gate array (FPGA) 312 Chapter 7 M em ory an d Prog ram ma ble Logic Al'O D gales inputs Prod "~ te rm -----, A A' B B' C C D D' w w' • ~ 1 2 • ~ x 3 A , , W I ' ~ , x L An 8 fuSC's inUC1 (aJ ....a y~. 01 7 ~ e --;::=J , --;::=J , 9 c 10 11 I·m", 12 D v. x Fuce inlal;1 . A A' B' B' C C D D' w FIGURE 7.17 Fuse map for PAL as spedfled In Table 7.6 ~ Fuse blo.... n Section 7.8 Sequential Programmable Devices Inputs 313 ---------1 O Ulp UIJ Aip-filil'S f-4"- FlCoURE 7.18 Sequential programmable logic device The sequentia l PLD is so metimes referred 10 as a sim ple PLD to differe ntiate it from the cern plex PLD . The SPLD includes fli p-flops, in addition to the AND--OR array, within the integrated circuit chip. The result is a seq uential circu it as sho wn in Fig . 7.18. A PAL or PLA is. modi fied by including a number of flip-flops connected 10 fonn a regis ter, The circu it outputs ca n be taken from the OR gates or fro m the outputs of the flip-flops. Addit ional programmable co nnection s are available 10 incl ude the flip-flop outputs in the product ter ms forme d with the AND array. The flip-flop s may be of the D or the JK type. The first programmable device developed 10 suppo rt sequential ci rcuit imp lementat ion is the field-p rog ram mable logic seq uencer (FPLS). A typical FPL S is orga nized around a PLA with several o utputs drivin g flip- flops . Th e flip-flops are flexib le in that they ca n be programmed to operate as ei ther the JK o r the D type. T he FPL S d id nOI succeed commercia lly, beca use it has too many programmable connectio ns. The configuratio n mostly used in a n SPLD is the combina tional PAL together with 0 flip-flops. A PAL that includes flip -flops is referred to as a regist ered PAL, to signify that the device co ntain s flip. flop s in add itio n 10 the AND--DR arr ay. Each section of an SPLD is ca lled a ma crocetl. which is a ci rcuit that comains a sum-of-products co mbinatio nal logic function and an optional fli p-flop. we will assume an AND-OR sum-of-products function, but in pra ctice, it can be anyone of the two -leve l implementations prese nted in Sec tio n 3.7. Figure 7.19 shows the log ic of a basic macrocelt . The AI'\D- O R array is the same as in the co mbinational PAL shown in Fig. 7. 16. Th e output is driven by an edge-triggered D flip-flo p co nnected 10 a common clock input and changes state on a clock edge . The output of the flipflop is co nnected to a three- state buffer (or invert er) controlled by an o utput-enable signal marked in the diagram as OE. The o utput of the flip -flop is fed back into o ne of the inputs of the program mable AND gates to provide the present-state co ndition for the sequential ci rcuit. A typical SPLD has from 8 to 10 macrocells within one Ie package. All the flip -flop s are connected to the common eLK input, and all three-Male buffers are controlled by the OE input. In addition to programming the AND array, a macrocell may have other programm ing features. Typical programming options include the ability to either use or bypass the flip-flop, the selection ofclock edge polarity, the selectio n of preset and clear for the register, and the selection of the true value or complement of an output. An XO R gate is used 10 program a true/compl ement condition. Multiplexers select between two or four distinct paths by programming the selec tion inputs. Th e design of a digi tal system using PLDs often requ ires the connection of severa l devices to produce the complete speci fication . Forthis type of applicat ion, it is more eco nomica l to usc a complex programmable logic device (CPLD), whic h is a collection o f indi vidual PLD s on a single integrated circuit. A programmable interconnection structure allows the PLDs to be co nnected to eac h other in the sa me \ovay that can be done with individual PLD s. 314 Chapter 7 Me mory and Prog rammable Logic e L K DE I i< ~ @ 'i§J D-D -t> , ""eLK FIGURE 7 .19 Basic macrocell logic GI 110 .- <0 "ad FIC;URE 7.20 General (PtD configu ration Figure 7.20 shows the general configuration of a C PLD. The device cons ists of multiple PLDs interconnected through a programmable switch matrix . The input-output (110) blocks pr0vide the connec tions to the Ie pins. Eac h un pin is driven by a three-state buffer and can be programmed 10 act as input or output, The switch matrix receives inputs from the un block and Section 7.8 Seq uent ial Programmable Devices 315 directs them 10 the individual mecrocetls. Similarly. selected OUtpUIS from macrocell s are sent to the OUtpUIS as needed. Each PlD typically contains from 8 to 16 macrocetl s. usually fully connected. If a macrocelt has unused product terms. they can be used by other nearby macrocells. In some cases the macrocell flip-flop is programmed to act as a D. JK. or T flip-flop. Different manufacturers have taken different approaches to the general architectureof CPlDs. Areas in ......hich they differ include the individual Pl.D s (sometimes CalledjiuzClioll blocks ), the type of mecrocetls. the lJO blocks. and the programmable interconnectionstructure. The best way 10 investigate a vendor-specific device is 10look at !he manufacturer's literature. The basic component used in VLSI design is the gal~ array. ..... hich consists of a pattern of gates. fabricated in an area of silicon. that is repeatedtbousards of times until the entire chip is covered w ith gates. Arrays of one thousand 10 several hundred thousand gales are fabricated w ithin a single Ie chip, depending on the technology used. The design with gate arrays requires that the cusre mer provide the manufacturer the desired interconnection pattern. The first few levels of the fabrication process are common and independent of the final logic function. Additional fabrication steps are required 10 interconnect the gates according to the specifications given by the designer. A field-programmable gate array (FPGA) is a VlSI circuit that can be programmed at the user's location. A typical FPGA consists of an array of hundreds or thousands of logic blocks. surrounded by programmable input and output blocks and connected together via programmable Interconnections. There is a wide variety of internal configurations within this group of devices. The performance of each type of device depend s on the circuit contained in its logic blocks and the efficiency of its programmed interconnections. A typical FPGA logic block consists of lookup tables. multiplexers. gales, and flip-flops, A lookup table is a truth table stored in an SRA..\ l and provides the combinational circuit functions for the logic block. These functions are realized from the lookup table. in the same way that combinational circuit functions are implemented with RO~1. as described in Section 7.5. For example, a 16 x 2 SRA\f can store the truth table of a combinational circuit that has four inputs and two OUtpUlS. The combinational logic section. along with a number of programmable multiplexers, is used to configure the input equations for the flip-flop and the output of the logic bloc k, The advantage of using RA~1 instead of RO~f 10 store the truth table is thai the table can be programmed by writing into memory. The disadvantage is thai the memory is volatile and presents the need for the lookup table' s content 10 be reloaded in the event that power is disrupted . The program can be do wnloaded either from a host computer or from an onboard PROM. The program remains in SRAM until the FPGA is reprogrammed or the power is turned off, The device must be reprogrammed every time power is turned on. The ability to reprogram the FPGA can serve a variety of applications by using different logic implementations in the program. The design with PLD, CPLD. or FPGA requires extensive computer-aided design (CAD) tools to facilitate the synthesis procedure. Among the tools that are available are schematic entry packages and hardware description languages (HDl'i), such as ABEL, VHDL. and VerHog. Synthesis tools are available that allocate. configure, and connect logic blocks to match a high-level design description written in HDl. As an example of CMOS FPGA technology, we will discuss the Xiliox FPGA. 1 316 Chapter 7 Mem ory and Programmable l ogic Xllln x FPGA. Xilinx laun ched the world's first commercial FPGA in 1985. with the vintage XC2000 device famil y.2 The XC3000 and XC.JOOO fami lies soon followed. setti ng the stage for tcday's Spartann.I , an d Vin t x Tlo1 device families. Eac h evolution of devices brought im provements in density. performance. power cons um ption, voltage levels. pi n counts. and functionality. For example. the Spartan famil y o f devices initially offered a maximum of oWK system gaits. but today' s Spartan·3E o ffers 1.6 !1.t gates plu s block RAM . Basic Xlllnx Architecture The basic architecture of Spartan and earlier de vice families co nsists of an array of co nfigurable logic blocks ICLBs ). a vari ety of loc al and global routing resources. and inpu t-output (VO) bloc ks (lOBs). programmable VO buffers , and a SRAM·bas ed configuration memory. as shown in Fig. 7.2 1. Switch Maln Jl vemcet long; line Matrix "--',~ '. Ma lrix Horizontal tong line FIGURE 7.21 Basic archit ecture of XlIIn. Sparta n a nd predecessor devices ~Sce .........-.Xilinx.com for up-to-date information about XiIin, pmduet~. Section 7.8 Sequential Programmable Devices 317 tonfl g ura b le LogIc Block (CLB) Each CLB con sists of a programmable lookup tab le. multiplexers. registers. and paths for co ntrol signals. as shown in Fig. 7.22. Two of the function generators (F and G) of the lookup table can generate any arbitrary functio n of fo ur inputs. and the third (H ) can generate any Boo lean function of three input s. The H-function block can get its inputs from the F and G look up tabl es or from ex terna l inputs. The three function generators can be program med to generate (I ) three different func tio ns o f th ree inde pende nt sets of varia ble s (two with fou r inputs and o ne with three input s-one function must be regbrered within the CLB ). (2) an arbi trary funct ion of five varia bles. (3) an arb itrary function of four variables togeth er with some funct ions of six variables. and (4 ) some fu nctions o f nine variables. Each e LB has two storage de vices that ca n be config ured as edge-trig ge red fli p-flop s with a common doc k. or. in the XC4(X)()X. they can be configured as flip- flo ps or as transparent latches w ith a com mon cloc k (programmed fo r either edge and separa tely invertible ) and an en able. The storage element s can get their inputs from the function generators or fro m the D in input. The other elemen t ca n get an external input fro m the HI input. Th e function generators can also dr ive two outputs (X and Y) directly and independently of the outputs of the storage elements. All of the se outputs ca n be connected to the interconnect network . The storage elements are dri ven by a global set/reset during power-up ; the global set/ rese t is programmed 10 match the pro gram ming of the loca l SIR co ntrol for a gi ven storage element. Dist ri but ed RAM Tbe three function generators within a C LB can be used as either a 16 X 2 dual -pon RAM or a 32 X I single-pot RA\ t. Tbe XC40Xl de vices do rot bave block RA.\ t. but a group of thtir U Bs can form an array of memory. Spartan devices have block RA.\ l: in addition to distributed RA.\1. Interconnect Resources A grid o f s w itch matrices overlays the archi tecture of C LB:i. to pro vide genera l-purpose interco nnec t for branching and ro uting thro ughout the device. The interconnec t has three types of general-purpo se interco nnects: single- length lines. double-length lines. and long line... A grid of hori zontal and vert ical single-length lines con nect s an array switch boxes that pro vide a reduced numbe r of connections between signal paths with in eaeh box. not a full crossbar ..witch. Each CLB has a pair of three-state buffers that can drive signals onto the nearest horizontal tines above or below the C LR. Direct (ded icated ) interc onnec t lines provide ro uting between adjac ent vertical and horizontal CLBs in the same co lumn or ro w. These are rel ativel y high speed local connections through metal . but are not as fast as a hardwired metal connection bec ause of the delay incurred by ro uting the signal paths through the transmission gales that configure the path. D irect interconnect lines do not U'-C the switch matri ces. thus eliminating the delay incurred o n paths goi ng throu gh a matrix.' or ) See XiliR'l. documentation for 1M pin-ollC 00II" Clll i0ll5 10 clolat>lidl loc<1l inlm:onnttt5betw een a _B•. 318 Chapter 7 M emory and Programmable Logic ." Section 7.8 Sequential Programmable Devices 319 "';" Intercon nect palh FIGURE 7.23 RAM cell controlling a PIP t ransmis sion gate Double-length lines traverse the distance of two CLBs before entering a switch matrix. skipping every other CLB. These lines provide a more efficient implementation of intermediate-length connections by eliminating a switch matrix from the path. thereby reducing the delay of the path. Long lines span the entire array vertically and horizontally. They drive low-skew. high-fanout control signals. Long vertical lines have a programmable splitter that segments the lines and allo.....s t.....o indepe ndent routing channels span ning one-half of the array. but located in the same co lumn. The routing resources are exploited automatically by the routing soft.....are. There are eight low-skew global buffers for clock distribution . The signal s thai drive long lines are buffered. Long lines can be driven by adjacent CLBs or lO Bs and may connect to three-state buffers that are availab le to CL Bs. Long lines provide three-state buses within the architecture and implement wired -AND logic. Each horizontal lon g line is driven by a three-state buffer and can be programmed to connect to a pull-up resistor. .....hich pulls the line to a logical I if no drive r is asserted on the line. The programm ab le interconnect resources of the device con nect CLB s and lOBs. either directly or through switch boxes. These resources consist of a grid of two layers of metal segments and programmable interco nnect points (PIPs) within switch boxes. A PIP is a CMOS transmission gate whose "tate (on or off) is determin ed by the co ntent of a static RAM cell in the progr ammabl e memo ry. as shown in Fig. 7.23. The co nnection is established when the transmission gate is on (i.e.• when a I is applied at the gate of the a -channel transistor). and a ois applied at the gate of the p-c hannel transistor. Thus. the device can be reprogrammed simply by changing the con tents of the controlling memory cell. The arc hitecture of a PIP-b ased interconn ection in a switc h box is shown in Fig. 7.24. which shows possible signal paths through a PIP. The co nfiguration of CMOS transmission gales determines the connection between a horizon tal line and the oppos ite horizontal line and between the vertical lines at the co nnection. Each switch matrix PIP requ ires six pass transistors to establis h full connect ivity. 320 Chapter 7 Mem ory an d Programmable logic I1 --"-- fer--, .~ - ---L II -;.~.:. " j * " FIC;URE 7 .24 Circuit for a program mable PIP I/ O Block (lOB) va Each programmable pin has a programmable lOB having buffers for compatibility with TTL and CMOS signal levels. Figure 7.25 shows a simplified sche matic for a programmable lOB. It can be used as an input, an outp ut. or a bidirection al port. An lOB that is confi gured as an input can have direct. latched. or registered input. In an output configuration. the lOB has direel or registered output. The output buffer of an lOB has skew and slew control. The registers available 10 the input and output path of an lOB are driven by separate. invertible clock s. There is a global set/reset. Internal delay elements compensate for the delay induced when a clock signal passes through a global buffer before reac hing an rOB. This strategy eliminates the hold condition o n the data at an external pin. Th e three-slate output of an lOB puts the output buffer in a high-impedance slate . The output and the enable for the output can be inverted. The slew rate of the output buffer can be controlled to minimize tra nsients on the powe r bus when noncritical signals are switched. The lOB pin can be programmed for pull-up or pull-down 10prevent needless power consumption and noise. The devices have embedded logic 10 support the IEEE 1149.1 (JTAG) boundary scan standard . There is an on-chip test access port (TAP) controller. and the l/O cells can be configured as a shift register. Under testing. the device can be checked 10 verify thai all the pins on a PC bo ard are connected and operate properly by creating a serial chain of all of the pins of the chips on the board . A master three-state control signal puts all of the lOBs in high-impeda nce mode for board testing. va Enhanceme nt s Spartan chips can accommodate embedded soft cores. and their on-chip distributed. dual-port. synchronous R A ~f (Se lec tRAM ) can be used to implement first-in. first-o ut register files Sectio n 7.8 Sequentia l Prog ra mma ble Devices 321 _.: Passive Slew rale . pull-up pull.dollln centro! OU IPU I bu ffer Output clock .-J l)F-"-- ...J Input buffer Inpur .--f>~-----==r­ clock FIGURE 7.25 XC4000 series 106 " •• Ib X 2 " J2 )( 1 Ram.:Irray •• WE DO or O J ---:- -1MH- - -L:':::;::'-J R ::. S PO ~:i.f.- - ="-. WCLK FIGURE 7.26 Distributed RAM cell formed from a lookup table (A FOs). shift registers. and scratchpad memories. The blocks can becascaded to any width and depth and located anywhere in the pan. but their use reduces the CLBs available for logic. Figure: 7.26 displays the structure of theon-chip RAM that is fonned by programming a look up 322 Chapter 7 Memo')' and Prog ramma ble Logic table to implement a single-port RAM with synchro nous wri te and asynchronous read. Each CLB ca n be programmed as a 16 X 2 or 32 x I memory. Dual-port RAMs are emulated in a Spartan devic e by the structure sho....-n in Fig. 7.27, w hich has a single (com mon) write port and two asynch ro nous read ports. A CLB can fo rm a memory having a max imum size of 16 X 1. Xlllnx Spartan Xl FPGAs Spartan XL chips are a further enhancement of Spartan chips, offering highe r speed and density (40JXX) system gates, approximately 6,(0) ofwhich are usable) and on-chip, distributed SelectRA\ 1 mem ory,' The lookup tables of the devices can implement 22" differe nt functions of n inputs. 4 WE D - -J --,----J ~rite ~~rol SPO WCLK FIGURE. 7 .27 Spartan dual-port RAM 4 The maximum numbe r of logic gates for a Xilinx fPGA is an estimate of the maximum number of logic H~ that co uld be realized in a design co nsisting of only logic functions (no me mory). Logi c capaciry is expressed in terms of the number oftwo-in put :-JA.'ID gales tha I would be requ ired 10 implement the WIl e Dumber and 1)"JlC of logi c functions (Xllin x App. SOle). Section 7.8 Sequential Programmable Devices 323 Table 7.1 Attributes of the Xilinx Spartan Xl Device Family ,i sp..... .. xL '? Ij; Sy~'~'~'G~t~1 XCS05/XL' 2K-5 K 1''I:Logic Cellsl ., 'i.~, Max Logic Gates 3K- IOK 7K-20 K IOK-30 K I3K-40K 238 466 950 1.368 1,862 3,000 5,000 10,000 13,000 20,000 360 616 J,120 1,536 2,016 3,200 6,272 12.800 18,432 25.088 77 11 2 160 192 224 I..Y; Aip-flops" i,:::;.' Max RA.\1 Bhs XCSlO /XL ·~ X CS20/X L·' . XCS1O/XL ) XCS40/ XL l'i',Max Avail llO / ' I 20-30% of CLB ~ 11.> RAM , 2 1 Log ic cell = fou r-inpul lookup table + flip- flop . The XL series is targeted for applications for which low cost, low power. low packaging, and low test cost are important factors co nstraining the design. Spartan XL devices offer up to gO-MHz system performance . depending on the number of cascaded lookup tables, which reduce performance by introduci ng longer paths. Table 7.7 presents significant attributes of devices in the Spartan XL family. The architecture of the Spartan XL and earlier devices consis ts of an array of CLB tiles mingled within an array of switch matrices, surro unded by a perimeter of lOBs. These devices support o nly distribu ted memory. whose use reduces the number of CLBs that could be used for logic. The relatively small amoun t of on-chip memory limits the devices to applica tions in which operations with off-chip memory devices do not compromise performance obje ctives. Beginn ing with the S part an II se ries. Xilinx suppo rted co nfigura ble embedded block memory, as well as distributed memory in a new architecture. Xlllnx Spartan II FPGAs Aside from improvements in speed (2OQ.MHz I/O switching frequency). density (up to 200,000 system gates) and operating voltage (2.5 V). four othe r features distinguish the Spartan II devices from the Spartan devices: (1) on-chip block memory, (2) a nove l architecture. (3) support for multiple va standards, and (4) delay locked loops.! The Spartan II device family, manufactured in 0.2210. 18-J.Lm CMOS technology with six layers of metal for interconnect. incorporates configurable block memory in addition to the distributed memory of the previous generations of devices. and the block memory does not reduce the amount of logic or distributed memory that is available for the application. A large on-chip memory can improve system performance by eliminating or reducing the need to access off-chip storage. ' Spartan II devices do not >upport low-volwge differen tial signaling (LVDS) or jow -vone ge postuv e emitt er-couple d logic (LVPECL) I/O standards. 324 Chapter 7 Memory and Prog ra mmable l ogic Reliable clock distribution is the key to the synchronous operation of high-speed digital circuits. If the cloc k signal arrives at differen t times at different pans of a circu it. the device may fail to operat e correctly. Clock skew reduce s the available time budget of a circuit by lengthening the SClUp time at registers. It can also shorten the effective hold-time margin of a flip-flop in a shift register and cause the register to sltift incorrectly. At high clock freque ncies {shorter clock periods). the effect of skew is more significant because it represents a larger fraction of the clock cycle time. Buffered clock trees are commonly used to minimize dock skew in FPGAs. Xilinx provides all-dig ital delay-locked loops (OLLs) for clock synchronization or management in high-speed circuits. OLLs eliminate the clock distribution delay and provide frequency multip liers. frequency dividers. and clock mirror s. Spartan II devices are suitable for applic ation s such as implementing the g lue logic of a video capture system and the glue logic of an ISDN modem. Device attributes are summarized in Table 7.8, and the evolution of tech nology in the Spa nan series is evident in (he data in Table 7.9. Tab le 7.8 Sparton II Device Attributes Spartan II fPGA;Xc:zhs XOS3(r ~xciiso XC2S100 XC2S1S0 XC2S200 I3 K-30K 23K-50K 37K- IOOK S2K-150K 972 1,728 2.700 3.888 24,576 32,768 40.960 49.152 132 176 196 260 1 2Q-3O'K o{CLB ~ as RAM. 1 I Logic ce ll '" four-inputlookup table + Ilip-Ilc p. Table 7.9 Comparison of the Spartan Device Families XC4000 XC4000 v lnex Based Based Based SK-40K 5K-40K 15K- 2ooK D istributed RAM Distribu ted RAM Block + Distributed 80 MHz 1 00 ~fHL 100 MHz 4 4 16 5V 3.3 V 1.5 V No No Yes 7I K- 100K 5.192 57.W ,.. Sect ion 7.8 Sequential Programmable Devices 325 _-,0000 00 00 00 00 0 0 0 0 00 00 00 ooS > .':':::l OLL DD D D DD~ 1000 0 0 0 ~ ~ DDDDDDODDDDD ~ ~ §D ~ DDnnDDDDnnDD ~ ~ §D ~ DDuuDDODuuDD ~ D§ §D ~ DDDD D DJDDDD DD~ D§ §D~ DDD DDOtDODDDD ~ D§ i=!D ~ DDnnDDiDDnnDD ~" tDi=! tj] :j CUh :.i CLBs U; DDuuDDUDuuDD;~ §D ~ DDDDDD'DDDDDD~D§ I DLL IB B B BBB D D D D D D ~ 0 0 0 0 0 0000000 : 0 0 0 0 000000 00 F1CUR£ 7 .28 Spartan II architecture The top-le vel tiled architecture of the Spartan II de vice. shown in Fig. 7.28. marks a ne w organization structure of the Xilinx parts. Each of fou r qua dra nts of CLBs. is supported by a Dll and is flan ked by a 4.(J96-bit block 6 of RAM . and the periphery of the chip is lined with lOB s.. Each CLB co ntains fou r logic cells , organized as a pair of slices. Each logic cell. shown in Fig. 7.29, has a four-inputlook up table.J ogic for carry and control. and a D-type flip-flop. The CLB contains add itional logic for co nfiguring functions of five or six inputs. The Spartan II part family provides the flexibility and capacity of an on-chip block RAM : in add ition. each lookup table can be configured as a 16 X I RAM (d istributed). and the pair of looku p table s in a logic ce ll can be co nfig ured as a 16 X 2 bit RAM or a 32 X I bit RAM. The lOB !'> of the Spa rtan II family are ind ivid ually programm ab le to support the referen ce. output voltage . and termin ation voltages of a variety of high -speed memory and bus 6 Part. are I\ailabtt ""ith up 10 I~ blocb l~bK bibl. 326 Chapter 7 Memory and Programmab le Logic Logic Cell GJ--H Gl - -r-H CMry end Control Log;, bf D S Q YB Y YQ CK F51N BY SR-r==~§:J;=ttH--: ~X8 x D S Q FJ--H XQ CK F2--r-H BX C1N CLK CE FIGURE 7.29 Spartan II CLB slice standards. (See Fig. 7.30.) Each lOB has three registers that can function as D.t ypt flipflops or as level-sensitive latches. One register (TFF) can be used to register the signal that (synchronou sly) controls the programmable output buffer. A second register (OFF) can be programmed to register a signal from the internal logic. (Alternatively, a signal from the internal logic can pass directly to the output buffer.) The third device can register the signal coming from the UO pad. (Alternatively. this signal can pass directly 10 the internal Section 7.8 Sequential Programmable Devices 327 D SR 0 TIT eLK - h --j CK TeE~E~ C SR ----UJ=[, o Programmable output buffer EC IQ 110 OSR Q IFF 1 - ~. f')n CK EC I CE ---i1~=n To Other To Next External I/O V REF Inputs of Banks fiGURE. 7.10 Spartan II lOB logic. ) A co mmon clock. d rives each register. bu t each has an inde pendent cl ock enable. A programmab le delay eleme nt on the input path ca n be used to eli mi nate the pad-to-pad ho ld time. Xlllnx Vlrtex FPGA, The vlrtex device series" is the leading edge of Xilinx techn o logy. Thi s fami ly of de vices addresses four key factors that influence the solutio n to comp lex system-level and system-an-chi p design s: (I ) the level of integ rat ion, (2) the amount of embedded memory, (3) performance (timing), and (4) sub syste m interfaces. The fam ily targets applications requ iring a balan ce of high- performance logic. serial connectivity. signal proces sing, and embedded proce ssing (e.g., wirel ess co mmunica tions). Process rules for leadi ng-edge Virte x parts stand at 65 nm, with a ? Vmu, Vwx·t1. II Platform. II-Pm'Pro X, and Vmcx-.s Multi-PlatformFPGA. 328 Chapter 7 Mem ory and Programmable Logk G_' Clock MuJO DD '" DOD0 '" OO ~ DD - DOD0 ." OO ~ DD "• '" ODDD -'" OD ~ < < " e , '"] t" ;; '" ~ ~ ). ;; ~ [II] L:~ D[!fl '" DC~0 '" [!I]~ ~~ ~ DD DOD0 '"'"" l-g OO ~ DD -'" DOD0 "- '" OO ~ DD O~b 0 DD ~ < 'e" ," ~ }. ~ • • • DeM: Clock ~ 'a < ~ •" J! -a ~ • • • :\ianag~' FICURE 7 .J1 Virtex II overall architecture I· V opera ting voltage . The roles allow up to 330,000 logic cells and ove r 200.lXlO internal flip-flops with clod: enable. together with ove r 10 Mb of block RAM, and SSO· ~ ml clock technology packed into a single die. The vi ncx family incorporates physical (electrical) and protocol support for 20 dilTerent1l0 standards, includin g LVDS and LVPECL, with individually programm able pins. Up to 12 digital clock managers provide support for frequency synthesis and phase shifting in synchronous applications req uiring multiple clock domai ns and high-frequency 110. The vlnex arctnrecture is shown in Fig. 7.3 1, and its lOB is shown in Fig. 7,32, Problems 329 FIGURE 7.J2 Virt ell lOB block PROBLEMS Answers 10 7 .1 problem~ marked wilh - appear al the- e nd oflhc boo L. 'Ibe rTk"rTlOf}' umts Ih31 follow are specified by the- number o f word s times (he number of bilSper word . How many addrC's~ lines and input-output data tines are needed in eac h ca se? ( a) 8K x 16 (b) :!G x 8 (c) 16M x 32 (d) 256 K x 64 7.2"' Give lhe numbe r ot bytes stored in the memori es Ii!>lcd in Pro blem 7.1. 7,J7 .4 7 .S Word numbe r 723 in the memory show n in Fig. 7.3 contai ns the binary equivalent o f 3.451. List the IO·bil addres!> and the 16-hit memory content of the word . Show the memory cycle nrning waveforms for the write and read operatio ns. Assume a CPU cloc k of 100 MHz and a memory cycle lime of 25 ns. Wri te a test bench for the memory desc ribed in HDL Example 7.1. Th e test prog ra m sto res bin ary 5 in add ress 3 and binary 10 in address 43. The n Ihe two addresses are read to verify the ir sto red co nte nt s. 330 Chapter 7 Memory and Programmable Logic 7 .6 Enclose the 4 x 4 RAM of Fig. 7.6 in a block dia gram showing all inputs and outputs. Assuming three- state outputs, construct an 8 X 8 memory using four 4 X 4 RAM units . 7.7' A 16K X 4 memory uses coincident decodi ng by splitting the internal decod er into X-selection and r -sejectton . (a) What is the size of each decoder, and how many address? Ar..ro gales are requ ired for decoding me (b ) Determine me X and Y selection lines mat are enabled when the input addre ss is the binary equivalent of 6,000 . 7.8' (a ) How many 32K X 8 RAM chips are needed to provide a memory capacity of 256K bytes? (b) How many lines of the addres s must be used to access 256K bytes? How many of these lines are connected to the address inputs of all chips? (c ) How many lines must be decoded for the chip select inputs ? Specify the size of the decode r. 7 .9 A DRAM chip uses two-dimensional address multiplexing. II has 13 common address pins, wi th the row address havin g one bit more than the column address. What is the capaci ty of the memory ? 7 .1 0"' Given me g-bit data word 0 101101 1. generate the 13-bit composite word for the Hammi ng code that corrects single errors and detects double errors . 7 . 1 1' Obtain the l 5-bit Hamm ing code word for the It-bit data word 1100100 1010. 7 . 1 2' A 12-bil Hamming code word containing 8 busofdata and 4 parity bits is read from memory. What was the original 8-bit data word that was written into memory if the 12-bil word read out is as foljows: ( a) ‫סס‬oo 1 11010 1 0 (b ) 10111 ‫סס‬oo 1 10 (c l 101111 110100 7 .1 J ' How many parit y check bits must be included with the data word to achieve single-error correction and double-error detection when the data word contains (a) 16 bits. (b) 32 bits. (c) 48 bits. 7 .14 It is necessary 10 formulate the Hamming code for four data bilS. !». ~, l\. and 1>,. together with three parity bits. PI .~' and P4 . (a) ' Evaluate the 7-bit composite code word for the data word 00 10. (b) Evaluate three check bits, C4•C2. and C l , assum ing no error. (c) Assum e an erro r in bit OJ during writin g into memory. Show how the erro r in the bit is detected and correct ed. (d) Add parity bit Ps to incl ude dou ble-error detection in the cod e. Assume that errors occurred in bits fI and lJs. Show how me double error is detected. 7 .15 Given a 64 X 8 ROM chip with an enable input. show the external connections necessary to construct a 256 x 8 ROM wi th four chips and a decoder. 7 .1 6' A RO~t ch ip of 4,096 x 8 bits has two ch ip selec t inputs and operates from a 5'\'0It power supply. How many pins are needed for the integrated circuit package? Draw a block diagram , and label all input and output terminals in the ROM . Problem s ," 331 Il~ " " " " " flO' fiGURE P7 .17 7.17 The 32 x 6 ROM. together with the 2° line, as shown in Fig. P7.17, convens a six-bit binary number to its corresponding two-digit BCD number. f or example. binary 100001 converts to BCD 0 11 001 1 (decimal 33). Specify the truth table for the ROM. 7.1~ Specify the size of a ROM (number of words and number of bits per word) that will accommodate the truth table for the following combinational circuit components: (a) a binary multiplier that multiplies two a -bit binary words, (b) a 4·bi t adder- subtracter, (c) a quadruple two-to-one-line multiplexer with common select and enable inputs, and (d) a BCD-to-seven.segment decoder with an enable input. 7 .19 Tabulate the PLA programmi ng table for the four Boolean functions listed below. Minimize the numbers of product terms. A(x , y, , ) = L ( I, 2,4,6 ) B(x, y, a) = L (O, 1,6, 7) C(X, y, e) = L (2, 6) D(x , y, , ) = L (I , 2, 3,5 , 7 ) 7 .20 Tabulate the truth table for an 8 x 4 ROM that implements the Boolean functions A(x, y, z) = L (O, 3, 4, 6 ) B(x, y, e) = L (O , 1, 3, 7) C(x , y, z) = L ( I, 5) D(x, y, ,) = L (O, 1, 4, 5, 7) Considering now the ROM as a memory. Specify the memory contents at addresses I and 4. 332 Chapter 7 Mem ory and Programmable logic 7 .21 Derive tho: PLA programming table for the com binational circ uit that squares a three-bit number. Minimize the number of product terms. (See Fig. 7.12 for the cquive jent RO~I implementation.• 7 .22 Derive the RO:-'1 programming table for !he combinational circuit that squares a +.bit number. Minimize the number of product terms. 7 .23 Livt the PLA programm ing table for the BCD- to-e.\ce~s - 3 -code converter wh~ Boolean func- tions are simplified in Fig. 4.3. 7 .24 Repeat Problem 7.23. using a PAL. 7 .25- The following is a truth table o f a three- input. four-output co mbinationa l circuit: Inpu t i Outpllh • , • A 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 0 1 0 1 B C 0 0 0 0 0 0 0 0 0 0 0 0 1 0 Tabulate the PAL progra mming table for the circui t. and marl; the fuse map in a PAL diagram similar to the one shown in Fig. 7.17. 7.26 Using the registered macroceu of Fig. 7, 19. show the fuse map for a sequential circuit with t.....o inputs .r andy and one flip-flop A described by the input equ ation D A = xffi..,,'Gl A 7.27 Modify the PAL diagram o f Fig. 7.16 by including three clocked D-IYpe flip- nop ~ between the OR gates and the outputs. as in Fig. 7.19 , The d iagram should conform with the block diagram of a sequential circuit. The modification will require three additional buffer- inverter gates and six verticallines for the flip-flop outputs to be connected to the AS D array through programmable connections. Using the modified registered PALdiag ram. show the fuse map that will implement a three-bit binary counter with an output carry. 7.28 Draw a PLA circuit to implement the functions PI :: A'H + AC' + A.'BC' F2 :: ( AC + AB • Be)' 7.29 Develop the programming table for the PLA desc ribed in Proble m 7.26 , References 333 REFERENCES 1. 2. 3. 4. S. 6. 7. 8. 9. 10 . H AM M I ~ G , R. Vol. 1950 . Error Detecting and Error Correcting Code s. Bell Svst. Tech. J. 29 : 147-160. KITSON, B. 1984. Programm able A rray Log ic Handbo ok . Sunnyvale, CA: Advanced Micro Devices. LIN, S., and D. 1. COSTELLO, JR. 1983. Error Control Coding. Englewood Cliffs, NJ: Prentice-Hall. Memory Components Handbook. 1986. Santa Clara, CA: Intel. NELSON, V. P., H. T. :-l"AGLE, J. D. IRWIK, and B. D. CARROLL. 1995. Digital Logic Circuit Analysis and Design. Upper Saddle River, :-l"J: Prentice Hall. Programmable Logic Data Book. 1988. Dallas: Texas Instruments. The Programmable Logic Data Book, 2d ed. 1994. San Jose, CA: Xilinx, Inc. TOCCI, R. 1., and N. S. WIDMER. 2004. Digital Systems Prin ciples and Appli cations, 9th ed. Upper Saddle River, NJ: Prentice Hall. TRIMBERGER, S. M. 1994. Field Programmable Gate Array Technology. Boston: Kluwer Academic Publishers. WAKER LY. J. F. 2006. Digital Design: Principles and Practices, 4th ed Upper Saddle River, NJ: Prentice Hall. Chapter 8 Desig n at the Register Transfer Level 8.1 INTRODUCTION A digital system is a seq uential logic system co nstruc ted with flip-flops and gates. Sequ ential circuits can be specified by means of state tables as shown in Chapter 5. To specify a large digital system with a state table is very difficult, because the number of states would be enormous. To overcome this difficulty, digital systems are designed via a modular approach. The sys tem is part itioned into modul ar subsys tems. each o f which performs some function . The modules are co nstructe d fro m such dig ita l devices as registers. decoders. multiplexers, arithme tic elements, and control logic . The various mod ules are interco nnected with datapaths and control signals to fonn a d igital sys tem. In this chap ter. we will introduce a design methodology for describing and designing large, complex digital systems. 8 .2 REGIS TER TRANSFER LEVEL ( RTL) NOTATION The modules of a digital system are bestdefined by a set of registers and the operations that are performed on the binary information stored in them. Examples of register operations are shift, count, clear. and load. Registers are assumed to be the basic components of the digital system. The infonnation flow and processing performedon the data stored in the registersare referred 10 as register transfer operations, We'll see subsequently how a hardware description language includes operaton; that correspond to the register transfer operations of a digital system. A digital system is represented at the register transfer level (R1l..) when it is specified by the following three components: I, The set of registers in the system. 2. The operations thai are performed on the data stored in the registers. 3. The control that supervises the sequence of operations in the system. 334 Section 8 .2 Register Transfer level (RTl) Notation 335 A re giste r is a group of flip-nops th at stores bi nary infonnation and has the capability of performing o ne or more elementary operations. A register can load new inform ation or shift the infonnatio n to th e right or the le ft. A counter is. considered a re gjste r that increments a number by a fixed value (e .g.• I ). A flip-flop is considered a one-bit regis ter that can be set. cleared. or complemented. In fact. the flip-flops and associated ga tes of an y sequential circu it can be called regis ters by this definitio n. The operations executed on the informa tion stored in registers are elementary operations thai are perfonned in parall el on a data word consisting of bits during one clock cycle. The data produced by the ope ration may re place the binary information that was in the regi ster before the operation exe cuted. A ltern atively. me result may be tran sferred to another register (i.e.• an oper ation on a regi ster may leave its contents unchan ged ). Th e di gital circuits introd uced in Chapter 6 are registers that implem ent ele mentary oper atio ns. A counter with a parallel load is able to perform me incre mcn t-by-o ne and load operations. A bidi rectional shift regi ster is able to perform me shift-rig ht and shift-left ope rations. The operations in a digital system are controlled by timing signals that sequence the operations in a prescri bed manner. Certa in conditions th ai depend on result s of previous operations m ay determine the sequence of future operations. The outputs of the control log ic are binary variables th at initiate the vario us operations in the system's registe rs. Infonnation tran sfer from one re gister to anoth er is designated in symbolic fonn by mean s of a rep lacement operator. Th e statement de notes a transfer o f the contents of regis ter RJ into register R2---that is. a replaceme nt of the contents of register R2 by the contents of register RJ. By defin ition. the conten ts of the so urce regi ste r RI do nOl change after the transfer. They are merely co pied to RI . The arrow symbolizes the tran sfer and its direction: it points from the register whose con tents are being tran sferred and towards the register tha i w ill receive the contents . A control signal would determine when the operation ac tua lly executes. The co ntroller in a digital sys tem is a finite state machine whose ou tputs are the control signals govern ing the regi..ter ope ratio ns. In synchro nous machines. the operations are !>ynchronized by the system cloc k. A sta te ment that specifies a register tra nsfer operati on implies that a da tapath (i.e .• a se t of ci rcu it con nec tion!'» is availab le fro m the outputs of the so urce register to the inputs of the destination register and that the desti nation regi ster has a parallel load capab ility. Dat a can be transferred serially between registers. too . by repeatedly shifti ng their co ntent s along a single wire. one bit at a time. Normally. we want a regi ster transfer ope ration to occur. not with every cloc k cycle. but only under a predetermined condition. A co nditional statement go verning a register transfer operation is symbolized with an if-then statement such as If (TJ = I ) then (R2 - RJ) where T1 is a contro l signal ge nera ted in the contro l sect ion. NOIe that the clock is not incl uded as a variable in the register transfer statements. It is a....umed that all transfers occur at a clockedge transition (i.e. , a trans itio n fro m 0 to I or from I to O). Although a contro l co nditio n such as TI may become true before the clock transition. the act ual transfer does not occur until the clock transition does. 336 Chap ter 8 Design at the Reg ister Transfer Level A conun a may be used to separate two or more operations thai are executed at the same time (co ncurrently). Consider the statement If (TJ - I lth," ( R2-R I ,RI -R2) This statement specifies an operation that exchanges the contents of two registers: moreover. the operation in both registers is lriggered by the same clock edge, pro vided thai T3 == 1. This simultaneo us operation is possible with regi sters that have edge-t riggered flip-flops controlled by a co mmo n clock (synchronizing signal). Other exam ples of register transfers are as follows: Add contents of R2 to Rl (RI gets Rl + R2) Rl - Rl + R2 R3-R3 + I Increment R3 by I (count upwards ) R4 - shrR4 Shift right R4 R5 -0 Clear R5 toO In hardware. addition is done with a binary paralle l adder. incrementing is done with a COUnIcr. and the shift operation is implemented with a shift register. The type of operations most often encountered in digital systems can be classified into four categories: 1. Transfer operations. which transfer (i.e.• copy) data from one register to another. 2. Arithmetic operations. which perform arithmetic on data in registers. 3. Logic operations. which perform bit manipulation (e.g., logical OR) of nonnumeric data in registers. 4. Shift operations. which shift data between registers. The transfer operation does not change the information content of the data being moved from the source register to the destination register. The other three operations change the infonn ano n content during the transfer. The register transfer notation and the symbols used to represent the vario us register transfer operations are not standardized. In this text, we employ two types of notation. The notation introduced in this section will be used infonn ally to specify and explain digital systems at the register transfer level. The next section introduces the RTL symbols used in the Verilog HDL. 8 .3 REGISTER T RA N SFE R LEVEL IN HDL Digital systems can be described at the register tran sfer level by means of a hard ware description language (HDL). In Verilog, descriptions of RTL operations use a combination of behavioral and dataflow constructs and are employed to specify the register operations and the combinationallogic functions implemented by hardware. Register transfers are specified by means of procedural assignment stateme nts within an edge- sensitive cyclic behavior. Combinational circuit functions are specified at the RTL level by means of continuous assignment statements or by procedural a..signment statements within a level-sensitive cycl ic behavior. The symbol used to designate a register transfer is either an equals sign (==) or an arrow «== ); the symbol used to specify a combi national circuit function is an equals sign. Synchronization Sectio n 8.3 Regi ster Tran sfer Level in HDL 337 with the cloc k is represented by associating with an always statement an event control expression in which sensitivity to the clock event is qualified by posedge or negedge. The always keyword indicates that the associated block of statements will be executed repeatedly, for the life of the simulation. The @ operator and the event co ntrol expression preceding the block of statements synchro nize the execution of the statements to the clock event. The following examples show the various ways to specify a register transfer operation in Verilog: (a) assign S = A + B; (b) always@ (A, B) S= A + B; (c) always@ (negedge clock) begin RA =RA+RB; RD = RA: end (d) always @ (negedge clock) beg in RA <= RA + RB; RD <= RA; end If Continuous assignment for addition operation /I Level-sensitive cyclic behav ior {f Comb inational logic for addition operation fI Edge-sensitive cyclic behavior fl Blocking procedural assignment for addition /I Register transfer operation 1/ Edge-sensitive cyclic behavior 1/ Nonblocking proced ural assignment for addition 1/ Register transfer operation Contin uous assignments are used to represent and specify combinational logic circuits. In simulation. a continuous assignment statement executes when the expression on the right-hand side changes. The effect of execution is immediate. (The variable on the left-hand side is updated .) Similarly, a level-sensitive cyclic behavior executes when a change is detected by its event control expression (sensitivity list). The effect of assignments made by the =' operator are immediate. The continuous assignment statement (assign) describes a binary adder with inputs A and B and output 5. The target operand in a continuous assignment statement (5 in this case ) cannot be a register data type. but must be a type of net. for example, wire . The procedural assignment made in the level-sensitive cyclic behavior in the second example shows an alternative way of specifying a combinational circuit for addition. Within the cyclic behavior, the mechan ism of the sensitivity list ensures that the output. 5, will be updated whenever A. or B. or both change. There are two kinds of procedural assignments: blocking and nonbtocking, The two are distinguished by the symbols that they use and by their operation. Block ing assignments use the equals symbol (=') as the assignment operator. and nonblocking assignments use the left arrow (< =') as the operator. Blocking assign ment statements are executed sequentially in the order [hat they are listed in a sequential block: when they execute, they have an immediate effect on the contents of memory before the next statement can be exec uted. Nonblocking assignments are made concurrently. This feature is implemented by evaluating the expression on the righthand side of each statement in the list of statements before making the assignment 10their lefthand sides. Consequently, there is no interaction between the result of any assignment and the evaluation of an expre ssion affecting another assignment. Also. the stateme nts associated with an edge-se nsitive cyclic behavior do not execute until the indicated edge condition occurs. 338 Chapter 8 Design at t he Registe r Transfer Level Co nside r the two exa mples given. In the blocking procedural assig nme nt, the first state men t transfers the sum 10 RA and the second statement tran sfers the new value of RA into RD. At the completion of the operation, both RA and RD hav e th e same val ue. In the nonblocking procedural assignment. the two operations are performed concurrently, M) thar RD recei ves the original value of RA. The activity in both examples is laun ched by the clock und~ oing a falling ed ge transition . TIle regi sters in a system are clocked simultaneously (co nc urrently). lbe D-i nput of each flip- flop determine.. the value Ihat will be assigned to its ou tput . independently o f the inp ut to an y other flip-flop. To ensure sync hro nous operations in RTL design. and to ensure a mat ch between an HDL model and the circuit synthesized from the model. it is necessary that nonblock ing proced ural assig nme nts be used for all varia bles that ar e assigned a value with in an edge-se nsitive cyclic behav ior (always clocked), The nonblocking assignme nt that appe ars in an edge-se nsitive cyclic beh avior models the behavior of the hard ware of a synchronous sequential circ uit accurately. ... HDl Operators The Verilog HDL operators and the ir symbo ls used in RTL design are listed in Table 8. 1. The arithmetic. logic. and !!>hift operat ors describe register tran sfer operation s. The logical an d relational operators spec ify co ntrol co ndi tions and have Boolean expression s as their argu ment s. The operands of the ari thme tic ope rators are num bers. The -e• - , •• and I operators form the sum. difference. product. and quotient . respectively. of a pair of operands. The e xpo nent iatio n operator ( .. ) was added 10 the lang uage in 2001 and forms a double-precision floating- point value from a base and exponent having a real . integer. or signed value. Neg ati ve numbers are represented in z's-compierrem form . The modulus operator produces the re mainder from the division of two numbers. For example, 14 % 3 ev aluates to 2. There are two types of logic operators for binary word s: bitwise and reduction. The bitwise operators perform a bit-by -bit operation on two vec tor operands to form a vect or resu lt. Tbey take each bit in one ope rand and perform the operation .....ith the corresponding bit in the ot her operand. Negation ( - ) is a unary opera tor, it complements the bilo; of a single vect or ope rand 10 form a vector result. The redu ct ion operators are also unary . acting on a single operand and produci ng a scalar (one- bit) res ult. They operate pai rwise o n the bits of a word. from right 10 left . and yield a one-bit result. For ex am ple. the red uction :'IIOR ( - I) result s in 0 .... ith operand 00 101 and in I with operand 00000. The resu lt of ap plying the r\ OR operat ion on the first two bits is used with the third bit, and so fo rth. Negation is nor used a.. a reduct ion operator. Truth tab les for the bitwise opera tors are the same as those listed in Table 4 .9 in Section ~ . 1 2 for the corresponding Verilog primitive (e.g., the and primitive and the & bitwise operator have the sa me troth table ). The output of an AN D gate with two scal ar inputs is the same a" the re sult prod uce d by ope rating on the two bits with the & operator, The logical and relational operators are used to fonn Boolean expressions and can take u ri ab ies or expression .. a...operands. (Nolf! : A variab le i..atsc an expression.) Used basically (or determining true or false condition.s, the logical and relational operators evaluate to I if the condit ion expressed is true and to 0 if the condition is false . If the condition is ambiguous. they evaluate to x. An operand tha t is a variable evaluates to 0 if the value of the variable is equal to zero and Section 8.3 Register Transfer level in HDl 339 Table 8 .1 Verllog 200' HDL Opera tors Operator Type Arithmetic Symbol • Operation Performed addition subtraction multiplication division % modulus exponentiation negation (complement) Logic (bitwise > AND OR nr reduction) • exclusive-OR (XOR) Logical I negation >& II Shift » « Relational AN D OR logical right shift logical left shift »> arithmetic right shift «. arithmetic left shift {.} concatenation > greater than • less than ='" != equality === case equality 1== case inequality >. greater than or equal •• less than or equal inequality to I if the value is not eq ual to zero. For ex am ple, if A = 1010 and B = 0000, then the e xpress ion A has the Boolean va lue I (the number in questio n is not eq ual to 0) and the expressio n B has the Bool ean val ue O. Results of o the r o perations w ith the se values are as follo ws: A&& B= O A II S=1 !A= 0 !B = 1 Il logical AND If logical OR Il logical complement Il logica l co mple me nt 340 Chapter 8 Design at th e Regist er Transfe r Level (A :> B) = 1 (A == B) = 0 /I is greater than /I identity (equality ) The relational operators == = and ! == test for bitwise equality (identity) and inequality in verilog 's fou r-val ued logic system. For example , if A = OxxO and B = DuO. the test A == = B wou ld eval uate to true. but the test A == B would ev aluate to x. Verilog 200I has logical and arithmetic shift operators. Th e logical shift ope rators shih a vec tor ope rand to the right or the left by a specified number of bits. The vacated bit pos itions are filled with zeros . For example, if R = 11010, then the statement R =R »1 ; shifts R to the right one pos ition. The val ue of R that results from the log ical right-shift operatio n is 0 1101. In contrast. the arithmetic right-shift operator fills the vacated cell (the mo st significant bit (MSB» with its original co ntents when the word is shifted to the right. Th e arithmetic left-shift operator fills the vucatc-d ce ll with a 0 when the word is shifted to the left. The ari thmetic righ t11 0 10. then the shift opera tor is used when the sign extension of a number is important. If R = statement R :>:>:> 1; produces the resu lt R = 11101; if R = 0110 1. it produ ce s the re sult R = 00 110. The re is no d istinction betw ee n the logical left -shift and the ari thmetic left-shift operators. Th e concatenation opera tor pro vide s a mechanism for appe ndi ng multiple operands. It can be used to specify a shift. incl uding the bits tran sferred into the vacan t positions. Th is aspec t of its ope ration was sho wn in HDL Example 6.1 for the shift register. Expressions are evaluated from left to right. and their operators assoc iate from left 10right (with the exce ption of the conditional operator) accord ing to the precedence shown in Table 8.2. For example. in the expression A + B - C. the value of B is added to A. and then C is subtracted from the resuh . ln the ex pressio n A + BIC. the value of B is divided by C. and then the result is added 10A because the division ope rator ( I ) has a higher precedence than the addition operator (+) . Use parentheses 10 establish preced ence. For exam ple, the expression ( A + 8 )/C is nol the same as the express ion A + BIC. Lo o p Statements Verilog HDL has four type s of loops that execute procedural statements repea tedly: repeat, fo rever. while, and for. A ll looping statements must appear inside an initial or aI\t'8 )'S block. Th e repeat loop executes the associated state ments a specified number of times. Th e following is an example tha t was used prev iously: initial beg in clock = 1'bO; rep eat (16 ) #5 clock =- clock; end Thi s cod e produ ces eight clock cy cles with a cycle time of 10 time unit s. Section 8.3 Regi st er Transfe r Level in HDL 341 Table 8 .2 Verilog Operator Precedence + - !- &- &l- [ , _ /\ 11- (unary) Highest precedence •• •/% +- (binary) » « < <= «< >>> > >= "' .. != === != = & <binary) , ,- _II (b inary) I {binary ) && II 7: (conditional ope rator) {} {{)} Lowest preceden ce The fore ver loop causes unconditional, repetitive execution of a procedural statement or a block of procedural statements. For example, the following loop produces a continuous clock having a cycle time of 20 time units: Initial begin cloc k = 1'bO; fo rever #10 clock = - clock; end The while loop executes a statement or a block of statements repeatedly while an expression is true. If the expression is false to begin with, the statement is never executed. The following example illustrates the use of the whil e loop: i nteger count; In itial begin count = 0; while (count < 64) #5 cou nt = count + 1; end 342 Chap ter 8 Design at the Regist er Transfer Level The valu e of counr is incremented from O!O 63. Each incre ment is delayed by five time units. and the loop exits at the count of 64. In dealin g with loo ping statements. it is sometimes convenient 10 use the in teger da ta type to index the loop. Integers are decl ared with the keyword fnteger . as. in the previous exam ple. Although it is possible to use a reg variable to index a loo p. sometimes it is more co nvenient to dec lare an integer variable. rather than a reg. for counting purpo ses. Variables declared as data type reg are stored as unsigned numbers. Those dec lared as data type integer an: store as signed numbers in z 's-com plemem format. The defau lt width of an integer h a min im um of 32 bits. The fo r loop contains three pan s separa ted by IWO se mico lons: • A n initial condition. • An ex pre ssion to chec k fo r the terminating condition. • An assig nmen t 10 change the control variable. The followin g is an example of a for loo p: for (j = 0; j < 8; j = j + 1) begin 1/ procedural statements go here end The for loo p sta tem e nt repeats the exe cut ion of the proced ural statements eight times. The control vari ab le is j . the initial co nd ition is j O. and the loop is repeated aslong a!l j is less than 8. After eac h execution of the loo p statement. the val ue of j is incremented by I. A desc ription of a two-to-four -line decoder using a fo r loo p is shown in HDL Example 8. 1. Since o utput Y is evaluated in a procedural statement , it ITIu!>t be decl ared as type rea. The co ntrol varia ble for the loo p is the integer k. When the loo p is expanded (unrolled ). we get the following four condi tions (IN and Yare in binary. and the index for Yis in dec imal): = if IN = 00 then Y(O) = 1; else V(O) = 0; if IN= 01 then Y(1) = 1; else Y(1 ) = 0; if IN = 10 then V(2) = 1; else Y(2) = 0; if IN = 11 then Y(3) = 1; else Y(3) = 0; Hill Example 8.1 1/ Description of 2 x 4 decoder using a fo r loop statement module decoder (IN, V); 1/ Two binary inputs input 11: OJIN; output 13: OJ Y; II Four binary outputs reg 13: OJ Y; II Control (index) variable fOf' loop integer k; always @ (IN) for (k = 0; k <= 3; k= k+ 1) Section 8.3 Register Transfer Level In HOL if (IN == k) Y[k] else Y[k] ::: 0; e ndmod ule 343 = 1; Logic Synthesis Logic synthesis is the automatic process by wh ich a computer-based program (i.e., a synthesis tool ) transforms an HDL model of a logic circu it into an optimized netlist of gates that perform the operations specified by the source code. There are various target technologies that implement the synthesized design in hardware. The effective use of an HDL description requires that designers adopt a vendor-specific style suitable for the particular synthesis tools. The type of ICs that implement the design may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD ), or II field-programmable gate array (FPG A). Logic synthesis is widely used in industry to design and implement large circuit s efficiently. correctly, and rapidly. Logic synthesis too ls interpret the source code of the hardware descrip tion language and translate it into an optimized gate struc ture, accomplishing (correctly) all of the wor k that would be done by manual methods using Kam augh maps . De signs writte n in Verilog or a comparable language for the purpo se of logic synthesis tend to be at the regi ster transfer level. This is because the HDL constructs used in an RTL description ca n be converted into a gat e-leve l descripti on in a straightforward man ner. The following exam ples discuss how a logic synthesiler can interpret an H DL construct and convert it into a gate structure . The continuous assignment (assign) statement is used to describe combinational circuits. In an HDL. it represents a Boo lean equation for a logic circ uit. A continuous assignment with a Bool ean express ion for the right-ha nd side of the assignment statement is synthesized into the corresponding gate circuit implemen ting the expression. An expression with an addition operator (+ ) is interpreted as a binary adder with full-adder circuit s. An expression with a subtraction operator ( - ) is converted into a gate-level subtracter consistin g of full add ers and exclusiveOR gates (Fig. 4.13). A statement with a conditional operator such as assig n Y = S 7 In_1 : In_O; trans lates into a two-to-o ne-line multiplexer with control input S and data input s In_I and In_O. A statement with mu ltiple conditional opera tors specifies a larger mult iplexer. A cyclic behavior (al ways . .. ) may imply a combinational or sequential circ uit. depe nding on w hether the event control expression is level sensitive or edge sensitive . A synthesis tool will interpret as combinational logic a level-sensitive cyclic behavior whose event control expression is sensitive to every variable that is referenced within the behavior (e.g.. by the variable's appearing in the right-hand side of an assignm ent statement). The event control ex pression in a description of combinational logic may not be sensitive to an edge of any signal. For example. alw a ys @ (In_ 1 or In_O or S) If (S ) Y = ln_1 ; else Y = In_ O; trans lates into a two-to-one-line multi plexer. As an alternative. the case statement may be used to imply large mu ltiplex ers. Th e casex stateme nt treats the logic values x and z as don 't-cares when they appear in either the case ex press ion or a case item. 344 Ch a pter 8 Design at t he Register Transfe r Level An edge-sensitive cycl ic behavior (e.g .. a lway s @ (po s edge clock» speci fies a synchronous (clocked) sequentia l circ uit. The implementation of the corresponding circuit consists of o flip-flops and the gates that implement the synchro nous register transfer ope rations specifi ed by the statements associa ted with the eve nt control expression. Examples of such circ uits are registers and counters. A sequential circuit description with a case stateme nt translates into a control circuit with D flip-flops and gates that Conn the inputs to the flip-flops. Thus. each statement in an RTL description is interpreted by the synthesizer and as signed to a corresponding gate and flip-flop circ uit. For synthesiza ble sequential circuits. the event control expressi on mu st be sensitive to the positive or the negative edge of the clock (sy nchronizing signal). but not to both . A simplified flowchart of the process used by industry to design d igital systems is shown in Fig. 8. 1. Th e RTL descriptio n of the HD L design is simulated and checked fo r proper Synthesize Ilcllbl C pare Sim ulation res ults FIGURE 8 .1 A simplified flowcha rt for Hnt-besed modeling, ve rification, and synthesis Sect ion 8.4 Algorit hm ic State Machines (AS Ms) 345 operation. hli ope rational features must match those given in the speci fication for the behavior of the circuit. Th e test bench provides the stimulus sig nals to the simula tor. U the result of the simulation is not satisfactory. the HDL descriplion is corrected and chec ked again. After the simulation run shows a valid design, the RTL des cription is ready to be compiled by the logic synthesizer. All errors (syntax. and function al) in the des cription mu st be eliminated before synthesis. The synthesis tool generates a netlist equivalent to a gate-level description of the design as it is repre sented by the model . If the model fails to express the functionality of the specifica tion. fhe circuit will fail to do so also. The gale-level circuit ls simulated with the same set of stimuli used to chec k the RTL design . If any corrections are needed, the process is repeated until a satisfactory simulation is achieved . The results of the two simulat ions are compared to see if they match. If they do not, the designer must change the RTL description to COITt'ct any errors in the design. Then the description is again compiled by the logic sy nthesiz er to generate a new gate-level description. Once the designer is satisfied with the results of <Ill simulation tests, the design of the circuit is ready for physical implementation in a techn ology. In practice, additional testing will be performed to verify that the timing speci fications of the circuit can be met in the chosen hardware technology. Tha t issue is nut within the scope of this text. Logic sy nthes is provides seve ral advantages to the designer. 11 takes less time to write an HDL description and synthesize a gate-level realization than it docs 10 develop the circuit by manual entry from schematic diagrams. Th e ease of changing the description facilitates ex ploration of design alternatives. It is faster. eas ier. less expen..ive, and less risky to chec k the valid ity of the design by simulation than it is to prod uce a hardw are prototype for eva luation. A schematic and the database for fab rica ting the integra ted circuit can be generated autom atically by synthesis tools . The HDL model can be compiled by different tools into different technologies (e.g.. AS IC cells or FPGA s), pro viding multi ple returns on the investment to create the mode l. 8 .4 ALGORITHMIC STATE MACHINE S (AS Ms) The binary informatio n stored in a digital system can be classified as either data or control informat ion. Data are discrete elements ofinformation (binary words) that are manipulated by performing arithmetic, logic, shift, and other similar data-process ing operations. These operations are implemented with digital components such as adders. decoders , multiplexers, counters. and shift registers. Control information provides command signals that coordinate and execute the various ope rations in the data section in order to accom plish the desired data-processing tasks. The log ic design of a d igital sys tem can be d ivided into two distinct pans. O ne pan is concemed with the design of the digital circ uits that perform the data -processing ope rations. The other pan is conce rned with the design of the control circ uits that determine the sequence in whic h the various actions are perform ed. The relationship between the control logic and the data-processing opera tions in a digital syste m is shown in Fig. 8.2. The data-processing path. commonly referred to as the datapath: unit, manipulates data in registers according to the sys tem's req uirements. T he control unit issues a sequence o f co mmands to the datapath unit. Note thai an internal feedback path from the da tapath unit to the control unit provides status cond itions that the co ntrol unit uses toget her with the external (primary) inputs 10 determi ne the sequence of cont rol signals (outputs of the control 346 Chap te r 8 Desig n at the Register Transfer level tnput dutu r··--·--------Input signals (tx /f m u{j - -.--.--.----------- -----------------. ~~~~Zl ! i i i StatUS signuls I, i .................. _ -_ _ ---_._--_._.__ _......... _ _ , _._ .~ O u/p m daea FI('UR E 8 .2 Control and datapath Inte ractio n unit) that direct the operation of me datapath unit. We 'lI see later that understandi ng how to model this feedback rel ation ship w ith an HDL is very important. The control logic mat generates me signals for sequenc ing the ope ration s in me datap ath unit is a finite sta te machine (FSM) . i.e.• a synchro nous sequential circ uit. The control comman ds for the system are produced by me FSM as functio ns of the primary inp uts. the sta tus signals. an d the state of the machine. In a given state. the outputs of me controller are the inputs to me darap ath unit and dete rmin e me operations that it w ill execute . Depend ing on status cond itions and other ex ternal inputs. th e FSM goes to its next stale to initiate other operatio ns. The digital ci rcuits that ac t as the co ntrol logic provide a time sequence of signals for initiating the operations in the datapath and also determine the next state o f the co ntro l subsyste m itself The control sequence and da tap ath tasks of a d igital system are specifi ed by means of a hardware algo rithm. An algorithm consists o f a finite number of procedural steps that spec ify how to obtain a solution to a probl em . A hard ware algorithm is a procedure for so lving the problem with a give n piece of eq uipment. The most challenging and creative pan of d igital design is the formulation of hard ware algo rithms for achieving required objectives. The goa l to implement the algorithms in silicon as an integrated circ uit. A flowchart is a convenient way to specify the sequence of procedural steps and decision paths for an algorithm. A tlo wchart for a hardware algori thm tran slates the verbal instruction.. [ 0 an information diagram that enumerates the sequence of operations togethe r with the cond itions necessary for their execution. A flowchart that has bee n developed spec ifica lly to de fine digital hardware algorithms is called an algorithmic statemachine (ASM) chart . A stare machine is anothe r term for a sequential circu it. which is the basic structure of a digit al sys tem. ASM Chart The AS M chan resembles a conventional flowchart. but is interpret ed somewhat different ly. A conve ntional flowchart de scribe s the procedu ral steps and deci sion paths of an algorithm in Section 8.4 Algorithmic State Machines (ASM s) 1Binary code J 347 oioi t~~ztf*i~!1~1;~?f:?1%%i~~t Otll{luJ: sigMb;: !egistit :Opera lians ~ j (b) FIGURE 8.1 ASM chart stat e box a sequential manner, without taking into conside ration thei r lime rela tion..hip. T he ASM: chan describe s the sequence of events, a.. well as the timing relationship betwee n the states o f a sequent ial controller and the event!'. thai occur while going from one state 10 the next (i.e., the events that are synchronous with change:'> in fhe slate). The chan is adapted 10 specify accurately the control sequence and datuputh operation s in a digital system, taking into cons ide ration the constraints of digital hardware. The ASM chan is composed of three basic element s: the state box , the deci sion box . and the cond itional box . The boxes themsel ves are co nnected by directed edges ind icating the sequential precede nce and evol utio n of the states as the machine operates . There are vario us ways to attach information to an ASM chan. In one , a stale in the co ntrol sequence is ind icated by a state box , as sho wn in Fig. 8.3(a ). Th e shape o f the state box is a rec tang le within which are written register opera tions or the nam es of output signals that the contro l generates while bein g in the ind icated state. Th e state is given a symbo lic name , which is placed within the upper left comer of the box. The binary code assigned to the state is placed at the upper right come r. (The state symbol and code can be placed in other places as well.) Figure 8.3(b) gives an e xample of a state bo x. The state has the symbo lic name SJ)t11lSe, and the binary code assigned to it is 0 101. Inside the box is written the register operat ion R - O. which indicates that regis ter R is to be cleared to O. The name StarcOP-A ins..ide the box indicates. for exampie, a Moore-type output signal that is asse rted while the machine is in slate SJ'duse and that launc hes a certain operation in the datupath unit. Th e style of state box shown in Fig. 8.3(b ) is sometimes used in ASM chart s, but it can lead to confusion about when the register operation R - 0 is to execute. Although the operation is writte n inside the state box. it actually occ urs when the machine makes a trans ition fro m S JIOlIU to if'; next stale . In fact. writing the regis ter ope ration within the state box is a way (albeit possib ly confusing ) to indicate that the contro ller must assert a signal that will cause the register opera tion to occur when the machine changes state. Later we' ll introduce a chan and no tation that are more suited to digital design and that will eliminate any ambiguity about the register operations contro lled by a state mach ine. The decision box of an ASM chan describes the effect of an input (i.e .• a primary, or external, input or a status. or internal, signal) on the control subsystem. The box is diamo nd shaped and has two or more exit path". as shown in Fig. 8.4. The input condition to be tested is wri tten inside [he box. One or the other exit path is taken, depe nding on the evaluation of the condition. In the binary case . one path is taken if the condition is true and another when the condition is false. When an input condition is assigned a binary value, the two paths arc indicated by I and 0, respectively. 348 Cha pter 8 Desig n at the Register Transfer leve l Exit path FIGURE 8 .4 ASM chart decision box ! Him" )' eo<l<' :SlUle "am~ Moore -tyJ'C output si~nll is Uncondi tional register o rations Cnooilionat/ ( M,; aIYYQUl pU~ V . and regisle{:~;~ :::, OpCra tion li-)~'- F-G 100 SJ ( a) ,b l L(J(ld-":-G , D 100 (0 ) FIGURE 8 .5 ASM chart co nd itio nal box The state and decision boxes of an ASM chart are similar (0 those used in con ventiona l flowcharts. The third element. the cond itional bo x, is unique to the ASM chart . The shape o f the conditional box is show n in Fig. 8.5(a ), lis rounded come rs differentiate it from the state box. The input path to the condi tional box must come from one of the exit paths of a deci sion box. The o utputs listed inside the conditional box are generated as Mealy-type signals during a g iven state; the register operations listed in tbe conditional box. are associated with a transi tion from the state. Figure 8.5(b) shows an example with a conditional box . The control generates the out put signal Stan when in state 5_1 and checks the status of input Flag. If Flag = I. Section 8.4 Algor ithm ic State Machines (ASMs) 349 then R is cleared to 0 ; otherw ise. R remains unchanged . In eit her case. the next stare is 5_2 . A re giste r operation is associated with 5_2. We again note tha i th is style of chan can be a so urce of confusion. because the state machin e does 0 01 execute the indicated reg ister operation R - 0 when it is in S_J or the operation F - G when it is in 5_2 . Th e notati on actual ly indicates that when the co ntrolle r is in S_J. il must assert a Mealy-type signal that will cause the regis ter operat ion R - 0 to execu te in the datapath unit. subject (0 the condition that Flag = O. Likewise. in state 5_2. the controlle r m u ~t ge nera te a Moore -type output sig nal that causes the register operation F - G 10 execu te in the da tapath unit. The opera tio ns in the datapath unit are synchronized to the clock edge that ca uses the sta te to move fro m 5_J to 5_2 and from 5_2 10 5_3. respectively. Th us, the control signal generated in a gi ven state affects the operatio n o f a regi ster in the datapath when the ne xt d ock. tra nsition occ urs. The result of the ope ration is appare nt in the next stale. The AS M chart in Fig. a .5{h) mixes descriptions of the dataparb and the contr olle r, An ASM chart for only the controller is shown in Fig. 8.5(c ), in which the regi ster ope rat ions are om itted . In their place arc the co ntrol signals th at mu st be ge nerated by the co ntro l unit to lau nch the operations of the datapath unit . Thi s chart is useful for describ ing the controller, but it doe s not conta in adequate inform ation about the dataputh . (w e'll addre ss th is iss ue later.) ASM Block An ASM block is a structure cons tsn ng of one sta te box and al l the deci sion and conditional bo xes co nnec ted to its exit path. An AS:\I block. has one e ntrance and any numbe r of exit paths represe nted by the struc ture of the dec ision box es. A n AS ~I cha n co nsists of one or more interconnect ed blocks. An exampl e of an AS ~ 1 block is given in Fig. 8.6. Associ ated with state F ••••_.J 100 011 010 lb} fi GURE 8 .6 ASM block 350 Chapter 8 Design at the Register Transfer level 5_0 are two decision boxe s and one conditional box. The d iagram distingui shes me block with dashed lines around the entire structu re, but this is not usually don e, since the AS M chan uniquel y defines eac h bloc k from its structure. A state box witho ut any deci sion or condi tional boxes const itutes a simple block . Each block in me AS M chart describes the state of the system during one clock-pulse interval (i.e.. the interval betwee n two success ive active edges of the cloc k). The operations within the state and co nditional boxes in Fig . 8.6(a) are initiated by a common cl ock pulse when the state of the controller transition s from 5_0 to its next state. The same clock pulse tran sfers the system controller to one of the next states, 5_1. 5_2. or 5_3. as d ictated by the binary values of E and F. The AS M chan for the controller alone is shown in Fig. 8.6(b). The Moore-type signal iner..A is asserted while the machin e is in 5_0 ; the Mealy-type signal Clear_R is gener ated conditionally when the state is 5_0 and E is asserted. In general. the Moore-type outputs of the controller are generated unconditionally and are indicated within a state box : the Mealytype outp uts are generated conditionally and are indicated in the conditional boxes connected to the edg es that leave a decision box . The ASM chart is similar to a state diagr am. Each state block is equivale nt to a state in a seq uential ci rcuit. The decision bo x is equivalent to the binary information written along the directed lines that connect two states in a state diagram . As a co n-.equence. it is sometimes conve nient to convert the chan into a state diagram and then use sequentia l circuit procedu res to design the control logic . As an illu stration, the ASM chart of Fig. 8.6 is drawn as a state diagra m in Fig. 8.7. The states are symbolized by circl es. with their binary values writt en inside. Th e directed lines indicate the cond itions that det ermine the next state. The unconditional and conditional ope rat ions that must be performed in the datapath un it are not indicated in the state diagra m. Sim p lif icat io n s A binary decision box of an ASM chart can be simplified by labeling o nly the edge corresponding 10 the asserted decision vari able and leaving the other edg e withou t a label. A further simplifica tion is to omi t the edges corre sponding to the state trans ition s that occ ur when a reset condition is asse rted. O utp ut signals that are nOI asserted are not shown on the chart: the presence of the name of an output signal ind icates that it is asse rted . e» EF "'OO 010 £ F -Ol 1 100 011 fiGURE 8 .7 Stat e diagra m equivalent t o the ASM chart o f Fig. 8 .6 Section 8.4 Algorithmic State Machines (ASMs) 3S1 nmlng Considerations The timin g for all registers and nip-flops in a digital system is controlled by a master-cloc k generator.Tbe clock pulse.. are applied not only 10 the regt srers of the datapath. but also 10 all the ni p-flops in the state machi ne implementing the control unit. Inputs are also synchronized to the clock, because they are norm ally gene rated as out puts of another ci rcuit that uses the same clock signals. If the input signal changes at an arbitrary time independe mly of the clock. we ca ll it an asynchronous Input. Asynchronous inputs may cause a variety of problems. as discussed in Chapter 9 . To simplify the design. we will assum e thai all inputs are synchronized with the clock and change slate in respo nse to an edge transition. The major difference between a co nventional flowchart and an AS:\.I chart is in interpreting the time rela tionship amo ng the various operations. For exa mple. if Fig. 8.6 were a co nvennonal flowchart, the n the operations listed would be co nsidered to follow one after anothe r in sequence: First register A is incremented. and only then is E evaluated. If E "" I, the n register R is cleared and control gees to state 5_3. Otherwi ..e (if E "" 0). the next step is to evaluate F and go to state L l or L 2. In contrast, an ASM chan co nsiders the entire block as one unit. All the regi ster operations that are specified within the block must occ ur in syncbronism at the edge transition of the same clock pulse while the system changes from 5_0 to the next state. This seq uence o f eve nts is presented pictorially in Fig. 8.8. We assume positive-e dge triggering of all flip-flops. An asserted asynchronous reset sig nal (il' secb) tran sfers the controt ci rcuit into stare S_O. While in state 5_0. the contro l circui ts check inputs £ and F and generate appropriate slgnalv accord ingly. If resl't_b h not asserted. the following operations occ ur simultaneous ly at the next positive edge of the clock : I . Register A is incremented . 2. If £ = I, register R is cleared . 3. Control transfers to the ne xt state. as specified in Fig. 8.7. Note that the two operation s in the datapath and the change o f state in the control logic occur at rbe same time. Note also that the AS:\.I chart in Fig. 8.6(a) indicates the register ope ration s [hat must occur in the datapath unit, bUI does not indicate the control signal that is to be fonned by the control unit. Conv ersely. the cha n in Fig. 8.6(b) indicates the contro l signals. bUI not the dat apatb operations. We will now present an AS~I D chart 10 provide the clari ty and comp lete infonnation needed by logic designers. Positive edge ofClock ==n Cl'KJl I I--- Prt senl Slal e ----t- ....eu JI Oft --.o-i I FIGURE 8 .8 Transition between states ( 5_0) I (SjorS...zorSJ) I 352 Chapter 8 Design at th e Register Transfer Level ASMD Chart Algorithmic stare machi ne and datapath (AS MD) cham were developed to cl arify the information displayed by ASM charts and to provide an effective tool for designing a contro l unit for a given datapath unit. An AS MD chart differs from anASM chart in three important ways: ( I) An ASMD chart does not list register opera tions within a slate bo x. (2) the edge s of an AS MD chart are annotated with regis ter operations that are concurrent with the state transition indicated by the edge. and (3) an AS MD chart includes condit ional boxes identifyi ng the signals which control the register operatio ns thai annota te the edge s of the chart. Thus. an ASMD chan associates register operations with stale transitions rather than with stares, Designers form an ASMD chart in a three-step process that creates an annot ated and corn pletely specified ASM chart for the controller of a da tapath unir. The ste ps are to (I) form an AS M chart displaying onl y how the input s to the controller determine its state tran sition s. (2 ) conve rt the AS M chart to an AS MD chart by annotating the edge s of the AS M chart 10 indicate the concurrent reg ister operations of the datapath unit. and (3) modify the AS MD chan to ident ify the con trol signals that are generated by the co ntrolle r and that ca use the ind icated reg ister operat ions in the datapath unit. T he AS MD chart produ ced by this process clearly and completely speci fies the finite state machine of the controller and identi fies the register oper atio ns o f the given data path. One impo rtant use of a slate machi ne is to co ntrol registe r operations on a datapath in a sequential machine thai has been partitioned into a controller and a darapath, An ASMD chart links the AS M chan of the co ntroller 10 the datapa th it controls in a man ner thai serves as a unive rsal model represe nting all synchronous digital hardware design. ASMD charts help clarify the design of a sequential machi ne by separating the design of its datapath from the design of the controller. while mai ntaining a clear relationship betwee n the two units. Register ope rations that occur co ncurre ntly with slate transitions are ann otated o n a path of the chan. rather than in stale boxes or in conditio nal boxes on the path . becau se these registers are not pan of the controller, T he outpu ts generated by the contro ller are the signals thai control the registers of the da tapath and ca use the reg ister operations annotated on the ASM D chan. 8 .5 DESIGN EXAMPLE We will now present a simple example demonstratin g the use of the ASMD chan and the regis. rcr transfer representation. We stan from the initial specifications of a system and proceed with the development of an appropriate AS MD chart from w hich the digital hardw are is then des igned. Th e datapath unit is to cons ist of two JK flip- flops E and F. and o ne four-bit binary co unter A{3: OJ. Th e ind ividual flip-flops in A are denoted by A 3• A 2• A I. and AI). ..... ith A 3 holding the most significant bit o f the count. A signal. Stan, initiates the system's operati on by clea ring the cou nter A and flip- flop F. At eac h subsequent clock pulse. the counter is incremented by I until the operations stop. Counter bits A 2 and A 3 determin e the sequence of operations: If A 2 = O. E is cleared to 0 and the count co ntinues. If A 2 = I. E is set to I: then, if A 3 = O. the cou nt continues. but if A ) = I. F is set 10 I on the next clock pulse and the system stops cou nting, Section 8.5 Design Example = The n. if Start O. the system rema ins in the initial state. but if Star t tion cycle repeats. 353 = I. the opera- A block diag ram of the system's architectu re is shown in Fig. 8.9(.1). with (I ) the registers of the datapath unit. (2) the exte rnal (primary) input signals. (3) the status signals fed back from the datapath unit to the control unit. and (4) the control signals generated by the control unit and input to the datapatb unit. Note that the names of the control signals clearly indicate the operat ions that they cause to be executed in the datapath unit. For example. clr..J\_Fclears regi sters A and F. T he name o f the signal resecb (altemanv ely, reset_bar) indicates that the reset action is acti ve low. The internal details o f each unit are not shown. ASMD Chart An ASMD chart for the system is show n in Fig. 8.9(b) for asynchronous reset action and in Fig. 8.9(c ) for synchronous rese t action. The chart shows the state transitions of the controller and the datapath operations assoc iated with those transitions. The chan is not in its final form. for it does not identify the control signals generated by the controller. The nonblocking VerHog operator «= ) is shown instead of the arrow ( - ) for register transfer operations because we will ultimately use the ASMD chart to write a verilog description o f the system. When the rese t action is synchronous. the tra nsition to the reset state is synchronous with the clock. This transition is shown in the diagram. but aff other synchronous 1l'set path s are omittedfo r clarity, Tbe system remains in the reset state. S_iJlt'. umil Stan is asserted . When that happens (i.e.• Start I ). the state move s to Sj . At thr next clod; edge. depending on the values of A ;! and A 3 (decoded in a priority order). the state returns to S_1 or goe s to 5_2. From 5_2. it moves uncond itionally to S_jd/~. where it awaits anoth er asse rtion o f Stan. Tbe edges o f the chan represent the state transitions that occur at the active (i.e., synchronizing) edge of the cloc k (e.g .• the rising edge ) and are annotated with the register operations that are to occ ur in the datapath . wi th Stan asse rted in S_id/~, the state will tran..ition to S_ I and the registers A and F will be deared. Note that. on the o ne hand . if a register o peration is anno tated o n the edge leaving a state box. the ope ration occ urs unconditio nally and will be contro lled by a Moore-type signal. For example. register A is incremented at e very cloc k edge that occurs .....hile the machine is in the state S_ 1. On the other hand, the register operation setting register E annotates the edge leaving the decision 1>0 .\ for A 2. The signal controlling the opera tion will be a Mealy-type signal asserted when the system is in state S_ 1 and A2 has the value I. Likewise. the control signal cleari ng A and F is asserted conditionally: T he system is in state S_idlf' and Sian is asserted. In addition to sho wing that the counter is incremented in state S_1, the annotated paths show that other operations occur con ditionally w ith the same cloc k edge: = Either E is cleared and control slays in state Sj ( A 2 = 0 ) or E is set and control stays in stare S_ 1 ( A 2A) = 10) or E is set and control goes to state S_2 ( A2A-' = I I ). When control is in state S_2. a Moo re-type co ntrol signal mu...t be asserted to set flip-flop F to I. and the state return.. to S_idle at the next active edge of the clock. 354 Chapter 8 Design at th e RegisterTransfer Level Status signa ls A' / A2 DaIQ~"h A I I e !itCF Sian o o clr..AJ iflcr..A F (. ) Note: A 3 de no tes A13), A2 denotes A [2j. < - de no tes no nblock ing assignme nt resetb d enotes act ive -low reset condit ion reseC b A <= A + A <= A + 1 A <= A + I I F < -I F<= l / (b) (e) FICURE 8 .9 (a) Block diagram for de sign example (b) ASMDchart for contro ller state transitions, asynchronous reset (c) ASMDchart for controlle r state transitions, synchronous reset (d) ASMD chart for a co mpletely specified controller, asynchronous reset F< = l Section 8.5 Design Example 3SS The third and final ste p in cre ating the AS:vrD chan is to insert conditional boxes for the signals genera ted by the controlle r or to insert Moore-type signal.. in the state boxes, as shown in Fig. 8.9{d). Tbe sig nal clr-A_F is ge nerated co nditionally in state 5_idle. incr-A is ge nera ted unconditi onally in S_ I. clr_ E and sec£ are ge nerated co nditionally in 5_ 1. and St'CF i.. ge nera ted unconditionally in S_1. The AS\ t chan has three states and th ree bloc h . The block as sociated with S_idle consi..ts of the slate box . one deci sion bo x. and one con di tional box. The block associated with 5_1 consists o f only the slate bolt. In addition to clock and rt'uCb. me control logic has o ne e xternal input. Start, and two status inputs. A2 and A3. In this exa mple. we have shown how a verbal (tex t) descri ption (specification) of a design is trans lated into an AS\ 1D chan tha t completely describes the controller for the da tapa th. indicati ng the control ..ignals and the ir assoc iated reg iste r operations. Th is design example does not have a practical app lication. and in ge neral. depending on the interpretation. the AS \ ID chan prod uced by the three-step design proces.. for the controller may be sirnplified and formulated diffe rent ly. Ho wever. o nce the AS\ 1D chart is establ ished . th e procedu re for design ing th e circuit is straig htforward. In practice. desig ners use the A5,HO cha rt to write veritog models of the controller and the dataputh and then synthesize a circuit directly f rom the Veri/OR description. We will first design the system man uall y and the n write the HDL description. keeping synthes is as an optional step for tho se who have acce ss to synthes is tools. nmlng Sequence Eve ry bloc k in an AS ~ m chan spec ifies the signals which contro l the operatio ns thai are to be initialed by o ne common cloc k. pulse. The co ntrol signals ..pcc ified .....ith in the state and conditiona l boxes in the block. are fonned wh ile the controller is in the indicated stare. and the annotate d operations occur in the datapa th unit when th e sta le mak es a tran sition alon g an edge that ex its the state, Th e change from one sta te to the nex t is performed in the control logic . In orde r to ap prec iate the timing re lationship involved. we will list the step-by-step sequence of operations after eac h clock. edge. beg inni ng with an assertion o f the signal Stan unt il the <'ysrem returns to the reset (initial) slate. 5_idle . Tab le 8.3 shows the binary value, of the counter and the two fli p-flops after every clock. pu lse . The table also shows separately me status of A 2 and A 3• as well as the pre sent state of the controller. We stan with state S_1 right after the input signal Stan has ca used the counter and flip-fl op F 10 be c leared. We ..... iIl assume that the machine had bee n ru nning before it e ntered S_idle. instead of enter ing it from a reset co nditio n. Th erefore. the value of E is assumed to be I. because E is set 10 I when the machine enters 5_1 . before moving to S_id le (as shown at the botto m of the table). and because E does not change du ring the transitio n from S_idle to 5_1. The system stays in state 5_1 dur ing the next 13 clock pu lses. Eac h pulse increm ent s the counter and either clea rs or sets E. Not e th e rel ationship betwee n the time at which A2 becomes a 1 and the time at which E is set to I. When A ( A 3 A2 Al .(0) 001 1, the next (4th) cloc k pulse increments the counter to 0 100. but thai same clock edge sees the value of A 2 as O. so £ re mains clea red . T he next (5 th) pulse changes the cou nter from 0 100 to 010 1. an d beca use A 2 is eq ual to I before the clock pulse arri ves. £ is set to I. Similarly. £ is cleared to 0 not when the count goes fro m 0 111 to 1000. but whe n it goe s from 1000 to 100 1. which is whe n A 2 is 0 in the present val ue or the cou nter, = 356 Chapter 8 Design at t he Register Transfer Level Ta b le 8 .3 ~quenu of Opn-otionl for lHsign Example flip-Flops Counter A. A, A, Ao 0 0 0 0 0 0 0 0 0 0 I I 0 0 0 0 0 0 0 0 0 E f Conditions 0 I I 0 0 0 0 0 0 0 .4.2 "" 0, A ) = 0 I 0 0 0 0 I I 0 I I I 0 0 0 0 .4. 2 -1 ,14. ) - 0 I 0 0 0 I .. I I I 0 I 0 0 0 0 0 0 0 A2 ., O. A J I 0 0 0 0 0 - I I I 0 0 .4. 2 - I. AJ I I I I Sta t e U U S_idlt When the count reaches 1100 . both A 2 and A ) are equal 10 1.1De next clock edg e incre men tsA by I. sets £ to I. and tran sfers control to stale 5_2. Co ntrol stays in 5_2 for a ni)"one clock peri od . The clock edg e associated with the path lea ving 5_2 sets flip-fl op F lo I and tran sfers co ntrol to state S_idJe. The system stay s in the initial state S_idlr as lon g as Stan is equal 10 O. From an observation o f Table 8.3. it may seem that the o perations perform ed on E are delayed by one clock pulse. T his is the difference betwee n an AS MD chan and a co nventio nal flowchart . If Fig. 8.9(d ) were a co nve ntio nal flo wcha rt. we would ass ume that A is first increment ed and the increme nted val ue wou ld have been used to check the status of A 2. Th e operations that are performed in the d igital hardwa re as spec ified by a block in the ASMD chart occ ur d uring the same cloc k cycle and not in a sequence of operations followi ng each other in time. as is the usual interpretation in a conventional flow chart . Thu s. the value o f A 2 to be co nsi dered in the decisio n bo x is taken from the val ue of the co unter in the present state and before it is incre men ted . Thi s is beca use the decision box for E belo ngs with the same bloc k as state S_ J. The digital circuit s in the co ntro l unit generate the signals for all the ope rations specified in the present block prior to the arrival ofthe nt'xt dock pulse. Th e ne xt cloc k ed ge executes all the operations in the registers and flip- Flops. incl uding the Flip-flops in the controller that de termine the next state. usin g the present values o f the o utput sig nals of the co ntroller. Thus. the signals tha t co ntrol the operations in the datapa th unit are form ed in the co ntro ller in the cloc k cycle (contro l stal e) pru eding the cloc k edge at which the operatio ns e xecute. Section 8.5 Design Example 357 Controller and Datapath Hardware Des ign The A S~ID chan provides all the infonnation needed to design the digital system-the datapath and the con troller. The actual boundary between the hardware o f the controller and that of the datapath can be arbitrary. but we advocate, first, that the data path unit co ntain only the hardware associa ted with its operatio ns and the logic requi red, perhaps. to form status signals used by the contro ller, and, secon d. that the co ntrol unit contain all of the log ic requ ired to generate the signals that control the operations of the datapat h unit. The requ irement s for the design of the datap ath are indic ated by the control signals inside the state and conditional boxes of the ASMD chan and are specified by the annotations of the edges indicating datapath operations. The control log ic is determined from the decis ion boxes and the requ ired state transitions. The hardware configuration o f the datapath and co ntroller i\ shown in Fig. 8.10. Dt .fign_fump lt r-r- Stan I I I I II Cl>fllfol/tr ", .<.~~.!" ...:-4tt,{" ,.- '-':i§.,," s_ ··'clt':.£: ik..t A, A, d«k Ji ./ ". (/r,)t::.:" .; "~";-"'i/f./ 'rt.sdJ.i! fesf'l_b d oc' DUf<lpUlh irni,;A'-.:f: l , I I ! i£ - - f-t-I-+- -f A FIGURE 8 .10 Data path an d cont ro ller fo r d esig n example , 358 Chapter 8 Design at the Reg ister Tran sfer l evel Note that the input signals of the control unit are the external (primary) inputs (Stan. re,~e t_b. and clo ck) and the status signals from the datapath ( A2 and A3). Th e status signals pro vide informati on about the present cond ition of the datapath. Th is information. together with the pri mary inputs and info rmation abou t the pre sent state of the machine. is used to form the output of the contro ller and the value of the next state. Th e outp uts of the controlle r are inputs to the datapath and determ ine which operations will be executed when the clock undergoes a tran sition . Note . al so. that the state of the control is not an output of the cont rol unit. eve n if the entire design is enca psulated in only one modu le. The control subsystem is shown in Fig. 8. 10 with only its inputs and outputs. with names matching those of the ASMD chart. The detailed design of the controller is considered subsequently. The datapath unit consists of a four-bit binary cou nter and two l K flip-flops. "The counter is similar to the one shown in Fig. 6. 12. exce pr thar additio nal interna l gates are required for the synchro nous clear opera tion. The counter is incremented with every clock pulse when the controller state is S_J. It is cleared only when control is at state S_idle and Stan is equal to I. The logic for the signal efr-A_F will be included in the controller and requires an AKD gate to guarantee that both conditions are present. Similarly. we can anticipate that the controller will use A:'\L>gates to form signals st'C E and clr_E. Depending on whether the controller is in state S_' and \\ helher A2 is asserted. st'C F controls flip-flop F and is asserted uncond itionally during state 5_2. Note that all flip-flops and registers. includi ng the flip-flops in the control unit. use a common clock. Reg iste r Transfer Representation A digital sys tem is re prese nted at the reg ister transfer level by specifying the registe rs. in the system. the operations performed, and the control sequence. The reg ister operatio ns and co ntro l inform ation can be speci fied with an AS MD chart . It is convenie nt to separa te the control logic and the register operations for the datapath . The ASMD chan prov ides this separation and a cl ear sequence of step s to design a contro ller for a datapa th. The con tro l information and register transfer operations can also be rep resen ted separately. as shown in Fig. 8.11. The stale diagram specifies the control sequence. and the register operatio ns are re prese nted by the register transfer notation introd uced in Section 8.2. Th e state tran sition and the signal controlling the register operation are shown with the operation. Th is repre sentati on is an altern ative to the representation of the sys tem described in the AS MD chart o f Fig. 8.9(d) . On ly the ASMD chan is really needed . but the state diagram for the controller is an alternat ive representation that iii useful in manual design. The information for the state diagram is taken d irectly from the AS~ ID chart. The state names are speci fied in each state box. The conditions that cause a change of state are specified inside the diamond-shaped decision bo xes of the AS ~ID chart and are used to annotate the state diagram. The directed lines betwee n states and the condi tion associated with each follow the same path as in the ASMD chart. The register transfer ope rations fo r each of the three states are listed fol lowing the name of the state. Th ey are taken from the state bo xes or the annotated edg es of the ASMD chart. St at e Table The state diagram can be convened into a state table from which the seque ntia l ci rcuit of the controller can be designed . First, we mu st assign binary values to each state in lhe A S ~ID chart. For" flip-flops in the control sequential ci rcuit. the AS MD chart can accom modate up Section 8.5 Design Example Staff = 359 0 S.JJ~ \-----.( Staff - I 5j dl.. _ 5j. d r.../C F: A 5 _1 5_1. iller_A : A - A + l 1:' - 1 - ifIAz -lJ thenJ'fC I:': if (A z '" 0) then clr_E: S..l - t -o F-1 S_idle. w I_F: 'b' flGURl 8 .11 Register transfer-level description of design example to 2" states. A chan .....ith 3 or 4 states requ ires a sequential c ircuit with two f li p-f lops. With 5 10 8 states. there is a need for three flip-flops, Each co mbination of llip-fl op values represents a binary number for one of the Mates. A srare table for a controller is a list of present states and inputs and their corresponding next stales and outputs. In most cases . there are many don' t-care input conditions that must be included. so il is advisable 10arrange the state table to take those conditions into co nsideration. We a......lgn the follo wing binary values 10 the three states : S_idle :: OO.Sj = 0 1. andS_2 I I. Binary stale 10 is nOI used and will be treated as a don't -care co ndition. The stale table COrTespending to the state diagram is she w n in Table 8.4. Two flip-flops are needed, and they are = Table 8 .4 State Table for tlK Controller of Fig . 8. '0 Pre sent St a t e Present-St ate Symbol 5_id/e S_idl.. S_l S_l U 5_2 Next State Inputs C, C. Start 0 0 0 0 0 I 0 0 I I I I 0 I X X X X '2 " X X X 0 I I X X X 0 I X Outputs ..., ... •• • •• .,.' ~ ~, C, C. 0 0 0 0 I 0 0 I I I I 0 0 0 0 I I 0 -.' ~ 0 0 I 0 0 0 ",' -e 0 I 0 0 0 0 0 0 I I I 0 ~ 0 0 0 0 0 I b' oS 360 Chapter 8 Design at the Register Transf er level labeled G] and Go. There are three inputs and five outputs. The inputs are taken from the condition s in the decision boxes . The outputs depend on the inputs and the present state of the control. Note that there is a row in the table for eac h possible transi tion between states. Initial state 00 goes to slate 01 or stays in 00. depending on the value of input Start. The other two inputs are marked with don 't-care x's, as they do not determin e the next slate in this case . While the system is in binary state 00 with Start = I , the control unit provides an output labeled clr...A _F to initiate the required register operations, The transition from binary state 0 1depends on inputs A 2 and A ), Th e sys tem goes to binary state II on ly if A 2A ) = I I; othe rwise, it remains in binary state 01. Finally. binary slate I I goes 10 00 independently o f the input variables. Co nt ro l Logic Th e procedure for designing a seq uential circuit start ing from a state table was presented in C hapter 5. If this procedure is applied to Table 8.4. we need to use five-variable map s 10 simplify the inpu t eq uations. Thi s is because there are five variables listed under the present-state and input columns o f the table. Instead of using maps to simplify the input equations. we can obtain them directly from the state table by inspection. To design the sequential circuit of the co ntroller with 0 flip-flops, it is necessary 10 go over the next-state col umns in the state table and derive all the conditions that must set each flip -flop to I. From Table 8.4. we note that the next-state column ofG I has a single I in the fifth row. The D input of llip-flop G l must be equal to 1 durin g present slate S_1 when both inputs A2 and A) are equ al to 1. Thi s condition is expresse d with the J) flip-flop input equation DCI = S_ 1A 2A ) Sim ilarly, the next-state column of Go has four t 's, and the condition for selling this flip-flop is To derive the five output functions. we ca n e xploit the fact that binary state 10 is not used. which simplifies the equation for clr...A_F and enables us to ob tain the following simplified set of output equations: set_E = S_IA 2 clrj:: = S_1A 2' set F = S_2 clr_A_F = St ar r S_id le incr_A = S_1 The logic diagram showing the interna l detail of the controller of Fig. 8.10 is drawn in Fig. 8.12. NOIe thai although we deri ved the output equat ions from Table 8.4. they can also be obtained d irectly by inspection of Fig. 8.9(d). This simple example illustrates the manual design o f a eontroller for a datapath. using an ASMD chart as a starti ng point. The fact that synthesis too ls autom atically exec ute these steps should be appreciated . Section 8.6 Sum - HDl Descript ion of Design Example '-""-2 3 361 c1r...A J ..... incr...A A'= ;::::j A, FIGURE 8 .12 logic diagram of the control unit for Fig. 8.10 8 .6 HDL DESCRIPTION OF DESIGN EXAMPLE In pre viou s chapters, .....e gave e xamples of HDL descriptions of co mbinational circuits, seq uential circuits. and various standard co mponents such as multiplexers. counters, and registers. We are no w in a position to incorpo rate these components into the description of a specific design. As mentioned previously, a design ca n be described either at the structural or behavioral level. Behavioral descriptions may be classified as being either at the register transfer level or at an abstract algorithmic level. Consequently. we now consider three levels of design: structural description. RTL description. and algorithmic-based behavioral description. The structural description is the lo west and most detailed level. The digital system is specified in terms of the physical components and their interconnection. The various components may include gates. flip-flops, and standard circuits such a" multiplexers and counters. The desig n is hierarchically decomposed into functional units. and each unit is described by an HDL module. A top-level module co mbines the entire system by instantiating all the lower level modules. This style of descript ion require s that the designer have sufficient experie nce not only to understand the functionality of the system, but also to implement it by selecting and connecting other functional elements. The RTL description specifies the digital system in terms of the registers. the operations performed . and the control that sequences the operations. This type of description simplifies the design process because it consists of proced ural statements that detenni ne the relationship between the various operations of the design without reference to any specific structure. The 362 Chapter 8 Design at the Register Transfer Level RTL descri ption implies a cert ain hard ware configuration among the registers. allo wing the designer to create a design that can be synthesized autom atically, rather than manually. into standard dig ital components. The algorithmic-base d behaviora l description is the most abstract level. descri bing the function of the design in a procedura l. algorithm ic forrn similar 10 a programming language. It does not provide any detail on how the desig n is to be imple mented ..... ith hardware. The algorithmic-based behavioral description is most app ropriate for simulating complex systems in order to verify design idea.. and explore tradeoffs. Description s at this level are acce ssible to nontech nical users who understand programming languages. Some algorithms . ho.....ever. might nOI be s)nthesizable. We will now illu strate the RT L and structural descriptions by using Ihe design example of the pre vious section. The design exampl e will serve as a model o f cod ing style for future exarnple s and will exploi t alterna tive syntax options suppon ed by revisions 10 the Verilog languagc. (An algori thmic-based description is illustrated in Section 8.9.) RTL Description Th e block diagram in Fig. 8.10 descr ibes the design example. An HOL de scription of the de sign exampl e can be written as a single RTL descriptio n in a Verilog mod ule or as a top level mod ule having instantiations of separate modules for the controller and the datapath. The former opt ion simply ignores the boundar ies between the funct ional un its: the module s in the latter option establish the boundaries shown in Fig . 8.9(a) and Fig. 8.10 . We advocate the second option. because. in general. it disting uishes more clearly between the controller and the datapath . Thi s choice also allows one to easily substitute alternative controlle rs for a give n datapath (e.g.• replace an RTL mode l by a structural model). The RTL description of the design exa mpic is shown in HD L Examp le 8.2. Th e description follows the ASMO chart of Fig. 8.9(d ). which conta ins a complete descript ion of the controller. the datapeth. and the interface between them (i.e.• the ou tputs o f the con troller and the status signals). Likewise. o ur descri ption has three modules: De.~ix,,_Example_RTL. Controller_RTL. and Datapat 1l_R TL. The desc riptions of the controller and the datapath units are taken directly from Fig. 8.9l..d). Design_£rumple_RTL declares the in put and o utput port s of the module and instantiates Controller_RTL and Datapath_R TL. At this stage of the description. it is important 10remem ber to declare A a... a vector. Failure 10 do so will produce port mis mat ch errors when the descriptions are compiled together. Note that the status signals A12 ] and A/3} arc passed to the con troller . The primary (ext erna l) inputs to the controller are Start. clock (10 synchro nize the systemj . and resetb . The active-low input signal resetb is needed to initialize the state o f the controller to S_idfe. WithOUI that signal. the controller could nor be placed in a known initia l slate. Th e controller is described by th ree cycl ic (always ) beha viors. An edge-sen sitive behavior updates the state at the positive edge of the clock. depending o n whether a reset condition is asse rted. Two level-sensitive behaviors descri be the combinatio nal logic for the next state and the outpu ts of the controller. as speci fied by the AS MD chan . Notice tha t the description incl udes default assignm ent s (0 all of the out puts tc.g.• secE = 0). This approach allows the code of the cas t' logic 10 be simplified by expressing on ly explicit assertions of the variab les (i.e .. values are assigned by exce ption). T he approac h also ensures that every path throu gh the assignment logic a..signs a value to eve ry variable. Thus. a synthesis tool will interpret the Section 8.6 HDl Description of Design Example 363 logic to be combinational: failure to assign a value to every variable on every path of logic implies the need for a transparent latch (memory) to implement the logic. Synthesis tools will provide the latch. wasting silicon area. The three states of the controller are given symbolic names and are encoded into binary values. Only three of the possible two-bit patterns are used, so the case statement for the nextstate logic includes a defa ult assignment to handle the possibility that one of the three assigned codes is not detected. The alternat ive is to allow the hardwa re to make an arbitrary assignment to the next state ( Ilext_~·tate = 2 'bx;). Also. the first stateme nt of the next-state logic assigns nex t_stat e = S)dle to guarantee that the next state is assigned in every thread of the logic. This is a precaution against accidentally forgetting to make an assignment to the next state in every thread of the logic, with the result that the description implie s the need for memory, which a synthesis tool will implement with a transparent latch. The description of Datapath_RTL is written by testing for an assertio n of each co ntrol signal from Comroller_RTL. The register transfer operatio ns are displayed in the ASMD chart (Fig. 8.9(d)). Note that nonbloc king assignment s are used (with symbol < = ) for the register tran sfer operati ons. Thi s ensure s that the register operations and state transitions are concurrent, a feature that is especially crucial during control state 5_1. In this state, A is incremented by I and the value of A2 (Al2 ]) is checked to determine the operation 10 execute at register E at the next clock. To accomplish a valid synchronous design, it is necessary to ensure that Al 2] is checked before A is incremented. If blocking assignmen ts were used, one would have to place the I WO statements that check E fi rst and the A statement that increments last. However, by using nonblocking assignments, we accom plish the required synchronization without being concerned about the order in whic h the statements are lis ted. The co unter A in Darapatlz_RTL is cleared synchronously because c1r....A_F is synchronized to the cloc k. The cyclic behav iors of the controller and the datapath interact in a chain react ion: At the active edge of the clock , the state and datapath regis ters are updated . A change in the state, a primary input , or a status input causes the level-sensitive behav iors of the controller to update the value of the next state and the outputs. The updated values are used at the next active edge of the clock to determine the state tra nsition and the updates of the datapath. Note that the manua l method of design developed ( I) a block diagram (Fig. 8.9(a» showing the interface between the datapath and the controller. (2) an ASMD chart for the system (Fig. 8.9(dJl, (3) the logic equation s for the input s to the flip-flops of the controller, and (4) a circuit that implements the controller (Fig. 8.12). In contra st, an RTL model desc ribes the state transitions of the controller and the operati ons of the datapath as a step toward s automatically synthesizing the circuit that implements them. The descri ptions of the datapa th and contro ller are derived directly from the ASMD chart in both cases. 1101. Example 8.2 1/ RTL description of design example (see Fig. 8.11) module Design _Example_RTL (A. E, F, Sta rt, clock, reset_b ); fI Specify ports of the top-le ve l module of the design fI See block diagram, Fig. 8 .10 o utput [3: 0) A; o utput E, F; 364 Chapter 8 Design at th e Registe r Transfe r Level input Start, clock, resetj b: I/ Instantiate controller and datapath units Controller_RTl MO(sat_E, clr_E, seCF. clr_AJ , incr_A. A(2]. A(3]. Start. dock. reset_b ); Datapalh_RTl M1 (A. E. F. seC E. elr_E, setJ. clr_AJ . incr_A, clock); endmodule modu le ControlJer_RTl (set_E, clr_E, self , clr_Af , iocr_A, A2. A3, Start. clock, reset_b); output reg set_E. clr_E, set_F, clr_A_F. incr_A: input Start. A2, A3, clock, reseC b; reg (1: 0] state. next_slate; parameter S_idle = 2'bOO, S_, = 2'b01. S_2 = 2'b11; 1/ State codes always @ (posedge elock or negedge reseCb) 1/ State transitions (edge sensitive) If (reseC b == 0) state <= S_idle; else state <= next_state; 1/ Code next-state logic directly from ASMD chart (Fig. 8.9d) always @ (state. Start, A2, A3) begin 1/ Next-state logic (level sensitive) next_state = S_idre; case (state) S_idle: if (Start) next_state = 5_1; else next_state = S_idle; S_1: if (A2 & A3) next_state S_2; else next_stale S_1: S_2: next_state = S_idle; defaul t: next_state = SJdle; endc ase end 1/ Code output logic directly from ASMD chart (Fig. 8.9<:1 ) always@ (state. Start. A2) begi n set_E = 0; If default assignments; assign by exception clr_E = 0; set] = 0: clr_AJ = 0; incr_A '" 0; case (state) S_idle: If (Start) c1r_Af = 1; S_, : begin incr_A '" 1; if (A2) set_E = 1; else clr_E = 1; end setf = 1; 8_2: endc ase end endmodule module Datapath_RTL (A, E. F. set_E. elr_E. seCF, c1r_AJ. iocr_A, clock): output reg 13: OJ A; If register fo- counter outp ut reg E, F; If flags Input seC E. clr_E. setf. d r_AJ. incr_A. clock; If Code register transfer operations directly from ASMD chart (Fig. 8.9(d» = = Section 8 .6 HDL Description o f Design Example always @ (po s ed ge clock) be g in If (set_ E) If (elr_E) If (se l_F) if (c1r_A_F) if (incr_A) 365 E <= 1; E <= 0; F <= 1; be gin A <= 0; F <= 0; end A <= A + 1; end e nd mo d ule Testing the Design Description The sequence of operations for the design example was investigated in the previ ous section. Table 8.3 shows the values of E and F whil e register A is increme nted. It is instru ctive to devise a test that checks the circui t to verify the validity of the HDL description . The test benc h in HDL Example 8.3 provide s such a modu le. (The procedure for writing tes t benches is explained in Section 4.12 .) Th e test modu le generates signals for Start. clock, and reset.b, and checks the resulls obtained from regi sters A , E, and F. Initially, the resetb signal is set to 0 to initialize the controller. and Start and clock are set to O. At time t = 5. the resec b signal is deasserted by selling it to I , the Start input is asserted by setting it to I . and the clock is then repeated for 16 cycles. The $mo nitor statement displays the values of A. E, and F every IO ns. The output of the simulation is listed in the example under the simulation log. Initially, at time t = 0, the values of the registers are unknown , so they are marked with the symbol x. The first positive clock transition, at time = 10. clear s A and P , but does not affec t E, so E is unknown at this time . The rest of the tab le is identical to Table 8.3. Note that since Start is still equal to I at time = 160. the last entry in the tab le shows that A and F are cleared to 0, and E does not change and remains at I . This occurs durin g the second transition, from S_idle to 5_1. 111>1. Example 8.3 /I Test be nch for design example mo dul e t_ Design_Example_RT L; reg Start , clock, resel_b ; wire [3: OJ A; wire E, F; fl lnsta ntiate design example Design_Exa mpJe_RTL MO(A, E. F, Start, clock, rese Cb); II Describe stimulus wavefo rms /I Stopwa tch initial #500 $flnls h; Initial begin rese l_b = 0; Start = 0; clock = 0; #5 res eC b 1; Sta rt 1; repeat (32) = = 366 Chapter 8 Design at the Registe r Tra nsfer Level begin #5 clock = - clock; /I Clock generator end end Initial Smo nit o r rA = %b E = %b F = %b tim e = %Od", A, E, F, Sti me); end module Simulation log : Ae xxxx E = x F = xtime =O A = 0000 E = x F =O time = 10 A = 000 1 E = 0 F = time = 20 A = 00 10 E = 0 F = 0 time = 30 A = 00 11 E = 0 F = 0 time = 40 A = 0 100 E = 0 F = 0 time = 50 A = 0101 E = 1 F = 0 time = 60 A = 0110 E = 1 F = Otime =70 A = 0111 E = 1 F = 0 time = 80 A= 1000 E = 1 F = Otime = 90 A = 1001 E = O F e uume = 100 A = 1010 E = 0 F = 0 time = 110 A = 1011 E =0 F = time = 120 A = 1100 E =0 F = o time = 130 A = 1101 E= l F= Otime= 140 A = 1101 E = 1 F= 1 time = 150 A = 0000 E = 1 F = 0 lime = 160 o o w aveforms produced by a simulation of Design.ExampleRtl. with the test bench are shown in Fig. R. 13. Numerical values are shown in hexadecimal format. The results are annotated to call attention to the relationship between a control signal and the operation that it ca use... to exec ute. For exam ple. the controlle r asse rts sec E for one doc k cycle before the cloc k edg e at which £ is set to I. Likewise, setF asserts during the dock cycle before the edge at which F is .;,et to I. AI~, clr..A_F is formed in the cycle before A and F are cleared. A more thorough verification of De.'iigll _£ UUllpfcRTL would confinn thai the machine recove rs from a reset on the fly ( i.e.• a reset thai is asserted random ly after the machi ne is ope rating). Note that the signals in the output of the simulation have been listed in groups showing (l ) clock and resecb. (2) Stan and the status inputs, (3) the state. (4) the control signals. and (5) the datapath registers . It is strongly recommended that the state always be displayed. because this inform ation is esse ntial for verifying that [he mach ine is opera ting correc tly and for dd>ugging lrs descrfptlon when it is nor. For the chosen binary statc code. S_idle = ()(h = OH.S_J = 0 12 = I H. and S_2 == II ~ = 3H . Structural Description The RTL description of a design consists of procedu ra l sraremenrs tha t de term ine the functiona l beh avior of the digital circuit. Th is type of descripti on can be co mpiled by HOL synthesis tools. from which it is possible toohtain the eq uivalent gate -level ci rcuit of the designIt is also Section 8 .6 ""arne o so r~M,-b JI<lI~{J :O{ ~ dr...AJ srcE d r_E JrCF incr..A I--' A[J: O[ x , ., ; . i ~ , , , , , , ." : , £ F ; ,, , , , 367 I'" ; f-' St<l'" 100 ~ ~~~~i-, ~ ~ ~~ dack A] AJ HD L De scrip t io n of Design Example , , : i/ c 1'-< fIGURES.1 3 Simulation re sults fo r d e sign exam ple possible to describe the de..ign by its ..uu cture rather than its fu nct ion . A struct ural descript ion of a design consists of instantiation... of components that defin e the circuit eleme nts and their interconnections. In th is reg ard . a structural description is eq uivalent to a schematic diagram or a block di agram of the circuit. Contemporary de..ign practice rel ies heavily o n Rll. descriptions. but we will pre sent a struc tura l descriptio n here to co ntrast the two approaches. For co nve nience. the circuit is again decomposed into two parts: the co ntroller and the da tapath. The bloc k diagram of Fig. 8. 10 shows the high-level partition bet wee n the se unit!">. and Fig. 8. I2 pro vides additional unde rlying structural de ta ils of the co ntroller. The structure of the datapath is ev ident in Fig. 8. 10 and consists of the fli p-flops and me four-bit counter with synchronous clear. The top level o f the Verilog desc ription replaces Dt'sigfl_E.tample_RTL. Consroller_RTL. and Dawpath_RTL by Desig1l_Example_SIR. Controller_STR. and Datapath5TR. respectively. The descriptions of Controller_STR and Daraparh_STR will be structural. HDL Example 8.4 presents me structura l descri ption of the design example. II co nsists of a nested hierarchy of modu les and gales describing ( I) me lop-level mod ule. Design_Example....sTR. (2) the mod ules describing the co ntroller and the datapath. (3) the mod ules describing the f1ipflops and co unters. and (4 ) gates implementing the logic of me controller. For simplicity. the co unter and flip-flops arc described by RTL models. The top-level modu le (see Fig. 8. 10) encapsulates me entire design by ( I) instantiating the controlle r and the da rapath modu les. (2) decl arin g the primary (external) inpu t signals. (3) declaring the ou tput signals. (4 ) declaring the co ntro l sign als ge nerated by me controller and connected to the dataputh unit. and (5) declaring the status signals genera ted by me datapath unit and connec ted to the contro ller, The port list is iden tical to me Jist used in the RTL descri ption. The ou tputs are declared as " Ire type here because the y serv e mere ly to connect the outputs 368 Chapter 8 Desig n at th e Regi st er Transfer level of the datapat h module to the o utputs o f the top-leve l modu le. with thei r logic value being determ ined wit hin the datapath modu le. The control mod ule desc ribes the circuit of Fig . 8.12. The outputs of the two ni p-flops 0 1 and GO are declared a" " i re data type. G I and GO cannot be decl ared as reg data type because they are outputs of an instantiated D fli p-flop. DG I and DGO are undeclared identifi ers. i.e.. imp licit wires. The name of a variab le is local to the module or procedu ral bloc k in wh ich it is declared , Net s may not be declared within a procedural block (e.g .• begin , " end ). The rule to remember is th at a variable mu st be a declared reg ister type (e.g.. re g ) if and only if irs value is assigned by a procedural statement (i.e., a blocking or nonblocki ng assignment statement within a proce dural bloc k in cycl ic or single-pas!'> behavior or in the output of a sequential LUP J. Th e instantiated gate.. specify the com binationa l pan of the ci rcuit. There are two flip-fl op input eq uations and three output equations. The outputs of the flip-flops G I and GO and the input equations DGl and DGO rep lace output Q and input D in the instant iated flip-n ap s. The D flip-flop is then described in the nex t module. The struct ure of the dataparh un it has direct inputs to (he l K fl ip-flops.Note the correspondence between the modules of the HDL description and the struc tures in Figs. 8.9 . 8. 10, and 8. 12. HDL Exa m ple 8 .~ /I Structural description of design example (Figs. 8.9(a), 8.12) module Design_Example_STR ( output [3: 0] A. /I V 2001 port syntax output E, F, inp ut Start, clock, reset_b ); Controller_STR MO(clr_Af , seCE, c1r_E, setf , iner_A, Start, A[2], A[3]. clock, reseC b ); Datapath_STR M1 (A. E, F, cICAJ , set_E, clr_E, setf , incr_A. clock): endmo du le modul e Controller_STR ( output clr_A] , set_E, clr_E, set] , incr_A, Input Start, A2, A3, clock, resel_b ); wire parameter wire not (GO_b, GO); not (G 1_b, G 1); buf (incr_A, w2); bUf (set] , G1); not (A2_b, A2); GO, G1; S_idle = 2'bOO, S_ l w1, w2, w3; = 2'b01, S_2 = 2'b11; Sectio n 8.6 HDl Descripti on of Design Exampl e or (O_GO, w1, w2); and (w1, Start, GO_b); and (c1r_AJ , GO_b, Start); and (w2, GO, G 1_b); and (set_E, w2, A2); and (clr_E, w2, A2_b); and (0_G1 , w3, w2); and (w3, A2, A3); D_fIip_flop_AR MO (GO, O_GO, clock, reset_b); D_fIip_flop_AR M1 (G 1, D_G1, d oCk, reseLb); endmodule /I datapath unit module Oatapath_STR ( output 13: OJ A, output E, F, Input clr_A_F, seL E, c1r_E, seLF, incr_A, cloc k ): JK_fIip_flop_2 MQ (E, E_b, sel_E, clr_E, clock); JK_flip_flop_2 M1 (F, F_b, set_F, clr_A_F, clock); M2 (A, iocr_A, d r_A_F, clock); Counle r_ 4 endmodule II Counter with synchrono us dear module Counter_4 (o utp ut reg {3: OJA, Inp ut incr, clear, clock ); always @ (pos ed ge clock ) If (clear) A <= 0; el se If (incr) A <= A + 1; endmodu le module O_fIip_flop_AR (0 , D, CLK, RST); output 0; input D, CLK, RST; reg Q; always @ (po sedge e LK, negedge RST ) if (RST == 0) <= l 'bO; else Q <= 0 ; endmodule a /I Description of JK flip-flop module JK_flip_f1op_2 (a , a _not, J, K, ClK); output Q , a _not; 369 370 Chapter 8 Design at t he Register Transfer level Input J, K, Cl K; a; reg ass ign a _not = - O : always @ (po sed geClK) case «J, K}) 2'bQO: <= Q ; 2'b01 : Q <= 1'bO; 2'b10: 0 <= 1'b1 ; a 0 <= - 0 ; 2'b1 1: end case end modu le module t_Design_Example_STR; reg Start, clock , reset_b; wlre (3: OJ A; E, F; wlre II Instantiate design example Design_Example_STR MO(A, E, F, Start , cloc k, reset_b); II Describe stim ulus wa veforms In itial #500 $fi nl s h ; In iti al beg in reset_b 0; Start = 0; clock = 0; #5 reset_b = 1; Start 1; re peal (32) begin #5 clock = - clock ; II Stopwatch = = II Clock gen erator .nd .nd In it ia l $monltor ("A = %b E = %b F = %b time endmodul e = %Od", A, E, F, $t1me); The struc tural descriptio n was tested with the lest bench thai verified the RTL description to prod uce the resu lts shown in Fig. 8. 13. The on ly change necessary is the rep lacement of the instant iation of the example fro m Design_ExampJe_RTL to Design_ExampJe_STR. The simulation results for Design f t ample f lR matched those for Design_ ExampJe_RTL. However, a co mparison of the two descriptions indicates that the RTI. style is eas ier to write and will lead 10 results faster if synthesis tools are available to auto matical ly synthe size the registers. the combinational logic , and their interco nnections. Section 8.7 Sequential Binary Multiplier 8 .7 371 SEQUENTIAL BINARY MULTIPLIER Th is section introduces a second design example. It presents a hard ware algorithm for binary mul tiplicat ion. propose s the register co nfiguration for its implementation. and then shows how to use an AS~tD chart to design darapath and irs controller. TIle system we will examine multiplies two unsigned binary numbers. 1be hardware algorithm that was developed in Sectio n ~ .7 to execute multiplication resu lted in a com binational circuit multiplier with many adders and Al"'D gates. requiring a large area o f silicon for the implementation of the algorithm as an integrat ed circuit. ln co ntra..t, in thi\ sectio n, a more efficie nt hardware algorithm results in a seq uential mu ltiplier that uses only one adde r and a shift regi ster. The sa vings in hardware and silico n area co me about from a trad e-off in the !>pace (hardwarej-tirne domain. A parall el adde r uses more hardware. bUI forms its result in one cycle of the clock ; a sequential adder uses less hardware. but takes multiple cloc k cycles to fonn its result. The multiplication of two binary numbers Is done with paper and pencil by successive (Le.. sequential ) add itions and shifting. The proce ss is best illustrated with a numeri cal exa mp le. Let us multiply the two bi nary numbers lOl l! an d 10011 : 23 19 1011 1 mult ipli cand 100 \1 mu ltiplier 10 111 101 11 0‫סס‬oo 0‫סס‬oo 1011 1 4 37 110110101 product The proce ss consi..ts of successively addi ng and shifting copies o f the multiplicand . Successive bits o f the mu ltiplier are examined . least significant bi t first . If the multiplier bit is I. the mult iplicand is co pied do wn; otherwise. n's are copied down. The numbers copied in scc ces she lines are shifte d o ne pos itio n to the left fro m the pre vious number. Final ly. the numbers are added and their sum forms the produ ct. The product ob tained from the multiplication of two bi nary numbers of II bits eac h ca n have up to 2n bits. It is apparent that th e operations of addi tion and shifting are executed by the algorithm. When the multiplication process is implemented with digi tal hardware. it is convenient [0 change the process slightly. First. we note that , in the co ntex t of synthesizing a seq uential rnachine. the add-and-shirt algorithm for binary multiplication can be exec uted in a single clock cycle or over multiple clock cycles, On the one hand. a choice to form the produc t in the time span of a single d ock cycle will synthesize the circuit of a parallel multiplier like the one discussed in Section 4.7. On the other hand. an R11. model of the algorithm adds shifted co pies of the multiplicand to an accumulated partia l product. The values of the multiplier. mu ltiplicand . and partial produc t are stored in registers. and the operations of shifting and addin g their co ntents are exec uted under the co ntrol of a stale mac hine. Amon g the many possibilities for di stributin g the effort of muluplication over mu ltiple cloc k cycles. we ....; 0 consider that in which only one partial product is formed and accumulated in a single cycle of the clock. (One alternative would be 10 use additional hardware 372 Cha pter 8 Design at t he Regi ster Transfer Level to form and accumulate two partial products in a clock cycle. but this would require more logic gates and either faster circuits or a slower clock.) Instead of providing digital circuits to store and add simultaneously as many binary numbers as there are I 's in the multiplier. it is less expensive to provide only the hardware needed to sum two binary numbers and accumulate the partial products in a register. Second, instead of shifting the multiplicand to the left, the partial product being fonned is shifted to the right. This leaves the partial product and the multiplicand in the required relative positions. Third, when the corresponding bit of the multiplier is 0, there is no need to add all O's to the partial product, since doing so will not alter its resulting value. Regist e r Configuration A block diagram for the sequential binary multiplier is shown in Fig. 8. I4(a). and the register configuration of the datapath is shown in Fig. 8.14(b). The multiplicand is stored in register B, Rt ady .\ lultip ficand Multiplit, Sra,t QO (. ) I Registe r B (Multiplicund) l nr~Vt . .. , .An l l l' .. 7 . 1'! 0101 01 " ' .' , Register P( Counlt r ) 0 + 0 o I°I 0 I 0 0101010 010 I 0I, 1o11 1'1 II 16 15 9 C 8 8 Register A (Sum) 7 Register Q (Multipfitr) 1 (b) FIGURE 8. 14 (a) Block diagram and (b) datapath of a binary mul tiplier Section 8.7 Sequential Binary Multiplier 373 the multiplier is stored in register Q, and the partial product is formed in register A and stored inA and Q. A parallel adder adds the contents of register B to register A . The C flip-flop stores the carry after the addition. The counter P is initially set to hold a binary number equal to the number of bits in the multiplier. This counter is decremented after the formatio n of each partial prod uct. When the content of the cou nter reaches zero. the product is fa nned in the do uble register A and Q, and the proce ss stops. The control logic stays in an initial state until Stan becomes I . The system then performs the multiplication. The sum of A and B fonn s the n most significant bits of the partial product, which is transferred toA . The output carry from the addition, whether 0 or I , is transferred to C. Both the partial product in A and the multiplier in Q are shifted to the right. The least significant bit of A is shifted into the most significant position of Q, the ca rry from C is shifted into the most significant position of A, a nd 0 is shifted into C. After the shift-right operation, one bit of the partial produ ct is transferred into Q while the multiplier bits in Q are shifted one position to the righ t. In this manner, the least significant bit of regis ter Q, designated by Q[ O] , holds [he bit of the multiplier that must be inspected next . The control logic determines whet her to add or not on the bas is of this input bit. The control logic also receives a signal, Zero, from a circuit that checks counter P for zero. Q[O] and Zero are status inputs for the control unit. The input signal Sta rt is an external control input. The outputs of the control logic launch the req uired opera tions in the reg isters of the da tapath unit. The interface betwee n the controller and the datapath consists of the status signals and the output signals of the controller. The control signals govern the synchronous register operation s of the datapath. Signal loadregs loads the internal registers of the datapath, Shift_regs causes the shift register to shift, Add]egs form s the sum of the multiplican d and register A, and Deer_P decrements the counter. The co ntroller also forms output Ready to signal to the host environment that the machine is ready to mult iply. The cor nenrs of the register holding the product vary during execution. so it is useful to have a signal indicating that its contents are valid. Note, again, that the slate of the control is not an interface signal between the control unit and the datapath . Only the signals needed to control the datapath are included in the interface . Putting the state in the interface would requ ire a decoder in the datapath. and require a wider and more active bus than the co ntrol signa ls alone. Not good. ASMD Chart The ASMD chan for the binary multiplier is shown in Fig. 8.15. The intermed iate fonn in Fig. 8.15(a) annotates the ASM chart of the controller with the registe r operations, and the co mpleted chart in Fig. 8. 15(b) identifies the Moo re and Mealy outpu ts of the controller. Initially. the multip licand is in B and the mult iplier in Q. As long as the circuit is in the initial sta te and Start = 0, no actio n occurs and the system re mains in state S_idle with Ready asserted. The mult iplication process is launched when Start = I. Then , (I) control goes fo slate S_add. (2) register A and carry flip-flop C are cleared to 0, (3) registers Band Q are loaded with the multiplicand and the multiplier, respectively, and (4) the sequence counter P is set to a binary number n. eq ual to the num ber of bits in the mult iplier. In Slate S_add, the multip lier bit in Q[OJ is checke d. and if it is equal to I , the multipli cand in B is added to the part ial product in A. The carry from the add ition is transferred to C. The partial prod uct 374 Chap t er 8 Desig n at t he Register Transfer Level resecb Slart P <- P- l p < .. P-l Decrement cour uer . Q/O/'r -- -,/ IC, AI < - A+ B Addmulliplicund /0 shifted sum IC, A. QI<- IC,A. QI » "-..... IC, A. Ql <- IC, A, QI » 1 "<, 17. bir r,gisle, sh ifts to the right by one bit ii "'\.. I /? (bJ (.) FIGURE 8 .15 ASMD cha rt for binary multi plier in A and C is left unchange d if QIO) = O. The co unter P is decremented by I regardless of the value of Q/ O}, so Deer_P is formed in slate S_odd as a Moore output of the co ntroller. In both cases, the next state is S-.shift. Registers C.A. and Q are combined into one composite register CAQ. denoted by the concatenation {C. A. Q}. and its contents are shifted once to the righ t to obtain a new partial product. This shift operation is symbolized in the flowchart with the Verilog logical right-shift operator. > >. It is eq uivalent to the following statem ent in register transfer notation: Shift right CAQ. C-O Section 8.7 Sequential Binary Multiplier 375 In terms of individual register symbols. the shift operation can be described by the following register operations: A - shr A,A n_ t-C Q- shrQ,Qn_t-A O C~ O Both registers A and Q are shifted right. The leftmost bit of A, designated by An- J, receives the carry from C. The leftmost bit of Q, or Qn- l' receives the bit from the rightmost position of A in Ao• and C is reset to O. In essence, this is a long shift of the composite register CAQ with 0 inserted into the serial input, which is at C. The value in counter P is checked after the formation of each parti al product. If the contents of P are different from zero, status bit Zero is set equal to 0 and the process is repeated to fonn a new partial produ ct. The process stops when the counter reache s 0 and the controller' s status input Zero is equal to I. Note that the partial product fann ed in A is shifted into Q one bit at a time and eventually replaces the multiplier. The final product is available in A and Q. with A holdi ng the most significant bits and Q the least significa nt bits of the product. The previous numerical example is repeated in Table 8.5 to clarify the multiplication process. The procedure follows the steps outlined in the ASMD chart. The data shown in the table can be compared with simulation results. The type of registers needed for the dat a pro cessor subsys tem can be deri ved from the register operations listed in the ASMD chart. Register A is a shift register with paralle l load to accept the sum from the adder and must ha ve a synchronous clear capab ility to reset the register to O. Register Q is a shift register. The counter P is a binary down counter with a facility Ta b le 8 .5 Num~rkaf Exampf~ Multiplicand B For Binary Multlpll~r = 10111 2 = 17 H = 2310 Multiplier Q = 10011 2 = 13 H = 19 10 C A Q p Multiplier in Q Qo = I; add B U ()(J()()() 10011 101 First partia l product Shift right CAQ Qo = t; addB Second partial prod uct Shift right CA Q Qo = 0; shift right CAQ Qo = 0; shift right CAQ Qo = I; addB Fifth partial product Shift right CA Q Finalproductin AQ = 01 101101012 = Ib5H 0 0 IJllil I 0 0 0 0 0 lOl l! 0 1011 IJllil 00010 10001 01000 00100 IJllil 11011 01101 nooi 100 011 01100 lOlI O 01011 010 001 1010t 000 3 76 Chapter 8 De sig n at the Register Transfer l e vel to parallel load a binary constant. The C flip-fl op must be designed to acce pt the input carry and have a sync hronous clear. Registers B and Q need a para llel load capability in orde r to receiv e the multi plican d and multiplie r prior to the start of the multiplication proce ss. 8.8 CONT ROLlOGIC The design of a dig ital system can be divided into two parts : the design of the register tran sfers in the datapa rb unit and the design of the control logic of the co ntrol unit. The control logic is a finite slate machine; its Mealy- and Moore -type ou tputs control the opera tions of the datapath. The inputs to the control unit are the primary (external ) inputs and the interna l status signals fed back. (rom the datapa th to the controlle r. The design of the system can be synthesized from an RTL desc ription derived from the ASMD chan. Alternatively, a manual design must derive the logic gove rning the inpu ts to the flip-flops holding the state of the contro ller. Th e inform ation needed to fonn the state diagram of the co ntroller is already co ntained in the ASMD chart. since the rectangular bloch that designate stale boxes are the states o f the sequential circuit. The diamond-shaped blocks that designate decision boxes detennine the logical conditions for the next state transition in the state diagram. As an example. the contro l state diagram for the binary multiplier developed in the previous section is shown in Fig. 8.I6(a). The information for the diagram is taken d irectly from the Zero - I Sta rt - 0 Z ero - 0 (. ) State Transition From Register Operations III S_idle S_idle S_add SJhijr Initial nate S_add SJh;ft A <= O. C < - O. P < - dp_"'idlh p <=p - ! if (QIOn then (A <- A + B. C < - C.....) shifl right ICA QI. C <'" 0 (b) FIGURE 8 .16 Control specificatio ns for binary m ultiplier Section 8.8 Control l ogic 377 ASMD chart of Fig . 8.15. Th e three states S_idle through S_shift are taken from the rectangu lar state boxe s. The input s Star t and Zero are tak en from the diamond-shaped decision boxe s. The reg ister transfer operations for each of the three slates are listed in Fig. 8.16(b} and are taken from the correspon ding state and con ditional boxes in the AS MD chan . Establishing the state transitions is the initial foc us. so the outp uts o f the contro ller are not sho wn. There are two distinct aspec ts with which we have to deal whe n implementing the contro l logic : Establi sh the required sequence of states and provid e signals to control the register operations. The sequence of slates is specified in the ASMD chan or the state diagram. The signals for controlling the operations in the registers are specified in the register transfer statements annotated on the ASMD chart or listed in tabu lar format. For the multiplier. the se signals are toadregs (for para llel loading the regis ters in the datapath unit). Decr.P (for decre menting the counter) . Add_regs (for adding the multiplicand and the partial prod uct). and ShiftJegs (for shifting register CAQ) . The block diagram of the control unit is shown in Fig. 8.J 4(b}. Th e inputs to the controller are Start. Q/OJ. and Zero. and the outputs are Read)'. Loadr egs, Decr.P, Addr e gs, and ShifCre gs. as speci fied in the ASMD chart. We note that Q/Oj affects on ly the outp ut of the controller. not its state transitions. The machine tran sitions from S_add to S_shift unconditionally. An important step in the design is the assignment of coded binary values to the states. The simplest assig nment is the sequen ce of binary numbers . as shown in Table 8.6. A similar assig nment is the Gra y code. acco rding to which only one bit changes when going from one number to the next. A state assignment often used in control design is the one-hot assignment. Th is assignment uses as many bits as there are stales in the circ uit. At any given time . only one bit is equa l to J (the one that is hot) while all others are kept at 0 (all cold). This type of assignment uses a flipflop for each state. Indeed. one-hot encoding uses more flip-flop s than other type s of coding. but it usually leads to simpler decoding logic for the next stale and the output of the machine . Because the decod ing logic does not become more complex as stales are added to the machine. the speed at which the machine ca n operate is not limited by the time required to decode the state. Si nce the controller is a sequential circuit. it can be designed manually by the sequential logic procedu re outlined in Chapter 5. However. in most cases this method is d iffic ult to carry out manually because of the large number of states and input s that a typical control circuit may have. As a consequence. it is necessary to use specialize d methods for contro l logic design that may be considered as variations of the classical seq uential logic method. We will now pre sent two such design procedure s. One uses a sequence register and decoder. and the other uses one flip flop per state. Th e method will be presented for a small c ircuit. but it applies to larger circ uits as well. Of course. the need for these met hods is eliminated if one has software that auto matically synthesizes the ci rcuit from an HDL description . Ta b le 8 .6 State Anlgnment for Control State Binary Gray Code One-Hot S_idle S_add SJhjft 00 01 10 00 01 II 00 1 0 10 100 378 Cha pte r 8 Desig n at the Reg ister Transfer Level Seque nce Register a nd Decoder The sequence-register-and-decoder (manual) method. as the name implies. uses a regi ster for the control states and a decoder to provide an output corres ponding 10 eecb of the states . (The decoder is not needed if a one -hot code is used .) A regi ster with n flip-fl ops can have up to 2" states. and an n-to-2 "· line decoder has up to 2" outputs. An a-bit sequence register is e~sentially a circuit with n flip-flops. together with the associated gates that effect their state trans ition s" The AS~1D chan and the state diagram forthe controller of the binary muttiplier bave three states and two inputs. (There is no need to conside r QIO}. ) To implement the design with a sequence reg ister and decoder. we need two flip-flops for the register and a rwo-to-four-liee decoder. The output s of the decoder will fo nn the Moore-type outputs of the controll er directly. The Mealy-type outputs will be formed fro m the Moore outputs and the inputs. The state tab le for the finite state mach ine of the controller is shown in Table 8.7. It is derived directly from the ASMD chart of Fig. 8.15(b) or the state diagram of Fig. 8.16(a ). We designate the two flip -flops as G l and Go and assign the binary states 00. 0 1. and 10 to S_idlt'. S_odd. and S_shi/t. respectivel y. Note that the input col umns have don ' t-care entries whenever the input variab le is not used 10 determine the next state. Th e outputs of the control circuit are designated by the names give n in the ASMD chart . The particular Moore-type output vari able that is equal to I at any give n time is determined fro m the equivalent binary value of the present stale. Those output varia bles are shaded in Table 8.7. Thus. when the pre sent state is GIGO = 00. output Ri'ad)' must be equal to 1. while the othe r outputs remain at O. Since the Moore-type outputs are a function of only the presen t state. they can be generated with a decode r circuit having the two inputs G 1 and Go and using three of the decoder outputs To through T2 . as shown in Fig. 8. 17(a). whic h does not include the wiring for the state feedb ack . The state machine of the controller can be des igned from the state table by means of the cl assical procedure pre sented in Chapter 5. This example has a smal l number of states and inputs. so we could use map!' to simplify the Boolean functions. In most con trol logic applica tions. the Table 8 .7 Statlt Tab/It for Control CIrcuit Pre Jent State PreJent-St ate Symbol Next State InputJ ~ G, Go Start Q[O} Zero G, Go 0 0 0 X X X X X X 0 0 0 S_aJJ S_aJJ 0 0 0 0 I I 0 0 S_shift S_shift I I 0 0 0 0 0 I S_idle S_idle I I I X X X X 0 I X X I ~ I 0 . .. r .' • t, • a, g Qt il' l; 0 I 0 0 0 I 0 0 0 0 0 0 0 0 I I -e I 0 0 0 0 0 0 0 0 0 0 ~ t, ~ Section 8.8 Control Logic 379 R"', 5'"" - -j-<Y QIOI - -+--1 Zm-- - -1 _._.._._.._._ ,.. .. NUl 51tU~ Logic: (. ) , I R"', - .. ~~'\~ -+---' Zero _ _ _ . . ._.._ __._.. .._ i ~ (bl FIGURE 8.17 logic diagram of control for binary multiplier using. sequence register and decoder 380 Chapter 8 Design at the Register Tran sfer Level number of sta tes and inpu ts is m uch larger. In general. the app lication of the clas sical method r"nIu.irei'> an e ltcc ssi vc amou nt o f ..... ork to obtain the l im plified input equalio ns fo r !he flip-flO(K and is prone to error. The des ign can be sim plified if we take imo cc es toereuce lhe fllCl thai the decoder outputs are ava ilable for use in the design. Instead of using flip-flop outputs as the present-slat e condition s, ,,'e use me outputs ofthe decode r to tndiaue tM presem-suur condition ofthe s~qu~ntjal circuit. Moreover, instead of using maps to simp lify the flip-flop equations. we can obta in the m directly by ins pection of th e stale tabl e. For example. from the nelt t-..t.le condition<; in tbe sta te table . we fInd th ai the nex l stale of G 1 is equal to I ....'hen the present state is S_add and is eq ual to 0 whe n the pre sent slate is S_id/~ or SJhift. Th ese con- ditions can be specified by the equation where DCI is the D input of flip- flop 6 1' Simi lar ly. me D input of Go is DG4J = To Start + T2 Zero' Whe n de riving inp ut eq ua tions by inspection from the stare table. we can no t be sure mat the Boo lean functions have bee n simplified in the best possible way. (Sy nthes is tool s take care of th is detai l automatically.] In general , it is adv isabl e to analyze the ci rcuit 10 ens ure th at the eq uations derived do indeed produ ce the req uired state tran sitions. The logic diagram of the control circuit is drawn in Fig . 8.17(b ). It consists of a regi ster ....ith tw o flip-flops G , and Go and a 2 x 4 decoder. The ou tputs of the decoder are used to generate the inpu ts to the next -state logic as well as the control ou tputs. Tbe ou tpu ts of the co ntroller shou ld be connected to the datapath to acti vate the req uired regi ster ope ratio ns. One-Hot Des ign (One Flip-Flop per State) A noth er method of contro l logic des ign is the one-hoi assignment. which results in a sequential circuit ....-ith one ni p-flop per state. Only one of the flip-flops contains a I at any time: all others are reset to O. The single I propagates from one flip-flop to another unde r the control of decision logic. In suc h a config ura tio n. each nip- flop represents a Slate tha t is present only when the control bit is transferred to it. Thi s method use s the max imum number of flip-fl ops for the seq uen tial circ uit. For example . a seque ntia l circ uit with 12 states requires a mi nim um of four nip-flops. By co ntrast, with the met hod of one ni p-flop per state. the circuit req uire s 12 flip- flops. one for eac h sta te . At first glance. it may seem thai this method would Increase sys tem cost, since more flip-fl op s are used . But the method offers some advan tage s that may not be apparent. One ad vantage is the simplicity with which the logic can be designed by inspec tio n of the A SMD ch an or the state diagram . No stare or excitation tables are needed if D·type fli p-flops are employed. The onehot method offers a sa vings in design effort. an increase in ope ratio na l simplicity, and a possible de crease in the total number of gates . since a dec oder is not needed. The design procedure will be demonstrated by obtaini ng the cootrol circui t speci fied by the state diagram of Fig. 8.I6(a) . Since there art three stales in the state diagram. we choose three D ni pflops and label their ootputs Go- 6 ). andG2• corrrsponding lo S_wk . S_add. and S_shift. respectively. The input eq uations for setting each flip-flop to I are determined from the presen t slate and Sect ion 8.8 Control logic 38 1 the input condit ions along the corresponding directed lines going into the stale. For example. DGO. the input to flip-flop Go. is set to I if me machine is in stale Go and Start is nOI asserted. or if the machine is in state Gz and lira is asserted. The se conditions are specified by the input equation: DGo = Go Starr' + G2 Z ero In fact. the conditio n for setting a flip-flop to I is obta ined directly from the state diagram . from the condition specified in the dire cted lines going into the corresponding flip-flop state ML>ed with the previous flip-flop slate. If mere is more than one direc ted line going into a slate. all conditions must be ORed . Using this procedu re for the other three flip-flops. we obtain the remaining input equations: DGl = Go S tart tsca= + Gz Z ero' G, The logic diagram of the one-hot controller (with one flip-flop per state) is shown in Fig. 8.18. The circuit consists of three D flip-flops labeled Go through G2, together with the associated gates ~&;%i~ Start IV Read)' I?"I ;}t~~:: -If!!i-;iJ QIO} - W:~ =liY JP ! ~'4'l{:1' Z ero -j) , , il G. 0 D';::WA\ :{Sjjddf, "J,::'" ,,:.,:,): (S~hjft) ~1;iA~Fjti~';: ,...... ~:r,:R.rr ,t, , , FIGURE 8 .18 I G, '-: '6'j7.~iif: logIc diagram for one -hot state controller Loedregs ~ "1 ,'0'& A ddJl'gs Decr_P ~il L1>''''''j''?1{f,' d ock G, ~ Shl!/J fgs 382 Chapter 8 Desig n at the Register Transfer Level speci fied by the input equations" Initially. flip-flop Go mu st be set to 1 and all other flip-flops must be reset to O. so that the nip-flop representing the initial state is enabl ed. Thi s can be done by using an async hro nous pre set on flip-flop Go and an asy nchronous clear for the other nipflops. Once started , the controller with one flip-flop per stare will propagate from one state to the other in the proper man ner. Onl y one flip-fl op will be set to I with each clock edg e: all othe rs are reset to O. beca use the ir D inputs are equ al to O. 8 .9 HD L DESCR I PT IO N OF 8 1NARY MULTIPLIER A second example of an HDLdescription of an RTLdesign is given in HDL Examp le 8"5. The example is of the bin ary mu ltiplie r de signed in Section 8.7. For simplicity. the entire descri ption is " flattened" and encapsulated in one modu le. Comment s will identify the co ntroller and the data path . The first part of the description declare s all of the inputs and outputs as specified in the block diagram of Fig. 8.14(a) . The machine will be parameterized for a five-bit data path to enable a com pari"ion betwee n its sim ulation data and the result of the mul tiplication with the numerical example listed in Table 8.5. The same model ca n be used for a datapath having a different size merely by changing the val ue of the parameters . The second part of the descri ption declares all regi...ters in the contro ller and the dara path . as well as the one-hot encoding of the Slates. The third pan speci fies implicit comb inational logic (continuous assignment state men ts) for the concate nated register G4.Q. the am status signal. and the Ru Jd)" output signal. The continuous assignments for a m and R~ad}' are acco mplished by assigning a Boolean e xpre ssion to their "in' declarations. The next sectio n describes the control unit. using a single edge-sen siu ve cyclic beha vior to describe the state transition s. and a level-senslu ve cyclic behavior to descri be the co mbinatio nal logi c for the next state and the ou tputs. Again. note tha i defaul t assign ments are mad e to n~xt_slate. Load_"8S. D~cr_P. Add_" 8S. and Shifcngs. The subsequent logic of the CMe statement assi gns the ir value by exception. The state tran sitions and the output logic are written directly fro m the AS~m chan of Fig. 8.15(b J. The datapath unit describes the regi ster operations within a separate edge-sensiti ve cycli c behavior. {For clarit y. separate cycl ic behaviors are used ; we do not mix the descript ion of the datapa th with the desc ription of the controller.} Eac h control input is decoded and is used to specify the assoc iated operations. The addition and subtraction operations will be implemented in hard ware by combinational logic. Signal Lo(UC" 8S causes the counter and the othe r registers to be loaded with thei r initial values. etc. Because the controller and datapath have bee n partitioned into se parate units. the control signals completely specify the beha vior of the data pat h; explicit inform ation abo ut the state of the controller is not needed and is not made ava ilable to the dataputh unit. The nex t-state logic of the co ntroller includes a default case item to direct a synthesis tool to map any of the unused codes to S_jdf~. Th e default case item and the default assign ments preceding the cast' statement ensure that the machine will reco ver if it some how enters an unused state. They also prevent unintentional synthe sis of latche s. (Remember. a syn thesis tool will synthesize latches when what was intended 10 be comb inational log ic in fact fail s to completely spec ify the input-output function of the logic.) Section 8.9 HOt Description of Binary Multiplier 383 HDL Exam ple 8.5 module Sequential_Binary_Multiplier (Product. Ready, Multiplicand , Multiplier. Start, clock , reset_b); 1/ De fault configuration: five-bit datapath 1/ Set to width of data path parameter dp_width = 5; output Product; [2*dp_width - 1: 0] output Ready; Input Multiplicand, Mulliplier; Input Start , clock, reset_b; BC_size = 3; 1/ Size of bit counter SJdle = 3'b00 1, 1/ one-hoi code S_add = 3'b010 , S_Shifl = 3'b100; stale , next etete : A, B, O: If Sized for datapath paramet er parameter reg reg [2: OJ [dp_widlh -1: OJ c; reg reg [BC_si ze -1 : OJ P; reg Load_regs, Decr_P . Add_regs, Shift_regs; If Miscellaneou s com binational logic Product = (A , a}; Zero = (P == 0); If coun ter is zero 1/ Zero = - IP; 1/alternative Ready = (sla te == SJ dle); If controller status assig n wire w ire If control unit always @ (po sed ge clock , negedge reset_b) If (- reseCb) state <= SJdle; el se slate <= next_stale; alw ays @ (state . Start, 0[0], Zero) begin next_state = S_ id le ; Load_regs = 0: Oecr_P = 0: Add_ regs = 0; Shift_regs = 0: case (sta le) begin If (Slart) next state = S_add: Load_regs = 1; end SJdle: begin next_state = S_shift: Oecr_P = 1: If (0(0]) Add_regs = 1; end S_add : beg in Shift_regs 1; if (Zero) nexCstate = SJdle: S_ shift : els e next_Sla te = S_add ; end default: next_state SJdle; = = 384 Cha pter 8 Design at t he Register Tra nsfe r level endcase end 1/ datapath unit alw ays @ {posedge clock)begln if (Load_regs ) begi n P <= dp_widlh; A <: O; C <:0; B <= a Uul!;pl;cand: <'" M u lt ip l ie r : end If (Add_regs) {C. A} <= A + B; If (Shift_regs) {C. A. O} <= {C. A. O} » 1; if (Deer_PI P ( = P·1; end e ndmodu le Test Ing the Multiplie r HDl Example 8.6 shows a test bench for testing the multiplier. The inputs and outputss are the same as those shown in the block diagram of Fig. 8.14(a) . It is naive to conclude that an HDL description of a system is correct on the basis of the output it genera tes under the appli cation of a few input signals. A more strategic approach to testing and verification exploits the partition of the design into its datapath and control unit. Th is partition supports separate verificatio n of the controller and the datapath. A separate test bench can be developed to verify that the dataparh e xec utes each operation and genera tes status signal s correctly. After the daraparh unit is verified. the ne xt step is to verify thai each control signal is formed correctly by the control unit. A separate test bench can verify that the control unit e xhibits the complete functionalit y specified by the ASMD chart (i.e.• that it makes the cor rect state transitions and asserts its outputs in response to the external inp uts and the status signals). A verified control unit and a verified datapath unit together do not guarantee that the system will operate correctly. The final step in the design process is to integrate the verified models within a parent module and verify the functionality of the overall machine. The interface betwee n the controller and the datapa rb must be examined in order to verify that the pon s are connected correctly. For example. a mismatch in the listed order of signals may not be detected by the compiler. After the datapath unit and the control unit have been verified . a third test bench should verify the specified functionali ty of the complete system. In practice, this requires writing a comprehensive test plan identifying that functionality. For example. the test plan would identify the need to verify that the sequential multiplier asserts the signal Ready in state S_idle. The exercise to write a test plan is not academic: The quality and scope of the test plan determine the worth of the verification effort. The test plan guides the development of the test bench and increases the likelihood that the final design will match Its specification. Section 8.9 HOt Description of Binary Multiplier 385 Testin g and verifying an HDL mod el usually requires access to more info rmation than the inputs and outputs of the machine. Knowl ed ge of the slate of the co ntrol unit , the control signals, the status signals, and the intern al registers of the datapath migh t all be necessary for debugging. Fortunately, Verilog provides a mec han ism to hierarch ically de-reference identifiers so that any varia ble at any le vel of the design hiera rc hy can be visible to the test bench . Proced ural sta tements can disp lay the informat io n req uired [0 suppo rt efforts to debug the machine. Si mulators use thi s mech anism to display waveform s of any variable in the design hierarc hy. To use the mechanism . we refe rence th e variable by its hier arch ical path name . For exa mple. the reg ister P within the data path unit is not an outp ut pan of the mult iplier. bUI it can be referenced as MO.P. Th e hier archi cal path name consists of th e sequence of mod ule ide ntifie rs or bloc k names, separated by periods and spec ifying the location of the variable in the design hierarch y. We also note that simulators commonly have a graphica l user interface that displays all levels of the hier archy o f a design. The first te st be nch in HOL Ex ample 8.6 uses th e sys tem task $strobe to d isp lay the resu lt of the co mputatio ns . This task is sim ilar to th e $d isp la)' and $m on itor tasks explained in Section 4 . 12. T he $s t ro be sys te m tas k pro vides a synchronization me chani sm to ensure tha t data are di spl ayed onl y after all assignmen ts in a giv en time step are exe cuted. Thi s is very usefu l in sy nchro nous seq uential ci rcuits , wh er e th e time step begin s at a clo ck edge and m ul tipl e assig nme nts may occur at the same ti me ste p o f simulation. W he n th e system is synchro nized to the po sitive ed ge of the cl ock . using $st ro be afte r the always @ (p osedge clock) stateme nt ensures that the di splay sho ws value s of the sig nal aft er the clock pulse. The test bench modu le t_Seque ntia(]1ina1)'_Multip/ier in HOL Exam ple 8.6 in sta ntiates the modu le Sequential Binary_Multiplier of HDL Example 8.5. Both mod ules mu st be incl uded as source files when sim ulating the multiplier with a Verilog HDL sim ulator. The res ult of thi s simulation di sp lays a sim ulation log with num bers ide ntica l to the ones in Tab le 8.5. The code includes a second test bench to ex haustively multiply five-bit values of the multiplicand and the multi plier. Waveforms for a sample o f sim ulatio n result s are shown in Fig. 8. 19 . T he numeri cal values of Multiplicand. Multiplier. and Product are d isplayed in deci mal and bexadecim al formats. Insight can be ga ined by studying the di spl ayed waveforms of the control state. the control signals, th e status sig nals. and th e register operations. Enha nce ments 10 the multiplier and its test bench are co nsidere d in the problems at the end of th is cha pter. In th is exampl e, 19 10 X 2310 = 437 1 and 17H + Ob H = 02H with C = I. No te the need for the carry bi t. °' MDL Exam ple 8.6 /I Te st bench for the binary multiplier module t_Seque nliaL Binary_Multiplier; parameter dp_width = 5; II Set to width of oatapem wire [2- dp_width -1: 0] Prod uct ; II Output from multiplier wire Ready; reg (dp_wldth -1: 0] MUltiplicand, Multiplier, II Inputs 10 multiplier reg Start. clock , re set_b; 386 Chapter 8 Desig n at the Register Transfer Level 6,51)15 , ~I dad n _ ..b SIan , J/(Jl~{2: 01 1 , , 1 1 4 12 1 4 12 14 , 2 1 = Lc<Jd-,~gJ ~ 'io.. D~crY Add_r~gs = ~ ShiftJ~gs 0 P{1: 0{ ~ ~ ~ ~ ~ ~~ ~ =' ~ , 3 4 z I I s 0 1 '-- Zm ~ ':=".. I. 8 /4: 0/ l odl OO I 17 A{4: OJ 0/> ,nit . C :$.~ 0' Q/4: 0{ 13 t- 17 } 11 I Oc I .. 18 I .-. I 19 M llffipfinvuJ/ 4: 0/ I. I 17 M lIllip/icafld{4: O{ 22 1 ( 21)-- 16 I ().I 0/ 13 MlIllipli~r/": 0/ I. PrQdUCl/ I): 0/ I" ProduCl/ l): 0/ '" R~ady 013 I. 23 13 18 <, IJ9 55' 278 Simulation wavefo nns for one-hot sta te controller ts <, II b- FIGURE 8 .19 00 1 u 22, = OJ I 179 059 '55 377 l ib . <, MlIllipli~r{4: 2 ~ ~ lb5 875i(JJ7 013 I. ..r--L- I, Section 8.9 HDl Description of Binary MUltiplier 387 II Instantiate multiplier SequenliaL Binary-Mulliplier MO(Product, Ready, Multiplicand, Multiplier, Start, clock, rese,-b); II Generate stimulus waveforms Initial #200 $f1nls h ; Initia l begin Start = 0; reset_b::: 0; #2 Start = 1; reseC b ::: 1; Multiplicand = 5'b10111; MUltiplier = 5'b10011; #10 Start ::: 0; end Initial begi n clcck e 0; repeat (26) #5 clock = - ciock: end 1/Display results and compare with Table 8.5 always @ (posedge Clock) $st robe r C=%b A=%b O=%b P=%b time=%Od",MO.C,MO.A,MO.O,MO.P, $tlm e); endmodule Simulation log: C=O A=ooooO 0=1 0011 P=101 time=5 C=O A=10111 0 =1001 1 P=100 Ijme=15 C=O C=1 C=O C=O C=O C=O A=01011 A=00010 A=10001 A=10001 A =01000 A=01000 0 =11001 0= 11001 0 =01100 0=01100 0= 10110 0=10110 P=100 P=011 P=011 P=010 P=010 P=001 time=25 lime=35 time=45 lime=55 time:::65 lime=75 C=O A=001 00 0=01 011 P=001 time=B5 C=O C=O C=O C=O A=11011 A=01101 A=011D1 A=01101 0 =01011 0= 10101 Q::: 10101 0:::10101 P=OOO time=95 P=OOO tlme=105 P=OOD time=1 15 P=OOO time=125 r Test bench for exhaustive simulation module t_Sequential_Binary_Multiplier; parameter dp_wldth = 5; Product; wir e f2 * dp_width -1: OJ wire Ready: Multiplicand, Multiplier; reg [dp_width ·1: OJ reg Start, clock, reset_b; II Width of datapath 388 Chapter 8 Design at the Register Transfer Level SequentiaLBinary_Multiplier MO (Product, Ready. Multiplicand. Multiplier, Start, clock . reset_b ); Ini ti al #1030000 Sflnlsh ; end Initial beg in dock = 0 ; #5 forever #5 clock = Initial f ork reseC b = 1; #2 reseCb = 0 ; #3 reset_b = 1; joi n Ini ti al begi n #5 Start = 1; end Init ial beg in #5 Multiplica nd = 0 ; Multiplier'" 0 ; repeat (32) #10 begin Multiplie r Multip lier + 1; repeat (32) @ (posedg e MO.Ready) 5 Multiplicand '" Multiplicand + 1: -cocc = end end endmodule "/ Behavio ral Description of a Paralle l Multiplier Structural modeling implicitly specifies the functionality of a digital machine by prescribing an interconnect ion of gate-level hard ware units. In this fonn of mode ling , a syntbesis tool performs Boolean optimization and translates the HD L description of a circuit into a Mdist of gate s in a particular technology, e.g ., CMOS. Hard ware design al ibis leve l often requires clevemess and acc rued experience. It is the most ted ious and detailed form of modeling. In contrast, behavioral RTL modeling speci fies functi onality abstractl y, in terms of HDL operators. 11K: RTI. mode l does not specify a gate-level implementation of the registers or the logic to control the operations that manipulate their conrents-c-rhose tasks are acco mplished by a synthesis too l. RTL modeling impli citl y sched ules operations by eltplic itly ass igning the m 10 clock cycles. The most abstract form of behavioral model ing describes only an algorithm. withou l any referen ce to a physical implementation , a set of resources. or a schedule for the ir use. Thus. algorithmic modeli ng allows a designer 10 explore trade-o ffs in the space (hard ware ) and lime domai ns, trading processing speed for hard ware complexity. HDL Example 8.7 prese nts an RTL model and an algorithmic model of a binary mu ltiplier. Both use a level-sensitive cyclic be havior. The RTI.. model expresses the fu nctionalit y of a multipli er in a single statement. A synthesis tool will associate with the multiplication ope rator a gate -level circuit equivalent to thai shown in Section 4.7. In simulation. when either the multiplier or the multiplicand chang es, the produ ct will be updat ed. The time required to form the prod uct will depe nd on the propagation delays of the gales available in the library of standard cells used by the synthesis tool. The socood model is an algorithmic description of the multiplier. A sy nthesis tool wiU unroll the loop of the algorithm and infer the need for a gale-level circuit equivalent 10 thar sho wn in Section 4.7. Section 8.9 HDl Description of Binary Multiplier 389 Be aware thai a synthesis tool may not be able 10 synthesize a given algorithmic descrip tion. even though the assoc iated HDL mod el will simulate and produce correct res ults. One d iffic ulty is that the sequence of operations implied by an algorithm might not be physicall y realizable in a single cloc k cycle. It then beco mes necessary 10 distribute the operatio ns o ver multip le clock cycles . A 1001 for synthesizing RTL logic will not be able to automatically acco mplish the req uired distri bution of effort. but a tool that is designed to synthesize algorithms should be successfu l. In effect. a behavior al synthesis tool wou ld have to allocate the regis ters and adde rs to impleme nt multipl ication . If only a single adder is to be shared by all of the operations that fonn a partial sum, the activity must be distributed over multiple clock cycle s and in the correct sequence. ultimately lead ing 10 tbe sequential binary multiplier for whic h we have ex plicitly designed the co ntroller for its datapath. Behavioral synthesis tools require a d ifferent and more sophisticated style of modeling and are not within the scope of this text. HDL Ex a mp le 8.7 /I Behavioral (RTl ) description of a parallel multiplier (n = 8) modut e Mult (Product, Multiplicand. Multiplier); inp ut [7: OJ MUltiplicand, Multiplier; output reg (15: OJ Product; always @ (Multiplicand, Multiplier) Product = Multiplicand · Multiplier; endmodule modul e Algorithmic_Binary-Multiplier #(parameter dp_width 5) ( output 12°dp_width -1: OJProduct. input (dp_width -1: OJMUltiplicand, Multiplier); A, S, 0 ; /I Sized for datapath reg [dp_width -1: 0] reg C; Integer k; assig n Product = {C, A, O}; alw ays @ (Mulliplier. MUltiplicarcl) begin o = Multiplier; B = Multiplicand; C =0; A = 0; for (k = 0; k <= dp_width -1; k = k .. 1) begin If (O(OJI (C, A) A + 8; {C. A, 0 ) {C. A. O}» 1; = = = end end endmodule module L Algorithmic_Binary_Multiplier; /I Width of datapath parameter dp_width = 5; Product; wi re 12' dp_width -1: OJ reg Idp_width -1: OJ MUltiplicand, Multiplier; integer Exp_Value; 390 Chapter 8 Design at the Register Transfer Level reg Error; Algorit hmic_ Binary_Mul liplier MO (Prod uct. MUlt iplicand , Mu ltiplier); II Error detection inItial # 103000 0 fin ish ; alwa ys @ (Product) begin Exp_Value = Multiplier · Multiplicand; 1/ Exp_Value = Mu ltiplier · Multiplicand +1; II Inject error to confirm detection Error = Exp_Value A Product; end II Generate multiplier and multiplicand exh austively for 5 bit operands initia l begin #5 Multipl icand = 0 ; MUltiplier = 0 ; repeat (32) #10 begin Multip lier = Multiplier + 1; rep eat (32) #5 Multiplicand = Multiplicand + 1; end end endmodule 8 . 10 DESIGN WITH MULTIPLEXERS The seq uence-register-and-decoder scheme for the des ign of a controller has three parts : the flipflops thai hold the binary stale value. the decoder that generates the control outputs. and the gates th ai determin e the nex t-stare and ou tp ut signals. In Sect ion 4 . 11. it was shown that a co mbinational circu it can be implemented with multi plexers in stead o f indiv idual gates. Rep lacing the gates w ith multiplexers results in a regular pattern of three levels o f components. The first level consists of mu ltip lexers thai determin e the next stare of the regi ste r. The second level contains a regi ster that hold s the present binary slate. The third level has a dec oder that asserts a unique outputline for eac h control stale. These three compone nts are prede fined standard ce lls in many inte gra ted ci rcuits. Consider. for examp le, the AS M chart of Fig . 8.20. co nsis ting of four states and four co ntro l inputs. We are interested in only the co ntrol signals gove rning the state sequence. These signals are independ ent of the reg ister operations of the darapath. so the edges of the gra ph are not annotated with datapath regi ster operations, and the graph does not identify the output signal s of the co ntroller. The binary assignment for each state is indicated at the upper right co m er of the state boxes. The deci sion boxes specify the state tran sitions as a function of the four control inpu ts: IV,.t. y. and z. Th e three-le vel contro l imp lem entat ion , shown in Fig . 8.2 1. co nsists of IWO mult iplexers, MUXI and MUX2; a regi ster with two flip-flops. G ) and Go: and a decoder with four outpuls--d()o d" d 2• and dJ• correspo nding to 5_0, 5_ 1,5_2. and 5_3. respectively. The outputs of the state-register nip-flops are applied to the decode r inputs and also to the selec t input s of the multiplexers. In this way. the pre se nt state of the register is used to select one of the input s from each mu ltiplexer. Th e OUtpUISof the mu ltiplexers are then app lied to the D inputs of G l and Go. The purpose of eac h mu ltip lexe r is to produce an inpu t to its cor responding flip-fl op equal to the bin ary value of that bi t of the next-state vector. The inputs of Section 8.10 Design wi th M ultiplexers 391 10 ,-" • , o o FIGURE 8 .20 Exam ple of ASM chart with four control inputs the mu ltiplexer s are determined from the decision boxes and state transitions give n in the ASM chart. For example. slate 00 stays at 00 or goes to Ol , depending on the value ofi npul w. Since the next state of G ] is 0 in eithe r case, we place a signal equivalent to logi c 0 in MUX l input O. Tbe nex t stale of Go is 0 if w "" 0 and 1 if w "" 1. Since the next stale of Go is equal to w, we apply CORICOI input w to M UX2 input O. This means that when the select inputs of the multiplexers are equal to pre sent state 00, the outputs of the multiplexers provide the binary value that is transferred to the re gister at the next clock.pulse . 392 Chapter 8 Design at the Register Transfer Level G, , z do d, MUX select d, d, G, ,y eL K FIGURE 8.21 Con trol lmpleme ntatlon with multip lexers To facilitate the eva luation of the mul tiplexer inputs , we prepare a tab le show ing the input conditions for eac h possible state transition in the ASM chan. Table 8.8 gives this information for the ASM chan of Fig. 8.20. There are two trans itions from presen t state 00 or 01 and three from present state 10 or 11. The sets of tran sitions are separated by horizontal lines acro ss the table. The input conditions listed in the table are obta ined fro m the deci sion boxe s in the AS M chan. For example. from Fig. 8.20, we note that present Slate 0 1 will go to next state 10 if x "" I or to next stale II if x "" O. In the table, we mark these input co nditio ns as x and .e'. respecti vely. The IWO co lumns under " multiplexer inputs" in the table specify the input values that must be applied to M UX I and MUX2. The multiplexer input for eac h pre sent slate is de termined from the input co nditions when the next state of the flip-flop is eq ual to I. Thus. after present state 01. the nex t stale of G l is always eq ual to I and the next state of Go is equal 10the complement of x. Therefore. the input of M UX 1 is made eq ual 10 I and thai of MUX2 to x ' whe n the present state of the register is 0 1. As another exam ple. afte r prese nt stale 10. the next stale of G ] must be equal to I if the input co nditions are yz ' or yz. When these two Boolean terms are O Red together and the n simplified. we obtain the single binary varia ble y. as indicated in the table. The next sta te of Go is equal 10 I if the inpul conditions are JZ "" I I . If the next state of G 1 remains at 0 after a given prese nt state. we place a in the multiplexer input, as,shown in present state 00 for MUXl . lfthe next stale ofG I is always I , we place a I in the multiplexer input, as shown in prese nt state 0 1 for M UX I. The other entries for M UX I and M UX 2 are deri ved in a sim ilar a Sect ion 8.10 Design wit h Multiplexers 393 Table 8 .8 MultJplexer Input Conditions Present State Next Stat e Input Conditi on , G, Go G, G. 0 0 0 0 0 0 0 I w' 0 0 I I I I 0 I x x' I 0 I I 0 0 I y' YZ I I 0 0 0 I I I I I I 0 I I I 0 I y'Z Y y'Z' I Inputs MU Xl MUX2 0 w w y, x' )'Z' + yz = y )' + y'z ' = Y + Z' " y'z + y'Z' = y' manner. The multiplexer inputs from the table are then used in the control implementation of Fig. 8.2 1. Note that if the next state of a flip-flop is a function of two or more control variables. the multiplexer may require one or more gates in its inp ut. Otherwise. the multiplexer input is equal to the contro l variab le. the com plement of the control variable. O. or I. Design Example: Count the Number of Ones In a Register We will dem onstrate the mulliplexer implementation of the logic for a control unit by means of a design examp le-a system that is to count the number of l 's in a word of data. The example will also demonstrate the formulation of the ASMD chan and the impleme ntatio n of the datapath subsys tem. From amo ng various alternative s, we will co nsider a o nes counter consisting of two registers Rl and R2. and a flip-flop E. (A more effic ient implementation is cons idered in the problems at the end of the chapte r.) Th e system cou nts the num ber of I 's in the numbe r loaded into register RJ and sets register R2 to that numbe r. For exam ple. if the binary numbe r loaded into RJ is 1011100 1, the circuit counts the five I's in RJ and sets register K2 to the binary count 101. This is done by shifting eac h bit from register RJ one at a time into flip- flop E. The value in E is checked by the control, and eac h time it is eq ual to 1. register R2 is increme nted by I. The block diagram of the datapath and co ntroller are shown in Fig. 8.22(a). Th e datapath conta ins registe rs RJ, R2, and E, as well as logic to shift the leftmos t bit of RI into E. The unit also co ntains logic (a NO R gate to detect wheth er RI is O. but that detail is omitted in the figure ). The exte rnal input signal Stan launches the operation of the machine ; Ready indicates the status of the machine to the exte rnal environme nt. The contro ller has SIaIUS input signals E and Zero from the datapat h. These signals indicate the contents of a register holding the MSB of the data word and the condition that the data wo rd is O. respec tively. E is the output of the flip-flop. Zero is the output of a circuit that checks the contents of register RI for all D's. The circuit produces an output Zero = I when RI is equal to 0 (i.e .• when RI is empty of 1's). 394 Chapter 8 Design at the Register Transferlevel $ignals ~ E Zm -= ,- Start Rt ad, I f Lom/ftI> Corurolln Shift-*ft "-""" RJ f I I ;"f n~ft~ f IncrJU ,t I I count ( oj = -r- Rl < -R1 +1 Rl < -R1+ 1 f {E. Rll <- IE. Rll « I --= (bJ fiGURE 8.22 Block diagram and ASMD chart tot' count-ot-onf!S circuit Section 8.10 Design with Multiplexers 395 A preliminary ASMD chan showing the state sequence and the register operations is illustrated in Fig. 8.22(b), and the complete ASMD chan in Fig. 8.22(c). Asserting Start with the controller in Lidle transfers the state to S_I , concurrently loads register Rl with the binary data word, and fills the cells of R2 with I' s. Note that incrementing a number with all t 's in a counter register produces a number with all D's. Thus. the first transition from 5_1 to 5_2 will clear R2. Subsequent transitions will have R2 holding a count of the bits of data that have been processed. The content of R I, as indicated by Zero, will also be examined in 5_1. If RI is empty, Zero = I, and the state returns to 5_idle, where it asserts Ready. In state 5_1, Incr_R2 is asserted to cause the datapath unit to increment R2 at each clock pulse. If Rl is not empty of ls, then Zero = 0, indicati ng that there are some l 's stored in the register. The number in RI is shifted and its leftmost bit is transferred into E. This is done as many times as necessary, until a I is transferred into E. For every I detected in E, register R2 is incremented and register Rl is checked again for more I 'so The major loop is repeated until all the l ' s in Rl are counted. Note that the state box of 5_3 has no register operatio ns, but the block associated with it contains the decision box for E. Note also that the serial input to shift register Rl must be equal to 0 because we don't want to shift external I 's into Rl . The register Rl in Fig. 8.22(a) is a shift register. Register R2 is a counter with parallel load. The multiplexer input conditions for the control are determined fro m Tabl e 8.9. The input conditions are obtained from the ASMD chart for each possible binary state transition. The four stales are assigned binary values 00 through 11. The transition from present state 00 depends on Start. The transition from present state 0 1 depends on Zero, and the transition from present state I I on E. Present state 10 goes to next state 11 unconditionally. The values under MUX 1 and MUX2 in the table are determined from the Boolean input conditions for the next state of G 1 and Go, respectively. The control implementation of the design example is shown in Fig. 8.23. This is a three-level implementation. with the multiplexers in the first level. The inputs to the multiplexers are obtained from Table 8.9. The Verilog description in HDLExample 8.8 instantiates structural models of the controller and the datapath. The listing of code includes the lower level modules Ta bl e 8 .9 Multiplexer Input Conditions for Design Exam ple Present State Next State G, G. G, G. 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 I 0 I I 1 I I I I 0 0 I 1 Input Conditions Start' Stan Zero Zero' None E' E Multiplexer Inputs M UXl M UX2 0 Stan Zero' 0 I E' E 396 Chapter 8 Design at the Reg ister Transfer level o Ze rQ' £' 5hifUe/t Sian o £ d=k ~===~ l..'::5 ""'-:.J reset ]» FIGURE 8 .23 Control Implementation for count-of-o nes circuit implementing their structures . Note tha t the data path unit does not have a reset signal to clear the reg isters. but the mod els for the flip-flop , shift register. and cou nter have an active-low reset. Th is illustra tes the use of Verilog data type su pply ) to hard wire those ports to logic value I in their instantiation within Datapath_STR . Note also that the test benc h uses hierarchical dereferencing to acces s the stale of the controller to make the debug and verification tasks easie r. with out having to alter the modu le ports to provide acce ss to the internal signals. Another detail to observe is that the serial input to the shift regi ster is hardwired to O. The lo wer level mode ls are described behaviorally for simplic ity. HDL Exam ple 8.8 m odule Coull t_Ones_STR_STR (count. Ready, data , Start. dock. reset_b); /I Mux - decoder implementation of control logic /I controller is structural /I datapath is structural = = paramet er R1_size 8, R2_size 4 ; [R2_size -1: OJ count; output Ready; output Section 8 .10 Input [R1_size -1: 0] Input w ire Design with Multiplexers 397 data; Start, clock , reset_b ; load_regs , ShiftJ eft, Incr_R2, Zero, E; Controner_STR MO (Ready , Load_regs. ShiftJ eft, Incr_R2 , Start, E , Zero, clock , reset_b); Datapath_STR M1 (cou nt, E, Zero , data, l oad_regs, ShiftJeft, Incr_R2, clock) ; end m od ule module Conlro ller_STR (Ready , Load_regs, ShiftJ eft, Incr_R2 , Start, E, Zero, clock, resel_b); Ready; output Load_regs, ShiftJ eft , tncr_R2 ; output Slart ; Input E, Zero; Inp ut In put clock, resetb: GND; su pp ly O s upp ly 1 PWR ; SO = 2'bOO, Sl = 2'b0 1, S2 = 2'b10, S3 = 2'b11; fI Binary code par ameter Load_regs, ShiftJeft, Incr_R2 ; wir e GO, GO_b, D_inO, D_in1, G1, G1_b ; wir e Ze ro_b = -zero: wire wi re E_b = -E; select = {G1 , GO}; wi re [1: 0] Decoder_out; wire [0: 3] Ready:= - Decoder_oul [O]; assig n Incr_R2 = - Decoder_out(l ]; assig n Shift_le ft -Decoder_oul[2 }; assign (Load_regs , Ready, Start); . nd Mux_l (DJn1, GND, Zero_b , PWR , E_b, select); mux_4xl _beh MUx_O (DJnO, Start, GND, PWR, E, select) ; mux_4x 1_beh (Gl , G1_b, D_in1 , cloc k, reseC b); D_fIip_f1op_AR_b (GO, GO_b, DJ nO, clock, resel_b ); D_fl ip_f1op_AR _b MO (Decoder_out, G l , GO, GND ); M2 decoder_2x4_df = M' endmod ule module Datapal h_STR (count, E, Zero, data, Load_regs, ShiftJeft, Incr_R2, cloc k); parameter R 1_size:= 8, R2_ size = 4; output [R2_size -1: 0] count; E, Zero; ou tput data; Input (R1_size -1: 0] Load_regs, ShiftJeft , Incr_R2 , clock ; In put 398 Cha pter 8 Design at t he Registe r Transfer level w ire (R1_size -1: OJ w ire supplyO supply 1 assi gn Zero = (R1 == 0); Shift_Reg M1 Counter M2 M3 D_f1ip_f1op_AR and R1: Zero; Gnd; Pwr; /I implicit combinational logic (R1, data, Gnd, Shift_left, l oad_regs, clock, Pwr); (count, l oad_regs, Incr_R2, dock, Pwr); (E, w1, clock, Pwr); (w1, R1(RC size -1], Shift_left); endmod ule module Shift_Reg (R1, data, SI_O, Shift_left, l oad_regs, dock, reset_b); parameter R1_size = 8; (R1_size -1: OJ R1; out put input (R1_size -1: OJ data: Input SI_O, Shift_left, Load_regs; clock, reset_b; inp ut R1 : reg [R1_size -1: OJ always @ (posedge clock, negedg e reset_b) if (reset_b == 0) R1 <= 0: else begin If (l oad_regs) R1 <= data; else If (ShiftJ eft) R1 <= {R1(R1_size -2: OJ, SI_O}; end endmodule module Counter (R2, l oad_regs, Incr_R2, d ock, reset_b); parameter R2_size = 4; output [R2_size -1: OJ R2; input l oad_regs, Incr_R2; Input clock, reseCb; reg (R2_size -1: OJ R2: always @ (pose dge clock, negedge reset_b) If (reset_b == 0) R2 <= 0; 1/ Fill with 1 else if (l oad_regs) R2 <= (R2_size (1'b1)}; else if (Incr_R2 == 1) R2 <= R2 + 1; endmodule module D_f1ip_f1op_AR (0 , D, ClK, RST); 0; output Input D, ClK, RST; reg 0; always @ (po sedge c tx, negedg e RST) if (RST == 0) a <= 1'eo: else Q <= D; endmod ule Section 8.10 Design with Multiplexers module D_f1ip_f1op_AR_b (a, O_b, D, Cl K, RST); output O,O_b; input D, ClK, RST; reg 0; assign O_b = - 0 ; alwa ys @ (posedge ClK, negedge RST) jf (RST == 0) <= 1'bO ; else <= D; endmodule 1/ Behavioral description of four-to-one line multiplexer 1/Verilog 2005 port syntax module mux_4x1_beh (output reg m_out, Input in_O, in_1, ,"_2, ,"_3, Input [1: 0] select ° ° ); always @ (in_O, in_1, in_2, in_3, select) 1/ Verilog 2005 syntax case (select) 2'bOO: rn_out = in_O; 2'b01: m_out = in_ 1; 2'b10: m_out = in_2; 2'b11: m_out = in_3; endease endmodule II Dataflow description of two-to-four-Iine decoder 1/ See Fig. 4.19. Note: The figure uses symbol E, but the /I Verilog model uses enable to indicate functionality clearly. module decoder_2x4_df (D, A , B, enable); output [0: 3] D; input A, B; Input enable; assign D[O] = -(- A & -B & - enabte). D[1] = - (- A & B & -enable), D[2] = - (A & -B & - enable), D[3] = - (A & B & -enabie): endmodule module CCount_Ones; param eter R1_size = 8, R2_size = 4; wire [R2_size -1: 01 R2; wire [R2_size ·1: 0] count; 399 400 Chapter 8 Design at the Reg ister Transfer Level wire Ready; data; Start. d ock. reset_b; wire [1: 01 state; " Use only for debug assign state e {MO.MO.G1. MO.MO.GO}; CounCOnes_STR_STR MO(count Ready, data, Start, dodt. reset_b ); Initia l #650 $fin lsh ; Initial beg in clock e 0; #S forever #5 clock = - clock: end Initia l for k #1 reseC b = 1; #3 reseCb = 0; #4 reseCb = 1; #27 reset_b = 0; #29 reset_b = 1; #355 reset_b = 0; #365 resel_b = 1; #4 data = 8'Hff; # 145 data = 8'haa; #25Start= 1; # 35 Start = 0; #55 Start = 1; #65 Start = 0; #395 Start = 1; #405 Start = 0; join endmodule reg reg (R1_size -1: OJ Test Ing the Ones Counter The test bench in HDl Example 8.8 was. used to produce the simulation results in Fig. 8.2.1. Annotati on s have bee n added for clarification. In Fig. 8.2.s(a). r~u,-b is togg led low at t = 3 to driv e the co ntroller into S_jdl~. but with Start not yet having an assigned ..-al ue. (The default is x.) Consequentl y. the controller enters an unknown state (the shaded waveform) at the next clock. and its output s are unknown . When reu,-b is asserted (low) again at t = 27, the state enters S_id/e. Then, with Start = I at the first clock after Teset_b is deasserted, (I ) the controller enters S_ I, (2) Load_Tegs causes Rl lo be set 10 the value of data , namely, 8' Hff, and (3) R2 is filled with 1' 5. At the next clock, R2 starts counting from O. Shift_left is asserted while the controller is in state 5_2. and incr_R2 is asserted while the controller is in stale 5_ 1. Notice that R2 is incremented in the next cycle after incr_R2 is a..serted . No output is asserted in stale 5_3. The counting sequence continue s in Fig. 8.2.s(b) until am is asserted, with E holding the last I of the data word. The next clock produces count = 8, and stare returns to S_idl~ . (Additional testing is addre ssed in the problems at the end of the chapter.) Section 8.11 ,e5el_b asserted (lo w). but Sian un kno wn 0 Name l Race-Free Design 401 M achine begins counting 3D -: 60 120 90 ~ J'-~ ...rL...rL...rL...rL u '" clock ' enoc b Stan Zero '-- E slate/I: 0/ statrll] 5lale/OJ ~ ~ Ready L oadJegs Shjftjeft IncrJU ~ dala/ 7: OJ R I/7: 0J E R2/3: OJ count/3: 0/ 0 I / R2 fi lled with Is \ Rl loaded wilh data (,) FICiURE 8.24 Simulat ion waveforms for cou nt -of-ones circuit 8 .11 RACE -FREE DESIGN Once a circuit has been synthesized, either manual ly or with tools. it is necessary 10 verify that the simulation results produ ced by the HDL behavioral model match those o f the netlist of the gates (standard cell s) of the physical circuit. It is important to resolve any mismatch, because the behavioral model was presumed to be correct. There are various potential sources of mismatch between the results of a simulation. but we will consider one that typically happens in HDL-based design met hod ology. Th ree realities contribute to the potential probl em : (I ) A physical feedback path exists between a datapath unit and a control unit whose inputs include status signals fed back from the datapath unit; (2) bloc ked procedural assignments execute immediately, and behavioral model s simulate with 0 propagation del ays., effectively creating immediate changes in the outputs of combinational logic when its inputs change (i.e., changes in the inputs and the outputs are scheduled in the same time step of the simulation); and (3) the 402 Chapter 8 Design at the Register Transfer l evel Rl is empty of Is clock "sel_b -. ISO 120 Name Machin.. returns to S_idle 240 \ "!" ~ -. \ Start Ze ro E state{1: 0j stat..{l j stat..{Oj Ready LoadJ ..gs ShifUef/ h ie' _R2 Compuwrio1/.S a" don.. 2 1 ) 1 2 ) F:-..rL-J l:::: daraf7: 0j I L-J 2 ) I 1 ) 2 ) \ I .--::; aa ro J.. ffi eo SO ctl 00 , E R2{3: OJ coun/{3: 0/ 0 ~ ff R/{7:0j 2 ~~ ~ 2 ) 4 2 ) 4 5 5 6 6 7 7 s / / 1f2 holds numb .., of Is (b) FIGURE 8 .24 (Co nt inued ) order in which a simulator executes multiple blocked assig nments 10 the same variable at a given time step of the simulation is indeterminate (i.e.• unpredictab le ). Now con sider a seque ntial machine with an HDL model in which all ass ignments are made with the blocked assignment oper ator. At a clock pulse. the register operations in the datap ath, the state transitions in the controller, the updates of the next state and output logic of the controller. and the updates to the status signals in the datapath are all scheduled 10 occur at the same time step of the simulation. Which executes first? Suppose that when a clock pulse occur s. the state of the controlle r changes before the reg ister operations execute . The change in the state cou ld change the outputs of the control unit. The new values of the o utputs would be used by the datapath whe n it finally exec utes its assignments at that same clock pulse. The Section 8.12 Lat ch-Free Design 403 result might not be the same as it would have been if the data pat h had executed its assignmem s before the co ntrol unit upda ted its state and outputs. Co nversely, suppose that when the cloc k pulse occurs. the datapath unit execu tes its operations and updates its stat us sig nals tirst . The updated status signals could cause a change in the value of the next state of the con troller. which wo uld be used to update the state . The result could differ from that which would res ult if the stale had been updated before the edge-se nsi tive operations in the da tapath executed. In either ca se. the timing of register transfer operatio ns and stale transi tion s in the different rep resentatio ns of the sys tem might not match . Fortunately. there is a solution to thi s dilemma. A designer can eliminate the softwa re race conditions ju st described by observing the rule of modeling combinational logic with blocked assignments and modeling state tra nsitions and edge-sensitive regi ster operatio ns with nonblocking assign ments. A software race can not happen if nonb lockin g ope rato rs are used as shown in all of the examples in this text . because the samp ling mechani sm of the nonbl ocking operator breaks the feedback path between a state tra nsition or edge -sensitive datapath operation and the combinatio nal logic that forms the next state or inputs 10 the registers in the datapath unit. Th e mechani sm does this because simula tors evaluate the expressions on the right -hand side of their nonblocking assignment statements befo re any blocked assignmen ts are made . Thus. the nonblocking a...signmen ts cannot be affected by the resul us o f the blocked assignments. In sum. always use the block ing operator to model combinational logic. and use the nonblocking operator to model edge -sensitive register operations and state tra nsitions. It also might appear that the physical struc ture of a datapath and the controller together create a physical (i.e.• hardware ). race condition. because the status signals are fed back to the controller and the outputs of the controller are fed forward to the datapa th. Howe ver. timing analysis can verify that a change in the output of the controller will not propagate through the datapath logic and the n through the input logic of the contro ller in time to have an effect on the out put of the co ntrolle r until the next cloc k pulse. The stale can not update unti l the next edge of the clock. even though the status signals updat e the value o f the next state. The flip-flop cuts the feedback path between clock cycles. In practice. timing analysis verities thaI the circuit will operate at the specified clock freque ncy. or it identities signal paths whose propagation delays are problematic . Remember the design must implement the correct logic and operate at the speed prescribed by the clock. 8 .12 LATCH -FREE DESIGN Continuo us assignments model combi natio nal logic implicitly. A feedback-free continuou.s assignment will synthesize to comb inational logic. and the input-output relationship of the logic is automatically sensitive to all of the inputs of the circuit. In simulation. the simulator mon itors the right -hand sides of all conti nuo us ass ignments. detects a change in any o f the referenced variable s. and updates the left-hand side of an affected ass ignment statement. Unlike a continuous assignme nt. a cyclic behavior is not necessarily com pletely sensitive to all o f the variables tha t are refe renced by its assignments statements. If a level-sensitive cyclic behavior is used to descri be combinational logic. it is essential tha t the sensi tivity list incl ude every 404 Chapter 8 Design at t he Registe r Tran sfer level vari able that is refer enced on the left-hand side of an as signme nt statement in the be havior. If the list is incomplete, the logic de scribed by the beh avior will be sy nthes ized wi th latches at the ou tputs of the logic . This implementation wastes silicon area and may ha ve a m ism atch betwee n the simulation of the be hav ioral mod el and the synthes ized circuit. These diffi culties can be avo ided by en suring that th e sensitivity list is complete . but. in large ci rcuits , it is easy to fail to include every referenced vari able in the sens itivity list of a level-sen sitive cyclic be ha vior . Conseq uently. Verilog 2001 incl uded a ne w ope rator to reduce the risk of acc iden tall y sy nthes izing latches. In Verilog 200 1. the tokens@ and " can be co mbi ned as@·or @(·)and areusedwith out a sensitivity list to ind icate that exec ution of the assoc iated stateme nt is sens itive to every vari ab le that is refere nced on the right-hand side of an assignment statement in the log ic. In effect. the ope rator @. ind icates that the logic is 10 be interpreted as level-se nsitive comb ina tional logic ; the logic has an imp licit sensitivity li!'. t composed of all of the vari able!'. that are referenced by the proc ed ural assignments . Using the @. ope rator wi ll pre vent acc iden tal synthesis of latches. IID L Example 8.9 The following level-sensitive cyclic behavior will synthesize a two-channel multiplexer. modu le mux_2_V2001 (output reg 131: OJ y. lnput [31: OJ a. b, Input sel); alway s @" y =sel ?a: b; endmo du le The cyclic behavior has an implicit sensitivity list consisting of 8 . 13 a. b. and sel. O T HER LANGU A G E FEATURES The examples i n this text have used only those featu res of the Verilog HDL that are appropriate for an introd uctory co urse in logic design. verilog 2001 contains featu res that are very useful to designers. but which are nor considered here. Amon g them are mult idimen sional array s. varia ble pan selects. array bit and pan selects. signed reg, net. and pan declaratio ns. and local parameters. These enhancements are treated in more adv anced texts using Verilog 2001 and Verilog 2005. PR0 8 L EM S Ans.....ers 10 problems marked with · appear at the end o f the book. 8 .1 · Explain in ..... ords and .....rite HDL statements for the operations specified by the following register transfer notation: (a) R2 --R2 + I. R I -- R {b ) R.J-R.J - J (c ) If (SI = J) then (RO-- Rl) else if (S2 Zf 1) Ihen (RO- R2 ) Problems 405 8 .2 Dra w ( I) a bloc k diagram shewing the controller. da tapath unit (with internal registers). and signals, and (2) the port ion of an ASMD chart startin g from an initial sta te. There are two con trol signals: x and y, If .ry = 01. register R is incremented by 1 and control goes to a second state. If .ry -= 10. registe r R is cleared to zero and co ntrol goes from the initial state to a third state. Otherwi se. control stay s in the init ial state. Ass ume active-low synchronous reset. 8 .1 Dra w the AS MD charts for the follow ing state transitions: (a) If x = I. contro l goes from state SI to state 52; if x = O. generate a conditional operation R < = R + 2andgo fromSl toS2' (b) If x = I. control goe s from 5 1 to 52 and then to 53; if x = O. control goes from 5 1 to 53' (c) Sta rt from state5 J ; the n if xy = 00. gotoS2; if xy = 10. gO tOS3; andifxy = OI.goto SI: otherwise. go to 53. 8 .4 Show the eight exn pat hs in an ASM bloc k emanating from the decision boxes thai chec k the eig hl possible binary values o f three co ntro l variables x. j', and e. 8 .S Explain how the ASM and ASMD charts differ from a conventional flowchart. Using Fig . 8.5 as an illus trat ion. show the differen ce in interpretation. 8 .6 Construct a block diag ram and an ASMD chart for a digital syste m that counts the number of peo ple in a roo m. The one door through which people enter the room has a photoce ll that changes a signal x from Ito 0 when the lighl is interrupted . The y leave the room fro m a seco nd door with a similar photoc ell ihal changes a signal )' from I to 0 when the light is interru pted . The datapath circuit consists of an up-down counter .....ith a display that shows how many peo ple are in the roo m, 8 .7· Ora..... a bloc k diagram and an ASMD chan for a circuit .....ith two eig ht-bit regis ters RA and RB that receive two unsigned binary numbers. Th e circuit performs the subtraction operation RA -RA - RB Use the me thod for subtrac tion described in Sec tion 1.5. and set a borro w !lip- flo p to I if the answer is negative . Write and verify an HDL model o f the c ircuit. 8 .S* 8.9* Design a digi tal circuit with three l 6-bit regi sters AR. BR, and CR that perform the follo wing ope rations: (a) Tra nsfer two l 6-bi t signed numbe rs (in 2' s-complement rep rese ntation) to AR and SR . (b) If the number in AR is negative. divide the num ber in AR by 2 and tra nsfer the result to regb ter e R. (c) If the num ber in AR is pos ltlve but nonzero. mu ltiply the numbe r in BR by 2 and tran sfer the resu lt to register CR. (d) If the number in AR is zero. clear reg ister CR to O. (e) Writ e and verify a beha vioral model of the circuit. Des ign the controller who se state diagram is given by Fig. 8. I I(a ). Use one flip-flop per state (a one hot assignmenrj. Write. simulate, verify, and compare RlL and struct ural models of the co ntroller. 8 .10 Th e sta te diagram of a co ntrol unit is shown in Fig . P8. IO. II has fou r states and two inputs .r and y. Draw the equiva lent ASM chart. Write and verify a Veri log mode l of the controlle r. 8.11 . Design the co ntroller who se state diagram is shown in Fig. P8.IO. Use D flip- flops. 8 .12 Design the four-bit cou nter with synchronous clear spec ified in Fig. 8.10. 8 .11 Simu late Design_Exampfe_STR (see HDL Exam ple 8A ). and verify that its beha vior marches that of the RTL description. Ob tain state Intormsno n by di spla ying GO and GJ as a concatenated vector for the stale. 406 Chapter 8 Design at t he Register Transfer Level .r - a 00 .I = l , y -O .t - I Y .. I '----"J .t - I 10 ....--,-- --c-- \..::'/__--" y=0 FICiURE Pa.l0 Control st ate diagram fo r Problems 8.10 and 8,11 S.14 What, if any. are the consequences of the machine in Desjgn_E:.mmple_RTL (see HDL Example 8.2) entering an unused state? S.15 Simulate Dt'sig/l_£.mmple-fiTL, and verify that it recovers from an unexpected reset condition during its operation, i.e., a "running reset" or a "reset on-me-fly." S.16- Develop a block diagram and an ASMD chart for a digitalcircuit that multiplies two binary numbers by the repeated-addition method. For example. to multiply 5 x 4. the digital system evaluates the productby adding the multiplicand four times: 5 + 5 + 5 .,. 5 ,. 20. Design the circuit. Let the multiplicand be in register BR, the multiplier in register AR. and the product in register PRoAn adder circuit adds the contents of BR to PRoA zero-detection signal indicates whether AR is O. Write and verify a v erijog behavioral model of the circuit. S .l P Prove thai the multiplication of two n-bit numbers gives a product of length less than or equal to 2/1 bits. S.lS- In Fig. 8.14, the Q register holds the multiplier and the B register holds lhe multiplicand. Assume that each number consists of 16 bits. (a) How many bits can be expected in the product, and where is it available? (b) How many bits are in the P counter. and what is the binary number loaded into il initially? (c) Design the circuit thai checks for zero in the P counter. 8 .19 List the contents of registers C, A, Q, and P in a manner similar to Table 8.5 during the process of multiplying the two numbers 1101t (multiplicand) and 101 11 (multiplier). 8 .20'" Determine the time il takes 10 process the multiplication operationin the binary multiplier described in Section 8.8. Assume that the Q register has n bits and the clock cycle is 1nanoseconds. 8 .21 Design the control circuit of the binary multiplier specified by the stale diagram of Fig. 8.16. using multiplexers. a decoder. and a register. 8 .22 FigurePS.22 showsan alternative ASMDchartfor a sequentialbinarymultiplier. Write and verify an RTLmodelof the system Comparethis design with thatdescribed by theASMDchart in Fig. 8.15(b). S.23 Figure PS.23 showsan alternative ASMDchart for a sequentialbinarymultiplier. Write and verify an RTLmodel of the system. Compare thisdesignwiththatdescribed by the AS~ID chart in Fig. 8.15(b). Problems It , -407 <- 0 c <- o B <- Mulfiplictmd Q < - Mll ltipfit' 1' < " mJ itt =+,""",/ , 1' < - 1' - 1 /Jtcrtmtnl COUntt , s"""" <, Ie. A , QI <- IC, A. QI » 17-M rtgu'", Jhift$ 10 tht right by on .. bil I fiGURE P8.n ASMD chart lor Prob lem 8.22 8 .24 The HDL desc rip tion of a sequ ential binary m ultiplier give n in HDL Example 8.S encapsulates the descripnons of the controlle r and the datapath in I single Verilog module. Write and verify a model that en capsulates the controller and datapath in separate modules.. 8 .2$ 1be sequentia l binary m ultiplier de scribed by the ASMD chan ia Fig_ 8.IS don not consider ...·hethe r the m ultiplicand Of the sh.ifted multiplier is O. lberefOC'C. it executes for a fixed number of clock cycles. independentl y of the data.. (a) Dev elop an ASMD chart fOf. more efficienl m ultiplier that will term inate evecunce I!i soon I!i either word is found 10 be u rn. 408 Chapter 8 Design at the Regist er Transfer Level A <: 0 C < -O B < - ,\{ulliplicM d Q < .. Mullipli,.r P < - m_5izr Decrement COU flU r P< = P - 1 Add m ullipliCll fld /0 5hifr..d sum (C, A ! < - A +B Ie. A . Ql <= tc. A . QI » - .. .'~ -<'l'A.t . )-'-- - - ---' I 17-bil register 5hiju 10 Ih.. righl b.v one b il FIGURE P8 .23 ASMD ch a rt fo r Pr oblem 8 .23 (b) Write an HDL descript ion of the circuit. The controller and datapath are to be encapsulated in separate Verilog mod ules. (c) Write a test plan and a test bench . and verify the circuit. 8 .26 Modify the AS MD chan of the sequential binary multiplier shown in Fig. 8.15 to add and shift in the same clock cycle . Write and verify an RTL description of the system. 8 .27 The seco nd test bench give n in HDL Exam ple 8.6 generates a prod uct for all possible values of the multiplicand and multiplier. Verifying that eac h result is correct wou ld not be practical. so modify the test bench to include a statement that forms the expected product. Write additional statements to co mpare the result produced by the RTL description with the expected result. Your simulation is to produce an error signal indicating the result of the compari son. Repeal for the structural model of the multiplier. 8 .28 Write the HDL structural de scription of the multiplier designed in Section 8.8. Use the block diagram of Fig. 8. I4(a) and the control circuit of Fig. 8.18. Simulate the design and verify 115 functionality by u~ ing the test bench of HDL Example 8.6. Problems 409 8 .29 An ASMD chan for a Iinite stale machine is shown in Fig. PH.29. The ~gi\ler operations are not specified. because we are interested only in de\ igning the rontrol log ic. la) Draw the equ ivalent state diagram. (b) Design the coneot unn with one f1i p-nop per stare. (c) Lisl lhc stale lable for Ihe control unit. (d) Design the control unit with three D flip-naps. a decoder. and gales. "" S;;.o ·~:·~o:.:.~""~:sii:: 0 0 I Y Sj • ~ • 00 1 ~~:- 010 !V o '-<.' '~"~~".",;;.:.....~~ F ) -'----- • 110 111 FIGURE. P8.29 ASMD chart for Pr obl em 8.29 101 - --, 410 Chapter 8 Design at the Register Tran sfer Level (e) Deri ve a table showing the multiplexer input conditions for the control unit. (f) Design the control unit with three multiplexers, a register with three flip-flops, and a 3 x 8 decoder. (g) Using the results of (0, write and verify a structural model of the controller. (h) Write and verify an RTL de scrip tion of the controller. 8 .30" What is the value of E in each HOL block. assuming that RA - I"! (a) RA=RA - 1: (1)) If (RA ="' 0) E = 1: al.. E :: 0: RA <=RA .1 : If (RA u O) E o 1: e!• • E <:: 0: 8 .31 · Using the Verilog HOL operators fisted in Table 8.2. assume that A = 4'bOt 10. B - ';'bOO lO. and C = 4'bOOOO and eva luate the result of the follo wing operations: A· B; A. + B: A · B; -c; A & B; AI B; A" B; & A; - IC; o4 II B; A&& C; 104; A < B; A > B; A I-B: 8 .32 Consider the following always block: alway. @ (posedg. e LK) If (5 1) R1 <= R1 + R2: .1•• lf (5 2) R1 <=R1+ 1: .1•• R1 <= R1; Using a four-bit counter with parallel load for Rl (as in Fig. 6.IS) and a foor-bit adder. draw a block diagram showing the connections of components and control signals for a possible synthesis of the block . 8 .33 The multilevel case statemen t is often translated by a logic synthe sizer into hardware multiplex ers. How would you translate the following case block into hardware (assu me registers of eight bits each)"! ca•• (state) SO: R4 = RO; 5 1: R4 - R1; 52: R4 " R2: 53: R4 " R3: endcasa 8 .34 The design of a circuit that counts the number of ones in a register is carried out in Section 8.10. The block diagram for the cireuit is shown in Fig . 8.2.:!{a), a complete AS MD chan for the circu it appears in Fig. 8.22(c), and structural HOL mode ls of the datapath and con troller are given in HOL Example 8.8. Using the operations and signal names indicated on the AS~O chart. (a) w rite DatopalhJlEH. an RTI.. descri ption of the datapath unit of the ones Counter. Write a test plan specifying the functionality that will be tested. and write a test bench to implement the plan. Execute the test plan to verify the functio nality of the datapatb unit. and produce annotated simulation results relating me Ie$l plan to me waveforms. prod uced in a simulation. (b ) Write COli/roller_BEH. an RTL descripti on of the contro l unit of the ones counter. Write a test plan specifying the functionality that will be tested, and write a te st bench to implement the plan. Exec ute the lest plan to verify the functionality of the con trol unit. and produce an notated si mulation results relat ing the test plan to the wa veform s produ ced in a simulation. (e) Writt' Cmtnt_O/les_BEH_BEH. a lop-level module e ncaps ulating and integrating CO fltrolltr_BEH and Dotopalh _BEH. Write a lest plan and a tes t be nch. and verify the Problems 411 description . ProdIlC'e annotated simu latio n results relating the test plan to the waveforms produced in a ~imul at ion . (d) Write Conrroll~rJlEHjHQI, an RTL descripnon of a one -OOl: controlle r implementing die ASMD chan of Fig . 8.22(c ). Write a test plan specifying the functionality that will be test· ed, and writ e a test bench to im plemen t the plan. Execute the te~1 plan and produce annotat· ed simulation resul ts relating the tes t plan to the w ave form~ produced in a simulation. (~} Write Cou"t_O"~J_B EH_ '_Hot, a top- level modu le encapsulating the modu le Conlro/lu_BEH_ / J1or and Datapath_BEH. Write a te!>l plan and a lest bench, and veri fy the dncription. Prod uce an notated simu lation result s relating the test plan to the waveform s produ ced in a simu lation. &.)5 The HDl descri ption and tes t benc h for a circuit that ccc ms the num ber of ones in a regi ster are given in HDL Exam ple 8.8. Modify the test bench and simu late the circuit to verify dial the system operat es co rrec tly for the fo llow ing patte rns of data: 8 S' hff. S' hOf. S' hfO. S' hOO, S' haa. 8 'hOa, 8 ' haO, 8'hSS , 8' hOS, S' hfSO, 8' has, and S' h5a. 8 ,)6 The desi gn of a circuit that counts the number of ones in a register is carried out in Section 8.10. The block dia gra m fo r the circuit is shown in Fig. 8.22(a), a com plete AS MD chart for this circuit appears in Fig. 8.22(c ), and structural HDl models of the darapath and contro ller are given in HDL Exampl e 8.8. Using the ope ration s and signal names ind icated on the AS MD chart, (a) Design the control logic, emp loyi ng one flip-fl op per state (a one-hot assig nm ent). List the input eq uation s for the four flip-flops. (b) Write Conlroll~r_Gales_' fiot, a ga te-level HDL structural descri ption of the circu it, using the co ntrol de signed in pan (a) and the signals shown in the bloc k diagram of Fig. 8.22{a). (c) Write a test plan and a test bench. and then veri fy die co ntroll er. (dl Write Count_OnesJ ;atesj _HO/_STR, a top- Ie\el modu le encaps ulating and integ rating instantiations of COtIlro/{('r_GO/('j _JJloI and Dalupalh..sTR. Write a Iesl plan and a test bench to veri fy the description. Prod uce annotated simulatio n resuns rela ting the tes t plan to the waveforms produced in a simulation. 8.37 Co mpared with the circuit presented in HDL Example 8.8, a more efficient circui t that cou nts the number of ann in a da ta word is described by the block diagram and the pattiaily completed A S ~ D chart in Fig. PS.J 7. This circui t accomplishes addition and shiftin g in the same clock cycle and adds the LSB of the data regi ste r 10 the counter register al every cloc k cycle . (a) Complete die A S\.1D chart . lb) Using the ASMD chan, write an RTl description of the circuit. A lop-level Verilog modu le , Cou"CoLo"~!J _Z_Beh is to instantiate se parate modules for die datapath and control units. (c) Des ign the co ntrol log ic. using one fli p-flop per state (a one-hot ass ignment ). List the input eq uations for the Ilip- Ilcps . (d ) Write the HD l stru ctu ral description of the circuit. usin g the co ntroller designed in part (b ) and the block diagram of Fig. P8.37(a). (e) Write a test be nch to test the circuit. Si mulate the circuit to verify the ope ration described in both the RTL and the structura l programs. 8 .)8 Th e addition of two signed binary numbers in the signed- magnitude representation follow s the rules of ordinary arit hmetic: If the two numbers have die ume l ign (both positive or both negative). lhe two mag nitudes are added and the su m ha-s the common l ign ; if the two numbers have opposite sign s. the smal ler magn itude is subtracted from the largn and the resul t has the sign o f the larger magn uud e. wrue an HD l behavioral ~ p'ion for add ing two 8-bit signed numbers in signed-magnitude reprt' §C'ntation and veri fy. The leftmost hit of the number ho lds the sip! and the odier seven bits hold the magni tude. 412 Chapter 8 Design at t he Register Transfer level S la l/M dara sigll als RJ[Oj La o Stan Rrody - ""'-b=~L~_~ R2 < - sr - Rl tO! RI <- Rl > I Clock CO/lI/l (0' (b' flGURl P8 .J7 (a) Alterna tive circuit for a ones counter (b) ASMD Chart for Proble m 8.37 8 .)9" For the circuit designed in Problem 8.16, (a) Write and verify a structural HDL description of the circuit. The datapath and conuoue r arc to be described in separate units. (b) w rite and verify an RTL description of Ihe circuit. The datapath and controller are to be described in separate units. 8.40 Modify the block diagram of the sequential multiplier given in Fig. 8. I4<a) and the AS~1D chan in Fig. 8.15Ib) to describe a system thai multiplies 32-bit words. but with 8-bit tb}1e\loide) encrnal datapaths.The machine is to assert Ready in the (initial) reset stale. When Stem is assened.jhe machine is to felch the data bytes from a single 8-bit data bus in consecutive clock cycles (multiplicand bytes first, followed by multiplier bytes. least significant byte fiNt) and store the data in datapath registers. GoC Dola is 10 be asserted for one cycle of the clock when the transfcr j<; complete. When Rill! is asserted, the product is 10 be fonned sequentially. DoneProduct Is 10 be assertedfor oneclock cyclewhen the multiplication is complete. When a signal SendJJara is a....serted, each byte of the product is to be placed on an g-bit output bus for one clock cycle. in sequence. beginning with the least significant byte. The machine is to return to the initial state after the product has been trancmlrtcd, Consider safeguards. such as not attempting to send or receive data while the product is being fonned. Consider also other features that might eliminate needless multiplication by O. For example. do not continue to multiply if the shifted multiplier is empty of 1' 5. 8 .41 The block diagram and panially completed ASMD chan in Fig. PSAI describe the behavior of a two-stage pipeline that acts as a 2: I decimaror with a parallel input and output. Decimators are used in digital signal processors to move data from a datapath with a high d ock rate to a datapath with a low er d ock rate. conven ing data from a parallel format 10 a serial formal in the process. In the datapath shown. entire words of data can be transferred into the pipeline at twice the rate al which the contents of the pipeline must be dumped tore a holding register or consumed by some processor. The contentsof the holding register RO can be shiftedout serially, to accomplish Problem s 413 IPI . PO} < ~ 10.0} Data 8 / ' l Pi. POI < = (0. 01 PI <'" Datu PO< =Pl \ RO <= (Pl , PO) Ibl FIGURE P8.41 Two-stage pipeline registe r: Data path un it and ASM D chart an ove rall parallel-to-serial conversion of the data stream . The ASMD chan indi cate s that the mac hine has synchronous reset 10 S_id/e . where it waits until rst is de-asserted and En is asserted. Note that synchronous transitions which would occur from the other Mates to S_idfe under the action of rst are not show n. With Ell asserted. the machine transitions from S_id fe to S_ J. accom panied by conc urren t register ope rations that load the MSByte of the pipe with Data and move the content of P I to the LSB yte (PO). AI the next cloc k. the state goes 10 SJ ulf. and now lhe pipe is full. If Ld is asse rted 'II the next clock, the machine moves to S j while dumping the pipe into a holding register RO. l f Ld is not asse rted. the machine enters S_wait and remains there until Ld is asserted . at which lime it dumps the pipe and returns to S_I or to S_id le, depending on whether Ell is asse rted. too . The data rare at Ro is one- ha lf the rate at which data are supplied to the unit fro m an external datapath. (a ) Develo p the complete ASM D chan. (b) Using the ASMD chan developed in (a), write and verify an HDL model of rhe datapath. (e) Write and verify a Verilog beha vioral mode l o f the co ntrol unit . (d) Enca psul ate the datapat h and co ntroller in a top-leve l mod ule. and verify the integrated system. 414 Chapter 8 Design at the Register Transfer Level REFE REN C ES 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11 . 12. 13. 14. "t ARSOLD. G. 1999. Verilog Digital Computer Design . Upper Saddle River, ?\J : Prentice Hall. BHASKElI.. 1. 1997. A Verilog HDLPrimu . Allentow n. PA; Star Galaxy Press. BHASKER. J. 199 8. Verilog HDI. Synthesis. Allentown. PA: Star GalaJl.y Press. CIl.ETT1. M. D. 1999. Modeling. Synthesis. and Rapid Prototyp ing .....ith Vt'rilog HDL t:ppcr Saddle River. :'\J: Prentice HalJ. CllETTl. M. D. 2003. Modeling. S)'nt~$js. and Rapid Proto,>p ing ....ith Vt'rilog HDL Upper Saddle River. S J; Prentice Hall. CLARE. C. R. 1971. Designing Logic S)·.stems Using Start' Machint's. New ¥ork; ~1cGraw- HiI1 . HAVES. 1. P. 1993. introduction to Digital Logic Design: Reading. MA; Addison-Wesley. IEEE Stnndard Hardware Descript ion Language Based on the Vu ilog Ha rth'a f'(' Description Langu agt' (IEEE Std 1364-2001). 2001. New York; Institute of Electrical and Electronics Engin...... rs. MASO. M. M. 1993. Computer Syslem Architecture. 3d ed. Upper Saddl ... River.:'\1: Prentice Hall. MASO. M. ~1.. and C. R. KlME. 2000 . Logic and Computt'r Cksi gn Fundamenlals. 3rd ed. Upper Saddle River, 1'\1; Prentice Hall. PAl ....lTKAR. S. 2003. Veri/og HDL: A Guidt'to Digital Design and Syntht'sis. Mountain View. CA: SunSoft Press (a Prentice Hall Title) . SMITH. D. 1. 1996. HDI. Chip Design. Madison. AL: Doone Publications. ThOMAS. D. E.. and P. R. MOOR8V. 2002. Tht' Veri/og Hardware Description Language. 5lh ed. 8 0' 100: Kluwer Academic Publishers. WISKl£R. D.• and F. PROSSER. 1987. The Art of Digital Design, 2d ed. Englewood Cliffs. ~l Prentice- Hall. Chapter 9 Asynchronous Sequential Logic 9.1 INTRODUCTION A sequential circuit h specified by a time sequence of inputs. outpu ts. and inte rnal states. In synchronous sequential circuits. the change of internal state occurs in response to the synchronized clock pulses. Asynchronous sequential circu its do not use clock pulses. The cha nge of interna l state occurs when there is a change in the input variables. The memory elements in synchronous sequential circuits are clocked flip-flops . The me mory elements in asynchronous sequential circuits are either unclocked flip-flops or time -delay elements. The memory cepebiliry of a time-delay device depends on the finite amount o f time it lakes for the signal 10 pro paga te through d igital gales. An asynchronous sequential circuit qu ite often resembles a combinational circuit with feedback . The des ign of asynchronous sequential circu its is more difficult than that of synchronous circu its because of the timing prob lems invol ved in the feedback path . In a prope rly designed sy nchronous syste m. timing problems are el iminated by triggering al l flip-flo ps with the pulse edge . The change from one state to the next occurs during the short time of the pulse transition. Since the as ynchro nous circuit does not use a clock. the state of the syste m is allowed to change immediately after the input changes. Care must be taken to ensure that each new state kee ps the circuit in a stab le condition even though a feedbac k path exists. Asynch ronous sequential circuits are useful in a variety of applications. They are used when speed of operation is important. especially in those cases where the digital sys tem mu st reo spend quickl y withou t having to wait for a clock pulse. They are more eco nomical to use in sma ll indepe nde nt syste ms tha t require only a few components, as it may not be practical to go to the expense of providing a ci rcuit for generating clock pulses. Asynchronou s circ uits are useful in applicat ions where the input sig nals to the system may change at any time . independently of an internal clock. The communication between two units. eac h having its ow n 415 416 Chapter 9 Asynchro nou s Sequential Logic independent cloc k, mu st be do ne with asy nchro nous ci rcuits. Digital desi gners ofte n prod uce a mixed system in which so me pan of the synchro nous system has the characteristics of an asynchro nous ci rcuit Knowl edge of as ynchro nous sequential logic behav ior is helpful in verifyi ng that the total digital system is ope rating in the proper man ner. Figure 9. 1 shows the block diagra m of an asy nchronous seque ntial circuit that consists of a combinational circuit and de lay ele men ts connected to form feedback loops. Th ere are n input variables. m output variables. and k: internal states. The de lay elemen ts can be visuali zed as pro viding short-term memory for the seq uential ci rcuit. In a gate-type circu it, the pro paga tion delay that exis ts in the co mbinational circ uit pat h from inpu t to output pro vides sufficient del ay alo ng the feedback loo p so that no specific delay elements are actually inserted into thc feedback path. The present-state and next-state variables in asynchron ou s seq uential circu its arc customarily ca lled seconda ry variables and excitation variables, respectively. The exci talion variables should not be co nfused with the exci tab le table used in the de sign of clock ed sequen tial circ uits. " " " einput <, variables k secondary variables (present stale) " .. y, Y, y, Y, y. Y. Delay FI(i,URE 9.1 Block diagram of a n async hrono us sequen tial circuit mouip ul variables k excitation variables (neX!slale) Section 9.2 Analysis Procedure 417 When an input variable changes in value, the y seco ndary varia bles do not change instantaneousty. It lakes a certain amount of time for the signal 10 propagate from the input term inals, through the combinational circuit. to the Yexcitation variables. which generate new values for the next state. Th ese values propagate through the dela y elements and become the new present state for the seco ndary variables. Note the distinction between the v's and the Y's. In the steady-state condition, they are the same, but during transition they are not. For a given value of input variables. the system is stable if the circuit reaches a steady-state condition with Yi = Y; for i = 1. 2, . . . • k. Otherwise. the circu it is in a conunuous transition and is said to be unstable. It is importa nt 10 realize thai a tra nsition from o ne stable state to another occurs only in respouse to a change in an inputvariable. Thi s is in con trast to synchronous systems. in which slate transitions occur in response to the application o f a clock pulse. To ensure proper opera tion, asynchronou s sequential circuits must be allowed to attain a stable state before the input is changed to a new value. Because of delays in the wires and the gate circuits, it is impossible to have two or more input variables change at exactly the same instant of time without an uncertainty as to which one changes first. Therefore , simultaneous changes of two or more variables are usually prohibited. This restriction mean s that only one input variable can change at anyone time and the time between two input changes must be longer than the time it lakes the circuit to reach a stable state. Such oper ation. defined es fundame ntal mode. assumes thai the input signals change one at a time and only when the circuit is in a stable condition. 9 .2 ANALYSIS PROCEDURE The analysis of asynchronous sequential circuits consists of obtaining a table or a diagram that desc ribes the sequence of internal states and outputs as a function of changes in the Input variables . A logic d iagram manifests the behavior of an asynchronous sequential circuit if it has one or more feedback loop s or if it includes unclocked flip-flops . In this sect ion. we will investigate the behavior of asynchronou s sequential circu its that have feedback paths without employing flip-flop s. Unclocke d Flip-flop s are ca lled latches, and their use in asynchronous sequentia l circu its will be explained in the next section. The analysis procedure will be presented by mean s of three specific examples. The first example introduces the transi tion table, the second define s the flow table , and the third investigates the stability of asynch ronous sequential circ uits. Transition Table An exa mple of an asynchronous sequential circuit with only gates is shown in Fig. 9.2. The diagram clearly shows two feedba ck loops from the OR gate outputs back 10 the AN D gate inputs. The circuit consists of one input variable x and two internal states. The internal states have two excitation variab les, Y, and Y2. and two seco ndary variables, Yl and )'2. The delay associated with each feedback loop is obtained fro m the propagation delay between each Y input and its corresponding youtput. Each logic gate in the path introduces a propagation delay of about 2 to IOns. The wires that conduct elec trical signals introduce approximately a I-ns delay for each foot of wire. Th us, no addit ional external delay elements are necessary when the combinational circuit and the wires in the feedback path provide sufficient de lay. 418 Cha pte r 9 Asynchronous Seq uenti al logic Y, Y, FIGURE 9 .2 Example of an asynchro nous seq uential circuit The analysis of the circuit starts with a consideration of the excitatio n variab les as outputs and the seco ndary variables as input s. We then derive the Boolean expressions for the excitation variables as a function of the input and secondary variables. These expressions. readi ly obtained from the logic diagram. are Yl = XY I + x'n Y2 = xYI + .t 'n The next step is to plot the Y1 and Y2 functions in a map . as shown in Fig. 9.3(a ) and (b). The encoded binary values of the )' variables are used for labe ling the rows. and the input .r variable is used to designate the columns. Th is co nfiguration results in a slightly different threevariable map from the one used in previous chapters . However, it is still a valid map. and such y ~, , 0 1 00 0 0 01 1 11 10 y,y, , 0 1 00 0 1 0 01 1 1 1 11 0 1 10 Y l - XYI + X' Y2 , 0 1 00 @ 01 1 01 11 e 1 0 11 e 10 0 0 10 00 @ (b ) M ap for (a ) M ap for y ,y, Y 2 = xy '1+ X'y: fiGURE 9.3 Maps and transition table for the circuit of Fig . 9.2 (e) Transition table Section 9.2 Analysis Procedure 4 19 a configuration is. more convenient in dealing with asynchronous seque ntial circuits. !\OIe tha t. unlike what was done in previous chapters. the varia bles belonging to the appropriate squares are not marked along the sides of the map. Tbe transition table sbcwn in Fig. 9.3(c) is obta ined from the maps by combining the binary val ues in corres ponding square s, The tran sitio n table shows the value o f Y = f lY.!inside each square.The fin! bit of Y is ob tained from the valu e of f l. and the seco nd bit is obtai ned from the value of Yl in the same square position. For a stare to be stable, the secondary variables must match the excitation variables (i.e.• the value of Y must be the same as that o f Y = YI)',2 ) ' Those entries in the transi tion table where Y = Y are circ led to indica te a stable condition. An uncircled entry represents an unstable state. Now consider the effect of a change in the input variab le. The square for .r = 0 and y = 00 in the tra nsition table shows that f = 00 . Since f represents the next value of y. this is a stable condition, If .r change s from 0 to I while y = 00 . the ci rcuit changes the value of Yt o 01. This represe nts a temporary unstable condition, becau se Y is not equal 10 the present value of j-, What happens next is that as soo n as the signal propagates to make Y = 01 , the feedback path in the circuit causes a change in y to 01. Thi s change is man ifested in the transition table by a transition from the first row (y = 00) to the seco nd row, where y = 01. Now that y = Y, the circuit reaches a stable con dition with an input of .r = I. In general. if a change in the input takes the circ uit to an un stabl e Slate. the value o f y will change (while that of .r remai n.. the same) until it reac hes a Mable (circled ) state. Using this type of analysis for the remaining square s of the trans ition table. we find that the circuit repeats the seq uence of states 00 , 01. I I. 10 when the input repeat edly alternate s between 0 and I. Note the difference between a synchrorccs and an asynchronous sequential circuit. In a synchronous system. me present state is totally specified by the flip-flop values and dues not change if the input changes while the clock pulse is inactive, In an asynchronous circuit. the internal state can change immediately after a change in the input, Because of this rapid change, il is sometimes convenient to combine the internal state ....ith the input value together and call it the 10101 state of the circuit. The circuit whose transit ion table is shown in Fig. 9.3(c ) has four stable total !itate~)u,:!.t = 000.01 1. 110. and 101-and four unstable total states-OO I. OIO. II I. and 100. The transitio n table of asynchronou s sequential ci rcuit.. is similar to the state table used for synchronous circuits. If we regard the secondary variables as the present state and the e xcitation variables as the next state . we obtain the state table sho w n in Table 9.1. Th is table provide s the same information as the tran sition tab le. There is one restri ction that applies to the Table 9 .1 State Table for the Circuit of Fig, 9.1 Present State 0 0 I I 0 I 0 I Neat State K· 0 K 0 I 0 I 0 I 0 I 0 0 I I = 1 1 I 0 0 420 Chapter 9 Asynchronous Seq uent ial logic asynchronous case. but not the synchronous case : In the asynchronous transition table. there usually is at least one next-state entry that is the same as the present-state value in each row. Otherwi se. ali the total states in that row will be unstable. The procedure for obtaining a transition table from the circu it d iagram of an asynchronous sequential circ uit is as follows: 1. Determine all feedback loops in the circu it. 2. Designate the output of eac h feedback loop with variable Y; and its corresponding input with jy for i = 1. 2•... • k, where k is the number of feedback loops in the circ uit. 3. Derive the Boolean functions of all Y's as a function of the external inputs and the .'"'!C>. 4. Plot each Yfunction in a map. using the y variables for the rows and the external inputs for the columns. S. Combine all the maps into one table showing the value of Y = Y1Y2 ••• Yi inside each square. 6. Circle those values of Y in each square that are equal to the value of .'" = .'"l~ · · · .'"i in the same row. Once the transition table is available. the behavior of the circuit can be ana lyzed by observing the stale transition as a function of changes in the input variables. Flow Table During the design of asynchronous sequential circuits. it is more co nvenient to name the states by letter symbols without maki ng specific reference to their binary values. Such a table is called aflow table and is similar to a transitio n table. except that the internal states are symbolized with letters rather than binary number s. The flow table also includes the output values of the circuit for each stable state. Examples of flow tables are shown in Fig. 9.4. The one in Fig. 9.4(a ) has four states. de signated by the letters a. b. c. and d. It reduces to the transition table of Fig. 9.3(c ) if we assign y x 0 I " 0 b b c 0 , 0 d a 0 d X lX1 fIGUR£ 9.4 Examples of flow ta bles " 0 b (a) Fou r states with one input 01 00 0 " .0 11 10 000 0 0 1 " .0 b .O 0 (b) Two states with two inputs and one output 0 Section 9.2 Analysis Procedure 421 the following binary values to the stares: a = 00. b = 0 I. c = II . and d = 10. The table of Fig. 9.4(a ) is called a p rimiti ve no w table beca use it has only one stable state in each ro w. Figure 9.4(b ) shows a now table with more tha n one stable ..tale in the same row. It has two states. a and b: two inputs. '\" I and xs and one output. z. The binary value of the output variable is indicated inside the square next 10 the state symbol and i.. separated from the state symbol by a comma. From the flow table. we observe the follo w ing be havior of the circ uit: If '\" I = O. the circuit is in state a. If XI goes to I while x~ is O. the circuit goes to state b. With inputs x lx 2 = II . the circuit may beeither in state a or in stale b. If it is in state a. the output is O. and if it is in state b. the output is I. State b hi. maintained if the inputs change from 10 to I I. The circuit stays in state a if the inputs change from 0 1to I I. Remember that in fundamental mode two input variables cannot change simultaneo usly: therefore. we do not allow a chan ge of inputs from 00 to 11. In order to obtai n the c ircuit described by a now table . it is necessary to assign a distinct binary value to each state. Such an assignment co nverts the flow table into a transition table from which we ca n deri ve the log ic d iagram. Thi s is illustrated in Fig. 9.5 for the flow tab le of Fig. 9.4(b). We assign binary 0 to state a and binary I to state b. The result is the transition table of Fig. 9.5(a). The output map shown in Fig. 9.5(b) is obtained directly from the output values in the now table. The excitation function Yand the output function z are simplified by means of the two maps. The logic d iagram of the circuit is shown in rig . 9.5(c ). r XI 0 1 X2 00 II 01 s 10 0 0 0 0 0 1 0 0 (a ) Transitio n tabl e: y• X IX l 0:1 01 II 10 0 0 0 0 0 1 0 0 1 0 ( b ) :\t ap for output .l:1.l: ' l '" .l:LV : -.l: IXl '· , <, - t-+ --,- - - -{;;:;;7,;;\ <, - +-....-r>~---i ,'s'V y , L- -' (c) logic di a~am FIGURE 9 .5 Derivation of • drtult specified by the now table of FJg. 9.-4(b) 422 Cha pter 9 Asynchronous Sequential Logic This example demonstrates the procedure for obtaining the log ic diagram from a given flow table . Doin g that, how ever. is not always so simple. There are several difficulties associated \lrri th the binary stat e assi gn ment and with the output assigned to the unstable states . These prob lem s are discussed in de tail next. Race Conditions A race condition is said to exi st in an asynchronous seq uential circuit when (\\'0 or more binary state varia bles change value in response to a change in an input variable. Whe n unequal de lays are encountered. a race condition may ca use the stale vari ables to change in an unpredictable mann er. For example. if the state variables must change from 00 to II . the difference in del ays may cause the first variable to change sooner lhan the second, with the result that the state variables change in seq uence from 00 to 10 and the n 10 II . If the second variable changes sooner than the first. the Slate variables will change from 00 toOl and then to 11. Thus. the order by which the state variables change may not be know n in advance. If the final sta ble state that the circuit reaches doe s not de pend on the order in wh ich the state variables change. the race is ca lled a noncritical race. If it is possible to end up in two or more di ffere nt stable stares. depending on the orde r in whic h the sta te varia bles change. the n the race is a critical race . For prope r operation. criti cal races m ust be avoi ded. The two examples in Fig . 9 .6 illustrate noncritical races. We sian with the total stable sta te JIY2x "" (XX) and change the in put from 0 10 I. The slate variables mu st then change from 00 to I I. which defines a race condition. The tran sitions listed und er eac h table sho w three possible ways that the state variables may change. Either they can change simultan eou sly from 00 to I I. or they may change in sequence from 00 to 01 and then to I I. or they may change in \C quence from 00 to 10 and then to II . In all cases. the final stable sta le is the same. so the race is noncritical. In (a). the final total state is YIY2x "" III . and in (b). it is all . , , ~, 0 e r ~, I , 0 e I 11 00 01 11 01 0 11 (0 II 01 10 11 10 II 00 (I) Possible trlnsiliom; 00 11 00 _01 00 - 10 - moURE 9 .6 Examples of noo crttial races 11 11 II (b) Possible trlUlsilions: 00 11 01 00 - 0 1 00 - 1 0 - 1 1 - 01 Section 9.2 Analysis Procedure ,,y, .r , .r 0 1 @ 11 0 1 @ 11 00 01 ® 01 11 11 (0 11 (0 10 @ 10 @ 00 (a] Pcssihlc transition s: 00 - - 11 00 __ 01 00 - - 10 1)'2 423 (b) Possible transitio ns: 00 --11 00 01 - 11 00 __ 10 FIGURE 9 .7 Examples of critical race s Th e transition tables of Fig . 9.7 illustrate critica l races . Here again. we start with the tota l stable state YIY2X = 000 and change the input from 0 to I . The state variables must then change from 00 to 11. If they change simultaneously. the fina l total stab le state is I l l . In the transition table of part (a), if, becau se of unequal propagation delay . Yz changes to 1 before Y1 doe s, then the circuit goes to the total stable state 01\ and remains there . If. however, Y1 changes first. the internal state becomes 10 and the circuit will remain in the stable total stale 101. Hence, the race is critical beca use the circu it goes to differe nt stab le states, depending on the order in which the state variable s change. The transition table of Fig. 9 .7(b) illustrates another critical race, in which two possible tran sitions result in one final total state, but the third possible tran sition goes to a different total state. Races may be avoided by making a proper binary assignment to the state variables. Th e state variables must be assigned binary numb ers in such a way that only one state variable can change at any one time when a state transition occurs in the flow table. The subject of race-free state assignmen t is discussed in Section 9.6. Races can be avoided by directing the circuit through intermediate unstable states with a unique state-variable change . When a circuit goes thro ugh a unique seq uence of unstable states, it is said to have a cycle. Fig. 9.8 illustrates the occu rrence o f cycl es. Again, we start with }' IY2 = 00 and change the input from 0 to I . Th e tran sition table of part (a) give s a unique sequence that terminates in a total stable state JO J. The table in (b ) shows that eve n though the state variables change from 00 to 11. the cycle provides a unique transition from 00 to 0 1 and then to I I. Care must be take n when using a cycle that term inates with a stable state. If a cycle doe s nor terminate with a stable state, the c ircuit will keep go ing from one unstable state to another, making the entire circuit unstable. Th is phenomenon is demo nstrated in Fig. 9.8(c) and also in the next example. 424 Chapter 9 Asynchron ou s Sequential logic y ~, < 1 y 1)"2 < 01 00 01 11 01 11 10 11 (0 11 10 G 10 G 10 01 1 y ~, < 01 00 01 11 11 10 00 0 e (a ) Slate tra nsition: 00_ 01_ 11_ 10 0 e e 01- r 11 1 01 (c) Unstable (b) Stale transitio n: 00- 0 Ol- l 1- 1O- FIe.URE 9 .8 Examples of cycles Stability Considerations Because of the feedback connection that ex ists in asynchronous sequential circuits, care must be taken to ensure that the circuit does not become unstable. An unstable condition will cause the circuit to oscillate between unstable states. The transition-table method of analysis can be useful in detecting the occurrence of instability. Consider, for example , the circuit of Fig. 9.9(a). The excitation functio n is r = (Xly) 'X2 = (xl + Y')X 2 = xlx2 + X2.V' <, (a ) Logic diagram y X IX : 00 01 11 10 0 0 1 1 0 1 0 0) 0 0 (b) Tr ansilion tabl e FIGURE 9 .9 Example of a n un sta ble circuit Section 9.3 Circuits with latches 425 The transition (able for the circuit is shown in Fig. 9.9(b). Those values of Ywhich are equal to ). are circled and represent stable state s. Unci rcled entri es ind icate unstable co nditions. Note that column I I has no stable stales. This means that with input X IX2 fixed at I I. the values of Y and y are never the same. If y = O. then Y = I. which causes a transition to the second ro w o f 1 and Y O. Th is in tum causes a transition back to the first row. with the the table. with y result that the state variable alternates betwee n 0 and I indefinitely, as long as the input is II . Th e insta bility co nd ition c an be detec ted directly fro m the logic d iagram . Let Xl = I , Xl = I. and y = 1. T hen the ou tput of the NAND gate is equal to 0 , and the output of the AND gate is equal to 0, making Yequal to O. with the result that Y #- y. Now if y = O. the outp ut of the NAND gate is 1 and the output of the AND gate is 1. making Y eq ual 10 I. with the result tha t Y #- y. If it is ass umed that eac h gate has a propagation delay of 5 ns (incl uding transmission over the wires ). we will find that Ywill be 0 for 10 ns and I for the next 10 ns. Th is will result in a square- wave waveform with a period of 20 ns. The freque ncy of oscillation is the reci procal o f the period and is equal to 50 MHz. Unle ss one is de signi ng a square -wa ve generator. the instability that may occur in asynchronous seq uential circuits is undesira ble and must be avoided. = 9 .3 = CIRCUITS WITH LATCHES Historically. asynchronou s ci rcuits were known and used befo re synchronous circuit s were developed. The first practical digital circuits were constructed with relays . which are more adaptable to asynchronous operations. For this reason . the traditional method of asy nchronous circuit co nfiguration has been with components that are connected to form one or more feed back loop s. When digital circuits are co nstruc ted with electronic compone nts. it is convenie nt to emp loy the SR latch (introduced in Sect ion 5 .3) as a memory element. The use of SR latches in asynchronous sequential ci rcuits prod uces an orderly pattern in the logic diagram s. with the mem ory e lements clearly visible . In this section. we analyze the operation o f the SR latch. using the technique introduced in the previou s section. We then show a procedure for implementing asynchronou s seq uential circuits using SR latches. 5R Latch The SR latch is a dig ital circuit with two inputs 5 and R and two cross-coupled NOR gates or two cross-coupled NAND gates. The cross-co upled NOR gate circuit is shown in Fig. 9.10. This circuit and its trut h table are taken from Fig. 5.3. In orde r to analyze the circ uit by the transition-table me thod. it is first redra.....n in Fig. 9. IO(c) to see the feedback: path from the outp ut of gate I to the input of gate 2. The output Q is equi valent to lhe excitation variable Yand the seco ndary variable y, The Bool ean function for the output is Y = [(5 + r) ' + RI' ~ (5 + y )R' = S R' + R'y Plotting Yas in Fig. 9. IO(d). we obtain the tran sitio n table for tbe circuit. We can now inve stigat e the behavior of the SR latch from the tran sition table. Th e state with S R = 10 is a stable stale because Y = Y = I ; likewise. the state with SR = 0 1 is a sta ble state. because Y = Y = O. With S R = 10. the output Q = Y = I and the latch is said 426 Chapter 9 Asynch ron ous Sequential Logic R Q Q' S s R Q Q' I 0 0 0 I 0 0 I 0 I I I 0 0 0 0 0 I I 0 (Aher SR - 01) (b ) Trutb table (a ) Cross-coupled circui t R- - - - --\ (After SR - 10) y , -{'f!;/ >o----r-- y• Q SR 00 01 II 0 0 0 0 I 8 s 0 Y - SR' '1- 0 10 I 8 R'y Y - S +R'y 'fohcn SR : O (d ) Trilnsition ta ble (e) Circuu shO\\i ng feedback FIGURE 9 .10 SR latch with NOR g ates to be set. Changing 5 to 0 leaves the circui t in the set state . With SR "" OJ . the output Q "" Y = 0 and the la tch is said 10 be reset. A ch ange of R back to 0 lea ves the circuit in the reset stare. T hese conditions are also listed in the trut h table. Th e circuit exhibits some difficu lty when be th Sand R are eq ual 10 I . From the tru th table . we see that both Q and Q' are equa l to O. a co ndition that viola tes the req uirem ent that these IWO outputs be the co mplemen t of each other. Moreover, from the tran sition table. we note thai going from 5R ::: 1 t to S R = 00 produ ce" an unpredictable result. If 5 goe s to 0 fir st. the output remains at O. bu t if R goe s to 0 first. the output goes to I. In norm al o peration. we must make sure that ls are not applied 10 both the 5 and R inputs simultaneo usly. Thi s condition can be expressed by the Boolean function 5 R = O. which states that the ANDing of 5 and R must alway s result in a O. Coming back to the excitation function. we note that when we OR the Boolean expression 5R' with 5R. the result is the single variable S: S R' + SR = S ( R' + R ) = S From this. we infer tha t SR' = S when SR = O. The refore. the excitation function deri ved previous ly, namely. y = 5R' + R' y Section 9.3 Circuits with l atches 42 7 ca n be ex pressed in Fig. 9.1 O(d) as the reduce d excitation fu nction y = S + R'y when SR =0 To analyze a circuit with an SR latc h. we must first check that the Boo lean condition S R "" 0 holds at all times . We then use the reduced excitation func tion 10 anal yze the circui t. However, if it is found that both S and R can be equal to 1 at the same tim e. th en it is necessary to usc the original excitation func tio n. The analysis of the SR latch with :'Il'ASD gates is carried ou t in Fig. 9. I I . The NAND latch operates wi th both inputs nonnaJly at I. unless the sta te of the latch has to be chan ged . The application of 0 to R ca uses the out put Q to go to O. thu s putting the latch in the rese t state. After the R input returns to I, a change of S to 0 causes a change to the set state. Th e co ndition to be avoided here is tha t both Sand R not be 0 simultaneously. Thi s cond ition is satisfied whe n S ' R ' ~ O. The exci tation fu nction for the ci rcuit in Fig . 9.1ICc) is Y - [S( Ry)']' = S' + Ry Compari ng this with the exci tation function of the NOR latch. we note that S has been rep laced with S' and R' with R. Hence, the inp ut variables for the NAND latch require the co mplemented values of those used in the NOR latch . For this reason. the NAND latch is sometimes referre d to as an S' R' latch (o r S- R latc h). 5 Q Q' R S R Q Q' 1 I 0 1 0 0 1 1 1 0 0 0 I 1 I 1 1 0 0 1 Y SR 0 1 FIGURE 9.11 SR latch with NAND gates IAfterSR - 01) Ib)Truth table la) Cross-coup led circun (c) Circui t $howing feedback IAfter SR • 10) 00 01 1 I II 10 GG 0) 0) 0) Cd) T ranslboa table 0 428 Chapter 9 Asynchron ou s Seq uential logic Analysis Example Asynchro nous sequential circuits can be constructed with the use of 5R latches with or without external feedback paths . Of course . th ere is always a feedb ack loop within the latch itself Th e analysis of a circ uit w ith latches will be demonstrated by means of a specific example from which it will be poss ible to generalize the proced ural steps necessary to analyze other. similar ci rcuits. Th e circu it sho wn in Fig. 9 . 12 has two 5R latches with outputs Y. and Y2 . There are two inp UI S. X I and X2. and two external feedback loops gi ving rise to the seco ndary varia bles. J l and Y2' Note that this circ uit rese mbles a conventional seq uential circuit wit h latc hes behaving like fli p-Oops withou t clock pulses. The analysis of the ci rcuit requ ires that we firs t obtain the Boolean function.. fo r the 5 and R inputs in eac h latch : 5t = XI >':! R l = x jx 2 52 = .tt_t2 R2 = xiy! We then chec k whether the co ndition S R = 0 is satisfied to ensure proper operation of the circuit : 51 Rt = XI.\i xlxi = 0 S2 R2 = X t X2X2Yl = 0 5, Yl "-L':::======t FIGURE 9 . 12 Exam ple of a circuit with SR latches R, 5, ---+- - - - y, Section 9.3 Circuits with Latches "'1"'2 01 11 10 00 @J @ 01 @J 01 @ @ 11 11 " , 00 11 00 @ @ 10 00 @ 11 429 10 ® FIGURE 9.1 3 Transition t ab le for the circ uit of Fig . 9. 12 = The result is 0 becau se xIx! - X2 X2 O. The next step is to derive the transition tab le of the circ uit. Remember that the tran sition table specifies the value of Yas a funct ion of y and .r. The exci ta tion functions are derived from the relatio n Y = S + R'y (see Figu re 9 . I Hd» and are Y\ = 5 , + RjYI = x IY2 + ( XI + X2 ))'\ = XIJ'2 + .ttY, + XV" Y2 = 52 + R2>~ = x ,x2 + ( X2 + )'ih~ = Xl X2 + X2Y2 + YiY2 We now deve lop a compos ite map for Y = Y, Y2. The )' va riab les are assigned to the rows in the map. and the x variables are assigned to the columns . as shown in Fig. 9.1), The Boolean func tions Y, and Y2. as just expressed. are used to plot the composite ma p for Y. The entries of Yin each row that have the same value as that given to }' are circ led and repre sent sta ble states . inves tigati ng the transition table. we deduce that the circuit is stable. There is a cri tical race condition when the circuit is initially in total state )'1Y2X I X2 = 1101 ( Y1Y2 = 11) and X2 cha nge s from I to O ( Y\ Y2 = (0). If Y\ changes to 0 before Y2• the circuit goes to total state 0 100 instead of 0000. However, with approx imat ely eq ual delays in the gates and latches. this undesirabl e situation is not likely to occur. The procedure for anal yzing an asy nchronous seq uential circuit with 5R latche s can be summarized as follows: I. Label eac h latch ou tput with Y; and its ex te rnal feed back pa th (if any) w ith Yi for i = 1. 2, ... . k. 2. Derive the Boo lean functions for the 5; and Ri inputs in each latch. 3. C hec k whether S R =- 0 for eac h NO R latch or whether 5 ' R' = 0 for eac h NAND latch. If either of these conditions is nOI satisfied. there is a possibility that the circuit may not operate properly. 4. Eva luate Y = 5 + R' y for eac h NOR latch or Y = 5' + Ry (or each NAND latch . S. Ccosrucra map. with the i s repm;enti ng the lOYr'S and the ..t inp..u~ the co lwnns . 6. Plot the value of Y = Y,Y2•· . Yt in the map. 7. C ircle all stable Slates such that Y = y. 11K: res ulti ng map is then the transition table . 430 Chapter 9 Asyn chronous Sequential Logic latch beltatlon Table The transit ion table of the SR latch is useful for analysis and for defining tbe operation of the latch. It specifies the excitation variable Y when the secondary vari able y and the inputs S and Rare known . During the impleme ntation process. the transi tion table of the circuit is available and we wish to find the values of Sand R. For this reason. we need a table that lists the required input s S and R for each of the possible transition s from y to Y. Such a list is called an ~:ccitatjon table. The excitati on table of the SR latch is shown in Fig. 9 . 1 ~( b) . The first two columns list the four pos sible transitions from y to Y. Th e next ( '0110 colu mn s spec ify the req uired input values that will result in the specified transition. For example. in order to pro vide a tran sition from J = 0 to Y = I. it is necessary to ensure that input S "" I and input R = O. Th is is shown in the seco nd row o f the transition table . The required inpu t conditions fo r each of the four tran sitio ns in the exc itati on table can be deri ved dire ctly from the larch transition table of Fig . 9 .IO<d) after re moving the unstable co ndition S R = I I. For e xam ple. the tran sition table shows that in order to change fro m J ... 0 to Y = O. SR can be eitherOOorO I . Thi s means that S mus t be I and R may be either 0 or I. Therefore. the first row in the excitation table show s S 0 and R = X. where X is a do n't-care co ndition signifying ei ther a 0 or a I. = Impleme ntat io n Examp le A sequential circu it with SR larches is implemented through a procedure for obtaining tM logi c diagram fro m a given transition table. The procedure requires that we determi ne the Boolean functions for the S and R inputs of each latch. The logic diagram is then obtained by dra wing the SR latches and the logic ga tes that implement the S and R functi ons . To demonstrate the procedure. we will repe at the implementation ex ample o f Fig. 9 .5. The' output circuit remains the same and will nor be repeated again. The transition table from Fig. 9.5(a ) is duplicated in Fig. 9.1~a ). From the infonnatio n gi ve n in the transition tab le and from the latch excitation table conditions in Fig . 9 .I~b). we can obtain the map" for the Sand R inputs of the latch. as shown in Fig . 9. I~C ) an d Cd). For example. the square in the second row and third column ( )'X I Xl = II I ) in Fig. 9 .I~a) requires a tra nsit ion from y = I to Y = I. The excitation table specifies S = X. R = 0 for uus cha nge . Therefore. the corres ponding sq uare in the S map is marked with an X and the o ne in the R map with a O. A ll other sq uares are filled with values in a similar manner. The maps are the n used to derive the simplified Boolean functions ""d R = .t j Th e logic diagram co nsis ts of an SR latch and the gate s required to implement the S and R Boolean funct ions . The circuit is as show n in Fig. 9.14<e) when a l'OR latch is used . With a NAND latch. we mu ..t use the complemented value s for S and R: and R .. ;"1 This circuit is shown in Fig. 9.1 4(0. The general procedure for implementing a circuit with SR latches from a given transition table can now be summariz ed as follow s: Section 9.3 Circuits with Lat ches 431 XIX 2 00 Y 0 1 01 11 10 0 0 0 CD CD 1 0 0 y y 5 R 0 0 1 1 0 1 0 1 0 1 0 X X 0 1 1 (b) Latch excita tion tab le (a) T ra nsitio n ta ble Y "' X 1X ' 2 + X V ' X lX 2 X1X2 00 01 11 10 0 0 0 0 ~1:~ 1 0 0 X ;Ix;! Y 00 Y 01 ~it t~l 1 111~: -~lB 0 11 10 X 0 0 0 (d) M ap for R '" x ' ) R R (e) Circuit with NO R latch ( f) Circuit with NA ND latch FIGURE 9 .14 Derivation of a latch circuit from a t ramitlon table 1. Given a transition table that specifies the exci tation function Y = Y1Y2 • • • ft. derive a pa ir of maps for 5 i and Ri for each i = I. 2• . .. • k, This is done by using the co nditio ns specified in the latch excitation table of Fig. 9.14(b). 2. Derive the simplified Boolean functions for each 5 j and Ri • Care mus t be take n not to make 51and RI equal to 1 in the same mintenn square. 3. Draw the logic diagram. using k latches together with the gates required to generate the 5 and R Boolean functions. For NOR latches. use the 5 and R Boolean functions obtained in step 2. For NAND latches. use the complemented values ot those obtained in step 2. Another usef ul example of latch implementation is found in Section 9.7. 432 Chapter 9 Asynchron ous Sequ entJa lloglc De bounce Circuit Input binary informati on in a digital system can be generated manually by means of mechanical switches. One position of the switch provides a voltage equivalent to logic I. and the other position provides a second voltage equivelent ro logic O. Mechanical switches are also used to start. stop. or reset the digital system. In testing digital circuits in the laboratory. the input signals will normally come from switches. A common characteristic of a mechanical switch is that when the arm is thrown from one position to the other. the switch contact vibrates or bounces several times before coming to a final rest. In a typical switch. me contact bounce may take several milliseco nds to die out, causing the signal to oscillate between I and 0 because the switch contact is vibrating. A debounce circuit is a circuit which removes the series of pulses mat result from a contact bounce and produces a single smooth transition of the binary signal from 0 to I or from 1 to O. One such circuit consists of a single-pole. double-throw switch connected to an SR latch. as shown in Fig. 9.15. The center contact is connected to ground that provides a signal equivalent to logic O. When o ne of the two co ntacts. A or B. is not connected to ground through the switch. it behaves like a logic- I signal. A resistor is sometimes connected from each contact to a fixed voltage to provide a firm logic-l signal. When the switch is thrown from position A to position B and back. the outputs of the latch produce a single pulse as shown. negative for Q and positive for Q' . The switch is usually a push button whose contact rests in position A. When the push button is depressed. it goes to position B. and when released. it returns to position A. The operation of me debc unce circuit is as follows: When the switch rests in position A . we have the condition 5 :::: O. R = ) and Q = I. Q' = O. (See Fig. 9.I I(b l.) When the switch is moved to position B. the ground connection causes R to go to O. while 5 becomes a 1 because contact A is open. This condition in turn causes output Q to go to 0 and Q' [ 0 go to I. After the switch makes an initial contact with B. it bounces several times. but for proper operation. we must assume that it does no! bounce back far enough to reach point A . The output of the latch will be unaffected by the co ntact bounce because Q' remains I (and Q remains 0) whether R is eq ual to 0 (contact with ground) or equal [ 0 I (no contact with ground). When the switch returns to position A. 5 becomes 0 and Q returns to 1. The output again will exhibit a smooth transition. even if there is a contact bounce in position A . s Q A r: -eGround ) R FIGURE 9 .1 5 Debounce circuit , Q' ~ ~ A _ 8 . A_ Secti on 9.4 9.4 Design Procedure 433 DESIGN PROCEDUR E The design of an asynchronou s sequential circuit starts from the statement of the problem and culminates in a logic diagram . There are a number of design steps that must be carried out in order to minimize the complexity of the circuit and to produce a stable circuit without critical races. Briefly, the design steps are as follows: A primitive flow table is obtained from the design specifications. The flow table is then reduced to a minimum number of states. Next, the states are given a binary assignment from which we obtain the transition table. Finally, from the transition table, we derive the logic diagram as a combinational circuit with feedback or as a circui t with SR latches. The design process will be demon strated by going through a specific example. Once this example is mastered. it will be easier to under stand the de sign steps that are enumerated at the end of this section. Some of the steps require the appli cation of formal proced ures. and these are discussed in greater detail in the sections that follow. Design Example It is necessary to design a gated latch circuit with two inputs G (gate) and D (data) and one output Q. Binary information present at the D input is transferred to the Q output when G is equal to I. The Q output will follow the D input as long as G = 1. When G goes to 0, the information that was present at the D input at the time the transition occurred is retained at the Q output. The gated latch is a memory element that accepts the value of D when G = I and retains this value after G goes to 0. Once G = 0, a change in D does not change the value of the output Q. Primitive Flow Table As defined previou sly. a primiti ve flow table is a flow table with only one stable total state in each row. Remember that a total stale consists of the internal state combined with the input. The derivatio n of the primitiv e flow table can be facilitated if we first form a table with all possible total states in the system. This is shown in Table 9.2 for the gated latch. Each row in the table specifies a total state, which consists of a letter designation for the internal state and a Table 9 .2 Gated-latch Total States Inputs Output Comments Stat e 0 G Q a b 0 1 1 0 D =Q because G = I 1 D = Q becauseG = I c 0 d f 0 0 0 0 0 0 0 e 1 1 After stale a or d After state c After state b orf After stale ~ 1 1 1 434 Chapter 9 Asynchron ou s Seq ue ntia l Log ic possible input co mbination for D and G. The output Q is also sho wn for each total state. We start with the IWO total states that have G = I. From the design specifications. we know that Q :::: O if DG :::: 0 1 and Q:::: 1 if DG :::: II . becauseDmust be eq ual to Q when G :::: I. We assign these conditions to states a and b. When G goes to O. the output depends on the last value of D. Thus. if the transition of DG is from 0 I to 00 to 10. then Q must remain 0 because D is 0 at the time of the transition from I to 0 in G. If the transition of DG is from I I to 10 to 00, then Q must remain I. This infonnation results in six different total states, as shown in the table. NOIe thai simultaneous transitions of two input variables, such as from 0 1 to 10 or from II to 00, are not allowed in fundamental-mode operation. The primitive flow table for the gated latch is shown in Fig. 9.16. It has one row for each state and one column for each input combination. First. we fill in one square in each row belonging to the stable state in that row. These entries are determined from Table 9.2. For exam ple. Slate Q is stable and the output is 0 when the input is 0 I. This infonnation is entered into the flow table in the first row and second column. Similarly. the other five stable stales together with their output are entered into the corresponding input columns. Next. we note that since both inputs are nor allowed to change simultaneously. we can enter dash marks in each row that differs in two or more variables from the input variables associated with the stable state. For exa mple, the first row in the flow table shows a stable state with an input of 0 1. Since only one input can change at any given time. it can change to 00 or 11. but not to 10. Therefore. we enter two dashes in the 10 column of row Q. This will eventually result in a don' t-care condition for the next state and output in this square. Following the same procedure, we fill in a second square in each row of the primitive flow table. Next, it is necessary to find values for two more squares in each row. The co mments listed in Table 9.2 may help in deriving the necessary infonn ation. For example. state C' is associated with input 00 and is reached after a change in input from state Q or d. Tberefore. an unstable state Inputs DG 01 11 00 b • c :;; ~ d , - ,- G), I <, - ,- - ,- d ,- G ,O - ,- ' ,- "- - ,- b ,- @,O !, - - ,- b ,- @,I , ,- - - < ,- ! CD , I FI(i,URE. 9 .16 Primitive flow table b ,- ' ,- @,O ' 10 Section 9.4 Design Procedu re 435 c is shown in column 00 and rows a and d in lhe flow lable. The output is. marked with a da..h 10 indicate a don 't-care condition. The interpretation of this situation is tha i if the circ uit is in Mable state a and the input changes from 011000. the circuit first goes to an unstable ne xt state c. which changes the present-slate value from a to c. ca using a trans ition to the third row and first col umn of the table. The unstable state values for the ot her square s are determined in a similar manner. All outputs associat ed with unstabl e states are marked with a dash 10 indicate don 't -care conditions. The assignment of actual values to the outputs is discu ssed further . after the design exampl e is completed . Reduction of the Primitive Flow Table The primitive flow table has only one stable ...tare in each row. The tab le ca n be reduced 10 a smaller number of rows if two or more stable states are placed in the same row. The grouping of stable states from separate rows into one com mon row is called merging. Merging a number of stable states in the same row means that the binary state variable ultimately assigned to the merged row will not change when the input varia ble changes . Thi s is beca use. in a primitive flow table. the stale variable changes every time the input change s, but in a reduced flow table, a change of input will not cause a change in the state variab le if the next stable state is in the same row. A form al procedur e for reduc ing a flow table is given in Section 9.5. In order to complete the design example in the current section without going throu gh the fonnal procedure. we will apply the mergin g process by using a simplified version of the merging rules. Two or more rows in the prim iti ve flow table can be merged into one row if there are noncon flicting stales and o utputs in each of the col umns. Whene ve r o ne state sy mbol and do n't -care entries are e ncounte red in the same colum n, the state is listed in the merged row. Moreover. if the stale is circ led in one of the ro ws. it is also circled in the merged row. The output value is included with each stable slate in the merged row. Becau se the merged stales have the same output. the state ca nnot be distinguished on the bas is of the output. We now apply these rules to the primitive flow table of Fig. 9.16. To see how this is do ne. the primitive flow table is separated into two parts of three rows each . as shown in Fig. 9.17(0). Each part shows three stable states that can be merged because there are no conflicting entries in eac h o f the fou r columns. The first column shows state c in all the rows and 0 or a das h for the output. Since a da... h represents a don ' t-care condition, it can be associated with any state or outp ut. The two da shes in the first column can be taken to be 0 output to make all three rows identical to a stable state c with a 0 output. Th e second column shows that the dashes ca n be assigned to correspond to a stable state a with a 0 output. Note that if a state is circled in one of the rows, it is also circ led in the merged row. Similarly. the third column can be merged into an unstable state b with a don' t-care output, and the fourth column can be merged into stable state d and a 0 output. Thus, the three row s a, c. and d can be merged into one row with three stable states and one unstable stale, as shown in the first row of Fig. 9.17(b ). 1be second row of the reduced table results from the mergi ng of rows b, e, andf of the peim iave flow table. In this examp le. there are two ways that the reduced tab le can be drawn. Fint., the letter symbo ls for the states can be retained 10 show the relationship between the reduced and pri mitive flow tables. Alternatively. because the t'A-'0 tables have the same output. we can assign a common letter sy mbolto all of the stable states of the merged rows . Thu s, states c andd are replaced by state a, and states r andfare replaced by stale b. Both alternatives are shown in Fig. 9 .17(b) . 436 Chapter 9 Asyn chr on ou s Sequential l ogic DG DG 00 ,,- 0 ° a c 0 ,0 10 ' ,- - ,d, - . ' ,- - - " - -, - d 11 01 ,- 00 01 11 10 b - ,- 0 ,- 0 .1 ~.- ~ ~ ! ,- - ,- b ,- 0 1 Q) l 0 ,- - ,- ~ ,- e 0. 0 ! (a ) Sta tes that are candida tes for merg ing DG DG 00 . 01 cd 0 °0 ° ~ " " , "[ <Z" 11 10 00 ' ,- 0. ° • "" • ' ,- 0 ,1 0 1 01 11 10 . , 0 ° 0 ° ' ,- 0 ° 0 ,1 , , - 0 ·1 0 .1 (b) Red uced ta ble (two alte rnatives) FIGURE 9 ,17 Redu ction of the pri mitive flow table Transit io n Table and Logic Diagram In order to obtain the circuit described by the reduced flow table, it is necessary to assign a distinct binary value to each state. This assignme nt converts the flow table into a transition table. In the general case, a binary state assignment must be made to ensure that the circuit will be free of critical races. The state-ass ignment problem in asynchronous sequential circuits and ways to solve it are discussed in Section 9.6. Fortunately, there ca n be no critical races in a two -row flow table; therefore, we can finish the design of the gated latch prior to studyi ng that section. Assigning 0 to sta te a and I to state b in the reduced flow table of Fig. 9.17(b), we obtain the transition table of Fig. 9.18(a ). The transition table is, in effect, a map for the excitation variable Y. The simplified Boolean function for Y is then obtai ned from the map as Y = DC + C 'y There are two don' t-care outputs in the final reduced flow table. If we assign values to the ourput as shown in Fig. 9.18(b), it is possible to make output Q identical to the map of the excitation function Y. Alternatively, if we replace the don' t-care by I when J = I and DC ::: 0 1, the map reduces to Q ::: Y. If we assign the other possible values to the don't -care outputs. we can make output Q equal to y. In either case, the logic diagram of the gated latch is as shown in Fig. 9.19. Sectio n 9.4 ,OG 00 01 11 0 0 0 I '0' 1'-- I lfJ 0 10 ,OG 00 01 11 10 0 0 0 0 0 0 - I i;J)~ Design Procedure '<§f§.: ~":'$:'- : ~'"''!J ~.,.,;: 1 437 1;/, ID,;1l JW~1 i)) U . L'i!""co; oic - Y (a) Y =- DG.;.G·y FIGURE 9. 18 Transition table and output map for gated latch O- - - -- - G ? Q , FIGURE 9 .19 Gated-latch logic diagram The diagram can also be implemented by an SR latch. Using the procedure outlined in Section 9.3, we first obtain the Boolean functions for S and R, as shown in Fig. 9.20(a). The logic diagram with NAND gates (see Fig. 5.4) is shown in Fig. 9.20(b). Note that the gated latch is a level-sensitive D-latch, introduced in Section 5.3 and Fig. 5.6. Assign ing Outputs to Unstable States The stable states in a flow table have specific output values associated with them. The unstable states have unspecified output entries designated by a dash. The output values for the unstable states must be chosen so that no momentary false outputs occur when the circuit switches between stable states. This means that if an output variable is not supposed to change as the result of a transition. then an unstable state that is a transient state between two stable states must have the same output value as the stable slates. Consider. for example, the flow table of Fig. 9.21(a). A transition from stable stale a 10 stable state b goes through the unstable state b. If the output assigned to the unstable state b is a I. then a momentary short pulse will appear on the output as the circuit shifts from an output of 0 in state a to an output of I for the unstable b and back to 0 when the circuit reaches stable slate b. Thus, the output corresponding to unstable stale b must be specified as 0 to avoid a momentary false output. 438 Chapter 9 Asynchron ous Sequential logic DG , 00 01 o 0 0 x 0 11 II" II xi DG 10 , 00 01 II 10 0 o x ~ 0 X x 0 u 0 0 (1) 5. DO R -D' O <a) Maps for 5 and R G-+ -- - i R (b) Logic diagram fiGURE 9 .20 Circuit with SR latch .. - 0 0 < .- @.o X 0 c 0 ' d .- , 1 d o.- Q). I X 1 o (9.0 • (I ) flow table (b) OUIPUI assignment fiGURE 9 ,21 Assign ing o utput values to unstable states If an output variable is 10 change value as a result of a change in state. tben this variable is assigned a don ' t-care condition. For exem ple.tbe transition from stable state b 10 stable state c in Fig. 9.21(a ) changes the ou tput from 0 10 1. If a 0 is entered as the output "aloe for the unstable state c, then the chan ge in the outpu t variable will not take place unti llhe end o f the transition. If a 1 is entered. the chan ge will take place at the stan of the transition, Since it makes no difference Section 9,5 Redu ction of State and Flow Tabl es 439 when the change in output occurs, we place a don't-care entry for the output associa ted with unstable state c. Fig. 9.21(b) shows the output assignment for the flow table, demonstrating the four possible combinations of changes in output that ca n occur. The procedure for making the assignment to outputs associated with unstable states can be summarized as follow s: 1. Assign a 0 to an output variable associ ated with an unstable state which is a transient state betw een two stab le sta tes that have a 0 in the corre sponding output variabl e. 2. Assign a I to an output variable associ ated with an unstab le state which is a transie nt state betw een two stable states that have a I in the corre sponding output variable . 3. Assign a don ' t-care condition to an output varia ble associated with an unstab le state which is a tran sient state betw een two sta ble states that have diffe rent value s (0 and I, or I and 0) in the corres ponding output variable . Summary of Design Procedure The design of asynchronous sequential circuits ca n be carried o ut by using the procedure il lustrated in the prev ious example. Some of the design steps need further elaboration and are ex plai ned in upcomin g sec tions. The procedural steps are as follo ws: t. Obtain a primiti ve flow table from the giv en de sign specifications. This is the mos t 2. 3, 4, S, 9 .5 diffic ult pan of the design , because it is necessary to use intuition and expe rience to arri ve at the correc t interpretation of the probl em speci fications. Redu ce the flow table by merging rows in the primitive flow tab le. A forma l proc edure for merging rows in the flow table is give n in Section 9.5. Assign binary state variables to eac h row of the reduced flow table to obtain the trans ition tab le. The state-ass ignme nt procedure that el iminate s any possible critical race s is gi ven in Sec tion 9.6 . Assign outp ut value s to the dashes associ ated with the unstable states to obtain the output map s. Thi s procedur e was explained pre viously. Simplify the Boolean functio ns of the excitation and output variables and draw the logic diagram, as shown in Section 9.2. The logic dia gram can be drawn with SR latches, as shown in Secti on 9 .3 and also at the end of Secti on 9.7. REDUCTION OF STATE AND FLOW TABLES The procedure for redu cing the number of internal states in an asynchron ous sequential circ uit resembles the proc edur e that is used for synchro nous circuits. An algorithm for the state reduction of a completely specified state table was gi ven in Secti on 5 .7. We will re view this algorithm and apply it to a state-reduction method that uses an implica tion table. The algorithm and [he implication table will then be modified to cove r the state reductio n of incompletely specified state table s. The modi fied algorithm will be used to ex plain the procedure for red ucing the flow table of asynchronous seq uential circuits. 440 Cha pter 9 Asynch ron ous Seq uential Log ic Tab le 9. 3 Stote Table ta Demamtrate Equivalent States Next St a te Prese nt State x = 0 a b a b c d Out put x = I .. =0 x = I c b d a 0 0 d d I I I I 0 0 Im plica tio n Table and Implied State. The state-reduction procedure for completely specified state tables is based on an algorithm that combines two slates in a slate table into one. as long as they can be shown to be equivalent. Two states are equ ivalent if. for each possible input. they give exactly the same output and go to the same next states or to equ ivalent next states"Table 6.6 shows an example of equ ivalen t states that have the same next states and outputs for each combination of inputs. There are occasions when a pair of states do not have the same next states. but. nonetheless. go 10equ ivalent next states. Consider. for example. the state table sho wn in Table 9.3. The present states a and b have the same output for the same input. Their next states are c and d for .r = 0 and b and a for .r = I . If we can show that the pair of states (c. d) are equi valent, then the parr of states (a , b) will also be eq uivalent, beca use they will have the same or equivalent next sta tes. When this relatio nship exists. we say that (a. b) imply (c, d) in the sense that if a and b are equivalent then r and d have to be equivalent. Similarly, from the last two rows of Table 9.3 . we find that the pair of stales (c, d) implies the pair of states (a, b). The characteristic of equivalent states is that if (a . b) imply (c, d) and (c , d) imply (a , b), then both pairs of states are eq uivalent: that is, a and b are eq uivalent, and so are c and d. As a consequence. the four rows o f Table 9.3 can be reduced to two TOW S by combining a and b into one state and c and d into a seco nd state. The check ing o f each pair of states for possible equivalence in a table with a large number of states ca n be done systematically by means of an implicatio n table, which is a chan that consists of squares. one for every possible pair of states, that provide spaces for listing any possible implied states. By j udicious use of the table, it is possible to determine all pairs of equivalent states. The Slate table o f Table 9.4 will be used to illustrate this procedure. The impli cation table is shown in Fig. 9.22. On the left side alo ng the vertical are listed all the states defined in the state table except the first. and across the bottom hori zontally are listed all the states except the last. The result is a display of all possible co mbinatio ns o f two stares. with a square placed in the interse ction o f a row and a column where the two states can be tested for equ ivalence. Two states having different outputs for the same input are not eq uivalent. Two states Ihat are nOI equivalent are marked with a cross [X] in the corresponding square. whereas their equivale nce is recorded with a check mark ( \'). Some of the squares have entries of implied states that must be investigated further to determine whether they are equivalent. The step-by-step proced ure of filling in the squares is as follows: First. we place a cross in any square corresponding to a pair of states whose outputs are not equal for every input. In this case, Section 9.5 Redu ction of State a nd Flow Tables 441 Table 9 .4 State Table to Be Reduced Ne xt State Pr e se nt St a t e Output x = 0 x = 1 a b b a d c , d a e a c e , f x = 0 f d d b e a x = 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 ~ b d , eJ r x x d x x x e x x x / x .c,, be x x x f , C, d x x b x x d,e J d,eJ c d , xl r FIGURE 9.22 Implication table state c has a different output than any other slate, so a cross is placed in the two squares of row c and the four squares of column c. Th ere are nine other squares in this catego ry in the implication table. Next, we enter in the remaining squares the pairs of states that are implied by the pair of states repre sentin g the squares. We do that starting from the top square in the left co lumn and going down and then proceeding with the next column to the right. From the state table , we see that pair (a, b) implies (d, e), so (d, e) is recorded in the square defined by column a and row b. We proceed in this manner until the entire table is completed. Note that states (d. e) are eq uivalent because they go to the same next state and have the same output. Therefore, a check mark is recorded in the sq uare defined by column d and row e, indicating that the two states are equi valent and independent of any impl ied pair. 442 Chapter 9 Asyn chron ous Sequential l ogic The next step is to make success ive passe s throug h the table to determine .... hethe r any addit ional squares should be marked with a cross. A square in the table is crossed OUI if it conrains atleast one implied pai r thai is not equivalent. For example. the ~ uare defined b)"a and f is marked with a cross next 10 C". d because the pair rc, tf) defines a square thai contain.. a cross. Thi s procedure is repe ated until no additi onal squares can be crossed 001. Finally. all the squares that have no crosses are recorded with check mark s.Tbese squares defme pairs of equivalent state s. In this e xample. the equivalent Mates are (a. b ) (d. t) (d. g) (to. go) We now combine pairs o f states into larger groups of equi valent stales. The libt three pairs can be combined into a set of rbree equivalent states (d. e, g) becau se eac h one of the states in the group is equivalent to the other two . Th e final partiti on of the states consists of the equi valent states found from the implication table. together w ith all the remaining states in the state table thai are not equivalent to any other state. Th is group consi sts of (a , b) (e ) (d. e. g ) (j) Thu s. Table 9.4 can be reduced from seven slates to four. one for eac h mem ber of the prec eding partit ion. The reduce d state table is obtained by replacing state b by a and slates e and g by d and is sbo w n in Table 9 .5, Me rg in g of the Flow Table There are occa sion s whe n the state table for a sequential circuit is incompletely specified" Th is happens when certain combinations of inputs or inpu t sequences never occur because of e xtemal or internal con straints, In such a case. the next sta tes and out put" thai should have occurred if all inputs w ere possible are never attained and are regarded as don 'Hare co nditions . Although synchronous sequential circuits may sometimes be represented by incompletely spec ified state tables. our interest here is with a.s ynchronous seq uential circuits. for w hich the prim itive flow table h alw ays incompletely specified. Incompletely spec ified states can be combined to redu ce the number of state.. in the flo w table. Such stares cannot be called equi valen t because the formal de finition of equiv alence reo quire !'> tha t all OUIPUIS and next ..rates be specified for all inputs. Instead. two incompletely specified slates that can be co mbined are said to be C"ompatible , Two Mates are compatible if. Table 9 .5 Reductd Stott TobIt Present State a Next State ... = 0 x = 1 d d d a f c , a f d a Output ... = 0 , =1 0 0 0 I 0 0 0 I Section 9.5 Reductio n of State and Flow Tables 00 01 II 10 b ,- - ,- a c,» 0 b - - ,,- (El I " - c 8 0 ', ' ,- - , - - ,- d , f f ,- 0 1 0 b .; d ,- c .; d ,/'x b, - @) o d .; d , /'x .; - - b ,- 0 , c,f X .; d , e x: c,f X ' ,- - ,- , ,- f c ,f X .; (a) Primitive flow ta ble 1 443 X d , /' x .; X c,f X ab c d (b) Implication table , f iGURE 9 ,2 J Flow and implication tables (or each po ssible input. they have the same output whenever it is speci fied and their next states are compatible whe never they are specified. A ll don 't-care conditions marked with dash es ha ve no effect in th e searc h (or compatible states . as they repre sent un spe cified conditions . Th e proc ess th at must be applied in ord er to find a suitable gro up of co mpa tibles (or the purpo se of mergin g a flow tab le can be di vide d into three steps: 1. Determine all com patible pairs by using the implication tabl e. 2. Find the maximal compatibles wit h the use of a merge r diagram . 3. Find a minima l collection of compatibles that covers all the states and is clo sed. Th e minim al collection of compatibles is then used to merge the row s of the flow tab le. We will now proc eed to show and ex plain the three pr ocedural steps. using the primitive flow ta ble from the de sign exam pl e in the pre viou s section. Co mpati ble Pairs Th e procedure for findin g compatible pairs is illustrated in Fig. 9.23 . The primitive flow tab le in (a) is the same as Fig. 9.16. The entries in eac h square represent the next state and output The dashes represent the unspec ified states or outputs. The implication tab le is used to fmd compatible States. j ust as it is used to find equi valent stales in the co mplete ly specified case. Theonly difference is that, when co mparing rows, we are at libe rty to adj ust the dashes to fit any des ired condi tion . Two states are co mpatible if, in every column of the co rres po nding rows in the flow table. there are ide ntical or compatib le sta tes and if there is no conflict in the outp ut val ues. For example. row s a and b in the flow table are fou nd to be compatible. but rows a end jwill be compatible only if c and j'are co mpatible . However, rows c and j'are not compatible, because they 444 Chapt er 9 Asynchron ous Sequ ential Logic have different outputs in the first column. This information is recorded in the implication table . A check mark de signates a square whose pair of states are compatible . Those states which are nor co mpatible are marked with a cros s. The remaining squares are recorded with the implied pairs that need further investigation. Oncethe initial imp lication table has been filled, it is scanned again to crossout the squares whose impl ied states are not compatible. The remaining square s that contain chec k marksdefine the co mpatible pairs. In the examp le of Fig. 9 .23. the compatible pairs are (a . b ) (a. c) (a. <!) (b. c) (b.1l (c. <!) (c .1l Maximal Compatibles Having found all the compatible pairs. the next step is to find larg er sets of states that are compatible. The maximal compatible is a gro up of compatibles that contains all the possible combinations of com patible states. The maximal com patible can be obtainedfrom a merger diagram. as shown in Fig. 9.24. The merger diagram is a graph in which each state is represen ted by a dot placed alon g the circumference of a circle. Lines are dra wn between any two corresponding dots that fonn a compatible pair. All possible co mpatibles can be obtained fro m the merger diagram by observing the geometrical patterns in which states are connected to eac h other. An isolated dot represents a state that is not compatible with any oth er state. A line represents a compatible pair. A triangle constitutes a compatible with three states. An a-state compatible is represented in the merger diagram by an a-sided po lygon with all its diagonal s connected. The merger diagram of Fig. 9.24{a) is obtained from the list of compatible pain:derived from the implication tab le of Fig. 9.23. There are seven stra ight lines connecting the dots. one for eac h compatible pair . The lines fonn a geometrical pattern consisting of two triangles connecting (a. c. d) and (b. ~.j) and a line (a. b). The maximal co mpatibles are (a. b) (a. c. <!) (b. c.1l • • ,j-- - --t---'I;-----:"'. g , d (a ) Maximal rompaliblc: (d. b) (d . C. d) (b. t." FI(j,URE 9 .24 Merger diagram s , t." ( b) Maximal eompatible: (b , c.lt) (c. d) (I) (II , b, Sectio n 9.5 Reduct ion of State and Flow Tables 445 Figure 9.24(b) shows the merger diagram of an eight-state flow table. The geometrical patterns are a recta ngle with its two diagonal s connected to form the four-state compatible (a . b. e. f) . a triangle (b. c. h). a line (c. d l. and a single state g that is not compatib le with any other state. The maximal compatibles are (a, b, ' ,f) (b, c. h)( c', d) (g) The maxim al compatible set can be used to merge th.e flow table by assigning one row in the reduced table 10each membe r of the set. However. quite often the maximal compatibles do not necessarily constitute the set of compatibles that is minimal. In many cases. it is possible 10find a smaller collec tion of compatib les that will satisfy the condition for merging rows. Closed-Covering Co nditio n The condit ion that must be satisfi ed for merging rows is that the set of chosen compatibles must cover all the states and must be closed. The set will cover all the states if it includes all the states of th.e original state table. The closure condition is satisfied if there are no implied states or if the implied states are included with.inthe set. A closed set of compatibles that covers all the states is called a closed covering. The closed-covering cond ition will be explained by means of two example s. Consider th.e maximal compatib les from Fig. 9.24(a). If we remove (a . b). we are left with a set of two compat ibles: (a. c, d) (b. e.f) All six states from the flow table in Fig. 9.23 are included in th.is set. Thus. the set satisfies the covering condition. There are no implied states for (a. c); (a. d) ; (c. d) : (b. e); (b,f) ; and (e, f), as is seen from the implication table of Fig. 9.23(b), so the closure condition is also satisfied. The refore, the primitive flow table can be merged into two rows, one for each of the compatibles. The detailed construction of the reduced table for this particular example was done in th.e previous section and is shown in Fig. 9. I7(b). The second example is from a prim itive flow table (not shown) whose implication table is given in Fig. 9.25(a). The compatible pairs derived from the implica tion table are (a. b) (a . d) (b, c) (c, d) (c, e) (d. e) From the merger diagram of Fig. 9.25(b). we determin e the maxi mal compatibles: (a, b) (a. d) (b. c) (c , d, e) If we choose the two compatibles (a, b) (c. d. e) then the set will cover all five states of the original table. The closure cond ition can bechecked by means of a closure table, as shown in Fig. 9.25(c). The implied pairs listed for each compatible are taken directly from the implication table. The implied pair of states for (a, b) is (b, c) . But (b, c) is not included in the chosen set of (a , b) (c. d. e). so this set of compatibles is not closed. A set of compatibles that will satisfy the closed-eovering condition is (a, d) (b. c) (c. d. e) 446 Chapter 9 Asynchron ous Sequential Logic ,----b b.c } x c b d. e} d b.c } x , x x a b a , d} I b.dl c d (a) Implication table (b) Merger diagram Co mpatibles (a. b) (a, d) (b , c) (c. d. t ) Implied states (b. c) (b. cJ (d ,e) (a, d) (b. c) (c) Closure table FIGURE 9 .25 Choosing a set o f compati bles The set is covered because it contains all five states. Note that the same stale can be repeated more than once. The closure condition is satisfied because the implied states are (b. c) (d. e) and (a , dl . which are included in the set. The original flow table (not shown here) ca n be reduced from five rows 10 three rows by merging rows a and d. b and c, and c. d. and e. Note also that an alternative satisfactory choice of clo sed-co vered co mpatibles would be (a, b) (b. c ) (d. e). In general, there may be more than one possible way of merging rows when reducing a primitive flow table. 9 .6 RACE -FREE STATE ASSIGNMENT Once a reduced flow table has been derived for an asynchronous sequential circuit. the next step in the design is to assign binary variables 10each stable state. This assignment results in the transformation of the flow table into its equivalent transition table. The primary objective in choosing a proper binary state assignment is the prevention of critical races. The problem of critical races was discussed in Section 9.2 in co njunction with Fig. 9.7. Section 9.6 Race-Free State Assignme nt 447 Crit ical races can be av oided by making a binary state ass ignment in such a way that only one variable changes at an y given time when a state transition occurs in the flow tab le. To accomplis h this obj ective, it is nece ssary that states betw een which transitions occ ur be given adjacent assignments. Two binary value s are said to be adjacent if they differ in only one variable. For example. 010 and a l l are adj acent becau se the y diffe r only in the third bit . In order to ensure that a transit ion table has no critical races, it is nec essary to test each pas· sible transition between two stable states and verify that the binary state variables change one at a time. Th is is a tedious proce ss, especially when there are many row s and columns in the table. To simplify matters. we will explain the procedure of binary sta te assignment by goi ng through ex amp les with only three and four row s in the flow table . These examples will demonstrate the general procedure that must be followed to ensure a race-free state assignment. The procedure can then be applied to flow table s with an y number of row s and columns. Three-Row Flow·Table Example The assign ment of a single binary variable to a flow table with two rows does not impose critical race problems . A flow table with three rows require s an assignm ent of two binary variables. The assignment of binary values to the stable slates may cause critical races if it is not done properly. Consider, for example, the reduced flow table of Fig. 9.26{a). The outputs have been omitted from the table for simplicity. Inspection of row a reveals that there is a transition from state a to state b in co lumn 0 1 and from state a to state c in column 11. This information is transferred into a transition diagram, as shown in Fig. 9.26(b). The directed lines from a to b and from a to c represent the two transitions just mentio ned. Similarly, the transition s from the other two rows are represented by directed lines in the diagram, which is a pictorial representation of all required transitions between rows. To avoid critical races, we must find a binary state assi gnme nt such that only one binary variable changes during eac h state tran sition. An attempt to find such an assignment is shown in the transition diagram . State a is assigned binary 00, and state c is assigned bin ary 11. Thi s assignme nt will ca use a critical race during the tra nsition from a to c becau se there are two changes in the binary state vari ables and the tran sition from a to c ma y occur directly or pass through b. Note that the tran sition from c to a also ca uses a race condition. bUI it is noncritical because the transition does not pass throu gh other states. 00 8 b , " a 10 b c " - 00 b - 01 8 (0 (0 c (0 (0 (0 (a) F10w table FI" URE 9 .26 Three-row flow-table example c - 11 (b) Transition diagram 448 Chap te r 9 Asyn chr on ou s Sequential Logic 00 01 11 10 a 8 b d 8 b a (0 (0 c d 8 8 8 d , - a = 00 b = 01 d = 10 c= ll c - c (b) Tran sition diagram (a ) Flow ta ble FIGURE 9.27 Flow tabl e with a n extra row A race-free assignment can be obtained if we add an extra row to the flow table. The use of a fourth row does not increase the number of binary state variables, but it allows the formation of cycles between two stable states. Consider the modified flow table in Fig. 9.27. The first three rows represent the same conditions as the original three-row table. The fourth row, labeled d. is assigned the binary value 10. which is adjacent to both a and c. The transition fro m a to c must now go throu gh d. with the resuh that the binary variables chang e from a = 00 . to d = 10, to c = I I, thus avoiding a critical race. This is accomplished by changing row a. column 11. to d and row d, column I I, to c. Similarly, the transi tio n from c to a is shown to go through unstab le state d even though column 00 repre sents a noncritical race . The transition table corresponding to the flow table with the ind icated binary state assign ment is shown in Fig. 9.28. Th e two dashes in row d represe nt unspecified states that ca n be considered don't-care conditions. However, care must be taken not to assign 10 to these squares, in order to avoid the possibility of an unwanted stable state being established in the fourth row. 00 01 11 10 ® 01 10 @ 00 c '" 11 10 00 6) 0) G (0 - FIGURE 9.28 Transition ta ble 11 11 C0 - Section 9 .6 Race-Free Stat e Assignment 00 01 II 10 b (0 d (0 b 0) d 8 a c 8 a b 8 d c , (2) (2) (a) Flow table c 449 b c d (h) Transition diagram FIGURE 9 .29 Four-row flow-tab le e xample Thi s example demonstrates the use of an extra row in the flow table for the purpose of achieving a race-free assignment. The ex tra row is not assigned to any specific stable stale, but instead is used to co nvert a critical race into a cycle that goes through adjacent transitions between two stable states. Sometimes, just o ne extra row may not be sufficient to prevent critical race s, and it may be nece ssary to add two or more ext ra ro ws in the flow table. This possibility is demonstrated in the next example . Four-Row Flow-Table Example A flow table with fou r rows requires a minimum of two state varia bles. Although a race-free assignment is sometimes possible with only two binary state variables, in many cases the requ irement of extra rows to avoid critical races will dicta te the use of three binary state variables. Consider, for example, the flow table and its corresponding transition diagram shown in Fig. 9.29. If there were no transi tions in the diagonal direction (from b to d or from c to a), it would be possible to find an adjace nt assignment for the remaining four transitions. With one or two diagona l transitions, there is no way of assigning two binary variables that satisfy the adjacency requirement. Therefore, at least three binary state variables are needed. Figure 9.30 shows a state assignment map that is suitable for any four-row flow table. States a, b. c. and d are the orig inal states. and e.I, and g are extra state s. States placed in adjacent squares in the map will have adjacent ass ignments. State b is assigned bin ary 00 1 and is adjace nt to the other three o riginal states. The transition from Q to d must be directed through the extra stale e to prod uce a cycle so that only one binary variable changes at a time. Similarly, the tran sition from c to Q is directed through g. and the transition from d to c goe s throu gh f. By using the assig nment given by the map. the (our-row table can be ex panded 10 a seven-ro w table that is free of critical race s. as shown in Fig. 9.3 1. Note that alth ou gh the flo w table has sev en row s. there are only four sta ble states . The uncircled states in the three ex tra ro ws are there merely to provide a race-free tran sition between the stable states. 450 Chapter 9 Asynchr on ou s Sequ ential Logic • .001 )'lYz ~oo O ~, 1 , 01 11 • c d f • , I 10 I ,=OlD d _t OI /"' 111 ,,_ Oil (til Tran~tion diavam (I ) Bin.ary uMltIlIDCUI FIGURE 9 .30 Choo sing edr. rows for the flow table 00 01 11 10 000 - , b 0 , 0 OOI - b 0 d , 011 - t: (0 s 0 • (0 010 - , - , - - 110 - - - - - 111 -/ , - - c tOI - d f 0 0 f IOO -e - - d - FIGURE 9 .31 Sta te assign ment to modified flow table Th is example demonstrates a possible way of selecti ng extra row s in a flow table in order to achieve a race-free assignment.A stare-essignmenr map similarto the one used in Fig. 9.30(a) can be helpful in most case s. Sometimes we can take ad vantage of unspec ified entries in the flow table . Instead of adding row s to the table. we may be able 10 eliminate critical races by directing some o f the state transitions through the don't-cere entri es . The actual ass ignment is done by trial and error. unti l a satisfactory assignme nt is found thai resolves all critical races. Section 9.6 Race-Free Sta te Assignment 451 Multiple-Row Method The method for making race-free stale assignments by adding extra rows in the flow table, as demonstrated in the previous two examples. is sometimes referred to as the shared-row method. A second method. called the multiple-row method. is not as efficient, but is easier to apply. In multiple-row assignment. each state in the original now table is replaced by two or more combinations of slate variables. The state-assignment map of Fig. 9.32(a) shows a multiple-row assignment that can be used with any four-row now table. There are two binary state variables for each stable state, each variable being the logical complement of the other. For example, the original slate a is replaced <XJO and a 2 I l l. The out put values, not shown here. must be with two equivalent states a \ the same in 0 \ and 0 2' Note that a l is adjacent to b l. C2' and d ., and 0 2 is adjace nt to c r- b 2• and d 2, and. similarly. each state is adjace nt to three slates with different letter designations. The behavior of the circuit is the same whether the internal state is a I 01"0 2, and so on for the other states. Figure 9.32(b) shows the multiple -row ass ignment for the original flow table of Fig. 9.29(a). The expanded table is formed by replacing each row of the original table with two row s. For example, row b is replaced by row s b l and b2. and stable state b is entered in columns 00 and 11 in both rows hi and b2. After all the stable states have been entered , the unstable states are filled in by reference to the assignment specified in the map of pan (a) . In choosing the next state for a given present state, a state that is adjacent to the present state is selected from the map . In the origina l table, the next states of b are a and d for inputs 10 and 0 I. respectively. In the expanded table . the next slates of b l are a I and d 2, because these are the states adjacent to b\ . Similarly. the next states of ~ are 0 2 and db because they are adjacent to b2. = = 00 b, b, no = b 1 ,, o Yl YJ 00 01 11 10 ., b, <, d, <, d, ., b, (a) Binary assignment FIGURE 9 ,3 2 Multiple-row assignment 100 - Cl 6) 6) 11 d, d, 10 6) 6) (0 d, (0 ., (0 d, (0 ., G) ., b , G) G) ., b, G) <, 101 - d 1 01 <, 8 8 8 8 (b) F10w table <, <, 452 Cha pte r 9 Asynchronous Sequential Logic In the mult iple-row ass ignment, the change fro m one stable state 10 another will always cause a chang e of onl y one binary state variable. Each stable stale has IWO binary assignments with exactly the same output. AI any given time, only one of the assignm ent s is in use. For ex ample, if we sian with state a I and input 01 and then change the input to 11. 0 1. 00 . and back 10 0 1, the seque nce of internal states will be a l. d l , C! . and a 2. Altho ugh the circuit starts in stale a I and termin ates in state a 2. as far as the input-output relationship is concerned. the two stares a I and e a are equivalent to stale a of the original flow table. 9.7 HAZARDS In designin g asynchro nous sequential circuits, care must be take n to co nform with certain restrictions and precautions 10 ensure that the circ uits operate proper ly. The circui t must be operated in funda mental mode with only one input changing at any time and must be free of cri tical races. In addit ion , there is one more phenomenon. called a hazard, thai may cause the circuit to malfunction . Hazards are unwanted switching tran sients thai may appear at the outpUI of a circ uit because different paths exhibit different propagation delays. Hazard s occ ur in combinational circuits, where they may cause a temporary false output value. When they occur in asynchronous sequential circuits. hazards may result in a transiti on 10 a wrong stable stare. It is there fore necessary 10 check for possible hazard s and determine whether they can cau se improper operations. If so, the n steps must be taken to eliminate their effect. Hazards In Combinational Circuits A hazard is a condition in which a change in a single variable produces a momentary change in output when no change in output should occ ur. The circuit of Fig. 9 .33(a) depic ts the occurrence of a hazard. Assume that all three inpu ts are initially equal to I . This causes the output of gate I 10 be I , that of gate 2 to be O. and that of the circuit 10 be 1. Now consider a change in x 2 fro m I to O. Then the output of gale I changes 10 0 and that of gate 2 changes to I, leavi ng the output at I. However, the output may momentari ly go 10 0 if the propagation delay through the inverter is taken into consideration. Th e delay in the inverter may cause the OUIput of gate I to change to 0 before the output of gale 2 changes to I . In that case. both inputs " y y (a ) Al'<D-QR circuit fiGURE 9.:n Circuits with hazards (b) NAND circuit Se ction 9.7 Hazards 4S3 of ga te 3 are mom en tari ly eq ual to O. ca using the ou tput to go to 0 for the short time du ring which the input signal from X2 is delayed while it is pro paga ting through the Inverter circuit. The circuit of Fig. 9.33(b) is a NA.'\'D implementation of the Boolean function in Fig. 9.33<b). and it has a hazard for the same reason . Beca use ga tes I and 2 are NA..'\ID gates. their outputs are the complement of the outputs o f the corres po nding AND gates. When X2 chang es from I to O. both inputs of gate 3 may be equ al to I. cau sing the output to prod uce a momentary change to 0 when it should have stayed at I. The two circuits shown in Fig. 9.33 implemem the Boolean function in sum-o f-produc ts form : Y "" X jX 2 + xix ) Thi s type of implementation may cause the output to go to 0 when it shou ld remain a I. If, howeve r, the circuit is implemented instea d in product-o f-sums fonn (see Section 3.5). name ly. Y - ( Xl + Xi )(X2 + X)) then the output may momentarily go to I when it shou ld remain O. Th e first case is referred to as static J-haza rd and the seco nd case as static tl-hazard. A third type of hazard , known as dynam ic hazard, causes the output to change thre e or mor e tim es when it should change fro m I to 0 or from 0 to 1. Figu re 9,3 4 illu strates the three type s of hazard s. When a circ uit is implemented in sum-o f-products fonn withAND -OR ga tes o r with NAND gates . the removal of static l-h azard guarantees th at no static O-hazards or dynamic hazard s will occ ur. A hazard can be de tected by inspection of the map of the part icular circuit. To illustrate. consider the map in Fig . 9 .35(a). which is a plot of the (unction imple mented in Fig. 9 .33 . The change in X2 from I 100 moves the circuit from mimenn I I I to mimerm 101. lbe hazard exi sts because the change in input results in a differe nt prod uct term cov e ring the two minrerms. :1f Ca) Sialic t ·hazard ( b) Sialico-haurd (c ) D ynamic baurd FIGURE 9 .34 Types of hazard s ",", , "o 00 01 11 10 I&j~!~ 1't I ~\ii ~ ess !;,.)J , "o 00 I FIGURE 9 .3 5 Maps illustrating a hazard and its removal 01 11 10 I II ~"'i.~ II 454 Chapter 9 Asynchronou s Sequential Logic FIC.URE 9 .3 6 Haza rd-free circu it Minterm 111 is cover ed by the produ ct term implemented in gate I of Fig. 9.3 3. and minterm 101 is cove red by the product term implemented in gate 2. Whenever the circuit must move from one produ ct term to another. there is a possibility of a momen tary interval when neither term is equal to l , giving rise to an undesirable 0 output. The remedy for eliminating a hazard is to enclose the two mmterms in question with anothe r product term that overlaps both groupings . Thi s situation is shown in the map o f Fig. 9.35(b). where the two minterm s that cause the hazard are combined into one product term. The hazard-free circuit obtained by such a configurati on is shown in Fig. 9.36. The extra gate in the circuit generates the prod uct term XIX ) . In general, hazard s in combinational circuits can be remo ved by cove ring any two minterms that may produce a hazard with a product term common to both. Th e remo val of hazards requires the addition of redundant gates to the circuit. Hazard s In Sequential Circuits In normal combinational-circuit design assoc iated with synchronous sequential circui ts. bazard s are of no concern, since momentary erroneo us signals are not general ly trou bleso me . However. if a mo mentary incorrect signal is fed back in an async hronous sequential circ uit. it may cause the circuit to go to the wrong stable state. Th is situation is illustra ted in Fig . 9 .37. If the circuit is in total stable state )' x l x2 = II t and input X2 changes from I to u. the next total stable stale should be 110. However. beca use of the hazard. output Y may go to 0 mome ntarily. If this false signal feed s back into gate 2 before the output of the inverter goe s to I. the outp ut of gale 2 will rem ain at 0 and the circuit will switch to the incorrect total stable stale 0 10. Th is malfunction can be eliminated by add ing an extra gate , as is done in Fig. 9 .36. Im ple mentat io n with SR Latches Another way to avoid static hazards in asynchronous sequential circuits is 10 implement the circu it with SR latches. A momen tary 0 signal applied to the S or R inputs of a NOR latch will have no effect on the state of the circuit. Similarly. a mom entary I signal app lied to the S and R inputs of a NAN D latch will have no effect on the state of the latch . In Fig . 9 .33(b), we observed Sectio n 9,7 Hazards ~=:f-:>--r " -4--{)o- '-_r--.. Y - X 1 X2 + X 455 ' 21 1 (a) logic diagram 1 00 01 o (0 (0 1 C0 0 11 10 , 1 (0 o 00 01 10 ..;S ~1g .,;~ t~w ~ ~ C0 C0 11 ~ 1" ~!i' , sssc (c) Map for Y (b) Transitio ntable FIGURE 9 ,)7 Hazard In a n asy nch ro no us sequ e ntia l circuit that a two-level sum-of-prod ucts expression implemented with NA~'D gate s may have a static I-hazard if both inputs of gate 3 go to I, changing the output from I to 0 momen tarily. But if gale 3 is part of a latch , the momentary I signal will have no effect on the output, becau se a third input to the gate will come fro m the com plemented side of the latch that will be eq ual to oand th us maintain the out put at I. To clarify wha t was just said, consider a NAND SR latch with the following Bool ean function s for S and R: S = AB + C D R = A'C Si nce this is a NAN D latch, we must apply the complemented val ues to the inputs: 5 - (AB + CD )' - (AB)'(CD)' R ~ ( A'C)' Thi s impleme ntation is show n in Fig. 9.38(a) . S is generated with IWO NAND gates and one AN D gate. The Bool ean funct ion for o utput Q is Q ~ (Q' S)' ~ IQ' ( AB)'(CD)'l' Thi s function is generated in Fig. 9.38(b) with two levels of NAND galeS.lfoutput Q is equal to I. then Q' is equal to O. If two of the three inputs go momenwily to I, the NAND gate assoc iated with outp ut Q will remain at I because Q' is maintained ill O. Figure 9.38(b) shows a typical circuit that can be used to consuuct asynchronous sequential ci rcu its. The two NAND gates form ing the latch normally haveIWo inputs. However, if the 456 Chapter 9 Asynchronou s Sequential logic A- - -!hijp;; 8 - - i"C'''V A' ==~~-----==10---+---- Q' c ('1 A' c ==jj#~-----==1~---+---- Q' ('1 FIGURE 9.38 Latch implementation 5 or R func tion s contain two or more product terms w hen ex pressed as a sum of produ cts , then the co rresponding N AND ga te of the SR latch w ill have three or more inpu ts . Thu s. the two term s in the original sum-of-prod ucts expre ssion for 5 are AD and CD. and eac h is imp leme nted wi th a NAND gate whose output is applied to the input of the NAND latch . In thi s wa y, each slate variab le requires a two- leve l circuit of NAND gate s. The first leve l cons ists of N M 'D gales that implement eac h product term in the origin al Bool ean ex pression of S and R. The second leve l form s the cross -coupled connectio n of the SR latch with inputs that come from the outputs of eac h NAND gate in the first level. Esse nti al Hazards Thus far, we have co nsidered wha t are known as static and dynamic hazards . Another type of hazard that may occur in asy nchrono us sequential circuits is ca lled an essential hazard. Th is type of hazard is ca used by uneq ual delays along two or more paths that ori ginate from the sam e input. An excessive delay through an inve rte r circ uit in co mpariso n to the del ay associ ated Sectio n 9 .8 De sig n Exa mple 457 with the feedback path may cause such a hazard. Essential haza rds cannot be corrected by adding redund ant gates as in static hazards. The pro blem thai they impose can be corrected by adj ustin g the amoun t of delay in the affec ted path. To avoid essential hazards. each feedback loop must be handled with individ ual care to ensure that the delay in the feedback path is long enough compare d with delays of other signals that originate from the input terminals. Thi s problem tends to be specialized, as it depend s on the particu lar circuit used and the size of the dela ys that are encountered in its vario us paths. 9. 8 DESIGN EXA MPLE We are now in a po sition to exami ne a complete design example of an asynchronous sequential circuit. Thi s example may serve as a refe rence for the design of other, similar circuits. We will demonstrate the meth od of design by followi ng the recomm end ed procedu ral steps listed at the end of Sectio n 9.4 and repeated next. Aft er stating the design specifications. 1. Deri ve a primit ive flow table. 2. Reduce the flow table by merging the rows. 3. Make a race-free binary state assignment. 4. Obtain the transition table and output map. 5. Obtain the logic diagram , using SR latches. Design Specifications It is necessary to design a negative-edge- triggered T flip-flop. The circ uit has two inputs, T (toggle) and C (clock) , and one output, Q. The output state is complemented if T = 1 and the clock C changes from I 10 0 (negative-edge triggering). Otherwise, under any other input condition, the output Q rem ain s unchan ged . Altho ugh this ci rcuit can be used as a flip-flop in clock ed seque ntial circuits, the internal design of the flip-fl op (as is the case with all other flip-flops) is an as ynchronous problem. Primitive Flow Table Th e deri vation of the primitive flow ta ble can be facili tated if we n est deriv e a ta ble that lists all po ssible total states in the circuit. Thi s tab le is sho wn in Tabl e 9.6 . We start with the inpu t cond ition TC = I I and assign to it sta te a. Th e ci rcuit goes to stale b and the output Q is com plemented from to I when C changes fro m I to 0 while T remains a 1. An ot he r cha nge in the out put occu rs when the circuit goes fro m state c to sta te d. In thi s case, T = I. C changes fr om I to 0 , and the outp ut Q is comple men ted from 1 to O. The other four states in the tabl e do not change the outp ut, because T is equal to O. If Q is initially 0 , it stays at 0 , and if it is initiall y at I, it stays at I, even though the c lock input changes . Th is ana lysis ide ntifies six total sta tes. Note that sim ultaneous transition s of tw o input vari ables, such as that fro m 0 1 to 10, ace not incl uded, as they violate the conditio n for fun da me ntal-mode operation. ° 458 Chapter 9 Asynchr on ous Sequ ential Log ic Table 9 .6 Specificotlon of Toto l Sta te.s Output Inputs State T a I I I I b c J , I g h o o o o C Q Comments I o Initial outp ut is 0 After state a Initial output is I After state c After state d orf o I I I o o o o o I o After state e or 0 After state b or h After state g or c I I I TC 00 01 II 10 a - ,- 1 ,- @,. b ,- b g ,- - ,- c ,- 0 ,1 - ,- h ,- c, - -, - d 0 ,1 d , , ,- @ ,o , 0 ,0 1 ,- - - d , I ' ,- CD,O , , - - , s G), I h g, - h ,- - - b ,- @, 1 c ,- - ,- FIGURE 9 .39 Primitive flow t able The primitive flow table is shown in Fig. 9.39. The infonnation for the table can be obtained d irectly from the cond ition s listed in Table 9.6. First. in each row, we fill in one square belonging to the stable state in that ro w, as listed in the table. The n we enter dashes in those squares whose input differs by two variables from the input correspond ing to the Mable state. Finally, we identify the unstable conditions by utilizing the information listed under the comments in Table 9 .6. Sect ion 9.8 b 459 a. c x x b , dx c d b .dx , b.dX X a, C X e,g x t ,h b , dx x / h X X a, C X / J e ,gx f a, , t, h Design Exam ple h C x / t, h x t, e, g X b ,dx b , d x j / a, C X b / c X e, g X t ,« d ,ex e , g X h x c ,f x t. d e X /1 X f g FIGURE 9 .40 Im plicat io n table Merging of the Flow Table The rows in the primiti ve flow table are merged by first obtaining all compatible pairs of states. Thi s is done by means of the impli cation table shown in Fig. 9.40. The squares that contain chec k mark s define the co mpatible pairs: ~n~~~~~ ~~~~n~n~ ~ The ma ximal compatibles are obtained fro m the merger diagram shown in Fig. 9.41. The geometrical patterns that are recognized in the diagram consist of two triang les and two straight lines. The maximal compatible set is (a,n (b, g, h) (c, h) (d, "n In this particular example, the minimal collec tion of compati bles is also the max imal comperible set. Note that the close d condition is satisfied because the set includes aU the original ei ght states listed in the primitive flow table, although states h and!are repeated 1be covering con-dition is also satisfied, because al l the compatible pairs have no implied stares, as can be seen from the im plication tab le. The reduced flow table is show n in Fig. 9 .42. The table shown in part (a) the figure retains the origi nal state sy mbols, but merges the corresponding rows. For eumpIe. 5WeS a and f are com patible and are merged into one row that mains the ariginalletter ymboIs the states. Similarly, the oth er three com patible sets of states are used to merge the flow rabIe into four rows , retai ning the eight ori ginal letter symbols. lbe 0Iher altenwive drawing the merged flow table is show n in part (b) of the figure. Here, we assign a common letter symbol m or ror 460 Chapter 9 Asynchr on ou s Sequential Logic • b , c d , FIGURE 9 .41 Merger d iag ram TC TC 00 e. f b.g. h C, " d, ~, f 01 11 ,. - <D o 0 0 ' .- 0 .1 0 .1 '. - 0 , .1 0 .1 0 ' 0 .0 (]j.o 00 10 1 b d. - c -.- 0 . d (. ) 0 01 11 10 0 0 0 0 0 ·0. 1 0 1 ' .- 0. 1 d .- 0 ' 0 ' d.0. 0 0 00. 0 b .- -.- (0) FIGURE 9.42 Red uced flow table to all the stable states in each merged row. Thus, the symbol/is replaced by a. g and h are replaced by b. and similarly for the other two rows. The second alternative sho ws clearly a fourstate flow table with only four leiter symbo ls for the states. State Assignment and Transition Table The next step in the design is to find a race-free binary assignment for the four stable states in the red uced flow table. In order to find a suitable adjacent assignment. we draw the transition diagram. as shown in Fig. 9.43. For this example . it is possible to obtain a suitable adjacent assignment without the need of ex tra states. becau se there are no diagonal lines in the transition diagram. Section 9.8 a '= 00 d ~ b 10 '= C'"' Design Examp le 461 01 11 fiGURE 9 .43 Transition diagram TC 00 a » 00 b = 01 C = 11 d = 10 10 01 ® @@ TC 11 10 00 01 11 10 Y1Y1 @ 01 00 0 0 0 X II @ 01 1 1 1 1 II 1 1 1 X 10 0 0 0 0 ®® ®® ® 01 10 00 (a) Transit ion ta ble (b) Output map Q - Y2 fiGURE 9 .44 Transition table and output map Substituting the binary assignment indicated in the tran sitio n diagram into the reduced flow tab le, we obtai n the transi tion table shown in Fig. 9.44. Th e output map is oblained from the reduced flow table. The das hes in the output section are assigned va lues according 10 the rules esta blishe d in Sect ion 9 .4 . log ic Diagram The circ uit to be designed has two state vari ables, Y. and Ylo and ODe output. Q. The output map in Fig . 9.44 shows tha t Q is eq ual to the state variable Y2-1be impkmentation of the circuit requi res two SR latches, one for eac h state variable. 1be maps for inpuIs S and R oflbr: two latches are shown in Fig. 9.45. The maps are obtained from the informatiOll given in the transition tab le by using the conditions spec ified in the latch excitation IabJc 5bown in Fig.. 9 .14(b). The simplified Boolean functions are listed under each map. 462 Chapter 9 Asynchron ou s Sequent ial logic TC 00 w 01 TC II 10 00 11 01 10 M 0 0 0 00 X r~ 0 01 X 0 01 0 0 11 0 X ~: X 11 10 fl X 0 X 10 0 0 0 (a) Sj = Y2 TC +y'2 rC' (b) R I -Yl rC'+y 'l TC TC TC y,y, 00 01 11 10 00 0 0 0 r! 01 X X X 11 X X 10 0 0 00 01 11 10 00 X X X 0 ~ 01 0 0 0 0 X 0 11 0 0 0 " 0 0 10 X X X /!/~' li,I" (C) S2 - Y'1 TC' M I I (d ) R1 - Yl TC FIGURE 9 .45 Maps for latch Inputs The logic d iagram of me circuit is shown in Fig. 9.46. Here we use two NAND latches with two or three inputs in each gate. This implementation is acco rding to me pattern established in Section 9.7 in conjunction with Fig. 9.38(b). The Sand R input functions requ ire six NAND gates for their implementation. The examp le just presented illustrates the complexity involved in designing asynchrono us sequential circuits. It was necessary to go through 10 diagram s in order to obtain the final circuit diagram. Although most digital circuits are synchronous, there are occas ions when one has to deal with asynchronous behavior. The basic properti es presented in this chapter are essential to a full understanding of the internal behavior of digital circuits. Problems 463 T r-, c " "- " ~ ~' V; ~ ~ Y, =-"- ~~l~~ ~ !!J!:l 'r Y' , ss 'It};~? = ;tJ%'J;j - ~ --~?!;!:}: ..:.:.,:.-.... Y, Q Y', FIGURE 9.46 l ogic diagram of negat lve-ed ge-triggered Tflip-flop PROBLEMS Answers to problems marked with e appear at the end ofme book. 9 .1 (a) Explain the difference: between async hronous and synchrooous scqumtial cin:uils. (b) Define fundamental-mode: operation. (c) Explain the: differenc e: between stable: and unstable stares. (d) What is the difference between an internal state and a wu.I stale? 9 .2* Derive the transition table for the asynchronous sequential circuit shown in Fig. P9.2. Dc:tc:mlinc: the sequence of internal states YlY2 for !he following sequc:ncc ofinpJIs x,x2: 00. 10. 11,01. II . 10.00. 464 Chapter 9 Asynch ronous Sequential l ogi c " --" -C>o-----f~~ Y, " ----,- t-- - - --'- -f'; , Y, FIGURE P9 .2 9 .3 An asynchronous sequential circuit is described by the excitation function Y = XIX2 + (Xt + Xl»' and the output function Z=J (a) (b) (c) (d)· 9 .4 Draw the logic diagram of the circuit. Derive the transition table and output map. Obtain a two-state flow table. Describe in words the behavior of the circuit. An asy nchronous sequential circui t has two internal states and one outpu t. The two excitation functions and one output function descri bing the circuit are, respectively. Y1 + XI)' 2 + Xl}'1 + X\Yt)'2 + xiYt x 2 + )' 1 = x lx2 Y 2 = x2 Z = (a) Draw the logic diagram of the circuit. (b) Derive the transition table and output map. (c)· Obtain a flow table for the circuit. 9 .S Co nvert the flow table of Fig. P9.5 into a transition table by assigning the following binary values [0 the states: a = 00, b = I I. and c = 0 1. (a) Assign values to the extra fourth state to avoid critical races. (b) Assign outputs to the don' t-care states to avoid momentary false outputs . (c )· Derive the logic diagram of the c ircuit. 9 .6 Investigate the transition table of Fig. 1'9.6, and determine all race conditions and whether they are critical or noncritical. Determine also whether there are any cycles. 9 .7 Analyze the SR latch with control ShOWD in Fig. 5.5. Obtai n the transition table. and show that the circuit is unstable when all three inputs are equal 10 I. 9 .8 Modify the d iagram of Fig. 5.5(a) 10 convert it into a JK type of latch by inserting two feedback co nnectio ns from the outputs to the inputs. Show that the circuit is unsta ble when J '" K '" I while the control input C remains in the I state. Probl em s b c 00 01 0 .0 b .- ..- 0. .. - II 0 b .- 46 5 10 , .- 0 . 1 0 .0 ' . - 0 ' 0. 0 FIGURE P9.S 00 01 II 10 10 @ II 10 00 10 10 01 e II 01 00 (0 (0 10 II ~I ®® FIGURE P9.6 9 .9 For the asynchronous sequential circuit shown in Fig. 1'9.9, (a ) derive the Boolean functions for the outputs of the two SR larches Y1 and Y2' Note mat the S input of the second latch is xIJi. (b) derive the transition table and OUl pUl map of the c ircuit. r --iC:><>--,..-- - - - - - - - - - , Y, " - -f::><>-- - - - - - - - - - - - --' FIC.URE P9.9 466 Chapter 9 Asynchronous Sequential Logic 9 .10* Implement the circuit defined in Problem 9.3 with a NOR SR latch. Repeal with a :"OAXD SR latch. 9 .11 Implement the circuit defined in Problem 9.4 with NA~'D SR latches. 9 .12 Obtain a primitive flow table for a circuit with two inputs, Xl and X2. and two outputs. '::\ and '::2, that satisfy the following four conditions: (a) When X I.t2 ::: 00, the output is l1l2 :: 00. (b) When x l ::: I and x 2 changes fromn ro I, the outpul is l l l 2 = 01 . (c ) When X2 = I and X l changes from 0 10 I, the output is ll:::2 = 10. (d) Otherwise, the output does not change. 9 .13· A traffic light is installed at aj unctionof a railroad and a road. The light is controlled by {\\"O switches in the rails placed I mile apart on either side of tile junction. As....'itch is turned on ....hen the train is over it and is turnedoff otherwise. The traffic light changes fromgreen (logic 0) to red (logic 1) when the beginning of the train is I mile from the junction. The light changesback to green when the end of the train is I mile away from the junction. Assume that the length of the trainis less than 2 miles. (a) Obtain a primitive flow table for the circuit. (b) Show thar the flow table can be reduced 10 four rows. 9.14 It is necessary to design an asynchronous sequential circuit with two inputs. Xl and X 2' and one output. z. Initially, both inputs and output are equal 100. When X l or X 2 becomes I. ::: becomes 1. When the second input also becomes I, the output changes 10 O. The output stays at 0 until the circuit goes back to the initial state. (a) Obtain II primitive flow table for the circuit. and show that it can be reduced to the flo\\ table shown in Fig. 1'9.14. (b) Complete the design of the circuit. 00 01 0 ,0 0 b . ,- 11 1 10 ' ,- 0 1 @ ,o @ ,o @ ,o FIGURE P9.14 9 .15 Assign output values to the don't-care states in the flow tables of Fig. 1'9.15 in such a way as 10 avoid transient output pulses. 9.16 Using the implication-table method, show that the stale table listed in Table 5.7 cannot be reduced any further, 9 .17 Reduce the number of states in the state table listed in Problem 5.12. Use an implication table. 9 .18· Merge each of lhe primitive flow tables shown in Fig. P9.18. Proceed as follows: Problems • 0 0 b .- 00 11 10 - .- d .- • 0 ,. - b 01 00 01 0 b .- .. - 0 b. - 0 0 1 0 1 0 0 0 0 ' '.- e, b '.- 0 10 c b .- - - b.- 0 0 c b .- d e- 0 1 , .- 0 1 d 1 10 11 0 d .- 0 c , »: 11 -I 1b) 1') FIGURl P9 .15 00 • 0 • 0 0 b.- - .- .. b b - '. - - - d 00 11 01 .. 0 0 10 - 0 0 '.d '.- 0 1 - - - .• ' .- - - 1.- 0 0 I - .- , .- (D o ' .- 0 0 -.- - .r h ' .- -.- - .- 0 0 c - .- d .- .. (. ) FIGUR( " .18 1 <,- , 0 0 10 01 11 1.- - - - . - - d. - '.- 0 j .- 0 - ·.0 b .- , .- - .- • .. -.- ,.- 0 I ' .- (D I - , -•00 i -.- 0 , .- 1 - .- · · 0 0 .- .- .- d. d. - I. - (D l b. - • ..- - .- 1.1 (b) @ O 467 468 Chapter 9 Asyn chr on ou s Sequentia l l ogic (a) Find all companb le pain by means of an implication table. (b) Find lhe max ima l co mpa tibles by means of a mefJ!:er diagram, Ic) Find a rnim maJ set of compatibles that covers all the ~ and is closed. 9 .19 la) Dbtain a binat), slate: assignmenl for the reduced now table st.o.o. n in Fig. 1'9.19 ..-\\{" d emil:al race co nditions. Ib ) Obtain Ih~ I~ic diag ram of !he circun, using l"Al" D latc hes and !al~s. 9 .20'" Find a critical race-free slat~ ass ignme nt for lhe red uced now table: shu.... n in Fig . 1'9.1:0. 00 o 11 01 0 °0 1 b ,- 0 "0 " 10 d, - c - b 0 ,- < 0 ,- - ,- d, _ d 0 ,- 0 ,- 0 10 00 01 0 ° 1 FIGURE P9. 19 o <3 b 0 , d d FIGURE P9.20 11 <3 GG d (0 0 0 b , 10 < d (0 0 , f c (0 c f (I) b 0 (I) I Ref eren ces 9 .21 469 Co nside r the reduc ed flow tab le shown in Fig. P9.l l . fa) Obta in the transition diag ram. and show that three state variables are needed fo r a race-free binary slate assignme nt. (b) Obt ain the expanded flow tabl e, usin g the multiple -row me thod of assig nme nt a, speci fied in Fig. 9.32(a ). a 00 01 11 (0 c (0 (0 c (0 (0 (0 8 0 0 a c d d u b " FIGURE P9.2 1 9 .22* Find a circuitthat has no Static hazards and implements the Boo lean function F ( A, 8 . C, D) = ~( O, 2, 6. 7, 8. 10. 12) 9 ,23· Draw the logic diagram of the produc t-of-sums express ion Y = (Xl + .1.'2)(.1.': + x J) Shuw that there is a static If-hazard when xl and .1.' 3 are equal to 0 and a way to remove the hazard by addin g one more OR gate . x2 goes from 0 to I . Find 9 ,24 Th e Boo lean fun ctions for the inp uts of an SR latch are S = .t\ x~x~ R '" Xl ,t ~ + + xlx:,tJ X~.t l Obt ain the circui t diagram , using a minim um number of NAI'IlD gates. 9 .25 Com plete the design of the circuit specified in Problem 9.13. REFERENCES 1. 2. BREEDING. K. J. 1989 . Digital Design Fundamentals. Engle wood Cliffs. NJ: Preence-Han. FRIF.D.'oI.-\I\, A. D. 1986. Fundamentals of Logic Design and Swilching TMo~: Rockville, MD : Co mputer Science Press. 470 Chapter 9 3. 4. 5. 6. 7. Asynchronous Sequential Logic Hiu. . F. J.• and G. R. PETERsoN. 1981. Introduction to Switching Theory and lngical Design. 3d ed. New York: John Wiley. KOHAVI. Z. 1978. Switching and Automata Theory, 2d ed. New York: ~tcGraw-Hill . MCCLUSKEY. E. J. 1986. lngic Design Principles. Englewood Cliffs. r-;J: Prentice-Hall. S ELso~. V. P.. H. T. NAGLE. J. D. IRWI:". and B. D. CARROLL. 1995. Digital lngic CircuttsAnalysis and Design. Upper Saddle River. NJ: Pre ntice Hall. U:"GER. S. H. 1969. Asynchronous Sequential SWitching Circuits. New Yorl;: John Wiley. Chapter 10 Digital Integrated Circuits 10 .1 INTRODUCTION The inte grated circuit (lC) and the digital logic families were introduced in Section 2.9. This chapter presents the electronic circuits in each Ie digital logic family and analyzes their elec tric al operatio n. A basic knowledge of electrical circuits is assumed. The Ie dig itallogic families to be considered here are RTL DTL TTL ECL MOS CMOS Re sistor-transistor logic Diode-transistor logic Transistor-transistor logic Emitter-coupled logic Metal -oxide semic onductor Complementary metal-oxide semiconductor The first two, RTL and DTL. have only historical significance. since they are DO longer used in the de sign of digital sys tems . RTL was the first commercial family to have been used exten sively. It is included here because it represents a use ful starting point for explaining the basic operation of digital gates. DTL circui ts have been replaced by TIL In fact, TIl. is a modification of the DTL gate. The operation of the TI1.. gate will be easier 10 undersund after the DTL gate is analyzed. TI1.., ECl, and CMOS have a large numbc:rofSSI circuits, as well as MSl, lSI, and VLSI components. The basic circuit in each Ie digital logic famil y is a NAND or NOR gate. This basic circuit is the primary building block from which all other, morecompudigi!al(l'.'O'COlSucobtained. Each IC logic family has a data book that lists all the integrated cin::uits iD Ibat family. The differences in the logic functions available from each family are DOt 10 mucb iD tbc: functions that 471 472 Chapter 10 Digi ta l Integ rated Circuits they achieve as in the specific electrical characteristics of the basic gate from which the circuit is constructed. NAND and KOR gates are usually de fined by the Boolean functions that they implement in terms of binary variables. In analyzing them as electronic circ uits. it is neces'illry to inve stigate their input-output relationships in terms of two voltage levels: a IIigh le vel. designated by H. and a law level, designated by L. As mentioned in Section 2.8. the assig nment of binary 1 to H results in a positive logic system and the assignment of binary 1 to L results in a negative log ic system. The truth table, in terms of H and L, of a positive-logic r-;'t\..-..;"D gate is she .... n in Fig. 10.1. We notice that the output of the gate is high as long as one or more inputs are low. The output is low only when both inputs are high. The behavior of a positive-logic NA-SD gate in terms of high and low signals can be stated as fo llows: If any input of a NAN D gate is low. the output is high. If all inputs of a NAND gate are high. the output is low. The corresponding truth table for a positive-logic :-':OR gate is shown in Fig. 10.2. T he output of the NOR gate is lo w when one or more inputs are high. The output is high when both inputs are low. The behavior of a positive-logic NOR gate, in terms of high and low signals. can be stated as follows: If any input of a NOR gate is high. the output is low. If all inputs of a NOR gate are low, the outpu t is high. These statements for NAND and NOR gates must be remembe red. because they will be u...ed during the analysis of the electronic gates in this chapter, Inputs ., I. I. 1/ 1/ Output y z L II L II II 1/ II L FIGUR£ 10.1 Positi ve-log ic NAND gate Inputs O ut put r j' z I. I. L 1/ 1/ 1/ 1/ 1/ L L L L FIGUR£ 10.2 Positive-log ic NOR gate Section 10.2 Specia l Characterist ics 473 A bipolu r junrtion rrensts ror (B lT) can be either an npll or a pup junction transistor. in conrrast. the fi eld-effect transistor (FET ) is said to be unipolar. The operation of a bipolar transistor dep end s o n the n ow of two types of carriers: electrons and holes. The opera tion of a unipola r transistor depe nds on the flow of only one type of majority carrier, which may be electron s (in an n-c hannel tran sistor ) or holes (in a p-channel transistor ). The first fou r digita l logic fam ilies listed at the beginning of the chapter-c-Rf' L, DTl, TTL, and EC l - use bipolar transistors. The last two families- MOS and CMOS --employ a type of unipolar tran sistor ca lled a meral-oxide -serniconductor field-effe ct transistor. abbrevia ted MOSFET. or MOS for short. In this chapter. we first introdu ce the most common characteristics by which the digital logic fam ilies are co mpare d. We then desc ribe the properties of the bipolar transistor and analyze the basic gates in the bipo lar logic families. Finally. we explain the operatio n of the MOS transistor and introduce the basic gates of its two logic families. 10 .2 SPECIAL CHARACTERISTICS The charac teris tics of Ie digital logic famili es are usually compared by analyzing the circuit of the basic gate in each fam ily. Th e most import ant parameters that are evaluated and compared are fan-out , power dissipation, propa gation dela y, and noise margin. We first explain the properties of these parameters and then use them to compare the Ie logic families. The fan-out of a gate specifies the nu mber of standard loads that can be conne cted to the output of the gate without degrading its norma l operation . A standard load is usually defined as the amount of current needed by an inpu t of anoth er gale in the same logic famil y. Som etime s the term loading is used instead of fan-out. The term is derived from the fact that the outp ut of a gate can supply a limit ed amount of curre nt. abo ve which it ceases to operate properly and is said 10 be o verloaded. Th e output of a gate is usually connected to the inputs of other gates. Each input requir es a certain amount of current from the gat e outpu t, so tha i eac h additional connection adds to the load of the gate. l oading rule s are sometimes specified for a family of digi tal ci rcuits. Th ese rule s give the ma ximum amount of loadin g allowed for each output of eac h cir cuit in the family. Exceed ing the specified maximum load may cause a malfunction because the circuit cannot supply the powe r demanded of it by its loads. The fan -out is the maximum number of inputs that ca n be co nnected to the output of a ga le and is expre ssed by a number. The fan -out is calculated from the amount of current available in the output of a gate and the amount of current needed in each input of a gale. Consider the cooncdions sOOwn in Fig. 10.3. The outpu t of one gate is connected to one or more inputs of other pres. 1be OUtpul o f the gale is in the high-voltage level in Fig. 1O.3(a ). It provide s a current source IOH co all the gate inputs connected to it. Each gale input requ ires a current lIN for proper operation_Similarly, the output of the gate is in the low -voltage level in Fig. 1O.3(b). It provides a current sink IOL for all the gate inputs connected to it. Each gale inp ut supplies a currenll,L_'The fan--oul: of me gale 474 Chapte r 10 Digital Integrate d Circuits - 10 • - J,. I" To other inputs To other inputs (a) High -level outpu t (b) Low-level output FIGURll0.J Fan-c ut computation is calculate d from the ratio IOH1IlH or IodIn , whichever is smaller. For exam ple. the standard TIL gates have the following values for the curre nts: IOH = 400 p.A I lH = 40 p.A IOL = 16 mA In = I.6 mA The two ratios give the same number in this case : c4"OO,-,,,,A , :.: = 16 rnA 40 p.A = 10 1.6 rnA Therefore. the fan-out of standard TIL is 10. Thi s means thai the outpu t of a TIL Bate can be connected 10 no more than 10 inputs of other gates in the same logic family. Otherwise. the gale may not be able to drive or sink the amount of current needed from the inputs that are connected 10 it. Pow e r Dissipation Every electronic circuit requires a cert ain amou nt of powe r to operate. The pow er dissipation is a parameter expre ssed in milliwatts (mW) and repre sents the amount of power needed by the gate. The number that represents this parameter doe s not include the power delive red from another gale ; rather. it repre sents the power delivered 10 the gate from the power supply. An Ie with four gates will require. from its power supply, four times the power dissipated in each gate. Section 10.2 Specia l Characteristics 475 The amo unt of pow er tha t is dissipate d in a gate is calculated from the supply voltage Vee and the curre nt Icc that is drawn by the circuit. The pow er is the product Vee x l ee. The current drain from the power supply depends on the logic state of the gate. The current drawn from the pow er supply when the output of the gate is in the high-v oltage level is termed ICCH ' Whe n the output is in the low-voltage level , the current is tccc The average current is I cc ( avg ) = lCCH + 2 ICCL and is used to calc ulate the average power dissi pation: PD(avg ) = lcd avg ) x Vce For examp le, a standard TTL NAND gate uses a supply voltage Vcc of 5 V and has current drain s ICCH = I rnA and ICCL = 3 rnA. The average current is (3 + l )/2 = 2 rnA. The average power dissipation is 5 x 2 = 10 mW. An Ie that has four NAN D gate s dissipates a total of 10 x 4 = 40 mW . In a typical digital system, there will be many ICs. and the power required by each one must be considered. The total power diss ipation in the system is the sum total of the power diss ipate d in all the ICs. Propagation Delay The propa gation delay of a gate is the average transi tion-de lay time for the signal to propagate fro m input to output when the binary input signal changes in val ue. The signals through a gate take a certain amount of time to propagate from the inputs to the outpu t. Th is interval of time is defined as the propagation delay of the gate. Propagation delay is meas ured in nanoseconds (ns); I ns is equal to 10- 9 seco nd. The signals that travel from the inputs of a digita l circuit to its output s pass thro ugh a series of gates. The sum of the propagation delays through the gates is the tota l delay of the circuit. When speed of operation is important, each gate must have a short propagation delay and the digital circuit must have a minimum number of gates between inputs and outputs. The ave rage propagation delay time of a gate is calculated from the inpu t and output waveforms, as sho wn in Fig . lOA. The signal-delay time between the input and the output when the output changes from the high to the low leve l is referred to as rnn - Similarly, when the output goes from the low to the hig h level , the dela y is tPLH ' It is customary to measure the time bet ween the 50 percen t point on the input and outp ut transitions. In general. the two delays are not the same, and both will vary with loadi ng co nditions. Tbe ave rage propagaUoo-delay time is calculated as the average of the two delays. As an example. the delays for a standard TfL gate are t,.HL = 7 ns and t,.LH = II us. These quantitie s are give n in the TfL data book. and are measured with. load resiswx::e of 400 ohm s and a loa d capacitance of 15 pF. 1be average propagatioD delay 01theTIl. pte is ( 11 + 7)/2 ~ 9 ns. Under certain conditions. it is more imponam to know" the mnjnvmdelly timI: ata gate rather than the average value. The TIL data book lists the foUowiDg ",Alli n _ prnpIgJ'ion delays for a 15 ns andInn = 22 ns.. Wbcn spccdofq:cr isaitical. it is standard NAND gate: tPHL necessary to take into account the maximum delay to ensure properopec 01 the circuiL = 476 Chapter 10 Digital Integrated Circuits Input "1\.'-- 1/ / _ _ __ Output '\ I Time 1/ / I\. - If'L H ~ FIGURE 10.4 Measure ment of propaga t ion delay The input signals in mo st digital circuits are ap plied simultaneously to more than one gate. All the gates that are connected to external inputs const itute the first logi c leve l o f the circuit. Ga tes that recei ve at least one input from an output of a firs t-le....el gate are considered to be in the seco nd logic level. and similarly for the third and higher logic level s. Th e total propagatio n del ay of the circuit is eq ual to the pro pagat io n dela y o f a gate times the num ber of logic levels in the circu it. Thus, a reduction in the number of logic levels results in a red uction in sig nal del ay and faster circ uits. T he redu ction in the propagation del ay in ci rcuits ma y be more im portant than the reductio n in the total number of gale s if speed of operatio n is a maj or factor. No ise Margin Spurious electri cal signals fro m indu strial and oth er so urces ca n induce unde sirable voltages on the con necting wires betw een logic circu its. These unwanted sig nals are re ferred to as notse. There are two types of noise. DC noise is ca used by a drift in the voltage levels of a signal. AC noise is a random pulse that may be created by other switching signals. Th us. noise is a term used to denote an undesirable signal that is superimposed upo n the norm al operating signal. The noise ma rgin is the ma ximum noise voltage added to an input signal of a digital circuit that doe s nOI ca use an undesirab le change in the ci rcuit 's outp ut. The ab ility of ci rcuits to operate reliably in an environme nt with noise is import ant in many applicatio ns. Noise margin is expressed in vo lts and represents the maximum noise signal that ca n be tolerated by the gate. The noise margin is ca lculated from know ledge of the voltage signal availab le in the output o f {he ga te and {he voltage signal req uired in the input of the gate . Figure 10.5 illustrates the signals used in computing the noise margi n. Pan (a ) shows the range of out put voltages that can occ ur in a typica l gale. Any voltage in the gate output between Vee and VOH is considered 10 be the high-level state, and any voltage between 0 and VOL in the gate output is considered to be the low-leve l slat e. Voltage s betwee n VOL and VOH are ind eterm inate and do nOI appear Section 10.3 Bipolar -Transistor Characteristics 477 j High-state noise margin Low -stall: noise margin ===""" 0 (a) Output voltage ra nge (b) Inpu t voltage ra nge FIGURE 10.5 Signals for eva luat ing noise margin under normal operating conditions. ex cep t d uring tran sition bet ween the two levels . The co rresponding two volt age ran ges tha t are recog nized by the input of the gate are indi ca ted in Fig . 1O.5(b ). In order to compensate fo r any noise signal. the circuit must be designed so that V/L is greater than VOL and V/H is less than VOH ' The no ise mar gin is the difference VOH - V'H or V/L - VOL , wh ichever is smaller. As illustrated in Fig. 10.5, VOL is the maximum voltage that the output can be in the low-level state. The circuit can tolerate any noi se signal that is less than the no ise margin (ViI. - Vod because the input will recogniz e the signal as being in the low-level state . Any signal greater than VOL plus the noise -margin figure will send the input voltage into the indetermi nate range. which may ca use an error in the output of the gate. In a similar fashion , a negauve-volrage noise greater than VOH - VI H will send the input voltage into the inde term inate range. The par ameters fo r the noi se margin in a sta nda rd TT L NAN D gate are VOH = 2.4 V, VOL = 0.4 V, VI H = 2 V. and VI I. = 0 .8 V. The high-stale noise marg in is 2.4 - 2 = 0.4 V, and the low-state noise margin is 0.8 - 0.4 = 0.4 V. In this case. beth values are the same. 10 . 3 B I PO LAR - T RA N SI ST O R C H AR A CT ERI STICS Thi s section reviews the bipolar transistor as app lied 10digital cin:uib.. "Ihc iofoIlcwioI. peesemed will be used in the analysis of the basic circuit in the four bipolar logic: farnilieL As mentioned earlier, bipolar tran sistors may be of the npn or pnp type. MOft'O¥'er". (bey ~ coosttul.Ud e ither with germanium or silicon semiconductor material. Bipolar Ie baiiIii1us. bowe\rcr. are made with silicon and are us ually of the npn type. .... 478 Chapter 10 Digital Integrated Circuits The bas ic data needed in the analysis of digital circuits may be obtained by inspection of the typical characteristic curves of a comm on-emitter npn silicon transistor, shown in Fig. 10.6. The circuit in (a) is a simple inverter with two resistors and a transistor. The curre nt marked Ie flows through resistor Rc and the collector of the transistor. Curren! I s flows through resistor RB and the base of the transistor. The e mitter is co nnected to gro und. and its current 1£ = Ie + te- The supply voltage is between Vee and ground. The input is between V; and ground, and the output is between Vo and ground . We have assumed positive directions for the currents as indicated. These are the directions in which the currents normally flow in an npn transistor. Collector and base currents (Ie and IB' respectively) are positive when they flow into the transistor. Emitter current IE is positive when it flows out of the transistor. as indicated by the arrow in the emitter terminal. The symbol Ve£ stands for the voltage drop from collector to emitter and is always positive. Correspondingly. VB£ is the voltage drop across the base-to-emitter junction. This junction is forward biased when VB£ is positive and reverse biased when Vs £ is negative. lc - ~ Re v, C 1. R. B II, (a) Common emitter invert er circuit I, (rnA ) I. (rnA) _ _ Vee R, - - - 0.6 "... ~ OO I I.-~,--_- 0.4 1 1.-_~,-0 .4 2 rnA(V ) r:1I ::====':s;:::~I~'~'~IO .Vc£ 0.6 0.7 (b) Tr ansistor-base characteristic fiGURE 10.6 SlIleon npn t ransist or cha racteristics (c ) Tr ansisto r-collect or characteristic Sect ion 10.3 Bipolar-Transistor Characteristics 479 The base-emitter gra phical characteris tic is shown in Fig. 1O.6(b). which is a plot of VBE versus lB' If the base-emitter vol tage is less than 0 .6 Y, the tran sisto r is said to be cut off and no base curre nt flows . Whe n the base-emitter junction is forward biased with a vo ltage greater than 0 .6 V. the tran sistor condu cts and Ie starts rising very fas t wherea s VBE cha nges very little . The voltage VBE across a conducting transistor seldom exceeds 0.8 V. The graphical collector-emitter characteris tics . toge ther with the load line , are shown in Fig. 1O.6(c). When V BE is less than 0.6 V, th e transistor is cut off with I B = 0, and a ne gligi ble current flow s in the collector. The collector-to-emitter circuit then behaves like an open circuit. With lc = the dro p acro ss Re is 0 and Vo = vee-Th e output is then sa id to be pulled up. In the active reg ion , coll ec tor vo ltage VCE may be anywhere from abo ut 0.8 V up to Vec. Co llector current Ie in this region can be ca lculated to be approximately equal to 18 h FE, where h F £ is a tran sistor param eter called the de currelll gain. "The maximum collector curre nt depends not on IB' but rather on th e extern al circuit connected to the collector. Th is is because VeE is always positive and its lowest possible value is v. For example, in the inverter sho wn, the maximum tc is obtained by making VeE = 0, to ob tain lc = Vee!Re. The parameter h FE varies widely over the operatin g range of the tran sistor. but still, it is usefu l to employ an average value for the purpose of analysis. In a typica l operat ing range. hFE is abou t 50. but under certain conditions it could be as low as 20 . It must be reali zed that the base current I B may be increased to an y desirab le value, but the collector curre nt Ie is limi ted by ex ternal circuit parameters . As a co nseque nce. a situation can be reac hed in which hFE I B is greate r than tc. lfthi s condition ex ists , then the tran sistor is said to be in the saturation region . Thu s, the condition for saturation is determined from the re lationship ° a I E :2:: Ics h" whe re tcs is the maximum collec tor curre nt flowing during saturation. VeE is not exac tly ze ro in the saturation region. but is normally abo ut 0.2 V. In this co ndi tion. Vo = V8E = 0.2 V and the output is said to be pulled down. The basi c data needed for ana lyzing bipolar-tran sistor digita l circuits are listed in Table 10. 1. In the cutoff region, VEE is less than 0.6 V. VCE is co nside red to be an open circ uit, and bo th currents are negligible. In the active region, VEE is about 0.7 V, VeE may vary ove r a wide range , and Ic can be calculated as a function of lB' In the saturation region. VBE hardl y changes, but Vee drops to 0.2 V. The base current mu st be large en ou gh to satisfy the inequality listed. To simplify the analysis. we w ill ass ume that VBE = 0.7 V if the transistor is conducting. wheth er in the acti ve or saturation re gion. Tab le 10.1 Typical np n Siffcon Tronsbtor Paronwten Current leI.tIonshlp Regi on Cutoff Active Saturation < 0.6 0.6-0 .7 0.7-0.8 Open circuit > 0.8 02 J. z 1c "" O Ie = Ia,EI. I. :i!:: laIA'E 480 Chapter 10 Digi t al Int egrated Circui t s Digita l circu its may be analyzed by means of the followin g prescribed procedure : For each tra nsistor in the circuit. determine whether its V BE is less than 0 .6 V. If so. then the trans isto r is cut off and the collector-to-e mitter circuit is considere d an ope n ci rcuit. If \'BE is gre ater than 0 .6 V. the tran sistor may be in the acti ve or saturation reg ion. Calculate the base curre nt. assum ing that VBE = 0 .7 V. Next. ca lculate the maximum poss ible value of collector current Ics- assuming that VCE = 0.2 V. These calculations will be in terms of vol tages app lied and resistor values. Then. if the base current is large enough that 18 ~ Icsl h FE• we infer that the tran sistor is in the saturation reg ion with VCE = 0.2 V. However. if the base current is smaller and the preceding relat ion ship is not satisfied. the tran sistor is in the active reg ion and we recalculate co llector curre nt lc. using the equatio n tc = h FEI 8. To demon strate with an exam ple. consider the inverter circ uit of Fig. 1O.6I'a) with the following parameters: Re = I kO Vee = 5 V ( voltage supply ) H = 5 V (high-level voltage ) RB = 22 kO L = 0.2 V (low-level voltage ) liFE = 50 = 0.2 V. we have VHE -c 0 .6 V and the transistor is CUI off. The With input voltage Yj = L colle ct or-emitter circuit behav es like an ope n ci rcuit . so output voltage Vo 5 V = H. With input vo ltage Yj = H = 5 V. we infer that VSf: > 0.6 V. Assuming that V8e = 0.7. we ca lculate the base curre nt: 18 = = V; - V8 E RB 5 - 0.7 = 22 k O = 0.195 rnA The maximum collector current. assu ming that Vei: = 0.2 V. is tcs = Vee - Vee Re = 5 - 0.2 I to = 4. 8 mA We then chec k for saturation. using the condition 0.195 = 18 e tcs h 4.8 = 50 = 0.096 mA FE whereupon we find that the inequality is sati sfied. since 0.195 > 0 .096 . We conclude that the transistor is saturated and output voltage Vo = VCE = 0.2 V = L. Thus. the ci rcuit behaves as an inverter. The proced ure ju st described will be used exten sively during the analysis of the ci rcuits in the sec tions that follo w. We will perform a quatha nve analysis-that is. an analysis that doe s not in volve the speci fic numerical eq uatio ns. A quantitative analysis and speci fic calculations will be left as exercises in the "Pro blems" section at the end of the chapter. There are occasions when no! only tran sisto rs. but also diodes. are used in digital circ uits. An Ie diod e is usually co nstructed from a tra nsisto r with its collecto r connect ed 10 [he base . as show n in Fig. 1O.7(a ). The graphic symbol em ploye d for a diode is show n in Fig. 1O.7(b ). Th e diode behaves essentially like the base-emit ter j unct ion of a tra nsistor. Its graphical Section 10.4 RTl a n d OTl Circuit s 481 '. (rnA) (a) Transistor ad apted for U~ a~ a d iode 10 + ~ 02 V. (b) Diode graphic symbol 0.6 0.7 (c) Diod e characte ristic FIGURE 10.7 smcc n diode symbol and charact erist ic characteri st ic. shown in Fig. 10.7(c), is similar 10 the base-emiucr characte ristic of a transistor. We ca n then co ncl ude that a diode is o ff and nonconducting whe n its forw ard vo ltage Vo is less than 0 .6 V. When the diode conducts. curre m lo flow s in the di rection show n in Fig. 1O.7(b ) and Vo stays at about 0.7 V. O ne m ust always pro vide an ext ern a l resistor to lim it the current in a co nd uct ing diod e. since its voltage re ma ins fa irly constant at a fract io n o f a \'011. 1 0.4 RTl AND DTl CIRCUITS Rn Basic Gate The basic circuit of the RTL digita l logic fam ily is the NO R gate shown in Fig. 10.8. Eac h input is assoc iated with one resistor and one transistor. The collectors of the tran sistors are tied together at the output. The voltage levels for the circu it are 0 .2 V for the low leve l and from I 10 3.6 V for the high level. The analy sis ofthc RFlc gate is simple and follows the procedure outlined in the previous sectio n. If any input of the RTL gate is high, the corres ponding uan..,istor- is dri ven into saturation and the output goes low, regard less of the states of the other transistors, If al l inpulSare low at 0.2 V, all transistors are cut off because VSE < D,6 V and the 0lllJU of the circuil goes high. approaching the value of the supply vo ltage Vee, Thi s con firms lhec:ondilionsSUledin Fig. 10,2 for the NO R gale. Note that the noise margin for low signal input is 0.6 - D.2 = D.4 V. The fan-out o f the RTL gate is lim ited by a high OUtpul voltage. A5 die output is loaded with inputs of other gates. more current is consumed by the load.. 1bi:sCWICIIl must flow through the &W-U resistor. A simple calculation (see Problem 10.2) shows drops to 20. the output voltag e drops to about I V when the fan -out is S. Any \IOItage below 1 V in the outpul _if"FE 482 Chap ter 10 Digital Inte gra ted Circuits Vcc - 3.6V 640 0 r--------+------,.~y . (A. B· C)' 4500 450 0 FIGURE 10.8 Basic RTL NOR gate may not drive the next transistor into saturation as requ ired. The power dissipation of the RTL gate is about 12 mw and the propagation delay averages 25 ns. DTL Basic Gates The basic circuit in the OTL digital logic family is the NAND gate shown in Fig. 10.9. Each input is associated with one diode. The d iodes and the 5· kO resistor fonn an AXO gate. The transistor serves as a current amplifier while inverting the digital signal. The two voltage levels are 0.2 V for the low level and between 4 and 5 V for the high level. The analysis of the DTL gate should conform to the conditions listed in Fig. 10.1 for the NAND gate. If any input of the gale is low at 0.2 V. the corresponding input diode conducts I 2k n S kO A DI ~ Y - (A BC)' D2 P B Sk O C FIGURE 10.9 Basic OTL NAND gate V "' QI Section 10.4 RTL and OTL Circuits 483 curre nt through Vee and the 5-kfl resistor into the input node . The voltage at point P is equal 10 the input voltage of 0.2 V plus a diode drop of 0.7 V, for a total of 0.9 V. In order for the transiste r to start co nducting, the voltage at point P must overcome (i.e., be at least as high as) a I· VBE drop in QJ plus two diode drops across D I and D2, or 3 X 0.6 = 1.8 V. Since the voltage at P is maintained at 0.9 V by the input conducting diode. the transistor is cut off with no drop across the 2-kO resistor. and the output voltage is high at 5 V. If all input s of the gate are high , the transistor is driven into the saturation region . The vo ltage at P no w is equal to VBE plu s the two dio de drops acro ss DI and D2, or 0.7 X 3 = 2.1 V. Since all inputs are high at 5 V and since Vp = 2. 1 V, the input diodes are reverse biased and off. The base current is equal to the difference of the current s flowing in the IWO 5·k n resistors and is sufficient to drive the transistor into saturation. (See Problem 10.3.) With the transistor saturated, the output drops to Va = 0.2 V, which is the low level for the gate . The power dissipation of a DIL gate is about 12 mW and the propagation delay averages 30 ns. The noise margin is about I V and a fan-out as high as 8 is possible . The fan-out of the DIL gale is limited by the maximum curre nt that can flow in the collector of the saturated transistor. (See Problem 10.4.) The fan-out of a DTL gate may be increased by replacing one of the diodes in the base circuit with a transistor, as shown in Fig. 10.10. Transistor Ql is mainta ined in the active region when output transistor Q2 is saturated. As a consequence, the modified circuit can supply a larger amounl of base current to the output transistor, which can now draw a larger amount of collector current before it goes out of saturation . Part of the collector current comes from the conducting diode s in the loading gates when Q2 is saturated. Thus, an increase in the allow able saturated current in the collector allows more loads to be connected to the output, increasing the fan-out capability of the gale . Vee = 5 V 1.6 kl1 Hn HO A ""QI t-..: '-" Y - (AS q ' m ~ B "0 c .!. FIGURE 10.10 Mod ifi ed OTL gate 484 Ch apter 10 10 .S Dig ital Integra ted Circ uits TRANSISTOR -TRANSIST OR LO G I C The original basic transistor- transistor logic (TIL) gute was a slight improvement over the DTL gate. As TIL technology progressed. improvements were added to the point where this logic family became widely used in the design of digital systems. Today. ~1 0 S and C ~ IOS logic. which will be discussed in Sections 10.7 and 10.8. are the dominant technologies in VLSI circuits. There are several subfamilies or series of the TTL technology. The names and characteristics of eight TIL series appear in Table 10.2. Commercial TIL ICs have a number deslgnation that starts with 74 and follows with a suffix that identifies the series. Examples are 740·t 74S86. and 74ALS 161. Fan-out. power dissipation. and propagation delay were defined in Section 10.2. The speed-power product is an important parameter used in comparing the various TIL series. The product of the propagation delay and power dissipation. the speed-power product is measured in picojo ules (pJ ). A low value for this parameter is desirable. because it indicates that a given propagation dela y can be achieved without excessive powe r dissipation. and vice versa. The standard TIL gate was the first version in the TIL family. This basic gate v. as then designed with different resistor values to produce gates with lower power dissipation or with higher speed. The propagation delay of a transistor circuit that goes into saturation depends mostly on two factors: storage time and RC time co nstants. Reducing the storage time decreases the propagation delay. Reducing resistor values in the circuit red uces the RC time co nstants and decreases the propagation delay. Of course. the trade-off is higher power dissipation. because lower resistances draw more current from the power supply. The speed of the gate is inversely proportional to the propagation delay. In the low-power TIL gate. the resistor values are higher than in the standard gate in order to reduce the power dissipation. but the propagation delay is increased. In the high-speed TTL gate. resistor values are lowered to reduce the propagation delay. but the powe r dissipation is increased. The Schottky TTL gate was the next improvement in the technology. The effect of the Schottky transistor is to remove the storage time delay by preventing the transistor from Tabl e 10 .2 TTL Series and Their Characteristics TTL Series Name Prefix S tandard Low power High speed Schottky Low -po wer Schottky Advanced Sch ott ky Ad vanced low -po wer Schollky U F~ l UF 74L U" 745 7~ LS 7" AS 7~ A LS Fan out Power Dissipatio n (mW) Propagation Delay (n$) Speed-Power Product (pJ) ,.,. ,.,. ,.,. I. I 9 90 33 _~3 n 6 132 19 2 3 9.' 57 19 I. 1.5 10 40 1 4 4 3 " " 4 Section 10.5 Transist or-Transist or l ogic 485 going into saturat ion. This series increases the speed of operation of the circuit without an excessive increase in power dissipa tion. The low-power Scho ttky TTL sacrifices some speed for reduced power dissipation . It is equal to the standard TTL in propagati on delay, but has only one-fifth the power dissipat ion. Further innovations led to the deve lopment of the advance d Schottky series, which prov ides an improvement in propagation delay over the Schottky series and also lowers the power dissipati on. The adv anced low-power Schottky has the lowest speed- power product and is the most efficient series. The fast TTL family is the best choice for high-speed designs. All TTL series are available in S81 compo nents and in more complex forms. such as MS I and LSI components. The differences in the TTL series are not in the digital logic that they perform, but rather in the internal construction of the basic NAND gale. In any case, TTL gates in all the available series come in three d ifferent types of output configuration: 1. Open -collecto r output 2. Totem-pole output 3. Three-state output These three types of outputs are considered next, in conju nction with the circuit descri ption of the basic TTL gate. Open-Collector Output Gate The basic TIL gate shown in Fig. 10.11 is a modified circuit of the D'Tt.gate. The multiple emitters in transistor QI are co nnected to the inputs, Most of the time, these emitte rs behave like the input diodes in the DTL gate, since they form a pn junction with thei r common base. The base-collector junction of QJ acts as another pI! junction diod e correspond ing to D J in the 4 kH 1.6 en Q2 r--~Y QJ 1 til FIGURE 10.11 Open -coll ect or TTL NAN D gate 486 Chapter 10 Digital Integrated Circuits DTL gate. (See Fig. 10.9.) Transistor Q2 repl aces the second diode. D2. in the DTL gale. The output of the TTL gate is taken fro m the open coll ect or o f Q3. A resistor connected to l ec must be inserted externall y to the Ie package for the output to "pull up" to the high voltage level when Q3 is off; otherwise. the O\Itput acts as an open circuit. Tbe reason for not provi ding the resistor intern ally will be discussed later. The two voltage levels o f the TTL gat e are 0.2 V for the low le vel and from ~ ,~ to 5 v for the high level. Th e basic circuit is a ~AND ga te, If any input is low. the corre spo nding base-emitter ju nction in QJ is forward biased. The voltage at the base of QJ is equal to the input voltage of 0.2 V pl u ~ a VHE dro p of 0 .7. or 0 .9 V, In order for Q3 to start cond ucting. the path from QJ to Q3 must o vercome a potenti al of one diode drop in the base-collector pn j unct ion of QJ and two VBE drops in Q2 andQ3. or 3 x 0"6 = 1.8 V. Since the base of QI is maintai ned at 0 .9 V by the input signal. the output tra nsistor ca nnot conduct and is cut off. Th e ou tput (or an ope n le vel will be high if an external resistor is connected between the output and circu it if a resistor is not used). If all inputs are hig h. both Q2 and Q3 co nduct and saturate. The base vo ltage of QJ is equal to the volt age across its base-collector pn j unction plus IWO VHE drops in Q2 and QJ. or about 0.7 x 3 = 2.1 V. Since all inputs are high and greate r than 2.4 V. the base-emitter jun ctions of Q1 are all reverse biased. When output transistor QJ saturat es (provided that it has a curre nt path). the o utput voltage goes low to 0 .2 V. This co nfirm s the conditions of a NAND operation . In the analysis presented thus far. we said that the base-collector j unction o f QJ act s like a pn diode junction . Th is is true in the steady -state conditio n. However. duri ng the turn off tran siti on. Ql doe s exhibit transistor action. resulting in a redu cti on in propagation delay . When all inputs are hig h and then one of the inputs Is brought to a low lev el. both Q2 and Q3 start turn ing o ff. At this time. the co llector j unction of QJ is reverse biased and the e mitter is forw ard biased. so transistor QJ goes momentarily into the act ive region. The collector current of Q J comes from the base o f Q2 and qu ick ly removes the excess charge sto red in Q2 durin g its previous saturation state. Th is causes a reduction in the stora ge time of the circuit com pare d with that of the DTL type of input. Th e result is a red uction in the turno ff time of the gate. The open-collector TTL gate will opera te without the external resistor when connected to inputs of other TTL gales. although this kind o f operat ion is not recommended because o f the low noise immunity encou ntered. Without an e xtern al resistor. the output o f the gate w ill be an open circuit when QJ is off. An open circu it 10an input of a lTLgate behaves as ifit has a highlevel input (but a small amount of noise can change this to a low level) " wh en Q3 conducts, its co llecto r will have a current pat h supplied by the input of the loading gate through Vee. the 4-k. 0 resistor. and the forward -biased base-emitter jun ction " Open -collector gales are used in three major applications: dri ving a lamp or relay. perform ing wired logic. and constructing a common-bus system. An open-collector output can drive a lamp placed in its output through a limiting resistor. When the output is low. the saturated tran sistor QJ forms a path for the current thai turns the lamp on. Whe n the output transistor is off. the lamp turn s off because there is no path for the current. If the out puts o f several open-collector TTL gates are tied together with a single external resistor. a \l.ired- A~'D logic is performed Remember tha t a positi ve-logic A.\'D function gives vee Section 10.S Transistor-Transistor Logic ;==[¥l~»--+-o y 487 A -~+---, B --t ~ c- - = =' y D -~'r---' (a) Physical connection (b) Wired-logic graphic symbo l FIGURE 10.12 Wired-AND of tw o cpen-ccuector (o c) gates, y ", (AS + CD)' a high level only if all variables are high: otherwise. the function is low. With the outputs of open-collector gate s connected together. the common output is high only when all output tran sistors are off (or high ). If an output trans isto r conduct s. it forces the output into the low state. The wired log ic performed with open-co llector TIL gat es is depicted in Fig . 10.12. The phy sical wirin g in (a) show s how the outputs must be connected to a common resistor. The graph ic symbol for such a connection is demonstrated in (b). The AN D function formed by connecting the two outputs toge ther is ca lled a wired -AND function. The AN D ga te is drawn with the line s goin g through the center of the ga te, to distinguish it from a conventional gate . The wired·AND gate is not a phy sica l gate. but only a symbol to des ignate the function obtained from the indic ated connection. The Boolean function obtained from the circ uit of Fig. 10.12 is the AND ope ration between the outputs of the two NAND gate s: y ~ (AB )" (CD)' ~ (AB + CD)' The second expression is preferred, since it shows an operation commonly referred to as an AND-OR-INVERT function. (See Section 3.8.) Open -collector gates can be tied together to form a common bus. At any time, all gale outputs tied to the bus. except one . must be maintained in their high state. The selected gate may be in either the high or low state. depending on whe ther we want 10 trans mit a l or a 0 on the bus. Control circui ts must be used to select the particular gate thai drives the bus at any given time . Figure 10.13 demonstrates the connection of four so urces tied 10 a common bus line. Each of the four inputs drive s an open-collec tor inverter, and the outputs of the inveners are tied together to form a single bus line. The figure shows that three of the inputs are 0, producing a I. or high level , on the bus . The founh input, 14 , can now transmit information through the common-bu s line into inverte r 5. Remem ber that an AND operation is peafuultd in the wired logic. If /4 = 1, the output of gate 4 is 0 and the wired-AND operation produces a O. If 4 = 0. the output of gate 4 is 1 and the wired-AND operation produces a 1. 1bus. if aU otbe.- outputs are maintained at 1, the selected gale can tran smi t its value Ihrougb the bus. TIle value uaesmirted is the complement of 14 • but inverter 5 at the receiving end can easily invert thi s signal aga in to make Y = h. 488 Chap ter 10 Digital Integrate d Circuits v~ f, o ~· I Bus line s v o I FIGURE 10 .13 Open -collect or gates fo rming a common bu s line Tot em -Pole Output The output impedance of a gate is normally a resistive plus a capacitive load. The capacitive load consists of the capacitance of the output transistor. the capacitance of the fan-out gates. and any stray wiring capacitance. When the output changes from the low to the high state. the output transistor of the gate goes from saturation to cutoff and the total load capacitance C charges exponentially from the low to the high voltage level with a time constant equal to RC For the open-collector gate. R is the external resistor marked RL. For a typical operating value of C = 15 pF and RL = 4 kU. the propagation delay of a TTL open-collector gate during the turnoff time is 35 ns. With an acti~'e pull -up circuit replacing the pas..ive pull-up resistor R L• the propagation delay is reduced to 10 ns. This co nfiguration. shown in Fig. 10.14. is ca lled a totem-po le output because transistor Q4 "s its" upon Q3. The TIL gate with the totem-pole o utput is the same a" the open-collector gate. except for the output transistor Q4 and the diode DJ . When the outpu t Y is in the low state. Q2 and Q3 are drive n into saturation as in the open-collector gate. The voltage in the collector of Q2 is V SE(Q3 ) + V a (Q2 ). or 0.7 + 0.2 = 0.9 V. The output Y = VcdQ3 ) = o.:! V. Transistor Q4 is cut off because its base must be one VB£ drop plus one diode drop. or 2 x 0.6 1.2 V. to start conducting. Since the collector of Q2 is co nnected to the base of Q4. the latter' s voltage is only 0.9 V instead of the required 1.2 V. so Q4 is cut off. The reason for placing the diode in the circuit is to provide a diode drop in the output path and thus ensure that Q4 is cut off when Q3 is saturated. When the output changes to the high state because one of the inputs drop.. to the low state, transistors Q2 and Q3 go into cutoff. However. the output remains momentarily low because the voltages across the load capac itance cannot change instantaneously. As soon as Q2 turns off. Q4 conducts. because its base is connected to through the 1.6-1.: 0 resistor. The current needed to charge the load capacitance causes Q4 to saturate momentarily. and the output = vee Section 10.5 Tra nsistor-Tra nsist or l ogic 489 Vee = 5 V 1.6 4 en en Don Q' D1 Ql Q2 y Q3 1 »n FIGURE 10.14 TTL gate with totem-pole output volt age rises with a tim e co nstant Re . But R in thi s case is equal to 130 n, plu s the saturation resistance of Q-I, pl us the resistance of the d iod e, for a total of approximately 150 n. Thi s value of R is muc h smaller than the passive pull-up resistance used in the open-collector circuit. As a co nseq ue nce, the trans itio n from the low to high level is much fas ter. A s the capacitive load cha rges. the outp ut vo ltage rises and the current in Q4 dec reases. brin ging the tran sistor into the active region. Thu s, in contrast to the othe r transistors, Q4 is in the active region whe n Q4 is in a steady -state co nd ition. Th e fina l value of the output voltage is then 5 V, minu s a V8£ drop in Q4. minu s a diod e drop in DJ to abo ut 3.6 V. Tran sistor Q3 goe s into cutoff very fast, but durin g the initial transition time. bot h Q3 and Q4 are on and a peak current is dra wn fro m the po wer supp ly. Thi s curre nt sp ike generates noise in the power-supp ly distribut ion sys tem. Wh en the change of slate is frequ ent. the transient-current spikes increase the pow er-sup ply curre nt requ irement and the average po wer di ssip ation o f the circuit increases. The wire d-logic connection is nOI allowed with tote m- pole ou tput circuits. When tw o totem poles are wire d togethe r. with the outp ut of one ga le high and the output of the second gate low, the excessive amount of current drawn can produce enou gh heat 10 damage the transistors in the circ uit. (See Problem 10.7.) So me TTL gates are constructed 10 widasland theamounl of currenl that 110ws und er th is co ndition. In any case, lhe collector curren l in the low gale may be high enough to move the tran sistor into the active region and produce aD ou tpul voltage grcaIa' Ihan 0.8 V in the wired connection. This voltage is not a valWj binary signal forTl1. pIeS. Schottky TTL Gate As mentioned before , a reduction in storage time results in a redu::Iioa .in Pop8Iaf'ion delay. Thi s is becau se the tim e needed for a tra ns isto r to come OUI of saIUtlItioD delays Ihe switching 490 Chapter 10 Digital Integrated Circuits of the transistor from the on condition to the off condition. Saturati on can be eliminated by placing a Schottky diod e between the base and collector of each saturated tran sistor in the circuit. The Schottky diode is formed by the junction of a metal and semiconductor, in contrast to a conventional diod e, wh ich is formed by the j unction of p-type and n-type semicond uctor material. The voltage across a conducting Schottky diod e is only 0 .4 V. co mpared with 0.7 V in a conventional diode. The presence of a Schottky d iode between the base and collector prevents the transistor from going into saturation. The resulting tra nsistor is called a Schotrky transistor. The use of Schottky transistors in a TIL decreases the propa gation delay with out sacrificing power dissipation. Th e Schottk y TTL gat e is sho wn in Fig. 10.15. Note the speci al symbo l used for the Schottk y transistors and d iode s. Th e diagram shows all transistors except Q-l to be of the Schottk y type. An exception is made for Q4, since it does not saturate. but stays in the acti ve region . Note also that resistor values have been reduced in orde r to decre ase the propagation dela y further. In addition to using Schottky transistors and lower resistor values, the circuit of Fig. 10.15 incl udes other modifications not available in the standard gate of Fig. 10 .14. Two new transistors. Q5 and Q6, have been added, and Schottky diodes are inserted between each input terminal and ground. There is no diode in the totem-pole circuit. However. the new combination of Q5 and Q4 still give s the two VBE drop s necessary to prevent Q4 from conducting w hen the outpu t is low. Th is combination constitutes a double emitte r-follower called a Darlington pair. The Darlington so o 900 0 ~Q5 2.8kfl: r Q1 r- 3.5 en OJ -~ Q' '" f-o QJ 500 0 2500 ~ FIGURE 10 .15 Schottky TIL gate ...L Section 10.5 Tra nsistor-Transistor logic 49 1 pair provides a very high current gain and extremely low resistance, exactly what is needed dur o ing the low-to-high swing of the output, resulting in a decrease in propa gation delay. Th e diodes in each input shown in the circ uit help clamp any ringin g that may occ ur in the input lines. Under transien t switch ing conditions, signal lines appear inductive ; this, along with stray capacitance, causes signal s to oscillate, or "ring." Whe n the outp ut of a gate switches from the high to the low state, the ringi ng waveform at the input may have exc urs ions as grea t as 2-3 V below grou nd, depending on the line length . The diodes connec ted to ground help clamp this ringing, since the y conduc t as soo n as the negative voltage exceeds 0.4 V. Whe n the negative excursion is limited, the positive swing is also red uced. Clamp diodes have been so succes sful in limiting line effects that all versions of TTL gates use the m. The emitter resistor Q2 in Fig. lO.14 has been replaced in Fig. lO.15 by a circ uit consisting of transistor Q6 and two resis tors. Th e effect of thi s circ uit is to reduce the turn off current spikes discussed previously. The analys is of such a circ uit, whose ope ration help s to reduce the propagation time of the gate, is too invol ved to pre sent in this brief discu ssio n. Three-State Gate As mentioned ear lier, the outp uts of two Tl'L gates with totem-pole stru ctures cann ot be con nected together as in open-collector outputs. Ther e is, however, a special type of totem-pole gate that allows the wire d con nectio n of outputs for the purpose of forming a commo n-bus system. When a to tem-pole output TT L gate has thi s property, it is called a three-stare gate. A three -sta te gate exhi bits three outp ut states: (1 ) a low-leve l state when the lower tran sistor in the totem pole is on and the upper transistor is off, (2 ) a high -level state when the upper transistor in the totem pole is on and the lower transistor is off, and (3) a third state when both transistors in the totem pole are off. The third state is an ope n-circ uit, or high-impedance, state that allows a direct wire connec tion of many outp uts to a common line. Three-state gates eliminate the need for ope n-collector gat es in bus configurations. Figure lO.16(a) shows the graphic symbol of a thre e-state buffer gate. When the control input C is high , the gate is enabled and behaves like a normal buffer, with the output equal to the input binary value . When the control input is low, the output is an open circ uit, which gives a high impedance (the third state) regardless of the value of input A . Some three-state gates produc e a high -im pedance state whe n the control input is hig h . Thi s is shown sy mbolically in Fig. 1O.l6(b), where we have two small circle s, one for the inverter output and the other to indicate that the gate is enabled w hen C is low. The circ uit diagram of the three-state in verter is shown in Fig . IO.I 6(c ). Transistors 06. Q7, and Q8 associated with the control inp ut form a circ uit similar 10 the opeo-collector gate . Transistors Q1- Q5. associated with the data input, form a tote m-pole TI1.. circuiL The two circ uits are connected together throu gh diode D1. As in an opeo<oUc:c:cor- circuit. transistor Q8 turns off when the control inpu t at Cis in the low-level state.1biI prnaltS diode DI from con ducting. In addition. the emitter in Q1 connected to Q8 bas DO cft'dunion path. Under this con dition, transistor Q8 has no effect on the operation of the gare and the outpul ill Y depends only on the data input at A. When the control input is high. transistor Q8 turns on and the CUItt:DI flowing from Vee through diode D 1 causes transistor Q8 to satura te. The voltage Illbc base 01 05 is now equal 492 Chapter 10 Digit al Int egrated Circuits Y =A if C "'high A ------{>----- Yh igh impedance ~ ~ A if C - low C Y "'A · if C = lo.... Y high impedance if C = high C ( a) T hree-stale buffer gate (b) Thr ee-state inverter galt' 10, I,; Q' I-..: Data input A I ,. fQ] Qf\ I,; f"Q.l "'- Df Co ntro l input C Q6 f"Q 7 h." ...L - "08 1.': -J,. (e) Circuit diagram for the three-stale Inverter of (h ) FI(i,URE 10.1 6 Thr ee-st ate TTL gate Section 10.6 Emitter-Coup led Logic 493 to the voltage acro ss the saturated tran sistor. Q8. plus one diode drop . or 0 .9 V. Th is voltage turns off Q5 and Q4. since it is less than two VBE drops. At the same time . the low input to one of the emitter s of Ql forces trans istor Q3 (and Q2) to tum off. Th us. both Q3 and Q4 in the totem po le are turned off. and the output of the circ uit behav es like an open circu it with a very high output impedance . A three-state bus is created by wiring several three -state outputs togethe r. At any given time, only one control input is enabled wh ile all other outpu ts are in the high-impedance state. The single gate not in a high- impedance state can transmit binary information through the common bus. Extreme care must be taken that all exc ept one of the output s be in the third state; otherwise, we have the undesirable condition of havi ng two active totem-pole output s connected together. An impo rtant feat ure of most thre e-state gate s is that the output enable delay is longer tha n the output disab le delay. If a control circuit enables one gate and disab les another at the same time . the disabled gate ente rs the high-impedance state before the ot her gate is ena bled. Th is eliminates the situation of both gates being active at the sa me time . There is a very small leakag e current associated with the high-impedance conditio n in a three -state gate. Nevertheless. this current is so small that as many as 100 three-state outputs can be co nnected together to form a common-bus line . 10.6 EMITTER -COUPLED LOGIC Emitter-coupled logic (EC L) is a nonsaturated digital logic fami ly. Since transistors do not seturate. it is possible to ac hieve propa gation delays as low as 1-2 ns. This logic family has the lowest propagation delay of any family and is used mostly in systems requiring very high speed operation. Its noise immunity and power dissipation . however . are the worst of all the logic families available. A typical bas ic circuit of the EeL family is shown in Fig. 10.17. The outp uts provi de both the OR and NO R function s. Each input is connected to the base of a transistor. The two voltage levels are abo ut - 0.8 V for the high state and abo ut - 1.8 V for the lo w state. The circuit con sists of a differential amplifier. a tem perature- and voltage-compe nsate d bias net work. and an em itter-follower output. The em itter outputs require a pull-down resistor fo r current to flow. This is obtai ned fro m the input resistor Rp of another similar gate or from an ex tern al resistor conn ected to a negative voltage supply. The internal tempe rature- and voltage -compensated bias circuit supplies a reference volt age to the differential ampl ifier. Bias voltage Vss is set at - 1.3 V, which is me midpoint of me signal's logic swing. The diodes in the voltage divider.fogetber with Q6. provide a circuit that maintain s a constant VBs value despite changes in temperature or supply voltage. An y one of the power supply inputs could be used as grou nd. However, the use of the Vccnode as ground and V EE at - 5.2 V results in the best noise immunity. If any input in the ECL gat e is high. the corresponding transistor is tumed OIl and Q5 is turned off . An input of - 0.8 V ca uses the tran sistor lOconduetand places -1.6 V OIl the emitters of all of the transistors. (The VB£ drop in EeL transistors is 0 .8 V.) Since VB B = - 1.3 V, the base voltage of Q5 is only 0.3 V more positive man itsemittet. Q5 is cut off because its VBE 494 Chapter 10 Digital Integrated Circuits Internal temperature a nd voltage- compensated Emi tterfollo....er bias netwo rk OUtputs Vee: . GND Vee l - O:-iD Differential input amplifier r i e+- Rn 245 0 970 n R" v.: ~Q8 2200 I OR outpu t Q7 ~l ~2 ~3 ~4 r-r- A r-t- r-t- R, R, R, so en SOl O SO kH B c r-r- D , <161 -- Q'j-1 ,A V ,IIB = - 1.3V R, R, 50kO 779 n 6.1 n 1 :-';OR output 4.98 kn V EE "" - S.2V FIGURE 10.17 Basic ECl gate vol tage needs at least 0.6 V to stan conducting. The current in resistor Rc: flows into the base of Q8 (provided that there is a load resistor). Th is current is so small that on ly a negligible voltage drop occurs across Rcz- Th e OR output of the gate is o ne VBE drop below ground. or - 0.8 V. which is the high stale. The current flowing through RCI and the conducting transistor ca uses a drop of abo ut 1 V below gro und. (See Prob lem 10.9 .) The l'\O R output is one VBE drop below this level. or - 1.8 V. which is the low stale. If all inputs are at the low leve l, all input transistors tum o ff and Q5 conduct s. The voltage in the commo n-emitte r node is one V BE dro p below V BB, or - 2.1 V. Since the base of each input is at a low level of - 1.8 V. eac h base-emitter j unctio n has only 0 .3 V and all input transistors are cut off. RCl dra ws current thro ugh Q5 that results in a vo ltage dro p of about I V, making the OR output one VBE dro p below this. at -1.8 V. or the low leve l. The curren t in RCl is negligible. and the NOR OUtpUI is o ne VBE dro p below gro und, at - 0.8 V. or the high level. This analysis verifies the OR and NOR operatio ns of the circuit. The pro pagation delay o f the Ee L gale is 2 ns and the power dissipation is 25 mw , giv ing a speed-power prod uct of 50. whic h is abo ut the same as that for the Schottky TIL. The noise Section 10.7 Metal-Oxide Semiconductor A B -L:...~-. A B -~ ,;",_ 495 (A + B)' ... (C + D J'= [(A + BltC + D )I' (A ..,. By NOR (A + B) O R c- G*- -+_ ...J D +i4-- - (a) Single gate (A T B)(C + D ) (b) Wired combination of two gates fiGURE 10.18 Graphic symbol and wi red combi natio n of ECL gates marg in is about 0.3 V and is not as good as that in the TTL gate. High fan-out is po ssible in the ECl gate because of the high inp ut impedance of the differential amplifier and the low output impedan ce of the emitter-follower. Because of the extreme high speed of the signals. external wires act like transmi ssion lines. Except for very sha lt wires of a few centimeters. ECl outputs must use coax ia l cables with a resistor termin ation to redu ce line reflection s. The gra phic symbol for the ECl gate shown in Fig. 10 .18(a). 'TWo output s are ava ilable: one for the NO R function and the other for the OR function. The outputs of two or more ECL gate s can be connec ted togeth er to form wired logic. As shown in Fig. 1O.18(b), an external wired connection of two NO R outputs pro duces a wired-OR function. An internal wired connec tion of two OR outp uts is em ployed in some Eel IC s to produce a wired-AND (sometimes called dot- AN D ) logic. This property may be utili zed when ECL gales are used to form the O R- AND- INVE RT and the O R-AND functions. 10 .7 METAL -OXIDE SEMICONDUCTOR The field-effect tra nsistor (FET) is a unipo lar transistor. since its operation depends on the flow of only one type of carrie r. Th ere are two types ofFETs: the junction field-effec t transistor (JPET) and the metal-oxide semiconductor (Ma S). Th e fanner is used in linear circuits and the latter in digital circuits. MaS tran sistors can be fabricated in less area than bipolar transistors. The basic structure of the MOS transistor is shown in Fig . 10.19. 1be p-channel MOS con sists of a lightly doped substrate of a-type silicon material . Two regions are heavily doped by diffu sion with p- type impurities to fonn the source and drain. 1be region between the two ~ type sections serves as the channel. Th e gale is a metal plate separated from thedwmeI by an insulated dielectri c of silicon dioxide . A negative voltage (with respect to tbe subsuaIe) 81 the gate term inal causes an induced elec tric field in the channe l that attraetsp-eype carriers (ho&es) from the substrate . As the magnitude of the negative voltage on the pte iD:reases, the region below the gale accumulates more positive carriers. the oonduaivity increases. and C\lI'ttnl can n ow from source to drai n. provided that a voltage difference is mainlaioed between these two terminal s. 496 Chapter 10 Digital Integrated Circuits {alp-channel (b) u-channel FIGURE 10.19 Basic st ruct ure of MOS t ransisto r Th ere are fo ur ba-le types of ~fO S structures. The channel can be p or 11 type. depending on whether the majo rity carriers are holes or ele ct rons. The mode o f operation ca n be enhancement or depletion. dependin g on the state of the channel region at zero gate voltage . If the channel is initially doped light ly with p-type impurity (in which case it is ca lled a diffused channels . a conducting channel exists at zero gate voltage and the device is said to operate in the deplet ion mode . In this mode. current flow s unless the channel is depl eted by an applied gate fte ld. lfthe region beneath the gale is lefl initia lly uncharged . a channel must be induced by the gale field before current can flow. Thus. the chann el current is enhanced by the gate voltage. and such a devic e is said to operate in the enhancem ent mode . The source is the termi nal through whic h the majo rity carriers enter the device. The drai n is the termi nal through which the majo rity carriers leave Ihe device . In a n -ch anne l MOS. the source term inal is co nnected to the substrate and a negativ e voltage is applied to the drain term ina l. Whe n the ga le m ilage is above a thresho ld vo ltage Vr (abo ut - 2 V). no c urre nt flow s in the channel and the drain -to-source path is like an open ci rcu it. When the gate voltage is sufficiently negative below VT• a channel is formed andp-type carriers flow from source 10 drai n. p-Iype ca rriers are positive and correspo nd to a posit ive current flow from source 10 drai n. In the u-channe! f\.I OS. the source terminal is co nnected to the substrate and a positive \ 011 · age is applied to the drain terminal. Whe n the gale voltage is below the thre..hold voltage Vr (about 2 V). no curre nt flows in the channel. When the gat e voltage is sufficiently positive above Vr to fonn the channel, a- type carriers flo ..... from source 10 dra in. n-type carriers are negative and correspond to a positive curre nt flow from drain to source. The threshold voltage may vary from I 104 V, depend ing on the particu lar process used . The graphic symbols for the MO S tran sistors are shown in Fig. 10.20. The symbol for the enhancement type is the one with the broken-line connection betwee n source and drain . In this symbol. the substrate can be identified and is shown connected to the source. An alternative symbol omits the substrate. and instead an arro ..... is placed in the source termin al 10 show the direction of positive cu rrent flow (from source to drain in the p-channel MOS and from drain to source in the II-channel MO S). Because of the symmetrical construction of source and drain . the tl.l0S transistor can be operated as a bilateral device. Although normally opera ted so that carriers flo w from source to drain. there are circumstances when ir is convenient 10 allow carriers to flow from dra in to source. (See Proble m 10.12.) Sec tion 10.7 D drain ~alC --1 q.-J Metal-Oxide Semicondu ctor G -< su b!.tra te s W"= (a) p -channe l 497 D drain ~a te .-J --1 1--- sub!.lralc 'I source G -< s (b ) e-channel fiGURE 10.20 Sym bo ls fo r MOS transistors O ne advantage o f the MOS device is that it ca n be used nOI only as a transistor, but as a resistor as well. A res istor is ob tained from the MOS by permanently biasing the gate termin al for conduction. The ratio of the source-drain voltage to the channel curre nt then det ermine s the value of the res istance . Different res istor values may he constructed during manufacturing by tixing the channellength and width of the MO S device. Three logic circuits using MOS devices are shown in Fig. 10.21. For an a-c hannel MOS, the supply voltage Vnn is positive (abo ut 5 V). to allow positi ve curr ent flow from drain to source. The IWO voltage levels are a function of the threshold voltage Vr . The low level is anywhere from zero to Vr • and the high level ranges from VT ttl Vnn. The n-chan nel gates usually employ positive logic. The p-channel ~10S circuit.. U~ a negative voltage for Vnl). 10 allow pusitive current flo w from source 10 drain. The IWO voltage levels are both negative abo ve and below the negative threshold voltage Vr . n-chan ne l gales usually e mploy negati ve logic. \ ' OD I Y = ( A B )' r - - " - ----r-y - A' [aj Inve rter FIGURE 10.21 n-<h annel MOS logic circuits ( b) SAN D piC (c) NOR 11* Y - (Ao + Bf 498 Chapter 10 Digital Integrated Circuits The inve rter cir cuit shown in Fig. 1O.21(a) uses two MOS devices. QJ acts as the load reo sistor and Q2 as the active device. The load-resistor MOS has its gate connected to VDD• thus maintaining it in the conduction stale. When the input voltage is low (below Vr ). Q2 turns off. Since QJ is alway s on. the output voltage is about VDD. When the input voltage is high (abo ve Vr ). Q2tum s on. Curre nt flows from VDD through the load resistor QJ and into Q 2. The geometry of the two MOS devices must be such that the resistance of Q2 . when conducting. is much less than the resistance of QJ to maintain the outp ut Yat a voltage below Vr . The NAl\' D gate shown in Fig. 10.21(b) uses transistors in series. Inputs A and B must both be high for all trans istors to conduct and cause the output to go low. If either input is low. the corresponding tran sistor is turned off and the outpu t is high. Again. the series resistance formed by the two active MOS devices must be much less than the resistance of the load-resistor ~10S . The NOR gate shown in Fig. 1O.2H c) uses transistors in parallel. If either input is high. the corresponding transistor conducts and the output is low. If all inputs are low, all active transist ors are off and the outp ut is high. 10 . 8 COM PLEM ENTARY MOS Com plementary MOS (C MOS) circuit s take adva ntage of the fac t thai both n-channe l and p -channel devices can be fabricated on the same substrate. CMOS circuits cons ist of both types of MOS devices . interconnected to form logic functions. The basic circuit is the inverter, which consis ts of one p-channel tran sistor and one n-channel tran sistor. as shown in Fig. 1O.22(a). The source termi nal of the p-c hannel device is at VDD• and the source terminal of the a-channel device is at ground. The value of VDD may be anywhere from +3 to + 18 V.Tbe two voltage levels are for the low level and VDD for the high level (typically. 5 V). To understand the operati on of the inverter, we must revie w the behavior of the MOS transistor from the previou s section: av 1. The a-c han nel MOS conducts when its gate-to-so urce voltage is positive. 2. The n-channel MOS conducts when its gale-to-source voltage is negative . 3. Either type of dev ice is turned off if its gate-to-source voltage is zero. Now consider the operation of the inverter. When the input is low. both gates are at zero potential. The input Is at - VDD relative to the source of the p-channel device and at 0 V relative to the source of the a -channel device. The result is that the p..channel device is turned on and the a-channel devic e is turned off. Under these conditions. there is a low-impedance path fro m VDD to the outpu t and a very high impedance path from o utput to ground. Therefore. the output voltage approaches the high level VDD under normal loading co nditions. When the input is high. both gates are at VDD and the situation is reversed: The p..channel devic e is off and the a-c hannel device i ~ on. The result is that the output approac hes the low level of 0 V. Two other CMOS basic gates are shown in Fig. 10.22. A two-i nput NAND gate consists of two p- type units in parallel and two e -type un its in series. as sho wn in Fig. 10.22(b ). If all inputs are high. both p-channel tran sistors tum off and both a -chan nel tran sistors tum on. The output has a low impe dance to ground and produces a low state. If any input is low. the associated a -channe l tra nsistor is turned off and the assoc iated p-ch annel transistor is turned Section 10.8 Com plementary MOS v., rl ~ 1 r ~ P " , ,- A Y - A' A F•.J n I B ~ (I ) Inverter (b) toOAND Ille A o--r----~ ~-+---~---.---Q y .. (A + 8 )' (e) S O R p ie FJ(oURE 10.22 CMOS logic c1n::uih y .. (A B)" 499 500 Cha pter 10 Digita l Integrated Circuits on . The output is co upled to VOl) and goe s 10 the high state. Multiple-input NAK D gates may be formed by placi ng equal num bers of p-type and » -type transistors in para llel and serie s. respectively. in an arrangeme nt similar to that show n in Fig. 1O.22(b J. A two-input NOR gate consists of two » -type units in parallel and two p -type unit, in series. as show n in Fig. 1O.22(c) . When all input s are low. both n-c hannel units are on and both a-c han nel units are off. The outpu t is co upled to VD D and goes to the high srare. If any input is high. the associated p-c hanncl transistor is turned off and the associated n-ch annel tran sistor turns on . co nnecting the output to ground and causi ng a low-level out put. MOS tran sistors can be co nside red to be electro nic switches that either con duct or are open. As an example. the CMOS inverter can be visualized as consisting of two switches as shown in Fig. 1O.23(al . Ap plying a low voltage 10the input causes the upper switch (p ) to dose. supplying a high voltage to the output. Applying a high voltage to the input ca uses the lower switch (n ) 10close. connecting the output to ground . Thu s. the o utput VOIle is the co mplement of the input Vi", Co mmercial applications often use other graphic symbols for ~10S transistors to emphasize the logica l behavior of the switches. The arro ws showing the direction of current flow are o mitted . Instead. the gat e input of the p- chann eltrd.nsistor is draw n with an inversion bubble o n the gate terminal to show that it is enabled wilh a low vokage. The inverter ci rcuit is redrawn with these symbo ls in Fig. 1O.23(b). A logic 0 in the input causes the upper transistor to co nduc t. making the outpu t logic I. A log ic I in the input enable s the lower tran sisto r. making the o utput logic O. CMOS Characteristics When a CMOS logic circuit is in a static state. its pow er dissipation is very low. This is beca use at least o ne transistor is always off in the path between the power supply and ground when the state o f the ci rcuit is not changing. As a result. a typical CMOS gate has static power dissipation on the order o f 0.0 1 mw. However. when the circuit is changing state at the rate of I MH z. the power dissipation incre ases to abou t J rnw, and at In MHz it is about 5 mW. V tJtJ .. 5V I v"-[r-v~, 1 {a} Switch mod el FIGURE 10.2 3 CMOS inverter (b) logical model Section 10.9 CMOS Transm ission Gate Circuits 50 1 C!\lOS logic is usually speci fied for a sing le power-su pply operatio n ove r a voltage ran ge from 3 to 18 V with a typical val ue of 5 V. O perati ng C MOS at a larger power-supply voltage redu ces the propa gatio n delay lime and improves the noise margin. but the powe r dissipat ion is increa sed . The propagat ion dela y time with VlJD = 5 V ranges from 5 to 20 ns. depending o n the type of C MOS used . Th e noise marg in is usually abo ut 40 percent of the power supply volt age . Th e fa n-o ut of CMOS gates is abo ut 30 when they are operated at a freq uency of I MH z. The fan-ou t decreases with an increase in the freq uency of operatio n of the ga tes. There are several se ries of the CMOS digital logic family. The 74C series are pin and function compatible with TTL devices havin g the same number. For e xample. C ~IO S IC type 740 )4 has six inverters with the same pin configuration as TIL type 7404. The hig h-speed C!\toS 74 IJC series is an improvement over the 74C se ries. with a tenfo ld increase in switching speed. The 74HCT series is electrically compatible with TIL ICs. Thi . . means that circuits in this series can he conne cted to inp uts and outp uts of TTL l e s with out the need of additional interfaci ng circuits. Newer versions of CMOS are the high-speed series 74VHC and its TILcompatible version 74 VHCT. The CMOS fabrication process is simpler than that of TIl.. and pro vides a greater packing densit y. Thu s. more circuits can be placed on a given area o f silicon at a reduc ed cost per function . Thi s property. together with the low power dissipation of CMOS ci rcuits. good noise immunity. and reasonable propagation delay, makes CMO S the most popular standard as a digital logic famil y. voc , 0 .9 CMOS TRANSMISSION GATE CIRCUITS A special CMOS circuit that is not avai lable in the other digital logic families is the transmission gal e. Th e transmission gate is essentially an electronic switch that is controlled by an input logic level. It is used 10 simplify the construction o f various digital components when fabricated with C MOS techn ology. Figure 10.24(3) sho ws the basic ci rc uit of the transmi ssion gate. Whereas a C MOS inverter consists of a p-c hanne l transistor connec ted in se ries with an n -channel transistor, a transmission gate is fonned by one a -chann e l and one p -chan nel MOS tran sistor connected in parallel. T he e-channel substrate is connected to ground and the p-channel substra te is connected to VOl). When the N gate is at Vl)/J and the P gate is at gro und. both trans istors condoct and there is a closed path betwee n input X and outp ut Y. When the N gate is at ground and me P gate is at VDl). bot h tra nsistors are off and there is an open circuit besweea X aDd Y. Figure IO.24(b) shows the block diagram of the transm ission gate . Note that the IenIJiaI oi lbep-cbaorrl gale is mark ed with the negation symbol. Figure IO.24(c ) demonstnIIea thebebaYior of the switcb in terms o f po..iti....e-togic assignment with ¥oo equivelent tc logic 1 _ ~ c:qaivalClllllO logic O. Th e transmission gate is usually connected 10 an in verter, • sbowa .. .fi&.. 10.2.5. This type of arran gement is referred to as a bilateral switch: 'The coattoI input Cis ((JIW'IC'1I'(I direct ly 10 the n-c hunnel gate and its inverse to the p-channel gale. Wheu C = I. the swi1dt is S02 Chapt er 10 Digital Integrated Circuits -'" ...l.. y x~ x- ---j TG Tr p (.) (b) y Open switch Close d switch x~L:>....-y x~ y N- O ."I -I p- o P- l «) FleUR! 10 .2" Transmission gate (TG) c ~ v x- TG f--- y FIGURE 10.25 Bilate ral switc h closed. producing a path betwee n X and Y. When C = O. the switch is open . disconn ecting the path betw een X and Y. Various circuits can be con structed that use the transmission gale. To demonstrate its usefulness as a co mponent in the CMOS family. we will show three examples. The exclusive-OR gate can be con structed with two tran smission gates and rwc Inverters. as shown in Fig. 10.26. Input A co ntrols the paths in the trans mission gales and inp ut B is Section 10.9 CMOS Transmission Gate Circuits S03 A j TGJ ' i· 8 '. "i>t~ ~ v - y A B TG1 o o o I o I 1 1 TG2 Y close close "P" "P" "P" close close 0 I 1 open 0 .. •cc"!,\;'{i)) ~"-S""·-'··· ~ V ~1,1i1~ ~f~'" ·~-::if!4.~'h,'i!. FIGURE 10.26 Exclusive-ORconst ructed with transmission gates connected to output Y through the gales. When input A is eq ual to O. trans missio n gate TGI is clo sed and output Y is equal to input B. When inp ut A is equal to I . TG2 is closed and ourput Y is equal to the com plement of input B. This resu lts in the excl usive-OR truth tab le. as indicated in Fig. 10.26. Anothe r circui t that can be constructed with transmission gales is the multiplexer. A fourto-one-line multiplexer implemented with trans mission gate s is shown in Fig. 10.27. Th e TG circuit provides a transmission path bet ween its horizontal input and output lines when the two vertical control inputs have the value of I in the uncircled term inal and 0 in the circled termi nal. With an opposite polari ty in the co ntrol inputs. the path disco nnects and the circuit behaves like an open switch. Th e two selection inp uts. SI and So- control the transmissi on path in the TG circuits. Inside each box is marked the condition for the tran smission gate switch to O. ther e is a closed path from input 10 to outpu t Ythrou gh be closed . Thus. if So = 0 and SI the two TGs marked with So ". 0 and SI = O. The other three inputs art disconoected from the output by one of the other TG circuits. The lev el-sen sitive D flip- flop co mmo nly referred to as the gated D latch can be coestruc ted with tran smission ga tes. as sho wn in Fig. 10.28. The C input coouols lWO tn.nsmission gates TG. When C - I. the TO co nnected to input D has acJo.ed pMh 8Dd the one co nnected to output Q has an open path . This co nfi guratioa prodDca .. eqaivalc8l cirarit from input D through two inverters to ou tpu t Q. Thus. the 0UIpal fcJrI)ows die data inpIt as lon g as C rem ain s active . When C sw itches to O. the fmt TG diN ' - d l l iDpu& D from die circuit and the seco nd TG produces a closed path benwcen dI£ two iIIft11cn • die output. = 504 Chapt er 10 Dig it al In teg ra t e d Circuits s, v r-, s, v .~ . «~ TG~~, (~ -- 0), , &' ra '~J~,:?) I, :,~~r~ I' . ~ I, ,. jfiflJ1jj TGr% (5,;" 0);; fJlJi/fRiill I. :iJf;Jro ISII,'. g~7~~) 0' "·'t· ~', .' ' /. _Ta e-,'Ilt, ~:%:""''--",'lt;!r:, '(S "'1)";' IfJlf4i* FIGURE 10.27 Multiplexer w ith t ransm iuio n gates Th us. the va lue that was present at input D at th e lime that C went from I 100 is re tained at the Q o utput. A master- slave D llip- flop can be constructed with two circuits of the type sho wn in Fig. IO.!8. The first circ uit is the master and the second is the slave. Thu s, a ma..rer- slave 0 flip-flop can be constructed with four transmission ga tes and six inverters. Sect ion 10.10 Switch-l evel Mode ling with HOl 505 c - -r- - ----.--- - - - - --, TG f----.--+----1~-~-Q' !;'f- - - - 4-- Q FIGURE 10.28 Gat ed D latch wit h transmission gates 10 ,10 SWITCH ·LEVEL MODELING WITH HDL C~lOS is the dornlnant d igitallogjc family used with integrated circuits. By definition. C:-AOS ~ is a comp lementary connection of an NMOS and a PMO S transistor. ~O S transistors can be considered to be electronic switches that either conduct or are open. By specifying the connections among MOS switches. the des igner can describe a digital circuit constructed with CMOS. T his type of description is called switch-leve l modeling in Veri log HDL. The I WO type s of MOS switches are specified in Verilog HOL with the keywords nmos and p mos. They are instantia ted by specifying the three terminals of the transistor. as shown in Fig. 10.20: nmos (drain. source , ga te); pmos (drain, source , gale); Swit ches are considered 10 be primitives. so the use of an instance name is op tiona l. Th e connections to a po wer source (VOD ) and 10 ground mU ~1 be specified when MQS circuits are designed. PO\I,er and ground are defined with the keywords suppl}"l and supplyu. They are specified. for example. with the following statements: supply 1 PWR; supplyO GRO; Sources of type supply I are equivalent 10 VO D and have a value of logic I. Sources of type supplyn are equivalent to ground connection and have a value of logic O. The descr iption of the CMOS inverter of Fig. 1O.22(a) is shown in HDL Example 10.1. The input. the outp ut. and the IWO supply sources are dec lared first, Tbe module instantiates a p ~tO S and an NMOS tra nsisto r. Th e outpu t Y is common to both transistors at their drai n terminals. The input is also common to both tran sistors at their gate terminals. Tbe source: terminal of the PMOS transistor is connected to PWR and the source terminal of the NMOS transistor is connected to GRD. S06 Chapte r 10 Digita l Integrated Circuits HDL Exam ple 10.1 1/ CMOS inverter of Fig. 10.22(a) module inverter (Y. A); Input A; output Y; supply1 PWR; supplyO GRD; pmos (Y, PWR, A); nmos (Y, GRD, A); endmodule 1/(Drain, source, gale) 1/(Drain, source. gate) The second module. set forth in HOL Example 10.2. describes the two-input C~(OS ~A;-';O circuit of Fig. IO.22(b). There are two PMOS transistors connected in parallel, with their source terminals connected 10 PWR. There are also two NMOS transistors connected in series and with a comm on terminal WI . The drain of the first ~OS is connected 10 the o utput. and the source of the seco nd ;-..IMOS is connected to GRD. HDL Exam ple 10.2 fI CMOS two-input NAND of Fig. 10.22(b) modu le NAND2 (Y, A, B); Input A, B; output Y; supp ly 1 PWR; supplyO GRD; wire W1; pmos (Y, PWR, A); pmos (Y, PWR, B): nmos (Y, W1, A); nmos (W1, GRD, B); endmod ule 1/ terminal between two nmos 1/ source connected to Vdd 1/ parallel connection 1/ serial connection /I source connected to ground Transmissio n Gate The tran smission gale is instantiated in Verilog HOL with the keyword cmos. II has an output . an input. and two control signals. as shown in Fig. 10.24. It is referred to as a cmos switch. The relevant code is as follows: cmos (output. input. ncontrot, pcontrol); /I general description cmos (Y, X, N, P): 1/ transmission gate of Fig. 10.24(b) Normall y. ncontrol and pcontrol are the comp lement of each other. The cmos switch does nOI need power sources, since VDD and ground are co nnected to the substrates of the MOS transistors. Transmission gates are useful for building multiplexers and flip-flops with CMOS circuits. Section 10,10 Switch-Level Modeling with HDL 507 HDL Example 10.3 describes a circuit with cmos switches. Th e excl usive -OR circuit of Fig. 10.26 has two transmissio n gates and tw o inverters. The two inverters are insta ntiated within the mod ule describing a CMOS inverter. The two cmos switches are insta ntiated without an instance name, since they are primitives in the language. A test mod ule is inclu ded to test the circuit's operatio n. Ap plying all poss ible comb inations of the two inputs, the result of the simulator verifies the operation of the exclus ive-OR circuit. The output of the simulatio n is as follows: A =O 8 =0 Y = O A=O 8 = 1 Y= l A = l 8 = 0 Y =l A =l B =l Y = 0 HDL Exam ple 10.3 IICMOS XOR with CMOS switches , Fig. 10.26 module CMOS_XOR (A, B, Y); Input A, B; ou tput Y; wire A_b, B_ b; II instantiate inverter inverte r vt (A_b , A); inverte r v2 (B_b, B); II instan tiate cmos switch cmos (Y, B, A_b, A); cmos (Y, B_b, A , A_b ); e nd mod u le If CMOS inverter Fig. 10-22(a ) module inverter (Y, A); Input A; output Y; supply1 PWR; supplyO GND ; pmos (Y, PWR, A); nmos (Y, GND , A); e nd mo d ule II Stimulus to test CMOS_XOR module te sC CMOS_XOR; reg A,S ; wlre Y; IIlnstant iate CMOS_XOR CMOS_XOR X1 (A, B, Y); II Apply truth table Initial beg in lI(output, input, ncontrol, pcontrol) II(Drain, source , gate ) I/(Drain. source, ga te) 508 Chapter 10 Digital Integrat ed Circuits A = l 'bO; B = l 'bO; #5 A = l'bO; B = l 'bl ; #5 A = 1'bl ; B = l 'bO; #5 A = t'b t : B = l 'bl ; end f{ Display results Initial $monltor ( A =%b B= %b Y endmodule =%b~ , A, B, V); P RO BLEM S Answers to problems marked w ith 10.1 * * appear at the end of the book. Following are the specifications for the Schottky TfL 74SOO quadruple lw o-inpur N'A:'\O gate' : Paramet er Nam e Vee Supply voltage High-level supply current (four gates ) Low-le vel supply current (four gates) High-level out put voltage (min) Low-le vel output voltage (max) High-level input voltage (min) Low-level input voltage (max) High-leve l output current (ma x) Low-level output current (max) High-level input current (max) Low-level input current (max) Low-to-high del ay High-to-lo w del ay ICCH tea. VOH Vo, Vm V" 10 H toe hH I" t PLH trn t: Value 5V lO rnA 20 rnA 2.7 V 0.5 V 2V 0.8 V I rnA 20 rnA 0.05 rnA 2 rnA ,,, J" Calculate the fan-out, power dissipation. propagation de lay, and noise margin of the Schottky NAND gate. 10.24' (a) Determine the high-level OUlP UI voltage of the RTL gale (or a fan-out of 5. (b) Determ ine the minimum input voltage required to drive an RTL transistor to saturation when h n = 20. (c) From the results in parts (a ) and (b), determi ne the noise margin oflhe Rr t. gme w hen the input is high and the fan-out is 5. 10.]* Show that the output transistor o f the on. gate of Fig. 10.9 goes into saueauon when all inPUI, are high. Assume that hn = 20. Problems 509 10.4* Connect the output Yof the OTL gate shown in Fig . I0.9 to N inputs of other, similar gates. Assume that the output transistor is saturated and its base curre nt is 0.44 mAo Let h F E = 20. (a) Calculate the current in the 2-kn resistor. (b) Calculate the current coming from each input con nected to the gate. (c) Calcu late the total collec tor current in the output transistor as a function of N. (d) Find the value ofN that will keep the transistor in saturation. (e) What is the fan-out of the gate? 10.5* Let all inputs in the ope n-col lector TTL gate of Fig. I0.11 be in the high state of 3 V. (a) Determine the voltages in the base. collector. and emitter of all transis tors in the circuit. (b) Determin e the minimum h FE of Q2 which ensures that this transistor saturates. (c) Calculate the base current of Q3 . (d ) Assume that the minimum liFE of Q3 is 6. 18. What is the maxim um current that ca n be tolerated in the collector to ensure saturatio n of Q3? (e) What is the minimum value of R L that ca n be tolerated to ensure saturation of Q3? 10.6 (a) Using the actual output tran sistors of t.... o ope n-collector TTL gates. show (by means of a truth table ) that. when connected toget her III an external resi stor and Vee , the wired connection produces an AKO function. (b) Prove that two ope n-collector TTL inverters. when connected togeth er. produ ce the NOR function. 10.7 It was stated in Section 10.5 that totem-pole uutputs should not be tied together to fonn wired logic. To see why this is prohibitive. connect two such circuits together and let the output of one gate be in the high state and the output of the other gate be in the low state. Show that the load current (which is the sum of the base and collector currents of the saturated transistor Q-I in Fig. 10.14) is about 32 mA oCompare this value with the recomme nded load current in the high state of 0.4 mA. 10.8 For the following conditions, list the transistors that are off and the transistors that are conducting in the three-state TTL gate of Fig. 1O.16(c} (for Ql and Q6. it is necessary to list the slates in the base-emitter and base--collector junctions separately): (a) when C is low and A is low. (b) when C is low and A is high . (c) when C is high. Wh at is the stale of the output in each case? 10.9* (a) Calculate the emitter curre nt te across R£ in the ECL gate of Fig. 10. 17 when atleas..t one input is high at -0.8 V. (b) Calculate the same current when all inputs are low at - 1.8 v. (c ) Now assume that le = te. Calc ulate ibe voltage drop across the co llecto r resistor in eac h case and show that it is about I V. as required. 10.1 0* Calculate the noise margin of the Eel gale. 10.1 1 Using the NOR outputs of two ECL gates. show that, when COlIlOCfed IOgelber 10 aD e1ICIDaI resister and a negative supply voltage, the wired connection prodDccs .. OR r-:tioL The MOS tran sistor is bilateral (i.e.. curre nt may flow from alM'Ce 10 draia or from. draillllO 10.12 source). On the basis of this property, derive a circu illb.al impIcmmIs Ibe Be:-*- r..aioa Y = ( AS using six MOS transistors. + CD + AED + CEB)' 510 Chapter 10 Digital Integrated ClrculU 10.13 (a) Show the circuit of a four-input NAA'U gate using CMOS transistors. (b) Repeal for a four-input NOR gate. 10.14 10.15 10.16 10.17 Construct an exclusive-NOR circuit wilh IWO inverters and two transmission gates. Construct an eight-to-one-line multiplexer using transmission gates and inverters. Draw the logic diagram of a master-s teve D flip-flop using transmission gates and tnveeers. Write a test bench that will te st the NA.'lDcircu it of HDLExample 10.2. The simulation should verify the truth table of the gate. RE FE REN C ES 1. 2. 3. 4. S. 6. 7. ClLETIl. M. D. 1999. Modeling. Symhesis. and Rapid Protot)'ping with Verilog HDL Upper SeddIe River. NJ: Prentice Hall. CMOS Logic Data Book. 1994. Dallas: Texas Instruments. HODGES. D. A. 2003.A nalysis and Design ofDigital Integrated Cirruits. New York: ~lcGra~ · Hill . TOCCI. R. J.. and N. S. WIDMER. 2004. Digital Systems: Principles and Applications. 9th ed. Upper Saddle River. NJ: Prentice Hall. The TTL Logic Data Book . 1988. Dallas: Texas Instruments. WAKERLY. J. F. 2006. Digital Design: Princ iples and Practices. 4th ed . Upper Saddle River, S f: Prentice Hall. WESTE. X. E.. and K. EsHRAGHlA.'l. 2005. Principles of CMOS VLSI Design: A S)'slem Perspective, 2d ed. Reading. MA: Addison-Wesley. Chapter 11 Laboratory Experiments with Standard ICs and FPGAs 11. 1 INTRODUCTION TO EXPERIMENTS This chapter presents 18 laboratory experiments in di gital circuits and logic design. The experiment s give the student using this book hands-on experience. Th e dig ital circuits can be constructed by using standard integrated circu its (lC s) mounted on breadboards that are easily assemb led in the laboratory. The experiments are ordered according to the ma teria l presented in the book. The last section consists of a number of supplements with suggestions for using the Verilog HDL to sim ulate and verify the functionality of the digital circuits presented in the experiments. If an FPG A proro ryplng board is available , the experiments can be imple mented in an FPGA as an alternative to standard IC s. A logie braadbosrd cuitahlc for performing the arparimsntc muct have the following equipment: 1. Light -emitting diode (LED) indic ator lamps. 2. Toggle switches to provide logic-t and logic -Osignals. 3. Pulsers with push buttons and debo unce circ uits to gene rate single pul ses. 4. A clock-pulse gene rator with at least two freq uencies: a low freq uency of abo ut 1 pulse per second to observe slow change s in dig ital signals and a higher freq uency for observing waveform s in an oscillo scope . S. A power supply of 5 V. 6. Soc ket strips for mounting the lCs. 7. Solid hookup wires and a pair of wire strippers for cutting the wires . Digital logic trainers that include the req uired equip ment are available fro m several manu facturers. A digital logic trainer contains LED lamp s. togg le switches. pul sers, a variable clock. 511 5 12 Chapter 11 Laboratory Experiments a power supply. and IC socket strips. Some experiments may req uire add itional switches . lam ps. or IC soc ket strips. Extended breadboards with mor e sol derte ss soc kets and pl ug-in switche s and lamps may be needed. Addi tional equipment required is a dual-trace o sci lloscope (for Experimen ts I. 2. 8. and IS). a logic pro be to be used for debu gging. and a number o f IC s. The rc s req uired for the experiments arc of the TIL or C M05 se ries 7400. Th e integrated ci rcuits to be used in the experi ments can be classified as small-scale integration (5 5 1) or med ium-sc ale integrat ion (M5l) ci rcuits. 551circuits co ntain indiv idual ga tes or flip-flops. and MSI circuits perform spec ific digital functions. The eight SSI gate ICs need ed for the experiments- two- input NAN D. NOR. A"1). OR. and XOR gate s. inverters. and threeinput and fou r-input NAND ga tes-are shown in Fig. 11.1. The pin assignmen ts for the ga tes are indicated in the d iagra m. The pins are numbered from I to 14. Pi n number l -l- is mar ked Vee. and pin number 7 is marked GND (gro und). These are the supply te rminals. ....hich mu st be con nected to a powe r supply of 5 V for proper ope ration of the ci rcuit. Each IC is recognized by its identification num ber, for example. the two- input N AND ga tes are found inside the IC whose number is 7400. Det ailed description s of the MS I circ uits can be found in data book s pub lished by the manufacturers. The best way to acqui re ex perience with a commercia l MSI circu it is to study its description in a da ta boo k that prov ides complete informat ion on the intern al. extern al. and electrica l characterist ics of integra ted circ uits. Various se miconducto r companies pub lish data boo ks for the 7400 series. The MSI ci rcuits that are need ed for the experiments are introduced and ex plained when they are used for the first time . Th e operation of the circu it is ex plained by referring to similar circuits in pre vious chapters. The information given in this chapter about the MSI ci rcuits should be sufficient for performi ng the experiments adequ ately. Nevertheless. referen ce to a data hook will always be preferabl e. as il gives more detailed description of the ci rcuits. We will now demonstrate the method of presentat ion of MSI circ uits adopted here . To illustrate. we introdu ce the ripple counter IC. type 7493. Thi s IC is used in Experiment I and in subseque nt experime nts to genera te a seq uence o f binary numbers for verifying the operation of combinational circuits. The information about the 7493 IC that is found in a data boo k is shown in Figs. 11 .2(a ) and (b). Part (a) shows a diagra m of the intemallogie circuit and its connecti on to external pins. All inpu ts and outputs are given symbolic letters and assigned to pin numbers. Pan <b) shows the physical layout of the IC. together with its la -pin ass ignment 10 signal names. Some of the pin.. are not used by the circuit and are marked as NC (no connection). The IC is inserted into a socket. and wires are co nnected to the various pins through the socket terminals. When draw ing schematic diagrams in this chapter, we will show the Ie in block diagram form. as in Fig. 11.2(c) . The IC number (here . 7493) is written inside the block . All input terminal s are placed on the left of the block and all outp ut terminal s on the right. The letter sy mbols of the signals. such as A. Rl , and QA. are written inside the block. and the corresponding pin numbers. such as 14.2. and 12. are written along the externa l lines. Vee and GND are the powe r terminals connected to pins 5 and 10. The size o f the block may vary to acc ommodate all input and OUtput terminals. Inputs or output s may somet imes be placed on the top or the bottom of the bloc k for convenience. The operation of the circuit is similar to the ripple counter shown in Fig. 6.8(a) with an asynchronous cle ar to eac h flip-flop. When input Rl or R2 or both are eq ual to logic 0 (ground). all asynchronous clears are equal to I and are disabled . To clear al l four flip- flops to O. the output Sect ion 11.1 Introducti on to Experim ent s 2-inp ut NAN D 2-inpUI NO R 7400 7402 Inverters 741\4 2-input A !"O D 3-inp ut NAND -t-input NAND 7410 7420 2-inpUl O R 7432 2-inpul XOR 7408 7486 FIGURE 11 .1 Digital gates in Ie package s with Identification numbers and pin assignments 5 13 514 Inpu t A Cha pter 11 laboratory Experlme nu 14 7493 Input 8 1 (tI) Physicallayout (NC; no connection) s 12 14 , QD R1 2 R1 3 2 8 3 11 10 (a) Internal circuit diagram (c) Scbematic diagram FIGURE. 11 .2 Ie type 7493 ripp le counter of the NAN D gate must be equal to O. This is accomplished by having both inputs RJ and R2 at logic I (abou t 5 V). Note that the J and K inputs show no connection s. II is chara cteri stic of TfL circuits that an input terminal with no external connections has the effect of producing a signal equivalent to log ic t. Note also that output QA is nOI connected to input B internally. Section 11.1 Introduction to Experiments 515 The 749 3 IC can operate as a three-bit co unter usin g input B and flip-flop s QB, QC, and QD. It can ope rate as a four-bit counter using input A if output QA is co nnected to input B. Th er efore , 10 operate the circ uit as a four-bi t counter, it is ne cessary to have an extern al co nnec tion between pin 12 and pin 1. The reset inputs, RJ and R2, at pins 2 and 3, res pectively, must be grounded. Pins 5 and 10 mu st be connec ted to a 5-V po wer supply. The inpu t pulses mu st be app lied to input A at pin 14. and the four flip -flop outputs of the counter are taken fro m QA . QB. QC, an d QD at pins 12, 9, 8. an d 11, respectively, with QA being the least significa nt bit. Figure 11.2(c) demonstrat es the way that all MSI circ uits will be symbolized graphica lly in this cha pter. Only a block diagram similar to the one shown in thi s fig ure will be give n for each Th e lette r symbols for the inputs and output s in the IC bl ock diagram will be acco rd ing to the symbols used in the data book. The ope ration of the circui t will be explained with reference to log ic diagrams from pre vio us chapters. Th e operation of the circuit will be spec ified by mean s of a troth tab le or a function table. Oth er possible grap hic symbols for the ICs are presented in Chap ter 12. These are standard graphic sym bols appro ved by the Institute of Electrical and Electronics Eng ineers and are given in IEEE Standard 91 - 1984. The standard graphi c symbols for SSI gates have recta ng ular shapes , as sho wn in Fig. 12. 1. The stan dard graphic sym bol for the 74 93 IC is shown in Fig. 12.13. Th is symbol can be substi tuted in place of the one sho wn in Fig. 11.2(c). Th e sta ndard gra phic symbo ls of the other ICs that are needed to ru n the experiments are presented in Chapter 12. They can be used to draw schematic diagrams of the logic circu its if the standard symbols are preferred . Table 11.1 lists the ICs that are needed for the experiments, toge ther with the number s of th e figu res in which they are pre sented in this chapter. In add ition. the table lists the numbe rs of the fig ures in Chapte r 12 in which the equiva lent standard graphic symbo ls are drawn. Ie. Ta b le 11 .1 IntegratedCircuits Requirl!d for the Experiments Graphic Symbol IC Number 7447 7474 7476 7483 7493 74151 74155 74157 74 16 1 74 189 74 194 74 195 7730 72555 Description In Chapter 11 In Chapter 12 Various gales BCD-to-seven.segmenl decoder Dual D-type flip-flops Dual JK-type flip-flops Four-bit binary adder Four-bit ripple counter 8 X I multiplexer 3 x 8 decoder Quadruple 2 x I multiplexers Four-bit synchronous counter 16 x 4 random-access memory Bidirectional shift register Four-bit shift register Seven -segment LED display Timer (same as 555) Fig. 11.1 Fig. 11.8 Fig. ll.l 3 Fig. 11.1 2 Fig. 11.1 0 Fig . 11 .2 Fig. 11.9 Fig. 11.7 Fig. 12.1 Fig. 11.17 Fig. 11.15 Fig . 11.18 Fig . 11.19 Fig. 11.16 Fig. 11 .8 Fig. 11.21 Fig. 12.9(b) Fig. 12.9(a) Fig. 12.2 Fig. 12.13 Fig. 12.7(a) Fig. 12.6 Fig. 12.7(b) Fig. 12.14 Fig. 12.15 Fig. 12.12 Fig. 12.1 1 516 Cha pte r 11 labo rato ry Experime nts The next 18 sections prese nt 18 hard ware experimen ts requiring the use of digital integrated circ uits. Sec tion 11.20 outlines HDL simulation ex periments requiring a Verilog HDL compiler and simulator. 11 .2 EXPERI M EN T 1 : BINARY AND DEC IMAL NUMB ERS Thi s experime nt dem onstrates the count seq uence of binary num bers and the binary -coded deci mal (BCD) representation. It serves as an introdu ct ion to the breadboard used in the laboratory and acquaints the student with the cathode-ray osc illoscope. Reference material fro m the text that may be useful to know while perfonning the experimen t can be found in Section 1.2. on binary numbers. and Sec tion 1.7, o n BC D numbe rs. Binary Count IC type 7493 co nsists of fou r flip -flops. as shown in Fig. 11 .2. They can be co nnec ted to co unt in binary or in BCD . Co nnec t the to operate as a four-bit binary cou nter by wiring the extem al terrninals, as shown in Fig . 11 .3. Thi s is done by co nnecting a wire from pin 12 (output QA) to pin I (input B ). Input A at pin 14 is connected to a purser tha t pro vides single pulse s. The two reset inputs, RJ and R2, are connected to gro und. The four outputs go to four indicator lamps. with the low-order bit of the co unter from QA connec ted to the rightmost indicator lamp . Do not forget to supply 5 V and ground to the Ie. All co nnections should be made with the power supply in the off position . Tum the power on and obse rve the four indicator lam ps. The four-bit numbe r in the output is incremented by I for every pulse generated in the push-burton pulser. The cou nt goes to binary Ie " - - ---1 FIGURE 11 .1 Bina ry co unter 10 Section 11.2 Exp eriment 1: Binary and Decima l Numbers 51 7 15 and then back to O. Disconnect the input of the counter at pin 14 from the pulser, and connect it to a clock generator that produces a train of pulses at a low frequency of about I pulse per second. This will provide an automatic binary count. Note that the binary counter will be used in subseq uent experiments to provide the input binary signals for testing combinational circuits. Oscilloscope Display Increase the frequency of the dock to 10 kHz or higher and connect its output to an oscilloscope. Observe the d ock output on the oscilloscope and sketch its waveform. Using a dual-trace oscilloscope. connect the output of QA to one channel and the output of the clock to the second channel. Note that the output of QA is complemented eve!), time the clock pulse goes through a negative transition from I to O. Note also that the dock frequency at the output of me first flip-flop is onehalf that of the input d ock frequency. Each flip-flop in tum divides its incoming frequency by 2. The four-bit counter divides me incoming frequency by 16at output QD. Obtain a timing diagram showing me relationship of the dock to the four outputs of the counter. Make sure that you include at least 16 d ock cycles. The way to proceed with a dual-trace oscilloscope is as follows: First, observe the dock pulses and QA. and record their timing waveform s. Then repeat by observing and recording the waveforms of QA together with QB, followed by the waveforms of QB with QC and then QC with QD. Your final result should be a diagram showing the relationship of thc clock to the four outputs in one composite diagram having at least 16 clock cycles. BCD Count The BCD representation uses the binary numbers from ‫סס‬oo to 1001 to represent the coded decimal digits from 0 to 9. IC type 7493 can be operated as a BCD counter by making the external connections shown in Fig. 11 .4. Outputs Q8 and QD are connected to the two reset inputs, 10 FIGURE 11 .4 BCD co unte r 518 Chapter 11 Laboratory ExperimenU RJ and R2. Whe n both RJ and R2 are equal to I, all four cells in the counter clear to 0 irrespective of the input pulse. Th e counter starts fro m 0, and every input pulse incre ments it by I until it reaches the count of 1001. The next pulse changes the ouput to 1010. making QS and QD equal to 1. Th is mome ntary output cannot be sustained, beca use the four cells imm ed iately clear to O. with the result that the outp ut goes to ‫סס‬OO . Thu s, the pu lse after the coun t of 1001 cha nges the output to ‫סס‬OO, produci ng a BCD cou nt. Connect the IC to operate as a BCD counter. Connect the input to a pulser and the four Out puts to indicator lam ps. Verify that the count goes from ‫סס‬oo to 1001. Disconnect the input fro m the pulser and connect it to a clock generator. Observe the clock waveform and the fou r outpu ts on the oscilloscope . Obtain an acc urate timing diagram sho wing the relationship betwee n the cloc k and the four outpu ts. Mak e sure to inclu de at least 10 clock cycles in the oscillo scope display and in the composite timi ng diagram. Out put Pattern When the cou nt pulses into the BCD co unter are continuou s, the coun ter keeps repeating the sequence from ‫סס‬oo to 1001 and back to ‫סס‬OO. Th is mean s that each bit in the four outp uts prod uces a fixed pattern of I 's and O's tha t is repeated every 10 pulses. These patterns can be predicted from a list of the binary numbers from ‫סס‬oo to 1001 . The list will show that output QA. bei ng the least significant bit , prod uces a pattern of al terna te I 's and O's. O utput QD. being the most significant bit, produces a pattern of eight D's followed by two t 's. Obtain the pattern for the other two outputs and then check all four patterns on the oscilloscope . Th is is done with a dua l-trace oscilloscope by displaying the clock pulses in one channel and one of the outp ut wav eform s in the othe r channel. The pattern of I 's and Il's for the correspo nding outpu t is obtained by obse rving the output levels at the vertical position s where the pulses change from I to O. Ot her Counts Ie type 7493 can be connected to count from 0 to a variet y of fina l coun ts. This is done by connecting one or two outputs to the reset inputs, RJ and R2. Thu s, if RJ is connected to QA instead of to QS in Fig. 11.4, the resulting co unt will be from ‫סס‬oo to 1000, which is 1 less tha n I and QA = 1). 1001 (QD Utilizin g your knowledge of how RJ and R2 affect the final count, connect the 7493 IC to count from ‫סס‬oo to the following final counts: = (a) 0 101 (h) 0 111 (c) lOll Connect eac h circu it and verify its count sequence by applying pulses from the pulser and observi ng the output count in the indicator lamps. If the initial count starts with a value greater than the final cou nt, keep applyi ng input pulses until the output cle ars to O. Sectio n 11.3 Expe rime nt 2: Dig ital logic Gates 11.3 519 EX P ERI ME N T 2 : DIGITAL LOGIC G ATES In this expe riment. you will investigate the logic behav ior of vario us IC gates: 7400 quadruple two-input NAl\'D gate s 7402 quadruple two-input NOR gates 7404 hex inverte rs 7408 quadruple two-input AN D gates 7432 quadruple two-input OR ga tes 7486 quadru ple two-input XOR gates The pin assign ments to the various gates are show n in Fig. 11.1. "Quadruple" means that there are four gate s within the package. The digita l logic gates and thei r characteristics are discussed in Sec tion 2.8. A :"lASD implem entation is discussed in Sec tion 3.7. Truth Table. Use one gate from each IC listed and obtain the truth table of the gate. The truth table is obtained by connecting the inp uts of the gale to switches and the output to an indicato r lamp. Compare you r results with the truth tables listed in Fig. 2.5. Waveforms For each gate listed, obtain the inp ut-output waveform of the gate. The waveforms are to be observed in the oscilloscope. Use the two low-order outputs of a binary cou nter (Fig . 11 .3) to provide the inputs to the gate. As an example. the circuit and waveform s for the NAN D gate are illus trated in Fig. 11 .5. The oscilloscope display will repeat this wa veform . but you shou ld record only the nonrepetitive portion. Propagation Delay Co nnect the six inverters inside the 7404 IC in cascade. The output will be the same as the input. exce pt that it will be delayed by the time it takes the signal to propagate through all six inverters. Ap ply clock pulses to the input of the first inverter. Using the oscilloscope, determine Input pUIW5 F QA ~ F ~ flC;URE 1 1.5 Waveforms fo r NAND gate 520 Chapter 11 l aboratory Experiments the delay from the input to the output of the sixth inverter during the upswin g of the pulse and again d uring the downswin g. Thi s is do ne w ith a dual -trace oscillo scope: by ap plying the input clock pulses to one of the chan nels and the output of the sixth inverter to the second channel. Set the tim e-base knob to the low est time-per-di vision setting. The ri se or fall time o f the two pulses should appear on the screen. Divide the total delay by 6 to obtain an average propagation delay per inve rter. Universal NAND Gate Using a single 7400 IC, co nnect a ci rcuit that produces (a) an inverter. (b) a two-input AND. (c) a two-input OR . (d ) a two-inpu t NO R. (e) a two-input XOR. (See Fig. 3.32.) In each case, verify your circuit by checking its truth table. NAND Circuit Using a single 7400 Ie , construct a ci rcuit with NAND gates that implemen ts the Boo lean funct ion F = AB + CD 1. Draw the ci rcuit d iagram . 2, Obta in the truth table fo r F as a function of the fou r inputs. 3. Connect the ci rcuit and verify the truth table. 4. Record the patterns of l's and D's for F as inputs A. B. C, and D go from bi nary 0 to binary 15. 5, Co nnect the four outputs of the binary counter shown in Fig. 11.3 to the fou r inputs of the N AND circuit. Connec t the input cloc k pulses from the counter to one channel of a dualtrace osc illoscope and output F to the other channel. Ob serve and reco rd the l 's and D's pattern of F after each clock pul se. and compare it with the pattern recorded in step 4. 1 1. 4 EX PE RIMENT 3 : SIMPLIFIC ATION O F BOO LEA N FUN CTI ON S This experiment de monstrates the relationship between a Boolean function and the corresponding logic diagram . The Boolean functions are simplified by using the map method, as discussed in Chapter 3. The logic diagrams are to be draw n with NAND gates , as ex plained in Sect ion 3.7. Section 11.4 Experiment 3: Simplificatio n of Bool ean Funct ions 521 The gate ICs to be used for the logic diagrams must be those from Fig. 11 .1 which contain the following NAND gates: 7400 two-input NAND 7404 inverter (one-input NAND) 74 10 three-input NAND 7420 four-input NAN D If an input to a NAND gate is not used, it should not be left open, but instead should be connected to another input that is used. For example, if the circuit needs an inverter and there is an extra two-input gate available in a 7400 IC, then both inputs of the gate are to be connected together to form a single input for an inverter. Logic Diagram This part of the ex peri ment starts with a given logic diagram fro m which we proceed to apply simplification procedures to reduce the number of gates and. possibly, the number of ICs. The logic diagram shown in Fig. 11.6 requi res two ICs- a 7400 and a 74 10. Note that the inverters for inpu ts .r, y, and z are obtained from the remain ing three gates in the 7400 Ie. If the inverters were taken from a 7404 Ie , the circuit would have required three 1Cs. Note ~ QJt~l:i~; y tji!t;;> ~ 1Wl ~ ii FIGURE 11 .6 logic diagram for Experiment 3 i;;'~}~~>'- F 522 Chapter 11 Laboratory Experiments also that, in dr awing SS I ci rc uits, the gates are not enclosed in blocks as is do ne with MSI circ uits. Assign pin num bers to all inputs and OUIPUts of the gates. and connect the circuit with the .r, y, and z inputs goi ng to three switches and the output F to an indicator lamp. Test the circuit by obtaining its truth tab le. Obtain the Boo lean function of the circui t and simplify it. using the map method. Construct the simplified circuit without disconnecting the original circui t. Test both circ uits by applying ide ntical inputs 10 eac h and observ ing the separate outputs. Show that. for eac h of the eight possible input co mbinatio ns, the two circuits have identical outputs. Thi s will prove that the simplified circ uit behaves exactly like the original circuit. Boolean functions Cons ider two Boolean funct ion s in sum-o f-minterm s form : F,(A. B. C. D ) = (0. 1.4.5. 8. 9.10. 12. 13) F, (A . B. C. D ) = (3. 5. 7. 8.10. 11 . 13. 15 ) Simplify these functions by means of maps. Obtain a composite logic diagram with four inputs, A, B, C. and D, and two outputs, F, and F2. Implement the two funct ions together, using a minimum nu mber of NAND ICs. Do not duplicate the same gale if the corresponding term is needed for both functions. Use any extra gates in existing IC s for in verters when possible . Connec t the circu it and chec k its operation. The truth table for F] and F2 obtained from the circuit should conform with the mlnterm s listed . Complement Plot the following Boolean funct ion in a map : F = A'D + BD + B' C + AB'D Com bine the I 's in the map to obtain the simp lified functio n fo r F in sum-of-p rod uct s fonn. T he n co mb ine the D's in the map to o bta in the simpli fied fun ction fo r F ' , also in sum-o f-prod ucts fo rm. Im plem ent bo th F and F' with NA ND gates, and connect the two circuits to the sa me input switches. but to separate outp ut ind icator la mps. Ob tain the truth tab le o f each circuit in the laboratory and sho w that they are the complements of each ot her. 1 1. 5 EX PE RIM EN T 4 : COMBINATI ONAL CIRCUIT S In this experiment , you will design. construct, and tes t four comb inational logic circuits. The first two circu its arc to be constructed wi th NA."'U> gate s, the third with XO R gate s, and the fourth with a decoder and NAND gates. Reference to a parity gen erator can be found in Sec tion 3.9. Implementation with a decoder is discussed in Section 4 .9 . Section 11.5 Experiment 4: Combinational Circuits 523 Design Example Design a combinational circuit with four inputs- A, B, C, and D-and one output. F. F is to be equ al to 1 when A = I, prov ided that B = O. or when B = 1, provided that either C or D is also equal to 1. Oth erwi se, the outp ut is to be equ al to O. 1. Obtain the truth tabl e of the circ uit. 2. Simpli fy the output function. 3. Draw the logic diagram of the circuit, using NAND gates with a minimum number of IC s. 4. Construc t the circuit and test it fo r proper operation by verifying the given co nditio ns. Majority logic A maj ority logic is a digital circuit whos e output is equal to 1 if the majority of the inputs are I 'soThe output is 0 otherwise. De sign and test a three-input majority circ uit using NAND gates with a minim um number of lCs. Panty Generator Design , construc t, and te st a circuit that generates an even parity bit fro m four message bits . Use XOR gates. Adding one more XOR gate , expand the circu it so that it generates an odd parity bit also. Decoder Implementation A co mbinational circu it has three inputs-c-r . y. and z-c-and three outputs-F), F2 , and F3 . Th e simplified Boolean functions for the circuit are F[ = F2 = xz + x')" ::' x'y + xy'z' F3 = xy + x'y'Z Imp lement and test the co mbi national circ uit , using a 74155 decoder Ie and ex ternal NAND gates. The block diagram of the decod er and its truth tab le are show n in Fig . 11.7. The 74155 can be co nnec ted as a dual 2 x 4 decoder or as a single 3 x 8 decoder. When a 3 x 8 decoder is desired. inputs Cl and C2. as well as inputs GI and G2. must beconnected lOgdhtt.as shown in the block diagram. Th e fun ction of the circ uit is similar to that illUSb"aled in Pig. 4 .18 . G is the en abl e input and mu st be equ al to 0 for proper operation. 1bc cigbt outpulS are IabeIod with symbo ls given in the data book . The 74 155 uses NAND gares. with the result thai: the se lected output goes to 0 while all oth er outputs remain at I. 'The impIemc:otalioo with the decoder is as shown in Fig . 4 .21. except that the OR gates must berqUccd witbextcmal NAND gates when th e 74 155 is used. 524 Cha pter 11 l a boratory Exper iments 9 10 11 12 8- ----'-1 7 A- - -"'-1 6 , G- -"--'''-j ( Truth table O utpu ts Inputs G C B A 2'" 2YI 2Y2 2Y3 1'" 1Y1 In 1>'3 1 0 0 0 0 0 0 0 0 X 0 0 0 0 X X 0 0 1 0 1 1 1 1 1 1 1 I I 0 I 1 I 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 I I I I I I I 0 I 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 I I 0 I 1 1 0 FIGURE 11 .7 IC type 74155 connected as a 3 x 8 decoder 1 1. 6 EXPERIME NT 5: CODE CONVER TERS Th e conversion from one binary code to anomer is common in digital systems. In this experiment. you will de sign and construct three co mbinational-circuit converters. Code convers ion is discussed in Secti on 4.4 . Gray Code to Binary Design a combinational ci rcuit with fo ur inputs and four o utputs that converts a four-bit G ray code number (Table 1.6) into the equivalent four-bit binary number. Implement the circuit with excl usive-Ole gates. (Th is can be done with one 7486 Ie.) Co nnect the ci rcuit to four switches and four indicator lamps. and check for prope r opera tion. Sect ion 11.6 Experime nt 5: Code Conve rte rs 525 9 's Complementer Design a combinational circ uit with four input lines that represe nt a decimal digit in BCD and four output lines that generate the 9's complement of the input digit. Provide a fifth outpu t that detects an error in the input BCD number. This output should be equal to logic I when the four inputs have one of the unused combinations of the BCD code . Use any of the gates listed in Fig. 11.1. but minimize the total number of rc s used. Seven-Segment Display A seven-segment indicator is used to display any one of the decimal digits 0 through 9. Usually,the decimal digit is available in BCD . A BCD-to-seven-segment decoder accepts a decimal digit in BCD and generates (he corresponding seven-segment code, as is shown pictorially in Problem 4.9. Figure 11.8 shows the connections necessary between the decoder and the display. The 7447 IC is a BCD-to-seven·segment decoder/driver that has four inputs for the BCD digit. Input D is the most significant and input A the least significant. The four-bit BCD digit is converted to a seven-segment code with outputs a through g. The outp uts of the 7447 are applied to the inputs of the 7730 (or equivalent) seven-seg ment display. Th is IC contains the seve n light-emitting diode (LED) segments on top of the package . The input at pin 14 is the common anode (CA ) for all the LEOs. A 47-U resistor to Vee is needed in order to supply the proper current to the selected LED segments. Other equivalent seven-segment display le s may have additional anode terminal s and may req uire differe nt resistor values. Construct the circuit shown in Fig. 11.8. Apply the four-bit BCD digits through four switches. and observe the decimal display from 0 to 9. Inputs 101 0 through I I II have no meaning in BCD. 16 47 n 13 I' 12 13 11 10 10 , 8 is 2 I. 11 7 8 FIGURE 11 .8 BCD-to -seven -segment decoder (7447) and seven.segment display (7730) 526 Chapter 11 l ab or at ory Experiments Depen ding on the decode r. these values may cause either a blank or a meaningless panem to be displayed. Observe and record the output pattern s of the six unused input combinatio ns. 1 1. 7 EXPERIMENT 6 : DESIGN W ITH MULTIPLEXERS In this experiment . you will design a comb inational circuit and imp leme nt it with mu ltiplexers. as explained in Section 4 .11. The multiplexer 10 be used is Ie type 74 151. sho.....n in Fig. 11.9. The internal construction of the 74 151 is similar to the diagram shown in Fig. 4 .25. except that 8 7 4 J 2 Data Inputs 5 6 15 14 IJ 12 Select inputs Fu nction ta ble Strobe S C I 0 0 0 0 0 0 0 0 X 0 0 0 0 Select B 1 X 0 0 1 1 0 0 1 1 1 1 1 fiGURE 11.9 Ie type 74151 38 x 1 mctuprexer Out put A X 0 1 0 1 0 1 0 1 Y 0 DO 01 02 OJ 04 OS D6 07 Output Y w.. y ' Section 11.8 Experiment 7: Adders and Subtractors 527 there are eight inputs instead of four. The eight inputs are designated DO through D7. The three selection lines-C, B, and A- select the particular input to be multiplexed and applied to the output. A strobe controlS acts as an enable signal. The function table specifies the value of output Y as a function of the selection lines. Output W is the complement of Y. For proper operation, the strobe input S must be connected to ground. Design Specifications A small corporation has 10 shares of stock, and each share entitles its owner to one vote at a stockholder's meeting. The 10 shares of stock are owned by four people as follows: Mr. W: I share Mr. X: 2 shares Mr. Y: 3 shares Mrs. Z: 4 shares Each of these persons has a switch 10 close when voting yes and to open when voting no for his or her shares. It is necessary to design a circuit that disp lays the total number of share s that vote yes for each measure. Use a seven-segment display and a decode r, as shown in Fig. 11.8, to display the req uired number. If all shares vote no for a measure , the display should be blank. (Note that binary input 15 into the 7447 bla nks out all seven segments.) If 10 shares vote yes for a measure. the display should show O. Otherwise, the display shows a decimal number equ al to the number of shares tha i vote yes. Use four 74 151 multiplexe rs to design the combinational circuit that co nverts the input s from the stock owners ' switches into the BCD digit for the 7447 . Do not use 5 V for logic I. Use the o utput of an inverter whose input is grounded. 11.8 EXPERIMENT 7 : ADDERS AND SU8TRACTORS In this experiment, you will construct and test various adder and subtracter circuits. The subtractor circuit is then used to compare the relative magnitude s oft wo numbers. Adders are discussed in Section 4.3. Subtraction with 2's complement is explained in Section 1.6. A four-bit parallel adder-subtracte r is shown in Fig. 4.13, and the comparison of two numbers is explained in Section 4.8. Half Adder Design, construct, and test a half-adder circuit using one XOR gate and two NAND gates. Full Adder Design, construct. and test a full-adder circuit using two 1Cs, 7486 and 7400 . 528 Cha pter 11 Laboratory Experime nts 16 \' Vrr B, I , , t BJ AJ 82 ,m 8 I. C4 " 54 " M ,. 52 A2 II 81 51 2 • 9 A/ 13 I;j% FIGURE 11 .10 IC type 7483 four-blt binary adder GND I" Paralle l Adder Ie type 7~ 83 is a four-bit binary parallel adder. The pin a...sjgnment is shown in Fig. 11.10. The 2 four-bit input binary numbers are Al throughA4 and Bl through 84. The four-bit sum is ootained from 5 1 through 54 . CO is the input carry and C4 the ou tput carry. Te st the four -bit binary adder 7483 by connecting the power supply and ground term inals. Then co nnect the four A input s to a fixed binary number. such as 1001 . and the B inputs and the in put carry to five toggle switches. The fiv e o utputs are applied to indic ator lamps. Perform the add ition o f a few binary num bers and chec k that the outpu t sum and output carry give the proper value s. Show that when the input carry is equal to I , it adds I 10 the outp ut sum. Add er- Subt racto r Two binary numbers can be subtracted by takin g the 2·s co mplement of the subtrahend and adding it to the minuend. The 2's complement can be obtained by laki ng the t ' s complemen t and addi ng I. To perfo rm A - B, we co mpleme nt the four bits of B_add them to the four bits of A, and add I through the input carry. This is done ~ shown in Fig. 11. 11 . The four XOR gates complement the bits of B when the mode select M = I (beca use x G7 I = .t') and leave the bilS of B unchan ged when M '" 0 (because x eo = x). Thu s. when the mode select JI is equal to I. the input caIT)" CO is equal to 1 and the sum outpu t isA plus the 2' s complement o f 8 . Whe n ,\/ is eq ual to O. the input carry is equal to 0 and the sum ge nerates A + B. Section 11.8 Experiment 7: Adders and Subtractors r''---- S29 Output carry Data input A 15 2 6 Data output 5 Data input B Mode select M - - ....-- - - - - ----' M : Ofor add M • I for subtract FIGURE 11,11 Fo ur-b it adder-subtracto r Connect the adder-subtracter circuit and test it for proper operation. Co nnect the four A input s to a fixed binary nu mber lOCH and the B inputs to switches. Perform the following operations and record the values of the output sum and the out put carr y C4: 9 +5 9+ 9 9 -5 9 -9 + 9 - 15 9 15 Show that during addition, the output carry is equal to I when the sum exceeds 15. Also, show that whe n A ~ B. th e subtrac tio n operation gives the correct ans wer, A - B, and the output carry C4 is equal to I, but when A < B, the subtraction gives the 2's complement of B - A and the output carry is equal to O. Magnitude Comparato r The com pariso n of two numbe rs is an operation that de termines whetbe.- one number is greater than , eq ual to, or less than the othe r num be r. Two numbers. A and B. can be compared by first subtracting A - B as is done in Fig. 11.11. If the ou rpo r in S is equal 10zero. lheo A = B. The output carry from C4 determines the relative magnitudes of the nunir:n: WhenC4 "" I. A ;;:: B: whenC4 = a, A < B ; and when C4 = l and S '# 0,.14 > B. 530 Chapter 11 La bor atory Experiments It is necessary to supplement the subtrac ter circuit of Fig. 11.11 to provide the comp ariso n logic. Thi s is done with a combinational circuit that has five inputs-51 thro ugh 54 and C4and three output s, designated by x, y, and z, so that if A = B < y = I if A z= I if A > B 8 (S = 00(0) (C4 = 0 ) (C4 = land S * 00(0 ) The co mbinational circuit can be impleme nted with the 7404 and 7408 ICs. Constru ct the comparator circ uit and test its ope ration . Use at least two sets of numbers for A and B to che ck eac h of the outputs .r. y, and z. 1 1. 9 EXPERIMENT 8 : FLIP -FLOPS In this ex periment. you will construct, test, and investigate the operation of various latches and flip-flops. The internal construction of latches and flip-flops can be found in Sections 5.3 and 5.4. SR Latch Construct an SR latch with two cro ss-coup led NAND gates. Connect the two inputs to switches and the two outp uts to indicator lamps . Set the two switches to logic I , and then momentari ly tum each switch separ ately to the logic-O positio n and back to I . O btain the function table of the circuit. D Lat ch Construct a D latch wit h four NAND gates (only one 7400 Ie) and verify its function table. Mast er- Slave Fllp~F lop Co nnect a master- slave D flip -flop using two D latches and an inverter. Connect the D input to a switc h and the clock input to a pul ser. Connect the output of the master latch to one indicator lamp and the output of the slave latch 10 anothe r indicator lamp. Set the value of the input to the compleme nt value of the output. Pre ss the push button in the pul ser and then release it to produ ce a sing le pu lse. Observe that the maste r changes when the pulse goes positive and the slave follows the change when the pul se goes negative. Pre ss the push button again a few time s while observing the two ind icator lamp s. Explain the transfer sequence from input to master and from master to slave. Disconn ect the cl ock input from the pulser and connect it to a cloc k generator. Connect the complement output of the flip-flop to the D input. Thi s causes the flip-flop to be com plemented with each clock pulse. Using a dual-trace osc illosco pe, observe the waveforms of the cloc k and the master and sla ve outputs. Verify that the dela y between the master and the slave outputs is equal to the positive half of the clock cycle . Obtain a timing d iagram showing the relat ionship between the clock waveform and the mas ter and slave outputs. Sect ion 11.9 Experiment 8: Fli p-Flops 531 Edge·Triggered Fllp.Flop Construct a V-type positive-edge-triggered flip-flop using six XA......n gates. Connect the clock input to a pulser, the V input to a toggle switch, and the output Q to an indicator lamp. Set the value of D to the complement of Q. Show that the flip-flop output changes only in response to a positive transition of the clock pulse. Verify that the output does not change when the clock input is logic 1. when the clock goes through a negative transition, or when the clock input is logic O. Continue changing the D input to correspond to the complement of the Q output at all times. Disconnect the input from the pulser and connect it 10 the clock generator. Connect the complement output Q' to the D input. This causes the output to be complemented with each positive transition of the clock pulse. Using a dual-trace oscilloscope. observe and record the timing relationship between the input clock and the output Q. Show that the output changes in response to a positive edge transition. Ie Fllp.Flops IC type 7476 consists of two JK master- slave flip-flops with preset and clear. The pin assignment for each flip-flop is shown in Fig. 11.12. The function table specifies the circuit' s operation. The first three entries in the table specify the operation of the asynchronous preset and 7 2 4 PR .·i·- 15 J '~W:;:~ , eK 16 Q' '" CLR K Vee . pin S GND = pin 13 14 s 3 Function table Inp UIS Outpu ts Preset Cle ar Clock J K Q Q' 0 1 0 1 X X X X 0 0 X X X 0 1 X X 1 0 1 1 1 1 1 1 1 1 1 SL SL SL SL 0 0 1 1 0 1 0 1 FIGURE 11 .12 Ie type 7476 dualjK master-slave flip-flops 1 No c:hanIe 0 1 1 0 Togle 5 32 Cha p ter 11 Labo ra to ry Experiments 10 2 5 PR 12 3 9 1\ , 6 Vce = pin I ~ GND = pin 7 Function table Inputs Outputs Preset D ea r Clock n Q Q' 0 1 0 I 0 0 X X X X X X 1 0 1 0 I 1 1 1 1 1 1 1 t t 0 0 1 X 0 1 1 0 No change FIGURE 11.13 Ie type 7474 dual D posltlve-edge.triggered flip-flops clear inputs. These inputs behave like a NAN D SR latch and are independent of the clock or the J and K inputs. (The X's indicate don't-care conditions.) The last four entries in the function table specify the operation of the clock with both the preset and clear inputs maintained atlogic I . The cloc k value is shown as a single pulse. The positive transition of the pulse changes the master flip-flop. and the negative tran sition changes the slave flip-flop as well as the outp ut of the circuit With J := K := O. the output doe s nor change. The flip-flop toggles. or is compl emented. when J := K := I . Investigate the operation of one 74.76 tlip-flop and verify its function table. Ie type 7474 co nsists of two D positive-ed ge-triggered flip-flops with preset and clear. The pin assignment is show n in Fig . 11.13. The function table speci fies the preset and clear operations and the clock's operation. The clock is shown with an upward arrow to indicate that it is a po shiv e-edg e-triggered flip-fl op. Investigate the ope ration of one of the flip-flops and verify its function table. 1 1. 1 0 EXPER I ME NT 9 : SEQUENTIAL CIRCUITS In this ex periment, yo u will design. construct. and test three sy nchro nous seq uential circuits. Use Ie type 7476 (Fig. 11.12) or 7474 (Fig , 11.13), Choose any type of gate thai will minimi ze the total number of IC s. The design of synchronous seq uential circ uits is cove red in Section 5.7. Sectio n 11.10 Experime nt 9: Sequentia l Circuits ~ 00 S33 I /I 0 ,,'1 Oil 01 I,. I" II FIGURE 11 .14 State diagram for Experiment 9 Up-Down Counter with Enable Design . co ns truct. and test a two-bit counter that co unts up or dow n. An enable input E dete rmine s whether the counter i.. on or off. If E = O. the counter is disabled and rema ins at its presen t count even tho ugh clock pulses are applied to the flip-Oops. If E = I. the counter is enab led and a second input. x, determines the direction of the count. If .t = I. the circuit co unts upward with the sequence 00. 01.10. I I. and the count repeats. If .r = 0, the circuit counts downward with the sequence I I, 10,01. 00, and the count re peats . 00 not use Eto di sable the clock. Design the sequential c ircuit with E and r as inpu ts. State Diagram Design. cc nsuu ct. and test a seq uential circ uit whose state diagram is shown in Fig . I J.1 ~ . Desi gnate the two flip-flops a.. A an d B. the input a v .r , an d the outpu t as J. Connect the output afthe lea..t significan t flip-flop B to the inpu t x, and predict the sequ ence o f states and output tha t will occur with the applic ation of cl ock pul ses. Verify the Mate Irancitio n and output by testing the circuit. Design of Counter Design, co nstruct, and test a counter that goes thro ugh the follow ing seq uence o f binary slates: O. I, 2, 3. 6, 7, 10, II , 12, 13, 14, 15, an d back to 0 to repeal . NOie lha1 binary states 4 , 5, 8. and 9 are not used. The counter must be self-starting; that is, if the ciralit starts from any one of the four inval id states , the coo n! pulses must tran sfer the circuit 10 ODe o f the valid states to continue the count correctly. C heck the ci rcu it's operation for the required COOn! seqUCSJCC.. Verify that the counter is se lf-s tarti ng. Thi s ls done by initial izing me circuit to each uouscdIlaIe by IDCUI of the prese t and clear inpu ts and then apply ing pulses to see whdhe:r the COWlleI" reacbc:s one of the val id states. 534 1 1. 11 Chapter 11 labor at ory Experiments EXPERI MENT 10 : COUNTERS In this experiment. you will construct and test various ripple and synchronou s counter circuits. Ripple counters are discussed in Section 6.3 and synchronous counters are covered in Section 6..,1.. Ripple Counter Co nstruct a four-bit binary ripple counter using two 7476 ICs (Fig. 11.12). Connec t all asyn chronous clear and preset inputs 10 logic I . Connect the count-pulse input to a pulser and check the counter for proper operation. Modify the counter so that it will count downward instead of upward. Check that each input pulse decrements the counter by I . Synchronous Counter Construct a synchronous four-bit binary count er and check its operation . Use two 7-l76 ICs and one 7408 tc , Decimal Counter Design a synchronous BCD counter that counts from 0000 to 1001 . Use two 7476 ICs and one 740 8 Ie. Test the counter for the proper seq uence . Determine whether the counter is selfstarti ng. This is done by initializing the cou nter to eac h of the six unu sed states by mean s of the preset and clear inp uts. The application of pulses will transfer the counter 10one of the valid states if the co unter is self-starting. Binary Counter with Para llel load IC type 74161 is a fo ur-bit synchronous binary counter with paraIl elload and asynchronous clear. The Internallogic is similar to thai of the circuit shown in Fig. 6.14. The pin assignments 10 the inputs and outp uts are shown in Fig. 11.15. When the load signal is enabled. the four data inputs are Iransferred into four internal flip-flops. QA through QD. with QD being the most significa nt bit. There are IWOco unt-enable inp uts called P and T. Both must be equ al to I for the co unter to ope rate . The function table is similar to Tabl e 6.6 . with o ne except ion : The load input in the 7416 1 is enabled when equal to O. To load the input da ta, the clear input must be eq ual 10 I and the load inpu t must be equal to O. The two count inputs have don' t-care conditions and may be equal to either 1 or O. Th e intern al flip-flops trigger on the positive tran sition of the clock pulse. The circ uit functions as a counter when me load inp ut is equal to I and both count Inputs P and T are equal to I. If either P or T goes to O. me output does nOI change. The carry-c ut out put is equal to I when all four data outputs are equal 10 I . Perform an experiment to verify the operation o f the 74 161 Ie according 10 the function table . Show how the 7416 1 IC. togethe r with a two-i nput NAN D gate. can be made to operate as a sync hronous BCD counter thai counts from 0000 to 1001. 00 not use the clear input. Use the NAI"'D gate to det ect the count of 1001. which then causes all O's 10 be loaded into the co unter. Sec tio n 11.12 Exp eriment 11: Shift Registers 5 35 I.. 3 , , Dati inputs 6 , La., 7 10 Count 2 a~k Vee A CIA B ClB C QC D ,. , ..- ,_~...",. . .-. s.e,. . L '- ' 74161 P _.~ 14 13 Dm 12 outpuU II .... COU T is Carry out T CK Clear Function table Clear a~k Loo' Coun t 0 1 1 1 X 7 7 X 0 1 1 X X 1 0 7 Function aur OUlpllU 100 Loa d inpul dill Count to nU l binary value x c change in outp ut fiGURE 11.15 Ie type 74161 binary counte r w ith p arallel load 11. 12 EXPERIMENT 11 : SHIFT REGISTERS In thi s experiment. you will investigate the operation of shift registers . The Ie to be used is the 74195 shift regi ster with parallel load . Shift register s are explained in Section 6.2. rc Shift Register Ie type 74 195 is a four-bit shift reg ister with parallel load and asynchronous clear.1be pin assignme nts to the inputs and outputs are shown in Fig. 11.16. 1be single 00DIr0I IiDe Iabded SHI LD (shiftlload ) determines the synchro nous operation oCtile rqisaer. Wbea $HIW - 0. the control input is in the load mode and the four da ta inpubi are lmDIfemd iDIo the four internal flip-flop s. QA throu gh QD. When SHILD "" I, theCDDtrol iDp:Ilis iDlhe shift IOOde IDd the informatio n in the register is shifted right from QA mw.d QU. '11lIe IG'iaI. • iaIo QA during the shift is determin ed from the J and It inputs. The beIane like theJ mel the complement of K of a JK flip- flop. When both J and K an: eqal to 0. flip-tkIp QA. is two"- 536 Chapter 11 Labor at ory Experime nt s Clear 10 Clock is 9 Shift!load " 2 Seri al { inputs , Il s 11 J D ata inputs Data OUl P UIS 12 Complement of QD 6 7 Function ta ble Clear Shift! load 0 1 1 1 1 X X 0 1 1 Oock J R Serial input X 0 X X X 0 1 X X X 0 1 X X X 0 1 ,, r Functio n Asynchrono us clear So chang e in output Load inpu t dat a Shifl fro m QA toward QD . QA = 0 Shift from QA toward QD . QA ,. I fiGU RE 11 .16 Ie type 74195 shift regist er wit h parallel load cleared to 0 after the ..hift. If both inpu ts are eq ual to I. QA is se t to I after the ~ hifl . The other IWO condi tions fo r the J and K inp uts pro vide a complement or no change in the output of flipflop QA after the shift. The function table fo r the 74 195 shows the mode of operation of the register. When the clear input goes to O. the four flip-flops clear to 0 asynchronously-e-ther is. withou t the need of a clock . Synchronous ope rations are affected by a positi ve transitio n of the clock. To load the input da ta. SHlW must be equal toO and a positive cloc k-pulse transition must occ ur. To shift right. SHILD must be equ al to I. The J and K inputs must be co nnected together to fonn the serial input . Perform an experiment thai will verify the operation of the 74 195 IC . Show thai it perfo rms all the ope rations lis ted in the function tab le. Inclu de in you r fu nct ion table the two conditions for l iZ == 0 I and 10. Section 11.12 Expe riment 11: Shift Reg isters 537 Ring Counter A ring counter is a circular shift register with the signal from the serial output QD going into the serial input. Connect the J and K input together to form the serial input. Use the load condition to preset the ring counter to an initial value of 1000. Rotate the single bit with the shift condition and check the state of the register after each clock pulse. A switch-tail ring counter uses the comp lement output of QD for the serial input. Preset the switch-tail ring counter to IXlOO and pred ict the sequence of states that will result from shifting. Verify your predict ion by observing the state seq uence after each shift. Feedback Shift Register A feedback shift register is a shift register whose serial input is connected to some function of selected register outputs. Con nect a feedback shift register whose serial input is the exclusiveOR of outputs QC and QD. Predict the sequence of states of the register. starting from state 1000. Verify your pred iction by observing the state sequence after each clock pulse. Bidirectional Shift Register The 74 195 IC can shift only right from QA toward QU . II is possible to COTI\'en the register to a bidirectional shift register by using the load mode 10 obtain a shift-left operation (from QD toward QA ). This is accomplished by connecting the output of each flip-flop to the input of the flip-flop on its left and using the load mode of the SH/LD input as a shift-left control. Input D becomes the serial input for the shift-left operation. Connect the 74 195 as a bidirectional shift register (without parallelload ). Connect the serial input for shift rigju to a toggle switch. Construct the shift left as a ring counter by connecting the serial output QA to the serial input D. Clear the register and then check its operation by shifting a single I from the serial input switch. Shift right three more times and insert D's from the serial input switch. Then rotate left with the shift-left (load) control. The single I should remain visible while shifting. Bidirectional Shift Register with Parallel Load The 74 195 IC can be converted to a bidirectional shift register with parallel load in conjunction with a multiplexer circuit. We will use IC type 74 157 for this purpose. The 74 157 is a quadrup le two-to-one-line multiplexer whose intemallogic is shown in Fig. 4.26. The pin assignments to the inputs and outputs of the 74157 are shown in Fig. 11.17. Note that the enable input is called a strobe in the 74 157. Construct a bidirectional shift register with parallelload using the 74 195 register and the 74 157 multiplexer. The circuit should be able to perform the following operauons: 1. Asynchron ous clear 2. Shift right 3. Shift left -t. Parallel load S. Synchronous clear 538 Chapter 11 Laboratory Experime nts II, 2 Dala inputs A , 1 11 14 , , Dala inputs 10 B Vee Al A2 AJ VI A4 Y2 YJ BI 741S7 Bl Y4 4 7 9 D." outputs 12 B' IJ , IfJ/tI I S£L Sele ct " Strebe STB GND 8 1 Function table SlrobC' Seket Data OUlpulS Y I X 0 Selectdata inpuu A I Seleet dlla inputs B o o A DO's fiGURE 11.17 IC type 74157 qu adruple 2 x 1 multiple xen Deri ve a tab le for the five operatio ns as a fu nction of the clear. clock. and SHIUJ inputs of the 74 195 and the strobe and selec t inputs of the 74 157. Connec t the c ircuit and verify you r function tab le. Use the para llel-load condition to provide an initial value (0 the register. and connect the serial outputs to the serial inputs of both shifts in order not to lose the binary infonnation whi le shifting. 1 1. 13 EXPERI M EN T 12 : SERIAL ADDITION In this experiment . you will co nstruct and test a serial add er-subtrac tor circuit- Serial add ition of two bin ary numbers can be done by means of shift registers and a full adder. as ex plained in Sec tion 6.2. Sect io n 11.14 Exp eriment 13: M emory Un it 539 Serial Adder Starting from the diagram of Fig. 6.6, design and construct a four-bi t serial adder using the follow ing re s: 74195 (two ), 7408, 7486, and 7476. Provide a facility for regis ter B to accept parallel data from four toggle switches, and connect its serial input to ground so that D's are shifted into register B during the addition. Provide a togg le switch to clear the regist ers and the flip-flop. Another switch will be neede d to specify whether register B is to accept paralle l data or is to be shifted during the addi tion. Testing the Adder To test your serial adder, perform the binary add ition 5 + 6 + 15 = 26. This is done by first clearing the registers and the carry flip-flop . Parallel load the binary value 0101 into register B. Apply fou r pulses to add B to A seriall y, and check tha t the res ult in A is 0101 . (Note that clock pulses for the 7476 must be as sho wn in Fig. 11.12.) Parallel load 01 10 into B and add it to A serially. Check that A has the proper sum . Parallel loa d 111 1 into B and add to A. Check that the value inA is 1010 and that the carry flip-flop is set. Clear the regis ters and flip-flop and try a few other numbers to verify that your serial adder is functioning properly. Serial Adder-Subtractor If we follow the procedure used in Section 6.2 for the design of a seria l subtractor (that subtracts A - B), we will find that the output difference is the same as the output sum . but that the input to the J and K of the borrow flip-flop needs the com plement of QD (available in the 74195 ). Using the other two XOR gates from the 7486, convert the serial adder to a serial adder-subtracter with a mode control M . When M = 0, the circuit adds A + B. When M = I, the circuit subtracts A - B and the flip-flop holds the borrow instead of the carry. Test the adder part of the circuit by repeati ng the operations recommended to ensure that the modification did not change the operation. Test the serial subtractor part by performing the subtraction 15 - 4 - 5 - 13 = - 7. Binary 15 can be transferred to register A by first clearing it to 0 and adding 15 from B. Check the intermediate results during the sub traction . Note that - 7 will appear as the 2's complement of7 with a borrow of 1 in the flip-flop. 1 1.14 EX P ERI M EN T 13 : M EMOR Y UNI T In this experi ment. you will investigate the behavior of a random-access memory (RAM) unit and its storage capabili ty. Th e RAM will be used to simulate a read-only memory (ROM). The ROM simulator will then be used to impleme nt combinational circuits. as explained in Section 7.5. The memory unit is discussed in Sections 7.2 and 7.3. tc RAM Ie me type 74 189 is a 16 X 4 random-access memory. The internal logic is similar to circuit shown in Fig. 7.6 for a 4 X 4 RAM. The pin assignments lOW iDpuIsaodourpw IRIhown in Fig. 11.18. The four address inputs select I of 16 words in me memory. lbe.least significanl. bit S40 Chapter 11 laboratory Experime nts 4 6 Data inputs 10 12 I is A ddress inputs 14 13 7 DZ 9 03 Data outputs II 0' A. A, A, Aj , CS Chip select Write enable - , 01 - 3 - IVE GND 8 Function table cs WE Operation Data outputs o o Write Read Disable H igb impedance Complement of selected word High impedance o I I X fiGURE 11 .18 Ie type 74189 16 x 4 RAM of the address is A and the most significant is A) - TIle chip select (CS) inpu t must be equ al to O ( 0 enable thc mcmory. lf CS is equal to I. the memory is disabled and all four outputs arc in a high impeda nce stare. The write enable (WE) input determines the type of operation. as indicated in the function table. The write ope ration is perfonncd when lVE :: O. Th is operation is a transfer of thc binary number from the da ta inputs into the se lected word in memory. TIle read operation is performed when \V E = I. This operation transfers the complemented value stored in the selected word into the output da ta lines. The memory has three -stare outputs to facilitate memol)' expansio n. Test ing the RAM Si nce the outputs o f the 74 189 produce the co mplemented ....alucs. we need to insert four inve rtc rs to change the outputs to their norm al value. The RAM can be tested after making the Section 11 .15 Experiment 14: Lamp Handball 541 following connec tions: Co nnect the address inputs to a binary co unte r using the 74 93 IC (show n in Fig . 11.3). Co nnec t the four data inputs to toggle switc hes and the data outputs to four 7404 inverte rs. Pro vide four indicator lamps for the address and fo ur more fo r the outputs of the inve rters. Connect input CS to ground and WE to a togg le switch (or a pulser that provides a negative pulse). Store a few words into the memory, and then read them to verify that the write and rea d operations are func tioning proper ly. You must be careful when using the WE swi tch . Always leave the It/E inp ut in the read mode, unless you want to write into memory. The proper way to write is first to set the address in the co unter and the inpu ts in the four toggle switches. T hen. store the word in mem ory, flip the WE switch to the write posi tion and return it to the read position. Be careful not to change the address or the inputs when WE is in the write mode . ROM Simulator A ROM simu lator is obtaine d from a RAM ope rated in the read mode only. The pattern of l's and O's is first entered into the simulating RA~ by placing the unit mo mentarily in the write mode. Si mulation is achieved by placi ng the unit in the read mode and tak ing the address lines as inputs to the ROM. The ROM ca n then be used to impleme nt any combinationa l circuit. Im ple me nt a combi nat io na l circu it usi ng the ROM simula to r that co nve rts a four-bit bi nary number to its equivalent Gray code as defined in Table 1.6. Thi s is done as follows: Obtain the tru th table of the code converter. Store the truth table into the 74189 memory by setting the address inputs to the binary value and the data inputs to the corresponding Gray code value . After all 16 entries of the table are ....'ritten into memory, the ROM simu lator is set by permanentl y con necting the WE line to logic I. Check the code converter by app lying the inputs to the address lines and verify ing the correct outputs in the data output lines. Memory Expansion Expand the memory unit to a 32 X 4 RAJ\.1 using two 74 189 ICs. Use the CS inpu ts to select between the two ICs. Note that since the data outp uts are three-stated , you ca n tie pairs of terminals together to obta in a logic OR operat ion between the two ICs. Test yo ur ci rcu it by using it as a ROM simulator that adds a three-bit number to a two-bit number to produ ce a four-bit sum. For ex amp le, if the input of the ROM is 10 110. then the output is calc ula ted to be 101 + 10 = aI ll . (The firs t three bits of the input represent 5. the las t two bits represent 2, and the outp ut sum is binary 7.) Use the counter to provide fou r bits of the address and a switc h for the fifth bit of the address. 11. 15 EXPERIMENT 14 : LAMP HANDBALL In this experiment, you will construct an elec tronic game of handball. using a si ngle light 10 simulate the moving ball. The experiment demo nseates the application of a bidirectional shih registe r with parallel load. It also shows the operation o f the asyocbrooous inputs of ni p-flops. We will first introd uce an IC that is need ed for the experimenl aDd Ihen present the logi c diagram of the simu lated lamp handball game. 542 Chapter 11 laboratory Experime nts tc Type 74194 Th is is a four-bit bidirectional shift register with parallel load . The internallogic is similar to that shown in Fig. 6.7. Th e pin assignments to the inputs and outputs are shown in Fig. 11 .19. The two mode -control inputs determine the type of opera tion. as specified in the functi on table. log ic Diagram The logic diagram of the electro nic lamp handball game is shown in Fig . 11.20. It consi sts of two 74 1941Cs. a dual D flip-flop 7474 1C. and three gate ICs: the 7400 , 7404 . and 7~8 . Th e ball is simulated by a moving light that is shifted left or right thro ugh the bidirectional shift register. The rate at which the light mo ves is det ermin ed by the frequency of the clock . The Serial input for shilt righl _ 2 3 QA A 4 Parallel data inputs is 14 , 13 6 12 Data out puts 10 ~f~e controll 9 mputs ~ 11 Clock -- -j Clear ---~ '(:L Serial input for shift left ---' Function table Mod, Clear Clock 51 so 0 I I X t t X X 0 0 0 I :"0 0 Shift left in the direction from QD to QA . SIL 10 QD r , Function Clear outputs to 0 change in output Shift right in the direction from QA to QD . SIR to QA Parallel-load input data FIGURE 11.19 Ie typ e 74194 bidirectio nal shift register with pa rallel load Section 11.15 eLK Experiment 14: Lamp Handball ---------1C-- - --j- - - --j- - - - + -.J Reset FIGURE 11.20 Lamp handball logic diagram 543 544 Chapter 11 laboratory Experiments circ uit is first initialized with the reset switch. Th e swrt switch starts the game by placing me ball (a n ind icator lamp) at the extreme right. The player must press the pulser push button to start the ball moving to the left. The single light shifts to the left until it reaches the leftmost position (the wall), at which time the ball returns to the playe r by reversing the direction of shift of the mo ving light. When the light is again at the rightmo st positio n. the player must press the pulser again to reverse the direction of shift. If the player presses the pulser too soon or too late. the ball disappears and the light goes off. The game can be restarted by turning the start switc h on and then off. Th e start switch must be open (logic I) during the game. Circuit Analysis Prior to co nnecting the circu it. analyze the logic diagram to ensure that you understand how the ci rcuit operates. In particular. try to answer the followi ng questions: I . What is the function of me reset switch? 2. How does the light in the rightmost position co me on when the start switch is gro unded? Why is it neces<,ary 10 place the start switch in the logtc -t positi on be fore the game starts? 3. What happens to the two mode -control inputs. S1 and SO. o nce me ball is set in motion ? 4. What happe ns to the mode-contro l inputs and to the ball if the pulser is pressed while the ball is mov ing 10 the left? What happens if the ball is mo ving to the right. but has not yet reached the rightmost position? S. If the ball has returned 10 the right most position. but the putser has not yet been pressed. what is the state of the mode-control inputs if the pulser is pressed ? Wh at happens if it is not pressed? Playing the Game Wire the ci rcuit of Fig. 11.20. Test the circuit for proper operatio n by playing the game . Note that the pulse r must provide a positive-edge tran sition and that both the reset and start switches must be open (i.e.• must be in the logic- ! state) durin g the game. Start with a low clock rate. and incre ase the cloc k frequency to make the handball ga me more challenging. Count ing the Number of Losses Design a cir cuit that keeps score of the number of tim es the play er loses while play ing the ga me. Use a ncn -ro-seven-segmem decoder and a sev en-segment display. as in Fig. 11.8. to display the cou nt from a throug h 9 . Counting is do ne wit h e ither the 7493 as a ri pple decimal counter o r the 74 16 1 and a NAN D gate as a synchronous deci mal counter. The disp lay sho uld show 0 when the circuit is reset. Every time the ba ll d isappe ars and the light go es off. the disp lay should increase by I . If the lig ht stays o n durin g the play. the numbe r in the d isplay sho uld not c hange. T he fina l design should be an au tom atic sco ring circu it. wit h [he decimal d isplay incremented automa ticall y each time the playe r lo ses when the light d isa ppear s. Section 11.16 Experiment 15: Cleek-Pulse Generat or 545 Lamp Ping.Pong™ Mod ify the circuit of Fig. 11.20 so as to obtain a lam p Ping-Pong ga me . Two players can participate in this ga me. with each player havi ng his or her own pulser, Th e player with the right pulser return s the ball when it is in the extreme right position. and the playe r with the left pulser returns the ball when it is in the ex trem e left positio n. The only modi fication required for the Ping-Pong game is a second pulser and a cha nge of a few wires. With a seco nd start circui t. the game can be made to start by eithe r one of the two players (i.e., either one serves) . Thi s ad dition is optional. 11. 16 EXPERIMENT 1 S : CLOCK -PULS E GENERATOR In this ex periment, you will use an Ie time r unit and connect it to produ ce clock pulses at a given frequency. The circuit req uires the co nnection of two extern al resistor s an d two ex terna l ca pacirors. The cathode -ray osci lloscope is used to observe the waveforms and measure the frequency of the pulses. IC nmer Ie rype 72555 (or 555) is a preci sion timer circuit whose internal logic is shown in Fig. 11.21 . (The resis tors . RA and RB, and the two capacitors are not part of the IC,) The circ uit consists of two voltage co mparators. a flip- flop , and an internal transis tor. The voltage division fro m Vee = 5 V th rough the three intern al resi stors to gro und prod uces and of Vee (3.3 V and 1.7 V, respective ly) into the fixe d inp uts of the comparato rs. When the threshold inp ut at pin 6 goes above 3.3 V, the upper com parator reset s the flip-flop an d the ou tput goes low to abou t V. Wh en the trigger input at pin 2 goes below 1.7 V, the lower comparator sets the flip -flo p and the output goes high to about 5 V. When the output is low, Q' is hi gh and the base-emitte r junction of the transistor is forward biased. When the ou tput is high. Q' is low and the transistor is cut off. (See Section 10.3.) The timer circui t is ca pab le of prod ucing accurate time delays co ntrolled by an ex terna l RC ci rcuit. In this ex per ime nt, the Ie timer will be operated in the asta ble mode to pro duce cloc k pulses. 1 1 o Circuit Operation Figure 11.21 shows the extern al connec tions for astable operation of the circ uit. Capacitor C charge s throu gh resistors RA an d RB when the transistor is cut o ff and disc harges throu gh RB whe n the transistor is forw ard biased and conducti ng . Whe n the dwging vol tage across capaci tor C reac hes 3.3 V, the thres hold input at pin 6 ca uses the flip-flop 10 R:5t:I and the transisto r turns on. Whe n the discharging voltage reaches 1.7 V. the lrigger inpul aI pin 2 causes the flip-flo p to set an d the transistor turns off. Thu s. the ou tpu lcontinually ahcmates between two volt age levels at the out put of the flip-fl op. The OUtpul remains high for a duration equ al to the charge time . Thi s duration is determined fro m the equation 'H = O.693 (R" + RB)C 546 Chapter 11 l a bo ratory Experiments ,V 1 °·01., v" 8 s - Reset 4 R, Th reshold 6 ~ ,i R Trigger 2 ~ s-: - 5 I-3 Q T '\ Out put 7 Discharge 72555 Timer R. GND 1 , C Flc;URE 11 .21 Ie ty pe 72555 time r connected as a clock-pulse ge ne rator The output remains low for a duration equal to the discharge time. This duration is determined from the equation ' L = O.69JRsC Clock-Pu lse Generator Startingwith a capacitor C of O.(XH /LF, calculate values for RA and RB to produce clock pulses. as shown in Fig. 11.22. The pulse width is 1 /LSin the low level and repeats at a frequency rare of 100 kHz (every 10 /Ls). Connect the circuit and check the output in the oscilloscope. Observe the output across the capacitor C, and record its two levels 10 verify that they are between the trigger and threshold values. Section 11.1 7 Experiment 16 : Pa rallel Adder and Accum ulato r 547 FIGURE 11 .22 Outp ut waveform for clock generator Observe the waveform in the collector of the trans istor at pin 7 and record all pertinent information . Explain the waveform by analyzing the circ uit's action. Connec t a variable resistor (potentiometer) in series with R... to produce a variable-frequency pulse generator. The low-level duratio n remains at 1 J.Ls. The frequency should range from 20 to 100 kHz. Change the low-level pulses to high-level pulses with a 7404 inverter. This will produce positive pulses of l us with a variable-fre quency range. 11 .17 EXPERIMENT 16 : PARALLEL ADDER AND ACCUMUL ATOR In this experiment, you will construct a four- bit parallel adder whose sum can be loaded into a register. The numbers to be added will be store d in a random-access memory. A set of binary numbers will be selected from memory and their sum will be accumula ted in the register. Block Diagram Use the RAM circuit from the memory experiment of Section 11.14, a four-bit parallel adder, a four-b it shift register with parallel load. a carry flip-flop, and a multiplexer to construct the circuit. The block diagram and the ICs to be used are shown in Fig. 11 .23. Inform ation can be written into RAM from data in four switches or from the four-bit data avai lable in the outputs of the register. The selection is done by means of a multiplexer. The data in RAM can be added to the contents of the register and the sum transferred back to the register. Control of Register Provide togg le switches to control the 74194 register and the 7476 carry flip-flopas follows: (a) A LOAD condition transfers the sum to the registe r and the output carry 10 the fli~flop upon the applicati on of a clock pulse. (b) A SHIFf conditio n shifts the register right with the carry from the carry flip-flop transferred into the leftmost position of the regis ter upon the application of. dock pulse. The value in the carry flip-flop shou ld not change during the sh ift. (c) A NO-C HANGE condition leaves the co ntents of the regisac£ and flip-flop unchanged even when clock pulses are applied . 548 Cha pter 11 Laboratory Expe ri me nts Cou nt [p ulser) - A d..... ecemer (7493) - I I r-::-l . """ RAM (7"189) ( ~ (S"'ilch ) I ln~rten (7"'" I O UIP UI carry 4-l;)il adder 1'%, '(7483' ~ ' om Cony ( 7476) - Regi$le r ( 74194) I FIGURE 11.2) Block diagram of a parallel adder for Experiment 16 Carry Circuit To conform with the preceding specifications. it is necessary to provide a circuit between the output carry from the adder and the J and K inputs of the 7~76 flip-flop so thai the OUtput carry is transferred into the ni p-flop (whether it is equal to 0 or I) only when the LOAD condition is activated and a pulse is applied to the clock.input of the flip-flop. Tbe carry ni p-nop should not change if the LOAD co ndition is disabled o r the SHIFT condition i ~ enabled. Det a iled Circuit Draw a detailed diagram showing all the wiring between the ICs. Connect the circuit. and provide indicator lamps for the outputs of the register and carry nip-fl op and for the address and output data of the RA\1. Checking the Circuit Store the numbers 0 110. 1110. 11 01. 0101. and 00 11 in RAM and then add them to the register one at a time. Stan with a cleared register and flip-flop. Pred ict the values in the output of the register and carry after each addition in the following sum. and verify your results: 0 110 + 1110 + 1101 + 0 101 + 00 11 Section 11.18 Experiment 17: Binary Multiplier 549 Circuit Operation C lear the register and the carry flip-flop to zero. and store the followi ng fou r-bit numbers in RAM in the indicated addresses: A ddress o 3 6 9 12 Content OlIO 111 0 1101 0101 0011 Now perform the follo wing four operations: I. Add the contents of add res s 0 to the conte nts of the regis ter. usin g the LOAD cond itio n. 2. Store the sum from the register into RA!\.t at address I. 3_ Shift right the conte nts of the register and carry with the SHIFT condition. .s. Store the shifted contents of the register at addre ss 2 of RAM . Check that the contents of [he first three locations in RAM are as follows: Ad dress.. o I 2 Con tents 0 110 0 110 0011 Repeat the fore goin g four ope rations for each of the other four binary numbers store d in RAM. Use addresses 4. 7. 10. and 13 to store the sum from the register in step 2. Usc addresses 5. 8. 1I. and 14 to store the shifted value from the register in step -t. Predi ct what the contents of RA:\I at addresses 0 through 14 would be. and check to verify yo ur results. 11. 18 EXPER IMENT 17 : BINARY MULTIPLIER In thi s ex periment. yo u will design and construct a c ircuit tha t multipl ies 2 four-bit un signed numbers to prod uce an e ight-bit prod uct. An algorithm for multiplying IWO binary numb ers is presented in Section 8.7. The algorith m implem ented in th is experiment d iffers from the one described in Figures 8.14 and 8. 15. by treating on ly a four-bit datapath and by increm enti ng. instead of decrem enting. a bit counte r. Block Diagram The ASMD chan and block diagram o f the binary multiplier with those ICs recommended 10 be used are shown in Fig. 11 .24<a) and (b). The multiplicand. B. is available frcm four switches instead of a register, The multiplier. Q. is obtained from another sec of four switches. The prod-uct is displayed with eight indicator la mps. Cou nter P is initialized 100 aDd theo incre mented after each partial product is formed. Whe n the counter reaches the count of four. output DoN becomes I and the multiplication operatio n term inates. 550 Chapter 11 laboratory Experiments reset QIOI I ____ tc;A I < - A - (a) ASMD chart FIGURE 11 .24 ASMD chart. block diagram of the datapath, control state diagram, and reg ister operations of th e binary multiplier drcult Cont ro l of Reg ist e rs Th e ASMD chart for the binary multiplie r in Figure 11.24(a) shows that the three regi sters and the carry flip-flop of the data path unit are controlled with signals toadregs. Incr_PoAluCregs. and Shift_regs. The external input signals of the con trol unit are clock . resec b (active-low). and Start; another input to the contro l unit is the internal sta tus signal . Done. whi ch is forme d by the datapath unit to indicate that the co unter has reached a co unt of four. correspo nding to the number of bits in the multiplier. Load_regs clears the product register (A ) and the carry flip- flop (C) , lo ads the multiplicand into regi ster B, loads the multiplier into regi ster Q. and clears the bit counter. tncr.P increments the bit co unter concurrently with the acc umulation of a part ial product. Add_regs add s the multiplicand to A, if the least significant bit of the shifted mul tipli er Sect io n 11.18 Exp eriment 17: Binary Multiplier Multiplicand B (4 switches) 55 1 Don e - I on count of 4 jjjj Counter P (14161) Multiplier Q (4 switches) Q, (b ) Datapath block program Done = 1 Start = 0 S.Jdle}----,=~-__{S~:wd}_----~_\'._'hifi Starr '"' I D one = 0 (c) Con trol state diagram State Tra nsitio n = IQ S_idle S_udd S_add SJhift S_idle S_,hift Register Operations Control signal Initial stale reached by reset action A < = O. C < - O.P <= O L<Wft'" P <= P+l if (QIOJ) then (A < - A + B. C <- C..) shift right ICAQI. C <- 0 AJJftfl' SJUftftfl' I~J' (d) Register operatioos FIGURE 11 .24 (Continued) (Q[D)) is 1. Flip-flop C accommodates a carry that results from_additioo.1be ................. register CAQ is updated by storing the result of shifting its COIlIeDts ODe bit 10 tbc riPL Shijc regs shifts CAQ one billa the right, which also clears flip-flop C. SS2 Chapter 11 laboratory Experime nts The stale diagram for the co ntrol unit is shown in fig . 11.2-lfc l. N OIe that it does not sbow the register operations of the datapath unit or !he output signals thai control the m. That information is app arent in Figure 11.24(d). Not e thal /ncr_P and Shi/tJt.'gs are generated uncondi tion all y in stales S_luM and S.Jhift. respectively, LoadJ t.'gs is generated under the condition that Stan is asserted con ditionally while the state is in S_idlt.'; Addregs is a...sened conditionally in S_add if QIOj I = Multiplicat io n Example Befor e co nnecting the ci rcuit. make sure that you understand the opera tion of the multiplier. To do this. cons truct a table sim ilar to Table 8.5 . but with 8 == II I1 for the mul tiplicand and Q == 1011 for the mul tiplier. Along with each comment listed on the left side of the table. speci fy the state. Dat apat h Design Draw a detailed diagram of the datapath part of the mu ltiplier . showing all iC pi n co nnections. Ge nerate the four control signals with switches. and use them to pro vide the req uired con trol operations for the various reg isters . Connect the circuit and chec k tha i each co mpo nen t is func tioning properl y. With the co ntro l signals at O. set the mu ltiplicand switche s to 11 11 and the multiplier switches 10 lOl l . ASM:n the control signals manually by mean s o f the control switches. as spec ified by the state diagram of Fig. 11.2-lfc ). Appl y a single pulse wh ile in each control state. and observ e the outputs of reg isters A and Q andthe values in C and P. Compare these outputs with the numbers in you r numerical example to verify that the circuit is functioning properly. Note that IC type 74161 has master-slave flip-flops . To ope rate it manually. it is nec essary thai the single cloc k pulse be a negative pulse. De sig n of Control Design tbe con tro l ci rcuit spec if ied by the state d iagram. You can use an y method of control implementation discussed in Section 8.8. Choose the meth od that minimizes the number of ICs . Veri fy the operation of the co ntrol circ uit prior to its connec tion 10 the dat apath uni t. Checking the Multiplier Co nnect the outp uts of the control circuit to the datapath unit. and verify the total circuit operatio n by repealing the steps of m ultiplyin g 1111 by 1011. The single cloc k pulses ..hould now sequence the control states as well. (Remove the manual switches.j The stan signal (Start) can be genera ted with a switch th ai is on while the control is in stale S_idle. Ge nerate the start signal (Stan ) with a pulser or any other shon pul se. and operate the multiplie r with co ntinuou.. cloc k pulses from a clock generator. Pressing the pclser for Stan should initiate the multiplic at ion opera tio n. and upon its completion. the product should be di splayed in the A and Q reg isters . Note thai the multiplication will be repeated as long as signal Stan is enabled. .\ Iake sure that Stan goes back 10 O. Tben set the switches 10two other four-bit numbers Sect ion 11.20 Verilog HDL Simulati on Experiments 55] and press Stan again. The new prod uct should appear at the outputs. Repeat the multiplication of a few numbers to verify the operation of the circuit. 11. 19 EXPERIMENT 18: ASYNCHRONOUS SEQUENTIAL CIRCUITS In this expe rime nt, you will analyze and design asynchron ou s seq uential circuits. These types of circ uits are presented in Chapter 9. Analysis Example The analysis of asynchronou s sequential circ uits with SR latches is outlined in Secti o n 9 .3. Analyze the ci rcuit of Fig. P9 .9 (shown with Problem 9 .9) by deriving the tran sition table and output map of the circuit. From the tran sition tabl e and output map. determine (a) what happens to output Q when input X l is a I irrespective of the value of input Xl, (b) what happens to output Q when inpu t Xl is a I and X l is eq ual to 0, and (e) what happen s to output Q when both inputs go back to O? Connect the ci rcu it and show that it operates according 10 the way yo u analyzed it. Design Example The circuit of a positive -edge-triggered Ootype fl ip-flop i<, ..hown in Fig. 5.10. The ci rcuit of a negati ve-ed ge T-type flip-flop is shown in Fig. 9 .46. Using the six-step procedure recom mended in Sect ion 9 .8. design. co nstruct, and test a D-type flip-flop that triggers on both the positiv e and negative transition s of the clock . The circ uit has two inputs- D and C-and a single output. Q. The value o f D at the time C changes from 0 to 1 becomes the flip-flop output Q" Th e output remains unchanged irrespective of the value of D. as long as C rema ins at I . On the next clock transition. the output is again updated to the value of D when C changes from I to O. Th e output then remains unchan ged as long as Cremains at O. 11 .20 VERILOG HDL SIMULATION EXPERIMENTS AND RAPID PROTOTYPING WITH FPGAS Field programmable gate arrays (FPGAs) are used by industry to implercer alogic when the sysrem is complex , the ti me-to-mark et is short. the performance (e.g.• speed) of an FPG A is acceptable, and the volume of potential sales does not warrant the: iovestmelll in a standard cell-based ASIC. Circuits can be rapidJy protOlyped into an fl'GA UIinI _ HDL ODce Ibe HDL model is verified. the description i§ synthesized andmapped inlo Ihe RGA... fFGA ¥eIkIon povide software tools for synthesizing the HDL description of. circ::mI inIo _ opimirtll'l pieleve l description and mappin g (fitting) the resulting oedist inIo Ibe: ItaUCd of tbeir FPG A. Thi s proce ss avoids the deta iled assembly o f ICs thai is mpQm:I lite••.-• ...;• • c:i:mIiI: 011 a iI iI e.ier ... breadboard, and the process involve s signifK:alltly bs risk of fIUR..... faster to edit an HDLdescription than to re-wire a beactx.:d. 554 Chapter 11 l ab o rat o ry Experime nts Mo st of the hardware experi ments outlined in thi s chapter ca n be suppleme nted by a correspo nd ing software procedure using the Verilog hardware description language (HOL ). A Veri log co mpiler and simula tor are necessary fOT these supplements . The supplemental experiment s have two levels of engag eme nt. In the first. the ci rcuits that are specified in the hands-on laboratory experiments can be descri bed . simulated. and verified using Verilog and a simula tor. In the sec ond. if a suitable FPGA prot otyp ing bo ard is available (e. g.. see www.d igilent inc.com ). the hard ware experiments can be done by synthes izing the Verilog descriptions and implementing the circuits in an FPG A. Where appropriate. the identi ty of the individ ual (structural) hard ware units (e.g .• a 4-bit counter) can be preserved by encapsulating the m in separate Verilog modules whose inte rnal detai l is described behaviorally or by a mixture of behavioral and structural models. Protot yplng a circuit with an FPGA requires synthes izing a Verilog desc rip tion to produce a bit strea m that can be downloaded to co nfig ure the internal resources (e.g .• ( LBS of a Xilinx FPG A) and co nnect ivity o f the FPGA. Three detail s require attention : ( 1) The pins of the protorypt ng board are co nnected to the pins of the FPGA. and the hard ware imp leme ntation of the synthesized circuit requ ires that its input and output signals be associated with the pins of the prototy ping board (this assoc iatio n is made using the synthesis tool provided by the vendor of the FPG A (such tools are available free» . (2) FPG A prototypin g board s have a clock generator. but it will be necessary. in some cases. to impleme nt a clock divider (in verHog) to obtain an internal cloc k whose freq uency is suitable for the experiment. and (3) inputs to an FPGA-based circuit can be made using switches and pushbuttons located on the pmtcryping board . but it might be necessary to implement a pulser circuit in software to control and observe the activity of a counter or a state machine (see the supplement to Experiment I). Sup p lem ent to Experiment 1 (Section 11 .2) Th e functionality of the counters specified in Experi ment I can be described in Verilog and synthesized for implementation in an FPGA . Note that the circuit show n in Fig. 11 .3 uses a push-buno n pulser or a clock to cause the count to increment in a circ uit built with standard ICs. A software pulser ci rcuit ca n be developed to wor k with a sw itch on the prototyping board of an FPG A so that the operation of the counters can be verified by vis ual inspection. The software pulser has the ASM chart shown in Fig. 11 .25. where the external input (Pushed) is obtained from a mechanical switch or pushbutton. Th is circuit asserts Stan for one cycle of the cloc k and then waits for the switch 10 be opened (or the pushbutton to be released ) to ensure that each action of the switch or pushbutton will produ ce only one pulse of Stan. lfthe counter. or a state machine. is in the reset state (S_id fe) when the switch is closed. the pulse will launch the activity of the counter or state machine. It will be necessary 10 open the switch (or release the pushbutton) before Stan can be reassened. Using the software pulser will allow each value of the count to be observed. If necessary. a simple synchronizer circuit can be used with Pushed . Supplem ent to Experiment 2 (Section 11 .3) The vario us logic gates and their propagation delays were introduced in the hardware experiment. In Section 3.10. a simple circuit with gate delays was investigated . As an introd uction Section 11.20 Verilog HDL Simulation Expe rim ents SSS resec b FIGURE 11.25 Pulser circuit for FPGA implementation of Experiment 1 to the laboratory Verilog pro gra m, compile the circu it described in HD L Example 3.3 and lhen run the simulator to verify the waveforms shown in Fi g. 3.38. A ssign the following delays to the excl usive-OR circuit shown in Fig. 3.32(a): 10 ns for an inv erter, 20 ns for an AND gate, and 30 ns fo r an OR gate. Th e input of the ci rcuit goes fro m xy = 00 to xy = 0 1. (a) Determi ne the signals at the output of eac h gate from t = 0 to t = 50 ns. (b) Wri te the HDL description of the circ uit incl uding the delays. (c) Write a stimulus mod ule (simi lar to HDL Exa mple 3.3) and simulate the circ uit to verify the answer in part (a). (d) Implemen t the circuit with an FPGA and test its operation. Supplement to Experiment 4 (Sectio n 1 1.5) The operation of a combinational ci rcui t is ve rified by chec kin g the outpUl and comparing it with the truth table for the circuit. HDL Example 4.10 (Section 4. 12) dcmomtnJes !be pr0cedure for obtaining the truth table of a co mbinational circuit by simnlarinl it. (a) In order to get acquainted with this procedure . compile andsbmw and chec k the output truth tabl e. HDL Example 4 .10 556 Chapter 11 Laborat ory Experi m ents (b) In Expe riment ~ . you designed a majori ty logic ci rcuit. Write the HDL gate-le vel description of the majo rity logic circuit together with a stimulus for displaying the truth table. Compile and simulate the ci rcuit and check the output respo nse. (c ) Implement the maj ority log ic circuit units an FPG A and test its operatio n. Sup p lem e nt to Expe rim en t 5 (Section 11.6) Th is ex periment deals with code conversion. A BC D-to-e xcess-3 convener was desig ned in Section ~ .4. Use the res ult of the design 10 check it with an HDL simulator. (a) Write an HDL gate- level desc ription of the circuit shown in Fig. ~ .4 . (bJ Write a dataflow description using the Boolean expre ssions listed in Fig . ~. 3 . (c) Write an HDL behavioral descript io n o f a BCD -to-excess-3 conve rter, (d) Write a test bench to simulate and test the BC D-to-e xcess-3 convener circui t in order to verify the trut h table . Check all three circuits. (e) Implement the behavioral descriptio n with an FPGA and test the ope ration of the circuit. Sup p le m en t to Experimen t 7 (Section 11 .8) A four-bit adder-subtrac te r is developed in this experi ment. An adder- subtracte r circu it is also deve lope d in Section ~ . 5 . (a) Write the HDL behavioral description of the 748 3 four-bit adder. (b ) Write a behavioral descript io n of the adder- subtracte r ci rcuit shown in Fig. 11.11. (c) Write the HDL hierarchical description of the four-bit adder-subtracter shown in Fig. 4 .13 (incl ud ing V). Th is can be done by instantiating a modi fied version o f the four-bit adder described in HDL Exa mp le 4.2 (Section 4.12). (d) Write an HDL test bench to simulate and test the circ uits of part (c ). Check and verify the values that cause an o verflow with V = I. (e) Implement the circ uit of part (c) with an FPGA and test its operation . Sup p lem e nt t o Expe rimen t 8 (Section 11 .9) The edge-triggered D nip-flop 7474 is shown in Fig. 11 .13. The flip-flop has asy nchronous preset and clear inputs. (a) Write an HDL behavioral desc ription o f the 7474 D fli p-flop, using only the Q output. (Note that when Pre set = 0 , Q goes to I, and when Preset = I and Clear = 0, Q goes to O. Thu s, Preset take s precedence ove r Ctear. v (b) Write an HDL behavioral descri ption of the 7474 D flip- flop, using both outpu ts. Label the second output Q_lIot, and note that this is not always the com plement of Q. (When Preset = Clear = 0, both Q and Q_IIot go to I.) Section 11.20 Verilog HDL Simulation Experiments 557 Supplement to Experiment 9 (Sect io n 11 .10) In this hardware experime nt you are asked to design and test a sequential circuit whose state di agr am is given by Fig. 11.14. Thi s is a Meal y model seq uential c ircu it similar to the one described in HDL Example 5.5 (Sec tion 5 .6). (a) Write the H DL de ~ri pl ion of the state diagram o f Fig . 11.14 . (b) Write the HD L struc tura l descri ption of the seq uential circuit obta ined fro m the desi gn. (This is similar to HDL Exam ple 5.7 in Section 5.6.) (c ) Figu re 11.24<c) (Sect ion 11.18) shows a contro l ..tate diagram. Write the HDL descrip- tion of the state diagram . usin g the one-hot bi nary ass ignment (see Tab le 5.9 in Section 5.7) and fou r out puts-To- T I , T 2- and T 3. where To asserts if the state is 4'bOOO l , T I asserts if the sta te is 4'bOO 10. etc. (d ) Write a behaviora l mod el of the datapath unit. and verifythat the interconnected control unit and datapa tb unit operate correctly. (e) Implement the integrat ed circuit with an FPGA and test its operation. Supplement to Experiment 10 (Sectio n 11 .11) The synchronous cou nter with panallelload Ie type 7416 1 is show n in Fig. 11. 15. This circu it is similar to the one described in HDL Example 6.3 (Section 6.6 1, with two exceptions: The load input is enabled w hen eq ual to O. and there are two inputs (P and that comrol the count Write the HDL description of the 74 16 1 Ie. Implemen t the counter with an FPGA and test its operation. n Supplement to Experiment 11 (Sect io n 11 .12) A bid irecti ona l shift regi ster ....ilh parallel load is designed in th is experiment by using the 74195 an d 74 157 IC type... (a) Write the HDL de!>Cription of the 74 195 shift reg!..rer, Assume that inpu ts} andK are connected together to form the se rial input . Ibj Wri te the HDL descri ption o f the 74 157 mult iplexer. (c) Obtain the HDL de scription of the four-bit bidirectional shift reg ister that has been designed in thi..experiment. (l ) Write the struc tural descript ion by instantiating the two ICs an d specifying their interco nnec tion, and (2) write the behavioral description of the circult. using the function table tha t is de rived in this design experiment. (d) Implement the circuit with an FPGA and test its operation. Supplemenl lo Exp erlmenl13 ( Sectio n 11 .14) Thi s ex perime nt investigates the ope ration of a ranoom-eccess memory (RAM). 1be WIly a memory is described in HDL is ex plaired in Section 7.2 in oonjuncrion wiJ:b HDLEnqlk 7. 1. (a) Write the HDl description o f IC type 74 189 RAM . r.hown in Fig. 11.18. 558 Chapter 11 l ab or ato ry Experiments (b) Test the operation of the memory by writing a stimulus program that stores binary 3 in address 0 and binary I in address 14. Then read the stored numbers from the two addresses to check whether the number s were stored correctly. (c) Implement the RAM with an FPGA and test its operation. Su p p lem en t to experiment 14 (Section 11 .15) (a) Write the HDL behavioral descrip tion of the 74 194 bidirectional shift register with parallel load shown in Fig. 11.19. (b) Implement the shift register with an FPGA and test its operation. Supple ment to Experiment 16 (Section 11 .17) A parallel adder with an acc umula tor register and a memory unit is shown in the block diagram of Fig. 11 .23. Write the structural description of the circuit specified b)' the block diagram . The HDL structural descript ion of this circuit can be obtained by instantiating the various components. An example of a structural de scri ption of a design can be found in HDL Example 8.4 in Sectio n 8.6. First. it is nece ssary to write the behavioral description of each component. Use counter 74 161 instead of7493. and substitute the D flip-flop 7474 instead of the JK flip-flop 7476. The block diagram of the vario us components can befound from the list in Table 11.1. Write a test bench for each model. and then write a test bench to verify the entire design. Implement the circuit with an FPGA and test its operation. Su p p lem e nt to experim ent 17 (Sect io n 11 .18) The block diagram of a four-bit binary multiplier is shown in Fig. 11.24. The multiplier can be described in one of IW O ways: (1) by using the register transfer level statements listed in part (b) of the figure or (2) by using the block diagram shown in part (a) of the figure. The description of the multiplier in terms of the register transfer level (RTL) format is carried out in HDL Example 8.5 (Section 8.7). (a) Use the integrated circuit components spec ified in the block d iagram to write the HDL structural descript ion of the binary multiplier. The structural description is obtained by using me module description of each component and then instantiating all the components to show how they are interconnected. (See Section 8.5 for an example.) The HDL descriptions of the components may be available from the solutions to previous experime nts. The 7483 is de scribed with a solution to Expe riment 7(a ). the 747.- with Expe riment 8(a ). the 74 16 1 with Experim ent 10. and the 74 194 with Experiment 14. The descript ion of the control is available from a solution to Experiment 9(c). Be sure to verify each structural unit before attempting to . . .erify tbe multiplier. (b) Implement the binary multip lier with an FPGA. Use the pulser described in the supplement to Experimenl I. Chapter 12 Standard Graphic Symbols 1 2 .1 RECTANGULAR ·SHA PE S YMBOLS Digital compo nents such as gates, decoders, m ultiplexers. and regis ters are available commercially in integrated circuits and are classified as SSI or MSI circuits. Standard graphic symbols have been developed for these and othe r compo nents so that the user can recog nize eac h function from the uniqu e grap hic symbol assigned 10 it. This standard, kno wn as ANS lIIEEE Std . 91- 1984. has been approved by ind ustry, government, and profess ional org anizations and is consistent with international standards. The standard uses a rectangular-shape outline to represent eac h particular logic fu nctio n. Within the o utline. there is a general qualifying symbol de noting the logical operation perfanned by the unit. For example. the general qualifying symbo l for a mu ltiplexer is MUX . The size of the outline is arbitrary and can be either a square or a rectangular shape with an arb itrary length-width ratio. Input lines. are placed on the left and output lines are placed on the right If the d irection of signal flow ilO reversed . it mu st be indicated by arrows. The rectan gular-shape graphic symbo ls for 551gates are shown in Fig. 12.1. The qualifying symbo l for the AND gate is the ampe rsand (&). The OR gate has the qualifyin g sy mbollhat designates greater than or equal to 1. indicating that at least one input must be active for the output to be active . The symbol for the buffer gale is I. show ing that only one input is presenL 'Ibeexclusive-Og symbol designates the fact that only one input must be actiw: fortbcOUlpUllo be ective . The inclusion of the logic negati on small circle in the ooq:u (n n a ts tbc plleIlo tbdr complement values. Althou gh the rectangular-sha:pe symbols fIXIbe plleI at: Icc••,.u.",t,d, die standard also recognizes the distincti ve-sbape symbols for the &*S IbowD. ia Pia- 2.5_ An example of an M51 standard graphic symbol is the four-bil pIDIIcI.&Ir:r abowa in Fig. 12.2. Th e qualifying symbol for an adderis the Greek te.r I.. The . . .l'ClIldien far the arithmetic operands are P and Q. The bit-grouping symbols . die two Iypa 01 iapIb mil 559 S60 Chapter 12 Standard Graphic Symbo ls -, & - Al"D OR & ~I -, - p-- NOR NAl"D XOR Buff er Xl"OR Inverter FIGURE 12.1 R ectangular· sha ~ AI A2 A7 graphic symbols for gat es , I. 8 • 7 6 M 81 82 87 "' CI 51 52 II 2 7 " 51 " CO , 53 16 13 CI CO FIGURE 12.2 Standard graphic symbol for a four-bit parallel adder, Ie type 7483 the sum o utput are the deci mal eq uivalents of the weig hts ot tne bits to the power of 2. Thu s. the input labeled 3 corre spo nds to the value of 2 J "" 8. The input carry is designated by C J and the output carry by CO. When the digital component represented by the outl ine is also a commercial integra ted circuit. it is customary to write the IC pin number along each input and output. Thu s. IC typo: 7~83 if> a four-bit adder with loo k-ahead carry. It is enclosed in a pack age with 16 pins. The pin numbers for the nine inputs and five outputs are shown in Fig. 12.2. The other two pins are for the power supply. Secti on 12.1 Rectangu lar-Shape Symbo ls 561 Before introd ucing the gra phic symbols of oth er co mpo nents. it is nec essary 10 re view some term inology. As mentioned in Section 2.8. a pos itive -logic syste m defines the more positive o f two signal leve ls (des ignated by H ) as logic I and the more negative signal level (designated by L ) as log ic O. Negative logic ass umes the oppos ite assignment . A third alterna tive is to employ a mixed-logic convention. where the signals art considered entirely in tenns of their H and L values. At any point in the circui t. the user is allo wed to define the logic pol arity by assigning logi c I to eith er the H or L signal. The mixed- logic notation uses a small right-angle triangle gra phic symbol to designate a negative-logic polari ty at any input or ou tput term inal. (See Fig. 2. HXO.) Integrated -circuit man ufactu rers specify the opera tion of integ rated circuits in term s of H and L signals"When an input or outpu t ls considered in terms ot pos irlve logic. it is de fined a.. actin' high. Wh en it is considered in term s of ne gative logic . it is defined as active tow. Active-low inputs or ou tputs are recog nized by the presence of the sma ll-triang le polarityindicator symbol. Wh en po sitive logic is used excl usive ly thro ughout the entire system. the small-triangle polarity symbo l is equivalent 10 the small circ le that designate s neg ation , In th is book , we have assume d positiv e logic througho ut and employed the small circl e when drawing logic diagrams, When an inp ut or output line doe s not includ e the small circle , we define it to be ac tive if it is logic I. An input or output that include s the small- circle symbol is co nsidered act ive if it is in the logic-Ostate. However. we will usc the small-trian gle polarity symbol to indicate active-low asvignr ne nt in all draw ings that repre sent standard diagrams. Th is will conform with integrated-circuit da ta books. where the po larity symbol is usually employed"Note that the bott om four gates in Fig. 12. 1 could have been drawn wit h a small triangle in the output lines instead of a small circle. Anot her example of a graphic sym bol for an MSI circ uit is shown in Fig. 12.3. Th is is a z-to-a-Hne dec oder represen ting one-half o f Ie type 74 155. Inputs are on the left and outputs on the right. The identifying symbol X /y indicates that the circuit co nverts from eode X to code Y. Data inputs A and B are a.....igned binary weights I and 2 equi vale nt to tJand 2 1• respectively. The ou tp uts are ass igned numbers from 0 10 3. corresponding to outputs Do through D). re specti vely. The decode r has one active- low inpu t £ 1 an d one ac tive- high input £~ . These two inp uts go through an internal A="O gale to e nable the decoder. The outp ut of the A." 'lD gale is labeled EN (e nable ) and is activated whe n E1 i.. at a low-level stale and £2 at a high -level state. A B E1 X IY 13 3 7 2 2 E2 FIGURE 12.) Standard g raphi< \ymbol for a 2-to-4-line dec:od« • • , • • 2 00 DI D2 m (~ el K tn- 741SS) S62 12 . 2 Chapter 12 Standard Graphic Symbols QUALIFY I NG SYMBOLS The IEEE standard gra phic sy mbo ls for logic funct ions pro vide a list of qualifying symbols to be used in conjunction with the outli ne . A qualifying sy mbo l is added to the basic outline to designate the overall logic characteristics of the element or the physical characteristics of an input or o utput . Table 12.1 lists some of the general qu alifying symbols specified in the Standard. A general qual ifying symbol defi nes the basic func tion performed by the device repre sented in the diagram. II is. placed near the top center position of the rectang ular-shape outline. The general quali fying S) mbols for the gates, decoder. and adder were shown in pre vious diagrams. Tbe oth er symbols are self-explanatory and will be U ~ later in d iagrams representing the corresponding dig ital elements. Table 12.1 Gtntro' Quon~ng Symbok Symbol & ~ I 1 =1 " 2k + I XJY .\IUX D.\llJX ~ n CO.\f P ALU De scrip ti o n AN D gate or function OR ga le or function Buffer gat e or invert er Exclusbe-Og gale or function Even function or even parity element Odd function or rod parity element Coder. decoder. or code converter Multiplexer Demultiplexer Add« Multiplier Magn itU<k comparator ClR RClR RO M Arithmetic logic unit Shift register Counte-r Ripple ccc nrer Read-only memory RA.\I Randorn-acce -,.. memory SRG Some of the qualifying symbols associated with inputs and outputs are shown in Fig. 1:': .4. Symbols associa ted with inputs are placed on the left side of the column labeled symbol. Symbol s associated with outputs are placed on the right side of the column. Th e active-low input or output symbol is the polarity indicator. As mentioned previously, it i~ equ ivalent to the logic negation when positive logic ilo assumed. The dynam ic input is associated with the clock input in flip-flop circuits. It indicates that the input if, active on a transition from a low-to-high-level signal. The three-Slateoutput hn.. a third high-impedance stale. which has no logic significance. When the circuit is enabled. the output is in the normaJ 0 or 1 logic ..tate. but when the circui t i ~ disabled the three -state output is in a high-impedance stale. This state is equivalent to an open circuit. The open-co llect or o utput has one state that exhibi ts a high -impedance co ndi tio n. An externally connec ted resistor is some times required in order to prod uce the ~r 10Eic leve l, Section 12.2 Symbol ---"{ }--{ }- ----E Qualifying Symbols Descripti on Active -lew input or output Logic negation inp ut or output Dynamic indicato r input Th ree-state outp ut (see Fig. 10.16) Open-collector o utp ut (see Fig. 10.12) O utpu t with special amplification Enable input Data input to a storage element ------G. K, R, S. o r T Flip-flo p inputs Shift right Shift left Counrup Cc unrdc we CT-l]--- CoolcDb of rq;illct equall!!!!U! LS FIGURE 12.4 Qualifying symbo ls associated with Inputs and outputs 563 564 Chapter 12 Sta ndard Gra phic Symbols The diamond-shape symbol may have a bar on top (for high type ) or on the bottom (for low type). The high or low type specifies the logic level when the output is not in the high- impedan ce state. For e xample, TT L-type integrated c ircuits have speci al outputs called open-collector outputs. These outputs are recog nized by a diamond-shape symbo l with a bar under it. Thi s ind icates that the output can be either in a high-impedance state or in 3 le w-level state. When used as part of a distributi on function. two or more open-collector NAND gates when con nec ted to a common resistor perform a positive-logic AND function or a negative- logic O R function . Th e output with special amplification is used in gales that pro vide speci al driving ca pabilities. Such gates are employed in components such as clock dri vers or bus-oriented transmitters. The EN symbo l designates an enable input. II has the effect of enabling all outputs whe n it is active. When the input mark ed with EN is inactive. all outputs are d isabled. The symbols for flip-nap inputs have the usual mean ing. The D input is also associated with other storage el eme nts such as memory input. Th e symbols for shift right and shift left are arro ws pointing to the right or the left. respectivel y. The symbol s for count-up and count-down counters are the plus and minus symbols. respec tively. An output designated by CT = 15 will be active when the conte nts of the register reach the binary count of 15. When non standard information is shown inside the outline. it is enclosed in square brackets [like this]. , 2 .3 DEPENDENCY N O TA TI O N The most impo rtant aspect of the standard logic symbols is the dependency notation. Depe ndency notation is used to provide the means of denoting the relationship between differen t inputs or outputs without actually showing all the elem ents and interconnec tions bet.....een them . We will first demonstrate the dependency notation with an examp le of the A:-..'D dependency and then define all the other symbols associated with this notation . The AND depe ndency is represented with the letter G followed by a numbe r. Any input or output in a diagra m that is labeled with the number associated w ith G is considered to be A:-.lDed .....ith it. For example. if one input in the diagram has the label G I and ano ther input is labeled with the number I. then the two inputs labeled G I and I are considered to be A!\TIed together internally, An example of A.' JD dependency is shown in Fig. 12.5. In (a). we have a portion of agraphic symbol with two AND dependency label s. G I and G 2. There are two inputs labeled with the number I and one input labeled with the num ber 2. The eq uiva lent interpretation is shown in part (b) of the figure. Input X associated with G I is considered to be ANDed with inputs A and B. which are labe led with a 1. Similar ly, input Y is ANDed with input C to conform with the depen dency betwee n G 2 and 2. Th e standard de fines 10 other depe ndencies. Each depend ency is denoted by a letter symbol (except EN ). The leiter appears at the input or output and is followed by a number. Eac h input or output affected by that depe nde ncy is labe led with that sa me number. The II dependencies and thei r co rrespond ing letter designatio n are as follow s: G Denotes an AND (gate ) relationship V Denotes an O R relationship Section 12.3 Dependency Notation S6S x y x - --I y - --I '&1 w I" ~f'!! - 'iii A '-"" -k A-- - I 8 - - - !.l c - - --l b~ .-~~ ~1:i 8 IF .' (a' Bloc k with G l and G2 c I-- ::.~~ ,. ;: ,. :l~: :-~~ ~ ~- I-- '.:::-~~~ (hi Equ ivale nt interpreeatjon fiGURE 12.5 Example of G (AND) dependency N Denotes a nega te (exclusive -OR) re lationship EN Specifies an en ab le action C Identifies a co ntro l dependency S R Speci fic!'> a setting action Specifies a reset ting action .\I Identifies a mode dependency A Identifies an address dependency Z Indicates an interna l interconnection X Indicates a controlled tra nsmission The V and N dependencie s are used to denote the Boolean relalion..c;hips of O R and exclusive -O R similar to the G that denotes the Boolean AND. 'Ibe EN dep:ndeucy is simiJ.lOthe qual ifying symbo l EN except: that a number fol low s it (for example. EN2)_O&Iy dIIe ouquts marked with thai numberare di sabled .." hen the input as.socialed with EN is a::tive. The control dependency C is used to identify a clock mp. •• -.::pw IIriaI demmI mel 10 indicate which input is co ntrolled by it. 1be set S and reser R depra". ics are...t Ilo IpCCify internal logic states of an SR flip-Ilop. The C. S. and Rdepmdencielareeqai"erl ioSectioo 125 566 Chapter 12 Standard Graphic Symbols in conjunction with the fl ip-flop circuit. The mode M dependency is used to identify inputs that select the mode of operat ion of the unit. The mode dependency is pre sented in Section 12.6 in conjunction with registe rs and counters. The address A dependency is used to identify the addre ss input of a memory. It is introd uced in Section 12.8 in conj unction with the memory unit. The Z depe nde ncy is used 10 indicate interconn ectio ns inside the unit. It signifies the ex iste nce of internal logic connections betw een input s. outputs. internal inputs. and internal outputs. in any combination. The X depe ndenc y is used to ind icate the controll ed transmission path in a CMOS transmi ssion gate. 1 2 .4 SYMBOLS FOR C O M BI N AT IO N AL ELEMENTS The examples in this sectio n and the rest of this chapter illustrate the use of the standard in repre senting various digital components with graphic symbo ls. The examples demonstrate actual commercial integrated circuits with the pin numbers included in the inputs <>nd outpul-~ . MO!<t of the ICs presented in this chapter are included with the suggested experiments outlined in Chapter J J. The graphic sy mbo ls for the adder and decoder were shown in Section 12.2. Ie type 74 155 can be co nnec ted as a 3 X 8 decoder. as shown in Fig. 12.6. (The truth table of this decode r is shown in Fig. 11 .7.) There are two C and two G inputs in the Ie. Each pair must be connected togethe r as shown in the d iagra m. 1be enable input is active when in the low-leve l state. The outputs are all active low. The inputs are assigne d binary weig hts 1. 2. and 4 . eq uiva lent to 2". 2 '. and 2 2• respectively. The outputs are assigned numbers from 0 to 7. The sum ofrhe weigh ts of the inputs dete rmine s the output that is active . Thu s. if the two input lines with weights 1 and 4 are activa ted. the total we ight is I + 4 = 5 and output 5 is act ivated. Of course. the EN input mu st be activated for any output to be active. The decode r is a special case of a more general component referred to as a coder. A coder is a device that receives an input binary code on a number of inputs and produces a different binary code on a number of outputs. Instead of using !he qualifying symbol X /Y.1he coder can be specified by 9 DO A 10 B 11 C 12 7 G ,• 4 FIGURE 12.6 IC type 74 155 connecte d as a 3 x 8 decoder 01 02 0' D4 0' D. 07 Section 12.4 Symbols for Combi nationa l Elements S67 the code name. For example. the 3-to-8· line decoder of Fig. 12.6 can be symbolized with the name BIN/OCT since the circuit converts a 3· bit binary number into 8 octal values, 0 through 7. Before showing the graphic symbo l for the multiplex er. it is necessary to show a variation o f the AND depe ndency. The AND depe ndency is sometimes represented by a shorthand no· tation like G ~. Th is symbol stands for eight AND dependency symbols from 0 to 7 as follows: G~G J .G ~G 1G ~G~G~G 7 At any given time, only one out of the eight AND gates ca n be active . The active AND gate is determined from the inputs associated with the G symbol. These inputs are marked with weights equal to the powers of 2. For the eight AND gates j ust listed . the weights are O. I, and 2, corresponding to the number s 2°, 2 1• and 21 • respectively. The AND gate that is active at any given time is determined from the sum of the weights of the active inputs. Thu s, if inputs 0 and 2 are active, then the AND gate that is active has the number 2° + 22 "" 5. Thi s makes G 5 active and the other seven AND gates inactive. The standard graphic symbol for a 8 X I multiplexer is shown in Fig. 12.7(a). The qualifying symbol MUX identitie s the device as a multiplexer. The symbols inside the block are part of the standard notation . but the symbols marked outside are user-defined symbols. The function table of the 74 1551 Ie can be found in Fig. 11.9. The AND dependency is marked with G ~ and is associa ted with the inputs enclo sed in brackets. These inputs have weights of 0, I, 15 Select Al 81 5 6 A2 82 ---'----< 2 3 , 11 83 10 8' 7 6 A3 A' • 9 I. 13 (a) tc type 74151 8 x 1 MUX (b) Ie type 741$7qu.cb",1 x 1 MUX FIGURE 12.7 Graphic symbols for multiplexers 568 Chapter 12 Sta nda rd Gra phic Symbols and 2. They are actually what we have called the selection inputs. The eight da ta inputs are marked with numbers from 0 to 7. The net weight of the active inputs associated with the 0 symbol specifies the number in the data input that is active. For exa mple, if selecuon inp u l~ CBA = I10. then inputs I and 2 associated with G are active. This gives a numerical value for the AND dependency of 2 ~ + 2 1 6. which makes 06 active. Since 06 is ANDed with data input number 6. it makes this input active. Thu s. the output will be equal to data input D6 provided that the enable input is active. Fig.12.7(b) represents the quadruple 2 X I multiplexer Ie type 74157 whose function table is listed in Fig. 11.17. The enable and selection inputs are common to all four multiplexers. This is indicated in the standard notation by the indented box at the top of the diagram. which represents a commoll control block. The inputs to a common co ntrol block control all lower sections of the diagram. The co mmon enable input EN is acu ve when in the low-level state. The AND dependency. 0 I. determines which input is active in each multiplexer section. When G I = O. the A inputs marked with I are active. When 0 1 = I. the B inputs marked with 1 are active. The active inputs are applied to the corresponding outputs if EN is acuve. Note that the input symbols I and I are marked in the upper section only instead of repeating them in each section. = , 2.5 5YMBOLS FOR FLlp·FLOP5 The standard graphic symbols for different types of flip-flops are shown in Fig. 12.8. A flip-flop is represented by a rectangular-shaped block with inputs on the left and outputs. on the right. One output designates the normal state of the flip-flop and the other output with a small-circle negation symbol (or polarity indicator) designates the co mple ment output. The graphic symbols distinguish between three types of flip-flops: the D latch. whose internal construction is shown in Fig. 6.5: the master- slave flip-flop. shown in Fig. 6.9; and the edge-triggered Ilipftop. introduced in Fig. 6.12. The graphic symbol for the D latch or D flip-Flop has inputs D and C indicated inside the block. The graphic symbol for the J K nip-flop has inputs J. K . and C inside. The notation C I. I D. I J. and 1 K are examples of control dependency. The input in C I controls input I n in a D flip-flop and inputs I J and I K in a J K flip-flop. The D latch has no other symbols besides the I D and C I inputs. The edge-triggered flip-flop has an arrowhead-shaped symbol in front of the control dependency C 1 to designate a dynamic input. The dynamic indicator symbol denotes thai the Hip-flop responds to the po..Itive-edge transition of the input cloc k pulses. A small circle outside the block along the dynamic indicator designates :I. nega tive-edge transition for triggerin g the flip -flop. The master- slave is considered to be a pulse-triggered flip-flop and is indicated as such with an upside-down L symbol in front of the outputs. This is to show that the output signal change'> o n the falling edge of the pulse. Note that the master- slave flip-flop is drawn without the dynamic indicator. Flip-flops available in integrated-circuit packages provide specia l input s for setting and resetting the nip-flop asynchronously. These inputs are usually called direct set and direct reset. They affect the output on the negeu . . e level of the signal without the need of a clock . The graphic symbol ofa master- slave J K flip-flop with direct set and reset is shown in Fig. 12.9/31. Section 12.5 Symbols fo r Flip-F lop s -~ 1D -~ 1D -~ C l - Dlatch --{> C1 Positive-edge-tri ggered D nip-fl op u - l~ __ .-.. - --{> C1 - ---9> CI .,~ -~IK - - - - j IK Positive-edge-triggered lK flip-fl op Negative-edge-triggered lKflip-flop ., II CI ID C1 ., IK Master-slave lK flip-flop ., ., Master -slave D flip-fl op f iGURE 12.8 Standa rd grap hic symbols for flip -flo ps 2 4 I 16 3 S U CI lK ., 15 ., 14 4 3 s 2 • R (a) On e-half 7476 l K flip-fl op fiGURE 12.9 IC flip-flo ps wit h d irect set and re se t (b) One--hatf 7414 D ftiIHIop 569 570 Ch a pt e r 12 Standard Gra p hic Symbols The notations C I. I J . and I K represent control depen dency. showing that the clock input at C I controls input!'> I J and I K. S and R have no I in front of the leiters and. therefore. they are not co ntrolled by the clock at C I. The S and R Inputs have a small circ le along the input line!'> to indicate that they are active when in the logic-O level. The function table for the 7476 flipflop is shown in Fig. 11. 12. The graphi c symbol for a positive-edg e-triggered D flip-flop with direct set and reset is shown in Fig. 12.9(b). The positive-edge transition of the clock ar input C I co ntrols input I D . The Sand R inputs are independent of the clock . This is IC type 7474. whose function table is listed in Fig. 11.1 3. 12 . 6 SYMBO LS FOR RE G I STE RS The standard graphic symbol for a register is equivalent to the symbol used for a group of flipflops with a common clock input. Fig. 12.10 shows the standard graphic symbol of IC type 74 175. consisting of four D flip-flops with common clock and clear inputs. The clock input C I and the clear input R appear in the common control block. The inputs to the common control block are connected to each of the elements in the lower sections of the diagram. The notation C I is the co ntrol depend ency that controls all the I D inputs. Thus. each flip-flop i!'> triggered Clear - - ''-''>oj 9 2 4 3 , 7 6 10 12 II 13 is 14 FIC;URE 12.10 Graphic symbol for a fo ur-bit reg ister, Ie type 74 175 Section 12.6 Symbols for Registers S71 by the common clock input. The dynamic input symbol assoc iated with C 1 indicate s that the flip-flops are triggered on the positive edge of the input cloc k. The co mmon R input resets all flip-flops when its input is at a low-level state. The I D symbo l is placed only once in the upper section instead of repeating it in each section. The complement outputs of the flip-flops in this diagram are marked with the polarity symbol rather than the negation symbol. The standard graphic symbo l for a shift register with parallel load is shown in Fig. 12.11. Th is is IC type 74195 , whose function table can be found in Fig . 11 .16. The qualifying symbol for a shift register is SRG followed by a number that desig nates the numbe r of stages. Thu s, S RG 4 denotes a four-bit shift register. The common control block has two mode depende ncies, M I and M 2. for the shift and load ope rations. respect ively. Note that the IC has a single input labeled SH / LD (shift/load), which is split into two lines to show the two modes. M I is active when the SH /LD input is high and M 2 is active when the SH/ LD input is low. M 2 is recognized as active low from the polarity indicator along its input line. Note the convention in this symbology: We must recognize that a single input actually exists in pin 9, but it is split into two parts in order to assign to it the two modes, M I and M 2. The control dependency C 3 is for the clock input. The dynam ic symbol along the C 3 input indicates that the flip-flops trigger on the positive edge of the clock. The symbol / 1 _ following C3 indicates that the register shifts to the right or in the dow nward directio n when mode M I is active. The four sections below the com mon control block represe nt the four flip-flop s. Flip-flop QA ha s three inputs: Two are associated with the serial (shift) opera tio n and one with the Clear 9 Cloc k J K A B C 10 2 3 4 s , :~~!l}~l{!f1~~: ' ·..·...,.,,..',:?,ll!iJ' t fJK':ffY,~·.;~I'.wt" 15 14 13 12 D 7 QA ·,~jl' '~0 2.3D -!~ W ,IJ,i'/ " 11 QB QC QD /!Il FIGURE 12 .11 Graphic symbol for a shift reg ister with pIIr.KeIIoM1" IC type 74 195 572 Chap ter 12 Standard Graphic Symbols parallel (load) operation. The serial input label I . 3 J indicates that the J input of flip-flop QA is active when M I (shift) is active and C3 goes through a positive clock transition. The other serial input with label I. 3 K has a polarity symbol in its input line co rresponding to the co mplement of inpul K in a J K f li p-fl op. The third input of QA and the Inputs of the other flip-Oops are for the paralle l input data. Each input is deno ted by the label 3D. The 2 is for M 2 <load). and 3 is for the clock C 3. If the input in pin number 9 is in the low level. M I is active . and a positive transition of the clock at C 3 causes a parallel transfer from the fou r inputs. A through D. into the four flip-flops. QA through QD. Note thai the parallel input is labeled on ly in the first and second sections. It is assumed to be in the other two sections below. Figure 12. 12 show!'> the graphic symbol for the bidirectional shift register with parallelload. Ie type 74 19~ . The function table for this Ie is listed in Fig. 11 .19. The co mmon con trol block shows an R input for reseulng all flip-Oops to 0 asynchronously. The mode select has two inputs and the modc depe ndency M may take binary values from 0 to 3. This is indicated by the symbol M ~ . which stands for M O. M I, M 2. M 3. and is similar to the notation for the G dependency in multiplexers. The symbol associated with the clock is z. C4/ 1 -+ /2 _ C 4 is the control dependency for the clock. The / 1 -+ symbol indicates that the register shifts right (down in this case) when the mode is M I (SISO 01). The /2 _ symbol indicates thai the register shifts left (up in this case) when the mode is M 2 (SISO = 10). The right and left d irections are obtained when the page is turned 90 degrees countercloc kwise. = Clear - -'-""{R 9 10 II Seri al input A R C D Seriat inp ut 2 " 3 4 s 3; 4D 3. 4D , QA 14 QR 13 QC 6 7 12 QD FIc;.URE 12. 12 Graphic symbo l for a bidirectional sh ift register with parallelload, Ie type 74194 Section 12.7 Sym bo ls for Coun ter s 573 The sections below the common co ntrol block represent the fou r fu p-flops. The first flipflop has a se rial input for shift right, de noted by I. -I D (mode JI I. clock C 4. input D). The la,st flip-flop has a serial input for shift left . denoted by 2. -I D (mode ,H 2. clock C 4. input D). All four flip-fl ops have a parall el input denoted by the labe l 3. 4 D (mode M 3. clock C 4 . input D). Thus. M 3 (SISO = It ) is for parallel load. The remaining mode,\10 (SISo = 00) has no effec t on the outputs bec ause it is not incl uded in the input labe ls. 1 2.7 S YMBOLS FOR COUNTERS The standard graphic sy mbo l of a binary ripple counter is shown in Fig. 12.13. The qual ifying ..ymbo l for a ripple cou nter is RCTR . The designation D IV 2 stands for me di vide-by-z circuit that is obtained from the single flip-flop QA. Th e DIV g desig nation is for the di vide-by-S counter ob tained from the other th ree fl ip-fl ops. Th e diagram represents Ie type 7493. whose internal circuit diagra m is shown in Fig. 11.2. The co m mon co ntrol block has an internal AN D gate. with inp uts R I and R 2. Wh en both of th ese inpu ts arc equal to I , the content of th e co unter goes to zero. Th is is ind icated by me symbol CT O. Since the count input doe s not go to the cloc k inp uts of all flip-flops, it has no C I label and. instead. the symbo l + is used to indicate a cou nt-up ope ration. The dynamic sy mbol next to the + together with the polarity symbol along me Input line signify that the count is affected with a negati ve-edge transit ion o f me input signal. The bit grouping from 0 10 2 in the ou tp ut represents values for the weights to the power of 2. Thu s. 0 repre sents the value o f 2° 1 and 2 represents the val ue 22 4. The standard grap hic symbol for the four -bit counter with parallel load . Ie type 74 16 1. is shown in Fig. 1 2 . 1 ~ . The qualifying sy mbol for a synchro nous cou nter is CT R fo llowed by the symbol Dl\' 16 (divide by 16), whi ch gives the cycl e length of the counter. There is a single = = = BaR 81 82 2 , ,~~ ~~: CT -- O .;:;.. ~ Ac :,. ,.' A B ,, ~ I~ I I + DIV2 DI"" + '''. ( 12 9 'T cd" Ii moURE 12.13 Graphic symbol for ripple counter, Ie type 7491 • II QA QB QC QD IS 14 13 12 II FIGURE 12.14 Graphic Symbol fo r 4-81t Binary Counter with Parallel Load, Ie Type 74161 load input at pin 9 that is split into the two modes. M I and M 2. M I is act ive when the load input at pin 9 is low and M2 is active when the load input at pin 9 is high . M 1 is recognized as active low from the polarity ind icator along its input line. The count-e nable inputs use the G depe nde ncies. G 3 b associated with the T input and G 4 with the P input of the count enable . The label associated with the clock is e 5j2. 3. 4 + This me ans that the circ uit counts up (the + symbo l) whe n M 2. G 3. and G 4 are acu ve (load = I, ENT = I, and EN P = I) and the cloc k in C 5 goes through a pos itive tran sition . Thi s condition is specified in the function table of the 74 16 1 listed in Fig. 11.15. The parallel inputs have the label I. 5 D. mean ing that the D inputs are active when M I is acti ve (load = 0) and the clock goe s through a positive tran sition. The output carry is designated by the label 3CT = 15 This is interpreted to mean that the output carry is active (equal to I) if C3 is active ( ENT = I) and the content (CT) of the counter is IS (binary 111 1). Note that the outputs have an inverted L sy mbol. indicating that all the flip-flops are o f the mas ter- slave type . The polari ty symbol in the C 5 input designates an inverted pulse for the input clock. Thi s mean s that the master is trigger ed on the negative transition of the cl ock pul se and the slave changes stal e on the positive transition. Thu s, the OUtpUI changes on the positive tran sition of the clock pulse . It should be noted that Ie type 74LS 161 (low-power Scbonky version ) has positive-edge-triggered flip-flops. Section 12.8 12 .8 Symbol for RAM 575 SYMBOL FOR RAM The standard graphic symbol for the random-access memory (RAM) 74 189 is shown in Fig. 12.15. The numbers 16 X a that follow the qualifying symbol RAM designate rhe number of words and the number of bits per word. The common control block is shown with four address lines and two control inputs. Each bit of the word is shown in a separate section with an input and output data line. The address dependency A if> used to identify the address inputs of the memory. Data inputs and outputs affected by the address are labeled with lhe leiter A. The bit grouping from 0 through 3 provides the binary address that ranges from A0 through A 15. The invetted triangle signifies three-state outputs. The polarity symbol specifies the inversion of the outputs. The operation of the memory is spec ified by means of the dependency notation. The RAM graphic symbol uses four dependencies: A (address ), G (AND), EN (enable), and C (control). Input G I is to be considered ANDed with l E N and IC 2 because G I has a 1 after the letter G and the other two have a 1 in their label. The EN dependency is used to identify an enable input that cont rols the data outputs. The dependency C 2 controls the inputs as indicated by the 2D label. Thus, for a write operation, we have the G I and IC 2 dependency (CS ;;: 0), the C 2 and 2D dependency (WE ;;: 0), and [he A dependency, which specifies the binary address in the four address inputs. For a read operation, we have the G land lE N dependencies (CS == 0, WE ::= 1) and the A dependency for the outputs. The interpretation of these dependencies results in the operatio n of the memory as listed in the function table of Fig. 11.18. AO - --'----j AI A2 A3 cs ---'--D./ WE - --4-1 , 1 9 II FIGURE 12,15 Graphic symbo l for 16 x 4 RAM, Ie type 74189 576 Chapter 12 5tanda rd Gra phic 5ymbols PR O BLEM S 12.1 Figure 11.1 shows various small-scale integration circuits with pin assignment. Using lhis information. draw the rectangular-shaped graphic symbols for the 7400. 7$ . and 7486 1Cs. 12.2 Define the following in your own words: (a) Positive and negative logic. (b) Active high and active low. (c) Polarity indicator. (d) Dynam ic indicator. (e) Dependency notation. 12.3 Show an example of a graphic symbol that has the three Boolean dependencies--G. \ '. and .v . Draw the equivalent interpretation. 12.4 Draw the graphic symbol of a BCD-to-decimal decoder. This is similar to a decoder with 4 inputs and 10 outputs. 12.5 Draw the graphic symbol for a binary-to-octal decoder with three enable inputs. E I. E 2. and E3. The circuit is enabled if E I - I. E2 = O. and £3 :a 0 (assuming positive logic). 12.6 Draw the graphic symbol of dual e-to- f-Hne multiplexers with common selection inputs and a separate enable input for each multiplexer. 12.7 Draw the graphic symbol for the following flip-flops: (a) Negative-edge-triggered D flip-flop. (b) Master- stave RS flip-flop. (c) Positive-edge-triggered T flip-flop. 12.8 Explain the function of the commoo control block when used with the srandardgraphic symbols. 12.9 Draw the graphic symbol of a four-bit register with parallclload using the label M I for the load input and C 2 for the clock. 12.10 Explain all the symbols used in the standard graphic diagram of Fig. 12.12. 12.11 Draw the graphic symbol of an up-dow n synchronous binary counter with mode input (for up or down) and count-enable input with G dependency. Show the output carries for the up count and the down count. 12.12 Draw the graphic symbol of a 256 X J RAM . Include the symbol for u uee-a ate outputs. REFE REN C ES 1. 2. 3. 4. JEEE Standard Gruph ic Symbolsjor Logic Functions (ANSVlEEE Std. 9 1·1984 ).1984. New York: Institute of Electrical and Electronics Engineers. KAMPEL. I. 1985. A Pract ical lmroducnon to the /ifni ' Logic Symbo ls. Boston: Butterworth. M ANN. F. A. 1984. Explanatio/l ojHew Logic Symbols. Dallas: Texas Instruments. The TTL Da/clBook, Volume 1. 1985. Dallas: Texas Instruments. 598 Index A synchro nous seque ntial circu its (com.) de signof.415-416 flow table, 420-422 fundamenta l mode,4 17 halards, 452-457 in com binationa l circuit s, 452-4 54 defi ned, 452 detection of. 453 cssential, 456-4 57 imple me nta tion with SR latches, 454-4 56 re medy for eliminating.454 in sequen tial circuia,454 implement ation exa mple, 430-4 31 laboratory experi me nt, 553 lalch excita tion table, 430 logic diag ra m, 436-4 37 prim itive flow table, 433-4 35 reducnon 0[,435-436 race condi tio ns, 422-424 race-free sta te assignme nt, 446-4 52 four-ro w flow-table example,449-450 multiple-ro w me t hod, 450--452 three-row flow-table eu mple, 447-449 reductio n of sta te and flow tables, "....... close d-covering conditio n, 445-446 cumpatiblc pa irs, 443-444 implicat ion tab le and implied state s, .......a max imal compatih1es,444-44 5 merging of th e flow table, 442-443 S R latcb , 425-4 27, 430-4 31 ana lysis eu mple, 428-429 tra nsition ta ble. 430 slabilit y.424-425 transition table. 4 17-420, 436-43 7 unsta ble states: assigni ng o utp uts to,437-4 39 Asyncbrono us seq uent iallogic. 415-470 B Base, 3-4 BC D 841,21-22 BC D adde r, 140-142 hlnck d iagra m. 141 BCD add ition , 19-20 BCD (binary-coded decimal) code , 18-19 BCD ripple counters. 256-258 logic d iagra m, 257 state diagra m. 256 Be havioral mod eling. 168-170. 207- 210 Bidirect iona l shif t register, 25I , 537, 537- 538 with pa rallelloa d,5 37-S38 Binary ad der. 133-134 Binary adder-subt ractor, l29-139 binary adder, 133-134 binary sube acror. 136-138 carry propagation. 134-136 full adder. 131-133 ha lf add er, 130- 131 ollerflo w, 138-139 Binary and decim al num bers (laboratory experime nt). 516 BC D cou nt ,517- 518 binary coun\. 516-5 17 countr.,518 oscilloscope display, S17 output pall ern. 5t7 - 518 Binary eeu.zs Binary eoces.i . tt-zs American Sta ndard Code for Information Interch ange (ASCII) ,23-2S BC D 841, 21-22 BC D add ition, 19-20 BCD [binary-coded decimal ) code , 18-19 dec ima l arithme tic, 20-21 errc r-derecnn g code. 25 Excess-J cooe.zt-zz G ray cod e. 22-23 fI-bit binary code, 17- 18 2421 weighted codes, 21 Binary cou ntdo wn co unters, 2S5 Binary counter with parallelload, 262- 265 Clear input. 262-264 CLK input, 264 COlint input, 264 Luad input. 264 Binary coun ters: defin ed . 253 with parallel load, 534-535 Binary decisio n box. algorithmic stale machines (AS Ms). 350 Binary digits. I Binary logic.28-31 defined. 29 logic gates, 30-3 1 Binary mulliplier,1 42-1 43 contr ol sta te diagram for , 376 HD L description ot 382-389 datapalh unit, J82 next-s ta te logic of th e co ntrolle r.382 laboratory expe rime nt. 549-553 block diagram. 549-55O checking, 552-553 control of registers,55G-552 datapath design. 552 eoae.n-zz des ign of control circuit . 552 mult iplica tion nample. 552 parallel multiplie r, beha'lioral description of. 388-390 test ing. 384-388 Binary numbe rs. J-5 coolle nion to octal num be rs. 9 signed , 14-17 sum ot 5 unsigned . 14 Binary operato r.36 Binary ripp le cou nters. 2SJ-256 binary counl seq uence, 2S5 defi ned , 253 four -bit.2S4 Binary stor age and regiMers. 25-28 Binary stora ge cell. 291-292 Binary subtractor, 136-138 Binary systems, 3--4 Bipolar IC u ansist ors.4 n Bipola r junct ion transistor ( BIT ), 473 Bipolar t ra nsistors: base-e mitte r gra phical cha raClerislic, 479 charaClerislK:s of. 4n -48 1 collector and base cu rrents,478 de current gain. 479 graphical collector-e mitte r cha racteristics, 479 pulled down ou tp ut ,4 79 pulled out o Ulput.479 sat ura tion region,47 9 Bits, 1, 4, 28S Bitwise operalors. 338 Block statement. 112 Blocking as..signme nt~ 209-210. 337 Boote . George. 38 Boolean al gebra. 28, 38 esscciauve law, 37 axio matic dd ni tion of. 38-39 basic the or ems. 41-4 3 binary ope rator. 36 ClI non ical forms. 48-55 colw ersion betl\'ee n, 52-53 dosure. 37 co mmuteu ve Law, 37 de fined. 36. 44 dimi bulive law, 37 dua lity,4 1 field. 37- 38 identity elemen t, 37 inllerse. 37 and logic gates, Jl)...31, 36-39 man ipulat ion of. 46-47 maxterm s, 48-50 prod uct oU 2 600 Index Cont rol unit, 345-346 CnnlrolJers,335 Count operat ion regist<: rs, J 34 Cou nters: loinary co untdo wn co unten,255 de fined. 242, 253 <.li\ ide- by-N co un ter. 265 IlDL for . 269-276 Johnson, 268-269 lalou ratory expcriment , 5J 3-535 t>i nary counter with par allel load , 534-535 decim al co un te r, 534 ri pple co un ter.534 sync hro no us count er . 534 ring,267 -268 ripple, 253-258 BC D, 256-2511 t>inary, 253-2.~6 ~~ m hol'\, 5n-574 S) nchronOl,I'\,258--264 wah un used stat es, 265-266 Crit ical race,422-423 8\'uid ing, 447 exa mple s of, 423 ('ru"po int, JOO Cycle timo:,memory,289 C>'c1es. 423-424 Cyclic be havio r,2 07, 343 edge -se nsitive, 344 I> D thp-Ilops : adv antage of designin g with, 2211 ,m a lys i~ of clock ed sequential circuits with ,204--206 a n il lysi ~ with , 200-201 cha racte ristic eq ua tio n. 194 characteristic table. J93-194 as ex ample o f a seq ue ntia l mach ine, 210-212 D lat ch [transparent latch ). 1117- 1811 D "rl i n ~ton pair , 49l)..491 Data sele ctor, 154 Dataflow modeling, 165-1 67 D III<I{' I . 2&1 D <lI<lO ur,2&I Dal apalh unit, 345-346 Data.processing path , 345-346 Dc cur re nt gain. 479 Dcbc unce circuit.ay l Decade counler. 256 D ecimal adder. 1J9-142 HCO adder , 140-14 2 Decim,ll ari thmetic. 20-2 1 Decima! co unte r, 534 Declarat ion, 110 Decoders, I46-14Q.566 co mhinationa l loF-ic impl<'mentat ion. 149 n-t o-m_line decoders. 146 three-to-eight-line.Lse truth table fo r, 147 two-to- rour·line, with e nable input. 147-148 D elay co ntro l opera to r,2Oll D eM organ', theo re m. 43. 47-48 Dem ultiple xe r. defi ned. 148 wilh e nable inpu l.1 47_148 D ependency not at ion. 564-566 D esign: a~ynchronoWl seq ue nt ial circu its, 433-U9. 457-463 logic d iagra m. 461--463 muging of the flow table,459-1fl1 primitive flow ta ble,457....58 speciHca tion'\,457 slate assignment. 460-461 t ra,,~i tion la ble, 460-461 co mbinational circu il$,523 with co mplex. programmab le logic device (CPLD) .3 15 with D flip-flops. 228 digilal system'\, J4 5 elec tr o nic design au tom at io n (E DA ).6S with Ileld- programmable gat e array (F PG A ) , 3 15 multiplex er s, 390--401 test ing th e ones co unter,400-401 one-hot de sign (one flip-flop pe r state ). .380-382 " it h programmable array logic (PA L ). 309.311 race ·fr ee. 40 1-403 so ftware ra ce conditions, 403 register tr ansfe r exa mple. 352-361 algo rit hmic-based be havioral description, 362 be ha vio ral descriptions, 361 control logic, J60-361 co ntroller and datapath hardwar e de sign, 357-358 datapalh unit . 352 HOL de scription of. 361- 370 reg iste r trensfer represe ntatio n. 351!! RTL descriptio n, 361-365 seq ue nce of operalioll'\, 356 state tal:>le, 358-360 S!Tuctu rai d<:scription. 361. J6t>-370 syste m chan . 353-355 t~ti ng the design descript ion. ",..J«\ timi ng sequence. 355-3S6 at regi sler transfer level ( RTL }. I6I . 334--114 syn<:hro no us seqeenuellogicJet top-down. 16 1 De sign entry. 107 De sign proce dure. synchro nous seq uentia l log ic. 225-234 Di gita l age , 1 D igital computer.;. 1- 3 general · pul"Jl'O'oC,2 Di gila l integ rate d circu its, 471-5] 0 bipol ar tr ansist o rs: base-emitter graph ical characterist ic,479 cha racte rist ics o f.477-481 colle cto r and ease curresus, .HI!! de cu rre nt ga in. 479 gra phica l coltecto r-e miuer charaC1eristics.. 479 pull ed down output.479 pull ed o ut o utput. 479 saturation regio n. 479 type s of, 477 CMOS transmi'<'< io n gate cir cuits, 501-.504 bas ic circuit of. !>01 bilateral s" i lch. 501-502 co nnection to in vert er . 501-50.2 udusive-oR gate. co nstruction of. 502- 503 gated 0 latc h. eonstrucno n of, 503-504 master -slave 0 flip-flop. co nstructio n of, 504--505 multiplexer co nstructio n. 503 complemen ta ry MOS (C MO S) circuits, 4Q8...501 cba raC1emt~ of. 500-SOI C MOS digital lo pe family, SOl CMOS tra nsmis'<ion ga te c ircuits, SOI- .504 e xamptes o f, 4~5OO fal:>tic atio n pr OCC'S'\, SOl gra phic sym bols, 500 in\"ene r.49l!l two-inpu t :-': O R gate. 5/X1 diodc-s,479--4S0 D TL digital logi c fam ily: an alp is of,4tl 2-4S3 fan-out. -llt1 Index NAND gate,4S2 po ..-e r dissipation of 3 DT L gate , 483 emine r-coupled logic (ECL).493-495 basic circuit. 493 defined, 493 exte rnal wired connectio n of two O R outputs,.495 graphic s)'mbo l, 495 inte rnal temperature - and vo ltageco mpe nsated bias circuit. 493 internal wired connection of two O R outputs, 495 pro pagation dela y.494-495 metal-oxide semicond uctor ( MOS). 495-498 ad vantage of, 497 basic structure of,495 channel , 495 de ple tion mode . 496 diffused ch.anne\,496 drain, 495 en hllJlcem"nt mode,4% gate, 495 graphic symbo ls, 4% rr-chann e! MOS, 4%-497 p -channet MO S, 4%-497 sou rc". 495-496 type s ol496 RTL digita l logic family : analysis of, 481 ren-occaat-asz NO R gate, 481 s..itch-level model ing, 505-SOIl tra nsmission gate, 50l)..507 transis to r-trans istor logie, 484-4 <13 advanced low-powe r Schot t ky'Tf'L gate .485 characteristics (tabl e), 484 rer r-rt. family,485 high-s!X'ed TIL gat e. 484--48.5 low-po wer Seho llky TIL. 485 low-po ...' erTIl.. gate, 484 open-collector output gatc .4S5-48!l original , 484 propagation delay. 484 Seho n kyTTL gate. 4&4-485,489-491 standard. 484 thr ee-s ta te gate,49 1-493 to tem-pole output, 4ll8-4ll9 Digital logic circui ts, 27- 28 D igit al logic gates, 57-62 exe lusive- O R gate , 59 exte nsion to multiple input s, 59-61 integrated circuits. 63-<l5 co mpu ter-aided de sign,64--<l5 digital logic families, 63-64 levels of integration. 63 laboratory experime nt. 519--520 NAND circuit,5 20 propagation del ay. 5 19-520 truth tables, 519 universal NAI\ D ga te, 520 wavefonns. 519 NAN D functio n, 59 positive and negative logic, 61 Digital logic traine rs, 511-512 D igital sY'ltemr..I- 3 defin ed . 2, 334 logic design of. 345 relanonship between con tro l logic and data-processing operations in, 345-346 Digital versatile disk (DV D}, 2 Diminished radi x, 10 Diminished radix com plement, 10 Diod cs, 479-480 symbol and cha racteristic.480 Di rect (ded icated) inte rcon nect line s. 317 Di re ct input s. flip-flops. 194-195 Dire ct reset input, flip-flops. 194 D istributed R A M, 317 Distri buti ve law, 37 Di vide-by-N cou nter, 2b5 D on't -care eo nditions,ll6-88 DRAM. See D ynamic RAM (D RA M) DTL digital logic fami ly: ana lysis of, 482-483 fan-out ,4113 NAN D ga te. 482 power dissipa tion of a DTL gat e, 483 DTL (diode-transistor logic), 471 Du ality,4 1 Du al-trace oscilloscope 512 D ynamic haz ard . 453 Dyn am ic memory. refreshing. 291 D ynamic RAM (D R A M) , 291 address cod ing of, 295 E EC L (e mitter-coupled logic). 471 Ed ge-sen sitive cyclic be havior, 344 Edg e-triggered D flip-flop, 199- 191, 531 graphic symbol for, 191 ho ld time , 191 master, 189-190 setup time. 191 slave, 189-190 with three SR latches, 190-191 wtth two D latches and an invert er , 189-190 601 E lectrically erasable PROM (EE PRO MJE l p RO Mj ,J04 Electronic design automation (E DA) .M E mitter-co upled logic (EeL), 493-495 bas ic circu it, 493 de fined. 493 exte rnal wired connection o f two OR output s, 495 gra phic symbol. 495 internaltemperature- and voltage cc rnpensated bias cil'l:uit. 493 int ern al wired connection of two O R outp ul'l.495 propaga tion de lay, 4<14-495 Enable inpu t. 281l Encoders, 150-152 oc tal-to- binary, t ruth table for, 15U priorit y, 151- 152 endmod ule (key word). 109 Erasable PROM (EPROM }. J04 Error det ecti on sche me. parity bit as, 296 Error detection /correction. 2%-299 Hamming code, 296-298,299 single-e rror co nect ion , double-o:rror detection , 298--299 Error-correcti ng code, 2% Error-de tecting code, 25 Esse ntial hazards, 456-457 E ven t co ntro l operator, 2Ug Excess-J cod e, 21-22 Exci tation equations, flip-flo ps, 200 E xcitat ion tab le. 229 E xclusive_NOR funcl ion (XNO R) , 57 Exclusive-O R gatc , 59 Exclusive-O R symbol (el), 55 Exclusive-O R (X O R) function, 57, 101-102,104 F Fan-in, 64 Fan-out, 64, 473-474 Fast TIL family,485 Fault stm ureuon.tos Feedback shift register,5 37 Feedb ack -free con tinuous assignmen t, 403 Field. 37-38 Fie ld-effect transistor (FE T) ,473, 495 Field -pro gramm able gate array (FPGA) , 65,284,3 11,31 5,343 design with, 315 logic block, 315 Xilin xFPGAs, 3 16 Xilinx Spartan II FPGAs, 323-327 Xillnx Spa rta n XL FPG As,322-323 Xilinx Virtex FPG As, 327- 329 602 Ind ex Fie jd-prog remma ble logic sequencer (FPLS).313 Finit e st ate mac hines. Mealy and Moo re mod els of. 206-207 Firs t-in. first-out regis ter files (FIFOs) , 320-321 Five-variable map. 8 1-83 H ash memory devices. 304 A ip.f1ops.I R3- IIl4, IRS-11l5, 242 cha racteristic eq uation s. 194 char acteristic tahles. 193-1 94 co nstruct io n of. I AA-11!9 defined , IS3 direct inputs. 194- 195 d)'oa mic indicator, 191 edge- tn gge red D flip-f1op. IR9-19 1 inpu t eq uatio n... 199-200 l K f1ip·f1ops, l 92 lahm at ory ex pe rime nt. 5JO.-532 o lateh, 53O edge-trigge red f1i p-f1op. 53 1 ic flip-flops. 531-532 master-sl ave f1i p-f1op, 5JO 5H. latch, 530 ('peratiun of, 189 operations performed with , 192 as re gisters, 335 an d signal transition, 189 symhuls, 5&l--570 rnip-n ops, l 92 t iming of th e respo nse of. 19l fl ow tab1e, 4200-422 defined. 420 u amplesof. 420 unwi ning th e logic diagram from . 422 primitive, 421 Flo" chans, 346 for 1001", 340-341 (on'.'er loop, 340-341 Fou r·bit data_stor age register . 24-1 gour.ro-one-ttee multiple x... n., 153 Four-vari able map, 76-S0 prime implicl nlS,79-RO FPG A ( fid d·prOlUammable ga te array), 284 Full add er, 130, 131-133, 527 Functi on block s, 3 15 G G at e arr ay, 315 Ga te instance. 110 Ga te instantiation. 110 Ga le- level minimiu t ion . 70-121 A!' D-OR-INVE RT (unction . 96 im ple mentation, 97-99 defined. 70 don't -care cond itions,ll6-ll8 exclusive-O R (XO R ) function . 101-1 02 five-v aria ble map, 81-&3 four-vari able map, 76-llO prime implicants, 79-80 gate delays. 110-1 13 hard war e description language ( H D L). 106 - 116 Kam au gh map (K-map). 70-71 map method . 70-7 1 mu ltile vel NA ND circuits. 92-93 l\AN D gate, 89--90 nondege oe ra te fonDS, '17 l\ O R gate, 93-96 od d funetion. I02- I04 O R- A ND- INV E RT func tion , 96 impleme nta tion. 98-100 pa rity checker, 104-106 parity generation. 104-106 prod uct-of -sums simplification. 83-S6 three-variable map . n -76 two-leve l imp lementat ion, 90-92 two-variable mill", 71-n G ate-level (stru ct ura l) mod eling.1 5'J Gi~a (G ,, 4 G ray code, 22- 23 H Half adde r,I JO.-13I , 527 Hamming cod e, 296-298 mod ified, m using for dat a words.298 Ha rdware algorithm, 346 H ardwa re descnpuon lan gua ge (H D L). 65, 106-116. 159,315 Boo lean e xpress ions, I 13-1 14 defi ned. 106 de sign e nt ry, 107 as docu mentation language, 107 fault simulation, l OB logic simulalion. l 07 mod ule declaration. 108-1 09 registe r transfer level ( RT L) in, 336-345 lo r re gisler.; and coun ters, 269-276 switch-level modeling. S05-508 transmi!iSion ga te ,S06-S07 test be nch. 107 timing verificat ion, 107-I OB use r-de fined pri mitives. IJ 4-116 Ha rdware signal ge neralon. 1l2 H azard s, 452-457 in co mbinational circuits, 4S2-4$4 de fined , 452 det eclio n 0( 453 d)'llam ic. 453 esse ntial. 456-457 im pleme ntation "'l th SR latch ..... 4~SO rem ed y for eliminatin g. 454 in sequential circuits, 454 static Q-haurd. 453 sta tic l -hazar d. 453 Hexadecimal (hase· 16) num ber syo;te m.3-4 Hexadecimal numbers. S-9 H igh impe da nce. 159 High-imped ance Slate , ISO High-speed TTL tlate, 4A4--lS5 H untin gto n. E. V,, 3lI J Ie digua l fogic famili....... 471 basic circu its in, 471 bipo lar ju nct io n transistor I BIT). 473 da ta boo k. 471-472 field-e ffect rranstctor (FET), 473 ~AN D ga l~s. 471-172 J'\O R gates, 471-472 spe cial eh" racteristia.. 473-4n fan-';lul. 473-474 noise ma rgin. 476-477 powe r di!iSipa lion. 474-17S propa gation dela)'. 475-176 Identity ele ment, 37 Implicat ion tllble.~l incomplelely speci fied functions. fl7 Inform at io n transfer . be twee n reg isters.335 Initial bJock. 2 111 Inpul equa tions.lJip-fiops. 19lJ.-200 Instarll iat ion . l lO. l liO Institut e o f E lecuunics and E lect rica l E n[tineen (I E E E) .65 intCJff data type. 342 Integrate d circu it R A~1 units. !Il l Integrated circu its ( ICs ). 6J-65. 471 eo mpu te r-aided des i[tn, 64-65 digital log ic famiJies. 63-M k vels o f integ:ratio n.63 Imerconneci resources, 317-318 progTllmma ble. 319 Intr a-assi gnment delaJl. 274 In"e ne. 37 J n: Oip-f1ops, l 92 analysisof cjocked seque nt ial circuits "lth . 204-206 Index an at)'5n ..,th. 20I -204 chan a emlic table. 193 .Johmoa cow n cn.. 268-269 .hmctioa field-effect traDsistor (J FET), 49S K Kama ugh map (K-map), 70-71,)43 Keyword!\, 1 ~ 1 09 Kilo (k ),4 com.b1national circuits (experime nt 4), 522-S2-I d«oder and lrulb table bIod dia gram . S13-524 decoder imple menta tion , S2.J-S24 design eu mple, S2J majo ril}' 10gic. S2J par iI}'l ene ralot. 523 counters (ex periment IO),53l-S3S binary co unte r with parallel load. S34-535 L Laboratory e xperime nts, 511- 55t1 adde n and subtneton (uperime nt 7), 527 adder--l.ubiraaor (fouI·bil), 528-529 full adder, 527 h.tf adder, 527 magniu»de comparator. 529-5JO parallel adder, S28 . ynchroDous sequen tial ciraailS (n perimenl 18),553 binary.nd decimal numben (nperime nt l).516 BCD counl , S17- 51t1 binary «I unl.516-517 cou nls-5IB oscilloscope display. 517 OU tput pan ern. S17- 5IlI binary mu ltiplier (e xpe n mem 17). 549-55 3 block diagram , 549-SSO cbed ing. S52-553 control of regiMen. SSO-S52 d.ll.Ipa th de~gn. S52 dnip of COIluoi cimnl.SS2 multiplication eu mplo:. S52 Bookan function simphflClltion (n perilnenl 3), S2l)...S22 Boolean hmctiom in sum-ofminterms form. S22 complement. S22 l ale ICt, S21 logic diagram, S21-S22 clock-pulse genera tor (experime nl IS). S45-547 circuit operation, 545-S46 clock·pu lloe gene t"or ope ra tion. ""-,,, IC tinler,545 code eceve rters (nperimCDt 5), 524-S26 Gray code to equivalenl bin ary.524 nine" compicmeDter, 52S le"t'n..egme Dt display. 525- 526 decimal counter , S34 rippl e counter, SJ4 s)1lChrOnOlD counte r, SJ4 digi tal lOJic , ates (n pe rime nl 2) . S I9-S20 NAI"D c:irwit , S20 propaption de lay, SI9-S2O truth 1lNes.519 univenoal NASD late, 520 .....dorms,SI9 d.igital JoP: tr.ine", SII- SI2 dual -trace O5oCilIosoope, 512 Dip-Oops (n pe rime nt 8),SJO..-S32 D latch.SJO edge-trigge red flip-llap , S31 IC flip-flops, 531-S3 2 master- slave nip -nop, 5JO SR Ietcb. 530 gale l Cs needed for. SI2 gra phic Jym bo ls, SIS IC rvpe 7493 ripple cou nle r, 512 operl tion of, S12-S15 integrated circu its requi red , SI S lamp handball (experiment 15), 541- 545 cirt'\lil I nalysis. S44 oountin,the num ber 01 loan. S44 IC type 74 194. 5042 lamp Pinll-Pongtl<,545 logic d.ia,lr.m. 542-54-1 plll.yin, lhe pme, S44 logic brudboa rd 5uillble for pe rfonn ing.5 1l medium- scale in tegration (M5 1) circuits. 512 mem ory uni t (expenm enr 14), 539-S 4 1 IC RAM . S39-54O m emo l'}' expa nsion , 541 RO M simulat or. 541 tes tinJ lhe RAM. ~S4 1 lIlultipl exer design (e~perimenI 6), Su.-S27 specitic:alionl, 527 Jl<Irallel adder . nd '1XUmlllator (expe n menI 16), 547_549 603 block diagram . 547 C*ITY dmlil. S"8 dleckinllhe circui t, S48 circui t operation , 549 con tro l o f regist er, 547 detailed d.ilgram of circuit.S4ll sequen lia l circu its (ex pe rime nt 9). S32-533 cou nter design, 533 sta te diagram , 533 up-<lnwn counte r with enable, 533 serial addition (experimentlz] , 5Jl1.-539 serial adde r. SJ9 se rial add er-lu bllaetor , S39 tcstinlthe adder, SJ9 shift regis ten (n peri menI 1l ). 535- 538 bidiretlional shih regisler . S37 bidireclioftll ,h,h regis ter with parallelload. 537-5J8 feedbKk shi ft regis te r. 537 IC shih registe r, 53S-536 rinl co unte r, S37 small-loCBle integrlt ion (551) cimJitl, SI 2 Verilog HOI simulatio n experi me ntli and ra pid prorotyping with FPGA!\, S53 el pe rime nl I. S54 esperiment 2, 5S4-S55 experime nt 4, 5S5-556 experiment S, S56 experime nt 7, 556 experime nt So S56 experime nt 9,5S7 eapenment IO, SS7 e.perimen! 11.557 experimenl1J, 5S7- S58 expe rimen r H . 558 expe rime nl 16.558 expe rime nt 17, SS8 Lamp ha ndba ll Oaborltoty expe rime nt ), S41 - 545 circuit analysil, 544 count in. th e num be r of losses. 544 IC type 74194. 542 Lamp Ping-Pong" ' , 545 logic diagr am , 542- 544 playing the lame, S44 Lar,e-5Cl.1eintegration (LSI) c1ev>ce..63 La tches, 1&4-188 D Iltch (transparent lllch),I87_I88 rew tlil.llo:, HI5 W:nsi:tivity of. 184 set sta le. l lI$ 60 4 Inde x Lllche~ (COIl!.) SN lalCh.1K}.-1lr1 triUier.18l1 Latch -free dnipt..aoJ.....I(l4 Lilerab.,46 load opo:ration. n:p1cn. 24-&. 334 ~ic ri n:u iu., S« Di gital s~ ,"elm ~ic diag ra m: oN3ining ou tput Book ao fu1lC'1I01l~ from , 12" of lhn:c-hit biMry rounlCT.2J.I l ogic gales, 30-31 l ogic ope ra lion" digila l s~"'Stc m\, 336 l o:'l!ic opcratOA,Ve rilog 2001 H O L 339 Logic " pe ra lon. lo r binary "''(lrds., 338 Lo gic simulation. 107 l<'lZ ic simulalo n.l 22 Logic synthesis, 343-345 advantages lO designer. 3.&5 M" lllll stateme nt. 3-13 1<>"1,, 3.&3 u '!Z iCllll,pe ralon. Vcri log 2001 H O L. 339 L.II" p state m e nts, 3.&0-3.& I Low-power Schou ky TTL .&85 l.I'''' ·p ....e r TfL gatc."ll" " ~ llIllnct ic d ",t . 290--291 :Io1.. ~ itude com para tor , 1"3-1"5 . 529-530 fou r-bit. 145 :lo b,.\( J'l'OJTammin~ 303 M..""er-.!avc f1ip-flop. 530 U n imlll (Oll1pali~ .s..u--.u5 Me.. l~ FSM ( Mul~' mac hinc ),206 Mcal~' model. 2Ofa....207 ." (alv _Zero _lHl« tor. 215-216 Med ium·K111e inkllra t)on (MSI) cin:u it,5 12 :Io k dium'K111e inl ev at ioo (:IoISI) devices. 63 :Io le ga l:lo!) . " .\ l ml. 2SH '-k m" l)': ;tceess time, 2119 addr<;ss.2116 archi tect ure of. 2RS com munication bet .....ee n the cn\i ro nme nl and, 285 ~c1e t ime, 289 inh:e ra lcd cin:ui l RAM unns, 291 propamm ahle JoPc de~'ioe (PLD ). 28.& ta nd<.",,·..xeu ( RAM) . 28.& .....quenlial·accru. 290 t~ pesof.290-291 :Io k mo ryttll.29I- 292 :>'k lOtlf)" ch ip. oontrol inpulS k>, :!88 :Io k mol)' C)'cle liming .. avd onm. 2S9- :NO Me mory dccodin~ 291- 295 aJ<Jro.lomuitipkUng. eoi nciok nl dcrodiog. 293-2901 inle rnal oons lructioll. 291- 292 :Iole mory depth.:!88 :Iol emory dncriptioo in HD L... 2!lll-2lI9 Me mory enabk.2S1.2lI9 M",mory '>"'Siem. mode of ~ of. :NO Me mory limi ng. 289 :>.le mory unillo, 28+-287 t>lock di ap am.2llS-2ll6 cap;OCity 0 (, W defined .2tU--2S5 laboratol) ' espenmem, 539-541 rc RAM . 539-5.&0 mernury e apa nsion . 541 RO M simulator.Sa l le. ling the RA M. 540-S41 Ilpcra lio n of. 288 rd iabilily 0(, 296 m-m ~'lllalile.29 1 "onh. 2S5. 2S7 m,,,, ,,'Ord. 2llll :Iole fge r diagr arn. 44-& :Iole lal-oxidc 'lCmiooood UCIOl" (MOS l; a J\'anUi ge of. "((1 l'>a-\IIC MTVCI ure of. 495 cha nnd. " 95 dc:ple lion eooe, 496 diffused channel, "96 <J rai n. 495 e nha nce me nt mode. "96 lIale. 495 gra phic , >mbols. "96 n<hannel '-fO S. " 96-4((1 p< hanoel :Iof O S. 496-4((1 source, "9S-496 l~ pc,o(, 496 :Iofelal-oxidc -semicOlldUC1or f>ckl-cffed Iransistor ( MO SFET). 473 :Ioflld ule. 207 rnudule _ en.cl muclule ( keyw or d pair). 109 M,,<J u1l:d.:<:laralion, HIS_I IO M<>tlulei., 108-110.217 :Ioh >tlulo-N oounlet. 265 :Iol " or e FS M (Moore machine ). 206 :Io1<'OIl: model. 2Q6-.207 :IoIO S. S« Melll-olide 'lCmi.ooDdUl'tor t!-IO S) :Iol ullile\ 'el NA:-;D circui u.,92-93 MUltlple· row I1k'lbod. " 50-452 Mull iple Kn, 152-158. 313 Book~ functioa implel1k'n ta lion. 15"-156 data Kkctor.l5.I de fined. IS2 dnip eumple. 3QJ.-.IOO lesting tbe 0Il0C$ COWl lC!. -11110-401 ~p .. -jth. 3'Jt)-I(}1 lamatory expcriJD(:nl. S1O-S27 fou r·lo-ooc-linc.IS3 gT.lphics s}"m bols for.567 imple menling a BooIc an ru.....,1011 . ilh. l 56 imple menling a fou r·inpul fwlCtlOQ . i lh.157 input condition s, 393 qu adru ple lWO-I()-()ne-line. 155 three-state gates, 156-ISg l"' O-I()-()oe-line. 152- IS3. 1S3 , :"lA :'IOD ga tc . 89-90 II·bil bina ry ~. 1 7- 18 S egatKm ( -) opera lllf . 3311 1leIftCt' (kC}.. ord ), 209 Scu., I64 Noi~. defined. 476 S oiie rnngin.6-I. "7t>-4n Son~assipmo:nI:s. »>-2 Io. 337-33!l S oncrilical race, 4!2 Sondc~ neral e forms..((1 Non\'OU lik lDClDOfl.291 :-OO R gale. 93-96 SOT operalioD. 29 np n I>-re.bipolar U~.alor. " 77-478 silicon tranSisl:or p.aramc lCn. " 79 n -IOom-1iMdecodcn.l -lob :'IOurnboer-base OOIl:~ en.ions. 5-7 o Octal number s~"'Sl em. 4 Octal numbe n. roovenioo 10 hexadecimal. 9 Oc tal-to-binary e ncode r.truth lah le tor. lSO Odd funct ion. 102-10.& O ne ·hol al&ignment . 22~m One-hot dcsign. 3S0-.\82 Open Verilog In lellla t)onal (0\'1). l Oll Open-collector outpul gale. ~ ASD-OR-Il\"\."ERT funcI)on . 487 appbeal~ .w. fonning a oommoo bus !'ol A,...O gale.485 .. -jI Td-A.... O•.&lO 1inc..&lO~ Index Opera to r precedence . 43-44 O R gate.conventionaland aTTay logic diagra ms for, 28S O R operation, 29 Ou tput equations, nip -flops, 200 Overflow, 138- 139 p PAL, Stt Progr ammable arra y logic ( PA L ) Parallel adder. SUI laboralo ry expenmem. 547-54 9 block dilll(ram, 547 carry circu it, 548 cbeck ing Ihe circ uil,548 drcuit ope ration, 549 co nt rol of re gisler,54? detailed diagram of circuit. S4S Paralle l load: bidirectional shift register ...- ah, 537-538 bin ary cou nters with, S34-535 Clta, input, 262- 264 CL K inp ut , 264 C OUnf input , 264 LtxJd input .264 regislen with, 244-245 Pa rallel mult iplier, behavioral description 0(,3&1-390 Parallel-load con trol , diift reg iMen, 2St p....mt'ln [ke yword). 213 Parily en. 2S lIS error detection sche me, 296 Parit y checke r, J04- I06 Pari ty ge ncration. I04-106 Parily ge ne rator. co mbinational circui ts, 52J PIP-based interconnec tion. a rcbire ctu re 0( 3 19-320 PLA ,Sn Progr amm able logic aTTay ( PLA ) PLO, Set Pro grammable logic device ( PLO ) pnp type. bipolar transislor,4 n -t78 ~ge (keyword). 209 Positive-edge -lrigge red D flip-flop. 194-t95 Power dissipa lion.64 , 474-475 Powers o f two (la ble), 5 Predefined primitives, 110 Preset inpu ts. fiip-flops,I94-195 Prim e implicanls, 79-80 Primit ive flow table, 421, 4$7-458 Primitive gale s. 110 Pri mitives, 110 Prior ity encoders, 151-152 fou r-input,IS2 maps for, 15 1 Iruth table for, 151 Proce dural assignments, 337 Prod uct of sum'>, 54 exp ression.9S simplifica tion, 83-86 Progr amma ble array logic ( PA L). 2M-28S. 309-31 I com me rcial, 309 deli ned , 309 designing wilb , 3W , 311 fuse map for , 311 prog rammi ng ta ble, 309-311 Programmable logic array ( PLA ), 284. sos-ooe de fined , lOS designing a digila l syslem with, 307 fuse map of, 306, 308 implementing a co mbinationa l circuit with. 307-308 Internall ogic 0(305 progr amm ing tabl e: ge nera tio n 0 (, 3011 sections o f. 306 size of, 307 Program mable logic device (PLO), 65. 284-285 , 30 design with . 3l S Program mable read-only me mo!)· (PRO M), 303-304 Programming, 284-UlS Propagation delay,64. 475-476 digital logic gales (laboratory experi me nt), 519-520 emiller-coupled logic (Ee L). 494-495 Ie digi tal logic families, 475-476 lransisto r-lramiSiOr logic (lTL), 48.4 Q Quadruple two-to-one- line mu ltiplexe n, I S5 Qualifying symbo ls, 562-S64 Q ualitat i\'e analys.i'>, 480 Q uan t italive a nalysis, 480 • R ace co ndit ions, 422....24 critical race. 422-423 avoidi ng. 447 examples o f. 423 cycles, 423-424 no ncri tica l race,422 60S Race -free design, '*01-403 softwa re race co nditions, 40J Race-free stal e /Issign mcn t, 446-452 fou r-row flow-table example, 449-t~ multiple-row mct hod .450-4 52 t hrce _ro w flow -table exa mple ,447-449 Ra di ~ , 3-4 , 10-11 R adix co mplement, lO- 11 R A M. Set Rando m-access memory ( RA M) Ra ndo m-access me mory (RA M), 284-291 co mme rcia l, v.'{)rd c,apaci ty 0(292 memory description in HD L, 288-289 memo ry, type s of, 21lO-291 symbol for. 574 liming ....aveforms.289-290 write lind lead ope ra tions,287-21lll Read cycle. 289 Read input. U S Read ope ratio n, 2S4 Read-only memory ( RO M). 284. 299-305 block diagram, 2!19-30n combina tional circui t imple me nla lion, 302 com bina tio nal programmable logic device (PLO ), 304-30S <Je fined,299 elect rically erasable P RO M ( E E PROM/E2 PR O M), 304 erasable PR O M ( E PRO :'.I},304 flash memories,304 intemat binary storage of. 300 internal operat ion of. 302 mas k progr ammin g. 303 num be r o f words in, 299 pro grammable read-only memo ry (PRO M), 300-304 progra mming. 300-301 tru th tab le.lOt lype s of. 300-304 RrodWrirt inp ut. 288 Read/wri te signals, 289 Rect angular-shape symbols,559-S61 Reducti on opera tors, 3311 ft'l varia ble, 342 Regisler o per alions, 334 Re gi$ler symbo l'>, 570-572 R egister transfe r, 26-28 R egister trand e r le vel ( RT L),2 algorilbmic sta te mach ines (A SMs), 345-352 desig n eumple, 3S2- 361 bina ry multiplier: control slal e diagram for , 376 H D L de scription of. 382- 38<;1 606 Index R egister tr ansfer level ( Rn) (COnt.) cont inuous assignme nts, 337 COlltrol logie, 376-382 d e~i gn at, 334-414 digita l syste m re prese nte d at, 334 in HDL, 336-345 H D L operators,338-340 logic synt hesis. 343-345 loo p st atements, 340-341 latch-free design. 403-404 multiplexers. design with , 390-40 l notat ion, 334-335 proce dura l assign men ts. 337-338 race-free des ign, 401-403 seq uent ial bina ry m ultiplier , 31o-376 Register transfer operations, 334. 336 Registers. 26, 242-253, 334, Su also Register transfer le vel (RT L) define d, 242, 335 four-bit da ta-s torage re gister, 244 HDL for. 269-276 ripple couDte r, 274-276 shift register, 269-273 synch ro no us counte r, 273-274 loadi ng. 244 with para llel load . 244-245 shift re gisters. 245-253 defined, 245 serial addition, 248-250 serial inp ut, 246 serial output, 246 seri al tr ansfer, 246-248 simple, 245-246 universal , 250-253 types of, 242-243 updating. 244 R elational operators,Veri log 2001 HD L, 339 "" peat loo p, 340 R eset st ate, latches, 185 R ing co untel'1,267-268, 537 R ipple caunters.lS3-258. 534 RCD,2 56-lS8 hinary,253-256 defined.lS3 ,256 H D L for , 274-276 RO :-'l (read-only memory ), Su Read-only memory (ROM ) RTL digi ta l logic family: analysisof, 481 fall-out, 481-482 NOR gate.48l RTL (res isto r-tra nsist or logic) , 471 S Schematic cap ture. 6S Schematic e ntry. 6S Schottky tra nsistor.defme d,489 Schott ky lTL ga te. 484-485, 489-491 symbol for Scbo nky transistors/d iod es, 490 Scr atchpad mem ories, 321 Se nsitivity list, 208 Sequence de tect or: maps for.ll8 st ate diagram for. ll7 st ate table ror.zzs Sequential binary mu ltiplicr, 37G-376 AS MD chllTt.373-376 registe r confi guration. 3n-373 Seque ntial circuits. 182-184, 415-410 a~ynchronous. l 83 block diagram , 182 hazards in. 454 la bo ratory expe rime nt. 532-533 coun te r design, 533 state diagram . 533 up-down co unte r witb enable,533 synch ro nous. 183 Sequential (or simple) pro gram mable logic device (SPLD). 311.313 Sequential progra mm.able devices, 311-329 complex programmable logic de vice {CPL D ), 31I , 313--315 design w itb.315 configurable logic bloc k (CLB ), 317 distribute d RAM, 317 enh ance men ts, 320-321 fie ld-programmable gate arr ay (FPG A ). 65, 284.311,315 design with , 315 logic block , 315 Xilinx FrOAs, 316 Xilin x Spartan 11 FrOAs, 323-327 Xilinx Spartan XL FPGA s, 322- 323 Xilinx Virtex FPG As. 327-329 interco nnect reso urces. 317-318 ro block {IO B ),320 sequential (or simp le) programmable logic device (SPLD ), 311, 313 Xilinx: bas ic architect ure,3l6-317 FPG A s, 3 16 Sequentia l-access memory, 290 Serial adder, 248. 539 seco nd form of, 250 sta te table for, 2S0 Seri al addit ion, 248-250 laboratory experime nt, 538-539 serial adde r, 539 serial edder-scb n ecror , 539 testing the adde r,539 Ser ial bit stream, 227 Serial input. 246 Serial o utput. 246 Serial transre r. 246-201S Set,36 Set state,lalches.l85 Sbannon, C. E., 38 Shared-row me thoc!.451 Sbift operation. regisle rs. 3 ~ Shift ope ra nons.digital syste m...336 Shift operators,Veri log 2001 HD L. 339 Sbift regist er , H D L for. 269-273 Shift registers. 245-lS3. 321 bidirectional. 251 clear cOnlrol.251 clock in puI. 251 de fined . 245 laboratory experime nt. 535-538 bidirectional sbift register. 531-538 bidir ectional shift register ",iLb pa rallelload. 537- 538 feedhack shift registe r. 537 shift register. 535--536 riDg counter. 537 parallel-load COntrol. 251 serial adclition ,24S--250 serial input. 246 serial OUtput . 246 serial transfer.246-201S sbift -left control lS I shift-right control, 251 simpl e, 245-246 unidir ectional. universal 250-lS3 Sbift -left co ntr ol. sbift registers, :!51 Sbift-rigbt control, shift re~ters. 25 1 Signed binary numbers. 14-1 7 ari thmetic addit ion. 16 ari thme tic subt raction. 17 Signed-eomplemen t syste m_14 Signed-magnitude eccvenncn. tSimple shift regist ers.245--246 Ie zn SimplcCircuir-prop_d~', II I - 1 12 Single-e rror correct ion . do uble-error det ection.29ll-299 Single-pass beh avior. 207 Sma ll-scale integra tion (551) circuits. 512 Small-scale integration (SSI) devices. 63 Software race co ndition... 4.03 Spartan chips. 32G-321 Spartan device fami lics..co mparison cbart.324 Spartan de vices. 317 Spartan II FPG A s. 323--327 device attributes (table),324 Spartan XL FPG As. 322- J 23 architecture of, 323 device attribut es (table) . J2J Index SPLD,St t Sequ entia l (or simple) programmable logic device (SPLD ) SR latch, 185-187 SRAM, See Stati c RAM (SRA M) Stab le circuits,424-425 Stand ard for ms: Boo lean algebra,48-SS defined ,54 exp ression of a Boo lean function e.ss product of sums, 54 sum of products. 54-55 Standard grap hic symbols. S59-S76 comb inational element symbols, 566-568 counte r symbols, 572-57 4 de pendency notation, 564-566 flip-flop symbols, S68-570 qualifying symbols. 562-5 64 RAM symbol, 574 rectangular-sbape symbols. 559-S61 register symbo ls. 570-572 State assignm ent ,22 4-22 5 Sta le di agram. 199, 213-217 compared to a state tabl e, 198 reducing. 223--224 for sequence det ecto r, 227 Stal e equations, 196-19 7 Boolean express ions for , l 97 de fined, l 96-197 Sla te m achin e, defin ed , 346 State reduction, 220-2 23 Sla te table,1 97- 198 bin ary form of. 225 compared to a sta te diagram , 198 andlK flip-flop inpu ts. 231 reducing. 222-223 sections, 198 for sequence de tector, 228 for thr ee-bit binary counte r. 231- 233 Stat e tables. reduction ot. 439--441 Static Q.hazard, 453 Static l- haza rd. 453 Static RAM (SR A M) , 291 Stor age eleme nts. defined , 184 flip-flop s, 188--195 latches. 184-1 88 Slim of pr oducts. S4-55 Switch-level modeling. 505-508 transmissio n gate, 506-507 Switch mat rices, and CLB architecture. 317-3 19 Switchi ng algebra. 38 Synchr onous counte rs, 25S-264, 534 BCD counte r, 260-262 sta te table fo r, 260-262 binary counter , 258-260 four-bit, 259 binary counter wit h par allel load , 262-265 Cft ar input, 262-264 CL K inp ut, 264 Caurlt input, 264 Load input, 264 defin ed. 253 HOL for . 273-274 up-down binary counter, 260 four-bit, 261 Synchron ous RAM (SelectR A M).3 20-32 1 Synchronous seque ntial circuits, 183, 225 Synchronous sequentia l logic, 182- 241 clock ed sequential circuits, analysis of, 195-207 design procedu re, 225- 234 sequential circu its, 182- 184 sta te assignment, 224-225 state re duction , 220-223 stor age element s: defi ned , 184 flip-flops, 18S- 195 latches, 184-188 syntheslzable HOL models of sequential circuits, 207-220 Syndro me, 296 Synth esis. 226 Synth esis tools, 315 Synrhesiza ble H D L mode ls of seq uentia l circuits, 207- 220 be havioral mod eling. 207- 210 clocked sequential circuits, structural descri pt ion of. 217-220 flip-flops and latches, 210-2 13 stale dia gram , l 99 System pr imitives. 114 T Tfli p-flops.l 92 analysis of d ocked sequential circuits with, 204-206 analysis with , 204-206 charact eristic lab le, 193-194 conditions, l 94 r_Simple_Circuil,.prop_ delay, 112 Tape unit, 290 Tera (T), 4 Test access port (TA P) contro ller, 320 Test be nch, 107, 111 Tesl bench mod ule, 218 Thr ee-bit bin ary counter: logic diagra m of, 234 ma ps for , 234 state diagram of, 233 state table for, 231-233 607 Thr ee-st ate buffer gate , graphi c symbo l for, 157 Three -stat e gates, 156-1 58, 491-493 buffer gate, gra phic symbo l of, 491-492 bus. creation of, 493 inverte r , 491-492 output enable delay compare d to output disable delay, 493 OUtput state s,491 Thr ee-to-eigh t-line decoder , 146 trut h ta ble for , 147 Thr ee-variabl e map , 72-76 TIme units, 110 TIme-delay de vices, 183 TIming verification , 107-108 TIming waveforms , 289-290 Top-down design, 161 Total state, 419 Tot em -pole output. 488-489 defin ed,488 wired -logic connection, 489 Transfer funct ion , 57 Transfer opera tions, digitalsystem s, 336 Transi sto rs, 1 Transisto r-transistor logic (TIL): advan ced low-power Schottk y TIL gate, 48S characteris tics (table) . 484 defin ed. 471 fast TIL famil y, 4&5 high-spe ed TIL gale, 484-485 low-power Schottk y TIL, 485 low-power TIL gate. 484 ope n-collector output gate, 485-488 original,48 4 propagation del ay,484 Scho ttky TIL gale, 484--485, 489-491 standard, 484 thre e-stat e gate, 491-493 tote m-pole outp ut. 488-4S9 TIL gale , opera tion of. 471 Transition diagra m.447 Transi tion equation. See Stat e equations Transi tion tabl e, 225, 417-420, Ste Stat e table of asynchronous sequential circu its. 419-420 Transpare nt lat ch, 187- 188 Trigger , lalches, l 88 Truth tables, 29 TIL, See Transistor-transistor logic (TIL) 2421 «ee.n -az TWo-leve l impleme nta tion, 90-92 Two-to -four-lin e decod er , with enable input, 147- 148 Two-to -one-line multiplexers, 152- 153,15 3 608 In dex ,....., T.. o-va lued Boo lel n algebrl. TIIo o-vlrilble IIlIp.71-12 U UD Ps..StT User-defined primill\e!(UDPI) C nidirettionll shI h re!-iu en. 2S1 Uni oenal S~D ,llc.520 U Di\-enal mih rrPien. 250-253 fout-bit. 252 Un known val ue.l~ UMirne d binl ry numb<:n.. H U nstabl e circuits. -124-&25 UnuKd sla in. 224 cou nters .. ilh. 265-26tl Updlt inS I register. 2.... User-defined primilive!-{L:D r,. j. I I....l l b v V«lon. l 60 Ventos HDL, I08.15'U'07. 209. 315 memory descripliotl in. 288 operl ton..l 65.J3S..J.IO s.. -ilcb-Ieoel modd inJ. 5OS-5OM IU~ Slle• .506-SO'1 \ 't T}' Iar,e-ialle ull CJll tioo ( \ U I ) """"....., \ 'H:D L, I<lU I5 Vtn el. Fl'GAs.Jl7- 329 Vola l ile memory unilS.291 " Wl o'd orms..5 19 Weipted codes, 21 .. hilt loop. J.lO-3-12 \\-"ued toeic.96 Wor d le ngth. 28S Word kul>ont.;NO Worlh. 2S5. !87 " '''" Inpu!.. 2li5 Wrile Clp«ltion.:tU X XihlU: basic a.rdliltCtVf'C. 3 1b-JI7 Fl'GAs..316 Spertan II f1"QAL ~13-J27 Spa rtan XL fPGAs. 312-J2J Vi"u fPCiAt. 327-329 X." OR funct ion . 57 XOR function. 57