How Microprocessors Work - Steven Kaminsky

Post on 15-Jan-2016

37 views 0 download

description

Básico Sobre Microprocessadores

Transcript of How Microprocessors Work - Steven Kaminsky

TableofContentsCHAPTERONE

WHYMICROPROCESSORS?

CHAPTERTWO

BINARY

CHAPTERTHREE

VOLTAGEANDCURRENT

CHAPTERFOUR

THEFAUCETANALOGY

CHAPTERFIVE

SWITCHES

CHAPTERSIX

TRANSISTORS

CHAPTERSEVEN

LATCHES

CHAPTEREIGHT

AMICROPROCESSORINACTION

CHAPTERNINE

BINARYNUMBERS

CHAPTERTEN

THEADDRESSBUSANDDECODER

CHAPTERELEVEN

THECONTROLBUS

CHAPTERTWELVE

THESYSTEMCLOCK

CHAPTERTHIRTEEN

CAPACITORS

CHAPTERFOURTEEN

THECRYSTALCLOCK

CHAPTERFIFTEEN

THEFLIP-FLOP

CHAPTERSIXTEEN

COUNTERS

CHAPTERSEVENTEEN

SEQUENCERS

CHAPTEREIGHTEEN

INSTRUCTIONDECODING

CHAPTERNINETEEN

THEBINARYADDER

CHAPTERTWENTY

THESTACKANDSTACKPOINTER

CHAPTERTWENTY-ONE

INTERRUPTS

APPENDIXA

CODE

MachineLanguage(AppendixA-1)

AssemblyLanguage(AppendixA-2)

High-levelLanguages(AppendixA-3)

Small-systemCodevs.ApplicationCode(AppendixA-4)

WriteOnce,RunAnywhere(AppendixA-5)

APPENDIXB

D/ACONVERSION

APPENDIXC

A/DCONVERSION

CHAPTERONEWHYMICROPROCESSORS?

Arguablythemostimportantinventionofthemodernworldisthemicroprocessor.Armclaimstohavesold30billionoftheirmicroprocessors.Microchipsells1billionoftheirmicroprocessorsperyear.Yes,that’s“billion”witha“b.”Whereintheworldareallthesethings?Thenumberstellustheymustbeinmanymoreplacesthanjustourcomputers.

Microprocessorsrunsmartphones,networks,websites,cars,laptops,appliances,factories,etc.Weareoftenunawarethat,attheheartofdevicesweuseeveryday,ahidden,or“embedded,”microprocessorcontrolsthedevice.Itmightbeinatoyorinacoffeemaker.Yourcarmayhave12,or50,or100microprocessors.Forexample,onemaybededicatedtocollectingtheairpressureineachtire.Andyet,eventhoughweuseallthesedevices,wedon’tunderstandhowthey

work.Theyseemlikemagic.That’sbecausewedon’tunderstandhowmicroprocessorswork.Wedon’tunderstanddigitalelectronics.It’stimetostopbeingignorant.Thisbookpurportstolifttheveilofsecrecy,the

cloudsofignorancehidingthiswonderfuldevice.Ihaveeveryconfidencethat,whenyoulearnhowthesemicroprocessorswork,youwillfindthemtobeevenmorewonderfulthanbefore.Whenyoulearnthesecretofhowamagictrickworks,itoftenbecomesmundane,asin,“isthatallthereistoit?”Whenyoulearnhowmicroprocessorswork,Ibelieveyouwillbeevenmoreinaweofthem.Thefirstconfusionweneedtoaddressisthedistinctionbetweentheterms

“microprocessor”and“computer.”Whenwetalkaboutacomputer,weusuallymeanadevicedesignedinsuchawaythatitcandomultipletasksforus.Wecanchangethattaskbysimplygivingthedeviceanewsetofinstructions:anewprogram.Ourearlycomputerswerelargedevices.Theywerebuiltfromvacuumtubes

andfrommanydiscretecomponents.Thesewerebuiltintosub-circuits,andthesub-circuitsintocircuits,andthecircuitsintocircuitboards,andthemanycircuitboardsworkedtogethertofunctionasthecomputerdescribedinthepreviousparagraph.Inthelate1940’stinytransistorswereinvented,asreplacementsforvacuum

tubes.Transistorswerefirstmadeofgermanium,thenlaterofsilicon.Then,engineersthought,whynotcreatemorethanonetransistoronawaferofsilicon?Whynotconnectthetransistorsandothercomponentsonthewaferofsilicon?Around1960,theysucceeded,callingthisdevicean“integratedcircuit,”

becauseanentirefunctioningelectroniccircuitcouldbefabricated,andintegratedintoonesmalldevice.Calleda“chip”or“IC,”anintegratedcircuitwasapieceofsiliconenclosedinplastic,withlegsor“pins”thatconnectedtheinternalcircuitrytotheoutsideworld.Whatyoucouldholdinthecupofyourhandorbalanceonthetipofyourfingerreplacedentirecircuitboardsfullofmanycomponents.

Atthetime,manypeopleknewwhatwascomingnext:puttingthe“brains”ofacomputer,thecentralprocessingunit(CPU),intooneintegratedcircuit.SteveWozniakcouldn’twait.Why,ifhecouldgetoneoftheseCPU’s,hecouldaddsomememoryandinput/outputdevicestoit.Hecouldbuildahomecomputeraroundit,andcallittheAppleComputer.TheycalledthisnewCPUonachipa“microprocessor.”CompanieslikeIntel

andMotorolamadethemicroprocessorsthatbroughtthisdreamtofruition.So,amicroprocessoristhebrains,theessence,theCPU(centralprocessingunit)ofacomputer,madereallysmall.Amicroprocessoristheheart,thecomputingpartofacomputer.Ihaddifficultychoosinganameforthisbook.Wasthisgoingtobeabook

abouthowcomputerswork,orabouthowmicroprocessorswork?Irealizeditshouldbeabouthowmicroprocessorswork,becausecomputersarenowasubsetofallmicroprocessor-baseddevices.Here’swhywehavemoremicroprocessorsthancomputers.Historically,

computerscamefirst.Computers—digitalelectronicmultipurposedevicesthatcanrundifferentprograms—werelargedevices.Next,engineersputtheprocessingpartofthecomputerintoasmallintegratedcircuit,andcalleditthemicroprocessor.Wenowcouldhaveapersonal,homecomputer.Atthispointinhistory—andfromhereon—weallknowwhatwemeanwhenwesaytheword,computer.Butnext,somethingstrangehappened.Engineersstartedusing—andstilluse

—thissamemicroprocessorforotherdesignsthatdonotfitourdefinitionofacomputer.Theyuseitindesignsthatdon’tevenrequireamicroprocessor:thatcouldbedesignedusingsolelyanalogordigitalelectronicscomponentsandtechniques.Thefuelinjectionsystemsofcarsexistedforyearsusingmechanicaltiming,beforeanyoneinventedmicroprocessors.Now,fuelinjectionsystemsaremicroprocessor-based.Newgenerationsofmicroprocessorsweredesignedthatweremorethanjust

theCPUpartofthecomputer.Theyincludedthememoryandinput/outputpartsofacomputer,inadditiontotheCPU.Now,thesenewermicroprocessorsweremorelikea“computeronachip”thana“CPUonachip.”Sometimes,wecallthese“computersonachip”microcontrollers,whilecalling“CPU’sonachip”microprocessors.Ifyoutoldanengineerfromthe1950’sthatonedayaclockoratoasteroven

designwouldbeimplementedusinga“computeronachip,”theywouldhavelaughed.Tothem,itwouldhavebeenlikeusingasledgehammertopoundatackinthewall.So,thiscreatessomeconfusioninterminology.Wehavegottentothepoint

whereengineersareusinga“computer”—amicrocontroller—tocreatethingsthatarenotcomputers!Weknowwhatacomputeris,andweknowwhataclockis,andweknowthataclockisnotacomputer.Andyet,wefindoutthat,today,aclockhasa“computer”init.Wefindthateverydaythingsthatarenotcomputershavelittlecomputers-likedevices—microcontrollers—controllingthem.

Inshort,computersbecamemicroprocessors,thenmicroprocessorsbecame—almosteverything.Ithinkthebestwaytoavoidconfusionistodefineacomputerasadigitalelectronicmultipurposedevicethatcanrundifferentprograms.Single-purposedevicesrunningoneprogramwecancallmicroprocessor-basedsystems.Remember,though,thatacomputer,too,isamicroprocessor-basedsystem.Itjustrunsmoreprograms,moretasks.Doyouseenowwhyitissoimportanttounderstandmicroprocessors?Theyareeverywhere.Whydidengineersstartusingmicroprocessorstodesignthingsthataren’t

computers?Itjustbecameeasier.Ifyouspentyearslearningtoplaytheguitarwell,doyoureallywanttolearntoplaythepianoinordertoplayyoursong?Ifyouknowhowtodesignwithmicroprocessorswell,doyoureallywanttodesignyournextprojectwithauniqueanalogordigitaldesign?Aunique,non-microprocessordesignmightbemoreefficient,andthemicroprocessormightbeoverkill.Still,youknowhowtodesignwiththemicroprocessorquickly,itflexiblyadaptstoalmostanyproject,itefficientlyreplacesalotofcircuitrywithsoftware,componentsareavailableandcompatiblewitheachother,andthecostandpowerconsumptionhasfallensomuchthatoverkillisnolongeranissue.Thisbookisaimedfortheaverage,non-technical,person.However,Ihave

foundthatevencomputerprogrammersdonotreallyknowhowthedevicestheywritetheirprogramsfor,reallywork.Infact,theydon’tneedtoknow.Youmayhaveheardoftheterm,“higherlevellanguages,”inreferencetoprogramminglanguageslikeC++andJava.Thistermactuallymeansthatthelanguageisastepabovemachine’slanguage,sothatpeoplecanprogramthemachinewithouthavingtounderstandthemachine.Themicroprocessoristhemachine.So,thisbookisfortheprogrammer,too.And,it’sfortheITpeople,andthe

networkingpeople.Ihavefoundthatthepeoplewiththedeepestunderstandingofprogramming,IT,andnetworkingarepeoplewhocomefromabackgroundofelectronics.Theyseethebigpicture,fromthegroundup.Themicroprocessoranddigitalelectronicsaretheground,thefoundation.

CHAPTERTWOBINARY

Lookattheword,“microprocessor.”“Micro,”ofcourse,meanssmall,really

small,asinmicroscopic.Whatisbeing“processed,”though?Theansweris:information,asindataornumbers.Theinformationisrepresentedinbinaryformat.Iamsureyouhaveheardthateverythinginmodern,digitalcomputersisin

binary:onesandzeroes.Youshouldwonder,whataretheseonesandzeroes?Aretheyphysicalthings?Whyonesandzeroes?Let’sforgetaboutmicroprocessorsforamoment.“Binary”meansasystemof

twostates.Atwo-statesystemisabsolutelythesimplestinformationsystemimaginable.Aone-statesystemcontainsnoinformation;itisundifferentiated.Atwo-statesystemseems,atfirstglance,barelybetterthanaone-state

system.But,lookingdeeper,weseethevarietyofinformationwecanrepresentorencodeinatwostatesystem.Thetwostatescanstandfor:oneorzero,trueorfalse,highorlow,oddoreven,goorstop,leftorright,lightordark,blackorwhite,goodorevil,yinoryang,andsoon.Wecancontrolasimplemachinelikeamotorwithabinary,two-statesystem:motoronormotoroff.Lookingevendeeper,thesecondthingweseeisthatthissystemgrows

enormouslyinitscapabilitywhenweexpandit.Intheaboveparagraph,Idescribedasimpletwo-statesystemofoneitem.Wecallthisoneitema“bit.”Onebitcanbeintwostates.Definingtheinformationintermsofblackandwhite,aonebitsystemcanholdtwostateconditions:blackorwhite.However,ifweexpandthesystembygroupingtwoofthesebitstogether,we

doubletheamountofinformationoursystemholds.Atwo-bitsystemholdsfourstateconditions:black-black,orblack-white,orwhite-black,orwhite-white.Ifweexpandagainbygroupingthreeofthesebitstogether,wequadruplethe

amountofinformationouronebitsystemholds.Athree-bitsystemholdseightstateconditions:black-black-black,orblack-black-white,orblack-white-black,orblack-white-white,orwhite-black-black,orwhite-black-white,orwhite-white-black,orwhite-white-white.Ifyouwanttocalculatethenumberofuniquepiecesofinformationthatabinary

systemisabletorepresent,countthenumberofbitsyouhavegroupedtogether,thentake2tothatpower.Forexample,youprobablyhaveheardoftheterm,“byte.”Abyteisagroupingtogetherofeightbinarybits.Ifyoutake2tothe8thpower,writtenas28,youget2x2x2x2x2x2x2x2whichequals256.Younowhaveasystemthatcanrepresent256uniqueinformationalstates.Anyoneofthesestatesisdifferentfromtheother255states.Black-black-black-black-black-black-black-blackisdifferentfromblack-white-black-white-black-white-black-white.Thegrowthinpowerovertheyearsofpersonalcomputersisreflectedinthe

constantgrowthofthenumberofbitsgroupedtogether.TheearliestIntel

microprocessorswere4-bitsystems,then8-bit,then16-bit,then32-bit,then64-bit.Onegroupof64bitscanuniquelyrepresent264or18,446,744,073,709,551,616informationalstates.Oneofthesestatesmightlooklike:black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black-black.So,abinarysystemstartsoutbeingridiculouslysimple:a1-bitsystemcapable

ofonly2states.Yet,ifweclumptogetherjust64ofthesebits,wenowhavearidiculouslypowerfulgroupcapableof18,446,744,073,709,551,616differentstates!Onecanimplementaone-bit,two-statebinarysysteminmanyways.For

example,acoinisaone-bit,two-statebinarysystem.Thetwostatesare:headsortails.Anotherisalight:onoroff.Amatchislitornotlit.Atrue-falsequestionisbinary.Apianokeyispressedornot.Thequestionbecomes,whatisthebestwaytoimplementaone-bit,two-state

binarysystem?Inthehistoryofcomputers,severalimplementationshavebeenused.Inearlymainframecomputers,individualmemorybitswereringmagnets.Eachonecouldbemagnetizedeitherclockwiseorcounter-clockwise(binary)byforcingcurrentforwardsorbackwardsthroughawirecoiledaroundthering.Harddrivesarealsomagneticstoragemedia.Theirdisksaremadeof

ferromagneticmaterial.Apredefinedspotonadiskactsasbinarybit.Thespotismagnetizedintheforward(northpole-to-south)orreverse(southpole-to-north)directionbyanelectromagnetmovedbyamotor.Thissamespotcanbereadbyawirecoilasthespotmovespast,inducingeitherforwardorreversecurrentflow.CompactdiscsandDVDdiscsuselighttoimplementaone-bit,two-statebinary

system.Apredeterminedspotonthediscactsasabinarybit.Alaserlightisusedtochangeornotchangethereflectivepropertiesofthespot.Thelaserisalsoinvolvedinretrievingthebinarystateofthatspot.Whenthereadinglaserlightisaimedatthespot,itreflectsdifferently,dependingonwhetherthewritinglaserhadpreviouslymodifieditornot.So,whatisthebestwaytoimplementaone-bit,two-statebinarysystem?The

answerisasurprisingone.Theansweris,“PRESSURE.”Ofcourse,wearetalkingaboutaspecialkindofpressure.Let’spauseforamomentandthinkofhowwecouldcommunicateusing

pressure.Hereisathoughtexperiment.Ifyouweretolieonyourstomachandcloseyoureyes,howcouldpeoplecommunicatewithyouinbinary,usingonlypressure?Hereishowtheycoulddoit.Designatedifferentspotsonyourbody,saythe

backofeachknee,andthebackofeachelbow,aspressurepoints,actingasbinarybits.Then,fourpeoplecouldcommunicatewithyoubyeitherpressingornotpressingthosefourdesignatedspots.24or16differentmessagescouldbe

communicatedtoyouinthisway.Forexample,onedistinctmessagecouldbe:leftelbowpressed,rightelbownotpressed,rightkneepressed,leftkneenotpressed.Whatwouldthese16messagesstandfor?Whateveryouchoose.Inthe

morningtheycouldstandforwhatbreakfastwillbeserved.Intheeveningtheycouldstandforhowmanyrunsthehomebaseballteamscored.Binarysystems,includingcomputers,usegroupingofbitsatdifferenttimes,indifferentsubsystems,fordifferentpurposes.Ofcoursethisisnotthekindofpressurethatmicroprocessorsuse.Let’sgeta

littleclosertothatbyimaginingabinarysystemencodedbysomethingwearefamiliarwith:waterpressure.Waterpressurecomesfromadistantwaterpump,withapropellerinsidethatpushesonthewater.Thepressurealsomaycomefromgravity,viaawatertowerorreservoirhigherthanyourhouse.Let’slookathowawaterfaucetworks.Whenthecontrolvalveisturnedoff,nowaterflows,butthereispressureatthe

faucet.Thewaterispressingontheclosedvalve.Whenthecontrolvalveisturnedon,waterflows,butthereisnopressureatthe

faucet.Thevalveisoutoftheway,sothereisnowaterpressingonthevalve.So,inourone-bitbinarysystem,thewatervalve,wehavetwostates:water

flowing,orwaternotflowing.But,wecouldalsolookatitastwostates:pressureofforpressureon.Infact,thestatesareinvertedoroppositefromeachother:flowisoffwhenvalvepressureison,andflowisonwhenvalvepressureisoff.Figure2-1,below,summarizesthisconcept.

FIGURE2-1Inourmicroprocessor-basedsystem—infactinalldigitalelectronics—wewill

findthatthemeaningisencodedinthepressure,ratherthanintheflow.But,thatisgettingaheadofourselves.Imaginenowafour-bitbinarycommunicationsystembasedonwaterpressure.

Weputfourwaterfaucetsinarow.Anyonefaucetcanbeindependentlyturned

offoron.Justaswiththepressure-on-the-knees-and-elbowssystem,wecanencode24or16differentmessages.Let’slooknowatasubtle,butimportantdifference.Namethevalves,fromleft

toright,A,B,C,andD.TurnvalvesAandCon,sothatwaterflows.TurnvalvesBandDoff,sonowaterflows.IfwechoosetodefineeachbitasTrueorFalse,weinstinctivelywouldassignwaterflowingasTrue,andwaternotflowingasFalse.So,intheabovescenario,wewoulddescribeA-B-C-DasTrue-False-True-False,asinFigure2-2,part(a),below:

FIGURE2-2Thiswouldintuitivelybeourchoice,becausewecanseewaterflowing.Ifwe

wantedto,wecouldhavedefinedoursystemintermsofvalvepressure,insteadofwaterflow.Thatwouldbealessintuitivechoice,becausewecan’tseevalvepressure.But,ifwehadchosentodefinevalvepressureonasTrue,andvalvepressureoffasFalse,theninourabovescenariowewoulddescribeA-B-C-DasFalse-True-False-True,insteadofTrue-False-True-False.Figure2-2,part(b)displaysthisdifferentwayofdefiningthesamesystem,inthesamestate.Again,inourmicroprocessor-basedsystems,wewillfindthatthemeaningis

encodedanddefinedbythepressure.Inthemicroprocessorcase,theflowisnotthemoreobviouschoice,becausewecan’tseetheflow.Ontheotherhand,wecan’tseethepressureeither,withoureyes.However,wecanmeasureboththepressureandflow.Infact,inelectronics,thepressureiseasiertomeasurethantheflow.Ihavegonethroughtheseexamplessothatyoucangetmorecomfortablewith

theideaofstoringbinaryinformationaspressure.Ichosetheseexamplesbecausetheyareformsofpressurewecanseeandfeel.Wemustnowmovebeyondthefamiliartotheunfamiliarworldoftheatomic,orrather,thesub-atomic:totheworldoftheelectron.For,thekindofpressureusedtostorebinaryinformationinmicroprocessorsis:ELECTRICPRESSURE.

CHAPTERTHREEVOLTAGEANDCURRENT

Indigitalelectronics,thenameofthedevicethatiseitherinthe“electric

pressureon”or“electricpressureoffstate”isthetransistor.Thetransistorissimilartothefaucet,whichiseitherinthe“waterpressureon”or“waterpressureoff”state.Likethefaucet,whichallowswatertoflow,thetransistorallowselectriccurrenttoflow.Likethefaucet—inwhichwaterflowswhenpressureisgoneatthevalve—thetransistorallowselectriccurrenttoflowwhentheelectricpressureisgoneatitsvalve.Likethefaucet—inwhichwaterstopsflowingwhenpressureispresentatthevalve—thetransistorstopstheflowofelectriccurrentwhenelectricpressureispresentatitsvalve.Infact,theBritishcalledtheprecursortothetransistora“valve.”Americanscalledita“tube.”Thepreviousparagraphmerelydescribeshowthetransistorisanalogoustoa

waterfaucet.But,itusedtermsthatrequireexplanations.Youneedtoknowwhat“electricpressure”is.Youneedtoknowwhatelectriccurrentis.Youneedtoknowhowatransistoractsasavalve,ormoreprecisely,asaswitch.So,thenextsectionofthisbookactslikeabasicelectricityandelectronicscourse.Thepreviousexamplesofbinaryinformationdeviceshavesomeserious

limitations.Obviously,theyarelimitedbytheirsize.Faucetsaretoobig.Coinscan’tcommunicatewithothercoins.Thedevicesarealsolimitedbytheirflexibility.BitsonCDROMsaretiny,buttheycan’tcommunicatewitheachother.Weneedasysteminwhichinformationcanbemovedquicklyfromonepartof

thesystemtoanotherpart.Weneedasysteminwhichthestateofonepartofthesystemcanquicklyandefficientlyaffectandchangeanotherpartofthesystem.Weneedasysteminwhicheventscanhappensequentially.Weneedasystemthatrunsandchangesonitsown,ratherthanhavingeverybitcontrolledbyahumanflippingaswitch—likethetelegraph—orahumanturningonafaucet.Addtothislisttheneedforthesystemtobelow-poweredandverycompact.Theseneedscanallbemetbyabinarysystembasedonelectricity.Changesin

electricalpressurehappenveryquickly.Withtheinventionofthetransistor,thentheintegratedcircuit,digitalelectronicssystemscanbeverysmall.So,thefirstthingweneedtodoisexplainelectricalpressure.Waterpressure

comesfromawaterpumppushingonthewater.Electricalpressureisabithardertocomprehend.Whatisitaboutelectricitythatcan“push?”Whatgetspushed?Wecanseetheeffectsofmagnetism.Wehaveallprobablyplayedwith

magnetsaschildren.Wecantaketwomagnets,andmakeoneofthemmoveacrossatabletotheother.Theonemagnetmovestheother.Wecanturnonemagnetaround,andthentrytoforcethemagnetstogether.Wefindthatthemagnetsverystronglypushawayfromeachother.Wehavefirsthandknowledgethatamagneticforcefieldcanpushorpullothermagnetsorferromagneticmaterial.

Itturnsoutthatthereisanotherforcefield:theelectricforcefield.Itisverysimilartothemagneticforcefield.It,too,canmaketwopiecesofmetalmovetowards,orawayfrom,eachother.Itmakesaballoonrubbedagainstoursweatersticktous.Itmakesthosenasty,white,“peanut”packingmaterialssticktoeverything.ItmakestheelectronbeammoveacrossouroldCRTTV’sandcomputermonitors.Itmakeslightningmovethroughtheair.Itisafundamentalforceofnature.Voltageisthenamewegivetothiselectricpressure,thiselectricforcefield.

Sometimeswecallitelectromotiveforce,orEMF,forshort.“Electromotiveforce”isaperfectname,becausevoltageisa“forcethatmoveselectrons.”Ittellsusthatvoltageisaforce;thattheforcecanmovethings;andthatelectronsarethethingsthatgetmoved.Weshouldsay“voltageon”or“voltageoff”insteadof“electricpressureon”or“electricpressureoff.”Infact,usingtheterm“electricpressure”isabitinaccurate,becausepressure

meansforceperunitarea,whereasvoltagemeansenergypercoulombofcharge,orworkdonepercoulombofcharge.Sinceworkisforcetimesdistancemoved,thenvoltage=forcexdistance/coulomb.Thisequationisthemathematicalrepresentationofcallingvoltageanelectromotiveforce.Coulombsisthenumberofelectronsmoved(electro),anddistanceisthemeasurementofmovement(motive).So,pressureandvoltagehaveincommona“force”attheheartoftheirequations.Iusetheword“pressure”becauseit’ssomethingweallcanfeel,likewhenwepressonsomethingandseeitmove.Tounderstandvoltage—andcurrentforthatmatter—wemustunderstandthe

atom.Iusetheterm,“understand,”looselyhere.Idon’tfeelthatwecantrulyunderstandtheatom,ortheelectron,orlight,orgravity,orelectromagneticwaves,oranyofthefundamentalelementsofphysics.Ourbrainsbestunderstandthethingsofthemiddlerangeoftheuniverse.Wecannotcomprehendtheincrediblysmall,likeatoms,ortheincrediblebig,liketheuniverse.Thereisnoreasonforustobedesignedtocomprehendthesethings.So,weusuallyusemodels,basedonthingswecanunderstand,tohelpus

explainthingswecan’tunderstand,likeatoms.ThesimpleBohrmodeloftheatombesthelpsustounderstandhowvoltagecomesfromatoms.TheBohrmodelrepresentstheatomaslikeaplanetarysystem.Inaplanetary

system,thereisalarge,massivesunatthecenter.Orbitingaroundthesunaretheplanets,smallerandlessmassivethanthesun.Anotherforce,gravity,pullstheplanetstowardthesun,keepingthemfromflyingawayintospace.(IgnoringEinsteinandquantum,forsimplicity.)Perthismodel,theelectronsareliketheplanets.Theprotons,attheheartof

theatom,arelikethesun.Electronsarelessmassivethantheprotons.Theweaknuclearforcekeepstheelectronspulledtowardtheprotonsatcenter,ornucleus,oftheatom.Unlikegravity,butmorelikemagnetism,wesaythatelectronshaveanegative

charge(-).Protonshavetheoppositecharge:positive(+).“Like”chargesrepel,

and“unlike”chargesattract.Thismeansthatthereisafundamentalforceofnaturesuchthateveryelectron(-)pushesallotherelectrons(-)awayfromitself.Everyproton(+)pushesallotherprotons(+)awayfromitself.Thisiswhatwemeanwhenwesay,“like”chargesrepel.Everyelectron(-)andeveryproton(+)pulltowardeachother.Thisiswhatwemeanwhenwesay,“unlike”chargesattract.So,theelectronsontheoutsideoftheatomtrytostayawayfromeachother,

asmuchaspossible,whileatthesametimetheyareattractedtowardtheprotonsinthecenteroftheatom.Ifyouthinkaboutthisforawhile,youshouldwonderwhytheprotons,crammedtogetherinthenucleusandrepelledbyeachother,don’tflyapart.Sincethisdoesn’tmakesense,wesaythattheyareheldtogetherbyaforceofattraction,strongerthantheforceofrepulsion.Wecallitthe“strongnuclearforce.”Soundssuspiciouslyconvenient.Thestrengthoftheforceinoneelectronorinoneprotonisverysmall,butvery

real,nonetheless.And,therearesomanyelectrons,somanyprotons.And,theirstrengthiscumulative.Witnessthepowerofalightningstrike.Ifweaddalotofextraelectronstoonepieceofmetal(sothatitisexcessivelynegative),andremoveelectronsfromanotherpieceofmetal(sothatitisexcessivelypositive),thosetwopiecesofmetalwillmovetowardseachother,justliketwomagnets.Oneatommayhavemanyprotonsandelectrons.Andwithinthisatom,many

pressuresexist.Butthepressuresareverysmall.And,thenetpressureiszero,sinceinoneatomtherearethesamenumberofelectronsasthereareprotons,andthepositivechargeofoneprotonexactlyequalsthenegativechargeofoneproton.Puttingawholebunchofatomstogetherdoesn’tchangethings,becausetheirnetpressureisstillzero:abunchofzeronetpressureatomsaddsuptozeronetpressure.Howdowecreatetheelectricpressurewe’vebeentalkingabout?Wehaveto

un-balancetheatom.Oneofthedefinitionsofvoltage(EMF)is“aseparationofcharge.”Ifweremoveanelectronfromanatom—separatethecharge—theremainingatomnolongerhasexactlythesamenumberofelectronsasprotons.Itisnotinbalance.Itnolongerhaszeronetcharge.Ithasonemoreprotonthanelectrons,soithasanetchargeof+1,or+1timestheforceofoneproton.Onetheotherhandifweaddanelectrontoanatom—separatethechargefrom

elsewhere—theatomnolongerhasexactlythesamenumberofelectronsasprotons.Itisnotinbalance.Itnolongerhaszeronetcharge.Ithasonemoreelectronthanprotons,soithasanetchargeof-1,or-1timestheforceofoneelectron.Ineachoftheabovecases,theatomhasnetpressure,eitherpositiveor

negative.Wecallthisatomapositiveionoranegativeion.Themoreionsweputtogether,themorevoltage(pressure)wehave.Wehavefoundwhatwehavebeenlookingfor:voltage.Thequestionnowchangesto:howdoweseparatecharge,orequivalently,how

dowecreatevoltage?Onewaytodoitisthroughbruteforce.Wecanuseourmusclesandrubthingstogether.Ifyourubaballoononyourwoolsweater,the

balloonmaythenbeabletosticktoawall.Youhaveforcedaseparationofcharge.Becauseoftheiratomicstructure,woolisverywillingtogiveupelectronsandballoonsareverywillingtogainelectrons.Theballoondoestrulyhavevoltage.Itiscalled“electrostatic”voltage,or“static

electricity”.It’sthesameelectricitythatcausesthestaticshockwefeelwhenwetouchadoorknob.Butthisvoltageistemporary.Whenthechargeditemtouchessomethingthathastheoppositecharge,thelight-weightelectronsmovetothepositiveobject:thestaticvoltageisgone.Youhavetoreplenishthechargebyrubbing,again.Wewouldlikeaself-replenishingsourceofvoltage.Wecallthisself-

replenishingvoltagesourceabattery.Seethepicturebelow.Atypicalbatteryhastworodsimmersedinafluidcalledanelectrolyte.Therodsaremadeofdissimilarmetals,likenickelandcadmium.Achemicalreactionoccurs,causingtheelectronsfromonemetalrodtomovethroughtheelectrolytetotheothermetalrod.Therodthatgainselectronsiscalledthenegativeterminalorcathode.Therodthatloseselectronsiscalledthepositiveterminaloranode.Inani-cadbattery,theanodeismadeofnickel,thecathodeofcadmium,andtheelectrolyteofpotassiumhydroxide.

FIGURE3-1

Figure3-1,part(a),showstheprocessofchargeseparationwhenthe

electrolyteispouredintothebattery.Figure3-1,part(b),showstheelectricalsymbolforabattery.Thebatterynowhasvoltage:pressuretomovesomething.Whatdoesvoltage

move?Voltagemoveselectrons.Thismovementofelectronsiscalled,current.Currentiselectronsmoving.Notmovingwithinanatom,butmovingoutofanatomandgoingelsewhere.Buttowheredotheymove?Toanswerthisquestion,wehavetopauseandlookattheworldofchemistry,

atomicstructure,andtheperiodictable.Theperiodictabledescribesatoms.Each

atomisnumbered,inascendingorder.Thenumbersstandforhowmanyelectrons,protons,andneutronseachatomhas.Hydrogenisnumbered“1”becauseithasoneelectron,oneproton,andoneneutron.Oxygenisnumbered“8”becauseithaseightelectrons,eightprotons,andeightneutrons.Thistellsusthatwhatmakesoneelementdifferentfromanotheristhenumberofelectrons,protons,andneutronsinitsatom.Thecolumnsintheperiodictablehavesignificance,especiallytotheelectrical

propertiesofmatter.Theelectronsinaspecificatomarrangethemselvesingroups,frominnergroups—orshells—tomiddlegroups,tooutergroupsofelectrons.Acolumnintheperiodictabledescribeselementsmadeofatomswhoseoutershellsexhibitsimilarproperties.Theouter—orvalence—shellofaspecificatomwillhavebetweenoneand

eightelectrons.Forexample,siliconatomshavefourelectronsintheiroutershell.Copperatomshaveoneelectronintheiroutershell.Let’sgobacktothequestionofwhereelectronscanmove:wherecurrentcan

flow.Wefindthat,electrically,therearethreecategoriesofmaterials,conductors,semiconductors,andinsulators.Conductorsarematerialsthroughwhichcurrentcanveryeasilyflow.A

conductorhasoneelectroninitsoutershell.Theoneelectronneverattainsasymmetricalbalanceofattraction-repulsionwithintheatom,soitisveryfreetomoveawayfromtheatom.Intheperiodictable,youwillfindconductorsgroupedtogetherintheeleventhcolumn:copper,silver,andgold.Semiconductorsarematerialsarematerialsthroughwhichcurrentcan

somewhatflow.Asemiconductorhasfourelectronsinitsoutershell.Thesefourelectronshaveamoderatesymmetricalbalanceofattraction-repulsionwithintheatom,sotheycanbemovedawayfromtheatomifadequateoutsidepressureisapplied.Intheperiodictable,youwillfindsemiconductorsgroupedtogetherinthefourteenthcolumn:carbon,silicon,andgermanium.Insulatorsarematerialsinwhichcurrentdoesnotflow.Aninsulatorhaseight

electronsinitsoutershell.Theseeightelectronsareinastrongsymmetricalbalanceofattraction-repulsionwithintheatom,sotheyarenotfreetomoveawayfromtheatom.Intheperiodictable,youwillfindinsulatorsgroupedtogetherintheeighteenthcolumn:helium,neon,andargon.Also,whenelementscombinetogether,theytendtoshareoutershellelectronsandaligninsuchawaythateachelement’soutershellhaseightelectrons,becominganinsulator.That’swhysodiumchloride(tablesalt)isagoodinsulator.Soareplastic,glass,rubber,andair.Returningnowtoelectricalcurrent,let’simagineourbattery,withextra

electrons(negativeionatoms)congregatingonthenegativeterminal,andmissingelectrons(positiveionatoms)onthepositiveterminal.Theelectronsonthenegativeterminalwouldreallyliketogetawayfromeachother.Theywouldliketogettothepositiveterminal,sothatbothterminalswouldbeneutral.Theatomscouldreturntotheirnatural,neutral,non-ionicstate.Buttheycan’tgothroughthebattery.Itwasthechemicalreactioninthebatterythatdidalltheworkincreating

thisimbalanceinthefirstplace,storingtheworkaspotentialelectricalenergy.Youmayhaveheardofthisreferredtoaselectricalpotential.Theelectronscouldescapefromthenegativeterminalifweputaconductor,

likeacopperwire,betweenthepositiveandnegativeterminalsofthebattery.Seethepicturebelow.(WARNING:Don’tdothis,itcouldblowupthebattery.Iwillexplainabouttheneedforelectricalresistancelater.)Rememberthepreviousdiscussionaboutconductorslikecopper?Theiratomshaveoneverylooselyboundelectronintheiroutershell.Theyareveryeasilymovedbyelectricalforce.Theinstantyouconnectthewiretothebatteryterminals,theseelectronsfeeltheattractionofthepositiveionsinthepositiveterminalandtheyfeeltherepulsionfromthenegativeionsinthenegativeterminal.Theymove!Theymovetowardsthepositiveterminal.

FIGURE3-2

Let’sstoptoenjoy,appreciate,andwonderatthis.Wecallthiscurrent,because

itislikewatercurrentinastream.Butthisismovementinawire.Theverywirehasmotion—attheatomiclevel—insideit.Thesolidwirehaselectronsflowinginsideit.Wehaveansweredourquestion,“Wheredoescurrentflow?”Wehavedevicescalledammetersthatmeasuretheamountofmovement

insideawire.Theymeasurethenumberofelectronsthatmovethroughacross-sectionalareaofwire,persecond.Theunitofmeasureisthe“ampere.”Anammetermightmeasureoneampere,oroneamp,ofcurrentinawirecomingintothiscomputer.Oneampis6.25x1018electronspersecondpassingacross-sectionalareaofthatwire.That’s6,250,000,000,000,000,000electronspassingby,everysecond!(Wecall6.25x1018electronsacoulomb.So,oneampereisonecoulombpersecond.)So,theelectronsintheatomsthatconstitutethewiremovetowardthepositive

terminal.Buttheelectronsfromthenegativeterminalofthebatteryarerightbehindthem.Remember,theyarerepulsedbyeachother,andwerewaitingfortheirchancetoescape.Next,thebatteryterminal’satomsstartgoingneutral.Thenegativebattery

terminalwasnegativebecauseitsatomshadextraelectrons.Theseelectronsareleaving,sotheatomsbecomeneutral.Thepositivebatteryterminalwaspositivebecauseitsatomsweremissingelectrons.Electronsarenowmovinginandjoiningtheatoms,sotheatomsbecomeneutral.So,itwouldseemthatcurrentflowisdone.Youmightthinkthatwehavea

situationsimilartoelectrostatics,whereelectronflowstops,becausethesourcesofrepulsion/attractionareneutralizedandgone.Butno,somethinginterestinghappens.Thebattery’schemicalreactionthat

hadbeenfinisheddoingitsworkinseparatingcharge,startsagain.Assoonasterminalatomsstartgoingneutral,thebatterystartsseparatingchargeagain.Asanatomonthepositiveterminalacquiresamissingelectrontobecomeneutral,thechemicalreactioninthebatterytakesitawayagain.Itsendstheelectronthroughtheelectrolytefluid,andforcesitbackintoanatomonthenegativeterminalthathadjustgoneneutralbecauseitlostitsextraelectron.So,thechemicalreactioninthebatteryrestorestheseparationofchargeonthe

batteryterminals(thevoltage),duringcurrentflow.Theelectroncurrentflowthatmovesthroughthewirecontinuestomovethroughtheelectrolytefluid!So,thecircuitistrulyacircuit,sinceelectronsevencirculatethroughthebattery.Currentflowdoesnotstop.Remember,Isaidyoumustnotputawireacrosstheterminalsofthebattery.

Toomanyelectronswouldflow.TheequationfortheamountofcurrentflowisI=V/R,whereIiscurrent,Visvoltage,andRisresistance.Resistanceisameasureoftheabilityofamaterialtoimpedecurrentflow.Well,theresistanceofawireisnearzero.Ifyourememberalittleofhighschoolalgebra,youwillknowthat,asthedenominatorapproacheszero,thequotientapproachesinfinity.Nearlyinfinitecurrentflowsthroughthewire,ornear-infinitytimes6.25x1018electronspersecond.Somethingisdestroyed:eitherthebatteryorthewire.Whatyoushouldreallyputacrossthebatteryisasemiconductor.Amore

manageableamountofcurrentwillflow.Carbonisagoodsemiconductivematerial.Wemakecomponentscalledresistorsoutofcarbon.Ratherthanawire,aresistorshouldbeputacrossthebatteryterminalstomakeamoderateamountofcurrentflow.Nowyoucanseewhythissubjectiscalled“electronics.”Thesourceofvoltage

iselectrons:electronsseparated,thenpackedtogether.Thecurrent,too,iselectrons:electronsinmotion.Electronicsiselectronsmovingelectrons.It’sallaboutelectrons.

CHAPTERFOURTHEFAUCETANALOGY

Ifeltthattheabove,ratherlengthy,sectiononvoltageandcurrentwas

necessarysothatyoucouldunderstandthebinaryencodingofon-or-offelectricalpressure.Next,Iwouldlikeyoutorecallthatthisvoltagepressuresystemisanalogoustoawaterpressuresystem.Youencounterwaterpressuresystemseverytimeyouuseawaterfaucet.Iwouldliketouseyourfamiliaritywithwaterpressuretohelpyouunderstandamicroprocessor-basedsystem.BeforeIintroducetheconceptofatransistor-as-switch,let’sfirstlookata

faucet-as-switch.Lookatthepicturebelow.

FIGURE4-1

Theabovepictureisadiagramofanon-offstylewaterfaucet,likeadrinkingfountain.Ifyoudon’tpressthebutton,nowaterflows.Ifyoupressthebutton,

waterflows.Itiseitheronoroff.Atransistorcircuitcanbedesignedtoworklikethis:onoroff.Thisisdigitaldesign.“Digital”isapoortermforabinarysystem.Thisisnotthekindoffaucetyouhaveinyoursink.Yoursink’sfaucetisan

analogsystem,becauseitcanbeinaninfinitenumberofstates.Thewaterflowcanbealittle“on”,oralittlemore“on”,oralittlemore“on”thanthat,etc.Atransistorcanbedesignedasananalogcircuit,too.Wewouldthencallitatransistoramplifier.Thisisnothowtransistorsareusedinmicroprocessors,orinanydigitalcircuits.Indigitalcircuits,transistorsareusedason-offswitches.Digitalcircuitshave,notaninfinitenumberofstates,butjusttwostates:onoroff.Theabovefigureshowsthefaucetbuttonnotbeingpressed.Awaterpump,not

shown,isapplyingpressuretothewater,forcingitdowntothevalve.Thewatercannotgetpastthevalve,becausethevalvecompletelyblocksit.Nowaterflowsfromthebottomofthefigure.Youcannotgetadrink.Wewouldsaythattheabovefaucetisoff.Nowaterisflowing.Butwecould

alsosaythat,atthevalve,pressureison.Thevalvefeelsthefullpressurefromthewaterpump.Rememberthisdistinction,becauseitappliestotransistors.Looknowatthefigurebelow.

FIGURE4-2

Thisnewdiagramshowsthefaucetbuttonbeingdepressed.Thevalvemoves

right,andoutoftheway.Itnolongerblocksthewater.Thewaterflowsoutofthepipe,onthebottomofthediagram.Youcangetadrink.Wewouldsaythefaucetison.Waterisflowing.Butwecouldalsosaythat,at

thevalve,pressureisoff.Thevalvefeelsnopressurefromthewaterpump,becauseitisoutofthewayoftheflowingwater.Ifyougetconfusedbytransistors,justcomebacktothesebasicconcepts.Thespringintheabovedesignisapracticalconsideration.Whenyoustop

pressingthebutton,thespringpushesthevalvebacktotheblockingposition,stoppingwaterflow.

So,atransistorislikeanon/offwaterfaucet.But,onewaterfaucetoronetransistorisjustonebinarybit,soitcannotencodemuchinformation.Wecanputagroupofwaterfaucetsnexttoeachother,orgrouptogethertransistors,and

increasethenumberofuniquepiecesofinformationthatwecanencode.Seethefigurebelow:

FIGURE4-3

Intheabovediagram,usingfourwaterfaucets,wehavecreatedafourbit

binarysystem.Wechoosetonameourtwostates“1”and“0”.Wechoosetodefinethe“1”stateastheconditioninwhichthevalvereceivespressure.Wechoosetodefinethe“0”stateastheconditioninwhichthevalvereceivesnopressure.Werefertoafourbitbinarysystemasanibble(nojoke).Theabovefigureshowsthesysteminthe1-0-1-0state.Thisisoneofthe24or16uniquestateswecanencode.The16statesare:0-0-0-00-0-0-10-0-1-00-0-1-10-1-0-00-1-0-10-1-1-00-1-1-11-0-0-01-0-0-11-0-1-0

1-0-1-11-1-0-01-1-0-11-1-1-01-1-1-1Butweneedtodomorethanthis.Theabovesystemstillrequiresahandto

presseverywaterfaucet.Recallabovethatwesaid:“Weneedasysteminwhichthestateofonepartofthesystemcanquicklyandefficientlyaffectandchangeanotherpartofthesystem.Weneedasysteminwhicheventscanhappensequentially.Weneedasystemthatrunsandchangesonitsown,ratherthanhavingeverybitcontrolledbyahumanflippingaswitch.”Iwouldliketotakeyouthroughadesignofsuchasystemusingwaterfaucets.Understandingthissystemshouldhelpyoutounderstandthetransistor-basedsystem.Lookatthepicturebelow:

FIGURE4-4

Inthissystem,thestateoffaucetBiscontrolledbyfaucetA.Nohuman

pressesthebuttonoffaucetB.Nevertheless,faucetB’sbuttonisdepressed.WehaveaddedaconnectorpipefromfaucetAtofaucetB.ThepressurizedwaterflowsdownfaucetA,butgetsblockedbyfaucetA’sclosedvalve.Thewaterflowsfromlefttorightthroughtheconnectorvalve.Sincethewaterispressurizedbythepump,itpushesonfaucetB’sbutton.FaucetB’svalveopens,itsvalvehasnopressureonit,watergetspastitsvalve,andwaterflowsoutoffaucetB.Inshort,whennowaterflowsfromfaucetA,waterflowsfromfaucetB.Phrased

differently,whenpressureisonfaucetA’svalve,pressureisofffaucetB’svalve.

Now,lookatthenextpicture:

FIGURE4-5

ThissystemisthesameoneshownaboveinFigure4-4.However,thistime,

waterpressureonthefarleftentersthesystemanddepressesthebuttononfaucetA.Thiscauseseverythinginthesystemtoreverse.Now,waterflowsfromfaucetA.Now,nowaterflowsfromfaucetB.Now,nopressureisonfaucetA’svalve,whilepressureisonfaucetB’svalve.Youarenowseeingourneedfulfilled:“asystemthatrunsandchangesonits

own,ratherthanhavingeverybitcontrolledbyahumanflippingaswitch.”FaucetBisbeingcontrolled,notbyahuman,butbyfaucetA.IffaucetAflows,faucetBdoesn’t.IffaucetAdoesn’tflow,faucetBdoes.Phraseddifferently,iffaucetA’svalvehaspressure,faucetB’svalvehasnopressure.IffaucetA’svalvehasnopressure,faucetB’svalvehaspressure.Let’slearnsomemorefromthissystem.First,noticethatfaucetBiscompletely

controlledbyfaucetA.Butthereverseisnottrue:faucetAisinnowaycontrolledbyfaucetB.FaucetAiscontrolledbysomeotherfaucet,notshown.Also,noticethecontrolflowofthissystemisfromlefttoright.Thisishowwe

willdrawourtransistordesigns,too.Thefaucetsfromoff-screenleftcontrolfaucetA.FaucetA,whichisleftoffaucetB,controlsfaucetB.Now,let’sdigalittledeeperonthisleft-to-rightflow.RememberIsaidthatin

transistordesign,wefocusonpressureratherthanflow:voltageratherthancurrent.Thusfar,lookingatFigure4-5above,wehaveonlyfocusedontwopressures:oneatthevalveoffaucetA,andoneatthevalveoffaucetB.Thesearefaucetoutputpressures.But,therearetwomorepressures:oneatthebuttonoffaucetA,andoneatthebuttonoffaucetB.Thesearefaucetinputpressures.Toseethismoreclearly,lookatthepicturebelow:

FIGURE4-6

ThisisasimplifieddiagramofFigure4-5,above.Withit,wecanfocusmore

clearlyonthefourpressures.Remember,thecontrolflowofthediagramreadsfromlefttoright:faucetAcontrolsfaucetB.But,theinput-to-outputpressureflowdirectionisalsofromlefttoright.ReadingdirectlyfromFigure4-6,faucetAhasinputpressure,andnooutputpressure.FaucetBhasnoinputpressure,buthasoutputpressure.Infact,theoutputpressureoffaucetAcontrolstheinputpressureoffaucetB.

InFigure4-6,thevalveoffaucetAisoutoftheway,thepressureonitisgone,andthewaterflowsalongthepathofleastresistanceoutofthefaucet,sothatnowaterflowsacrosstheconnectorpipetoputpressureontheinputbuttonoffaucetB.Forthesakeofcompleteness,let’slookathowtheoutputpressureoffaucetA

controlstheinputpressureoffaucetBwhenthefaucetsareintheirreversestates,asshowninFigure4-7,below:

FIGURE4-7

InFigure4-7,faucetA’svalveisinthewayofthewater,soitfeelspressure.

Thewatercan’tgetthrough,soitflowsacrosstheconnectingpipe,applyingpressuretotheinputoffaucetB.FaucetA’soutputpressurecausesfaucetB’sinputpressure.There’sstillmorewecanlearnfromthefaucetsinFigure4-7.Onefaucetacts

asthemostbasicbuildingblockofdigitallogic:theinverter.Bydefinition,aninverterisalogicdevicethattakestheinput,reversesit,andplacesthereversedvalueontheoutput.LookatfaucetA,Figure4-7.Itsinputis“nopressure.”Thereverseoroppositeof“nopressure”is“pressure.”FaucetAreversestheinput“nopressure”andplaces“pressure”ontheoutput.Alternatively,faucetB,Figure4-7has“pressure”asitsinput.FaucetBtakes

theinverseoroppositeof“pressure,”placing“nopressureonitsownoutput.Indigitallogic,werepresentthetwobinarystatesasthenumbers1and0.We

oftencall1,“true.”Wecall0,“false.”Sincewecanassociatethepresenceofpressurewith“true,”andtheabsenceofpressurewith“false,”wenaturallyequatepressurewith1,andnopressurewith0.Wedothiswhetherourpressureisfromwaterorfromvoltage.Now,insteadofdescribingourfaucetasturninganinputofpressureintoan

outputofnopressure,wecansaythatitturnsaninput1intoanoutput0.Insteadofdescribingourfaucetasturninganinputofnopressureintoanoutputofpressure,wecansaythatitturnsaninput0intoanoutput1.Wecanputtheseresultsintotheformofthetablebelow:

FIGURE4-8

Thetableontheleft,(a),ofFigure4-8summarizestheonlytwopossible

behaviorsofonefaucet.ThelinelistedasSTATE1correspondstofaucetA’sstateinFigure4-7.ThelinelistedasSTATE2correspondstofaucetB’sstateinFigure4-7.Thetableontheright,(b),ofFigure4-8isequivalentto(a),butwithbinary

digits0and1replacing“NoPressure”and“Pressure,”respectively.Inthisform,thetableiscalleda“truthtable,”since1meanstrueandzeromeansfalse.Itcanalsobecalleda“logictable.”Fromthistable,itshouldbeclearthat,foraninverter—likeouronefaucet—a0inputbecomesa1output,anda1inputbecomesa0output.Nowyoucanseewhy0and1areused:theymakeforaverycompactrepresentation,andcanstandforwhateverwewantthemto—inthiscase“NoPressure”and“Pressure.”Indigitallogic,alogicsymbolisoftenusedtorepresentaninverter.Likethe

truthtable,itiscompact,savingusfromdrawingelaboratetransistorcircuitsorfaucets.Italsosimplifiesconnectingcircuitstogether,likeourfaucetscontrollingotherfaucets.Lookatthepicturebelow:

FIGURE4-9Thetrianglewithabubbleontherightisthelogicsymbolforaninverter.Idrew

ittwicetoshowtheonlytwostatesitcanbein.Figure4-9,part(a)islikestate1ofthetruthtableinFigure4-8,part(b):0ontheinputbecomes1ontheoutput.Figure4-9,part(b)islikestate2ofthetruthtableinFigure4-8,part(b):1ontheinputbecomes0ontheoutput.Noticealsothedirectionthetriangleispointing.Itislikeanarrow,pointingto

theright.Remember,Itoldyouthatcircuitcontrolflowslefttoright,withinputson

theleftandoutputsontheright.Theshapeoftheinvertersymbolhelpsustorememberthisconcept.Theinputsideisoftenlabelled“A,”andtheoutputsideisoftenlabelled“Y.”Thebubbleatthearrow’stipisacluethattheoutputisinverted.Ifweagreetocalltheinput“A”andtheoutput“Y,”wecanredrawourtruthtable

fortheinverterinanevensimplerformthaninFigure4-8.Seethepicturebelow,Figure4-10,part(a),forthesimplerinvertertruthtable.

FIGURE4-10

InFigure4-10,part(b),Ialsoplacedasimplerversionofthelogicsymbolfrom

Figure4-9.Now,withwonderfulsimplicity,Figure4-10displaysallyouneedtoknowaboutaninverter.Itcanbeimplementedwithatransistor,afaucet,oranyotherbinarydeviceyouchose,withconfidencethattheyallexhibitthesebehaviors.Next,let’sredrawFigure4-7,usinglogicsymbols.Lookatthepicturebelow:

FIGURE4-11Howsimpleitlooks,now.ThefaucetsofFigure4-7weretwoinverters,

connectedleft-to-right.Thelowpressure(0)comingintoinverter(a)wasinvertedtohighpressure.Thathighpressurewasfedtoinverter(b).Inverter(b)invertedthehighpressurebacktoalowpressure.Theinverterisjustoneofthebasicbuildingblocksofdigitallogic.Thereare

onlyafewbuildingblocks.Yet,whenputtogether,theycancreatecircuitsaspowerfulasamicroprocessor.Let’sdesignonemoresystemfromwaterfaucets,beforewemoveontotransistors.Lookatthepicturebelow:

FIGURE4-12

ThefirstthingyoushouldnoticeaboutFigure4-12isthatfaucetCisnowbeing

controlledbytwofaucets,faucetAandfaucetB.TheinputstofaucetsAandBarebothat“nopressure.”Sincetheyareinverters,theoutputsofbothfaucetsAandBareat“pressure.”ThewateranditspressureheadstotheinputoffaucetC,makingtheinputtofaucetC,“pressure.”SincefaucetCisaninverter,itsoutputbecomes,“nopressure,”andwaterisfreetoflowfromit.Nowlet’schangetheinputtofaucetA.Lookatthepicturebelow:

FIGURE4-13

Figure4-13isthesamesystemasFigure4-12,butnowwaterpressureis

appliedtotheinputoffaucetA.ThiscauseswatertostopflowingfromfaucetC,orwewouldsaythattheoutputvalveoffaucetCnowabsorbsthewaterpressureenteringthepipefromthetop,blockingwaterflow.LookcloselyatthechainofeventscausesfaucetCtoturnoff.Atransistor

circuitlikethisworksthesameway.Justlikebefore—inFigure4-6—thewaterenteringfaucetAfromthetopflowsoutthebottomoffaucetA.Thus,thewaterfromthetopoffaucetAcannolongerapplypressuretotheinputoffaucetC.However,thewaterfromthetopoffaucetBcan’tapplypressuretotheinputoffaucetCeither,becauseitnowhasapathoflessflowresistance:ittooflowsoutofthebottomoffaucetA.Inotherwords,faucetAnotonlydrainsitself,itdrainsfaucetB,too.NeitherfaucetAnorfaucetBcanturnonfaucetC.Now,lookatthepicturebelow:

FIGURE4-14

IfyouunderstoodFigure4-13,thenyoushouldhavenoproblemwithFigure4-

14.Theinputpressuresarenowreversed.InsteadofinputpressureonfaucetAandnoneonB,wehaveinputpressureonfaucetBandnoneonA.But,theresultsarethesame:FaucetCisoff—nowaterflows—andthepressureonitsvalveison.TheresultsinFigure4-14arethesameasinFigure4-13,becausethesystem’sbehavioristhesame:oneinputfaucetison,drainingnotonlyitself,butalsotheotherfaucet.Inthiscase,faucetBison,drainingnotonlyitself,butalsofaucetA.NeitherfaucetAnorfaucetBcanturnonfaucetC.NoinputpressureisavailableintoFaucetC.Thereisonlyonefinalpossiblestateforthissystem.Seeitinthepicturebelow:

FIGURE4-15

Figure4-15isthefourthpossiblestateforthissystem.Thistime,inputpressure

isappliedtobothfaucetsAandB.There’snothingtrickyhere:nocurrentflowsfromfaucetC;pressureis“on”itsoutputvalve.Thereasonisthat,sincebothfaucetsAandBareturnedon,alltheirinputwaterrunsoutoftheoutletsoftheirrespectivepipes.NopressurizedwatereverreachesfaucetCtoturniton.Figures4-12,4-13,4-14,and4-15representthefourpossiblestatesofourtwo-

inputsystem.Rememberourearlierdiscussion,whereweexplainedthatthewaytocalculatethenumberofuniquestatesofabinarysystemwastotake2tothepowerofthenumberofbits?Inthiscase,thereare22=4possibleinputstates.Thissystemisoursecondbasicbuildingblockofdigitallogiccircuits.ItiscalledanORgate.Seethepicturebelow:

FIGURE4-16

Figure4-16isoursimplifiedrepresentationofanORgate.Itislikeour

simplifiedrepresentationoftheinverterinFigure4-10.Figure4-16,part(a),isthetruthtableforanORgate,andFigure4-16,part(b)isthelogicsymbolfortheORgate.Let’sfirsttrytounderstandwhatpart(a)istellingus.Rememberthat1

represents“true”,asin“thepressureistrulyon.”0representsfalse,asin“thepressureisnoton.”TheAandBcolumnsrepresentthestatesoftheinputpressures,theinputstofaucetAandfaucetB.TheletterY—notC—istraditionallyusedasthenameforthestateoftheoutputpressure,inthiscasetheoutputoffaucetC.ThefourrowsrepresentthefourFigures:4-12,4-13,4-14and4-15.Howsimpleandcompact!Awholediagramgetsreplacedbyasimplerowofatruthtable.Thoseconfusingintermediary,internalpressuresthatcoupledtheoutputsoffaucetsAandBtotheinputofvalveCdonotappear.Wereallydon’tneedtoknowaboutthemwhendesigningatthelogicgatelevel.Part(a)helpsclarifywhatweshouldhavenoticedwhenstudyingFigures4-12

through4-15:that,aslongasatleastoneinputpressureison,theoutputpressureison.ItiscalledanORgatebecause,iftheApressureinputortheBinput,orbothinputsareon,thentheoutputpressureison.Figure4-16,part(b)isthelogicsymbolforanORgate.Noticehowtheleftside

ofthesymboliscurved,andhowthetopandbottomsidesarecurvedandcometoapointattheright.Thishelpsusremembertheleft-to-rightflowincircuitdesignandanalysis.Todesign,wedon’tneedtoknowwhat’sinside(b):itcouldbebigpipes,itcouldbelittletransistors.Wedesignwithlogicsymbols.Let’sdoadesign,now.Sofar,youknowtwologicgates:theinverterandthe

ORgate.Let’sdesignasystemtomonitoryourtoilet.Ifsomeoneflushesthetoiletandimmediatelyleavesthehouse,youcouldgetwaterdamagetoyourhouseif

thebowlorthetankoverflows.Hint:Ijustusedtheword,“or.”Seethepicturebelow:

FIGURE4-17

Let’sforgetaboutvoltagesorwaterfaucetsinsidelogicgates,fornow.Let’s

concentrateonwhat1’sand0’swillstandfor.Let’ssaythattheinputstoourdesignaretwosensors:onethatmonitorstheheightofthewaterinthetoiletbowl,andonethatmonitorstheheightofthewaterinthetoilettank.Normally,theyareinthelogic0state,meaningthewaterisnottoohigh(false).Ifsomethinggoeswrong,asensorgoesintothelogic1state,meaningthewateristoohigh(true).Theoutputofoursystemisawatershut-offvalve.Normally,itisinthelogic1

state,meaningwaterisallowed(true)tocomeintothetoiletfromthewatersupply.Ifsomethinggoeswrong,itmustgointothelogic0state(false),meaningwaterisnotallowedtocomeintothetoiletfromthewatersupply.

Ifyoulike,takeabreakandtrydesigningthissystemyourself.Putthenamesoftwoinputsensorsontheleft,thenameoftheoneoutputshut-offvalveontheright.Inthemiddle,putwhatevercombinationoflogicgatesyouneedtocreatethecontrolsystem.Don’tgethunguponthesensorsorshut-offvalve.Justtreatthemlikesourcesordestinationsof1’sandzeroes.Theanswerisinthepicturebelow:

FIGURE4-18TheORgate—asIhintedearlier—isalmostenoughforthisdesign.Remember

fromthetruthtableinFigure4-16fortheORgatethatitsoutputwillbelowifbothinputsarelow;itsoutputwillbehighifeitherinputorbothinputsarehigh.Thisistheoppositeofwhatwerequire.Wewanttheoutputtobehigh—turningonwaterflow—whenbothinputsarelow—indicatingnofaults.Wewanttheoutputtobelow—turningoffwaterflow—wheneitherorbothinputsarehigh—indicatingfault(s).Wewanttoinvert(makeopposite)theoutputoftheORgate.WedothisbyattachinganinvertertotheoutputoftheORgate.Lookatthepicturebelow:

FIGURE4-19ThefourrowsofFigure4-19showthe4possiblestatesforoursystem.Any

inputof1,onthefarleftside,meanswatertrouble.Theoutput,onthefarright,ofthatstatemustgotozero,topreventwaterdamage.Fromthisfigure,youcanseethattheinverterflipstheORgate’soutput,tomakeitworkcorrectly.

Let’scomparetheORgatetruthtableweencounteredinFigure4-16,part(a),withthetruthtablewecanbuildfromFigure4-19.Seethepicturebelow:

FIGURE4-20Part(a)ofFigure4-20isthetruthtablefortheORgate.PartBofFigure4-20is

builtfromthefourrowsofFigure4-19.TheAandBcolumnsofpart(b)arefromthefarleftsideofFigure4-19:theinputs.TheYcolumnofpart(b)isfromthefarrightsideofFigure4-19:theoutput.ThismakesiteasytoseehowtheYoutputcolumnisinvertedinFigure4-20part(b)comparedtopart(a).Itturnsoutthatthecircuitwejustdesignedisourthirdfundamentalbuilding

blockofdigitalelectronics:theNORgate.NORstandsfor“NotOR,”inreferencetothefactthateachofthepossibleoutputstatesoftheORgatearenotwhattheyusedtobe.TomakeanORgate,wesimplyneedtoaddoneextrainverter—anextrawaterfaucetortransistor—totherightendofthethree-inverterORgatewealreadycreated,asinFigure4-15.ThepicturebelowsummarizestheNORgate’struthtableandlogicsymbol:

FIGURE4-21Notice,inFigure4-21,part(b),thatthelogicsymbolfortheNORgatelooksjust

likethelogicsymbolfortheORgate,exceptthattheNORgatehasabubbleontheoutput.ThebubblemeansthattheoutputisinvertedfromtheORgate.ThisisasymbolicwayofshowingthesamethingwediscoveredinFigure4-20,comparingtheYoutputcolumnsoftheORandNORgates.RememberthattheNORgatelogicsymbolrepresentsaphysicalsystemwithfourfaucetsinside:threefromanOR,andonefromaninverter.

CHAPTERFIVESWITCHES

Wehavespentenoughtimeonfaucets.OurgoalistoteachyouhowtheseOR

andNORgates,inverters,andmicroprocessorsareimplementedwithtransistors.But,beforewedothat,wemustpickupthestoryofelectronicswhereweleftoff.Inourexplorationofelectronicswefoundthatthe“pressure”ofvoltage

producedbyabatteryiscausedbypositivechargeforcedtogetherononeterminal,andnegativechargeforcedtogetherontheother.Thisresultantpressureiscomparabletothewaterpressureproducedbyawaterpump,causedbyaspinningpropeller.Wenextfoundwecouldmakecurrentflow—makeelectronsmove—fromthe

negativebatteryterminaltothepositiveterminalofthebattery.Wedidthisbyconnectingasemi-conductor,likearesistor,acrossthebatteryterminals.Let’slookatresistanceforamoment.Seethepicturebelow.

FIGURE5-1Onekindofresistance,orsemiconductor,iscalledaresistor.Itisanelectronics

componentspecificallydesignedtocontroltheamountofcurrentflow.TheoneinFigure5-1,part(a),isaboutacentimeterlong,andcostsapenny.TheelectricalsymbolofresistanceisthejaggedlineshowninFigure5-1,part(b).Whenwebuyaresistor,wechoosehowmuchwewantittolimitcurrentflow.

Theunitofmeasurementofresistanceisohms,symbolizedbytheomegasymbol:Ω.Ifwebuyaresistorwithmoreohms(moreresistance),lesscurrentflows.Wecanbuyresistorsinunitsoflessthananohmuptounitsofgreaterthanamillionohms.Wecanactuallycalculatehowmuchcurrentwillflowwiththeequationcalled

Ohm’sLaw,whichstatesthatI=V/R.“I”isthelettersymbolforcurrent,inunitsofamperes,“V”isthelettersymbolforvoltage,inunitsofvolts,and“R”isthelettersymbolforresistance,inunitsofohms.Forexample,ifweconnecta6ohmresistoracrossa12voltbattery,then2amperesofcurrentwillflow,sinceI=V/R=12/6=2amps.Seethepicturebelow.

FIGURE5-2

Figure5-2isthewayweshouldhavebuiltfigure3-2,sinceitcontainsaresistor

tolimitcurrentflow.Thereareafewthingsyoushouldnotice.First,wehaveconnectedtheresistortothebatterywithtwowires.Second,thevoltageappearsacrossthebatteryterminals,andisappliedacrosstheresistor.Third,thecurrentflowsthroughthetwowires,throughtheresistor,andthroughthebattery.Forth,eventhoughtheelectronsflowfromthenegativebatteryterminaltothepositiveterminal,weusuallydrawthe“conventional”currentflowtheotherway:fromthepositiveterminaltothenegative.Thisconventionisduetoanearlybadguessbyinvestigatorswhoassignedthisdirectionbeforeweknewaboutelectrons.

FIGURE5-3Figure5-3istheschematicdiagramofthecircuitinFigure5-2.Aschematic

diagramisanelectronicsshorthandmethodofrepresentingaphysicalcircuit.Itusesschematicsymbolsinplaceofpicturesofactualcomponents.Ihaveintroducedthesesymbolsinpreviousfigures.GivenFigure5-3,anelectronicstechnicianorengineercanbuildthecircuitdrawninFigure5-2.Let’slookatanotherschematicdiagram.SeeFigure5-4,below:

FIGURE5-4

CompareFigure5-4toFigure5-3.Thefirstthingtonoticeisasecondresistor.

Ifyouweretobuildthiscircuit,youwouldconnectawirefromthepositiveterminalofthebatterytooneendoftheresistorlabeledR1.YouwouldconnectasecondwirefromtheotherendofresistorR1tooneendofresistorR2.Youwould

connectathirdwirefromtheotherendofresistorR2tothenegativeterminalofthebattery.Youcouldsolderthewireconnections,orusewiresterminatedbyalligatorclipsorspring-loadedclips.Thewirescouldevenberibbon-likecoppertracesonacircuitboard.Thesecondthingtonoticeisthathalfasmuchcurrentflowsnow,comparedto

Figure5-3.Thisisbecausethesame12voltbatterynowhastoworktwiceashard,forcingelectronsthroughtwiceasmuchresistanceasbefore:6ohms+6ohms=12ohms.Twiceasmuchresistancetothesamevoltageleadstohalfasmuchcurrent.Ohm’sLawpredictsthis:I=V/(R1+R2)=12/(6+6)=12/12=1amp.Let’sredrawFigure5-4asFigure5-5,withresistorvalueschanged:

FIGURE5-5InFigure5-5,wearerevealingsomethingstrange.Thereiscertainlynothing

oddaboutlabelingthevoltageacrossthe12voltbatteryasbeing12volts.Butstrangely,weareclaimingthat4voltsappearsacrossthe4ohmresistor,and8

voltsappearsacrossthe8ohmresistor.Arewetryingtoclaimthattheresistors,likethebattery,cancreatevoltage?Absolutelynot.Figure5-5revealsjusttheopposite:inasense,theresistors

takeawayvoltage.Figure5-5exhibitsforustheLawofConservationofEnergy.Inthiscase,alltheenergyputintothesystemisexactlyequaltoalltheenergythatcomesoutofthesystemaswork.Itwouldbehardforyoutocometothisconclusion,becausetraditional

electronicsterminologyhidesthetruth.YoulookatthecircuitofFigure5-5andseethreevoltages.Butthesevoltagesarenotthesame.Itwouldbeniceiftheywerelabeleddifferently,buttheyarenot:theyareallcalled,“voltages,”andmeasuredinunitscalled,“volts.”Intruth,thevoltageacrossthebatteryisonekindofvoltage,andthevoltage

acrosstheresistorsisanotherkindofvoltage.Thevoltageacrossthebatteryisinputenergy(percoulombofcharge).Thevoltageacrosstheresistorsisoutputwork(percoulombofcharge).NowwhenyoulookatFigure5-5,youcanseetheLawofConservationofEnergyinplay.Theinputenergyis12volts,acrossthebattery.Thisexactlyequalstheoutputenergy(work)of4voltsplus8voltsequals12voltsacrosstheresistors.ThelittleplusandminussignsinFigure5-5areatraditionmeanttoflushout

thishiddendifference.Ifyoutraceyourfingerinaclockwisedirectionaroundthiscircuit,youwillfindthattheorderoftheplusandminussignsareoppositewhenencounteringabattery,comparedtoencounteringaresistor.Asyourfingergoesclockwise,whenyourfingerentersabattery,itwilltouchanegativesign,andwhenitexitsabattery,itwilltouchapositivesign.Stillgoingclockwise,whenyourfingerentersaresistor,itwilltouchapositivesign,andwhenitexitsaresistor,itwilltouchanegativesign.StillfocusingonFigure5-5,noticethelabelsA,BandN.Inanelectricalcircuit,

weusuallypickaneutralpoint,whichIhavelabelled,“N.”Theneutralisapointofreferenceforallourvoltagemeasurements.Wechooseittobeour“zerovolts”point.Oncewepickourneutral,allourvoltagemeasurementsarerelativetoneutral.Thereisnoabsolutezerovoltagepoint,onlyarelativezerovoltagepoint.Remember,thebatteryhaspressureonbothends,negativepressureontheanode,andpositivepressureonthecathode.Wetraditionallypickthenegativebatteryterminalasneutral.Thewireleadingtothebottomresistorisalsoneutral.MovinguptheleftsideofFigure5-5,fromNtopointA,thebatterycausesour

circuittogofromzerovoltsupto+12volts.Wenowhave+12voltsrelativetoneutral.Sometimeswesaywehavegained12voltsofelectricalpotential.Youmayremembertheconceptsofpotentialandkineticenergyfromhigh

schoolphysicsclass.AtpointA,ourcircuitnowhasthepotentialenergytodo12voltsworthofwork.Butwhatisthework?Theworkisforcingelectronsthrough4+8=12ohmsofresistance.LooknowatpointBinFigure5-5.Atthispoint,the12voltsofelectricalvoltage

potentialhasaccomplishedsomework:ithasforcedelectronsthroughthetop,4ohmresistor.Wemeasurethatworkas4voltsacrossthe4ohmresistor.Wesaywehadavoltagedropof4volts,becausewebeganwith12volts,butdid4voltsofwork,sowehave12-4=8voltslefttoforcecurrentthroughthe8ohmresistor.Whenwemeasurethe8voltsacrossthe8ohmresistor,wearemeasuringtheworkdonebythebatterytogetthecurrentthroughthe8ohmresistor.Westartedwith12voltsofenergy,completed12voltsofwork,andhavearrivedbackatneutral(N),backatzeroenergy.But,whyisthere4voltsofworkdoneacrossthe4ohmresistor,and8voltsof

workdoneacrossthe8ohmresistor?Well,weknowthatthetotalworkhastoequal12volts,becausethetotalenergyfromthebatteryis12volts,andtheLawofConservationofEnergysaystheworkoutmustequaltheenergyin.Verysimply,it’stwiceasmuchworkforthebatterytoforceelectronsthroughan8ohmresistorthanitistopushelectronsthrougha4ohmresistor.So,wemeasuretwiceasmuchvoltage,8volts,acrossthe8ohmresistor,thanthe4voltswemeasureacrossthe4ohmresistor.Ichose4ohmsand8ohmsformyconvenience,toarriveat4and8volts.But,

iftheupperresistorhadbeen12ohmsandthelowerresistorhadbeen24ohms,westillwouldhavemeasured4voltsacrosstheupperresistorand8voltsacrossthelowerresistor.Thetotalhastobe12volts,andit’stwiceashardtogetcurrentthrougha24ohmresistorasthrougha12ohmresistor,so4voltsmustbemeasuredacrossthe12ohmresistorand8voltsmustbemeasuredacrossthe24ohmresistor.(Ofcourse,lesscurrentwillflowinthecircuitwiththe12and24ohmresistorsthaninthecircuitwiththe4and8ohmresistors.)Asananalogy,it’stwiceasmuchworkforyoutolifta24poundweightasitisforyoutolifta12poundweight.Figure5-5mightremindyouofphysicsconceptsofpushingarockupahill.

TheleftsideofFigure5-5isuphill.Therightsideisdownhill.Youhaveenergyfromthefoodyoueat.(Thebatteryhasenergyinitschemicalstructure.)Youdoworkbypushingarockupahill.(Thebatterydoesworkbyseparatingcharge.)Therocknowhaspotentialenergy.(Thepositiveandnegativeionshaveelectricalpotentialenergy.)Whentherockfallsdownthehill,itreleasesenergyaskinetic,workenergy.(Whentheelectronsgodownthroughtheresistors,theyreleaseenergyaswork-doneenergy).Whentherockfallsbackdownthehilltoitsstartingpoint,itnolongerhastheenergyyouputintoit.(Whentheelectronsgetbacktoneutral,theynolongerhavetheenergythebatteryputintothem.Thebatterymustputenergybackintothemtokeepcurrentflowing.)Youmaythinkwehavegottenoff-track.Yes,thisiselectronics.Butwhatdoes

allthishavetodowithdigital,orbinarysystems?Rightnow,wearegoingtomakeonechangeinthissystemtoturnitintobinary.Lookatthepicturebelow:

FIGURE5-6

Figure5-6isjustlikeFigure5-5,butthebottom,8ohmresistorhasbeen

changedtoa0ohmresistor.Ratherthandrawthejaggedresistorsymbol,Ihavedrawnawire.Awirehas0ohmsofresistance—ornoresistancetocurrentflow—becauseitisaconductor.Infact,Ihavedrawnthesymbolforaclosedswitch.Youhaveusedswitchesthousandsoftimesinyourlife.Aclosedswitchturnsonalightorbrewsthecoffee.Aclosedswitchisjustawire.Weneedtomakesenseofthevoltagemeasurementacrossthewire,the

closedswitch.Thebatteryis,likebefore,12volts.So,thevoltagedropsacrosstheresistorandthewiremustaddupto12volts.Theydo:the12voltsacrosstheresistorplusthezerovoltsacrossthewireequal12volts.Whyisthere0voltsacrossthewire?Because,ittakesnoworkforthebatterytogetcurrentthroughawire.Awiredoesnotresistcurrentflow:itisnotasemiconductor,itisaconductor.Alltheworkthebatterydoesgettingcurrentthroughthecircuitisexpendedontheoneresistor.

Now,let’sopentheswitch.Lookatthepicturebelow:

FIGURE5-7TheonlythingwehavedoneinFigure5-7—comparedtoFigure5-6—is

openedtheswitch.Remember,theswitchisthecomponentonthebottom-rightofourfigure.Whenweopenaswitch,alightgoesoff,orcoffeestopsbrewing.Weeffectivelyremoveawirefromacircuit.Actually,oneendofthewireispushedtotheside,justlikepicturedinFigure5-7.Thecircuitisnolongeracircuit:currentcan’t“circulate.”SuchasimplechangecausessomestrangeresultsinFigure5-7.First,the

resistanceacrosstheswitchisnowinfinity!Thereisnow,effectively,nocomponentwherethewireoftheclosedswitchusedtobe.Theonlythingbetweenthetwocontacts—thedotsinthefigurethatarepointsofcontacttotheexternalwiresofthecircuit—isair.And,airisaninsulator.Insulatorshaveinfiniteresistance.Next,thevoltagemeasurementsinFigure5-7havereversed,comparedto

Figure5-6.Zerovoltsarenowacrosstheresistor,and12voltsarenowacross

theopenswitch.Thisresultisoftennotwhatpeopleexpect.Peopleexpecttofindzerovoltsattheswitchif“nothing”isthere.Instead,wefind0voltsacrosstheresistor,becausenoworkisbeingdone

there.Sincethisisan“open”circuit,nocurrentisflowing.Ifnocurrentisflowingthroughtheresistor,thebatteryisdoingnoworkthere.Next,let’slookatthe12voltsacrosstheopenswitch.Aswewentclockwise

frompointNinthecircuit,throughthebattery,topointA,potentialenergyroseto+12volts.Sincenovoltsdroppedacrosstheresistor(nocurrentflowmeansnoworkdone)thevoltageatpointBmuststillbethesameasatpointA:12volts.Sinceallvoltagesarerelativetoneutral,thatmeanswehave12voltsacrosstheopenswitch.Anotherwaytolookatthisisbycomparingittothe“waterfaucetoff”figure.In

the“off”waterfaucet,nocurrentflows,soallthewaterpressureisappliedtothevalve.Similarly,inFigure5-7,sincenocurrentflows,undiminishedvoltageisappliedtothetopoftheswitch(pointB),relativetothebottom(pointN).YoumaychoosetoviewtherightsideofFigure5-7tobeliketwovoltage

drops,0+12=12volts,addinguptothevoltageriseontheleftsideofFigure5-7.WedidthisinFigures5-5and5-6.Or,youmaychoosetoseenovoltagedrops:noworkhasbeendone,soeverywherewelook—otherthanneutral—wefindpotentialenergy,or12volts.ComparingFigures5-6and5-7,weseegoodreasonforleavingelectricalwork

totrainedpeople.Figure5-7couldbethelightswitchinyourhouse;theresistorcouldbealightbulb;andthevoltagecouldbeadangerous120voltsAC.Anuntrainedpersonmightthinkthat,sincetheswitchisoffandthelightisoff,thentheelectricityisoff,andit’ssafetotouchtheswitchcontacts.WRONG!Thatpersonwouldbepartofalivecircuit,andcouldgetafatalshock.Counter-intuitively,itissafertotouchacrosstheclosedswitchindiagram5-6,sincenovoltageappearsacrossit.Don’tdothiseither:somethingelsecouldbewrongwiththecircuit,soitcouldstillfatallyshockyou.Atthispoint,wehaveabinaryelectricalsystem.Thetwostatesare,physically,

12voltsand0volts.Likewiththefaucetsystem,“on”and“off”arebackwards.Whentheswitchison—makingcurrentflowandalightturnon—thevoltageacrosstheswitchis“off,”or0volts.Whentheswitchisoff—makingcurrentstopandalightturnoff—thevoltageacrosstheswitchis“on,”or12volts.

CHAPTERSIXTRANSISTORS

Unfortunately,theswitch-basedbinarysystemisnotgoodenoughtosatisfyour

needs.Itrequiresahumantofliptheswitch.That’swhyweneedthetransistor.Weneedanelectroniccomponentthatactslikeaswitch,buthasaninputsidethatcontrolswhethertheswitchisonoroff.And,thatinputsidemustbeabletobecontrolledbytheoutputsofothertransistors.Let’slooknowatatransistorcircuit.Seethepicturebelow:

FIGURE6-1

Beforeweproceed,rememberoutgoal.Wewantanelectronicdevicethatacts

likeanelectricalswitch(Figures5-6and5-7),butonethatcanbecontrolledbyotherdevicesofthesamekind(likethefaucetsofFigures4-4through4-7).

InFigure6-1,weintroduceatransistor.Itselectronicsymbolisinthelowerright-handcorner:acirclecontaininganalien-lookingsymbol.Itisathree-terminaldevice,withtheconnectionsnamedS,G,andD,forsource,gate,anddrain.First,let’sgetsomephysicalexercise.Figure6-1separatesneatlyintotwo,

interrelatedpaths.Useyourfingertotraceonepath.Startatthe+terminalofthebattery.Moveclockwise:up,right,thendownthroughtheresistorlabeledRout.Keepgoingthroughthetransistor,enteringthedrain(D),andexitingthesource(S).Godown,thenleft,thenuptothenegativeterminalofthebattery.Thisistheoutputpathofourcircuit.Next,let’stracetheinputpath.Again,startatthe+terminalofthebattery.

Moveclockwise:up,right,thendownthroughtheresistorlabeledRin.Keepgoingthroughthetransistor,enteringthegate(G),andexitingthesource(S).Godown,thenleft,thenuptothenegativeterminalofthebattery.Asyoutraceeachofthesetwopaths,trytoseethateachoneresemblesthe

kindsofcircuitswesawinFigures5-5,5-6,and5-7.Imaginethevoltagerisingontheleft,thenfallingontheright,asitprogressesthroughtheresistorandthetransistor.Noticehowbothpathsinvolvethetransistor,butthroughdifferententrypoints.Wewillhavemuchtosayabouttheinterrelationshipofthesetwopaths.ThekindoftransistorIhavechoseniscalledanN-channelenhancement-mode

MOSFET(metal-oxidesemiconductorfieldeffecttransistor).Ichoseitbecauseitistheonethatmostresemblesthewaterfaucetmodelabove,andbecauseitiscommonlyusedinmicroprocessorsduetoitslowpowerconsumptionandfastswitchingspeed.Here’showthistransistorworks.Applyingavoltageatthegatethatismore

positivethanthevoltageatthesourcecausesconventionalcurrenttoflowfromthedraintothesource(electronsactuallyflowtheotherway,buttrytoforgetthat).Thegreaterthegate-to-sourcevoltage,thegreaterthedrain-to-sourcecurrent.That’sallyouneedtoknowforabasicunderstandingofthistransistor.So,whatcanwedowithtransistors?Well,foronething,wecanmakea

voltageamplifier.Asmallaudiosinewaveacrossthegate-to-sourcecausesasinewaveofcurrentfromdrain-to-source,whichcausesalargevoltagesinewaveacrossasuitablylargeRoutresistor.Butwecarehereabouttheuseofthetransistornotasanamplifier,butasa

switch.Here’swhatmakestransistorsdifferent,andalittlestrange.WhenwegobacktoourbasicelectronicstheoryofFigure5-3(onebatteryacrossoneresistor),wefindthatcurrentisbeingcontrolledbyourchoiceofvoltageandresistance.Oncewechosea12voltbatteryanda6ohmresistor,theamountofcurrentwasdetermined.Ohm’sLawsaidwewouldget:I=V/R=12/6=2ampsofcurrent(Review:Istandsforcurrent,Vstandsforvoltage,Rstandsforresistance).But,theRoutresistordoesnotcontroltheamountofcurrentflowthrougha

transistor.LookatFigure6-1.+5voltsfromthebatteryisacrossthecombined50

ohmresistorandthedrain-to-sourceofthetransistor.Andyet,the50ohmresistordoesnotaffectthecurrentthroughthatbranch.Ifitwasa100ohmresistor,thesameamountofcurrentwouldflow!Thisupendswhatabeginnerinelectronicsistaught:thatmoreresistancecauseslesscurrent.Wehavetocomeupwithanewnameforthedrain-to-sourcepathofthe

transistor.Wecallitadependentcurrentsource.It’skindoftheoppositeofabattery.Abatteryproducesa(somewhat)constantvoltage,regardlessofwhatcurrentcomesoutofit.Acurrentsourceproducesa(somewhat)constantcurrent,regardlessofwhatvoltageappearsacrossit.So,thecurrentfromdrain-to-sourceisdetermined.Whatdeterminesit?I

alreadytoldyou:thevoltageacrossthegate-to-source.Thedrain-to-sourcecurrentisthesamecurrentthatgoesthroughRout.Yet,thevalueofRoutdoesnotcontroltheamountofcurrentthatgoesthroughitself!Thedrain-to-sourcecurrentcontrolsRout’scurrent,andthedrain-to-sourcecurrentisitselfcontrolledbythegate-to-sourcevoltage.Ifyouwanttobereallyfancy,youcancallthisMOSFETdependentcurrentsourceavoltage-controlledcurrentsource,sincethegate-to-sourcevoltagecontrolsthedrain-to-sourcecurrent.Sincethegate-to-sourcevoltageisthecontroller,whatisthevalueofthegate-

to-sourcevoltage?Well,the+5voltsfromthebatterygoesacrossthecombinedRinresistorandthegate-to-sourceofthetransistor.Butyouneedtoknowthis:theresistanceoftheMOSFETtransistor’sgate-to-sourcepathisnearlyinfinite,likeanopencircuit.IfyoulookbackatFigure5-7andrememberhowvoltagesbehaveinanopencircuit,youwillseethatallthe+5voltsappearacrossthegate-to-source,andzerovoltsappearacrosstheRinresistor.Thisisonereasonthatthistransistorisagoodchoiceformicroprocessorsthat

havemillionsoftransistorspackedtogether.NocurrentflowsthroughRinorthroughthegate-to-sourceoftheMOSFET.Nopower,hencenoheatisgenerateddownthatpath.Controloftheoutputismaintained,notbyinputcurrent,butbytheelectricfieldgeneratedbytheinputvoltage.(Weexplainedthiselectricforcefieldearlierinthisbook.)ThiselectricfieldisinsidetheMOSFET.Thegate-to-sourcevoltagecontrolstheelectricfieldintensity,andtheelectricfieldintensitycontrolshowmuchcurrentisallowedtoflowfromdrain-to-source.That’swhythisdeviceisanFET:fieldeffecttransistor.Toreiterate:+5voltsappearsacrossthegate-to-sourceofthetransistor.From

this,howdoweknowhowmuchcurrentflowsfromdrain-to-source?WelookitupinthedatasheetfortheparticularMOSFETwebought.Let’ssaywefindthatourmodelMOSFETproduces.1ampsfromdrain-to-

sourcewhen+5voltsarepresentfromgate-to-source.Thismeansthat.1ampsalsoflowsthroughthe50ohm,Routresistor.Fromthis,wecancalculatethevoltagedropacrossthe50ohmresistor.WeusealgebratorearrangeOhm’sLaw,I=V/R,sothatitbecomesV=IxR.ThisformofOhm’sLawbeautifullydescribeshowavoltagedrop,V,isthework

done(percoulombofcharge)bytheenergysourceingettingcurrentthrougharesistance.InV=IxR,ifIisafixedvalue,thenincreasingRmeansmoreworkwasdoneingettingthatsameI(current)throughabiggerresistance.Ontheotherhand,ifRisafixedvalue,thenincreasingImeansmoreworkwasdonepushingmorecurrentthroughthesameresistance.Usingthisequation,wefindthatthevoltagedropacrossthe50ohmresistoris:

V=IxR=.1x50=5volts.Ichosethesevaluesonpurpose,becauseIwanted5volts.You’llseewhyinamoment.(Aside:inarealworldcircuit,Iwouldchooseabiggerresistorvalue,toreducepowerconsumption,butthatisanadvancedtopicthatwouldruintheclarityofthistutorial.)Looknowatthepicturebelow:

FIGURE6-2OntheleftIhaveredrawnFigure6-1withallthevoltagesandcurrents.Onthe

rightIhaveredrawnFigure5-6,slightlymodifiedtobemoreequivalenttothecircuittoitsleft.Wejustconcludedthatwehavea5voltvoltagedropacrossthe50ohmresistor.Ifwestartedwitha5voltvoltagerisefromthebattery,andused5voltsofworktogetcurrentthroughthe50ohmresistor,wehave0voltsofworklettogetthecurrentthroughthedrain-to-sourceofthetransistor.Thismeansthatthedrain-to-sourceofthetransistor,withzerovoltsacrossit,isactinglikeawireoraclosedswitch:acomponentwithnoresistance,causingnovoltagedrop.CompareFigure6-2,part(a),withFigure6-2,part(b),toseethismoreclearly.

Allthevoltagesandallthecurrentsintheoutputpathalignexactly.Thetransistorisbehavinglikeaclosedswitch.Itmayhavetakenusmanyparagraphstoexplaintheprocess,buttheresultissimple.NoticealsothattheinputpaththroughRinto

thegateseemstodisappear,sincenocurrentgoesdownit.ThepaththroughRinisimportant,though.Let’schangethatpath.Lookatthe

picturebellow:

FIGURE6-3

ComparedtoFigure6-1,theonlychangeisthatoneendofRinisnow

connectedtoneutral:tothenegativeendofthebattery.Remember,neutralisthe0voltspoint,thereferencepointfromwhichwemakeallourvoltagemeasurements.Wenowhavenovoltagedifferencebetweenthegateandthesourceofthetransistor.Ifyoutraceyourfingerfromthenegativeofthebattery—0volts—andgoupthroughRin,outthetopofRin,turnright,enterthegateofthetransistor,thencomeoutthesourceofthetransistor,youwindupwhereyoustartedfrom:0volts.Reiterating:thereisnovoltagedifferencebetweenthegateandthesourceof

thetransistor.Thedrain-to-sourcecurrentofthetransistoriscontrolledbythe

amountofgate-to-sourcevoltage.Lessgate-to-sourcevoltageproduceslessdrain-to-sourcecurrent.And—thespecificationsheetsforthistransistortellus—novoltagedifferencebetweenthegateandsourceofthetransistormeansnocurrentflowsfromitsdraintoitssource:0amps.Ifthereisnodrain-to-sourcecurrent,itiseffectivelyanopencircuit.Lookatthepicturebelow:

FIGURE6-4Figure6-4,part(a),isarepeatofFigure6-3.Figure6-4,part(b),isarepeatof

Figure5-7,anopenswitchcircuit.Ifyoucomparethevoltagesinthesetwocircuits,youwillnoticethattheirvoltagesexactlycorrespond.Youwillalsonoticethattheircurrentsexactlycorrespond:nocurrentflowsanywhere.YouwillconcludethattheMOSFETtransistorcircuitwith0voltsinputatthegatebehavesexactlylikeanopenswitch.Let’ssummarize,then.AMOSFETtransistorcircuitwith5voltsinputatthe

gatebehavesexactlylikeaclosedswitch(Figure6-2).AMOSFETtransistorcircuitwith0voltsinputatthegatebehavesexactlylikeanopenswitch(Figure6-4).Furthermore,theMOSFETswitchiscontrolledbyinputvoltage,ratherthanahumanhandflippingtheswitch.TheinputvoltagecanbefromotherMOSFETtransistors.Weweregettingsurprisinglyfarwithourbuildingourbinarylogicsystemfrom

thegroundupwithwaterfaucets.Let’splaceafaucetside-by-sidewithourMOSFETtransistorcircuit.Seethepicturebelow:

FIGURE6-5

Closeexaminationrevealshowsimilarthetwocircuitsare.Myhopeisthatyour

understandingofwatersystemsyouhavebeenusingsinceyouwereachildwillhelpyouunderstandthelessintuitivetransistorcircuit.Let’sstartwiththeflow.Imodifiedthewatersystemalittle,tohavethewater

circulateinsteadofcomingfromareservoir.(Otherwise,youwoulddepletethissystemwhenyoudrinkthewater.)Ifyoucomparethewaterflowpathwiththecurrentflowpath,youwillfindthattheycirculateidentically.Noticehow,inpart(a),thewaterthatisapplyingpressuretothevalve’sbuttonisnotflowing(moving).Nevertheless,itisaconduitforthepressurefromthepump.Thesamephenomenahappensin(b).Eventhough0ampsofcontinuouscurrentflowsdowntowardthegateofthetransistor,theredistributionofelectronsonthesourceandgatecausedbythebatterycreatesthegate-to-sourcevoltage.Let’snowcomparethewaterpressuretovoltage.Thepumpisthesourceof

waterpressure,asthebatteryisthesourceofvoltage.InFigure6-5,part(a),pumppressure(transmittedthroughthewater)appliespressuretothevalve’sbutton,turningonwaterflowthroughthefaucet.InFigure6-5,part(b),batteryvoltage(causingaredistributionofelectronsonthesourceandgate)appliesthevoltagethatturnsoncurrentflowthroughtheoutputdrain-to-sourcepath.Also,noticeinFigure6-5,part(b),thatthereisnovoltagedropacrossthe

drain-to-sourceofthetransistor.Thesameholdstrueinpart(a):thereisnowaterpressureonthevalve.ThedifferenceyoumightfindbetweenthetwopartsofFigure6-5isthe

presenceofresistanceinpart(b).But,therereallyisresistancetowaterflowinpart(a).Thepipesthemselvesactasthisresistance.Theskinnierthepipe,themoreresistancetowaterflow,producinglesswaterflow:Flow_rate=1/4xπx(pipe_diameter)2x(water_velocity).Forexample,replacinga

pipewithonethat’shalftheoriginalpipe’sdiametercausesthewatertoflowataquarteroftheoriginalflowrate.Let’snowlookattheno-flowcounterpartstothesystemsinFigure6-5.Seethe

picturebelow:

FIGURE6-6

WefindgreatsimilaritiesbetweenFigure6-6,part(a),the“off”drinking

fountain,andpart(b),the“off”MOSFETtransistorcircuit.Let’slookatcurrents,first.Nocurrentflowsanywhere.Nowatercurrent,noelectroncurrent.Let’slooknextatinputpressures.Neithersystemhasinputpressure.Inpart

(a),theon/offbuttongetsnowaterpressure.Thewatercomingfromthebottomisnotpressurized:itdoesn’tgetpressurizeduntilitcomesoutthetopofthepump.Inpart(b),thegatehasnovoltageinrelationtothesource,becausebothpathsleadtoneutral,ourcircuit’s0voltsreference.Now,let’slookatoutputpressures.Bothsystemshaveoutputpressure.Inpart

(a),thevalve,notbeingturnedon,isblockingthewaterflow.Hence,itisreceivingthewaterpressure.Inpart(b),thedrain-to-source,notbeingturnedon,isblockingdrain-to-sourcecurrentflow.Hence,thedrain-to-sourceisreceivingthebatterypressure.LookingatFigures6-5and6-6onelasttime,wefindthefaucetandtransistor

systemsalmostidentical.Youmerelyneedtosubstitutethewords“waterpressure”and“voltage”,andsubstitute“waterflow”and“current”,tomakethesystems’descriptionssoundthesame.Tosummarize,then,whenwelookatfigures6-2,6-4,6-5,and6-6,wefindthat

ourMOSFETtransistorcircuitbehaveslikeacontrollabledigitalswitch.Wealsofindthatitworksmuchliketheon/offwaterfaucetthatwestudiedearlier.Because

ofthissimilarity,wecanreplaceourearlierfaucet-baseddesignswithtransistor-basedones.Lookatthepicturebelow:

FIGURE6-7

Youmightwonderwherethebatteryis.Electricalcircuitsoftendon’tshowit,for

avarietyofreasons.Thepowersupplyvoltageandneutralareusuallydrawnlikethis,aslabels.Infact,forMOSFETcircuits,5voltsisoftenlabelled“VDD,”and0voltsisoftenlabelled“VSS.”

Figure6-7islikeouroldFigure4-6,fortwofaucets.Inspiteofallthecomplexityinunderstandinghowelectricityandtransistorswork,ourcircuitcanreallyonlydotwothings.Itcanonlybeineitherstate(a),ontheleft,orstate(b),ontheright.RecallthatwerefertothebehaviorinFigure6-7asan“inverter.”+5volts(gate-

to-source)inputgetsinvertedinto0volts(drain-to-source)outputinpart(a).0volts(gate-to-source)inputgetsinvertedinto5volts(drain-to-source)outputinpart(b).Inthepicturebelow,Ihavereplicatedourearlierinvertertruthtableandlogicsymbolthatwedevelopedusingawaterfaucet:

FIGURE6-8Noticehowclearandunclutteredthesetwopicturesare,comparedtothe

actualcircuitinFigure6-7.Thelabels,AandY,shouldhelpyouunderstandhowFigure6-8representstheactualcircuitinFigure6-7.FindthepointsmarkedAandYinFigure6-7.Fromthepointofviewofthelogic,theyaretheonlypointsthatmatter.ThatiswhyFigure6-8iseasiertounderstand:everythingelseinthecircuithasbeenthrownawaytocreateFigure6-8.Ifyouneedabriefreview,Figure6-8,part(a)isthetruthtablefortheinverter.

“1”standsfor“true,”or“itistruethat5voltsispresent.”“0”standsfor“false,”or“itisfalsethat5voltsispresent,so0voltsmustbepresent.”A1isusedinsteadof5becausenotalldigitalsystemsuse5volts.Also,1istraditionalandconvenientintheformalstudyoflogicandBooleanalgebra.ThefirstrowrepresentseverythingyouneedtoknowaboutFigure6-7,part(b).ThesecondrowrepresentseverythingyouneedtoknowaboutFigure6-7,part(a).Figure6-8part(b)displaysthisinformationsymbolically:itletsyouknowthatAistheinputtotheinverter,andYistheoutput.Together,thesetwoitemssay,“0voltsingivesyou5voltsout,”and“5voltsingivesyouzerovoltsout.”Next,let’sredrawFigure4-11,andshowhowonetransistorinvertercancontrol

asubsequentone.Lookatthepicturebelow:

FIGURE6-9Doyourememberthisdiagram?Let’sseehowtoimplementthislogicusing

transistorsinsteadofwatervalves.Lookatthepicturebelow:

FIGURE6-10

Figure6-10isthephysicalcircuitsymbolicallyrepresentedinFigure6-9.TheY-

to-AlineinthemiddleofFigure6-10istheconnectionbetweenthefirstinverterandthesecond.FindwhereIhavelabelledtheresistorsR1andR2,andthetransistorsT1andT2.Thislabellingisstandardpractice,andsaveswordsinthenextparagraphs.First,refertoFigure4-4.SeeingFigure6-10intermsofwaterpressurewillhelp

you.ThinkoftransistorT1asawatervalvethatisturnedoff,sinceithasnopressure(voltage)atitsinput.Sincepressurizedcurrentcan’t“drain”downthroughT1’sdrain,thepressurizedcurrentinsteadappliesitselftotheinput“button”(gate)ofT2.ThisturnsontheoutputcurrentflowdownT2,drain-to-source,removing“pressure”(voltage)there.Nowlet’sspeakpurelyinelectronicratherthanhydraulic,terms.Let’ssayin

wordswhatFigure6-10pictures.Anexternal0volts,probablyfromsomeotherlogicgate,reachesthegateoftheT1.Thisturnsoffcurrentflow,drain-to-source,inT1.Thatbecomesacurrentflowdead-end.YoumightthinkthatcurrentmightinsteadflowacrossfromYtoAandintothegateofT2.But,that’sacurrentflowdead-end,too.Byitshigh-resistancenature,nocurrenteverentersthegateoftheT2.ThatmeansnocurrentgoingthroughtheR1,noworkisdonetoit,andsonovoltagedropsacrossit.Thus,theexternal5voltsbypassesR1,andisapplieddirectlytothegateofT2.Thisturnsthedrain-to-sourceoutputcurrentofT2on.Thatoutputcurrentispulleddownfromthe5voltsupplythroughR2.Wedesignedourcircuitsothatall5voltsofwork/coulombdropsacrossR2.Thisleaves0voltsremainingacrossT2’sdrain-to-source.Or,tomakealongstoryshort,0voltsentersthefirstinverter,and5volts

comesoutofit.That5voltsisappliedtothesecondinverter,and0voltscomesoutofit.

WecanmakeFigure6-10easiertounderstand.Lookatthepicturebelow:

FIGURE6-11Figure6-11isthesamecircuitasFigure6-10.Butremember,wesaid

transistorscanactasswitches,solet’sreplaceT1andT2byswitches.SinceT1isoff,wereplaceitwithanopenswitch,asseeninFigure6-4.SinceT2ison,wereplaceitwithaclosedswitch,aseeninFigure6-2.Now,wehavesimplifiedfromthecomplicatedtransistortothesimplerswitch.Butnext,wecanmakethiscircuitsimpler,still.Lookatthepicturebelow:

FIGURE6-12

Nowwehavetrulysimplifiedthecircuit.Figure6-12isthesimplificationofFigure6-11,whichitselfsimplifiedtheactualcircuitrepresentedbytheschematicinFigure6-10.Lookbackatpart(a)ofFigure6-11.T1’soutputisanopenswitch.Anopenswitchisforallintentsandpurposes,nothing.Itisair.Nocurrentgoesthroughit.Inasense,it’snotthere.So,inFigure6-12,part(a),Ididn’tdrawit.Next,lookbackatpart(b)ofFigure6-11.T2’soutputisaclosedswitch.A

closedswitchis,forallintentsandpurposes,nothingbutawire.So,InFigure6-12,part(b),Idrewawireleadingtoneutral.TherewasnoneedtodrawR2orthe5voltsfeedingit,becausetheydon’taffecttheoutput.T1andT2’sgateinputsaresuperhighresistances,sotheydon’tallowinput

current(althoughtheydoaffectoutputcurrent).ThisisanotherreasonnottodrawT1orT2.Conceptually,thisishowsimplethecircuitinFigure6-10trulyis.Let’sstep

throughFigure6-12.Weseethat0voltsentersfromtheleft,asA.WithT1theoreticallygone,the5voltsfromthepowersupplycomesinfromtheupperleft,goesoutoftheleftinverter’sYoutput,andenterstherightinverter’sAinput.Finally,0voltscomesoutoftheYoutputofinverter2,becausenovoltageeverappearsacrossawire(Remember?Noworkisneededtomoveelectronsthroughnoresistance.)Thetricktosimplifyingthesecircuitsistonoticethattheoutputsideofeach

inverterdividesintotwohalves:aswitchandneutralonthebottomhalf,andaresistorand5voltsonthetophalf.(SeeFigures6-2and6-4.)But,iftheswitchison,theoutputreducestothewireandneutralonthebottomhalf.Iftheswitchisoff,theoutputreducestotheresistorand5voltsatthetop.Now,let’slookatthecircuitinFigure6-9again,butthistimewithalogical1,or

5volts,enteringonthefarleft.Seethepicturebelow:

FIGURE6-13

ThistimewewillskipthestepsfromFigure6-10—drawingthecircuit—and

Figure6-11—replacingthetransistorswithswitches.WewillgodirectlytothestepinFigure6-12—drawingthesimplifiedresult.Seethatresultinthepicturebelow:

FIGURE6-14Figure6-14istheultra-simplifiedversionofwhat’sinsideFigure6-13.Weknow

thatFigure6-13isaninvertercontrollinganotherinverter.WeknowthattheseinvertersareMOSFETtransistors.WefollowtherulesoutlinedabovetosimplifyFigure6-13intoFigure6-14.5voltscomesintotheleftinverter/transistor(thetransistorswitchison),sowesimplydrawawiretoneutral.Neutral’s0voltscomesintotherightinverter/transistor,keepingthetransistorswitchoff;sowesimplydrawaresistorto5volts.That5voltsexitstherightinverter.So,ultimately,thetransistorcircuitprovidesthenextcircuitwitheitherapathto

zerovolts,orapathto5volts.Wehavepressureornopressure;onoroff;digital;binary.Let’stakeanotherlookatourORgate,thistimeusingtransistors.

Asaquickreference,IhaveredrawnthetruthtableandlogicdiagramoftheORgatedirectlybelow:

FIGURE6-15

RecalltheconceptunderlyinganORgate.Ifoneormoreinputsare1(true,

high),theoutputis1.NowlookatthetransistorversionoftheORgate,picturedbelow:

FIGURE6-16

Figure6-16displaysthefirstlineofthetruthtableoftheORgate,asseenin

Figure6-15,part(a).WhenboththeAandBinputsarelow(zerovolts),theYoutputislow.Thisistheonlyconditioninwhichtheoutputislow.ReferbacktoFigure4-12toseethewaterfountainversionofthiscircuit.Itwillhelptogiveyouafeelforthecircuitflowsandpressures.InanalyzingFigure6-16,wefindthatbothT1’sandT2’soutputdrain-to-source

currentflowsareturnedoff.That’sbecausebothT1’sandT2’sinputgate-to-sourcevoltagesarelow.YoushouldnowcoverT1andT2withyourthumbs:makethemdisappear.Sincetheyarenowbehavinglikeopenswitches,theyareeffectivelygone,fromthepointofviewoftheiroutputsides.Theonlythingyoureyes—andtheinputtoT3—seeareR1,R2,and5volts.Don’tlettworesistors(R1andR2)andtwo5voltsconfuseyouThereisreallyonlyone5volts,labelledtwiceforconvenience.And,R1andR2aren’tdoinganythingatthemoment,sincenocurrentflowsthroughthem.The5voltsisapplied(gate-to-source)toT3.ItturnsonturnsT3’sdrain-to-sourcecurrent,makingitactlikeaclosedswitch.Sinceaclosedswitchhasnovoltageacrossit,0voltscomesoutofT3.IfyouprefertolookatFigure6-16likeawaterfaucetsystem,thinkofT1and

T2aswatervalvesthatareturnedoff,sincetheyhavenopressure(voltage)attheirinputs.Sincepressurizedcurrentcan’tdraindownthrougheitherT1orT2,thepressurizedcurrentappliesitselftotheinput“button”(gate)ofT3.ThisturnsontheoutputcurrentflowdownT3,drain-to-source,removing“pressure”(voltage)there.Let’slookatlinenumbertwooftheORgate,asshowninFigure6-15,part(a).

Thepicturebelowdemonstrateslinenumbertwo:

FIGURE6-17

Summarily,ifanORgatehas0voltsinputtoA,and5voltsinputtoB,5volts

willexitY.TransistorT2,inFigure6-17,seemstobehavenormally.5voltsinputintoitsgateturnsonT2’sdrain-to-sourcecurrent,causing5voltstodropacrossR2,andnovoltstodropacrossT2(drain-to-source),theclosedswitch.ThebehavioroftransistorT1,however,isanythingbutnormal.(Itmayhelpif

youreviewFigure4-14,thewaterfaucetsystem,tounderstandthistransistorsystem.)T1has0voltscomingintoitsgate.Hence,nocurrentflowsdownT1’sdrain-to-source.Whenthishappens,weexpectR1tohavenovoltagedrop,andT1’sdrain-to-sourcehaveafivevoltdrop.Butinstead,wefindbothvoltagesaretheopposite:R1hasa5voltdrop,andT1’sdrain-to-sourcehasa0voltdrop.Whyisthisso?ThereasonfortheoppositevoltagesbehavioraroundT1isthatthe5volts

aboveR1hasanalternatepathtopushcurrentthrough.(SeethedashedlinesinFigure6-17,tofollowthepathsofcurrentflow.)Remember,eventhoughT1isoff,

T2ison.Thecurrentfromthe5voltsupplygoesthroughR1,thenthroughT2insteadofT1.SincecurrentgoesthroughR1,workisdone,sovoltageisdropped.SincethecurrentavoidsT1,itappliesnopressure(voltage)toT1,sowemeasures0voltsdrain-to-source.Ifyouwerepayingverycloseattention,younoticedthatIchangedtheresistor

valuesaboveT1andT2from50ohmsto100ohms.Thisisabitadvanced,buthere’swhyIdidthat.TheT2wehavebeenusingpullsdown.1amps.Inthiscase,itispullingitthroughtwo,equal-valuedresistors,R1andR2.The.1ampfromthe5voltsupplysplitsevenly:.05ampsgoesdownR1,and.05ampsgoesdownR2.Thismakesthevoltagedropacrosseach100ohmresistor:V=IxR=.05x100=5volts.The5voltsvoltagedropacrossRoutisnowthesameasinourinvertercircuit,with0voltsleftacrossthetransistors’drain-to-source.Let’slookatlinenumberthreeoftheORgatetruthtable,asshowninFigure6-

15,part(a).Thepicturebelowdemonstrateslinenumberthree:

FIGURE6-18

Summarily,ifanORgatehas0voltsinputtoB,and5voltsinputtoA,5voltswillexitY.Iwon’tspendmuchtimeonthiscircuit,sinceitbehavesexactlylikeFigure6-17:likelinetwoofthetruthtable.Theonlydifferenceisthattheinputvoltagesarereversed.Thesingle5voltsinputisappliedtoAinsteadofB.Thebehaviorsarethesame.Thistime,though,T1absorbsallthecurrentflowcomingthroughR1andR2,sinceT1isturnedon.T2absorbsnone,sinceitisturnedoff.Theresult,5voltsoutofY,isthesameasinFigure6-17.Let’slookatlinenumberfouroftheORgatetruthtable,asshowninFigure6-

15,part(a).Thepicturebelowdemonstrateslinenumberfour:

FIGURE6-19Summarily,ifanORgatehas5voltsinputtoB,and5voltsinputtoA,5volts

willexitY.ThiscircuitisactuallyeasiertounderstandthantheprevioustwoinFigures6-17and6-18.NeitherT1’snorT2’scircuitvoltagesare“foolingus”intothinkingtheyareon,whentheyarereallyoff.T1andT2reallyare“on”thistime,sincetheybothhave5voltsappliedtotheirinputs(gate-to-source).T1andT2

eachconductcurrent,behavelikeclosedswitches,oractlikewaterfaucetsthatareturnedon(seeFigure4-15,ifthathelpsyou).But,likeinFigures6-17and6-18,theendresultisthesame.SinceallcurrentthroughR1andR2isdrainedawayfromthegateofT3,nopressure(voltage)canbeappliedtoT3.Itstaysoff.Itsoutputcurrentstaysoff.Pressure(voltage)from5volts—throughR3—buildsupatT3,drain-to-source:atY.(Warning:youmightwanttoskipthisparagraphandthenexttwo,becausethe

topicisabitadvanced.)ThechangeofR1andR2to100ohmssolvedaproblemforuswhenonlyR1oronlyR2conductedcurrent.But,havewejustintroducedanewproblem?Let’sdothemath.IfT1pullsdown.1ampandR1is100ohms,thenOhmsLawsaysV=IxR=.1x100=10voltsofworkisdonegettingcurrentthroughR1.WecouldsayexactlythesamethingaboutT2andR2.Doesn’tthatbreaktheLawofConservationofEnergy?Aren’tweaccomplishingmorework(10voltspercoulomb)thanenergysupplied(5voltspercoulomb)?Wecan’tbreakthelawsofnature.TheLawofConservationofEnergy,andthe

transistoritself,preventsthisfromhappening.Thetransistorwillself-limititscurrentflow.Thetransistorwillcutbackoncurrentflow,downtothepointwhere0voltsdropsacrossit(drain-to-source)andallthe5voltsofsupplyvoltagedropsacrosstheresistor.Thus,ratherthan.1amps,T1willdraw.05ampsthroughR1,thenintoitself.ThiswillcreateV=IxR=.05x100=5voltsworkdoneacrossR1,andnonedoneacrossT1.T2willdothesame.Becauseoftheabovecharacteristicoftransistors,weusuallychooseamuch

highervalueofdrainresistorthanthe50or100ohmswehavebeenusing.Astheresistorgetshigher,thetransistor’sdrain-to-sourcecurrentgetslower.Lesscurrentmeanslesspowerconsumption.Thismeanslessheat.Whenweareputtingmillionsofthesetransistorcircuitsinamicroprocessor,wemustminimizeheat.Wehavecoveredthreeofthefundamentallogicgates:theinverter(Figure4-

10),theORgate(Figure4-16),andtheNORgate(Figure4-21).Weneedtocoverjustafewmore.But,wearegoingtotakeashort-cut.Rememberthataninverter,initssimplestform,isjustaone-transistor,oneresistorcircuit.Pictorially,wecansay:

FIGURE6-20Figure6-20impliesthat,ifwewantto,wecandrawthesimplerinverterlogic

diagraminpart(b),inplaceofthemorecomplicatedcircuitdiagraminpart(a).Withthisshort-cut,werealizethatwecandrawtheORgatecircuitfromFigures6-16,6-17,6-18,and6-19inthefollowing,morecompact,forminpart(a):

FIGURE6-21

TodrawFigure6-21,part(a),allIdidwasreplaceeachtransistor-resistorpair

fromFigures6-16,6-17,6-18,and6-19withtheinvertersymbol.Now,Figure6-21,part(a),iscertainlymuchsimplerthanthoseweencounteredinFigures6-16,6-17,6-18,and6-19.ButitisnotsimplerthanthelogicsymbolfortheORgateinFigure6-21,part(b).So,whydidIbothertodothis?Ididitsothatyoucouldseeanexampleofourapproachfortheremaininglogic

gates.Ratherthangothroughthelengthycircuitsdrawingsandcircuitanalyses,wewillsimplydesigntheremaininglogicgateswithinverters.Afterall,digitalelectronicsandmicroprocessorsareprettymuchalltransistors.Ifyoucanjustgetcomfortablethinkingofeachinverterasatransistor/resistorcircuit,youwillhavenolossinunderstanding.ThenextlogicgatewewanttostudyistheANDgate.Thetruthtableandthe

logicsymbolfortheANDgateareinthepicturebelow:

FIGURE6-22Remember,eachoneofthefourrowsofthetruthtableinpart(a)isapossible

stateoftheANDgate,drawninpart(b).Ineachrow,AandBrepresentapairofinputstates;Yrepresentstheoutputstateforthoseinputs.ItiscalledanANDgatebecauseonlywhenAandBareboth1(true,high,5volts)willtheoutputYbe1.Findthatstateinthefourthrowofthetruthtable.Anyotherpairofinputsproducesa0(false,low,0volts)output.Therearemultiplewaysofmakinglogicgatesfromtransistors.Ifwewantto,

wecanmakeanANDgatethefollowingway:

FIGURE6-23

InFigure6-23,onlywhenbothT1andT2areturnedon(by5voltsatAandB)

willcurrentflowthroughR1,T1andT2.OnlythenwillT3beturnedoff,producing5voltsatY.Thiswouldbelikehavingonewaterfaucetwithtwovalvesandtwobuttonsyouwouldhavetopresstoturnonthewater.Let’snotgothatroute.Eventhoughthisisamoreefficientdesign,let’sjust

continuedesigningallofourgateswithoursamefundamentalbuildingblock,thetransistor/resistorinverterofFigure6-20.Ourgoalhereisnotforyoutobecomeadesignerofoptimallyefficientlogicgates.Ourgoalisforyoutounderstandhowmicroprocessorswork.Wewantminimalconfusion,andIamafraidthatdesigningdifferentcircuitsforeachgatewillconfusematters.Plus,Ifindbeautyinthesimplicityofbuildingourmightymicroprocessorfromonesimplecircuit.BelowisapictureofhowtocreateanANDgate,usingourshort-cutmethodof

drawingonlyinverters.Remember:thinkofeachinverterasourtransistor/resistorcircuitofFigure6-20,part(a).

FIGURE6-24InFigure6-24,Ihavelabeledthesixtransistor/resistorcircuits(inverters)with

numbersinsidetheinvertertriangles.Outsidethetriangles,IhavelabeledthelogicstatesforrowfouroftheANDgatetruthtable:logic1’s(5volts)ontheAandBinputsproducingalogic1ontheYoutput.Thisoneisprettyeasytofigureout,sinceeachinvertertakeswhat’sontheinputandproducestheoppositeontheoutput.FortheANDcircuit,Iwillonlyshowonemorelineofthetruthtable:linethree.

Seethepicturebelow:

FIGURE6-25LinethreeofthetruthtableforanANDgatesaysthata1(5volts)ontheA

inputanda0(0volts)ontheBinputproducesa0ontheYoutput.Youshould

noticesomethingfunnyaboutinverternumber3:logic0(0volts)onitsinputproduceslogic0onitsoutput.Itdoesn’tinvert.Andyetinverternumberfourdoesproducethecorrectoutput:alogical1(5volts)onitsinputproducesalogical0onitsoutput.Itdoesinvert.Itshoulddawnonyouthattheycan’tbothworkcorrectly.Ifinverter3produced

a1atitsoutputandinverter4produceda0atitsoutput,youwouldhavetheinputtoinverter5besimultaneously1and0.Logically,itwouldbelikesomethingbeingtrueandfalseatthesametime.Voltage-wise,itwouldbelikehavingboth5voltsand0voltsatthesameplace.So,whydoesinverter4winthelogicbattlewithinverter3,sothatitproduces

thecorrectoutput,forcinginverter3toacceptthe(forit)wrongoutput?Youalreadyknowtheanswer(Theofftransistorininverter3can’tbuilduppressure,becausecurrentbypassesitandheadstotheontransistorininverter4.)ReferbacktoFigure6-17,ifyoudon’tremember.Inverters3,4,and5ofFigure6-25areexactlythesameastheonespicturedinFigure6-17.Reviewthatmaterial,ifyouneedto.Inverters1,2,and6,arejusttransistor/resistorpairsaddedbeforeandafterthatcircuit,whichyoualreadyunderstand.ThenextlogicgatewewanttostudyistheNANDgate.Thetruthtableandthe

logicsymbolfortheNANDgateareinthepicturebelow:

FIGURE6-26ThenameNANDgateisshortforNot-ANDgate.Comparethetruthtablefor

theNANDinpart(a),above,withthetruthtablefortheANDinFigure6-22,part(a).YouwillfindthattheNANDisliketheANDwitheachrow’sYoutputinverted.That’swhythelogicsymbolfortheNAND,inpart(b),above,looksjustlikethelogicsymbolfortheAND,butwithabubbleaffixedtotheYoutput.Thebubblesymbolizesthattheoutputisinverted.Putintowords,aNANDgateproducesa0output(false,low,0volts)onlywhenboththeAandBinputsarehigh.

Lookatthesimplified,inverter-stylediagramfortheNANDgate,below:

FIGURE6-27PerhapsyourememberedthewayweturnedanORgateintoaNORgate,way

backinFigure4-18.WeaddedaninvertertotheoutputofanOR.RatherthanaddingaseventhinvertertotheoutputoftheANDgate,inFigure6-24,wesimplyremovedthelastone.Itgivesthesameaffect.Usingthissametrickofremovinganinverterinsteadofaddingone,let’srevisit

Figure6-21.Thatisaninverter-stylediagramofanORgate.Ratherthanaddinganinvertertotheoutputofthelastinverter,tocreateaNORgate,wecanremovethelastinverter,instead.WestillcreateaNORgate,anditlooksverysimple,asyoucanseeinthepicturebelow:

FIGURE6-28

ThenextlogicgateweshallstudyistheXORgate.ThetruthtableandthelogicsymbolfortheXORgateareinthepicturebelow:

FIGURE6-29

OnewaytodescribethisXORgateisthatitstruthtablelooksjustlikethetruth

tableforanORgatewithoneexception:thefourthrow’soutputis0.Anotherwayistosaythata1intoAorB,butnotboth,producesa1outofY.But,thebestwaytodescribethetruthtableinvolveslookingateachrowseparately.Foreachrow,countthenumberof1’sontheinputs.Ifyoucountanoddnumberof1’s,thentheYoutputwillbea1.Ifyoucountanevennumberof1’s,thentheYoutputwillbea0.No1’sisanevennumberof1’s,sorownumberonewillhavea0outputonY.Rownumbertwohasonlyone1,intheBcolumn.Oneisanoddnumber,sotheYoutputofrowtwois1.Thereasonweusethismoreelaboratewayofdescribingthebehaviorofthe

XORgateinvolvessomethingIhavenotyetexplained:gates(exceptforinverters)arenotlimitedtotwoinputs.Youcanhavethreeormoreinputs.However,fortheAND,OR,NAND,andNORgates,extrainputsarenota“bigdeal.”Theirbehaviorsarealogicalextensionoftwo-inputgates.Briefly,forthreeinputs,A,B,andC,wehaveeightpossiblerowsofatruth

table.Athree-inputANDgatebehaveslikeatwo-inputANDgate:onlythelastrowhasaYoutputof1(Figure6-30,part(b));a1isproducedonlywhenA,B,andCinputsare1’s.Athree-inputNANDgatebehaveslikeatwo-inputNANDgate:onlythelastrowhasaYoutputof0;a0isproducedonlywhenA,B,andCinputsare1’s.Athree-inputORgatebehaveslikeatwo-inputORgate:onlythefirstrowhasaYoutputof0(Figure6-30,part(a));a1isproducedwhenA,B,orCinputsare1’s.Athree-inputNORgatebehaveslikeatwo-inputNORgate:onlythefirstrowhasaYoutputof1;a0isproducedwhenA,B,orCinputsare1’s.

LookatthepicturebelowtoseewhatImean:

FIGURE6-30ThebehaviorofXORgatesaswemovefromtwoinputstothreeormore

inputs,isnotsoeasilysummarized.Lookatthepictureofthethree-inputXORgateinpart(a),below:

FIGURE6-31LookingatthefirstfourrowsofFigure6-31,part(a),yourecognizethesameY

outputsasthefourrowsofFigure6-28.But,theYoutputsofthenextfourlinesofFigure6-31arethereverseoftheYoutputsofthefirstfourlinesofFigure6-31.Becauseofthis“strange”behavior,weusethemorecomplicateddescriptionoftheXORgatebehavior.Anoddnumberof1’sontheinputsproducesa1ontheoutput.Anevennumberof1’sontheinputsproducesa0ontheoutput.Athree-inputversionofagateiseasytodraw.Seethepicturebelow:

FIGURE6-32Internally,toaddthethirdinput(C),wesimplyaddanewtransistor/resistor

inverterbehindtheCinputline,andattachitinternallythesamewaytheAandBinvertersareattached.ThelastlogicgateweshallstudyistheXNORgate.Thetruthtableandthe

logicsymbolforthe2-inputXNORgateareinthepicturebelow:

FIGURE6-33

Asyoumightpredict,theXNORgateistheXORgatewithitsoutputinverted,

foreachlineoftheircorrespondingtruthtables.Thebubbleontheoutputofthelogicsymbolalsoindicatesthis.WedescribethebehavioroftheXNORgatebysaying:anoddnumberof1’sontheinputsproducesa0ontheoutput.Anevennumberof1’sontheinputsproducesa1ontheoutput.Refertothethree-inputXNORtruthtable,inFigure6-31,part(b),toseewhythisdescriptionisnecessary,andtoprovetoyourselfthatitworks.Let’slookatthecircuitthatcreatestheXORgate.Lookatthepicturebelow:

FIGURE6-34

Atfirstglance,Figure6-34mightdisturbyou.Youexpecttoseeacircuitforthe

XORgate,andinsteadyouseethreeothergates,connectedtogether.Butremember:allofthesefiguresarepictorialorsymbolicwaysofexplaininghowourbasictransistor/resistorinvertercircuitsareconnectedtogether.WealreadyknowallwereallyneedtoknowaboutthebehavioroftheXORgatefromthetruthtableinFigure6-29.So,welearnhowtheXORgateworksbynavigatingthroughseverallevelsof

diagrams.WestartwiththelogicsymbolinFigure6-29,part(b).WelearnthatthecircuitinsidethisbehaveslikethethreeinterconnectedgatesinFigure6-34.WerememberthattheNANDgateinFigure6-34behaveslikethefiveinterconnectedinvertersinFigure6-26;theANDgatebehaveslikethesixinterconnectedinvertersinFigure6-24;andtheORgatebehaveslikethethreeinterconnectedinvertersinFigure6-21.Finally,werememberthattheinvertercircuitrepeatedfourteentimes—butconnectedinveryspecificwaysdescribedbythesediagrams—issimplytheactualcircuitdescribedbyFigure6-20.Thisisanimportantmomentinyourunderstandingofmicroprocessors.You

havejustfoundthat,fromthebasicbuildingblockofthetransistor/resistorinverter,webuildthebuildingblockscalledgates.Fromthesebuildingblocks,webuiltamorecomplexbuildingblock,theXOR.Wewillkeepbuildingmorecomplexbuildingblocksfromsimplerblocks,untilwehaveawholemicroprocessor.OnelastpointconcerningFigure6-34:noticethe0’sand1’sIhaveplacedon

theinputsandoutputsofthegates.IhavesetupforyouademonstrationoflinenumbertwoofthetruthtableforanXORgate.Weknowthata0ontheAinputanda1ontheBinputproducesa1ontheYoutput.Partofthefunofdigitalelectronicsiswatchingtheflowofthelogicasitripplesthroughthegates.Testyourknowledgeofthetruthtablesforthegatesthatmakeupthiscircuit.Makesureyouunderstandwhyeach1or0appearswhereitdoes.TrysolvingfortheotherthreelinesoftheXORtruthtable.

CHAPTERSEVENLATCHES

Thelogicgateisoneofthetwobasicbuildingblocksofdigitalcircuitry.The

otherbasicbuildingblockisthelatch.Justasthereareseveralkindsoflogicgates—AND,OR,etc.—thereareseveraltypesoflatches—D,RS,clockedRS,JK,etc.Thelatchalsohasasibling,theflip-flop,whichwewillencounterlater.Whatisalatch?Alatchisthefundamentalunitofstorageinalogiccircuit.A

latchstoresonebit.Whatdowemeanbystorage?Whenwedelvedeeperintomicroprocessors,

wewillfindthatmuchofwhatgoesoninvolvesmovinginformationaround.Agroupofbitsmovesfromthekeyboardintothemicroprocessor;fromthemicroprocessortothevideodisplay;fromtheharddrivetothesystemmemory,etc.InformationmovesfrompointAtopointB.Thepointis,onceitarrivesatpointB,itmust“stick”there.Itmuststaythere

untilwechoosetoreplaceitwithnewinformation,anewgroupofbits;those,too,must“stick”thereatpointB.Furthermore,whenwemoveinformationfrompointAtopointB,theinformationdoesnotdisappearfrompointA.It“sticks”there,too,untilwechoosetochangeit.Thus,whenwe“move”agroupofbitsfrompointAtopointB,wearemakinganexactcopyatpointBofthebitsthatareatpointA.ThistemporaryreplicationandretentionofinformationfromtheAgroupoftransistorstotheBgroupoftransistorsis“storage.”Whydoweneedstorage?Microprocessorsaresequentialdevices.Things

happeninanorderlyprocess:step1happens,followedbystep2,etc.Furthermore,step2willoftenoperateontheinformationinvolvedinstep1.Itcan’toperateonitifitisgone.Itcanonlyoperateonitifit(step1)isstored.Forexample,microprocessorscanaddtwo8-bit(8-transistor)numbers

together.Thisisasequentialoperation:stepAhappensattime1;stepBhappenslater,attime2;andstepChappenslater,attime3.Ifstep1putsnumberAinstorageareaA,andstep2putsnumberBinstorageareaB,step3needsgroupAandgroupBtostillbetherewhenitaddsAtoB.There’sanotherreasonmicroprocessorsneedstorage.Thefirstreason,above,

hadtodowiththingshappeningsequentially.Thesecondreason,below,hastodowithavoidingthingshappeningsimultaneously.Forreasonsofefficiency,microprocessorsystemsoftenhaveonedeviceconnectedtomanydevices.Seepart(a)inthepicturebelow:

FIGURE7-1

Part(a),abovedescribesasourcedevice,labelledS,connectedtotwo

destinationdevices,labelledD1andD2.ImagineyouareS.Youarebinary.Youcommunicateonecommand—eitherTfortrueorFforfalse—byholdingupasign.Onesideofthesignismarked,T;theothersideismarked,F.D1andD2areyourtwoco-workers.Theyarealsobinary.D1respondstotheT

signbyshuttingdownthenuclearplant;herespondstotheFsignbynotshuttingdownthenuclearplant.D2respondstotheTsignbyfiringthenuclearmissiles;sherespondstotheFsignbynotfiringthenuclearmissiles.Now,imagineinFigure7-1,part(a),thatSfindsoutaboutafailureatthe

nuclearpowerplant,andmusttellthattoD1,soD1canshutdownthenuclearpowerplant.Asshownabove,SdisplaystheTsideofthesign.D1shutsdownthenuclearpowerplant.Unfortunately,D2alsoseestheTsign.Sinceshehasnowayofknowingtheinformationisnotintendedforher,shefiresthenuclearmissiles.Armageddonfollows.So,weneedtemporarystoragedevicesatD1andD2.Whenweneedtoshut

downthenuclearpowerplant,weneedtobeabletoopenupadoorintoD1—butnotintoD2—andstoreaTcommandsignwithD1,untilitissafeforhimtocomeoutofshutdown.SincewedidnotopenupthedoorintoD2,shestillretainsanFcommandsign,soshedoesnotfirethenuclearmissiles.Now,lookatFigure7-1,part(b).Inasimpleone-to-onesystemlikethis,S

couldjustsitthereaslongasnecessarywiththeTinformation,becauseithasnothingelsetodo.D1doesnothavetobeastoragedevice;D1canbeagate.But,lookingbackatFigure7-1,part(a),Sdoeshavesomethingelsetodo.ShastocommunicatewithD2,separatelyfromD1.SoD1andD2mustbestoragedevices:latches;theycan’tbegates.Furthermore,D1andD2mustbemorethanjuststoragedevices:theymustbe

selectablestoragedevices.Ialreadymentioned“openingadoor”beforestoringinformation.IfD1andD2wereassimpleasshowninFigure7-1,part(a),wewouldwindupwiththesameproblemwestartedwith:whenwestoreaTatD1,aTwouldalsobestoredatD2,andthemissileswouldincorrectlybefired.So,thephysicaldesignofourlatchcircuitmustincorporatetheabilitytobeselected:theabilitytohaveitsdooropened.Lookatthepicturebelow:

FIGURE7-2

Figure7-2,part(a),showsthebehaviorwewant—thenuclearplantshutdown,

andthenuclearmissilesnotfired.Toaccomplishthis,wemustaddsomeadditionalcontrolcircuitry,externaltoourstoragecircuitry.Ourcontrolcircuitry,labelledC,isthe“dooropening”sendingcircuitry.WheneverShasa1or0tostoreineitherD1orD2,Cmustsenda1tothe“dooropening”receivingcircuitry,labelledE,builtintothedesiredlatch.IfCsendsa0toeitherD1,D2,orboth,theoutputofSisignoredbyD1,D2,orboth,respectively.Let’stracethroughhowthisworksinFigure7-2,part(a).SsendsouttheT

(true)sign.However,sincethecontrolcircuit,C,hassenta0toD2’sEinput,D2can’treceivetheT;the0onEclosesD2’sdoor.Noticethat,eventhoughD2hasaTatitsentrance(input),theTisnotatitsexit(output).Ontheotherhand,D1doesreceivetheT,becauseitsdoorisopen.Noticethat

D1hasaTatitsentrance(input),andtheTpassesthroughtoitsexit(output).Itpassesthroughbecausethecontrolcircuit,C,hassenta1toD1’s“dooropener.”The1onitsEopensD1’sdoor.TheoutputsofD1andD2willstayatthelogiclevel—TorF—thatwaspresent

attheirinputsthelasttimethelasttimetheirdoorwasopenedwithalogic1on

theirEinputs.D1andD2ignorethestateoftheirinputswhenthedooropenerisclosedwithalogic0.Youmaywonderwhywegothroughallthiseffort.Iclaimedthisisdonefor

greaterefficiency.But,itmaylooklikelessefficiencytoyou,becausewehaveaddedmorewirepaths,notless.And,wehaveaddednewcontrolcircuitry,aswellastheneedformorecomplexityinsideourflip-flops.However,lookatFigure7-2,part(b),above.Typically,wearenotsendingone

bitofinformationfromStoitsdestinations,asinpart(a).Inpart(b)IhavedrawnSneedingtosendsixbitsofinformation,simultaneously,toeitherD1orD2.Ifthedesignofpart(b)didnotincludetheselect-and-storedesignelementsofpart(a),Swouldneedtwelvelinescomingoutofit.Lookatthepicturebelow:

FIGURE7-3

InFigure7-3,part(a),wehaveusedtheselect-and-storetricksofFigure7-2,

part(a).(Wehaven’tdrawnthatextracontrolcircuitry,topreventconfusion.)Usingthesetechniques,weareabletotransferandstoreeightbitsofinformation—onebyte,bydefinition—toeitherD1,D2orD3.WehavekeptthenumberoflinescomingoutofStojusteight.Alineisacopperwire,oracoppertraceonacircuitboard.Perhapsitisapinorleadstickingoutofanintegratedcircuitchip(IC).NowlookatFigure7-3,part(b).Here,wehavenotusedtheselect-andstore

tricksofFigure7-2,part(a).Now,Smusthavetwenty-fourseparatelines.ThoselinesaretotallydedicatedtomaintainingtheoutputsofD1,D2,andD3.Theycanneverbeusedforanythingelse.Now,imaginearealmicroprocessorsystem.Smightberequiredtosendtoten

devices:D1throughD10.InsteadofsendingeightbitstoD1throughD10,S

mightsendsixty-fourbits.Since64x10=640,SinFigure7-3,part(b)wouldhave640linescomingoutofit.Thiswouldcreateanimpossiblyhugemicroprocessor.UsingFigure7-3,part(a),Swouldhavesixty-fourdatabitconnections:amuchmoremanageablenumber.Beforewemoveontodescribinghowwewillbuildourlatch,let’stakea

momenttoappreciatethewonderandstrangenessofwhatwearedescribing.Wearetalkingaboutinformationmovingaround,onitsown,fromonetinyplacetoanother.It’slikeyouwritingamessage,makingacopyofit,walkingthecopytoafriend’shouse,andhandingittothefriend.But,inthemicroprocessor,thereisno“you.”Itallhappensautomatically,undermachinecontrol.Wearetalkingaboutcreatingapatternorsequenceofvoltages(5volts)and

non-voltages(0volts),intransistors.Thiswholeconceptofvoltagesishardenoughtocomprehend.Voltageis“pressure-like.”Wehaveonebattery,butmanyvoltages.Then,amazingly,wemovethispatternsomewhereelse,toadifferentgroupoftransistors.Thevoltageswereinoneplace,andnowtheyareintwoplaces.Now,itistimetodesignourlatch.Ofcourse,therearedifferentwaystobuilda

latch,butIenjoytheeleganceanduniformityofbuildingoursystemfromthesamebuildingblock,thetransistor-resistorinverterseeninFigure6-20.Lookatthepicturebelow:

FIGURE7-4Figure7-4isthefirststepinbuildingourlatch.Thefirstthingtonoticeisour

basictransistor-resistorinverter,repeatedfourtimes,andlabelledT1throughT4.Next,noticehowthedrainsofT1andT2areconnectedtogether.Wehave

seenthisarrangementbefore.IfyoulookbackatFigure6-28—twoinverterswiththeiroutputsconnectedmakingaNORgate—andrealizefromFigure6-20thataninverterisourbasictransistor-resistorcircuit,youwillrealizethatT1andT2havebeenconnectedtocreateaNORgate.SinceT3andT4areconnectedthesameway,draintodrain,theytoohavebeenconnectedtocreateasecondNORgate.Third,noticehowtheoutputoftheT1-T2NORgateconnectstothegateinput

ofT4.Symmetrically,theoutputoftheT3-T4NORgateconnectstothegateinputofT2.Fourth,noticethattheinputgateofT1islabelledS,andtheinputgatetoT3is

labelledR.TheseareourSetandResetinputs,ourmeanstocontrolthelogic

stateofthelatch.Fifth,theoutputofNORgateT1-T2islabelledQwithalineaboveit,or“NOT

Q.”TheoutputofNORgateT3-T4islabelledQ.Qisourstoredoutputbit.NOTQistheoppositeofQ,meaningifQis1(5volts),NOTQis0(0volts).IfQis0(0volts),NOTQis1(5volts).WewillsoonignoreNOTQ.Itcomesinhandyforindividual,stand-alonelatchesindigitalelectronics,butmicroprocessorsusuallyinvolveonlytheQoutputsofparallelcollectionsoflatches.Lookatthepicturebelow,toseewherewearesofar:

FIGURE7-5

Part(a),inFigure7-5istheratherdulllogicsymbolfortheRSlatch.It’svery

high-level:itonlyshowsthetwoinputs,setandreset,ontheleft;andthetwooutputs,QandNOTQ,ontheright.Part(b),inFigure7-5,isamuchneaterandtidierversionofFigure7-4.WhenweanalyzedFigure7-4,wespentawholeparagraphrevealingthetransistorsconnectedasNORgates,andalloftheotherconnections.Figure7-5,part(b),hidesthetransistorsinsidetheNORgates,sowecan

betterviewtheconnections.Thediagraminpart(b)helpsusseethat,strangely,theoutputofeachNORgatefeedsbackintotheinputoftheotherNORgate.Also,noteinpart(b)thatwherethelinescrisscross,theydonottoucheachother.Onelinehopsovertheother.Whenlines(wiresorcircuitboardtraces)aremeanttoconnecttoeachother,weusuallydrawalittleblackcircle.Let’sstartwithanoverviewofhowthislatchworks.Itisnotourfinished

product,becausethisRSlatch,thoughitstores,isnotselectable.Itdoesn’thavetheEcontrolofFigure7-2.RefertoFigure7-6,below,asyoureadthefollowingsummary.

Normally,theRandSinputsarebothlow.Whenwewanttostorea1(5volts)inthelatch,weraisetheS(Set)inputto1.Thelogic1appearsatQ.WepulltheSbackto0(0volts),andthestoredlogic1staysatQ.Again,normally,theRandSinputsarebothlow.Whenwewanttostorea0(0

volts)inthelatch,weraisetheR(Reset)inputto1(5volts).Thelogic0appearsatQ.WepulltheSbackto0,andthestoredlogic0staysatQ.Wehavenamesforthestatesofthelatch.ThesetstatemeanstheQoutputis

storinga1.Wecanuse“set”asaverb:thelatchhasbeensetto1.TheSlabelstandsfor“set.”TheresetstatemeanstheQoutputisstoringa0.Wecanuse“reset”asa

verb:thelatchhasbeenresetto0.TheRlabelstandsfor“reset.”TheholdstateoccurswhenbothRandSinputsare0.Thelatchisneither

beingcommandedtoSet,nortoReset.So,itisholding—orstoring—thelaststateitwascommandedtobein,whentherewasa1oneitherRorS.Thelatchshouldneverhavea1(5volts)atboththeRandSinputs,atthe

sametime.Underthoseconditions,thelatchisbeingtoldtosetandresetatthesametime.Qisbeingtoldtobeat0voltsand5voltsatthesametime,tobesimultaneouslytrueandfalse.Thisisknownastheillegalstate,andproducesunpredictableresults.WecanconstructabrieftabletosummarizethebehaviorofourRSlatch.See

thepicturebelow:

Figure7-6

UseFigure7-6tohelpyourememberthecontentoftheparagraphs

immediatelyprecedingit.Aswithpreviouslogictables,eachrowrepresentauniqueoutputstateandtheSandRinputsthatcauseit.ThequestionmarksinlinefourofFigure7-6reflecttheunpredictableresultsoftheillegalstate.Ourfinaldesignwillrenderreachingthisstateimpossible.Thusfar,weseehowalatchworksfromtheoutside:fromthepointofviewof

externalinputsandoutputs,andfromlogictables.But,whatisthesecret,whatisthemagictrick,thesleightofhandinsidethatmakesitwork?Forthat,weneedtopeerinsidethecircuitry.Let’sdothatbylookingatthepicturebelow.

Figure7-7

Let’sdemonstratethethirdlineofthetruthtablefromFigure7-6.Itsaysthat

applyinga1totheSinputstoresa1attheQoutput.Hopefully,bynow,youarecomfortablementallyreplacinga1with5voltsanda0withzerovoltsasyoulookatFigure7-7.Ihavelabelledthesequenceofeventsas“a”through“i”intheabovefigure.Thelabel1-ameansthat,atthatlocation,thefirststep—a—ofthesequencehappens;andthelogiclevelatthatlocationis1(5volts).At1-a,5voltsisappliedtotheSetinput.T1turnson,likeaclosedswitch,

bringingT1’soutputto0volts(see0-b).IfyourecallourearlierlooksattheparallelconfigurationofT1andT2,youknowthatitdoesn’tmatterwhatvoltagesarearoundT2.“Thelowvoltagealwayswins,”atthedrainjunctionofT1andT2.(ReviewFigures4-13and6-17:theoffvalve/transistorcan’tbuilduppressure,becausecurrentbypassesitandheadstotheonvalve/transistor.)So,theNOTQoutputisat0volts,whichlooksgoodforthetruthtablerowwearetryingtoprove.At0-c,0voltsisappliedtothegateinputofT4.T4turnsoff,likeaclosed

switch,potentiallybringingitsdrainoutputto5volts(see1-d).Isay,potentially,becauseifT3ison,its0voltsoutputwouldover-rideT4’s5voltsoutput(“thelowvoltagealwayswins”attheT3-T4junction).However,T3isnoton.TheRinputtoT3is0volts(0-e),keepingT3off(1-f).Remember,itwouldbeillegalforRtobeat5voltswhenSisat5volts.So,theQoutputisat5volts,whichalsolooksgoodforthetruthtablerowwearetryingtoprove.But,westillhavethreeconcerns.One,theSinputof5voltswillgoaway,

becoming0volts;howwillthisaffectQandNOTQ?Two,howisthe5voltsstoredatQ:bywhatmechanismdoesit“stick”there?Three,whereisthemagictrickthatmakesthisstoragehappen?Allthreeofthesequestionsarevariationsofthesamequestion,anditsanswer

isatstep1-g.Weleftourcircuitat1-dand1f,with5voltsthere,sinceT3andT4arebothoff.That5voltsisappliedat1-g,tothegateinputofT2.Here’swherethe“trick”happens.The1-astepofapplying5voltstothegateofT1hasjustbeenreplicatedatthegateofT2(1-g).Ithappensinstantly,eventhoughittookmemanywords.T2turnson(0-h),justlikeT1ison.Theybothpulltheirdrainstothe0voltsstate.However,onlyoneofthemisrequiredtomaintainthatlowvoltagestate.Remember,“Thelowvoltagewins,”attheoutputsofthesekindsofcircuits?So,theinputatSintothegateofT1cannowsafelyreturnto0volts(0-i),becauseT2isnowdoingT1’sjobofholdingQat5voltsandNOTQat0volts.Atstep0-i,wehavearrivedattheholdstate,lineoneofthetruthtable,sincebothRandSinputsareat0volts.Thelatchis“holding”theresultoftheSetstate.WecoulddoasimilaranalysisoflinetwooftheRSlatchtruthtable,reworking

Figure7-7fortheResetstate,byplacing5voltsattheRinput,and0voltsattheSinput.But,sincetherightsideofthecircuitisamirrorimageoftheleftside,theanalysiswouldbeidentical,butwithoppositeresults:RwouldmakeQequal0volts,andNOTQequal5volts.Infact,ifwewenttoFigure7-7andrelabeledRasS,SasR,QasNOTQ,andNOTQasQ,wecouldusethesamediagramandthesameanalysistodescribelinetwoofthetruthtable.Instead,let’suseFigure7-5,part(b),ahigher-levelabstraction,toanalyzeline

twooftheRSlatchtruthtable.Lookatthepicturebelow:

FIGURE7-8

Figure7-8,part(a),displaystheactofresettingtheRSlatch.(Remember,logic

1means5voltsforourdesign,andlogic0means0volts.)5voltsisappliedtotheRinputofthelatch,andentersNORA.ReferbacktothelogictablefortheNORgate,foundinFigure4-20,part(b).ThetruthtabletellsusthatifoneinputofaNORgatehas5voltsonit,theoutputisautomatically0volts.Itdoesn’tmatterwhattheotherinputis.So,NORA’soutput,whichistheQoutputofthelatch,is0volts.ThatistheexpectedresultfortheResetoperation:Qisresetto0volts,bydefinition.Noticethatthatsame0voltsfeedsbacktooneinputofNORB.Theotherinput

ofNORBisalso0volts.ThetruthtabletellsusthatifallinputsofanNORgateare0volts,theoutputmustbe5volts.So,5voltscomesoutofNORB.ThatistheexpectedresultfortheResetoperation:NOTQis5volts,theoppositeofQ’s0volts,bydefinition.Sofar,sogood.But,theRinputmustgobackto0volts,incasethelatchneedstobeSetinthe

future.Itcan’tbeSetbyapplying5voltsatSwhile5voltsarestillatR:thatwouldbetheillegalstate,withunpredictableresults.Now,wecanobservethe“trick”thatmaintainsandstorestheresultofthe

Resetstate.Stilllookingatpart(a),noticethatthe5voltsthatweanalyzedascomingoutoftheoutputofNORBfeedsbacktotheotherinputofNORA.ThatmeansthatNORAnowhasbothinputsat5volts.ThetruthtabletellsusthatifbothinputsofNORAareat5volts,0voltscomesoutofNORA.But,NORAdoesn’tneedbothinputstobeat5volts,itonlyneedsoneinputtobeat5voltstoproducea0atitsoutput.It’ssafe,thenfortheResetinput,R,ofthelatchtoreturnto0volts.TheRinput

ofNORAnolongerneedstobe5volts,becausetheotherinputofNORAisnowat5volts.That’sthe“trick”thatmaintainsQat0voltsandNOTQat5volts.You

canobservethisinFigure7-8,part(b).TheRinputisnowbackto0volts.TheSinputalwayswasat0volts.Wehaveenteredtheholdstate,andthelatchisholdingorstoringtheresultoftheResetstate.Thoughittookmanywordstodescribethereplicationofthe5voltsfromtheRinputofNORAintoNORA’sotherinput,ithappensveryquickly.TheRinputonlyneedsabriefpulseof5voltstostorethe0voltsattheQoutput.Ourlatchdesignworkswell,butitisunfinished.Itneedscircuitrybuiltintoitthat

allowsittobeselectable,aswewitnessedinFigure7-2,part(a).Ourlatchmaybeoneofmanylatches,allwiththeirSetbitsconnectedtogether,andallwiththeirResetbitsconnectedtogether.Theyallmaybeconnectedtoonesourcebitofinformation.Thesourcemustbeabletoselectjustonelatchtosendinformationto.Thecorrectlatchmustbeabletoreceiveit,andtheotherlatchesmustbeabletoignoretheinformationnotmeantforthem.Let’slookfirstatthepicturebelow:

FIGURE7-9

Figure7-9,part(a),isourhighlevellogicsymbolforourfinishedlatchdesign.Notice,ithasanewname.ItisnowaDlatch,insteadofanRSlatch.TheDstandsfordelay.TheDlatchhastwoinputs,DandE,and2outputs,QandNOTQ.NOTQis

alwaysintheoppositelogicstateofQ,soI’llignoreit,tosavetime.Thetruthtableinpart(b)explainshowtheDlatchworks.Again,welookatseparatebehaviorsofatruthtableonerowatatime.Again,alogiclevelof1means,forourdesign,5volts;a0logiclevelmeans0volts.WeintroducedtheletterEinFigure7-2.Estandsforenable.Eisthevoltage

inputthatenablestheDinput.WhentheEinputis5volts,asseeninrowstwoandthreeofthetruthtable,theDinputvoltageappearsattheQoutput.So,0voltsonDappearsas0voltsonQ(truthtablerowtwo).And,5voltsonDappearsas5voltsonQ(truthtablerowthree).Irepeat,thesetransfersonlyoccur

whentheEinputisat5volts.Whathappens,then,whenEis0volts?The“x”inrowoneofthetruthtable

means,“don’tcare.”Itmeans,wedon’tcarewhatinputisonD,becausetheDinputisignored,itisblocked.Thedoorisclosed.TheDinputvoltagedoesnotcrossovertotheQoutput.TheQoutputholdswhatevervoltagewaslaststoredtherewhenEwas5volts.So,whateverishiddeninsidetheboxthattheElineconnectstoinFigure7-9,

part(a),holdsthesecrettoourlatch’sabilitytobecorrectlyselectedandstoredtobythesourceofinformation.Let’sopenupthatbox.Itsmysteriesarerevealedinthepicturebelow:

FIGURE7-10

Figure7-10isourfinishedlatch.NoticefirstthatouroldRSlatchisontheright

side:NOR1andNOR2,connectedthesameway.So,weknowournew,Dlatchcanstore.Ontheleftisnewcircuitry,whichallowsourDlatchtoeitherbeselectedorignored.NoticehowIhavechangedthelabellingofRto“wasR,”andSto“wasS”.Theirbehaviorshaven’tchanged,butthenameofthelatchhas.ThisisaDlatch,sowereallyshouldnotbeusingRSlabels.YouwillnoticewenowhaveaDexternalinputonthefarleftside,whichreplacestheoldRandSexternalinputs.Also,wehaveournewcontrolinput,calledE.Youknowitspurposefromtheabovediscussion.WealreadyknowhowtherightsideofFigure7-10works.5voltsat“WasS”

setsQto5volts;5voltsat“WasR”resetsQto0volts.0voltsatboth“WasS”and“WasR”makesQholdormaintainthepreviouslystoredvoltagebit.Let’slookatthatinverter,labeledI,ontheleftsideofFigure7-10.Theinverter

allowsustocompresstwoinputs,RandS,downtooneinput,D.LookbackatFigure7-6,thetruthtablefortheRSlatch.Noticethatinrowstwoandthree,theRandSinputsareinoppositestatesfromeachother.Inotherwords,inrowtwo,

Sis0andRis1:opposites.Inrowthree,Sis1andRis0:opposites.Wedon’tneedrowsoneandfour.Rowfourisillegal,andasourceofpotentialtrouble.OurEinput,aseparatecircuit,willperformtheholdstate,sowedon’tneedrowone.Aninverteralwayshasitsinputandoutputoppositeeachother.So,wewireit

asshowninFigure7-10toreplacetwoinputs,RandS,withoneinput,D,whichhasaninverteroutputofNOTD.TheDinputtakesontheroleoftheoldSinput.TheNOTDoutputoftheinvertertakesontheroleoftheoldRinput.ThatleavesustoexplainhowtheEcircuittakescareoftheholdstate’sfunctionality.ThetaskoftheEcircuitistoblockinputdataDfromgettingto“WasS”and

“WasR”.WhenEisat0volts,theEcircuitmustkeep“WasS”and“WasR”at0volts,regardlessofthevoltageatD.When“WasS”and“WasR”arebothat0volts,NOR1andNOR2willbeintheholdstate.TheEcircuitaccomplishesthistaskviatheAND1andAND2gates.Oneway

oflookingatanANDgateisasa“pass/block”circuit.Lookatthepicture,below:

FIGURE7-11

LookattheANDgatetruthtableinFigure7-11,part(a).Ihavecircledthefirst

tworows.Inboththeserows,theAinputis0volts.Noticethat,nomatterwhatthevalueisattheBinput,theYoutputis0volts.Youcanwatchthisbehaviorplayingoutinpart(b).TheAinputis0volts;theBinputischangingfrom0voltsto5volts,repeatedly.Nevertheless,theYoutputstaysstuckat0volts.TheBinputisblockedfromreachingY,whenAis0volts.NowlookattheANDgatetruthtableinFigure7-11,part(c).Ihavecircledthe

lasttworows.Inboththeserows,theAinputis5volts.NoticethatwhatevervoltageisattheBinputappearsattheYoutput.Youcanwatchthisbehaviorplayingoutinpart(d).TheAinputis5volts;theBinputischangingfrom0voltsto5volts,repeatedly.TheYoutputexactlymatchestheBinput.WhenBis0volts,Yis0volts.WhenBis5volts,Yis5volts.TheBinputpassesthroughtotheYoutput,whenAis5volts.This“pass/block”functionalityisexactlywhatwewantinourlatchdesign.Look

oncemoreatFigure7-11.ThewaytheAinputcontrolstheinformationflowisexactlywhatwewantourEinputtodo.Now,lookbackatFigure7-10,ouractualDlatchcircuit.ThinkoftheEinputas

thecontrollerofinformationflowto“WasR”and“WasS.”WhenEis5volts,itputsAND1andAND2inthe“passthrough”mode.Then,ifDis5volts,AND2letsitpass,and“WasS”becomes5volts.Also,theinvertermakesNOTD0volts,soAND1letsitpass,and“WasR”becomes0volts.WearenowattherightsideofFigure7-10,whichisouroldRSlatch,withvoltagesthatmatchrowthreeofitstruthtable(Figure7-6).Ofcourse,thismeansQbecomes5volts.Again,let’slookatthescenariowhereEis5volts,puttingAND1andAND2in

the“passthrough”mode.Thistime,though,assumeDis0volts.AND2letsitpass,so“WasS”alsobecomes0volts.Also,theinvertermakesNOTD5volts,andAND1letsitpass,so“WasR”becomes5volts.WearenowattherightsideofFigure7-10,whichisouroldRSlatch,withvoltagesthatmatchrowtwoofitstruthtable(Figure7-6).Ofcourse,thismeansQbecomes0volts.Lastly,let’slookatthescenariowhereEis0volts.Now,EputsbothAND1and

AND2intheblockedstate.Boththeiroutputsbecomestuckat0volts.WearenowattherightsideofFigure7-10,whichisouroldRSlatch,withvoltagesthatmatchrowoneofitstruthtable(Figure7-6).Ofcourse,thisistheholdstate,whichmeanstheQoutputmerelymaintainswhatpreviousdataitheld,regardlessofwhatvoltageisatDorNOTD.NowthatyouknowhowtheDlatchworksinternally,let’slookathowthe

microprocessoruseslatches.WeintroducedtheseconceptsinFigure7-2,part(a),toexplaintheneedforselectablestorage.Then,weusedtermslikesourcedeviceanddestinationdevice.Now,let’sreviewthisprocessmorerealistically,usingD,Q,andElabelsfromourlatchtutorial,andfromthepointofviewofamicroprocessorcommunicatingwithitslatches.

AssumetherearetwoDlatches:latchAandLatchB.Thepicturebelowmayhelp:

FIGURE7-12

Ifthemicroprocessorwantstosenda1tolatchA,itplaces5voltsontheDline

(wire/trace).Then,themicroprocessorraiseslatchA’sE0lineto5volts.Then,themicroprocessorlowerstheE0lineto0volts.ThisE0lineisuniquelyforlatchA;itisfornootherdevice.LatchAnowstoresthelogic1,delivering5voltstoitsownQoutput.Next,assumethemicroprocessorwantstosenda0tolatchB.Itplaces0volts

ontheDline(wire/trace).Then,themicroprocessorraiseslatchB’sE1lineto5volts.Then,themicroprocessorlowerstheE1lineto0volts.ThisE1lineisuniquelyforlatchB;it’sfornootherdevice.LatchBnowstoresthelogic0,delivering0voltstoitsownQoutput.Afterthesetwosteparecomplete,latchAisstoringalogic1,andlatchBis

storingalogic0.NotethatbothlatchAandlatchBsharethesame,one,wiredconnectioncalledD,fromthemicroprocessor.However,latchAandlatchBdonotsharetheEline.Eachlatchgetschosenbyitsown,uniqueEline.Aswehavedescribedearlier,asinFigure7-3,part(a),anditsassociatedtext,

inamicroprocessorsystem,weusuallywanttostoremanybitsatthesametime,ratherthanonebitatatime.InsteadofsendingtolatchA,thenlatertolatchB,weusuallysendtolatchgroupA,thentolatchgroupB.It’snotunusualforalatchgroupconsistof64bits.Let’sdesigna4-bitDlatch.An8-bit,16-bit,32-bit,or64-latchwouldlook

similar.Seethepicturebelow:

FIGURE7-13

This4-bitDlatchissimpletodesignandunderstand.Youshouldrecognizeour

1-bitDlatchrepeatedfourtimes.AllfouroftheElinesaretiedtogether,andconnectedtotheoneEinputline.ThefourDlines,however,arekeptseparate.Thus,eachDlatchinthegroupcanstoreitsownbitofinformation,receivedfromitsownDinput.But,allfourcanbeloadedatthesametime,fromoneEline.Notice,too,thefouravailableDlatchoutputs,Q0throughQ3.Withthisdesign,ifQ0istheonlyoutputthatmustchange,Q1throughQ3mustbere-loadedwiththeirpreviousvalueswhenQ0isloadedwithitsnewvalue.Anotherconsiderationforourdesignsofbothgatesandlatchesistheeffectof

connectingoutputstogether.Lookback,now,atFigures7-1through7-3.Remember,forreasonsofefficiency,detailedintheparagraphsaroundthosefigures,wefoundwehadtoaccommodateonesourceofoutputvoltageconnectingtomanydestinationsofinputvoltage.Theoppositearrangementisalsocommon.Seethepicturebelow:

FIGURE7-14Thisnew,opposite,arrangementis:manysourcesofoutputvoltageconnecting

toonedestinationofinputvoltage.Figure7-14,part(a),demonstratesthatarrangement.Part(b)showswhatproblempart(a)overcomes.Ifwecouldnotselectandstorewithlatches,thedestinationwouldneedalineforeverysourceline,24linesinthisexample.Ifeachsourcehad64bits,andthereweretensources,thedestinationwouldneed640lines(wiresortraces).Figure7-14,part(a),showsthree8-bitlatchsources(S)connectingtoone8-bit

latchdestination(D).Insteadof24lines,thedestination(D)inpart(a)onlyrequireseightlines.Thedestination(D)needstohaveacopyofthevoltagescontainedinonlyoneofthethreesources(S).NotshowninFigure7-14,part(a),isthecontrolcircuitrynecessarytomake

surethatonlyonesource(S)atatimeisselectedtodeliveracopyofits8bitstothedestination(D),whiletheothertwosourcesareturnedoff.Ihavealsonotdrawnallofthelineconnections,topreventchaosandconfusion.But,Ididdrawoneoftheeightconnections.Followthearrowstoseethedirectionofvoltagetransfer.But,howdoweturnonoroffoutputvoltagesinthesources?Unfortunately,

withthecircuitwehavebeenusingthusfar—ourbasictransistor/resistorinverter—itcan’tbedone!0voltsstoredatany“on”outputtransistorwoulddefeatthe5voltsstoredatany“off”transistor.Whenconnectedtogether,outputvoltagescontaminate,andinsomedesignsdestroy,eachother.Weneedare-designattheexitofanygateorlatchwithoutputstiedtogether.

There-designwillenablethegateorlatchtoeffectivelydisappear,fromthepointofviewofothergatesorlatches.Theonelatchorgatethatdoesnot“disappear”canthensendvoltagestothedestination,withoutcontaminationordestruction.Weneedasecondtypeoftransistorforthisnewdesign.Lookatthepicture

below:

FIGURE7-15

ThetransistorinFigure7-15iscalledaP-channelenhancement-mode

MOSFET.Comparethiswiththeonewehavebeenusing,theN-channelenhancement-modeMOSFET,asseeninFigure6-1.Youwillfindthatthisnewoneislikeaverticalmirrorimageoftheoldone.NoticethatIhavedrawnthisnew

oneabovetheresistor;Ihaveplacedthesource(S)atthetopandthedrainatthebottom;thearrowinsidethecirclepointsoutwards.Themostimportantthingstonoticearehowthevoltagesandcurrentsare

reversed,comparedtotheoldN-channeltransistor.LookatFigure7-15,part(b).Theconventionalcurrentflowsfrom5voltstoground,asbefore;butnow,itentersthesourceandexitsfromthedrain.Also,toturnonthesource-to-draincurrent,thegatemustnowbemademorenegative(0volts)thanthesource(5volts).Thesource-to-drainthenactsasaclosedswitch,with0voltsacrossit.Now,lookatFigure7-15,part(a).Toturnoffsource-to-draincurrent,thegate

mustnowbemadethesame(5volts)asthesource(5volts).Thesource-to-drainthenactsasanopenswitch,with5voltsacrossit.AllthesebehaviorsarethereverseofwhatweencounteredwiththeN-channeltransistor.Let’snowlookatanewinverterdesign.Lookatthepicturebelow:

FIGURE7-16

Thefirstthingtonoticeinournewinverterdesignisthattheoldresistorhasbeenreplacedbyasecondtransistor,T1.T1isaP-channelenhancement-modeMOSFET.T2remainsunchanged;itisanN-channelenhancement-modeMOSFET.Noticealsothattheirgatesarewiredtogether,thenwiredtotheinputvoltage,A.Finally,noticethattheirdrainsarewiredtogether,thenwiredastheoutput.Wecouldhavebuiltallofourgatesandlatcheswithtwotransistors,anN-

channelandaP-channelenhancement-modeMOSFET,wiredinthisway.Ichosenotto,fortworeasons.One,Iwantedtoteachthroughacomparisonoftransistorswithwaterfaucets,andwaterfaucetsdonotworkthisway.Second,thiscircuitishardertounderstand,involvingtwodifferenttypesoftransistors.Understandingitdependsmoreonelectronictheorythanhydraulics.Youshouldbemorecomfortablenowwiththeunderlyingelectronictheory.You’llseeshortlywhywenowneedthiscircuit.Lookatthepicturebelow,sowecanexplorehowthisnewinverterdesign

works:

FIGURE7-17Ihavedrawnthesamecircuittwice,sowecanstudyitsbehaviorwith5volts

input,thenwith0voltsinput.ThefirstthingtonoticeaboutFigure7-17isthatthiscircuittrulyisaninverter.Inpart(a),5voltscomesin,and0voltscomesout.Inpart(b),0voltscomesin,and5voltscomesout.Let’sseehowthishappens.Inpart(a),5voltsisappliedtobothgates.T1—theP-channeltransistor—turns

off,sinceitsgatevoltageisthesameasitssourcevoltage.Itactslikeanopenswitch.Recallthatanopenswitchisnothingbutair.Thatpartofthecircuiteffectivelydisappears,asIhaveindicatedinpart(a)withthecrossed-outcircle.

Stillinpart(a),the5voltsappliedtothegateofT2,theN-channeltransistor,turnsiton.Draintosource,itactslikeaclosedswitch,likeawiredpathtoneutral(0volts).That0voltsappearsattheoutput.The5voltsatthesourceofT1istotallyblocked.Turningnowtopart(b),0voltsisappliedtobothgates.T2,theN-channel

transistor,turnsoff,sinceitsgatevoltageisthesameasitssourcevoltage.Itactslikeanopenswitch.Recallthatanopenswitchisnothingbutair.Thatpartofthecircuiteffectivelydisappears,asIhaveindicatedinpart(b)withthecircle.Stillinpart(b),the0voltsappliedtothegateofT1,theP-channeltransistor,

turnsiton.Draintosource,itactslikeaclosedswitch,likeawiredpathto5volts.That5voltsappearsattheoutput.The0voltsatthesourceofT2istotallyblocked.Thereis,however,athirdthingwecandowiththisinverterthatwecouldnotdo

withourresistor/transistorinverter.Toseethisfeature,lookatthepicturebelow:

FIGURE7-18

InFigure7-18,Ihaveremovedtheconnectionbetweenthetwogates.Inow

cancontrolthetwotransistorsseparately.So,Iapply5voltstothegateofT1,turningofftheP-channelFET.Fromthepointofviewoftheoutput,T1isgone.Next,Iapply0voltstothegateofT2,turningofftheN-channelFET.Fromthepointofviewoftheoutput,T2isgone.Infact,fromthepointofviewoftheoutput,thewholeinverterisgone!Thisdisappearingactissometimesreferredtoasthehi-Zstate,meaninghighimpedancestate,althoughitremindsoneofthecircuitgoingtosleep,asin“catchingsomeZ’s.”Thisishowwecanhavemanydigitalvoltageoutputsconnectedtogether

withoutthevoltagesaffectingeachother.Wesimplymakeunusedoutputsdisappearbyputtingtheminthehi-Zstate.Figure7-18,above,showsusawaytomakeoutputsdisappear.Ourworkisnotyetdone,though.Weneedsomeadditionalcontrolssothat,

whenthiscircuitisactive,itbehaveslikeFigure7-17;andwhenthiscircuitisdisabled,itbehaveslikeFigure7-18.Seethepicturebelow,forthefinisheddesign.

FIGURE7-19

ThecircuitinFigure7-19isoftencalledatri-stateinverter.It’scalledtri-state

becauseitsoutputcanbeinthreedifferentstates:0volts,5volts,andthehi-Zstatedescribedabove.WhentheEninputisat5volts,thecircuitinFigure7-19behaveslikeanormal

inverter.EnstandsforEnabled,anditmeansthattheoutputvoltage,atO,isabletoreachadestinationcircuit.EitherT1orT2isturnedon.Ontheotherhand,whentheEninputis0volts,theoutputvoltage,atO,isunabletoreacha

destinationcircuit.BothT1andT2areturnedoff.Let’sstartwiththelatter,first.WhenEnislow(0volts),theAinputstoboththe

ANDandtheNANDgatesarelow.ThetruthtableforanANDgate,asseeninFigure6-22,showsthatwhentheAinputislow,theYoutputislow.Youdon’tevenhavetobotherlookingattheBinput.This0voltsturnsoffT2.Also,thetruthtableforaNANDgate,asseeninFigure6-26,showsthatwhentheAinputislow,theYoutputishigh(5volts).Youdon’tevenhavetobotherlookingattheBinput.This5voltsturnsoffT1.BothT1andT2areoffwhenEnislow,sothiscircuitbehaveslikeFigure7-18:theoutputvoltagesnolongeraffectcircuitstheyareattachedto.Now,let’sseewhathappenswhenEnishigh(5volts).Thisisalittletrickier.

Whatwewouldlikeisthat,whenEnishigh,theIinputvoltagelevelgetsappliedtothegatesofbothT1andT2.Thisway,itwouldbeactingjustlikeFigure7-17:likeaninverter.Here’swhatactuallyhappens.WhenEnishigh(5volts),ahighlogiclevelis

appliedtotheAinputsofboththeANDandtheNANDgates.FromourearlierdiscussionaboutFigure7-11,werememberthatforanANDgatewiththeAinputhigh,theBinput(fromI)passesthroughandbecomestheYoutput.Thisiswhatwewant.TheIinputbecomesT2’sgateinput.AcarefullookattheNANDgatelogictableinFigure6-26revealsthatfora

NANDgatewiththeAinputhigh,theBinputpassesthrough,flipstotheoppositelogiclevel,thenbecomestheYoutput.Thisisnotwhatwewant.Wedon’twantthisflip.Ifwecouldflipthisflip,thentheIinput’svoltagewouldbethesameasT1’sgatevoltage.That’sthefunctionoftheinverter.TheinverterflipstheIinputtotheopposite

logicstate.But,theNAND(withtheAinputhigh)flipstheIlogicstatebacktoitsoriginalvalueasitpassesfromitsBinputtoitsYoutput.Thus,withEnhigh,theIinputvaluedoes,infactreachbothT1’sandT2’sgates.WithEnhigh,ourFigure7-19circuitbehaveslikeaninverter,andtheoutputvoltageatOaffectsthedestinationcircuit.WithEnlow,ourFigure7-19circuit’soutputatOiscompletelydisconnectedfromanydestinationcircuit.Ifyoudon’twantthecircuitinFigure7-19toinverttheinputlogicasitpasses

fromItoO,thesolutionissimple.ApplytheIinputtoBoftheNAND.Then,attachtheIinputtotheinputoftheinverter,pointtheinverterdownwards,andattachtheoutputoftheinvertertoBoftheANDgate.SeewhatImeanbylookingatthepicture,below,thencomparingittoFigure7-19.Ifthetri-statecircuitdoesnotinvert,itiscalledatri-statebuffer.

FIGURE7-20

Ournexttopicisanotherstunningone.Itiscertainlyamazingthatweareable

tomovevoltagesfromonepartofadigitalsystemtoanother.Or,thinkofwhatisgoingonatthemachinelevelwhenweaddtwonumberstogether.AgroupofbinaryvoltagesismovedtotheAinputofanaddingcircuit;asecondgroupofbinaryvoltagesismovedtotheBinputofanaddingcircuit;thecircuitproducesthesumofAandBasagroupofbinaryvoltagesatitsYoutput.Allofthisisaccomplishedwiththesametwoelectricalcomponentsarrangedasourinverter;thenthoseinvertersarecombinedinpatternswecallgatesandlatches;thenthosegatesandlatchesarearrangedinpatternswecalldigitaladders.ItiscertainlyamazingthatwecanmoveacopyofvoltagesfromsourceAto

destinationB.But,wealsomovethemback,alongthesamewires,fromBtoA.Wecandothiswithonelatch,butusuallywedothiswithagroupoflatches.Thinkofthis.Wecanmoveavoltagepattern,inlogicformas10101010from8-bitlatchAto8-bitlatchB,alongeightwires.Someothercircuitrycanmodifythatvalue(maybesubtractingfromit)inB.Theresultant,newvoltagepatterncanbemovedbacktoA,inthereversedirection,alongthesame8wires!Now,lookbackatFigure7-3.Itshowsonesourcelatchgroupabletopickout

oneofmanydestinationlatchgroups,and“write”toit.Wedefinethewriteoperationasthecopyingofabitpatternfromthecontrollinglatchgrouptoadestinationlatchgroup.Next,lookbackatFigure7-14.Itshowsonedestinationlatchgroupabletopickoutoneofmanysourcelatchgroups,and“read”fromit.Wedefinethereadoperationasthereplicatingorcopyingofabitpatternfromasourcelatchgrouptothecontrollinglatchgroup.Theabilitytocopyvoltagesinbothdirectionsonthesamewiresgivesusthe

powertocombinethecapabilitiesdemonstratedinfigures7-3and7-14.InFigure7-3,thesourcelatchgroupwasthecontroller.InFigure7-14,thedestinationlatch

groupwasthecontroller.Inamicroprocessor-basedsystem,themicroprocessoristhecontroller.Itisboththesourceanddestinationofinformationflow.It“reads”voltagesintoitself,andit“writes”informationelsewhere.Lookatthepicturebelow,inpart(a),showingacomplexsysteminwhichvoltagescanmovebothways.

FIGURE7-21

Ignorepart(b),fornow.LookingatFigure7-21,part(a),weneedtodefine

sometermsandconcepts.First,D1,D2,andD3are8-bitlatchgroups.Thecomponentlabelledthe“CPU”isthecentralprocessingunit:the“brains”ofthemicroprocessor.However,theinternalpartoftheCPUattachedtothe8wiresgoingtoD1throughD3isjustanother8-bitlatch.WewillrefertoitastheCPUlatch.Next,a“bus”isacollectionofwireswithacommonpurpose.Voltagesmove

simultaneously,or“inparallel,”acrossthesewires.WecancalltheeightwiresinFigure7-21,part(a),a“data”bus,sincethegroupofeightvoltagesonitisinformationor“data.”Next,“bi-directional”meansvoltagescanmoveineitherdirectionalongthebus:

fromtheCPUlatchtostorageinoneofthethreeD’s;orfromoneofthethreeD’stostorageintheCPUlatch.EachoftheD’sisan8-bitlatch,orlatchgroup.Don’tthinkoftheDlatchgroupsasonlybeingdestinationlatchesanymore.

TheDnowstandsforthefactthattheyarebuiltfromD-stylelatches.Inearlierfigures,alatchgrouplabelledSwasalwaysasourcelatchgroup,anoutputofvoltages;whilealatchgrouplabeledDwasalwaysadestinationlatchgroup,adestinationforvoltages.Inabi-directionalbussystem,anylatchgroupissometimesasource,andatothertimesadestination.

InFigure7-21,part(a),wealsoneedtodescribesomenewdrawingtechniques.Thearrowwithatailonbothendssignifiesthatvoltagescanmoveinbothdirectionsalongthebus.Thethick,black,verticallineisashortcutwayofdrawingthe8-wiredatabus.Therearetrulyonlyeightuniquewiresinoursystem,here,eventhougheachwiresplitsthreewaysasitheadsouttothethreeD’s.Itisdifficulttodrawthisthree-wayspliteighttimes,soweoftendrawthethicklinetostandfortheeightlines,thendrawtheeightlinesemergingfromthethickline.Thereisno“thickwire.”IfyoulookbackatFigure7-3,oratFigure7-13,youwillnoticethat,ina

standardlatch,foreveryinputline,weneedanoutputline.NoticeinFigure7-21,part(a),IhavenotdrawneightlinesontherightsideofeachDlatchgroup.Idon’tneedtodrawthem,becausetheydon’texist:eachinputandoutputsharesthesameline.Withoutthebi-directionalbus,Iwouldneedtwiceasmanywires:IwouldneedtheadditionaleightwirescomingoutoftherightsidesofeachoftheD1throughD3latchgroups,thenmergingtobecomeeightuniquewires,thenenteringintonewinputconnectionsontheleftsideoftheCPU.Figure7-21,part(b),depictsthemessycomplexityIhavejustdescribed.Ifwehadnotacquiredthecapabilitiesoftheone-to-manyinFigure7-3;the

capabilitiesofmany-to-oneinFigure7-14;andthecapabilityofusingonebusinsteadoftwoseparateonesformovingdataintoandoutoftheCPU,oursysteminFigure7-21wouldrequire48uniquewires,insteadof8.A“realworld”examplewith10peripherallatchesanda64-bitdatabusrequires64uniquewires,ifimplementedwithallourdesigntricks.Withoutallourdesigntricks,the“realworld”examplewouldrequire1280wires.Let’snowlookatthecircuitthatallowsustohaveabi-directionalbus.Seethe

picturebelow:

FIGURE7-22Thiscircuitdisplayshowtoturnanormal,1-bitlatchintoabi-directionallatch.

Youwouldcombineeightofthesetogethertomakean8-bitlatch,likeD1inFigure7-21,part(a).AlleightwouldshareoneEandoneR/Wline.Let’sstartwiththeboxlabeled“D-Latch”inthelowerright-handcorner.Thisis

thesameselect-and-storecircuitwestudiedinFigure7-10.TherestofthecircuitryinthepictureallowstheDinputandQoutputtosharethesamewire,orturnsoffaccessaltogether.TheDinputandQoutputsharethesamewirebytakingturnsonthesame

wire.WhentheDvoltagecomesintothiscircuit,thelatch’sQvoltageoutputmustbeblocked.WhentheQvoltagecomesoutofthiscircuit,thelatch’sDinputmustbeblocked.HowdowestoptheQoutputfromreachingtheDline,thedatabusline?We

alreadyknowhow.Wealreadydesignedatri-statebuffersothatmanyoutputscanbeconnectedtogether,turnedoff,andonlyoneturnedonatatime.InthedesignofFigure7-22,weneedtoturnofftheQoutputwhenitsvoltagewouldcontaminatethevoltagecomingintotheDlatchinput.Thus,youwillseethetri-statebufferdrawnintheupperright-handcornerofFigure7-22.Thisisyourfirstlookatthelogicsymbolforatri-statebuffer.Inside,itcontainsthecircuityousawinFigure7-20.WhentheEnlineonthetristatebufferis5volts,thevoltageonIappearsatO.WhenEnis0volts,thetri-statebuffer’soutputdisappears,fromtheDinputline’spointofview.TheD,E,andR/WlinesareunderthecontroloftheCPU.Inshort,Disthe

binarydatabit,Eisthebitthatenablesthislatchtodoanything,andR/Wselectswhetherthislatchreceivesorsendsalogicbit.TheCPUreadsthislatchwhenitsendsalogic1onR/W.TheCPUwritestothislatchwhenitsendsalogic0onR/W.WhentheCPU’slatchwanttowriteabittothislatch,itmakestheR/Wline0

volts.Itplaceseither0voltsor5voltsontheDline.Then,itplaces5voltsontheEline.ItcanthensafelypulltheElinebackto0volts.WhentheCPU’slatchwanttoreadabitfromthislatch,itmakestheR/Wline5

volts.Then,itplaces5voltsontheEline.Itgrabsthelatch’sdataofftheDline.ItcanthensafelypulltheElinebackto0volts.Thus,R/WcontrolsthedirectionofinformationtransferontheDwire.Let’slookathowthecircuitryin7-22accomplishesallofthis.Notice,first,that

boththelatchandthetri-statebufferhaveenablecontrolinputs:Enforthetri-statebuffer,andEfortheDlatch.Also,bothEnandEinputsarehigh-true,meaningthatahighlogiclevelturnseachoneon.Next,noticethatEnforthetri-statebufferiscontrolledbyAND1,andEfortheDlatchiscontrolledbyAND2.Thisleadstotheconclusionthatalogic1outofAND1turnsonthetri-state

buffer,forthereadingofQbytheCPU.Similarly,alogic1outofAND2turnsontheDlatch,forwriting(storing)intotheDlatchbytheCPU.So,ifthisbitlatchisnottheoneselectedbytheCPUcontrollerlatch,bothAND

1andAND2outputsmustbeatalowlogiclevel.Neitherthetri-statebufferforoutputnortheDlatchforinputwillbeselected.Recall,fromthelogictablefortheANDgate,asseeninFigure6-22,thatifoneinputtoanANDgateislow,itsoutputislow.Youdon’tevenneedtolookattheotheroutput.Well,theEinputonthefarleftgetsappliedtotheAinputonbothAND1andAND2.SoiftheexternalEinputfromtheCPUcontrollerislow,bothANDgatesoutputswillbelow,andboththetri-statebufferandtheDlatchwillbeoff:thatis,blockedoutoftheoutsideworldontheDwire.Youmayalsoremember(againfromitslogictable)that,ifoneinputtoatwo-

inputANDgateishigh,thentheotherinputpassesthroughtotheoutputwiththesamelogiclevel.TheEinputonthefarleftgetsappliedtotheAinputonbothAND1andAND2.So,ifEishigh,bothAND1andAND2areprimedfortheirYoutputsgoinghigh.AlleitheroneneedsisahighlogiclevelonitsBinput.Let’sfocusnextongettingahighlogicleveltotheBinputs.Butfirst:wedon’twanttoallowbothBinputsofAND1andAND2tobehigh.

Thiswouldcauseasimultaneousread/write,input/outputclash,ratherthanthetakingofturnsinsharingtheDbus.Ourslickwaytopreventthisscenarioistousetheinverter,seeninthelowerleft-handcornerofFigure7-22.Bydefinition,thelogiclevelsontheinputandoutputofaninverterareneverthesame;theyarealwaysopposite.Bothcannotbehigh.So,weconnecttheinputsideoftheinvertertoBofAND1,andtheoutputsideoftheinvertertoBofAND2,knowingtheywillneverbothbehighatthesametime.Wewillneverreadandwriteatthesametime.WhenEishigh,wewilleitherreadorwrite,butneverboth.Next,weconnecttheR/WcontrolsignalfromtheCPUtotheinputsideofthe

inverter(andtotheBinputofAND1).AssumenowthatEishigh.WhenR/Wishigh,theYoutputofAND1goeshigh,causingthetri-statebuffertoturnon,passingtheDlatch’sQoutputtothebi-directionalbus,sothattheCPUlatchcanreadit.TheinverterinvertsthehighonR/WandsendsalowtoBofAND2,pullingtheYoutputofAND2low,andturningofftheDlatchfromanunwantedwrite.StillassumingthatEishigh,let’sseewhathappenswhenR/Wislow.AND1’s

Youtputgoeslow,sothetri-statebufferturnsoff.TheQoutputisblockedfromreachingtheDlineofthetri-statebus.TheinverterinvertsthelowonR/WandsendsahightoBofAND2,pullingtheYoutputofAND2high,andturningontheDlatchforstorageoftheinputdatabitontheDline.Let’ssayafewwordsabouttheCPUlatch.CPU,aspreviouslystated,stands

forcentralprocessingunit.Itisthe“brains”ofthemicroprocessor.Itisthecircuitrythatcontrolsothercircuitry.Itisthecircuitrythatexecutestheprogramcommands.Insomemicroprocessordesigns,themicroprocessorincludesonly

theCPU.Non-CPUthings,likememoryandinput/outputports,areexternaltothemicroprocessor.Inothermicroprocessordesigns,themicroprocessorincludeseverything:CPU,memory,input/output/,etc.Inthelastfewparagraphsandfigures,IhavereferredtotheCPUlatch.Thisis

justoneelementintheCPU.ItisonelatchgroupinsidetheCPU:forourdesignitisan8-bitlatch,nodifferentfromD1,D2,orD3inFigure7-21.YoumayhavewonderedhowtheCPUlatchworks,comparedtolatchesD1

throughD3thatwehavebeenexplainingindiagram7-21.Itworksthesameway,withonemajordifference:theCPUmakestheR/WlineontheCPUlatchtheoppositelogiclevelasontheR/WlinetotheexternallatchesD1,D2orD3.Thismakessense.IftheCPUistryingtoreadfrom8-bitlatchD1,thenthatmeansitisalsotryingtowriteD1’scontentstoitsCPU8-bitlatch.IftheCPUistryingtowriteto8-bitlatchD1,thenthatmeansitisalsotryingtoreadoutthecontentsofitsCPUlatchtoputitinD1.Remember,theonlydifferencebetweenreadingandwritingtoalatchisthelogicleveloftheR/Wline.

CHAPTEREIGHTAMICROPROCESSORINACTION

Thusfar,wehavebeenslowlybuildingupthepiecesofthepuzzlethathelpus

understandhowamicroprocessorworks.Now,let’stakeabigstepforward,andlookathowthosepiecesfittogethertomakeaworkingmicroprocessor.Ourpatternhasbeentoproceedfromactualcircuitstosimplerlogicdiagrams

thatencapsulatetheactualcircuitsinside.Thishasallowedustobuildmorecomplexcircuitsbyconnectinglogicdiagrams,sothatthedetailofactualcircuitsdoesnotoverwhelmus.Figure7-22,above,isagoodexampleofthis.Itisaninterconnectionoffive

logicdiagrams.But,eachlogicdiagramcontainsinsideitaphysicalcircuitwhichwehavepreviouslydesignedandstudied.Ifwehaddrawnallthephysicalcircuitrycontainedinthesefivelogicdiagrams,thecomplexitymightoverwhelmus.Wearenowtakingabigstepforwardtoahigh-levellogicdiagramofthewhole

microprocessor.Itismoreofasketchyblockdiagram.Wecanuseittogetafeelforhowthewholemicroprocessorgoesaboutdoingitswork.Oncewegetagetafeelforthefunctionalityatthislevel,wewillthenbacktrackandexplorethecircuitsinsidetheseblocksinmoredetail.Thosecircuitsarethefinalpiecesofthepuzzlethataccomplishtheeventswitnessedinthefollowingdemonstration.Let’sbegin.Ifsomeoneasksyou,“Whatdoesamicroprocessordo?”youcan

answer,“Fetch,decode,andexecute.”Itperformsthissequenceofactions,inthisorder,overandover,millionsoftimespersecond.Whentheexecuteactioniscomplete,thenextfetchbegins:fetch,decode,execute,fetch,decode,execute,fetch,decode,execute,etc.Whenyouturnonthemainpowerswitch,thefirstthingthemicroprocessordoesis:fetch.Inthefetchoperation,themicroprocessorreadsthenextcommandor

instructionfromprogrammemory.Inthedecodeoperation,circuitryinthemicroprocessordeciphersthecommand,settingupallthenecessarysub-circuitsrequiredtocarryoutthecommand.Intheexecuteoperation,themicroprocessorcarriesoutthecommand,usingallthecontrolcircuitryandsub-circuitsunderitscommand.Let’swatchhowthisplaysoutinthepicturebelow.

AddressBusDataBus

FIGURE8-1First,let’sgetcomfortablewiththisfigurethroughanoverview.Comparethis

figurewithFigure7-21.TherightsideofFigure8-1isthebi-directionaldatabusthatyoualreadyunderstand,fromFigure7-21.ThedatabusinFigure8-1hassixbits,labelledD0throughD5.TheCPUselectsoneoftheDlatchesintheROM,keyboard,RAM,orvideoblocks.Then,iteitherwritessixparallelbitstoit,orreadssixbitsparallelbitsfromit.TheCPUblockinFigure8-1hasmorethingsinit.But,twoofthem,the

instructionregisterandtheaccumulatorarejustCPUlatches,liketheoneinFigure7-21.Youalreadyunderstandbi-directionalDlatches.Everythingelseinthefigure,belowtheblocklabelledCPU,isjustDlatches.Icountnine,6-bitlatchgroups.SixofthemareclumpedtogetherintheblocklabelledROM.StilllookingonlyattherightsideofFigure8-1,noticethearrowsalongthedata

bus.ThearrowtotherightoftheCPUpointsbothways.Thisindicatesthat

informationflowsbothwaysonthedatabus:intoandoutoftheCPU.Thesingle-endedtailstotherightoftheROM,keyboard,RAM,andvideoblocksaredrawntohelpyouunderstandwhichwaythevoltageismovingonthedatabusaswewalkthroughthisprogram’sexecutionNext,let’sgetcomfortablewiththedevicesinFigure8-1.Thisisaverysimple

system.ROMstandsforread-onlymemory.It’swhereourcomputer’sprogramlives.TheprogramcommandsareintheROM,evenwhenpoweristurnedoff.Themicroprocessorneedsaprogram’scommandsavailablefromtheinstantitisturnedon,becauseithastofetch,thendecode,thenexecute.TheROMiswherethemicroprocessorfetchesfrom.RAMstandsforrandom-accessmemory.Unlikeread-onlymemory,random-

accessmemorycanbebothreadfromandwrittento.“Random”meansthemicroprocessorcanpickanylocationinRAMtoreadorwrite;itdoesnothavetogosequentially.Wewillhavemuchmoretosayaboutthisselectionprocess,shortly.Thekeyboardisthelocationfromwhichourmicroprocessorreadsacomputer

keyboardkeypress.Thevideoisthelocationtowhichourmicroprocessorwritestheletterpressedonthekeyboard,sothelettercanbeviewedontheLCDscreen.Now,let’slookattheleftsideofFigure8-1,theaddressbus.Theaddressbus

inthissystemisfourbits—onfourwires—labelledA0throughA3.ItispartoftheDlatchselectionprocess,inwhichtheCPUchooseswhichofthenineDlatchesintheROM,keyboard,RAM,orvideoitwritestoorreadsfrom.Again,wewillhavemuchmoretosayaboutthisselectionprocess,shortly.Noticethearrowsalongtheaddressbus.Theaddressbusisnotbi-directional.

VoltagescomeoutoftheCPUblock,eitherfromtheprogramcounteroraddressregister,andgototheROM,keyboard,RAM,orvideo.Thevoltagesonthisbusaren’tforstorage,justforselection.TheaddressofeachofthenineDlatchesinvolvedinthisprogramisdrawnon

thefarleftofeachblock.Forexample,thefirstROMlocationisataddress0.Thekeyboardlocationisaddress16.Thevideolocationisaddress48.Rememberthatthesearehuman,decimalnumbers.TheCPUwillputthesenumbersinbinaryvoltageformontheaddressbus,aspartoftheselectionprocess.Wewillhavemoretosayaboutbinarynumbers,shortly.Let’sgetstarted.Iwillgothroughasimpleprogram,in36steps,usingFigure8-

1asreference.Duringeachstep,lookatthestepnumber,drawnandcircledinFigure8-1,tolocatewheretheeventoccurs.Sothatyouknowinadvancewhattheprogramdoes:itreadstheletterUpressedonthekeyboard,storesacopyofthatletterinRAM,thenstoresthesameletterinvideo,forscreendisplay.Step1.)Youalreadyknowwhatstep1willinvolve:afetch.Theprogram

counterintheCPUcontainsabinaryvalueof0atpower-up.Thebinary0voltagesareplacedontheaddressbus.

Step2.)ROMlocation0isselected.Step3.)ThebinarycodeforaREADcommandgoesoutofROMandontothe

databus.Step4.)TheREADcommandgoesintotheCPU’sinstructionregisterfor

decoding.Theprogramcounterbumpsupby1;ithadbinary0,sonowithasbinary1.ThedecodingoftheREADcommanddeterminesthatthecommandisincomplete.Moreinformationisneededbeforethecommandexecutioncanoccur.Step5.)Anotherfetchoccurs.Theprogramcounterplacesabinaryvalueof1

ontotheaddressbus.Step6.)ROMlocation1isselected.Step7.)Thebinaryvalueofdecimal16comesoutofROMandgoesontothe

databus.Step8.)Thebinary16enterstheCPU’sinstructionregister,andisappendedto

theREADcommand.Theprogramcounterbumpsupby1;ithadbinary1,sonowithasbinary2.Thecompletecommandintheinstructionregisterisnowabinarycodethatstandsfor,“READaddress16.”Decodingdeterminesthatthiscommandiscomplete,socommandexecutioncannowbegin.Step9.)Thebinaryaddress,16,intheinstructionregistermovesintothe

addressregister,thenontotheaddressbus.Step10.)Keyboardlocation16isselectedforreading.Step11.)ThebinarycodefortheletterU,thekeyboardkeythattheuser

pressed,goesoutofthekeyboardlatchandontothedatabus.Step12.)ThebinaryUenterstheAccumulatorlatchintheCPU.The

AccumulatorisautomaticallythedestinationoftheREADcommand.Thecurrentexecutionprocessiscomplete.Step13.)Thefetchprocessstartsagain.Theprogramcounterplacesabinary

valueof2ontotheaddressbus.Step14.)ROMlocation2isselected.Step15.)ThebinarycodeforaWRITEcommandgoesoutofROMandonto

thedatabus.Step16.)TheWRITEcommandgoesintotheCPU’sinstructionregisterfor

decoding.Theprogramcounterbumpsupby1;ithadbinary2,sonowithasbinary3.ThedecodingoftheWRITEcommanddeterminesthatthecommandisincomplete.Moreinformationisneededbeforethecommandexecutioncanoccur.Step17.)Anotherfetchoccurs.Theprogramcounterplacesabinaryvalueof3

ontotheaddressbus.Step18.)ROMlocation3isselected.Step19.)Thebinaryvalueofdecimal32comesoutofROMandgoesontothe

databus.

Step20.)Thebinary32enterstheCPU’sinstructionregister,appendedtotheWRITEcommand.Theprogramcounterbumpsupby1;ithadbinary3,sonowithasbinary4.Thecompletecommandintheinstructionregisterisnowabinarycodethatstandsfor,“WRITEaddress32.”Decodingdeterminesthatthiscommandiscomplete,socommandexecutioncannowbegin.Step21.)Thebinaryaddress,32,intheinstructionregistermovesintothe

addressregister,thenontotheaddressbus.Step22.)RAMlocation32isselectedforwriting.Step23.)ThecontentsoftheCPU’sAccumulatorlatchisplacedonthedata

bus.TheAccumulatorisautomaticallythesourcefortheWRITEcommand.Remember,itcontainsthebinarycodefortheletterU,acquiredinstep12.Step24.)ThebinaryUvalueentersRAMlocation32forstorage.Thecurrent

executionprocessiscomplete.Step25.)Thefetchprocessstartsagain.Theprogramcounterplacesabinary

valueof4ontotheaddressbus.Step26.)ROMlocation4isselected.Step27.)ThebinarycodeforaWRITEcommandgoesoutofROMandonto

thedatabus.Step28.)TheWRITEcommandgoesintotheCPU’sinstructionregisterfor

decoding.Theprogramcounterbumpsupby1;ithadbinary4,sonowithasbinary5.ThedecodingoftheWRITEcommanddeterminesthatthecommandisincomplete.Moreinformationisneededbeforethecommandexecutioncanoccur.Step29.)Anotherfetchoccurs.Theprogramcounterplacesabinaryvalueof5

ontotheaddressbus.Step30.)ROMlocation5isselected.Step31.)Thebinaryvalueofdecimal48comesoutofROMandgoesontothe

databus.Step32.)Thebinary48enterstheCPU’sinstructionregister,appendedtothe

WRITEcommand.Theprogramcounterbumpsupby1;ithadbinary5,sonowithasbinary6.Thecompletecommandintheinstructionregisterisnowabinarycodethatstandsfor,“WRITEaddress48.”Decodingdeterminesthatthiscommandiscomplete,socommandexecutioncannowbegin.Step33.)Thebinaryaddress,48,intheinstructionregistermovesintothe

addressregister,thenontotheaddressbus.Step34.)Videolocation48isselectedforwriting.Step35.)ThecontentsoftheCPU’sAccumulatorlatchisplacedonthedata

bus.TheAccumulatorisautomaticallythesourceforWRITEcommands.Remember,itcontainsthebinarycodefortheletterU,acquiredinstep12.Step36.)ThebinaryUvalueentersvideolocation48forstorageandviewing

onascreen.Thecurrentexecutionprocessiscomplete.Ourprogramiscomplete.That’sallthereistoit.Oursimpleprogram,foroursimplemicroprocessor

system,isdone.Whatdoesourmicroprocessordonext?Youknowthatithastofetchacommand.Ournextcommand,atROMaddress6couldbe,GOTO0.TheGOTOcommandreplacesthecurrentcontentsoftheprogramcounterwiththevalueinthesecondpartoftheGOTOcommand.SinceourcommandisGOTO0,abinary0wouldbeplacedintheprogramcounter,sothatthefetchwouldbefromROMaddresslocation0.Thiseffectivelystartsourprogramagain,fromthebeginning.Infact,ourprogramrestartseverytimeitfinishes,duetotheGOTO0commandattheend.Wecallthisaninfiniteloop.Theprogramloopsbackfromendtobeginningeverytime,forever,oruntilthepowersupplytothemicroprocessoristurnedoff.

CHAPTERNINEBINARYNUMBERS

Nowwecanexplorethedetailsoftheaddressbus.Iintentionallyworked

backwards,here.Icouldhaveshownyouthenutsandboltsofhowaddressselectionworksfirst.Ipreferredtofirstshowanaddressbusinaction,sothatyoucouldseewhyweneedone.And,soyoucanappreciateitsimportance.Binarygroupscanrepresentwhateverwewantthemtorepresent:command

code,numbers,alphanumericcharacters,etc.Ontheaddressbus,wetreatthebinaryvoltagesasnumbers:asnumericaladdresses,justlikeourhouseshaveaddressnumbers.Youneedtoknowalittleabouthowwerepresentnumbersinbinary.Weconstructthebinarynumbersystemthesamewayweconstructthe

decimalnumbersystem.Inthedecimalnumbersystem,wehavetendistinctdigits.Inbinary,wehavetwodistinctdigits:0and1.Topreventconfusionwhentalkingaboutbinaryanddecimal,Iwillappendabattheendofabinarynumber,andadattheendofadecimalnumber.So,ifIhave0basterisks,Idon’thaveanyasterisks.IfIhave1basterisks,Ihavethismanyasterisks:*.HowdoIrepresent**asterisks?Justlikeindecimal,whenIwanttogettothe

nextnumber,Iadd1btothecurrentnumber.Thisiscalledcounting.CountingishowIwentfrom0bto1b:Iadded1bto0btoobtain1b.NowIwanttoadd1bto1btogettothenextnumber,whichwillrepresent**asterisks.ButIhaverunoutofnumbers.Thereisnoone-digitnumberafter1b,inbinary.

WhatdidIdoindecimal,whenIwascounting(adding1tothecurrentnumber)andranoutofnumbers?Thishappenedat9d.After9d,thereisnohigherone-digitnumberindecimal.WhenIreached9dandadded1dto9d,Iresetthe9dbackto0dandaddeda1dtothenextcolumntotheleft.Mynextnumber,after9d,became10d.Seetheexample,below:

TABLE9-1

Whatisthesignificanceofthenextcolumntotheleft?Numbersinthenewcolumn,secondfromtheright,areworthtentimesasmuchasnumbersinthefirstcolumn(indecimal).So,a1dinthefirstcolumnisworth*asterisk.But10dhasa1dinthesecondcolumnfromtheright,soitisworthtentimesasmanyasterisks:**********.Infact,everytimewemoveanothercolumntotheleft,thevalueofthatdecimaldigitincreasesanotherten-fold.Followingthesamerulesweusedfordecimal,wefindthatthebinarynumber

after1bis10b.Howdidwearriveatthisanswer?Weresetthe1bto0b,andadda1btothenextcolumn.Thenewnumber,10b,represents**asterisks.Seetheexample,below:

TABLE9-2

Nowyoucanseetheimportanceofusingabordafterournumbers.Indecimal,10drepresents**********asterisks.Inbinary,10brepresents**asterisks.Withoutthebord,theylookthesame:10.Indecimal,anumberinanycolumnisworth10dtimesasmanyasterisksas

thesamenumberinthecolumntoitsright.So,indecimal321d,the3disreallyworth(3d)x(100d),or300d;the2disreallyworth(2d)x(200d),or200d;andthe1disreallyworth(1d)x(1d),or1d.Addthemup,andwewriteitas321d.Inbinary,anumberinanycolumnisworth10btimesasmanyasterisksasthe

samenumberinthepreviouscolumn,toitsright.10binbinaryis2dindecimal,toushumans,comfortablespeakingindecimal.So,speakingasahumanindecimal,abinarynumberinanycolumnisworthdouble,ortwiceasmany

asterisksasthesamenumberinthecolumntoitsright.Ifwecontinuecountinginbinary,wekeepusingtheruleofresettingto0band

adding1btothenextcolumntotheleft.Forexample,ifwehavecountedto11b,thenextnumberis11b+1b.Weadd1btotherightmostcolumnof11b.Wehaverunoutofdigits,soweresettheresultantto0bandcarrythe1btothenextcolumntotheleft.Thecarry1bplusthe1binthesecondcolumnalsooverflows,soweresetto0bagain,andadd1btothenextleftcolumn.Theanswerbecomes11b+1b=100b.So,countinginbinarylookslikethis:

TABLE9-3

Wesaythatabinarynumberinanycolumnisworthdouble,ortwiceasmanyasterisksasthesamenumberinthecolumntoitsright.Usingthisknowledge,wecanconvertanybinarynumbertodecimalbyusingthechartonthefollowingline:

TABLE9-4Theabovesequenceistheweightingvalueofthebitpositionforeachbitofan

8-bitbinarynumber.Eachvalue(aftertherightmost)isdoublethenumbertoitsright.Toconvert00111011bfrombinarytodecimal,lineupthe8binarydigitsundertheircorrespondingweightingvalues.Multiplyvertically,thenaddthemultiplicationresultshorizontally.Seetheexamplebelow.

TABLE9-559disthedecimalformofthebinarynumber00111011b.

Thereareformalwaystoconverttheotherway,fromdecimaltobinary,butthey

involvelongdivision.Moststudentsnowadayspreferatrialanderrorsolution(oruseascientificcalculator).It’sliketheabovemethod,butinreverse.Forexample,toconvert50dtobinary,preparethischart:

TABLE9-6Startfromtheleft,andworktowardtheright.Findthebiggestnumberthatdoesnotexceed50d.Thatwouldbe32d.Replacethe0bunderthe32dwitha1b.Keepaseparaterunningtallyofthenumbersabovethebitswechangefrom0bto1b.Ourtallynowonlycontain32d.(Seebelow.)

TABLE9-7Keepworkingyourwaytotheright,findingthenextdecimalnumberwecan

addto32d,withoutthesumexceeding50d.16disthenextnumber,because32d+16d=48ddoesnotexceed50d.Changethe0bunderthe16dtoa1b,andaddthe16dtoourrunningtally:32d+16d=48d.Ourchartnowlookslikethis:

TABLE9-8Werepeatthisprocess,stoppingonceourrunningtallreaches50d.Weareat

48d.Obviously,wemustnotadd8d,because48d+8d=56d,whichexceeds50d.Infact,at48d,weonlyneed2dmoretoexactlyarriveat50d.So,wecanalsoskipover4d.Wechangethe0bunderthe2dtoa1b,andaddthe2dtoourrunningtally:48d+2d=50d.Ourchartnowlookslikethis:

TABLE9-9So,westartedwithdecimal50dandwantedtoknowthebinaryequivalent.We

concludethat00110010bisthebinaryequivalentof50d.Thefirsttwozeroesontheleftarenotrequired.Theanswerdoesn’tchangeifyouweretowrite110010b,insteadof00110010b.

CHAPTERTENTHEADDRESSBUSANDDECODER

Returningtoouraddressbus,assumewehavea4-bitaddressbus.Assume

wehavelabelledthefourwiresofthebusasA3,A2,A1,andA0.WeagreethatthewirelabelledA3standsforthemostsignificantbit,andtheonelabelledA0standsfortheleastsignificantbit.Inotherwords,thattheyfollowthechartbelow:

Let’ssaywewanttoenablethelatchthathasthedecimaladdressof9d.What

binaryaddressdoweputonthedatabus?Well,9dindecimalisthesamenumberas1001binbinary.Theybothdescribe*********asterisks.Sinceweputvoltagesontheaddressbus,ouraddressbuswouldphysicallycontainthefollowingvoltagesatthefollowinglocations:

Nowthatyouunderstandwhatisphysicallyontheaddressbus,younextneed

tounderstandhowthesevoltagesaredecoded:howtheyselectonlyoneofthemany6-bitdatalatchesinFigure8-1.Goback,rightnow,toFigure7-12.Yousee,inFigure7-12,aboxlabelledCwiththeabilitytoselectoneofseveraldatalatches:tomakethevoltageattheE(enable)inputofonedatalatch5volts,whilekeepingalltheotherEinputsofthenon-selecteddatalatches0volts.ThissectionexplainswhatisinsidethatmysteriousboxlabeledC:theaddressdecoder.Forthemoment,let’ssimplifyourFigure8-1evenfurther.Let’spretendthat

ROMisonlyonelatchgroup,RAMisonlyonelatchgroup,thekeyboardisonlyonelatchgroup,andvideoisonlyonelatchgroup.Fourlatchgroupsrequirefouruniqueaddresses(22=2x2=4)todecodethem.Theaddresseswouldbe:00b,01b,10b,and11binbinary,forROM,keyboard,RAM,andvideo,respectively.Let’slabeltheaddresslinesA5andA4.Seethepicturebelowtolearnhowthe

microprocessorsystemdecodesA5andA4:

FIGURE10-1InFigure10-1,asmallmicroprocessoraddressdecoder,Ihavearrangedthe

middlesectionpurelyforeaseofunderstanding.Thisinternalbusdoesn’tleadanywhereoutofthepicture.Thereonlytwoinputs,A5andA4.Therearefouroutputs:EofROM,Eofkeyboard,EofRAM,andEofvideo.Estandsforenable.Remember,eachDlatchisaccessibleonlywhenitsEinputishigh.Thelogictable(sometimescalledthetruthtable)thatcompletelydescribesthebehaviorofthisaddressdecoderis:

FIGURE10-2

Readingthetruthtableonerowatatime,wefindsummarizedwhatwe

describedintheparagraphsabove.Forexample,inthefirstrow,whenA5andA4arebothlow,onlytheEoutputtoROMishigh,meaningonlytheROMlatchisenabled.Let’slookatFigure10-1toseehowthisdecodingtakesplace.A5andA4,

generatedbytheCPU,entertheaddressdecoder.Theyareimmediatelyinvertedbyinverters,sothattheirlogicaloppositesareavailableasNOTA5andNOTA4.InFigure10-1,theseinversionsareshownasA5andA4withlinesabovethem.It’shardforwordprocessingsoftwaretoputlinesabovecharacters,soinsteadweputtheword,“NOT”infrontoftheinvertedlogic.Anothertechniqueistoputaforwardslashinfront,asin/A5and/A4.Now,fourdifferentlogicstatesareavailabletothefourANDgates.Non-

invertedversionsofA5andA4godirectlytoAND4.So,perthetruthtableofANDgates,AND4’soutputgoeshighwhenA4andA5arebothhigh.Thiscreatesrow

fourofthetruthtable.AND1’stwoinputsbothcomefromtheinverters.So,whenA5andA4areboth

low,inverteroutputs/A5and/A4arebothhigh,causingAND1’soutputtogohigh.Thiscreatesrowoneofthetruthtable.AND2’soutputgoeshigh(true)whenA4—whichdoesn’tgetinverted—ishigh

andA5—whichdoesgetsinverted—islow.Thiscreatesrowtwoofthetruthtable.AND3’soutputgoeshigh(true)whenA5—whichdoesn’tgetinverted—ishigh

andA4—whichdoesgetsinverted—islow.Thiscreatesrowthreeofthetruthtable.Thecreationofcomplexityfromsimplicityfollowsthefollowingprocessindigital

electronics.Westartwithvoltagesources,transistors,andresistors.Weputthemtogethertomakeinverters.Weputinverterstogethertomakegates.Weputgatestogethertomakelatches.Weputgatesandlatchestogethertomakemorecomplexcircuits.Weputmorecomplexcircuitstogethertomakemachinesanddeviceslikemicroprocessors.ThecircuitinFigure10-1isanexampleofputtingtogetherbasicbuildingblocks

—justgatesinthiscase,nolatches—tocreateaslightlymorecomplexcircuit.Itsnameisa2-to-4binarydecoder.Aswecreatetheseslightlymorecomplexcircuits,wegivethemnames,andencapsulatetheminnewlogicdiagrams.Thisway,wedon’thavetodrawthecircuitryinFigure10-1repeatedly.Wecaninsteaddrawthemuchsimplerlogicdiagramforthe2-to-4binarydecodershownbelow:

FIGURE10-3Theinputandoutputlabelsabovearegenericonesyouwillfindin

documentationfordecoders.ThelogicdiagraminFigure10-3focusesourattentionontheinputsontheleftandtheoutputsontheright.AlongwiththetruthtableinFigure10-2andyourunderstandingofhowthedecoderworks,younolongerhavetobeconcernedwiththecircuitryitencapsulatesinFigure10-1.Also,youdon’thavetoconcernyourselfwiththeresistorsandtransistorsthatFigure10-1’sANDgatesandinvertersencapsulate.Let’sreturn,now,toFigure8-1:ourmicroprocessorsystem.Intheabove

analysis,Isimplifiedtheaddressbusbymakingeachaddressablesubsystemcontainonlyonelatch:oneROMlatch,oneRAMlatch,onekeyboardlatch,andonevideolatch.Inarealsystem,eachaddressablesubsystemcontainsmanylatches.InoursystemofFigure8-1,eachsubsystemhas16latches.TheCPUaccessed6ofthe16ROMlatches.OurprogramaccessedonlyonelatchfromeachoftheRAM,keyboard,andvideosubsystem,butitcouldhaveaccessed16latchesineach.Amicroprocessor-basedsystem,then,actuallyperformslatchselectionina2-

stepprocess.DidyounoticethatinoursimplifiedanalysisinFigure10-1IlabelledtheaddressbuswiresasA5andA4?Andyet,inouractualcircuitofFigure8-1,IlabelledtheaddressbuswiresA3,A2,A1,andA0.Thisisevidenceofa2-stepprocess.Oursystem’sfinishedaddressbusreallyrequires6addresslines.Ina

microprocessorsystem,thehighestorderbitsareseparatedfromthelowerorderbits;thehighestorderbitsarethensenttoanaddressdecoder.Thus,thehighestorderbitsareusedtogeneratetheenablesignalthatpicksjustonesubsystem.Thelowerorderbitsarethenusedtoselectjustonelatchofthemany

containedintheoneactivesubsystem.Thoughthelowerorderbitsgotoallthesubsystems,theyareignoredbythenon-selectedsubsystems.So,let’sapplythisnew-foundknowledgetooursystem.Let’sremovethepartsofFigure8-1wedon’tneed—likethedatabus—andinsertwhatwehavejustlearned.Seethepicturebelow:

FIGURE10-4

InFigure10-4,youcanseehowthe2-stepaddressselectionprocessplaysout

inoursystem.NowyoucanseeallsixoftheaddressbitsourCPUgenerates.Youcanseetheseparatepaththehigher-orderaddressbits,A5andA4,taketotheaddressdecoder.Thisisstepone.Theaddressdecoderisthe2-to-4decoderfromFigure10-3.Theaddressdecoderactivatesonlyoneofthefoursubsystems,byraisingitsEwirehigh.Oncethechosensubsystemisactivatedbytheaddressdecoder,addresslines

A3,A2,A1andA0arefurtherdecodedinsidethesubsystemtopicktheonelatchgroupof16towritetoorreadfrom.Thisissteptwo.FromtheCPU’spointofview,itputs64differentaddressesonitsaddressbus.

That’sthenumberofuniquecombinationsofa6-bitbinarynumber(theaddressbusis6bitswide).TheCPUdoesn’tknowabouttheaddressdecoderoraboutfourdifferentsubsystems.Fromthesubsystems’(ROM,RAM,keyboard,andvideo)pointofview,eachoneofthemonlyreactsto16differentaddresses:decimal0dto15d,whichisthesameasbinary0000bto1111b.Theyalsoknownothingabouttheaddressdecoderoraboutothersubsystems.Theyknownothingaboutanyaddresseshigherthan15dor1111b.It’stheaddressdecoder,orperhapsweshouldsaythedesigneroftheaddress

decoder,thatcreatesthememorymapyouseeinFigure10-4.Lookclosely,andyouwillseethattheROMrespondstoaddresses0dto15d,thekeyboardrespondstoaddresses16dto31d,theRAMrespondstoaddresses32dto47d,andthevideorespondstoaddresses48dto63d,thataresentoutoftheCPU.Lookatthechartbelow:

FIGURE10-5EachrowinFigure10-5showstheaddressrangeforonesubsystem,andhow

itisderived.Thecolumnwiththeheading,“A5-A0decimal”showstheaddresses

thattheCPUsendsoutontoits6-bitaddressbus,andwhatdevicesrespondtothem.Thedecimalnumbersdon’tmakemuchsenseuntilyoulookattheminbinary,asshownintheadjacentcolumnwiththeheading,“A5throughA0.”Forexample,thechartsaysthattheVIDEOsubsystemrespondstothedecimal

rangeofaddresses48dthrough63d,whichisthebinaryrangeofaddresses110000bthrough111111b.(Youalreadyknowhowtododecimaltobinaryandbinarytodecimalconversions.)But,wheredothesebinarynumberscomefrom?Well,thecolumnlabelled,“A3

throughA0,”showswhateachsubsystemseesatitsaddressinputwires.Clearly,eachsubsystemseesthesameaddressrange:0000bthrough1111b.ThecolumnslabeledA5andA4completethestory.AddressbusvoltagesA5

andA4—viatheaddressdecoder—selectadeviceinonerowofthechart,toaccessthatdevice’sinternal0000b-1111baddresses.So,wenowknowwheretheVIDEOsubsystemsaddressrangeof110000bthrough111111bcomesfrom.WeusenumbersfromtheVIDEOrowinFigure10-5.Wewrite,fromlefttoright,thebinaryvaluesfor:A5(a1b),thenA4(alsoa1b),thenthe4-bitbinaryvaluesforA3throughA0(0000bthrough1111b).Wesaywe“append”thevalues,0000bthrough1111b,to11b,toproduce110000bthrough111111b.ThesearetheaddressnumbersthecomputerengineerwhodesignedthissystemusestoaccessVIDEO.Asstatedabove,oncethechosensubsystemisactivatedbytheaddress

decoder,addresslinesA3,A2,A1andA0arefurtherdecodedinsidethesubsystemtopicktheonelatchgroupof16towritetoorreadfrom.Now,I’llshowyouhowthedecodinginsidetheRAM,insidethevideo,etc.,happens.Actually,theaddressdecodinginsidethesubsystemisverysimilartothe

addressdecodingyoualreadyhavewitnessedoutsidethesubsystem,asinFigure10-4.Thedifferenceis,inFigure10-4wehadtoselectoneoffouraddresses,whereasinsideeachsubsystem,wemustselectoneofsixteenaddresses.Wehavefouraddresslines,A3-A0,toselectoneofthosesixteenaddresses,soweneeda4-to-16decoder.Wecoulddesignanew,4-to-16binarydecoder.Youmaybeabletodesignit

yourself,fromFigure10-1.(Hint:usefourinvertersandsixteen,4-inputANDgates.Instead,let’sfollowourprocedureofbuildingnew,progressivelymorecomplexcircuitsoutofouroldones.Let’sbuildour4-to-16decoderoutoftwo2-to-4decodersandsomeextraANDgates.We’llevensaveafewtransistorsdoingitthisway.Seethepicturebelow:

FIGURE10-6ThecircuitshowninFigure10-6isinsideeachofthefoursubsystems,ROM,

keyboard,RAM,andvideo.DC1andDC2aretwoofour2-to-4binarydecoders.TheyconnecttotheworldoutsidethemvialinesA3,A2,A1,andA0,asshownabove.Theeightwires,Q0throughQ3andQ0’throughQ0’,neverintersect:never

toucheachotherinanyway.Theycreatea4x4grid.Attheintersectionofeachwirepair,Ihavedrawnasmallbox.Ihavezoomedinonthecontentsofbox15.Thecontentsofbox15aredisplayedatthebottomofFigure10-6:anANDgateandoneofthesixteenlatches.Thisiswhatyouwillfindineachofthe16smallboxes.Ihavealsoplacedadecimalnumbernexttoeachsmallbox.ThisnumberisthedecimalequivalentofthebinarynumberonaddresswiresA3throughA0thatactivatesthelatchinsidethesmallbox.Seethepicturebelow,aswediscusshowthiscircuitworks.

FIGURE10-7

IfFigure10-7scaresyou,let’sfirstanalyzethecircuitinFigure10-6withoutit.

AddresslinesA3andA2enableoneofthefourrowsontheoutputofDC1.Thismeansthatonlyoneoftherowshasahighvoltageonit.ThisalsomeansthatonlythefourANDgatesinthatrowhaveahighononeinput.So,forexample,ifA3andA2arebothlow,onlyrowQ0’goeshigh,soonlythetoprow’sANDgateshaveoneinputhigh.But,toactivatealatch,werequirebotharowandacolumntobeenabled.

AddresslinesA1andA0enableoneofthefourcolumnsontheoutputofDC2.Thismeansthatonlyoneofthecolumnshasahighvoltageonit.ThisalsomeansthatonlythefourANDgatesinthatcolumnhaveahighononeinput.So,forexample,ifA1andA0arebothlow,onlycolumnQ0goeshigh,soonlytherightcolumn’sANDgateshaveoneinputhigh.However,fortheoutputofa2-inputANDgatetobehigh,bothofitsinputsmust

behigh.Ifyoufollowthroughtheexampleintheprevioustwoparagraphs,youwill

findthatonlytheANDgateintheupperright-handcornerhasbothofitsinputshigh.ItistheonlyANDgatewhoseinputsaredrivenbyboththetoprow’s(Q0’)andtherightcolumn’s(Q0)highoutputs.So,whenA3throughA0are0000b,onlytheANDgatehiddeninthesmallboxlabelled0inFigure10-6hasahighoutput.Thishighoutputpullshightheenableinputofitslatch,forreadingorwritingtothatlatch.NowlookatFigure10-7.ItislaidoutinthesameorderasthegridinFigure10-

6.ThedecimalnumberatthebottomofeachsquareinFigure10-7isthesameastheoneineachcorrespondinglittleboxinFigure10-6.It’sthedecimalformoftheaddressonA3throughA0thatactivatesthelatchinsidethelittleboxofFigure10-6.Tocontinue,let’slookatjustonesquareinFigure10-7.Lookatthesquarein

thelower,right-handcorner:theonewitha12init.Youalreadyknowthat12disthedecimalformoftheaddressonA3throughA0thatactivatesthelatchinsidethelittleboxofFigure10-6.Thesecondrowofthesquareis1100b,thebinaryformof12d.1100bdescribestheactualvoltagelevelsonA3throughA0.Directlyaboveeachdigitin1100b,youwillfindthecorrespondingA3,A2,A1,orA0wirethatdrivesthatvoltagelevel.Youwillfindthat1100bissplitinhalf,anddisplayedas11bthenaspace,then00b.That’sbecauseA3andA2generateaQ’output,andA1andA0generateaQoutput,throughtheircorrespondingbinarydecoders.Inthisspecificcase,the11bsendsQ3’high,andthe00bsendsQ0high.ThesetwohighsmeetattheANDgatethatactivateslatchnumber12d.

CHAPTERELEVENTHECONTROLBUS

Atthispoint,wehavecoveredthedevicesandprogramofoursimple

microprocessorsystem,inFigure8-1;theexternaladdressdecoderinvolvedindeviceselection,inFigure10-4;andtheinternaladdressdecoder,hiddenineachdevice,inFigure10-6.Youhavelearnedhowtheaddressanddatabuswork.There’sanotherbus,involvedinallthis.It’scalledthecontrolbus.Onceagain,I’llhidethepreviousconnectionsfromFigures8-1and10-4thatmightconfuseyou.Seethepicturebelow:

FIGURE11-1ThenewitemsaretheALEandR/WoutputsfromtheCPU.Theymakeupthe

simplecontrolbusforoursimplesystem.Thename,“controlbus,”isself-explanatory.ThecontrolbusisthesignalsthattheCPUusestocontrolcommunicationwithsubsystems.Thenewitemsherearenotreallynewtoyou.Youalreadyknow,fromFigure7-

22,thatbi-directionallatchesrequireanR/Winputtocontrolwhetherdataisbeinginputtooroutputfromthem.TheCPUprovidesthisvoltage.Remember,ahighonR/Wmeans“read.”TheCPUreadsthelatch,sodatacomesoutofthelatch.AlowonR/Wmeans“write.”TheCPUwritestothelatch,sodatagoesintothelatch.InFigure11-1,IdrewR/Wcontrolintoallfoursubsystems.Ifanyofthemareunidirectional,theydon’tneedanR/Wline.

YoualsoknowfromFigure7-22thatlatchesrequireahighontheirEline(enableline)toturnthemon.Wehavealreadycoveredthatcontrolprocessabove.However,ifyoulookbackattheaddressdecoderwedesignedinFigure10-1,youwillseethatthereisnowaytoturnallfouroutputsoff,simultaneously.Oneofitsoutputshastobehigh:eitherE0,E1,E2,orE3.This,inturn,meansthatoneofthefoursubsystemshastobeon.Thissituationisaproblem.Nosubsystemshouldbeon,unlesstheCPUisdeliberatelyaccessingit.Datacorruptioncanresult.OurCPUprovidesacontrollinetohelpovercomethisproblem.Thelineis

named“ALE,”for“addresslatchenable.”TheCPUpullsthislinehighwhenithasputanaddressontheaddressbus.OnlywhentheALElineishighshouldoneofthesubsystemsbeon.OnlywhentheALElineishighshouldoneoftheaddressdecoderoutputsbehigh.WhentheALElineislow,allfouraddressdecoderoutputsshouldbelow.InFigure11-1,youwillseethattheALElinegoestotheaddressdecoder.The

addressdecoderofFigure10-1obviouslyneedsaminorchange.ThefourANDgatesneedtobecome3-inputANDgates.Allofthenew,thirdinputstotheAND’sshouldbeconnectedtogether,andthenconnectedtotheALEsignal.Thepicturebelowreflectsthesechangesinouraddressdecoder:

FIGURE11-2

Differentmicroprocessormanufacturershaveslightlydifferentwaysof

implementingacontrolbus.Forexample,somemicroprocessorssplitourR/Wlineintotwoseparatelines:anRlineforreading,andaWlineforwriting.SomemicroprocessorshaveoneEnable(E)lineformemory(RAM,ROM)andaseparatelineforinput/output(I/O)devices(keyboard,video).InterruptandDMAcontrol,ifimplemented,requirecontrolbuslines.Whateverthedesign,propertimingofthearrivalofinformationontheaddress

anddatabusesiscritical.IfamicroprocessoronlycontainstheCPU,butnotthesubsystems(peripherals),thatmicroprocessor’smanufacturerwilloftensellperipheralsdesignedspecificallytoworkwiththemicroprocessoranditscontrolbus.Thishelpstopreventtimingbugs,andmakeslifeeasierfordesigners.

CHAPTERTWELVETHESYSTEMCLOCK

Now,let’slookatsomeothersecretsthatmaketheCPUwork.First,let’s

considerthesequentialnatureofthesystem.Isaidthatthemicroprocessordoesthreethings,overandover:fetch,decode,andexecute.Thisimpliesanorderedsequenceofevents.Firstthishappens;thenthishappens,laterintime.Noneofthegatesorlatcheswehavestudiedsofarchangeovertime.Becauseofthisrequirement,allmicroprocessorsystemshaveaclock.Thisis

notthekindofclockthattellsthetimeofday.Rather,itisasquare-waveoscillator.Itisadevicethatcreatesadigitalvoltagethatishighforabriefperiodoftime,thenlowforabriefperiodoftime,thenhighforabriefperiodoftime,etc.Itneverstopsthisceaselessrepetition,untilthepowersupplyisturnedoff.Ifweweretoplotagraph,withvoltageontheverticalaxis,andtimeonthehorizontalaxis,itwouldlooklikethis:

FIGURE12-1

TheclockpicturedinFigure12-1ishighfor.5nanoseconds,thenlowfor.5

nanoseconds,thenrepeats.Afullcycleisahighfollowedbyalow,soafullcycletakes1nanosecond.Ananosecondisonebillionthofasecond.Inonesecond,thisclockrepeatsthecycleabilliontimes.Inelectronics,weliketosay“mega-,”insteadofmillion,and“giga-,”insteadofbillion.So,thisfiguredescribesa1gigahertz(1billioncyclespersecond)clock.Wereferto1gigahertzastheclock’sfrequency.Thinkoffrequencyashowfrequentlytheclockrepeatsitscycleinonesecond.Howdoesonebuildaclocklikethis?Ifwewanttobuilduponcircuitswehave

alreadystudied,thenwemaybuildoneliketheoneshowninthefollowingpicture:

FIGURE12-2

Thecircuitshownabovewilloscillateinasquare-wavepattern.Itsfrequency

canbecalculatedwiththefollowingequation:f=1/(2.3xR2xC)[whereR1ischosentobe10xR2]Weareveryfamiliarwithinverters(U1andU2)andwithresistors(R1andR2).

Thiscircuitintroducesanewcomponent:thecapacitor.Thecapacitorisonthefarright,labelledC.Itscircuitdiagramisthestraightlineandthecurvedline.(Sometimes,itisrepresentedastwoparallellines.)Let’sfigureoutwhythiscircuitoscillates.We’llstartbylookingattheleftside

only.Seethepicturebelow:

FIGURE12-3Thinkaboutthiscircuit,forawhile.Haveyounoticedsomethingstrange?

Assumetheinputishigh.Thatmeans,asaninverter,theoutputmustbelow.Butthelowoutputfeedsbacktotheinput.But,wejustsaidtheinputwashigh.Howcantheinputbebothlowandhigh?Doesthelowoutputturnthehighinputtolow,causingthelowoutputtoimmediatelygohigh?Butthen,doesthenewhighoutputgobackaroundtoreplacetheoldlowinput,causingtheoutputtoinvertbacklow?Doesthisgoonforever?IsthislikeKrypto,Superman’ssuper-dog,chasingitstailatlightningspeed?Yes,thisisanout-of-controloscillator,ifiteveroscillatesatall.Whatisneeded

issomethingtoslowitdown,togetitincontrol.Wheneverweneedsomethinginelectronicstoslowthingsdown,weturntocapacitors.Capacitorsintroducetheelementoftimeintoelectronics.Inductorsdo,too.Butinductorsalsohavethenastyhabitofcausingsparks.Inductorsaregoodforcausingsparksacrossyourcar’ssparkplugs,butarebadformostelectroniccircuits.So,capacitorsaremorepopular.Let’slookatFigure12-2attheexactmomentwhenpointWswitchesto5volts,

pointXswitchesto0volts,andpointYswitchesto5volts.Theseoppositerelationshipshavetohold,duetotheinvertingnatureofinverters.What’stopreventthe0voltsatXfromfeedingbackimmediatelytoW,andcausingthewholenastyrunawayproblemmentionedabove?ThevoltageatpointZpreventsthisproblem.Theinstantbeforethisnewstate,

pointYwasinitsoldstate,0volts.PointZwasat5volts;ithadtobeat5voltstogivepointWits5volts,toinitiatethecurrentstate.But,atthemomentthenewstateoccurs,whenthevoltageofpointYjumpsto

5volts,thevoltageatpointZjumpsto10volts!Voltagesacrosscapacitorstaketimetochange;wewillexplorethislater.Attheendoftheoldstate,therewasa5voltdifferencebetweenthetopandbottomofthecapacitor,C.Thetop,pointY,was0volts;thebottom,pointZ,was5volts.Acapacitor’spotentialdifferencecan’tchangeimmediately:ittakestimetochange.So,ifthetopofthecapacitorgetsinstantlyraisedupbypositive5volts,thenthebottomofthecapacitorgetsraisedupbypositive5volts.Thebottomofthecapacitorinstantlyjumpsfrom5voltsto10volts.Thoughvoltagesatbothendsofthecapacitorchangeinstantly,thepotentialdifferencedoesnotchangeinstantly.Attheinstantofstatechange,thevoltagedifference,endtoend,onthecapacitoriskeptthesameastheinstantbeforethestatechange.So,the0voltsatpointXisblockedfromgettingtopointWbythe10voltsat

pointZ.But,howdoesthecircuitoscillatetothereversestate?Thecapacitorcausesthis,too.Voltagesacrosscapacitorsdon’tchangeinstantly,buttheydochangeeventually.Overtime,thevoltageatthepointZendofthecapacitorsettlestothevoltagelevelpointXwants,0volts.Whenitarrivesat0volts,thatvoltage,appliedtopointW,initiatesanewchangeofstate,sothatW=0volts,X=5volts,andY=0volts.Let’stracethenextsequenceofevents.Let’scalltheinstantbeforethenew

stateT-,andtheinstantafterthenewstate,T+.AtT-,therewasa5voltsdifferenceinvoltagefromoneendofthecapacitortotheother.AtT-,pointYwasat5volts,andpointZwasat0volts.AtT+,pointYdropsdownby5volts,to0volts.So,thevoltageatpointZhastodropdownby5volts,too.Itdropsfrom0voltsto-5volts!Ofcourse,the-5voltsatpointZismorethanenoughtopreventthe5voltsat

pointXfromreachingpointW,tostarttherunawayoscillation.Overtime,however,the-5voltsatpointZgraduallyreachesthevoltagelevelsoughtbypointX,5volts.Afterthislengthoftime,that5voltsreachespointW,tostartthenextstate,whichiswherewebeganthisdiscussion.

CHAPTERTHIRTEENCAPACITORS

OnceagainIhavechosentoworkbackwardsinmypresentation.Ihave

chosen,above,toshowthecapacitorinaction,beforeexplainingthedetailsofhowitworks.Hopefully,ithasintriguedyou,andwhettedyourappetitetolearnmoreabouthowthisamazingdeviceworks,asdescribedbelow.If,however,youareimpatienttolearnabouthowmicroprocessorswork,you

canskipoverthenextsectiononcapacitors.Missingoutonitshouldnotpreventyoufromunderstandinghowmicroprocessorswork.Youcanalwayscomebacktothissectionlater,andtreatitasabonuslearningsession,asAppendixD.Ihaveincludedthissectiononcapacitorssoyoucanbetterunderstandhowclockcircuitswork,becauseamicroprocessorhastohaveaclock.Understandinghowcapacitorsworkwillalsohelpyoutounderstandhowcrystal-basedoscillatorswork,inthenextchapter.Capacitorsareveryimportantcomponentsinelectronicscircuits.Withoutthem,

wewouldhavenoelectroniccommunicationsystemssuchasradio,television,andWi-Fi.Theyareusedtocreateandreceivetransmittedsignals,selectivelytunethemin,filterthemfortrebleandbass.Theyprotectourhighspeeddigitalcircuits,likemicroprocessors,fromunwantednoise(radiofrequencyinterference[RFI]).Itbehoovesustogivethemsomeattention.Togetafeelingofhowcapacitorswork,let’sreturntoourwaterfaucetpressure

analogy.Lookatthepicturebelow:

FIGURE13-1Wesaidearlierthatacapacitorslowsdownthechangeinvoltageacrossit.The

simplestanalogywouldbeinthepictureabove.Ihavechangedourwatersystemsothatthevalveopensintoaverylarge,closedvat.Imaginethevatbeingasdeepintothepageasitiswideacrossthepage.Inpart(a),thevalveisclosed.Allthepressurefromthepump,transmittedthroughthewater,pressesagainsttheclosedvalve.Let’scallthepumppressure40psi.Suddenly,inpart(b),someoneopensthevalve.Pressureisnolongeronthe

valve.Iftherehadbeenaplugunderthevalve,attheendofthefaucet,thewaterwouldimmediatelyhaveencounteredtheplug,andthe40psiwouldbeappliedtotheplug.Butthereisnoplug,sothewaterstartstoflowintothevat.Asyoucanseefromparts(b),(c),and(d),ittakestimeforthewatertoflow

intothevat.Bythetimewegettopart(d),thevatisfull.Thepressureonthevatinthepart(d),whenitisfull,is40psi.Acapacitorbehavesalotlikethisvat.Insteadofwaterflowing,currentflowsin

acapacitor.Insteadofwaterpressurebuildingup,chargebuildsupacrossacapacitor,creatingelectrical“pressure.”Inbothsystems,flowcontinuesuntiltheyare“full.”Lookatthefollowingfigure,toseeapictureofacapacitor:

FIGURE13-2

Thecapacitorisontheright,inFigure13-2.Itisridiculouslysimple,andyet

ridiculouslycomplex,atthesametime.Itismathematicallycomplex.TheDCcircuitequationforitis:

VC=Vinx(1-e-t/(RxC))

whereeistheexponentialfunction.InsteadofthesimpleV=IxRequationthatdescribesaresistor,thecapacitorrequiresanequationbasedoncalculus.TheACcircuitequationsforitusethecomplexnumbersystem.Andyet,thecapacitoritselfissosimple.AsseeninFigure13-2,itconsistsof

twometalplates(conductors),separatedbyaninsulator.(Thethreepartsofacapacitorareoftenformedintoaninnerconductivecylinderandanouterconductivecylinder,withaninsulatingcylinderbetweenthem.)Rememberthataconductorislikeawire:currentflowssoeasilythatitoffersnoresistancetocurrentflow.Aninsulatoristheopposite:itpreventscurrentflow;theinsulatoroffersinfiniteresistancetocurrentflow.Acapacitorisanenigma.Ifyoustareatthecircuitabovelongenough,you

eventuallyrealizethatitisanopencircuit!Inaway,it’snota“circuit”atall,becausecurrentcannotmakeacomplete“circle.”Itcan’tgetthroughthe

capacitor,becausethecapacitorhasaninsulatorinthemiddle.Thecapacitorlooksmorelikeanopenswitch,andanopenswitchissomethingweusetostopcurrentflow.Infact,currentneverflowsthroughacapacitor;itonlyflowsuptoitsplates.Currentflowsthroughotherelectronicdevices,butnotthroughacapacitor.Andyet,capacitorscanbeusedlikeresistorsinAC(voltagesinewave)circuitstocontrolcurrentflow.Perhapstheplacetobegininunderstandingacapacitoriswithanopenswitch.

Lookatthepicturebelow:

FIGURE13-3

Hopefully,yourememberthecapacitorsymbolfromFigure12-2,whereyoufirst

sawit.It’sinthelowerrighthandofpart(b).Itlookslikearealcapacitor:twometalplatesseparatedbyaninsulator.Justliketheopenswitchcircuitinpart(a),thecapacitorcircuitinpart(b)arrives

atthesameendresult.Boththeopenswitchandthecapacitorwindupwith5voltsacrossthem:thesame5voltsasthebatteryhas.Bothresistorswindupwith0voltsacrossthem,because,intheend,nocurrentflowsthrougheitherone.Nocurrentmeansnoworkbeingdonemovingelectronsthroughtheresistor,whichmeansnovoltage,sincevoltageisworkpercoulombofcharge.So,whatisthedifferencebetweentheswitchandthecapacitor?Thedifference

issize.Thesizeoftheswitchconnectionstothecircuitissmall.Thesizeofthecapacitor’sconnectiontothecircuitisrelativelyhuge:itisthebigmetalplatesthatmakeupthebodyofthecapacitor.Now,wearegettingsomewhere.Lookatthepicturebelow:

FIGURE13-4

Figure13-4isthecapacitorversionofFigure13-1,thewatervalve.InFigure

13-4,thebatteryandtheresistoraredrawnwithcircuitdiagrams,whilethecapacitorisdrawnasaphysicalcapacitor.Part(a)showstheinstantoftimewhenthebatteryhasjustbeenconnectedtotherestofthecircuit,byattachingawireatpointA(Icould,instead,havedrawnaswitchbeingclosed).Beforethispointintime,chargewasbuiltuponbothbatteryplates,tryingtogetawayfromlikecharges.Electronsonthenegativeplateswanttogetawayfromotherelectrons.Positivelychargedatomsontheotherplateswanttogetawayfromotherpositivelychargedatoms.Attheinstantoftimeinpart(a),thechargesfirstgettheirchance.The

electronsonthenegativebatteryplate,repulsedbyeachother,moveoutintotheattachedwire.Thecapacitor,atthispointintime,isneutraloneachplate:allitsatomsareexactlyinbalancewithnoexcesspositiveornegativecharge.So,ithas0voltsacrossit.But,currentisflowinginthisopencircuit!

Currentisthemovementofelectrons.Theelectronsonthenegativeterminalofthebattery,repulsedbyeachother,leavetheterminal,andheadtowardthebottomplateofthecapacitor.Thebottomplateofthecapacitoris“attractive”tothenegativecharge,sincezerochargeisbetterthanthenegativechargeonthebatteryterminal.Theelectronsinthewireheadthatway,too,forthesamereasons,andtogetawayfromthenegativechargeheadingtheirway.Meanwhile,onthetopcapacitorplate,thenegativelychargedelectronsinthe

neutralatomsfeeltheattractiontothepositivelychargedatomsonthepositivebatteryplate.Theystartmovingtowardthepositiveplate.Theelectronsinthewireheadthatway,too,forthesamereasons,andtogetawayfromthenegativechargeheadingtheirway.FocusonFigure13-4,part(a).Remember,thisisthefirstinstant,whenthe

batteryatpointAisfirstattachedtothecircuit.Theminussignsinsidecirclesaretheelectronsinmotion;thearrowspointinthedirectionofcurrentflow.Inpart(a),noticethevoltagesaroundthecircuit:5voltsacrossthebattery,5

voltsacrosstheresistor,and0voltsacrossthecapacitor.WeneedtounderstandthisintermsoftheLawofConservationofEnergy,whichwediscussedinFigure5-5.OurelectronicsversionofthislawiscalledKirchhoff’sVoltageLaw.Itstates

thatthesumofallthestoredenergyinourcircuitatanyinstantoftime,mustequalthesumofalltheworkdoneatthatinstant.Weknowthatthe5voltsacrossthebatteryisanenergyinputthatremains

fixed.Itisduetotheseparationofchargestoredonitsplates,constantlyreplenishedbytheinternalchemicalreaction,evenwhenchargeleaves.Thecapacitorisnotaresistor:noworkiseverdoneingettingcurrentthrough

it,becausecurrentcan’tgothroughitsopencircuit.Inpart(a),noenergyisstoredinthecapacitoryet.So,sinceinpart(a)thecapacitoraccountsfornoenergyorwork,itsvoltageis0volts.Thisimpliesthatthevoltageacrosstheresistormustbe5volts.Thisis“work

done”voltage.Alltheenergyinthebatteryisappliedtotheresistorasworktomovecurrentthroughit.SinceI=V/R=5/50=.1,then.1ampsofcurrentflowsinthisopencircuit,attheinitialinstantdepictedinpart(a).Now,thingsgetevenmoreinterestingashorttimelater,asshowninpart(b).

Excesselectronshaveenteredthelowercapacitorplate.Therearemoreelectronsthanatoms,sowehaveatomsthatarenegativeions.Thelowercapacitorplatetakesonanegativecharge,likethenegativechargeonabatteryplate.Alsoinpart(b),theuppercapacitorplatetakesonapositivecharge,likethe

positivechargeonabatteryplate.Thisoccursbecausesomeelectronshaveexitedforthepositivebatteryplate,leavingbehindatomsontheuppercapacitorplatethataremissinganelectron(positiveions).

HaveyounoticedthatthewordsIhaveusedtodescribethecapacitorsoundlikethewordsIhaveusedtodescribethebattery?It’strue.Thecapacitorisbecominglikethebattery.Recallourdefinitionofabattery’svoltageas,“aseparationofcharge.”Aseparationofchargeis,indeed,buildinguponthecapacitor’splates.Thedifferenceis,thesourceofthechargeseparationisexternalforthecapacitor:itcomesfromthebattery’scurrent.Thesourceofthebattery’schargeseparationisinternal:itcomesfromitschemicalreaction.Figure5-5hadonebattery(B)andtworesistors(R1andR2),connectedin

series.WecandescribethevoltageacrossthebatteryasVB,thevoltageacrossR1asVR1,andthevoltageacrossR2asVR2.UsingKirchhoff’sVoltageLaw(KVL),wedescribedthatcircuitmathematicallyas:VB=VR1+VR2.

Weputthevoltagefromtheenergyinputdevice,thebattery,totheleftoftheequalsign.Weputthevoltagefromtheworkdonegettingthroughthetworesistorstotherightoftheequalsign.Howdowecreateasimilarequationtohandlethecapacitor?Ihavealready

saidcurrentneverisforcedthroughacapacitor,sonoworkisdonetoit.Itisabsorbingchargeonitsplates.Itisbecominglikeabattery.So,itsvoltagebelongsontheleftsideoftheequation,withthebattery,anenergy(charge)storagedevice.Beforeweputitthere,though,lookbackatFigure13-4.Ifyoutracethroughthe

circuit,youwillfindthatthechargeonthecapacitorpointsintheoppositedirectionasthechargeonthebattery.Thepositiveendofthebatteryisclockwiseofthenegativeend.Thepositiveendofthecapacitoriscounter-clockwiseofthenegativeend.So,thecapacitor’svoltagebelongsontheleftsideoftheKVLequation,butwithanegativesign,asinVB-VC=VR,whereVCisthevoltageacrossthecapacitor,VRisthevoltageacrosstheonlyresistor,andVBisthebatteryvoltage.Usually,though,wemovetheVCtotherightsideoftheequationusingalgebra,toarriveattheequationforthecircuitinFigure13-4:VB=VR+VC.

Comparingthisequationtopart(b)ofFigure13-4,weseethatthevoltagedistributiondoes,indeed,obeytheequation:2voltsacrossthecapacitor(VC)plus3voltsacrosstheresistor(VR)doesinfactequalthevoltageacrossthebattery(VB).Thecapacitorisactinglikeananti-battery.

Withthisinmind,lookatthenumberofmovingelectronsIhavedrawninpart(b)comparedtopart(a).Ihavedrawnlessmovingelectronsinpart(b).Inthelatertimedepictedbypart(b),lesscurrentisflowingthanintheinitialtimedepictedbypart(a).Whyisthistrue?Becausetheamountofcurrentflowinginthiscircuitis

controlledbytheresistor.Ohm’sLawstatesthatI=VR/R.But,VRhaschanged

sincepart(a).VRwas5voltsatthetimeofpart(a),butnowVRisonly3voltsatthelatertimeofpart(b).So,thecurrentnowisonly3/50=.06amps.Before,inpart(a),itwas.1amps.Therisingvoltageacrossthecapacitorsubtractsfromthefixedvoltageacrossthebattery,leavinglessnetenergy(3volts)todrivecurrentthroughtheresistor.Thecurrentflowrateisslowlybeingchokedoff.Wecallthefillingupwithcharge,andtheriseofvoltageacrossthecapacitor,

“chargingthecapacitor.”Inthiscircuit,thecapacitor“charges”morequickly,atfirst,thenmoreslowly,astimegoesby.It’sasifthecapacitorisabucket,andwater(current)isflowingintoit.Carryingthisanalogyfarther,it’slikesomeoneisholdingthehose,andgraduallyputtingmoreandmoreofakinkinthehose,untiliteventuallychokesoffallwaterflow,completely.Inpart(c)ofFigure13-4,theprocesscontinues.Thecapacitorhaschargedup

to4volts,thebatteryisfixedat5volts,soonly5-4=1voltnetenergyislefttoappearastheworkvoltageacrosstheresistor.ThisproducesevenlesscurrentflowthoughR.Consequently,Ihavedrawnevenlesselectronsmovinginpart(c).Thisprocessendswhenthecapacitorisfullycharged.Whendoesthat

happen?Whatdoes“fullycharged”evenmean?Well,theprocessendsinpart(d)ofFigure13-4.Thecapacitorisfullychargedwhennomorecurrentisgoinginoroutofitsplates.NoticethatIhavedrawnnomovingelectronsinpart(d).Theendofcurrentflowhappenswhenthevoltageacrossthecapacitorexactlyequalsthebatteryvoltage.Sincethecapacitorvoltageasanenergysourcesubtractsfromthebatteryvoltageasanenergysource,5-5=0,andzeroenergyisavailabletodotheworkofpushingcurrentthroughtheresistor.Hence,thereis0voltsacrosstheresistor.SinceI=VR/R=0/50=0,thereis0ampsofcurrentflowing.Thecapacitorisfullychargedorasfullofstoredcurrentasitcanget,inthiscircuit.Hopefully,younoticedthatIdrewmoreandmorechargesymbolsoneither

sideofthecapacitoraswemovedfrompart(a)throughpart(d).Ofcourse,thisrepresentsthecapacitorfillingupwithcharges,positiveandnegative,asitbecomesmoreandmorelikethebattery.Withtheseplusandminussymbolsonthecapacitor,andthecapacitorfully

chargedto5volts,perhapsnowisagoodtimetoconsiderwhatitmeansforthecapacitorbeat5volts?Howisitdifferentfromthecapacitorbeingat2volts?Thisbringsustotheessenceoftheconceptofvoltage.Voltageisdirectlyrelatedtochargedensity.So,onboththebatteryandthe

capacitor,ahighervoltagecorrelatestomorechargebeingcrammedclosertogether.Theclosertogether(density)chargecanbecrammed,thestrongertheforcetheyexertontryingtogetapart,onproducingcurrentflow.So,whenthecapacitorreaches5volts,ithasreachedthesamechargedensityasthebattery.Canwemakethatthechargedensitythatwedescribeas5voltsharderto

reach?Stateddifferently,canwedoanythingtoincreasethetimeittakestogetthechargedpackedtogetherthisclosely?

Thinkbacktotheanalogyofwaterflowingthroughahose,intoabucket.Whataretwowaystoincreasethelengthoftimeittakestofillupthebucket?Onewayistomakethewaterflowmoreslowly.WecandothatbyincreasingthevalueofR,theresistorinthecircuit.Currentwillflowmoreslowly.Itwilltakealongertimeuntilthecapacitorreachesfullychargedat5volts.Thesecondwayistogetabiggerbucket.Allotherthingsbeingequal,abigger

buckettakeslongertofillthanasmallerbucket.Thecapacitorislikethebucket.Acapacitorcanbemadebiggerbyincreasingtheareaofthecapacitor’splates.So,ifwegetabiggercapacitor,therewillbemoreroomforthechargestokeeptheirdistancefromeachother.Itwilltakemoretime,andmorecurrentwillhavetoflow,untilthechargesarepackedtogethercloselyenoughtobecalled5volts.Theseconceptsareembeddedinthestrangeequationwereferredtoabove:

VC=Vinx(1-e-t/(RxC)).Theesymbolisafunctionthatdescribeshowthecapacitorchargesupquicklyatfirst,thenmoreslowlyastimegoesby.TheRxCdescribeshowbothRandC,theresistor(R)inohmsorthecapacitance(C)infarads,controlthechargingrate.Howlongdoesittakeforthecapacitortobefullycharged?Fromtheabove

equation,weknowthatthecapacitorreaches63%offullycharged,or3.15volts,inRtimesCseconds.Inourcircuit,RtimesCis50x.000010,or.0005seconds.Butremember,capacitorschargequicklyatfirst,andthenthechargerategraduallyslowsdown.Ittakesamuchlongertimetofinishthelast37%or1.85voltsofcharging.Infact,ittakes5timesRtimesCforthecapacitortogofromnochargetofullycharged.Thatcalculatesas5x.0005,or.0025seconds.Ifyouwantthe10microfaradcapacitortotakeawholesecondtoreachfullycharged,justreplacethe50ohmresistorwitha20,000ohmone.Youcanactuallydisconnectthechargedcapacitorfromthecircuitandwalk

aroundwithit.Itwillholdthechargeforagoodwhile,untiltheelectronsslowlysneakthroughtheinsulator.Insulatorsarenotperfect,notinfiniteohmsofresistance.Theaboveexperimentofcarryingaroundachargedcapacitorisnotagood

idea.Capacitorscanholdenoughenergytokillyou.That’swhycomputerpowersuppliessometimeshavelabelsonthemwarningpeoplenottoopenthem,evenwhendisconnectedfrom120voltlinevoltage.Peopledon’tknowthatcapacitorscanstorevoltageevenwhentheexternalinputvoltageisoff.Youcandischargeacapacitor.Ifyouputaresistoracrossachargedcapacitor,

itwillbehavelikeabatterywitharesistoracrossit.Theelectronsbuiltuponthenegativeplatewillscurrythroughtheresistor,overtothepositivecapacitorplate.Thishappensbecausetheelectronsonthenegativeplatepushawayfromeachother,andarepulledtowardtheoppositelychargedpositiveionsonthepositiveplate.There’sonebigdifferencebetweenthecapacitorandthebattery,though.The

batteryhasitsinternalchemicalreactiontoreplenishtheseparationofchargeonitsplates.Thecapacitordoesnot.Wheneachatomonthecapacitor’splatesgoesfrombeinganiontobeinganeutralatom,itisdone.Nointernalchemicalreactionrestoresthecapacitor’sneutralatomstoanionicstate.Thewholecapacitorreturnstoneutral,to0volts.Howlongdoesthiscomplete

dischargetake?Usethesamecalculation:5timesRtimesC.Ifyouwanttodischargethecapacitorquickly,justputawireacrossit.(Remembertheearlierwarningabouttouchingchargedcapacitors,though.)Sinceawire’sresistanceis0ohms—and5timesRtimesCis0xC,or0seconds—thecapacitorwilldischargeinstantly,probablywithaspark.Thecapacitor’sdischargeratethrougharesistorisanexponentialfunction,just

likethechargerate.Thismeansthatthecapacitordischargesmorequicklyatfirst,thenmoreslowly,untilitiscompletelyemptyofcharge.Theequationtodescribeallthisis:

VC=VTxe-t/(RxC)

AsImentionedearlier,capacitorsareveryimportantincommunications

electronics,becausesound,video,andradiofrequencyallhavetodowithsinewaves.OurACvoltagethatweaccesswheneverweplugintoanelectricalwalloutletisalsoasinewave.Capacitorsworkstrangelywellwithsinewaves.Asinewaveofvoltagecauses

currenttoflowfromoneofthecapacitor’splatestotheother,inonedirection.Butthen,thesinewaveofvoltageswitchespolarity,sucksthechargeoutofthecapacitor,andcausescurrenttoflowfromplatetoplateintheoppositedirection.Thisforwardandreversedirectionofcurrentflowinacapacitorislikethe

forwardandreversedirectionofcurrentflowofaresistorexcitedbyACvoltage(sinewaves).Fromthepointofviewofthewiresandtheothercomponentsinthecircuit,theyhavenoideathatthecurrentflowingintoandoutofthecapacitorbranchisnotgoingthroughthebranch.Thecapacitorisanopencircuit,sothecurrentisjustgoingbackandforth,intotheplates,thenbackout.Theonlydifferenceisaphaseshift.Theadvantageofthecapacitorovertheresistoris:thecapacitorconsumesnopower.Itdoesn’tgethot.Oneotherstrangethingaboutacapacitoristhatwecanincreaseits

capacitancevalue—thusincreasingitschargingtime—bychangingitsinsulatormaterial.Theoppositechargeonthetwoplatescreateanelectricalfieldofattractionfromoneplatetotheother.It’sliketwomagnetswiththenorthpoleofonepullingtowardthesouthpoleoftheother.Inthecapacitor,theinsulator(calledthedielectric)isinbetween;asolidinsulatorstopsthetwoplatesfrompullingtogetheruntiltheytouch.Theelectricalforcefieldproducesastrangeeffectontheinsulator.Itcauses

theindividualmoleculesintheinsulatortoturn,andevenstretch.Theinsulator’smoleculesbecomemorepositiveonthesideclosertothenegativeplate,andmorenegativeonthesideclosertothepositiveplate.Themolecules,inturn,createacounter-fieldproducedinsidetheinsulator.Thepositivechargeintheinsulator’sturnedandstretchedmoleculescreatesapositiveelectricalfieldthatreachesintothenegativeplateandcancelsoutsomeofitsnegativestrength.Thenegativechargeintheinsulatorcreatesanegativeelectricalfieldthatreachesintothepositiveplateandcancelsoutsomeofitspositivestrength.Witheachplate’srepulsiveenergyweakened,morechargeisneededforittoreach5volts(inourexample).Agreaterchargedensityisneededtoarriveatanetmutualchargerepulsionwhichwecall5volts.Someinsulatormaterialsaresimplybetterthanothersatcreatingtheabove

effect.Themoleculesinsomeinsulatorsstretch,turn,andalignbetterthanmoleculesinotherinsulators.Witha“better”insulator,currenthastoflowlonger,tofillthecapacitor.Lesssubtly,thecapacitor’splatesthemselvescausethissameeffectoneach

other.Thepositiveplate’spositiveelectricfieldsubtractsfromthenegativeplate’snegativeelectricfield,andviceversa,allowingmorecurrenttoflowbefore5voltsisreached.Furthermore,positiveandnegativeelectricforcesofattractionandrepulsionincreasewithlessdistancebetweencharges(aninversesquarelaw).So,bringingthepositiveandnegativeplatescloserintensifiesthiseffect,increasingcapacitanceandchargingtime.

CHAPTERFOURTEENTHECRYSTALCLOCK

Whilewearelookingatstrangeeffects,let’slookatsomethingevenmore

strange:thepiezo-electriccrystal.Thepiezo-electriccrystalisthestrangestcomponentyouneverheardof.Firstofall,thereasonwewilldiscussthepiezo-electriccrystalisthatitisused

tomakeabettersystemclock.TheclockinFigure12-2issufficientinsomemicroprocessordesigns.Itisveryinexpensive.Butithassomeshortcomingsthatmakeitundesirableinsomeapplications.First,heataffectsthecircuitinFigure12-2.So,astemperatureschangearound

thecomponents,theirvalueschange,whichchangestheoscillatoryfrequency.Also,designingthecircuittoaspecificfrequencyisdifficult,becausetheaccuracyofcapacitorvaluesisnotverygood.A10microfaradcapacitormightbeplusorminus20%ofitsratedcapacitancevalue.So,weoftenuseclocksdesignedaroundpiezo-electriccrystals:crystalclocks,

astheyarecalled.Thoughnotperfect,theytendtobelesstemperature-sensitiveandmoreaccuratethanclocksliketheonesinthecircuitofFigure12-2.Here’swheretheweirdnessstarts.Thepiezo-electriceffectisthecreationof

voltagebypressingonacrystal.Quartzcrystalsworkwellforthis.Weknowthatvoltageisaseparationofcharge.Well,ifyoucutacrystaljustright,andapplyapressuretoit,chargegetsseparated,andasmallvoltageisproducedacrossthecrystal.But,theweirdnessdoesnotendhere.Theoppositeeffectalsoexists.Thatis,if

youapplyavoltageacrossacrystal,itwillcompress.So,whatwehaveistwooppositeweirdnesses,whichwecombinetogetherto

createanoscillator:1.)Voltagemakescompression2.)Compressionmakesvoltage

Here’showitworks.Avoltagesourceisappliedtooppositesidesofthecrystal.Let’susetheexampleofabatteryconnected,throughwirestothecrystal.Nowthatyouunderstandaboutcapacitors,thinkofthecrystalasifitwerea

capacitor.Apositivechargebuildsuponthesideofthecrystalconnectedtothepositivebatteryplate.Anegativechargebuildsuponthesideofthecrystalconnectedtothenegativebatteryplate.Aswiththecapacitor,anelectricfieldofattractionbuildsupfromthepositivetothenegativesideifthecrystal.Theytrytomovetowardeachother.Ofcourse,thecenterpartofthecrystalisintheway.So,thecenterpartofthecrystalgetssqueezedbytheouterpartsofthecrystal.Thisexplainshowstep1works:howvoltagemakescompression.Wedon’t

squeezethecrystalwithavice.Wesqueezeitwithanelectricfield,whichtriestopullthesidesofthecrystaltowardseachother.

Step2saysthatthiscompressioncausesaseparationofchargeinthecrystal.Negativechargeinthecrystalmovestowardthepositivesideofthecrystal,andpositivechargeinthecrystalmovestowardthenegativesideofthecrystal.Thischargefromwithinthecrystalcancelsoutthechargefromoutsidethecrystalsuppliedbythebattery.Tosummarize,thebatteryputschargeonthesidesofthecrystal;thecrystalcompresses;thecompressioncreateschargethatcancelsthechargeonthesidesofthecrystal.Ofcourse,withthechargegoneonthesidesofthecrystal,theelectricfieldof

attractionisalsogonebetweenthetwosidesofthecrystal.Theystopsqueezingtheinsidesofthecrystal.Thecrystalrelaxestoitsnatural,unsqueezedstate.Theseparationofchargethatresultedfromthesqueezingisgone,too.Infact,everythinghasgoneaway.Everythinghasreturnedtowherewestarted.

But,thebatteryisstillthere,andthebatteryisstillconnectedtothecrystal.So,theentireprocessstartsallover.Steps1and2startallover.Thebatteryonceagaincausesaseparationofchargeonthesidesofthecrystal,etc.Thepicturebelowsummarizestheexplanation:

FIGURE14-1

Part(a)isthevoltageapplied.Part(b)istheelectricfieldfromthecharge

separationcausingthecompressionofthecrystal.Part(c)isthecompressioncreatingacounter-voltage.Part(d)isthedecompressionanddischargeofthecrystal,readytorestartthecycle.Thepictureletsyouseetheoscillation.InFigure14-1part(a),currentflows

counter-clockwise;inpart(c),itflowsclockwise.Inpart(b),thecrystalhasmaximumpositivechargeontopontopandnegativechargeonthebottom;inpart(c),thecrystal’scounter-voltageisneutralizingthechargeontheplates.Aclockbuiltwithaquartzcrystalneedssomeextracircuitrytosupportthis

magic.IfyouimaginearesistorinthepathofcurrentflowinFigure14-1,youmayrealizethatavoltagemoreakintoanACsinewaveappearsacrossit.So,additionalcircuitryturnstheoscillationintoadigital,orsquarewave.Thecircuitryalsohelpssustaintheoscillation.

CHAPTERFIFTEENTHEFLIP-FLOP

Let’sreturntoourmicroprocessorsystemofFigure8-1.Remember,wejust

addressedthequestionofhowamicroprocessordoesthingssequentially.Weshowedthatamicroprocessorusesadigitalclock,tobreakstepsdownintoticksofasquarewavecycle.But,howdoweconvertthisstringofvoltagechangesononewire,theclockoutput,intoseparatevoltagesthatenable—inorder—fetch,thendecode,thenexecute?Toanswerthatquestion,firstlookbackatfigures10-1through10-3.They

depictour2-to-4binarydecoder.Whatifwehadadevicethatcouldcountourclockpulses,andoutputthatcountvalueinbinary?Wecouldfeedthatbinaryoutputasaninputtoour2-to-4binarydecoder.Wewouldgetsequentialpulsesoutofour2-to-fourbinarydecoder:Q0,thenQ1,thenQ2,thenQ3,thenbacktoQ0,etc.We’llexplorethatdesignlater,butthenameforthedeviceweneedisthe

binarycounter.Wehaveanotherneedforabinarycounter.InourreviewofourmicroprocessorsysteminFigure8-1,wereferredtotheprogramcounter.Thiswasabinarycounter,too.Itlookslikeanunderstandingofabinarycounterisanimportantpartofunderstandinghowamicroprocessorworks.Tocreateabinarycounter,wemustfirstintroduceare-designofourDlatch.

OurcounterwillrequireconnectingtheNOTQoutputbackintotheDinputwhenEisenabled.Thattrickjustwon’tworkwithaDlatch.IfyoureviewtheDlatchcircuitwaybackinFigure7-10,youwillfindthe“dogchasingitstail”effect,again.AlowNOTQfedbacktoDimmediatelymakesNOTQhigh;which,feedingbacktoDimmediatelymakesNOTQlow,etcetera,adinfinitum.WemustturnourDlatchintoaDflip-flop.What’sthedifference?Inalatch,as

longastheE(enable)inputishigh,theQoutputreplicatestheDinput.IftheDinputchangesahundredtimes,theQoutputchangesahundredtimes.WhatevervaluewasontheDinputandQoutputwhentheEwindowcloses(goeslow)isthevaluestoredattheQoutput.Fortheflip-flop,wegetridoftheE(enable)inputandreplaceitwiththeclock,

orCLK,input.Soundslikeitwasdesignedspecificallyasthedestinationforthedigitalclockwejuststudied,doesn’tit?Next,wedecideifitwillbepositiveedgetriggeredornegativeedgetriggered.Wechoosepositiveedgetriggered.Ournew,positiveedgetriggeredflip-floponlyallowsthevalueattheDinputto

transferandbestoredattheQoutputatoneinstantoftime.Thatinstantis:everytimethevoltageatCLKrisesfrom0voltsto5volts.NotransferorstoragehappenswhileCLKsitshigh;alatchdoesthat,andthisisnotalatch.NotransferorstoragehappenswhileCLKsitslow.NotransferorstoragehappenswhenCLKfallsfrom5voltsto0volts.

It’scalled,“positiveedgetriggered”becauseapositive-goingCLKvoltageinitiatesthechange.Neitheranegativenorapositivevoltageinitiatesthechange.AvoltageleavingnegativeandgoingtowardpositiveinitiatesatransferandstorageoftheDinputvalueintotheQoutput.Thepicturebelowwillhelpclarifyallthis,ifitisstillunclear:

FIGURE15-1

Figure15-1showsthelogicsymbolfortheDflip-flop.NoticetheCLKlabelthat

replacestheEsymbolweusedforthelatch.Also,noticethelittlewedgenexttotheCLKlabel.Thiswedgeletsusknowthatthisdeviceisedge-triggered.Iftherewasalittlebubbletotheleftofthewedge,thatwouldtellusthisdeviceisnegativeedgetriggered.Thisoneispositiveedgetriggered.LookcarefullyatwhatiscomingintotheCLKinput.Readtheinputasvoltage,

vertically;with0voltsatthebottom,and5voltsatthetop.And,readitastime,horizontally;withpasttofuturefromlefttoright,respectively.Thus,earlyintime,

thevoltageis0volts.Atransitionfromlowtohighhappens,alongtheup-arrow.Laterintime,afterthetransition,thevoltageis5volts.NoticehowIhavetheup-arrowcircled.Thisisthekeyinstant,theexactand

onlytimetheDflip-flopisopenedupforstorage.Followthecurvingarrows.Theyindicatethat,atthecriticaltimeofthepositive-goingvoltageedgeonCLK,the1onDtransferstotheQoutput.Asalways,theNOTQoutputbecomestheoppositelogiclevelofQ,soitbecomes0.ThevaluescrossedoutaretheoldvaluesofQandNOTQ,frombeforetherisingedgetriggeredtheirchanges.ThepicturebelowshowshowtoputNANDgatestogethertocreateaDflip-

flop:

FIGURE15-2

Iwon’tgothrough,step-by-step,howtheDflip-floptriggersonlyontherising

edgeoftheCLKinput.Itwouldtaketoolong,andyoucandoitforyourself,ifyoulike.Noticeafewthings,though.Thecross-coupledNANDpairs(1and2,3and

4,and5and6)areRSlatches.Thistime,theyaremadefromNANDgatesinsteadofNORgates.Theyfunctionthesameway,excepttheNANDpairshavetheSinputsacrossfromtheQoutput,whereastheNORpairshavetheRinputsacrossfromtheQoutput.Withthisinmind,Figure15-2almostsimplifiestothreeinterconnectedRS

latches.Isay“almost,”becauseNANDgate3isalittledifferent.Itisa3-inputNANDgateinsteadofa2-inputNAND.

CHAPTERSIXTEENCOUNTERS

So,IsaidweneededthisDflip-flopsothatwecanconnecttheNOTQoutput

backtotheDinput.Itwillbecomeanessentialpartofourbinarycounter,anditovercomesthe,“dog-chasingits-tail,”problem.Let’smakethisconnection,andseewhatweget:

FIGURE16-1

Let’sgetcomfortablewiththisfigure.AtthetopisourDflipflop,withtheNOT

QoutputconnectedbacktotheDinput.Atthebottomarethreevoltagewaveforms.Thesearereferredtoas,“timingdiagrams.”Iwillusethisterm,becauseitemphasizesthefactthatthehorizontalaxisrepresentstime.Earliertimestartsontheleft.Later—orfuture—timemovestotheright.Also,thethreewaveformsalignvertically.Youcanputyourfingeronanyonewaveform,thenmoveitupordowntoseetheexactvoltagestateoftheothertwowaveformsatthesameinstantoftime.Youcanalsocallthisavoltagewaveform,becausetheverticalaxisrepresents

voltage.Sincethisisdigitalvoltage,wereallyonlyhavetwopossiblevoltages.Thetopofeachsquarewaveis5volts(logical1,orhigh),andthebottomofeachsquarewaveis0volts(logical0,orlow).Thethickarrowsshowfromwhereeachwaveformoriginates.Remember,the

waveformsareverticallyalignedsothatwecanobservewheneventshappeninrelationtoeachother,atthesameinstantoftime.WewanttoseetheeffectoftyingtheNOTQoutputbacktotheDinput.Becauseofthisconnection,thebottomwaveformislabelledbothasDandasNOTQ.Weknowthataflip-floptransfersthevoltageontheDinputtotheQoutput,but

onlyduringtheinstantoftransition,therisingedge,ofvoltageontheCLKinputfromlowtohigh.ButwhatisontheDinputistheNOTQoutput.And,theNOTQoutputisalwaysoppositeoftheQoutput.So,everyrisingedgeontheCLKinputforcestheQoutputtoitsoppositelogicstate.Wecallthisstate-flippingoneveryclockedge,“toggling.”Thetimingdiagramshowsthis.LookatthelinelabelledCLK.Thenlookatthe

rising(lowtohigh)edgesofCLK.Ihaveplacedthin,verticalalignmentmarkersundertheseedges.NoticehowQonlychangesstateduringtheseinstantsoftime.WatchhowthestateofNOTQbeforethisinstantbecomesthestateofQafterthisinstant.SeehowwhenQgoestoonelogicstate,NOTQalwaysgoestotheoppositestate.ThisensuresthatQwillalwayschangetoitsoppositelogicstate,ateachrisingCLKedge.What’sthepointofallthis?Followtheskinnyarrows,leadingfromeachrising

edgeofCLK.Readinglefttoright,theskinnyarrowsaretellingusthatthefirstedgemakestheQoutput0,thesecondedgemakestheQoutput1,thethirdedgemakestheQoutput0,etc.Theflipflopiscounting!It’sonlya1-bitcounter,liketheleastsignificantbitina

largercounter.Butremember,availablebinarynumbersendat1.Thenextnumber,after1,is:resetto0,thencarrya1tothenextmoresignificantbit.Wehavejustaccomplishedthe“countupto1”part,andthe“resetto0”part.Allwe

needtodonowisaccomplishthe“carrytothenextmoresignificantbit”task.Solet’sdothat.Seethenextpicture:

FIGURE16-2

NowwehavetwoQoutputs,soIhavelabelledthemQ1andQ0.A2-bitbinary

countercountslikethis:00,01,10,11.Thenitgoesbackto00,andcountsthesamesequence.Thesebinarynumberscorrespondtodecimalnumbers0,1,2,3.Q1isourmostsignificantbit,andQ0isourleastsignificantbit.Itiscounting!Proveittoyourself.LookattheQ1andQ0linesofthetiming

diagram.Readfromlefttoright,andreadQ1beforeQ0.Youwillseethatthecountsare:00,01,10,11,00,01,10,11.Toaccomplishthisdesign,weaddedasecondDflip-flop,ontheright.Its

outputisQ1,ourmostsignificantbit.WeconnecteditsQ1outputalongwiththeunchangedoutputofouroriginalflip-flop(re-labelledQ0)asinputstoan

exclusive-ORgate.Wethenconnectedtheoutputoftheexclusive-ORgatetotheinputofthenewflip-flop.Weknowthecircuitcountsproperly,buthowdoesitwork?Perhapsthepicture

belowwillhelp:

FIGURE16-3

Part(b)ofFigure16-3isthetruthtableforanexclusive-ORgate.Wewillneed

torefertoit,sincetheQ0andQ1outputsbothenterit.Part(a)showstheconsecutivecountsofthecounter,outofQ1andQ0.Inpart(a),weknowthattheQ0columnalternatesina0-1-0-1…etc.pattern.

Wecalledittoggling,andlearnedaboutitinFigure16-1.Whatwemustdoisexplainthenewpart,theQ1column.Lookatthefirstrowofpart(a).Itis0-0,theoutputofQ1-Q0.0-0isfedintotheexclusive-ORgate(XOR).Thefirstrowofpart(b)tellsusthattheoutputoftheXOR—thustheDinputtotheQ1flip-flop—is0.Thismeansthat,uponthenextrisingclockedge,a0willcomeoutofQ1.That’swhyinpart(a)Ihaveabigcirclearound0-0inrow1,withanarrow

pointingtoasquareinrow2witha0insideit.The0-0(pertheXORtruthtable)makesQ1equal0inthenextrow,onthenextclockpulse.Inrow2ofpart(a),the0-1(pertheXORtruthtable)makesQ1equal1inrow3,onthenextclockpulse.Inrow3ofpart(a),the1-0(pertheXORtruthtable)makesQ1equal1inrow4,onthenextclockpulse.Inrow4ofpart(a),the1-1(pertheXORtruthtable)makesQ1equal0inrow1,onthenextclockpulse.Nowthatyougettheideaofwhatcountersareandhowtheywork,I’llskipthe

detailedexplanationsofthenextones.Amicroprocessor’sprogramcountercanbeprettybig.Forabigaddressablememoryspace,a64-bitcounterisnotuncommon.I’llshowyouacircuitdiagramfora4-bitcounter,below:

FIGURE16-4

Theabovecounterrepeatedlycountsfrom0000to1111,soithas16distinct

counts:24.Thetoptwoflipflops,forQ0andQ1,arethesameasinFigure16-2.Toexpandthiscountertomorethan4bits,justfollowthesamepattern.AddmoreAND’s,XOR’s,andDflip-flopswiththesamewiringpatternasinFigure16-4.Forourfetch-decode-executesequence,weneedacounterthatcountslike

this:00-01-10.Forthat,wecanusethefollowingcircuit:

FIGURE16-5

Wehavebeenreferringtoourcountersinfigures16-1,16-2,and16-4as1-bit,

2-bit,and4-bitcounters,respectively.IfwecallthecounterinFigure16-5a2-bitcounter,peoplewilltendtothinkithas22=4distinctcounts.Butitdoesn’t.Ithas3distinctcounts:00-01-10.Weshouldinsteadcallitamodulo-3counter.Acounter’smodulusnumberisthenumberofdistinctcountsithas.Wecould,forexample,havecalledour4-bitcounterinFigure16-4amodulo-16counter.Becarefulifyoudecidetofigureouthowtheabovemod-3counterworks.Its

weightedbit-valuesarebackwardsfromourpreviouscounters.Thecircuitflowisfromlefttoright,buttheleastsignificantbit,Q0,isontheright,andthemostsignificantbit,Q1,isontheleft.

CHAPTERSEVENTEENSEQUENCERS

Nowwecanpickupthethreadweleftwhenwedecidedweneededadigital

counter.Weaskedhowwecouldconvertastringofvoltagechangesononewire,aclock,intoseparatevoltagesthatenable—inorder—fetch,thendecode,thenexecute.Oursolutionispicturedbelow:

FIGURE17-1

Let’sskipdirectlytothebottomthreelinesofthetimingdiagraminFigure17-1:

theoneslabelled0,1,and2.Theyaretheoutputsofthelinesoutofthe2-to-4binarydecoderlabelled0,1,and2.Thesethreelinesarethefruitsofourlabor:ourgoal.Makesureyouunderstandwhatthesethreelinesaccomplish.Rememberthat

thehorizontalaxisistime,andtheverticalaxisisvoltage.Aswemoveforwardintime(left-to-right),weencounterthe0linegoingfrom0voltsto5volts.Thislineissenttothefetchcircuitrytoenableitsaction.Aswemovefurtheraheadintime,the0linegoesto0volts,disablingthefetchcircuitry.

Next,the1linegoeshigh.Thislineissenttothedecodecircuitrytoenableitsaction.Aswemovefurtheraheadintime,the1linegoeslow,disablingthedecodecircuitry.Finally,the2linegoeshigh.Thislineissenttotheexecutecircuitrytoenable

itsaction.Aswemovefurtheraheadintime,the2linegoeslow,disablingtheexecutecircuitry.Goingfartheraheadintime,weobservethispatternrepeatingitself,overandover.The2-to-4binarydecoderisalreadyfamiliartoyou.Wesawitin10-3,andwe

useditasouraddressdecoder.Inthiscase,wearenotusingtheoutputmarkedas3,soitsoutputislabelledN/A,for“notapplicable.”(Forefficiency,wecouldhavedesigneda2-to-3binarydecoder.)Theinputtothe2-to-4binarydecodercomesfromtheoutputofthemod-3

counter.Youknowthiscounter’scircuitfromFigure16-5.WehaveencapsulatedFigure16-5intoaboxthatonlyrevealstheinputsandoutputs,andlabelledit,“Mod-3Counter,”here.Thelogicsymbolsforthemod-3counterandthe2-to-4binarydecodermeannothingunlessyouunderstandhowthework,internally.But,youdounderstandthem.Themod-3countergetsitsinputfromoursystemclock,whichwecoveredin

Figure14-1.Remember,itisasquaredigitalwave,asseeninthetoplineofthetimingdiagraminFigure17-1,labelledCLK.Feedingtheclockintothemod-3counterproducesitsQ0andQ1outputs.We

knowthatthemod-3countercountsinthepattern,00-01-10-00-01-10,repeatedly.YoucanseethecountingpatterninthesecondandthirdlinesofthetimingdiagraminFigure17-1,labelledQ0andQ1.IhavelabelledtheQ0andQ1timingdiagramlineswith0’sand1’s,sothatyoucanmoreeasilyobservethemcounting.NoticehowthingsinlinesQ0,Q1,0,1,and2ofthetimingdiagramonlychangeduringtherisingedgeoftheCLKline.Wealreadyknowalloftheabovethings,separately.Let’strytounderstandhow

allofthisworkstogether.Wehavethreesubsystems,whenyoucounttheclock.Theclockcreatestimeincrementsforus,inourdigitalworld.Themod-3countercountstherisingedgesoftheclock,turningitintoa2-bitpatternof00,then01,then10(likeadigital0,1,2),thenbackto00,torepeatthecycle.Then,whenthe00isfedintothe2-to-4binarycounter,its0outputgoeshigh.

Whenthe01isfedintothe2-to-4binarycounter,its1outputgoeshigh.Whenthe10isfedintothe2-to-4binarycounter,its2outputgoeshigh.Youcanseethisclearly,intheabovetimingdiagram.The2-to-4binarycountertakesthe2-bitcountsthatchangewithtime,and

convertsthemintosinglepulsesthatchangewithtime.Onlyonepulseishigh,ortrue,atatime.Thepulsesaresequential,intime.Eachoneturnsononeactionatatime:fetch,thendecode,thenexecute.Ifwelike,wecanencapsulatethesequencerinFigure17-1.Wewouldhidethe

mod-3counterand2-to-4binarydecoderinsideabox,labelit,“3-bitsequencer,”andshowonlytheinputsandoutputs.Apictureofthisisshownbelow:

FIGURE17-2

Let’sagaintakeamomenttoappreciatehowdigitalelectronicsbuilds

complexityoutofsimplicity.Atthehighestlevel,westartwithonebox—onelogicdiagram—withmanyinputsandoutputs.Thisboxistheextremelycomplexmicroprocessor.Openthatbox,andyouseeanumberofsubsystem,oneofwhichisthis3-bitsequencer,whichgeneratesthefetch-decode-executesequence.Openthe3-bitsequencerbox,andyoufindamod-3counterboxanda2-to-4binaryencoderbox,connectedasinFigure17-1.

Let’sfollowthemod-3counterpathfirst.Openthemod-3counterbox,andyoufindtwoDflip-flopsandanANDgate,connectedasinFigure16-5.OpenaDflip-flopbox,andyoufindsixNANDgates,connectedasinFigure15-2.OpenupanANDbox,andyoufindthreeofoursimple,fundamentalbuildingblocks,thetransistor/resistorcircuit,connectedasinFigure6-23.OpenupaNANDbox,andyoufindfiveofoursimple,fundamentalbuildingblocks,thetransistor/resistorcircuit,connectedasinFigure6-27.Toseethetransistor/resistorcircuit,lookatFigure6-7.Let’sfollowthe2-to-4binaryencoderpathnext.Openthe2-to-fourbinary

decoderbox,andyoufindtwoinvertersandfourANDgates,connectedasinFigure10-1.OpenupanANDbox,andyoufindthreeofoursimple,fundamentalbuildingblocks,thetransistor/resistorcircuit,connectedasinFigure6-23.Openuptheinvertertriangle,andyoufindourtransistor/resistorcircuit.Toseethetransistor/resistorcircuit,lookatFigure6-7.Beforewemoveon,takeonemorelookatFigures17-1and17-2.Inthese

circuits,wehaveclaimedthat,simplybybeinginthehighstate,anyoneoftheoutputsofthesequencerallowsaneventtohappen.Thatis,ahighoutputturnsonsomeothercircuitrytoallowafetch,oradecode,oranexecute.Let’smakesureyouunderstandandappreciatethis.Actually,youalreadyunderstandthis.Wehavebeen“enabling”circuitryall

along.Wehavebeendesigningcircuitsthatdonothingunlessanenablelineispulledhigh.Forexample,ourDlatchinFigure7-10hadanenableinput.Ourtri-statebuffer

(Figure7-20)andtri-stateinverter(Figure7-19)alsohadenablelines.Sodidourbi-directionallatchinFigure7-22.Onelookatoursimplemicroprocessor-basedsystemwithitsaddressdecoder(Figure10-4)shouldprovetoyouthatonevoltagepulledhighcanselectoneofseveralsubsystems.Or,gobacktothepass/blockcircuitofFigure7-11.ItshowsasimpleAND

gate,actingasanon/offswitchforaclock.TheclockcomesoutoftheANDiftheenableinputoftheANDishigh;theclockdoesnotcomeoutiftheenableinputislow.Realizethat,ifwewantedtoenable/disableanyofourcountersinfigures16-1,16-2,16-4,16-5,17-1,or17-2,allwewouldneedtodoismaketheinputclockfirstpassthroughanANDgate,controlledbyanenablevoltageononeinput,asinFigure7-11.Alltheabovedesigntechniquesallowustoturnonoroffentiresubsystems

withonewire—usuallycalled“enable”—settohighforenableorlowfordisable.It’slikealightswitch,turningcircuitsofforon.Rememberthisaswemoveintothenextsection,inwhichmultiplesubsystemswillbeonoroff.

CHAPTEREIGHTEENINSTRUCTIONDECODING

Now,let’sreturntoourbasicmicroprocessorsystemofFigure8-1.Weshall

nextconsiderhowourmicroprocessordecodesandexecutesacommand.Wesaythatdigitalelectronicssystemsarewonderful.But,weclaimthatthedigitalelectronicssystemcalledamicroprocessorisevenmoreamazing,becauseitis“programmable.”And,itis“re-programmable.”Inotherwords,asimpledigitalsystemperformsonefunction,andactsasone

machine.Amicroprocessorcanrunoneprogramwhichmakesitperformonefunction,asonemachine.Then,itcanrunanotherprogramcausingittoperformadifferentfunction,asifitwereadifferentmachine.Theoretically,itcanrunaninfinitenumberofprograms,soitcanbeaninfinitenumberofmachines.Haveyouusedacellphone,recently?Itdoesallthisbecauseitcandecodeandexecutecommands.Eachcommand,

inasense,makesthemicroprocessoraslightlydifferentmachine.Iwillshowyouhowitdoesthis,shortly.Let’sstartwithananalogy.Thinkofaverybigcorporation,likeGM.Theymake

transportationvehicles:cars,trucks,SUV’s,minivans,etc.Theystockalotofsubsystems:transmissions,drivetrains,suspensionsystems,exhaustsystems,engines,wheels,gears,lights,etc.Noteveryoneoftheirvehiclesis100%unique.BythisImeanthat,

hypothetically,thesameignitionswitchcouldbeintheAvalanche,theSilverado,theEscalade,andtheSierra,butnotinotherGMvehicles.So,GMcancreateacarcalledtheGoofmobilebyusingsubsystem348forthe

transmission,subsystem59forthedrivetrain,subsystem678forthesuspension,subsystem12fortheexhaust,etc.TheycanthencreateadifferentcarcalledtheDaffyTruckbyusingsubsystem322forthetransmission,subsystem72forthedrivetrain,subsystem611forthesuspension,subsystem18fortheexhaust,etc.Thetwovehiclesmighthavesomesubsystemsincommon,likethelights,seatbelts,airbags,etc.Thepointofthisanalogyis,oncethevehicleisdesigned,itisdone.Itisone

vehicle,onedesign.Everyvehicleofthesamemakeandmodelisthesame.Ifyouwantadifferentkindofvehiclewithadifferentdesign,madefromdifferentsubsystems,youhavetobuyadifferentvehiclebasedonadifferentdesign,madefromdifferentsubsystems.Thisiswherethemicroprocessorisdifferent.Whenthemicroprocessor

decodesacommand,itactuallyinterconnectsdifferentsubsystemstogether,onthefly!Thesesubsystemsthenworktogethertoexecutethecommand’stask.Thisistrulyamazing.It’sasifGMcouldredesignandrecreateanewvehicle

foryoueverynanosecond,madefromdifferentcombinationsofsubsystems,whileyouaredrivingit!Howdoesthemicroprocessordothis?Lookatthepicturebelow:

FIGURE18-1

ThetopofFigure18-1showsthemicroprocessor’s10-1instructionregister,with

aninstructioninside.Theinstructionisthereduetothefetchprocess,wherebythecommandwascopiedtotheinstructionregisterfromcommandmemory.Thenextstepisthedecodeprocess.Thecommandintheinstructionregisteris0000111000110001.Remember,the

0’sarereally0volts,andthe1’sarereally5volts.Theyarestoredina16-bitlatchcalledtheinstructionregister.Individualbitsfromtheinstructionregisterbecomeinputsintodifferent

decoders.(Youarefamiliarwiththe2-to-4decoderfromfigures10-1and10-3.)Each2-to-4decoderhastheabilitytoenableoneoffoursubsystems.Notevery2-to-4decoder’ssubsystemisrequiredforeverycommand.Forexample,fewcommandswillusethe2-to-4decoderthatactivatesADC0,ADC1,ADC2,orADC3.The6-to-64decoderisonlypartiallyshown.Ituses6bitsfromtheinstruction

registertochoose1of64circuitstoexecutespecificcommands.Ihaveonlyshown6ofthe64outputs:theonesthatenabletheMOVE,ROTATE,BRANCH,COMPARE,INCREMENT,andCLEARcircuits.Eachofthesespecificcircuitsexecutesthecommandbyaccessingthedatafromthecircuitsenabledbythe2-to-4decoders.Let’ssaythatthedesignerofthecircuitryforthismicrocontrollercreateditso

thatthebinarycommand0000111000110001executesasfollows:

SUBTRACTthecontentsofADC3fromthecontentsofUSART2,storingtheresultsinACCUMULATOR2.Whatdoesthisevenmean?Well,theprogrammightbemonitoringthe

temperatureofachemicalmixturethatisbeingheated.AnADCisananalog-to-digitalconverter,builtintomanymicrocontrollers.Atransducer—likeathermocouple—canconverttemperatureintoananalog(manylevel)voltage.IfthatanalogvoltageisinputintoanADC,theADCchangesitintoabinarystringofvoltages—abinarynumber—thatthemicroprocessorunderstands.Thehigherthetemperature,thehigherthebinarynumber.Inshort,theADC’svalueisthetemperatureofthechemicalmixture.Thereasontheprogrammightbemonitoringthetemperatureisthatitmight

wanttocompareittoashut-offtemperature.Wherewillitgetthisshut-downvalue?Well,fortotalflexibility,theuserofthismicroprocessorshouldbeabletochoosetheshut-offtemperatureatanytime.Theusercouldenteritintoakeyboardthatattachestooneoftheserialinputports.Thekindofintegratedcircuit(IC)thatconvertsaserial(onebitatatime)binaryinputintoaparallelbinaryoutput(thinkofan8-bitlatch)iscalledaUSART(universalsynchronous/asynchronousreceiver/transmitter).Manymicrocontrollershavebuilt-inUSARTs.Inshort,theUSART’svalueistheshut-offtemperature.Ofcourse,whenthetemperatureofthechemicalmixturereachestheshut-off

temperature,themicroprocessorwillneedtoturnofftheheatsourcetothechemicalreaction.Howdoesthemicroprocessorknowthatthetemperatureofthechemicalmixturehasreachedtheshut-offtemperature?Onewayistosubtractthetemperatureofthechemicalmixturefromtheshut-

offtemperature.Iftheansweriszero,thechemicalmixtureisattheshut-offtemperature,soit’stimetoshutofftheheatsource.Intermsofthedevicesavailabletotheinstructionregisterthroughthe2-to-4decoders,it’stimetoshutofftheheatsourcewhensubtractingthecontentsofADC3fromUSART2equalszero.Let’sgothroughthiscommand,bitbybit:

Bits1and0oftheinstructionregisteraresetto0and1,respectively,therebyenablingthesubtractioncircuitry.Bits3and2oftheinstructionregisteraresetto0and0,respectively,therebyenablingtheaccumulator0circuitry.Bits5and4oftheinstructionregisteraresetto1and1,respectively,therebyenablingtheanalog-to-digitalconverter3circuitry.Bits7and6oftheinstructionregisteraresetto0and0,respectively;however,thisinstructiondoesnotuseanymemorycircuitry.

Bits9and8oftheinstructionregisteraresetto1and0,respectively,therebyenablingtheuniversalsynchronous/asynchronousreceiver/transmitter2circuitry.Bits15,14,13,12,11,and10oftheinstructionregisteraresetto0,0,0,0,1,and1,respectively,therebyenablingthecomparecircuitry.Thisisafineexampleofthemicroprocessorbuildinga“car”(circuit)onthefly.

Becauseofwhichbitsareintheinstructionregister,USART2andADC3areenabled,theircontentssubtractedintheenabledsubtractioncircuitry,andtheanswerstoredintheenabledaccumulator2.Outof84subassemblies(circuits)availabletothemicroprocessor,theinstructionregisterhasassembled5ofthemtomakeasubtractionmachine.Adifferentcommandbuildsadifferent“car”(circuit).Incaseyouarecurious,here’swhatcanhappennext(dependingonthe

microprocessordesign)towrapupthetaskofleavingtheheateronorturningitoff.(It’sanadvancedtopic,butIputithereforasenseofcompleteness,andforthecurious.)Ifyoulookclosely,youwillseethatthiscommanddoesalittlemorethanjustsubtraction.Italsoactivatesthecomparecircuitry.Ifthevalueintheaccumulator2isallzeroes,thecomparecircuitrysetsa1-bitflip-flopcalled“zero”to1.Ifthevalueintheaccumulator2isnotallzeroes,thecomparecircuitrysetsthe“zero”flip-flopto0.Thenextcommandcanbeaconditionalskipcommand.Thiscommandtests

the“zero”flip-flop.Ifthe“zero”flip-flopcontainsa0,theskipcircuitryaddsanextracounttotheprogramcounter.Otherwise,ifthe“zero”flip-flopcontainsa1,theskipcircuitrydoesnotaddanextracounttotheprogramcounter.Thislittletrickmakesthemicroprocessorskipthefetchingofthenextcommand

fromprogrammemoryifthechemicalmixtureisnotuptotheshut-offtemperature.Normally,themicroprocessorfetchesthenextcommandfromprogramcounter+1.(Remember,theprogramcounterautomaticallyincrementsbyoneaftereveryfetch.)Theskipcircuitrymakesthenextcommandfetchcomefromprogramcounter+2,ifthevalueinaccumulator2isnotallzeroes.However,ifthevalueinaccumulator2isallzeroes,thatmeansthechemical

solutionhasreachedtheshut-offtemperature.Theskipcircuitrydoesnotaddanextracountof+1totheprogramcounter.Thenextcommand,fromprogramcounter+1,getsfetched.Thiscommandwouldloadatotallynewvalueintotheprogramcounter,redirectingthemicroprocessortofetchthenextcommandfromanareaofcodethatturnsofftheheater.Whatisinprogramcounter+2?Itprobablycontainscodetoloopbackaround

totestthetemperatureagain,waitingforthetimetoshutofftheheater.Computerprogrammersmayrecognizethatthisasthebasisfortheway

computersactuallyaccomplishtheFORloop.Anaccumulatorregistercanbeloadedwithnumber,decremented(subtractone),andtestedasabovetoseeifithasreachedzero.

Youwillnoticemyfrequentuseoftheword,“might,”asin,“here’swhatthecomparecircuitrymightdo.”That’sbecauseIammakingupmicroprocessorcircuitsandprogramsasIgoalong.Iamtailoringthemtobegooddesignsforteachingyouhowmicroprocessorswork.Therearemanywaystodesignamicroprocessor,buttheyallhaveasimilarbasicdesign.Thus,Ihavetriedtomakeagenericmicroprocessorforyoutolearn.

Remember,ourgoalisforyoutounderstandhowmicroprocessorswork,nottobecomeamicroprocessordesigner.Infact,therearenotthatmanyjobsfordesignersofmicroprocessors.Mostcomputerengineersdesignsystemsbaseduponoff-the-shelfmicroprocessors:microprocessorsalreadydesignedandsoldbythemillionsorbillions.Thecomputerengineerhasageneralknowledgeofhowmicroprocessorswork,thenappliesthatknowledgetolearnthespecificsofhowthatparticularoff-the-shelfmicroprocessorworks,thendesignsaproductbasedonthatdesign.Thatbeingsaid,let’slookatanotherwaythatamicroprocessordesigner

“might”createcircuitrythatdecodesthecontentsoftheinstructionregister.Let’sassume(tofitthedesignononepage)thatthecommandisonly8bitswide,sotheinstructionregisteris8bitswide.LikeinFigure18-1,6higherorderbitsselect1of64circuitsspecifictothecommand.Theremaining2lower-orderbitsassemble,on-the-fly,somecombinationof3reusablesub-circuitsthatanycommandmightuse.Thefigurebelowdepictsthisscenario:

FIGURE18-2Whatmakesthedecoderlabelledwithaquestionmark(Figure18-2)different

fromthedecodersinFigure18-1?Theoutputsofthe“questionmark”decodercanenablemorethanonecircuitatthesameinstantoftime.Each2-of-4decoder—seeninFigure18-1—canenableonlyonecircuitatatime.Thenewcircuitry—seeninsidethequestionmarkencoder—thoughsimple,cangrowratherlarge.That’swhyIlimitedthisonetobeingonlyabletoselectcombinationsof3sub-circuits.Let’sfirstmakeupatruthtable,toseewhatweareaskingthe“?”encoderto

do.

FIGURE18-3

TheIR1andIR0columnsofthetruthtablecontainthefourpossiblepairsof

valuesthatcanbeintherightmost2bitsoftheinstructionregister:00,01,10,and11.Foranygivenrow,a1inaCIRcolumnmeansthatCIRcircuitistobeenabled.So,forexample,lookatrow1.Itsays:ifthelast2bitsofthecommand(IR1

andIR0)are00,thensub-circuitsCIR2andCIR1shouldbeenabled(1),whilesub-circuitCIR0couldbedisabled(0).Anycommandcanbuilddifferentsub-circuitsbyusingdifferentvaluesof1’sand0’sinIR1andIR0.A1enables;a0disablesthesub-circuit.Weneedtodesignthreeseparatecircuits:onefortheCIR2output,oneforthe

CIR1output,andonefortheCIR0output.Theprocedureforeachcircuitissimilar,soIwillonlyexplainhowtodesigntheoneforCIR0.LookatthethingscircledinFigure18-3.First,IhavecircledtheentireCIR0

column,becausewearedesigningtheCIR0enablecircuit.Second,intheCIR0column,Ihavecircledthe1’s,becausea1indicateswhenCIR0shouldbeenabled.Third,intherowswhereIhavecircledthe1’s,IhavecircledtheIR1andIR0inputs,becausethesearetheinputvaluesthatmusttriggertheCIR0circuitrytoturnon.(Theymayalsotriggerothersub-circuitstoturnon,butthatwillbepartofthedesignforCIR2andCIR1.)Next,let’stryputtingintowordswhatourdesignshoulddo.Usingthewords,

“and”or“or”isofteninevitable,andleadsustotheANDorORgatesweuse.InthecircledpartsofFigure18-3,wefindthatCIR0mustbeenabled(high)whenIR1ishighANDIR0islow,ORwhenIR1ishighANDIR0ishigh.Well,thatwaseasy!Thelastsentencedescribesexactlythecircuitweneed.

WeinputIR1andinvertedIR0intoanANDgate;thenputIR1andIR0intoanotherANDgate;thenputtheoutputsofthetwoANDgatesintoanORgateto

produceCIR0.Thisiscalled,“designingbytruthtable.”YoucanseetheCIR0enablecircuitinthetopthirdofthepicturebelow.ThecircuitsforCIR1andCIR2aredesigneddirectlyfromthetruthtable,justlikeCIR0.

FIGURE18-4Designingbytruthtableisquick,andrequireslittlethought.But,itoften

producesacircuitthatisneedlesslycomplex.Thereisawholebranchofstudythatreducestheseresultantcircuitsintomorecompactformsthatrequirelesscircuitry.Thesetechniqueshavefancynames,like,“Karnaughmapping”and“Booleanalgebrasimplification.”Inaway,theyarefun,likesolvingpuzzles.However,forsimplecircuitsliketheoneinFigures18-3and18-4,alittleextrathoughtisoftenallyouneedtosimplifythecircuit.ThecircuitbelowisamuchsimplerreplacementforthecircuitinFigure18-4.

FIGURE18-5

IderivedthissimplercircuitfromcloseexaminationofthetruthtableinFigure18-3.Fromthattruthtable,noticethattoproduceahighoutputoutofCIR0,thelogicstateofIR0doesn’tmatter;allthatisrequiredforCIR0tobehighisforIR1tobehigh.Next,lookingatthetruthtable’sCIR1column,weseethatitisthesameastheNANDgate’struthtable;so,allwereallyneedforCIR1isaNANDgate.Finally,lookingatthetruthtable’sCIR2column,weseethattheonlytimeCIR2islowiswhenIR0ishighandIR1islow;thatleadstotheCIR2circuitwiththeNANDgateandtheinvertedIR1.TheabovecircuitFigure18-5,belongsintheboxwiththequestionmarkinit,inFigure18-2.Whatiftheselectedsub-circuitschosenbyCIR0,CIR1,CIR2,andCIR3

don’tallinteractsimultaneously?Thatis,whatiftheresultsfromCIR3mustfirstbeproduced,beforeCIR1canoperateuponit?WhatifCIR2musthappenbeforeCIR1,whichmusthappenbeforeCIR3?Thisremindsusofoursequencercircuit,fromFigure17-1(takealookatit,

now).But,thedemandsonthatsequencerweremuchlessstringent.Usingdecimal,forsimplicity,itonlyhadtocountinaverypredictableorder—0,1,2,0,

1,2,0,1,2,etc.Weneedasequencerthatcountsindifferentorders.First,itmaybeaskedto

count3,1,2,0.Next,itmaybeaskedtocount2,3,0,1.Butwearebeingevenmoredemandingofournewsequencer.Weareaskingit

docountsofdifferentlengths.First,wemayaskittocount3,2,1,0.That’s4counts.Next,wemightaskittocountonly1,0.That’s2counts.

FIGURE18-6

Figure18-6,above,isonesolution.Inshort,wehavetakenoursequencerfrom

Figure17-1andplacedafixed-programROMmemorychipbetweenthetwoparts.(Themod-3counterisnowamod-4counter.)TheROMactsasatranslationdevice,orasanencoder.Themod-4counter

stillcanonlycountinthe0,1,2,3pattern.It’stheROMthatconvertsthepatterntowhatevercountsequencewewant:3,1,2,0or0,3,2,1,etc.TheROMisinthecenterofFigure18-6.Thefirst4bitsineachrowisthe

addressoftheROMlocation.Thelast2bitsineachrowarethecontentsoftheROMlocation.Thoselast2bitsarewhatpotentiallycomeoutoftheROMandactivatethedecoder,andhencetheCIRsub-circuit.IhavemarkedofftheROMintogroupsof4rows.The2bitsintheinstruction

registermarked“offset”selectwhich4-rowgroupisbeingchosen.TheirA3andA2labels—foraddress3andaddress2—meanthattheyarephysicallyconnectedtoROMpinsrepresentedbythetwoleftmostbinarynumbersineachrow:thetwohighestorderaddressbits.Thetwolowestorderaddressbits—thethirdandfourthnumbersineachrow—

areprovidedbythemod-4counter.Thus,“offset,”intheinstructionregisterselectsa4-rowROMgroup,andthemod-4countermovesthoughthatgroup,onerowatatime.WhatevercontentstheROMdesignerhasplacedinthe2bitsof

eachrowcomesout,translatedfromtheoriginal2bitscominginonA1andA0.Let’sdoanexample.Let’ssaytheinstructioncontainsabinary00inits“offset”

bits.ThatmeansA3andA2oftheROM’saddressbitsareboth0.Lookingthroughthe2leftmostcolumnsofROM,wefindamatchof00inthefirst4rowsofROM.Themod-4countercyclesthroughthosefirst4rowsofROM.Itscount

sequencecanbeseenasthecounts00,01,10,and11inthe3rdand4thcolumnsofROM.Looknowatthe5thand6thcolumnofrows1through4.Thesebitscontainthe

outputsequenceforourcurrentexample.Whenthemod-4countercounts00,theROMoutputs01tothe2-of-4decoder,thereby“translating”thefirstcountfrom00into01.Stillfocusedonthefirst4rows,asthemod-4countercounts00,then01,then

10,then11,theROMoutputs01,then00,then11,then10,respectively.The2-of-4decoder,insteadofsequencingthroughCIR0,thenCIR1,thenCIR2,thenCIR3withouttheROM,nowcountsCIR1,thenCIR0,thenCIR3,thenCIR2withtheROMtranslator.If“offset”intheinstructionregistercontainsadifferentvalue,adifferent

translationoccurs,henceadifferentsequenceorderoutofCIR0throughCIR3.Forexample,if“offset”contains01,thenthesecondgroupof4rowsisselectedfromROM.Noticethat,inthatsecondgroupof4rows,Ihavelistedthetranslatedcount

orderas11,then00,thenxx,andthenxx.Inbinarylistings,xstandsfor,“don’tcare.”InFigure18-6,wedon’tcareaboutthosexxmemorylocations,becausetheyareneverread.Theylivein4-rowROMareasinwhichnotall4CIRsub-circuitsareenabled.Inthesecondgroupof4ROMrows,onlyCIR3(from11)andthenCIR0(from00)areenabled.Themechanismtopreventthesememorylocationsfrombeingselectedbegins

withthe“count”bitsintheinstructionregister.The“count”bitscontainthebinaryrepresentationofhowmanysub-circuitsareselected(forthatinstruction)withinthe“offset”ROMarea.The“count”bitsbecomethe“A”inputstoacircuitnewtous.It’scalledabinary

comparator.Thechangingcountbitsofthemod-4counterbecomethe“B”inputstothebinarycomparator.Thebinarycomparator’senableoutputgoeslowwhenA1,A2equalsB1,B2.Thislowsignalstopsthemod-4counterfromcountingbeyondthelimitimposedby“count”intheinstructionregister.So,forthesecondgroupof4rowsinROM,“count”musthavea01init.This

makesthemod-4counterstopatacountof01.Now,01isthe2ndbinarynumber.And,00isthefirstbinarynumber.So,CIR3isselectedwhenA1-A0is00;CIR0isselectedwhenA1-A0is01;thentheexecutionofthecommandisdone.Thebinarycomparatorstopsthecounterfromgoingtothenextcount:A1-A0equals

10.Circuitryspecifictothecommandwouldberesponsibleforclearing(CLR)the

mod-4countertozeroatthestartofthecommand,andforenablingtheclockinput.Command-specificcircuitrywould,ofcourse,alsoberesponsiblefortyingtogetherthesequentialresultsfromtheCIRsub-circuits.IfitbothersyouthatthisdesignwastessomememorylocationsinROM(thexx

areas),thatproblemcanbefixed.Wewouldmakethe“offset”areaintheinstructionregisterbigger,toincludethetotaladdress(all4bits)ofthebeginningoftheoffsetareaintoROM.Wewouldkeepthe“count”andbinarycomparatorfunctionalityunchanged.However,wewouldchangethewaywecreatetheaddressbitsoftheROM.We

wouldperformabinaryadditionofthe“offset”valuewithmod-4counter’schangingvalues,tostepthoughtheROM,withnowastedaddressspace.Iwillshowyouacircuitdesignforabinaryadder,shortly.ThemicroprocessordesignusingthecircuitinFigure18-6mightbeusedto

accomplishmorewithonecommandthanamicroprocessorusingthesimplerdesignsinFigures18-1or18-2.MicroprocessorarchitecturesdesignedwithmorecomplexcircuitsthataccomplishmorewitheachcommandarecalledCISC(complexinstructionsetcomputer)microprocessors.MicroprocessorarchitecturesdesignedwithsimplercircuitsthatdolesswitheachcommandarecalledRISC(reducedinstructionsetcomputer)microprocessors.BothRISCandCISCstylesaccomplishthesamethings.TheCISCmicroprocessorstakeslongertoperformonetask.TheRISCbreaksthetaskdownintomoresteps,buteachsteptakesashortertime.SomepeoplefeelthattheRISCapproachisthebetterofthetwo.Ifbothtaskstakethesametime,theRISCadvantageislesscircuitry,savingonsiliconspaceandpowerconsumption.What’sthepointofdelvingintoallthesecircuitsinvolvedindecodingand

executingmicroprocessorinstructions?Thepointis,asalways,togiveyouafeelforhowthemicroprocessorworks.Wehavedonethatonmanydifferentlevels:howelectronicsworks;howtransistorswork;howdigitalvoltagesaremovedaround,copied,andstored;etc.Now,wehaveshownhowmicroprocessorsworkonamuchdeeper,broader,

morecomplexlevel.Hopefully,youhavebeenimpressedbythepowerandflexibilityofthemicroprocessor.Youhaveseenthat:1.)Anyone,specificcommandcanbeconfigured(Figure18-1)inmanyways;andeachwayrebuildsandreconnectscircuitstogethertomakeanewelectronicmachine.2.)Therearemanycommands,eachonewithdifferentpowers,capabilities,andpurposes;eachoneusingdifferentinternalcircuits.3.)Puttingcommandstogether,sequentially,makesaprogram;therebyincreasingthepowerofasinglecommand,sincethecurrentcommandcanbuild

upontheresultofpreviouscommands.4.)Themicroprocessorcanrunmanyprograms,eachonedifferent,leadingtoinnumerablecombinationsofinternalcircuitsandcountlesstasksitcanperformforus.

CHAPTERNINETEENTHEBINARYADDER

Imentionedtheneedforabinaryadder,severalparagraphsago.Abinaryadderisacircuitthataddstwobinarynumberstogether,toproducetheirsum.Forexample,1001plus0101equals1110.Iwouldnotgointoanydetailaboutcircuitryforabinaryadderiftheadderwas

simplyusedaspartofacalculatorapplication.Butthefactis,theadderisusedasanintegralpartofthebasicoperationofthemicroprocessor.Forexample,thenormalflowofaprogramissequential.Acommandisfetched

fromacommandmemoryaddress.Let’scallthataddress“A“.ThenextcommandisfetchedfromaddressA+1,becausetheprogramcountergotclockedtothenextcount.Wedon’tneedanaddertoincrementby1.Acounterwilldo.But,sometimeswewanttogetournextaddressfromadifferentareaof

memory.Programmersknowthat“if”statements,“for”loops,andfunctioncallscausetheexecutionofcodetoberedirectedtootherpartsoftheprogram,insteadoftothenextlineofcode.Often,abinaryadderisusedtocalculatetheaddressofthisnew,non-

sequential,sectionofcode.Thecontentsoftheprogramcounterwillbeaddedtoanoffsetnumberbuiltintoacommand.Theresultingsumwillbeputintotheprogramcounter.Thenextcommandwillbefetchedfromthisnew,non-sequentiallocation.Forexample,saytheprogramcounter,pointingtoaddress68,fetchesa

commandcalledBRANCH_IF_ACCUMULATOR_EQUALS_ZERO,20.(Numbersindecimal,forsimplicity.)Whenthefetchisdone,theprogramcounterincrementsby1,becoming69.Here’showthiscommandworks.Ifthevalueintheaccumulatorregisterisnon-zero,thenextfetchcomesfromaddress69.But,ifthevalueintheaccumulatoriszero,20(fromthecommand)isaddedto69(fromtheinstructionregister).Abinaryadderdoesthis.Thesum,89,goesbackintotheprogramcounter,replacingthe69.Hence,thenextcommandisfetchedfromadifferentareaofcode,ataddress89,whenthecontentsoftheaccumulatoriszero.Programmerswillrecognizetheabovedescriptionasthebasisforthe“if”

statement.The“if”statementteststhevalidityofacomparisonbetweentwovalues.Ifthecomparisonistrue,asin“doesxequal0?”,thenthenext-in-linecommandtakesplace.Ifthestatementnottrue,thenacertainnumberoflinesofcodeisskipped,sothatadifferentcommandisexecuted.Thepicturebelowshowsthecircuitryfora1-bitbinaryhalf-adder:

FIGURE19-1

Thecircuitaboveiscalledahalf-adderbecausethereissomethingincomplete

aboutit:itdoesnotaccommodateacarryinputbit.Binary,likedecimal,addsnumberscolumn-by-column,sendingacarrytoaddtothenextmoresignificantcolumnwhenthesumexceedsthebaseofthenumbersystem.(SeeChapterNine.)Thehalf-adderisusedforadditionoftheleastsignificantbitsoftwobinarynumbers.Forexample,whenaddingbinarya3a2a1a0tob3b2b1b0,thehalf-adderhandlestheadditionofb0toa0,andprovidesacarrybittotheb1anda1column.Onceagain,digitalelectronicsamazesuswithhoweasyitistocreatethe

circuitsweneed.Ofcourse,thispresupposesalltheworkittooktolearnbasicelectronics,transistors,andthecircuitsunderlyinggatesandlatches.Oncewegetcomfortablewiththese,puttingtogethercircuitswithgatesandlatchesoftenseemsnaturalandsimple.Theabovehalf-adderisagoodexampleofthissimplicity.Lookatthetruth

tablefortheANDgate,inFigure6-22,part(a);andfortheXORgate,inFigure6-29,part(a),tounderstandhowthehalf-addercircuitinFigure19-1,part(b),producesthebehaviorshowninthehalf-adder’struthtableofpart(a).Inthetruthtable,youneedtoknowthattheSoutputisthesumoutput,andthe

Coutputisthecarryoutput.Reviewingyourbasicbinaryaddition,youshouldalreadyknowthat0+0=0,0+1=1,and1+0=0.Allthreeoftheseadditionsproducea0foracarrybit.However,1+1=0,witha1foracarrybit.Weneedaslightlymorecomplicatedcircuitforthebinaryadditionofanybits

withhigherweightthantheleastsignificantbinarybit.Thesecircuitsdifferinthattheymustaccommodatethecarry-in,providedbythecarry-outfromtheadditioninthepreviouscolumn.LookatFigure19-1,part(b),above,toseethecarry-outbit.Thatcarryoutbitmustbehandledbyacarry-incircuit.Thisslightlymore

complicatedcircuitiscalledafull-adder,andisshowninthepicturebelow:

FIGURE19-2Tounderstandhowthefull-adderimplementsitstruthtable,refertothetruth

tablesfortheORgate(Figure4-16,part(a)),theANDgate(Figure6-22,part(a)),andtheXORgate(Figure6-29,part(a)).Thefull-adder’struthtableandcircuitnowincludeCin(carryinput)tohandlethecarryoutputfromtheprevious,lesssignificantbit.Thefirst7rowsofthefulladder’struthtablearenotreallydifferentfromthehalf

adder.Whenanextrazeroispartofasummation,itdoesn’tchangetheanswer.So,theanswerdoesn’tchangeifyouadd0+1comparedtoadding0+0+1;youstillgetananswerofzero.The8throwisdifferent,though.Theanswerisasumof1andacarryoutof1,

somethingwenevergotwiththehalf-adder.Weareadding1plus1,plusacarryinof1.1plus1givesasumof0(aresetto0)andacarryoutof1.Butwethenhavetoaddthecarryinof1totheoldsumof0,producinganewsumof1.

Onceyouhavememorizedthetruthtablesforthebasicgates,youcandrawtheabovecircuitonpaper.Then,goline-by-linethroughthetruthtable,pencilinginthethreebinaryinputvalues,A,B,andCIN.Useyourknowledgeoftruthtablestopencilinallthebinaryvaluesinthecircuitforeachsetofinputs.Provetoyourselfthatthecircuitproducesthecorrectoutputvalues,SandCOUT,predictedbythetruthtable.IfyouwanttocreateacountertoaddXbitstogether,simplychainX1-bit

adderstogether.Forexample,tomakea4-bitadder,chainfour1-bitadderstogether,asinthefollowingpicture:

FIGURE19-3Theaddersareputtogetherright-to-left,justlikeournumbersystems,withthe

leastsignificantbitontheright,andthemostsignificantbitontheleft.AsImentionedbefore,theleastsignificantbitcanbeahalf-adder.Thecarriesworktheirwayfromrighttoleft;acarryoutcomesoutofanadderandbecomesthecarryinfortheadderonitsleft.Thistypeofadderiscalledaripple-carryadder.Justbeawarethatthereare

addersthatworkfaster,butaremorecomplicated.Onecanalsodesignacircuitthatwilleitheraddorsubtract.

CHAPTERTWENTYTHESTACKANDSTACKPOINTER

Twicewehavemadereferencetotheoccasionalneedtochangethenormal

behaviorofthemicroprocessor,initsfetchingofitsnextcommandsequentially.Remember,themicroprocessor’sprogramcounterautomaticallybumpsupbyonecountafterafetch.Thenumberinitisreadytobeplacedontheaddressbus,tofetchthenextcommandfromthenexthigheraddressinprogrammemory.Wehavenotedthat,afteratestingtypeofcommand,thecontentoftheprogramcountermaybereplacedwithadifferentnumber,causingthenextcommandtobefetchedfromelsewhereinprogrammemory.Wepointedouttoprogrammersthatthiswasthephysicalimplementationoftheir“if”and“for”programmingstructures.Sometimesthough,themicroprocessorneedstheabilitytoreturntotheplace

whereitstoppedexecutingitssequentialcode.Say,forexample(usingdecimalnumbersforclarity),afetchtakesplacefromprogrammemoryaddress25.Theprogramcounterbumpsupautomaticallyto26.Butthecommandfrom25executes,andreplacesthecontentsoftheprogramcounterwith175.So,thenextcommandisfetchedfrom175,thenfrom176,thenfrom177,thenfrom178,thenfrom179,thenfrom180,etc.Sometimes,whenthemicroprocessorisdoneexecutingtheblockof

commandsthatstartedataddress175,itneedstheabilitytoreturnwhereitleftoff,ataddress26.Perhapscontainedinmemorylocation180isacommandthatsays,“RETURN,”whichmeans,“Gobacktowhereyouleftoff.”Itwon’tcontainthereturnaddresslocationof26.Itwilljustsay“RETURN.”Thepicturebelowillustratesthisprocedure:

FIGURE20-1

Intheabovefigure,followthearrowstoseetheprogramredirectionandflow.

Startatmemorylocation25,totheleftoftheprogrammemorybox.(Remember,thereisonlyoneprogramcounter;don’tletthefigurefoolyouintothinkingtherearefourofthem.)TheCALL125commandreplacesthe26intheprogramcounterwith175.Followingthearrowontheright,programfetchesareredirectedtothe175-180areasofprogrammemory.Next,lookatmemorylocation180.TheRETURNcommandcausesthe

programcountertobereplacedwith26.Followingthearrowontheleft,programfetchesareredirectedbacktoaddress26,inthemainprogramthread.Whywouldthatcommandfromaddress25makethemicroprocessorstart

fetchingcodefromaddress175,insteadoffromsequential26?Theblockofcodefrom175to180mightbecodethattheprogrammerusesoverandover,manytimes,throughouttheprogram.(NoticeinFigure20-1thatCALL175isusedasecondtime,ataddress28.)Wouldn’titbegreatiftheprogrammercouldmakeonecopyofthecodeanduseit50times,insteadofhaving50copiesofthesamecode,scatteredthroughouttheprogram?Thenameforthat“onecopy”ofrepeatedlyusedcodethatlivesatouraddress

175through180isa“function.”Thenameforthecommandataddress25,thatredirectsprogramexecutiontothefunction,isa“functioncall.”Thenameforthecommandataddress180,thatredirectstheprogramexecutionbacktothemainprogramthread,isa“functionreturn.”Let’scalculatetheefficiencyofthistechniqueinmakingtheprogrammore

compact.First,let’slookatthenumberoflinesofcodeneededifwedon’tusefunctions.Therepeatedcode,asfoundinthefunctionis5lines,from175through179.Ifwerewrotethatcode50times,itwouldcostus5x50=250linesofcode.Now,let’slookatthenumberoflinesofcodeneededifwedousefunctions.

Thefunctionrequires6linesofcode,sinceitincludesanextraline:the“RETURN”command.Eachofthe50timeswecallthiscommand,wecallitwith1lineofcode,thefunctioncall.Now,itwouldcostus50+6=56linesofcode.Obviously,56linesofcodeusingfunctionsismuchbetterthan250linesof

codewithoutfunctions.Now,thesameblockofcodemaynotnecessarilybeusedasmanyas50times.But,afunctionisusuallymuchbiggerthan5linesofcode.Itcaneasilybehundreds,ifnotthousandsoflinesofcode.Theefficiencyofusingfunctionsbecomesenormous.Youmayalsowonderhowoftenaprogramwouldneedtoruntheexactsame

code.Ifevertheprogrammerneedstodoevenonethingdifferentfromthefunction,heorshecouldnorre-usethefunction.

And,youwouldberight.Except,thefunctionhasbuilt-incapabilitiestoovercomethisshortcoming.Thecircuitryaccommodatessendingdifferentbinaryvaluestothefunctioneachtimethefunctioniscalled.Thecircuitryalsoaccommodatessendingbinaryvaluesfromthefunction,backtothemainprogramthread,whenthe“RETURN”commandiscalled.Thisaddedflexibilityallowsthefunctiontorundifferentlyeachtimeitiscalled.

Itcan,forexample,doadifferentcalculationeachtimeitiscalled,bysendingitadifferentsetofnumberstocalculate.Eachtime,thefunctionwouldsendadifferentanswerbacktothemainprogramthread.There’sstillamysterytobesolvedbytheabovedescriptionofthefunctioncall

andreturnprocess.WhentheRETURNcommandexecutes,wheredidthe26comefrom,tobeplacedintheprogramcounter?Weknowwherethe175camefrom,thatwasputintotheprogramcountertostartthefunction;itwasbuiltintothecommand,CALL175.ButtheRETURNcommanddoesn’tsay,RETURN26,itjustsaysRETURN.Itcan’tsayRETURN26,becauseitdoesn’talwaysreturnto26.WhenweCALL175ataddress28,ithastoRETURNto29,notto26.Theanswertothismysteryinvolvestwonew,relatedtopics:the“stack”andthe

“stackpointer.”ThestackisaspecialareaofRAMmemory,usedtotemporarilystoretheaddresswhereyourprogramleftoffwhenitgotredirectedtorunthefunction.Inourexample,thestackstoresthe26.WhenthefunctionisdoneandRETURNiscalled,the“remembered”addressinthestack,26,isputbackintheprogramcounter,soyourprogramcanpickupwhereitleftoffinthemainprogramthread.Thisisanintuitiveprocess.It’slikewhatyouwoulddoifyouhadajobinwhich

youwereconstantlybeinginterrupted.Youwouldwriteyourselflittlenotestohelpyourememberwhereyouleftoff,beforetheinterruption.Ifyouwereabouttodostep26inyourmaintask,youwouldwritethatdownonanote,thendosubtaskA.WhensubtaskAwasdone,youwouldrefertoyournote,torememberthatyouneedtogobacktothemaintask,step26,topickupwhereyouleftoff.But,whatif,whileyouwereinthemiddleofsubtaskA,yougotinterrupted

again?Youwouldwriteanothernote,sayingwhatyouwereabouttodonextinsubtaskA.Youwouldputthenewnoteontopofthefirstnote.(Thisisa“stack”ofnotes,getit?)Then,youwouldproceedtothenewsubtaskB.WhensubtaskBiscomplete,youwouldrefertothetopnoteonthestack,

whichwouldtellyouwheretopickupwhereyouleftoffinsubtaskA.Youwouldthrowawaythatnote(don’tputitbackonthestack),andfinishsubtaskA.UponsubtasksA’scompletion,youwouldrefertothenoteonthetopofthe

stack.Thatnotewouldtellyouwheretopickupwhereyouleftoffinthemaintask.ThestackmemoryareainRAMislikeaplacetopilenotesofwheretoreturn,

tofinishinterruptedtasks.However,sinceaninterruptingtaskcanitselfbeinterrupted,weneedamechanismtokeeptrackofwhereweareonthestack.

Thatmechanismisaregistercalledthestackpointer.Iwillgiveanexampleofastackthatgrowstowardloweraddresses,althoughstacksthatgrowtowardhigheraddressesalsoexist.Seethepicturebelow:

FIGURE20-2

IhavedividedFigure20-2intothreesections,part(a),part(b),andpart(c).

Let’sfirstgetcomfortablelookingatthefigure.Thestackpointerisaregister—asetofflip-flops—arrangedasacounter.ItscontentsareusedtoselecttheaddressofthestackareaofRAMmemory.Inthis,itismuchliketheprogramcounter,withwhichyouarealreadyfamiliar.Alsoliketheprogramcounter,thestackpointerlivesintheCPU(centralprocessingunit)areaofthemicroprocessor.Thestackpointerdiffersinthatitcancountupordown.IhavedrawnthestackmemoryontherightsideofeachsectionofFigure20-2.

ThestackmemoryisadedicatedpartofRAM,reservedforkeepingtrackofreturnaddresses.“XX”insideanystacklocationmeanswe“don’tcare”what’sinside.IneachsectionofFigure20-2,Ihavedrawnanarrowfromthestackpointertotheaddressinthestackit“pointsto”.(“Pointsto”impliesanaddressdecoder,notshown.)Finally,“ProgCounter”ineachsectionreferstotheprogramcounter.The

programcounterisoneregister,nottwo.Ishowtwoboxessoyoucanseethecontentsoftheprogramcounterduring(old)andafter(new)thecommand.Let’sstartwithpart(a).Thestackisempty.Weareinthemainprogram.We

haven’treachedtheCALL175command,yet.Thestackpointerpointstostacklocation10001.Thestackisfullof“don’tcare”values.Movingtopart(b),theCALL175commandisfetchedfromprogrammemory

25.Whenthefetchisdone,theprogramcounterbumpsupto26.CALL175executes,andourmysteryissolved.Here’swherethereturnaddress,26,issafelyhidden.Followthecircled26’sandthearrowsconnectingthem.DuringCALL175’sexecution,threestepshappen,inthisorder:1.)Thestackpointercountsdownby1(decrements),to1000.2.)Thecurrentcontentsoftheprogramcounter(26)iswrittentothestackaddresspointedtobythestackpointer(1000).(Again,followthecircled26’sandthearrowsconnectingthem.)3.)Thecontentsoftheprogramcounterarereplacedwiththeaddress(175)ofthefunctionreferredtoinCALL175.26istheaddressthemicroprocessormustreturntowhenthefunctionhas

finishedexecution.Wehaveseenthatitisnowsafelytuckedawayinthestack.Now,let’sseehowthereturnprocessworks,inpart(c).Themicroprocessor

fetchestheRETURNcommandfromthefunction’saddress,180.Whenthefetchisdone,theprogramcounterbumpsupto181.DuringRETURN’sexecution,twostepshappen,inthisorder:

1.)Thecontents(26)ofthestacklocationpointedtobythestackpointer(1000)arewrittenbackintotheprogramcounter(Again,followthecircled26’sandthearrowsconnectingthem.)2.)Thestackpointercountsupby1(increments),to1001.Thestackisonceagainempty.RealizethatifanotherCALLhadhappened

beforetheRETURN,thestackwouldhavegrowndownintoaddress999.Here’sanexample.Figures20-1and20-2willhelpyouvisualizethis.Let’snamethefunctionataddress175the“A”function.Ataddress177ofthe“A”function,acalltoa“B”functionoccurs.Address178issavedatstackaddress999.Whenthe“B”functionfinisheswithaRETURNcommand,the178addressis“popped”offthestack,andputintheprogramcounter.Then,whenthe“A”functionfinisheswithitsRETURNcommand,the26addressispoppedoffthestack,andputintheprogramcounter.Wearebackinthemainprogram,whereweleftoffbeforethe“nested”functions:thefunctionwithinafunction.Doyouseehowmuchofthemicroprocessor’sbehaviorisbasedonmoving

informationaround?RememberbackinthebeginningofthisbookhowIstressedhowamazingandimportantitisthatagroupofbinaryvoltagescanbemovedfromonelocationtoanother?Withthisinmind,let’stakeamomenttoappreciatetheballet-likebeautyofthe

aboveprocess.Thinkoftheprogramcounterchanging,commandsmoving,thestackpointerchanging,addressesmovinginandoutofthestack.Allofthisaccomplishedwithprecisionandakindofbeauty,andatthemicroscopicscale.It’slikethebeautyoftheinternalcombustionengine.

CHAPTERTWENTY-ONEINTERRUPTS

There’sanother,similarsituationinwhichtheabovestackandstackpointermechanismisused.Above,wecoveredtheneedtorememberandreturntoanaddresswhenafunctioniscalled.Sometimes,themicroprocessormustrememberandreturntoanaddresswhena“hardwareinterrupt”occurs.Here’sthebasicconceptbehindahardwareinterrupt.Themicroprocessoris

surroundedbysubsystemsthatmayneedthemicroprocessor’sattention.Apersonmaybepressingakeyonakeyboard.TheUSBportmayhavejustreceivednewpositioninformationfromthemouse.TheEthernetportmayhavejustreceivedthewebpageyourequested.Theprintermaybereadyforanotherpageofthedocumentyouwanttoprint.Theharddrivebuffermaybereadywiththetextdocumentyouwanttoedit.Therearesomanythingsthatneedthemicroprocessor’sattention.Now,themicroprocessorcouldsitinamainprogramloop,andconstantly

checkonesubsystematatime,toseeifanyofthemneedsattention.Thistechniqueiscalledpolling.Itisasoftwaresolution.But,thissolutionwastestime.Sinceit’sasoftwaresolution,allofthispollingwastestimeinfetching,decoding,andexecuting.It’sawastewhenasubsystemisinnoneedoftheattention.Plus,thesubsystemthatdoesneedattentionhastowaitwhilethemicroprocessorcheckssubsystemsthatdon’tneedattention.Hardwareinterruptsareabetter,moreefficient,solution.Thinkofateacherina

classroom.Theteachergivesanassignmentthatmayrequireindividualhelp.Theteachercouldusethepollingsystem,andwalkaroundtoeachstudent,oneatatime,andsay,“doyouneedhelp?”A“yes”answerwouldgettheteacher’shelp.A“no”answerwouldbeawasteoftheteacher’stime.Thestudentthattrulyneedshelpwillhavetowaituntiltheteachercheckswitheveryotherstudent,whomayneednohelp.Obviously,thebettersolutionisahardwareinterrupt.Theteachertellsthe

students,“whoeverneedsmyhelpshouldraisehisorherhand.”Thehandisthehardware.Itisbinary:araisedhandistrue,anot-raisedhandisfalse.Theteacherdoesnotwastetimethisway.Thefirststudenttoraiseahandgetsimmediatehelp.Inamicroprocessor,hardwareinterruptsarehandledbyspecializedcircuitryin

theCPU.Thebasicideais,thatwhenasubsystemneedsthemicroprocessor’sattention,itpullsitsinterruptline(hardware)high.Themicroprocessor:1.)finishesitscurrentcommand2.)savestheaddressitmustcomebacktoonthestack3.)placestheaddressofthesubsystem-servicingcodeintheprogramcounter

4.)runsthesubsystem-servicingcodeuntilitencountersaRETURNcommand5.)restoresthereturnaddressfromthestacktotheprogramcounter,resumingthecode“interrupted”bythehardwareinterruptAhardwareinterruptisevenmoreamazingthanafunctioncall.Afunctioncall

hasalittlebitofpredictability.Thoughthemicroprocessorcan’tanticipatewhenafunctioncallwilloccur,theprogrammercan.Theprogrammerputsthecode(software)exactlywhereheorshewantsit.Neitherthemicroprocessornortheprogrammerknowwhenthehardware

interruptwilloccur.Thishasmajorimplications.Itmeansthatneitherthemicroprocessornortheprogrammerknowswhatlineofcodeisbeingexecutedwhentheinterruptoccurs.LookatthefunctioncallsinFigure20-1.Weknowtheyhappenwhenthecode

atline25andline28arefetched.Weknowthemicroprocessormustreturntolines26and29,respectively,whenthefunctionsarefinishedrunning.Perhapswecouldhavedesignedasimplermechanismthanthestack/stack

pointer,ifwehadthisamountofpredictability.Buthardwareinterruptsoccurunpredictably.Wecan’tplanforthem,incode.Wedon’tknow,inadvance,whatlineofcodewillbeexecutingwhenahardwareinterruptoccurs.Wereallyneedthestack/stackpointermechanismtohandlethem.Ifyoure-readtheabove5stepsdescribinghowthemicroprocessorhandlesan

interrupt,yourealizethatit’ssimilartohowithandlesafunctioncallandreturn.Thebigdifferencecomesinstepthree:“Themicroprocessorplacestheaddressofthesubsystem-servicingcodeintheprogramcounter.”Withafunctioncall,theaddressofthefunction-handlingcodeisbuiltrightinto

theCALLcommand.IfthecommandisCALL175,175goesintotheprogramcounter,tobeexecutednext.Thingsarenotsoeasywithinterrupts.Wehavetoputintotheprogramcounter

theaddressofthecodethathandlestheinterruptfortheparticularsubsystem.But,therearemanysubsystems,eachwithitsowninterrupt-handlingcode,eachstoredatadifferentstartingaddress.Anewmechanismisrequired,onethatallowsthecorrectaddresstobeputintheprogramcounter,toaccesstheinterrupt-handlingcodeneededbytheinterruptingsubsystem.Forexample,let’sassumethereare10subsystems,labelledAthroughJ,each

withtheabilitytointerruptthemicroprocessor.Eachofthe10subsystemsgetsservicedbyitsownuniquecode,differentfromtheother9,andstoredatadifferentstartingaddressfromtheother9.Assumethesecodeareasarealsolabelled0through9.Weneedamechanismsothat,forexample,whensubsystem2interruptsthemicroprocessor,onlythecodeincodearea2runs.Onlythestartingaddressforcodearea2getsputintheprogramcounter.Thepicturebelowdescribesthisscenario:

FIGURE21-1

Inthisfigure,youseethatonlytheinterruptforsubsystem2istrue(logical1,or

5voltsinputontheleftsideofFigure21-1).Thecodeareatoservicetheinterrupt2subsystembeginsataddress3000,andisbeingactivated,becausetheprogramcounterhasbeenloadedwithaddress3000.Differentmicroprocessorsusedifferentdesignstoputthecorrectaddressfor

theinterruptintheprogramcounter.InFigure21-1,Ihaveshownonesuchtechnique.Anareaofmemoryisreservedforuseasaninterruptvectortable.Theaddressforinterrupt0’scodeareaisstoredatthefirstaddressinthetable;theaddressforinterrupt1’scodeareaisstoredatthesecondaddressinthetable;etc.(Whenyoufirstseesomethinglikethis,itcanbedisturbing,becausetheseareaddressesbeingstoredasdatainmemory.)YoucanfindthistableintheupperrightsideofFigure21-1.Inourexample,

interrupt2occurs.Aftersavingthereturnaddressonthestack,built-incircuitryautomaticallyreadsthecontentsofaddress0002intheinterruptvectortable.

Address2,remember,holdstheaddressoftheinterrupt2codearea.Thebuilt-incircuitrythenwritesthe3000valueitfoundtheretotheprogramcounter.Codeproceedstorunfromaddress3000.Whenthecodetoserviceinterrupt2isdone,itendswithaRETURN

command,similartothewayafunctionends.Idon’tneedtogooverhowthereturnaddressisstoredtoandrestoredfromthestack.It’sthesameasforafunction.AsIhavementioned,thereareotherdesignsforhandlingthegenerationofthe

interruptaddress.Inonetechnique,thereisnointerruptvectortable.Or,perhapsit’sbettertosaytheinterruptvectortableconsistsofoneaddress.Nomatterwhichinterrupthappens,thatoneaddressgetsputintotheprogramcounter.Thatmeansthatonlyonesectionofcodestartsrunning,nomatterwhichinterruptoccurred.However,oncethatcodestartsrunning,thatcodespendssometimefiguring

outwhichinterruptoccurred.Itchecksthevoltagelevelsoftheinterruptinputlines,lookingfora1(true).Afteritfiguresthatout,itreplacesthecontentsoftheprogramcounterwiththeappropriateaddresstoservicethecorrectinterrupt.Asyoucansee,thesecondsolutiontogeneratingtheinterrupt-servicing

addressissoftware-driven.Athirdsolutionishardware-oriented.Inthistechnique,specialhardwarebuiltintoeachsubsystemsendstheinterrupt-servicingaddresstotheCPU.Thiseventoccursafterthemicroprocessoracknowledgestheinterruptsignalfromthatsubsystem.And,interruptscanbeevenmorecomplicatedandinteresting.Some

microprocessorsprioritizetheirinterrupts.ThinkofaCEO,theheadofabigbusiness.TheCEOisliketheCPU.TheCEOdoesn’tmindbeinginterrupted,butsomeinterruptionsarelessimportantthanothers.InterruptionsfromtheCFO(chieffinancialofficer)mighthavetoppriority,becauseignoringtheCFOcouldleadtofinancialdisaster.InterruptionsfromtheCIO(chiefinformationofficer)mighthavesecondhighestpriority,becauseignoringtheCIOcouldleadtodisastersfromsecuritybreaches,communicationloss,ordataloss.InterruptionsfromtheMarketingDirector,ontheotherhand,mightbelesstime-critical,andhencehavealowerpriority.TheCEOmightgivehis/hersecretaryinstructionsaboutthepriorityof

interruptions:apriorityorder:A.)“IfIamtalkingtotheCFO(interruptlevel0),don’tletanyoneinterruptus.”B.)“IfIamtalkingtotheCIO(interruptlevel1),don’tlettheMarketingDirector(interruptlevel2)interruptus,butdolettheCFOinterruptus.”C.)“IfIamtalkingtotheMarketingDirector(interruptlevel2),lettheCFOortheCIOinterruptus,butdon’tletanyoneelseinterruptus.”Prioritizinginterruptsworkssimilartonestedfunctioncalls,whichwehave

alreadycovered.That’swhere,duringtheexecutingofcodeforfunctionA,acall

foranotherfunction(functionB)occurs.Todemonstrateaprioritizedinterruptsystem,assumethatinterrupt-servicing

codeforsubsystemAisrunning.AssumeaninterruptrequestoccursfromsubsystemB.Oneoftwopossiblethingshappennext:1.)SubsystemB’sinterruptpriorityisequaltoorlessthansubsystemA’s.Inthiscase,themicroprocessorwillfinishallthecodeforsubsystemAbeforerunningthecodeforsubsystemB.2.)SubsystemB’sinterruptpriorityisgreaterthansubsystemA’s.Inthiscase,themicroprocessorwillfinishonlythecurrentcommandforsubsystemA,savethereturnaddressonthestack,thenimmediatelygotoworkontheinterrupt-servicingcodeforhigher-prioritysubsystemB.Whendonewiththat,themicroprocessorwillreturntocompletingtherestofthecodeforlower-prioritysubsystemA.LookingbackatFigure21-1,the10interruptscouldbeprioritizedsothat

interrupt0isofthehighestpriority,andinterrupt9isofthelowestpriority.(Strangely,it’susuallybackwards,likethis.)Ofcourse,withprioritizedinterruptcapability,morethanoneinterruptinputcanbeatalogic1level(true),andthemicroprocessorwouldhavenoproblemhandlingit.Digitalcircuitrywouldenableittofollowtherulesoutlinedinsteps1and2,above.You’vecomealongway,inyourquesttolearnhowmicroprocessorswork.We

havemovedfromtinyelectronstolesstinytransistors;onetransistortocombinationsoftransistors;fromsimplecircuitstocomplex.Ihopethatyouhaveenjoyedandprofitedfromthisjourney.And,Ihopeyoucannowlookuponyourmicroprocessor-controlleddeviceswithevengreaterappreciation,nowthatyouunderstandhowtheywork.

APPENDIXACODE

MachineLanguage(AppendixA-1)Isuspectthatyoumaywonderhowwemakethiswonderfuldevicedothings

forus.Youhaveseenthepiecesofthepuzzlethatfittogethertomakeamicroprocessor.Youhaveseenhowtheyworktogether.But,youmaywonder,howdoesthecodegetinsidethesethings,tomakethemwork?Howdoesapersongofrombuyingamicroprocessor,tocreatingaproductwithitthat,say,vacuumsmyfloorswhenI’matwork?Theprocessstartswiththepersonorpersonswhodesignandcreatea

microprocessor.Theircriteriaisbasedonthetargetmarketforthemicroprocessor.Doesithavetobesmallandinexpensive,forsimpletasks?Ormustitbepowerful,torunacomputerserver?Whoeverdesignsthehardwareofthemicroprocessormustalsodesignits

commandcode.Let’sassumeasimplemicroprocessor,basedon8-bitcode.Thedesignerisimmediatelylimitedto28=256binarycommands.Thefirstcommandis00000000,thesecondis00000001,followedby00000010,etc.,withthelastcommandof11111111.Thedesignersmustdecidewhateachcommanddoes.Thatis,theymust

decidehoweachcommandexecutes.Forexample,thecommand00000000mightexecutebyresettingthecontentsoftheaccumulatortoallzeroes.Thecommand00000001mightmovethecontentsoftheaccumulatortothestack(agoodwaytosendanumbertoafunction).Ifyouthinkthisthrough,youwillrealizethatanotherteamdesigningforanother

companymightcreateamicroprocessorthatexecutesthecommand00000000inacompletelydifferentway,suchasdisablingallinterrupts.Theircommandtoresetthecontentsoftheaccumulatormaybe11111111.Thishasimportantramifications,whichwewilladdresslater.Partofthedesignprocessistocreateamemorymaptodeterminethe

addressesofthesubsystems.Thecircuitry—liketheaddressdecodersthatwehavecovered—mustimplementthememorymapsothatthecorrectsubsystemsareaccessedbythecommands.Importantly,whenthefetchprocessoccurs,commandshadbetterbecomingoutofcommandmemory.Assumenextthatthecircuitryisdesignedandbuilttocarryoutthedecodingof

the256chosencommands.Thenextstepistowriteaprogram,thenputitintocommandmemory.ThefirsthomecomputerwastheAltair8800.ItusedtheIntel8080asits

microprocessor.ItusedRAMtostoreprograms.RAMisvolatile.“Volatile”meanstheprogramgoesawaywhenthedeviceisturnedoff.Lookatthesimplified(reducedto8-bit)pictureofanAltair8800,below:

FIGUREA-1

ThefirstAltairsrequiredtheusertoputthecommandcodeintoRAMprogram

memoryusingswitches.SwitchesontheoutsideoftheboxconnectedtoaddressanddatapinsontheRAMinsidethebox.Youflippedalltheaddressswitchesto0volts,toselectaddress00000000;thensetthedataswitchesinthepatternofyourfirstcommand;thenflippedtheRun/Programswitchto0voltsforamoment,tostorethecommandatthataddress.Next,youraisedtheA0switchto5volts,toselectaddress00000001;thensetthedataswitchesinthepatternofyoursecondcommand;thenflippedtheRun/Programswitchto0voltsforamoment,tostorethecommandatthataddress.Yourepeatedthisprocessuntilyourwholeprogramwasloaded.Youfinallycouldflipanotherswitchtopullyourmicroprocessoroutofreset,soyourprogramcouldrun.ImentionthisprocessbecauseIthinktracingthishistoricalprocesshelpsyour

understandingofhowyougetbinarycodeintocommandmemory.Nomatterhowthetaskisaccomplished,thebasicideaisassimpleastheoneshownabove.Youalreadyknowhowswitcheswork.Flipaswitchup,inFigureA-1,and5voltsappearsonaRAMinputline.Flipaswitchdown,and0voltsappears.Plus,youalreadyknowthatwecanreplacetheswitchesinFigureA-1with

transistors.Youalsoknowthatthesetransistorscanbebuiltintocircuitsthatcanautomatethetaskofloadingaprogramintomemory.And,ofcourse,thatishistoricallywhathappened.TheAltair8800switch-

loadingprocesswasobviouslyintolerablyslow.Thenextstepintheevolutionofgettingcommandcodeintomemorywastheinventionofthenon-volatileROMmemory.Thisintegratedcircuitwasmemorythatwasprogrammedoncewithcommandcode,theninsertedinthecircuitwherethemicroprocessorcouldreadit.Sinceitwasnon-volatile,thecodestayedtherewhenpowerwasturnedoff.Untilrelativelyrecently,ifyouneededtoupgradetheROMBIOS(thestart-up

commandcode)ofthePCpersonalcomputers,youhadtoremovetheROMfromthecomputerandreplaceit.WiththeinventionofFlashmemory,youcanreprogramthishybridRAM/ROMICwhereitlives,inthePC.UnderstandthatsomemicroprocessorshavetheFlashmemoryforcommandcodebuiltrightintothebodyofthemicroprocessor.ThereisasecondproblemwiththeAltair’sswitch-loadingprocesstoput

commandcodeintoprogrammemory.Inthatprocess,youhavetoenterthecommandsinbinary.Inouraboveexample,ifyouwantedtoenteracommandtoresettheaccumulatortoallzeroes,youhadtoknowthat00000000wasthecommandtoenter.Youhadtoeithermemorizethebinarycodeforeverycommand,orconstantlylookitupinareferencemanual.Thisnativecommandlanguageofmicroprocessorsof1’sand0’s(of5volts

and0volts)iscalledmachinelanguage.Itisobviouslytooclumsytoworkwith.

AssemblyLanguage(AppendixA-2)Hence,thedesignerofamicroprocessorwillprovidearelatedcommand

language,calledassemblylanguage.Assemblylanguageisashort,human-languagedescriptionofwhateachofthebinarymachinelanguagecodecommandsdoes.Thereisaone-to-onecorrespondencebetweenmachinelanguageandassemblylanguage.Ifthereare256machinelanguagecommands,thereare256assemblylanguagecommands.Asanexample,assumethemachinelanguagecommand00000000executes

byresettingeverybitintheaccumulatortozero.Theassemblylanguagecommandforthismightbe:CLRACC.Thiswouldbeagoodchoice,becauseitisshortfor“cleartheaccumulator,”whichisshortfor“makeeverybitofthegeneralpurposeregisternamedtheaccumulatorbecomezerovolts.”Apersoncanprogramwithassemblylanguagemuchmoreeasilythanwith

machinelanguage.It’seasiertomemorize,andeasiertotypewithoutmakingmistakesthanbinary,especiallyifthesizeofthecommandsare16bits,32bitsor64bitspercommand.Butwait:Ijustusedtheword“type.”Howdowegofromflippingswitcheson

theAltairtotypingcommands?Well,rememberwhenIsaidwecouldautomatethetaskofflippingswitches?Weautomatethetaskofgettingcommandcodeintomemorybyusinganothercomputer.Toprograminassemblylanguage,amemberofthemicroprocessordesign

teammustwriteacomputerprogramcalledanassembler.Theassemblerprogramhastheabilitytoreadasavedtextfilewritteninassemblylanguage,changeitintomachinelanguage,thensaveitasanew,machinelanguagefile.Let’selaborateonthis.Anassemblylanguageprogrammertypesalineofcode

intoatexteditorprogram,likeNotepad.AssumeNotepadcodifiestextusingASCIIcode.ForourCLRACCcommand,theCinCLRgetssavedinthetextfileastheASCIIcode01100111.TheLinCLRgetssavedinthetextfileastheASCIIcode01110110.Thisprocesscontinuesuntilthewholeprogramisfinishedandsaved.Let’ssayitissavedas,“myAssem.src.”Next,theassemblylanguageprogrammerrunstheassemblerprogram.The

assemblerneedstoknowwhichprogramtoassemble.Theprogrammerenters,“myAssem.src.”Theassemblerprogram“assembles”“myAssem.src.”ThatmeansitconvertstheASCII-encodedassemblylanguagecodeintoASCII-encodedmachinelanguagecode.Itsavesthisasanewfile:“myAssembly.obj.”NoticeIsaiditsaves“myAssembly.obj.”inASCIIcode.So,whenitconverts

CLRACCto00000000(whichis8zeroes),itdoesn’treallyconvertitto8binaryvoltages.Sinceitissavingittoatextfile,itsaves00000000inthetextfile’salpha-numericencodingformat,whichwehaveassumedisASCIIcode.TheASCIIcodeforzerois01001000.Theassemblersaves01001000eighttimes,to

savethebinarycommand00000000.(Morefrequently,toreducefilesize,itsavesthehexadecimalinsteadofbinaryversionofthemachinelanguagecode.)“myAssembly.obj,”thenewmachinelanguageversionourprogram,contains

moreinformationthanjustthecommandcode.Italsocontainstheaddresswhereeachcommandwillliveincommandmemory.Thereason“myAssembly.obj”isnotsavedinbinaryisthatwehaveonemore

steptoaccomplishinourtask.Weusedacomputertoassemblethecode.Now,weusethecomputerto“burn”thecodetotheprogrammemory.First,weneedaspecializedhardwaredevicecalledaprogrammerorburner

designedtoputthecodeintotheprogrammemory.Thisdeviceconnectstothecomputerandtothetargetmemorytobeprogrammed.Iwillcallita“burner”becausecallingitaprogrammermakesusthinkwearetalkingaboutahumansoftwareprogrammer.(“Burner”isanoldterm,frombackinthedayswhenROMcodewasliterallyburnedinbymeltingmetallinksintheIC’s.Iwillcallitaburner,evenwhenreferringtoprogrammingFlashmemory.)Wealsoneedacomputerprogramthatcantaketheassembledprogram,

“myAssembly.obj,”andsendittotheburner.Unfortunately,thissoftwareprogramisalsoreferredtoasaprogrammer.Iwillcallitburnersoftware,becausecallingitaprogrammermakesusthinkwearetalkingaboutahumansoftwareprogrammer.So,theburnersoftwaretakesthe“myAssembly.obj”codeandsendsittothe

burnerhardware.Theburnerhardwarereadsthecodeandfinallyconvertsitintotruebinaryvoltagelevelsof5volts(1’s)and0volts(0’s).Itputsthecodeintothecorrectaddressesinsidethememorychipitisburning.

High-levelLanguages(AppendixA-3)Evenbeforemicroprocessorswereinvented,thecreatorsofmachinelanguage

andassemblylanguagerealizedthatprogrammingacomputerthiswaywouldseverelylimitthenumberofpeoplewillingtocreateprogramsthisway.Evenassemblylanguagerequiresadeepknowledgeoftheunderlyinghardware(circuits)inthemicroprocessor.Assemblylanguageprogrammersmustbefamiliarwithregisternames,interrupts,thestack,addresses,anddifferentwaystogenerateaddresses.Plus,ifyouworkwithadifferentmicroprocessor,commandnames,terminology,andtechniqueschange.So,theyinventedhigh-levellanguages.Theselanguageshavenameslike

Fortran,COBOL,BASIC,C,C++,andJava.Theyarecalled,“high-level,”notbecausetheyarehardertolearnormorepowerful.Assemblylanguageishardertolearnandmorepowerful.Theyarecalled“high-level”becausetheyareastepupfromhavingtoworkatthehardwarelevel.Theyallowapersontowriteaprogramwithouthavingtoknowhowhardwareorcircuitswork,withoutneedingtoknownamesofinternalregistersortheiraddresses.Plus,ifahigh-levellanguageisstandardized(meaningthecommandsarethesamenomatterwhoprovidesthatlanguage),youshouldbeabletolearnitonce,anduseitinanymicroprocessor-basedsystem.Ahigh-levellanguageisverydifferentfromassemblylanguage.Primarily,it

abandonstherelianceontheone-to-onenatureofassemblylanguagetomachinelanguage.Thegoalisstilltocreateamachinelanguageprogram.Butonecommandinahigh-levellanguagebecomesmanycommandsinmachinelanguage.Thatonecommandnolongerresemblesmachinelanguagecommands.Gonearereferencestoregisters,addresses,etc.Forexample,let’slookatajavalanguage“if”statement:

if(x>3){y=0;}Javaisahigh-levellanguage.Theabovecodemeans,“Ifthecontentsof

variablexisgreaterthanthree,thenchangethecontentsofvariableytozero.But,ifthecontentsofvariablexisnotgreaterthanthree,thenleavethecontentsofvariableyalone.”Thisonelineofjavacode,whenreducedtoassemblylanguage,becomes

manylinesofcode.Theassemblylanguagecodereferencesregistersandaddresses,andinvolvesaknowledgeofsignedbinaryarithmetic.Thegoodnewshereisthathigh-levellanguagesreducetomachinelanguage

inmuchthesamewaythatassemblylanguageprogramsreducetomachinelanguage.Thedifferenceis,a“compiler”isthenameofthesoftwarethatconvertsahigh-levellanguagetomachinelanguage.(Iwon’tdiscuss“interpreters,”toavoidneedlessconfusion.)

Small-systemCodevs.ApplicationCode(AppendixA-4)Wehavereachedapointwherewehaveexplainedtheearlierquestionswe

posed.Theaboveparagraphsexplainhowyoucanputcodeintoprogrammemory.Theyalsoexplainhowyoucangofrombuyingamicroprocessortocreatingamicroprocessor-basedproduct.Briefly,you:1.)Buythemicroprocessor2.)Studyitsarchitecture,addressspace,andcode3.)Buildcircuitsaroundthemicroprocessorwithwhichit“interfaces”4.)Writecommandcodeforthemicroprocessor5.)Usetheburnerhardwareandsoftwaretoputthecodeintoprogrammemory6.)MakelotsofmoneyThisdescriptionimpliesknowledgeofelectronicsdesign.Youdon’thaveto

designthemicroprocessorfromthegroundup,butyoumustknowhowitworks,andhowtobuilduponit,evenifyouareusingahigh-levellanguageforstepfour.Ithelpstohaveabackgroundincomputerengineering.Thatbeingsaid,justbecauseyouarenotacomputerengineer,thatdoesn’t

meanyouareautomaticallyleftoutofallthefun.Thereisanotherpathtoworkingwithmicroprocessorsthatdoesn’trequireintimateknowledgeofhowtheywork:softwareengineering.Youmayknowsoftwareengineers—computerprogrammers—whodon’tknowhowmicroprocessorswork.Youmaybeone,yourself.Softwareengineersworkonmicroprocessor-basedsystemsinwhichtheabove

fivestepsarealreadydone.Allofthehardwaredesigniscomplete.Theproductisalreadyfunctioning.Italreadyhassomebasic,burned-incode.Itisacomplexsystem,calledacomputer,ortablet,orcellphone.Inthiskindofenvironment,aprogrammeraddsmorecodetothecodethat

alreadyrunsthecomputer.Thisnewcodeextendsthecapabilitiesofthecomputer.Let’scallthisnewcodeanapplication,or“app.”Writinganappdoesnotrequireextensiveknowledgeofthemicroprocessoror

electronichardware.Allthatworkistakencareofbybuilt-incodecalledtheBIOSandbytheoperatingsystem(I’lldefinetheoperatingsystem,shortly).Designersoftheoperatingsystemprovideprogrammerswitha“SoftwareDevelopmentKit”,sotheprogrammer’sappcodecanconnectwiththeoperatingsystem’sfunctions.TheBIOSandtheoperatingsystem’sfunctionshandlethe“dirtywork”ofcontrollingthephysicalelectronics.ThiskindofprogrammingdoesnotinvolveburnersthatputcodeintoROM.Ina

computer,anappisfetchedfromDRAM(dynamicRAM).TheabilityforlargersystemstoexecutecodefromDRAMbringsustoawholenewprogrammingandhardwareenvironment.Thefigurebelowhelpsexplainwherecommandcode

comesfrom,inaPC-stylecomputer:

FIGUREA-2

FigureA-2showsthelargemicroprocessor-basedsystemwethinkofwhenwe

talkabouta“computer.”Inthissystem,themicroprocessornormallyfetchesitscommandcodefromDRAM.DRAMischeap;andit’slargeenoughandfastenoughformostpurposes.However,itisvolatile:itlosesinformationwhenturnedoff.So,programscan’tbestoredinDRAMwhenpowerisoff.Itisemptywhenturnedon.Furthermore,evenifitwasnon-volatile,itscapacityisn’tgreatenoughtostorealltheappsandfilesamoderncomputeruserrequires.So,weneedamassivelylargestorageareathatisnon-volatile;onethatretains

appsandfileswhentheunitisturnedoff.That’sthejoboftheharddrive.(Or,solidstatedrive:flashmemoryforsmaller,lightweightunitslikenotebookcomputers.)Theproblemis,themicroprocessordoesn’tfetchcommandcodedirectlyfrom

theharddrive.Theharddriveistooslow.It’sanelectro-mechanicaldevice.Itaccessesinformationusingmotors.Toamicroprocessor,waitingformotortomoveislikeuswatchinggrassgrow.So,codestoredintheharddrivethatthemicroprocessormustexecutemust

firstbemovedtoDRAM,thenfetchedfromDRAM.FollowthearrowsandthenumberstounderstandFigureA-2.Whenthe

microprocessorwakesupatpower-up,itmustfetchcodefromwhicheveraddressithasbeendesignedtoretrieve.ThecomputercreatorsputBIOSinthataddressspace(step1).BIOS(BasicInput/OutputSystem)isinasmallmemoryspace.Itisjustlikethe

permanentcodeloadedbyaburner,thatwecoveredinourdiscussionofsmallmicroprocessor-basedsystems.Itisasmall,preliminaryoperatingsystem.TheBIOSisthenamegiventoboththeintegratedcircuitchipandthesoftware(firmware,sinceitispermanent)insideit.Anoperatingsystemisthecommandcoderesponsiblefortheoverheadofrunningacomputer:loadingprograms,savingprograms,maintainingafilesystem,inputandoutputofdata,etc.BIOSperformssomeself-testsonthecomputer.Itcheckssettingsstoredinthe

SetupIC.InSetup,itfindsthebootorder:theprioritizedlistofwheretofindtheprimaryoperatingsystem,likeWindowsorLinux.Inourexample,theBIOSfindstheprimaryoperatingsystemintheharddrive.StillfetchingfromBIOScode,themicroprocessorcopiestheprimaryoperating

systemfromtheharddriveintoDRAM(step2to3).Whenthatisdone,thecodelastcodeexecutedbyBIOschangestheprogramcountertopointtotheaddressofthefirstcommandintheprimaryoperatingsystem,inDRAM.Whentheuserusesaninputdevicetoloadanapp,sayawordprocessorapp,theoperatingsystemrespondstothatinputbycopyingthewordprocessorappfromtheharddrivetoDRAM(step3to4to5).TheoperatingsystemletssomeofthecodefetchestobefromthewordprocessingappinDRAM.Iftheuserofthewordprocessingapploadsanolddocumenttoedit,theoperatingsystemcopiesthatdocumentdatafromtheharddriveintoDRAM(step5to6to7).AnychangesmadetothedocumentaremadeintheDRAMcopy.Whentheuserwantstosavethenewlyediteddocument,theoperatingsystemcodecopiesitfromDRAMbacktotheharddrive(step7to8).Thus,whenaprogrammercreatesanappandyouinstallitinyourcomputer,

youareputtingitintotheharddrive.There,itbecomesoneofmanyotherprograms.Whenitisneeded,itgetsloadedintoDRAM.Fromthere,thecodeisfetched,tobedecodedinsidethemicroprocessor’sCPU.Asyouhaveseen,theanswertoourquestion,“Howdoyougetcodeinto

programmemory,”isnotasimpleone.Partoftheproblemisthattherearedifferentkindsofmicroprocessor-basedsystems.Somearesimpleandsmall.Othersarecomplexandelaborate.So,forexample,forasmall,simplemicroprocessor,codemaysimplyneedto

beburnedintoROM.Apersonmaychoosetoprogramitinassemblylanguage.Peoplemaydothisbecausetheylovehowmicroprocessorswork;programminginassemblylanguagemakesthemfeelclosertothe“workings”ofthemachine,tothe“machinery”ofthemachine.Or,theymaybelievethatassemblylanguageprogramsaremoreefficientandcompact.Peopledid,atonetime,alsocreateassemblylanguageprogramsforPC-stylehomecomputers.Aprogramnamed“Debug”wasusedforthispurpose.Ontheotherhand,inalarge,complexmicroprocessorsystemlikeacomputer,

somecodemuststillbeburnedintoROM.But,muchmorecode—writteninahigher-levellanguage—canbestoredinaharddrivebutrunfromDRAM.

WriteOnce,RunAnywhere(AppendixA-5)Nowthatwehavediscussedlargemicroprocessor-basedsystems—computers

—let’sgobacktomyearlierreferenceaboutthefollowingproblem.YouhavemicroprocessorA,madebyAtmel;microprocessorB,madebyIntel;andmicroprocessorC,madebyMicrochip.Youhavecreatedhigh-levellanguagecode.However,themachinelanguagecodeforeachoftheseistotallydifferent.You

can’tjustrunonecompileronetimetochangeyourhigh-levellanguagecodeintomachinelanguageforallthreemicroprocessors.ThemachinelanguageproducedformicroprocessorAwillnotworkformicroprocessorsBorC.Youwouldhavetorunahigh-levellanguage-to-microprocessorAcompiler;thenahigh-levellanguage-to-microprocessorBcompiler,thenahigh-levellanguage-to-microprocessorCcompiler.That’swhy,traditionally,codewrittenforPC-stylecomputersdidnotworkin

Applecomputers,andviceversa.PCstraditionallyusedIntelmicroprocessors,whileApplestraditionallyusedMotorolamicroprocessors.TheJavalanguagemadeabreakthroughwiththisproblem,withasolution

referredtoas,“writeonce,runanywhere.”Withjava,youcompileyourprogramonce.Theresultingcodeispartlycompiled.Itiscompiledintoanintermediatestate,called“bytecode.”Then,youinstallajavavirtualmachineonyourcomputer.Thisjavavirtualmachineissoftwaremadespecificallyforyourmicroprocessor.Whenyourunyourjavaprogram,thejavavirtualmachineconvertsthebytecodeintothemachinelanguagethatyourmicroprocessorwasdesignedtoexecute.Thus,youcandistributethesamebytecodeontheinternettoanycomputerrunbyanymicroprocessorand,assumingithasthecorrectjavavirtualmachineinstalled,itwillexecuteproperly.

APPENDIXBD/ACONVERSION

Asanotherbonus,I’dnowliketotakeyouonestepbeyondyourknowledgeof

howmicroprocessorswork.Ihaveshownyouhowmicroprocessorsinterfacewithotherdigitaldevices.Now,I’dliketoshowyouhowmicroprocessorsinterfacewithanalogdevices.Thisabilitytointerfacewithanalogdevicesisimportant,becausethe“real”

world,thehumanworld,isanalog.Therealworldconsistsoftemperature,light,velocity,color,sound,wind,andforce,tonameafew.Eachofthesecanbeincountlessstates.Acarcanmoveat10milesperhour.Also,itcanmoveat15,or20.5,or30.22,or30.222,or30.2222milesperhour.Thisqualityofbeinginmanymeasureablestatesiscalledanalog.Thequalityofbeinginonlytwomeasureablestatesiscalleddigital.Theabilityofmicroprocessorstointerfacewiththeanalogworldisexciting,

becauseitgreatlyincreasestheirpowerandusefulnesstous.Itenablesmicroprocessorstobeabletomonitor,andtosomeextentcontrol,thereal,analogworldoftemperature,light,velocity,color,sound,andforce.Beforewehadmicroprocessors,wehaddevicescalledtransducers.

Transducersaredevicesthatchangeoneformofenergyintoanother.Sometransducerschangeoneaspectofouranalogwordintovoltage.Forexample,amicrophonechangesasoundintovoltage.Athermocouplechangesheatintoavoltage.Atachometerchangesrotationalvelocityintovoltage.Othertransducersworkintheoppositedirection.Theychangevoltageintoan

elementofouranalogworld.Aheatingelementchangesvoltageintoheat.AnLEDchangesvoltageintolight.Aspeakerchangesvoltageintosound.However,thevoltage,ineachoftheabovetwotypesoftransducers,isanalog

voltage.Themicroprocessorisavoltage-baseddevice,butitsworldisoneofdigitalvoltages.Whatthemicroprocessorneedsisonetypeofdevicethatconvertsanalogvoltagesintodigitalvoltages:anA-to-Dconverter(analog-to-digital).And,itneedsanothertypeofdevicethatconvertsdigitalvoltagesintoanalogvoltages:aD-to-Aconverter(digital-to-analog).Tostatethismoreaccurately,themicroprocessorneedsadevicethatconverts

oneanalogvoltageintoagroupofdigitalvoltages.Thenitwouldbeabletosampletherealworld.Therealworldfirstgetsturned—byatransducer—intoananalogvoltage,whichgetsconvertedtoagroupofbinaryvoltagebyanA-to-Dconverter,whichgetsinputbythemicroprocessor.(Seepart(a)ofFigureB-1,below.)Themicroprocessorneedsasecondtypeofdevicethatconvertsagroupof

binaryvoltagesintooneanalogvoltage.Thenitwouldbeabletocontroltherealworldbygeneratingabinarygroupofvoltages,whichgetturnedintoananalog

voltagebyaD-to-Aconverter,whichgetsturnedintoarealworldeffectorbyatransducer.(Seepart(b)ofFigureB-1,below.)

FIGUREB-1

FigureB-1showshowonesuchsystemwouldwork.Hopefully,youare

pleasantlysurprisedbyhowmuchofthissystemyoualreadyunderstand.ItshouldgreatlyresembleFigure10-4,whichwestudiedindepth.ThemicroprocessorusestheaddressbusandaddressdecodertoenabletheA/Dconverter,andreaditsinputfromthedatabus.Also,themicroprocessorenablestheD/Aconverter,andwritesinformationtoitviathedatabus.BoththeA/DandD/AconvertershaveourfamiliarD-typelatchesbuiltintothem.Thepurposeofthiscircuitisforthemicroprocessortoreadthetemperaturein

part(a),theuppercircuit.Then,ifthetemperatureistoohigh,themicroprocessorturnsonthecoolingfaninpart(b),thelowercircuit.Followthearrowstounderstandthedirectionofinformationflow.Don’tbeconfusedbytheextra“convert”and““interrupt”linesontheA/Dconverter.Usually,youmustfirst

commandtheA/Dconvertertodoaconversion(“convert”).Whentheconversioniscomplete,theA/Dconvertermakesthe“interrupt”linetrue,sothatthemicroprocessorknowstoreadtheresultsoftheA/Dconversion.Youalreadyunderstandinterrupts,too!Thiscircuitshouldbearealeye-opener,andhelpyouseewhybillionsofsmallmicroprocessorsaresold.I’llshowyouasimpledesignforaD/Aconverter,later.Thedesigninvolvesan

op-ampintegratedcircuit,solet’sstartwiththat.Seethepicture,below:

FIGUREB-2

ThetrianglecircuitsymbolinFigureB-2istheop-amp.Don’tconfuseitwiththe

symbolforabufferoraninverter.Thosetwoarebinarydevices.Anop-ampisananalogdevice.Theop-ampcomesinanintegrated-circuitbody,withexternalpinconnectionstotheoutsideworld,sothatdifferentexternalcomponentscanbeattached.Thisgivestheop-amptheflexibilitytobecomethecoreofmanydifferentkindsofcircuits.

Op-ampsbringsgreatpowerandsimplicitytoanalogcircuitdesign.Theyusuallysimplifythemathematicsneededtocompleteadesign.Theyreducethenumberofcomponentsneededforacircuit,inlargepartbecausetheyhavemanytransistorsinsidetheirintegrated-circuitbody.Forexample,theop-ampcircuitconfigurationinFigureB-2isaninverting

voltageamplifierwithagainof10.Avoltageamplifiertakesaninputvoltageandcreatesabiggeroutputvoltage.Intruth,anamplifierisamultiplier.InFigureB-2,theinputvoltage(Vin)of1voltismultipliedby10,andoutput(Vout)as-10volts.(Yes,negative10volts.Wedidsaythisisaninvertingamplifier.Wecancreateanon-invertingamplifierwithadifferentop-ampdesign.Or,wecandouble-invertthiscircuit’soutputwithasecondinvertingamplifierwithagainof-1.)LookcloselyatFigureB-2andyouwillseethattheratioofresistorRfto

resistorRinis10kohmsto1kohms.“k”isthemetricsymbolfor“thousand.”So,10,000/1,000=10.Theirratiois10,which,notcoincidentally,isthegainofthecircuit.Thus,onecanlearntodesignamplifierswithop-ampsinamatterofminutes.Canyouchangethisdesignsothatthegainis20?(Answer,changeRfto20,000ohms.)What’sthesecretbehindthepower,yetsimplicity,ofop-amps?I’llexplainit

now,butdon’tworryifyougetlost.Justrememberthat,whilethesecretiscomplicated,theendresultissimplicity.Inthecaseoftheinvertingamplifier,forexample,thegainissimplyRfdividedbyRin,theratiooftworesistors.Thesecretstartswithanapparentabsurdity.Internally,anop-ampisa

differentialamplifier,withagainofabout100,000.Inadifferentialamplifier,asubtractiontakesplacebeforetheamplifier’smultiplication.Thevoltageinputatthepinlabelled“+”minusthevoltageinputatthepinlabeled“-”ismultipliedbyabout100,000,toproduceanoutputvoltageatVout(thetipofthetriangleontheright).Thisisridiculous.Adifferenceinvoltageof1voltfromthe“+”tothe“-”input

wouldproduceanoutputvoltageof100,000volts.That’simpossible.Themostthisop-ampcanproducefromitsVoutoutputis+15voltsor-15volts(actually,alittleless).That’sbecause,asseeninFigureB-2,weareprovidingitwith+15voltsand-15voltsaspowersupplyinputs.Infact,foranydifferenceinvoltageofgreaterthan.0001voltsbetweenthe“+”andthe“-”inputs,thisdeviceisforthemostpartuseless.Thesecondcharacteristicofop-ampsisthattheinputresistanceintothe“+”

andthe“-”inputsisabout2millionohms.Verylittlecurrentwillevergointoitsinputs.Thesecrettotheamazingthingsanop-ampcandoforusishiddeninabranch

ofengineeringthatmostpeoplehaveneverheardof.It’scalled“controlsystems.”Therelatedjobtitleis,“controlsengineer.”ControltheoryhelpstopreventeventslikethecollapseoftheTacomaNarrowsBridge,whichbrokeintohugeoscillationsandfelldownwhenthewindhititjustright.Ifyouhaveneverwitnessedthis,

watchthevideoonYouTube.Controltheoristshavedevelopedawonderfuldesigntrickcalled“negative

feedback.”Aportionofthesystem’soutputis“fedback”andsubtractedfromthesystem’scontrolinput,tobecometheactualamplifierinput.Thislittletrickhashugeimplications.Itresultsinasystemthatisself-

correcting.Thatmeans,ifanexternaldisturbancetriestochangethedesiredoutput,thesystemreactsandcompensates.Theoutputisautomaticallyrestoredtoitsdesiredstate!Negativefeedbackcontrolsystemsareusedtomakefurnacesthat

automaticallyrunlongerwhenitiscolder;motorsthatturnwithmoretorquewhenaconveyorbelthasaheavierload;andcarcruisecontrolsystemsthatmaintainaconstantvehiclespeedforuphillordownhillroads.InFigureB-2,tracethepathfromtheoutput(Vout),goingbackthroughRf,and

intotheinputlabeled“-“.Thisisnegativefeedback.TheoutputfeedsbackthroughRf.Rfstandsfor“feedbackresistor.”Itgoesintothe“-”input.Thispathiscalledthe“closedloop”.Theinput,Vin,alsogoestothe“-”op-ampinput.Thisjunctionisthepoint

wherethecurrentfromthefeedbackoutputcurrentissubtractedfromtheinputcurrent,withtheremaindergoingintothe“-”input.Here’showtheautomaticerrorcorrectionworks.Assumethatincreasedloadcurrentdemandontheop-ampmakesitsoutputvoltagedecrease.That’sabadthing.Wewantoutputvoltagetobereliablyconstant.ThisdecreasedoutputvoltagecauseslesscurrenttoflowthroughRf.LessRfcurrent,subtractedfromRin,leavesmorecurrenttogointothe“-”input.Morecurrententering“-”raisestheoutputvoltage.Outputerrorsarethusself-corrected.Aloweredoutputvoltagegetsautomaticallyraised.That’swhatnegativefeedbackcontrolsystemsdo.Furthermore,thenegativefeedbackalsoovercomestheproblemoftheinternal

gainoftheop-ampbeingtoohigh,intherangeof100,000.Whenweclosetheloop(inserttheRfpath),thevoltageandcurrentdifferencebetweenthe“+”and“-”inputsisautomaticallykeptsmallenoughtokeeptheoutputvoltageinauseablerange.Remember,it’sthedifferencebetweenthevoltageat“+”and“-”inputsthatismultipliedtoproducetheoutputvoltage.Here’showallthetrickscometogetherinthecircuitofFigureB-2.Theop-amp

turnsthenodeinthecircuitatits“-”inputintoa“virtualground.”Whatisavirtualground?Well,the“+”inputisattachedtotherealcircuit

ground.That’sthepointofreferenceforallourvoltagemeasurements,oftenthenegativeofabatteryorpowersupply.Duetonegativefeedbackandthehighinternalgainoftheop-amp,theop-ampcircuitself-balancesitselfsothatavoltageinthemicrovoltrangeispresentatthe“-”input.That’sallitneedstobe,sincethedifferentialgainissohuge(x100,000).Voltage-wise,thevoltageatthe“-”inputissocloseto0volts,itis“virtually”atgroundpotential.

However,eventhoughthevoltageatthe“-”op-ampinputispracticallyatgroundvoltage,itisnotadirectpathtotrueground.Remember,almostnocurrentcomesintothe“-”input.Ithas2millionohmsofresistance.Thebottomlineis:thejunctionwhereRin,Rf,and“-”meetiskeptat0volts,but

virtuallynocurrentgoesintothe“-”op-ampinput.VirtuallyallthecurrentgoingthroughRinwindsupgoingthroughRf.Now,theleftendofRinhas1voltappliedtoit.TherightendofRiniskeptat

virtualground,0volts,bynegativefeedbackcontroltheorymagic.So1voltisacrossRin.Ohm’sLawdemandsthattheresultingcurrentthroughRinisIin=Vin/Rin=1/1000=.001amps.

WesaidvirtuallyallthecurrentgoingthroughRinwindsupgoingthroughRf.Thatmeans.001ampsgoesthroughRf.Ohm’sLawdemandsthattheresultingvoltageacrossRfisVf=IfxRf=.001x10000=10volts.However,theconventionalcurrentflowisfromlefttoright.Currentmovestomorenegativeenergylevels.SincetheleftsideofRfis0volts,therightsidehas10voltslessenergypercoulombofcharge.So,Voutis-Vf,or-10volts.Youmayfindallthisbaffling,buttheresultisverysimple.WeknowthatIin

effectivelyequalsIf,sowecancallthemboth,“I.”BasicalgebratellsuswecansubstituteI=Vin/RinintoVout=-IxRf,togetVout=(-Vin/Rin)xRf.Re-arranging,wegetVout=-(Rf/Rin)xVin.

So,wehavecomefullcircle.Whenwebeganthisdiscussion,Ipointedoutthattheresultwouldbethissimple.ThecircuitgainissimplytheratioofRftoRin.InFigureB-2,thegainis-10.Hiddenbehindthissimplicityisaloadofcomplexity,asyouhaveseen.Now,let’sforgetaboutallthiscomplexity,andfocusonusingthesimplicity.

Let’staketheinvertingamplifierfromFigureB-2anddesignfromitaD/Aconverter.Seethedesigninthefigurebelow:

FIGUREB-3

FigureB-3,part(a),showstheD/Aconverterdesignedmoreabstractly.Fromit,

youcanseethemathematicalrelationshipofresistorvalues.Forwhatevervalueofresistorvalue,R,thatyouchoose,2RmustbearesistorvaluethatistwiceasbigasR,4Rmustbearesistorvalue4timesthesizeofR,etc.Basedonthatrelationship,IhavedesignedanactualD/Aconverterinpart(b),usingresistorvalues1kohms,2kohms,4kohms,and8kohms.“k”isshortfor“kilo”.“kilo”isametricmultiplierfor1thousand.So,8kohmsis8,000ohms.Theop-ampinFigureB-3isaweighted,summing(inverting)amplifier.Ifallthe

resistorvaluesinFigureB-3werethesame,itwouldbearegularsumming(inverting)amplifier.Theequationwouldbe:Vout=(V1+V2+V3+V4).Onceagain,wewitnessthesimplicityofop-ampdesign.Wanttoadd10

voltagestogether?Get11resistorsofequalvalueandbuildanop-ampsummingamplifierliketheoneabove.Adiscreteop-ampissmallerthanadime,andcostsaquarter.Resistorscostapenny.Nomathisinvolved.Ifyoudon’tlikethenegativesignintheoutputvoltage,invertthevoltagebacktopositive(doubleinversion:negativetimesnegativeequalspositive)byattachingthefollowingcircuittotheoutputofFigureB-3:

FIGUREB-4

Don’tworryaboutpayingmorethanaquarterifyouaddthiscircuit.Theop-ampIfoundfor25centscontains2op-ampsinone8-pinICpackage.However,theresistorsinFigureB-3arenotallthesamevalue.Theyare

“weighted,”inthesamewaythatmulti-bitbinarynumbersareweighted.Inabinarynumberlike1011,asyoumovefromtheright-mostbittotheleft-mostbit,thevalueofeachbitpositiondoubles.Representinga4-bitbinarynumberasABCD,theDbitisworthdecimal1,theCbitisworth2,theBbitisworth4,andtheAbitisworth8.Theresistorsintheop-ampcircuitinFigureB-3followthesamedoublingsequence.Thatshouldmakesense,becausewearetryingtoturna4-bitbinarynumberintoananalogvoltage.Theop-ampcircuitinFigureB-3,part(b),iseasytounderstand.Wecan

analyzeitasifitwerefourseparateop-ampcircuitsliketheoneinFigureB-2.Inotherwords,wecancoverupthe2k-,4k-,and8k-ohmresistors,andfindthegainfortheV1voltageinputtobe-1k/1k=-1.Then,wecancoverupthe1k-,4k-,and8k-ohmresistors,andfindthegainfortheV2voltageinputtobe-1k/2k=-.5.Wecancoverupthe1k-,2k-,and8k-ohmresistors,andfindthegainfortheV3

voltageinputtobe-1k/4k=-.25.Wecancoverupthe1k-,2k-,and4k-ohmresistors,andfindthegainfortheV4voltageinputtobe-1k/8k=-.125.SincetheV1,V2,V3,andV4inputsarealldigital,theywillbeeither0voltsor5

volts.Iftheyare5volts,theV1inputwilldeliver-1x5=-5voltatVout;theV2inputwilldeliver-.5x5=-2.5voltsatVout;theV3inputwilldeliver-.25x5=-1.25voltsatVout;andtheV4inputwilldeliver-.125x5=-.625voltsatVout.Alternatively,ifwedothesameanalysisonFigureB-3,part(a),wecomeup

withequationsforeachseparateinput’sgain:fortheV1input,Vout=-R/R=-1xV1;fortheV2input,Vout=-R/2R=-.5xV2;fortheV3input,Vout=-R/4R=-.25xV3;andfortheV4input,Vout=-R/8R=-.125xV4.Theeasypartisthatwecansimplyaddthesefourresultstogethertogetthe

actualbehavior—andtheequation—ofthiscircuit.Eachofthefourcircuitscontributesitsowncurrentthroughthefeedbackresistor.Thesecurrentssimplyaddtogether,thengetmultipliedbyRtocreateVout.So,addingtogetherthefourresultsfromtwoparagraphsback,weproducethis

equationforthisweighted,summingamplifier:Vout=-(V2+.5xV2+.25xV3+.125xV4),orVout=-(V1+V2/2+V3/4+V4/8).WecanseefromtheaboveresultsthattheleastsignificantbitinputmustbeappliedasV4,andthemostsignificantbitinputmustbeappliedasV1.Theanalysiswouldn’tbethissimpleformostcircuitsdesignedtoaddvoltages

together.Anyoneinputvoltagewouldinterferewiththeotherthreeinputvoltages.But,theop-amp’svirtualgroundatthe“-”inputpreventsthisinterference.(Applicationofthesuperpositiontheorem,whichIwon’tcover,coupledwithanunderstandingofthevirtualground,provesthis.)Let’smakeatablefromtheaboveresults.Wecancreatethetablefromthe

numericalresultsabove.Or,wecancreateitfromtheaboveequation,rememberingthatV1,V2,V3,andV4canonlybe0voltsor5volts.

FIGUREB-5

ThetableinFigureB-5clearlydemonstratestheD/Aconversionofthecircuitin

FigureB-3.ThevoltagesincolumnslabeledV1throughV4areallthepossiblebinaryinputvoltages,inascendingbinarynumericalorder.ThecircuitoutputvoltageisdisplayedinthecolumnlabeledVout.Thisanalogoutputvoltagestepsup(actuallydown,sinceitisnegative-going)by.625volts,foreachbinarycountincrement.Weoftendon’tcareaboutthenegativesignoftheoutputvoltage.And,we

usuallydon’tcareaboutthefactthattheanalogoutputvoltageisnottheexactnumericalvaluecorrespondingtothebinaryinputvalue.WeusuallyjustcarethattheanalogVout’sincreasesareproportionaltothedigitalVin’sincreases.However,ifthenegativepolarityandrelativeproportionalityofinputtooutput

areaproblem,youcanaddasecondop-ampcircuittotheoutputofthefirst:

FIGUREB-6Ihavedescribedthissolution,before.But,thistime,thegainofthesecondop-

amp,ontheright,istimesnegative1.6(x-1.6).Thisoutputinvertsthenegativevaluesofthefirstop-ampbacktopositive.Itsgain,x-1.6,createsanoutputvoltagethatisthedecimalanalogequivalentofthebinaryinputvoltage.ThelastcolumninthetableinFigureB-5displaystheanalogoutputvoltage,

Vout,fromFigureB-6.Forexample,inputvoltagesofV1=5v,V2=0v,V3=0v,andV4=5vcorrespondtoaninputof1001,inbinarylogic.Binary1001equalsdecimal9.NinevoltscomesoutofVoutinFigureB-6,andislistedinthetableofFigureB-5.I’llmentionafewdrawbacksinthisD/Aconverterdesign.First,you’llnotice

that,inFigureB-5,Idon’tlistoutputvoltagesabove12volts.ThecircuitinFigureB-6can’treach15volts.Maximumop-ampoutputvoltagesarelessthantheirpowersupplyvoltages.Mydesign,above,used+15voltsand-15voltspowersupplies.Specificop-ampspecificationsheetswouldtelladesignerhowcloseto15voltstheoutputcanreach.Onesolutiontothisproblemistouse+18voltsand-18voltspowersupplies.Then,ouroutputvoltagescouldreach15volts.Second,theresolutionoftheabovedesignisnotverygood.D/Aresolutionis

onedividedbythemaximumbinarycount.Inourexample,themaximumbinarycountis1111(decimal15).So,theresolutionis1/15=.066667.So,ifourmaximumoutputvoltageis15volts,theD/Aconverter’soutputstepsareall1voltapart.That’sbecause15times.066667equals1volt.Fromthiscircuit,wecan’tproduceoutputvoltagesof3.3volts,or3.7volts.Theclosestwecangetisthenearestresolutionvaluesof3voltsor4volts.ThiswouldnotsoundverygoodifweweretryingtouseD/Aconversionto

reproducesounds.Weneedthosevoltagesbetween3voltsand4volts.Thesolutionistocreateacircuitwithbetterresolution.ThatmeansourD/A

circuitmustaccommodatemorebinarybits.TheabovecircuitwasgoodtohelpyouunderstandhowD/Aconversionworks,becauseitisrelativelysimple.However,itdoesnotscalewell.Toaccommodatemorebitswiththisdesign,we

mustkeepdoublingthesizeoftheresistors.But,ifwewanttocreatea12-bitwideA/Dconverter(resolution=.00024)fromthiscircuit,someoftheresistorvalueswouldbetoobig.Op-ampsdon’tworkwellwithresistorvaluesthataretoobig.Themagic

propertiesoftheop-ampbecomenegated,andtheaccuracygetsdestroyed.Op-ampsalsodon’tworkwellwithresistorvaluesthataresmall.Thoseresistorsdrawtoomuchpower,andgethot.D/AconversionbasedupontheR/2Rdesignwouldbebettertoaccommodate

improvedresolution.Thatdesignalsobuildsaroundanop-amp,butusesresistorsthatdon’tspreadoverawiderange.It’sjusthardertoexplain,requiringfromthestudentaknowledgeofThevenin’stheorem.AtotallydifferentD/Aconversiondesignisonebaseduponfilteredpulse-widthmodulation.Iwon’tdiscussthese,here.Third,realizethatourop-ampdesignrequiresaccurateresistors.Precisionis

thetermweusetodescribehowcloseoutcomponentistoitslistedvalue.Also,the5voltsand0voltsinputvaluesneedtobeasaccurateaspossible.

Thisisnotassimpleasitsounds.Digitalspecificationsthatdefineavalidhighandavalidlowvoltagecanbesloppy.Forbetteraccuracy,voltageregulatorcircuitscanbeaddedtokeepvoltagescloseto5volts.Pleasedon’tgettoohunguponthethreedrawbacks.ThesolutionsIpointed

outaresimpletoimplement.Don’tmissthepointofthisappendix:digital-to-analogconversiongreatlyextendsthepowerofmicroprocessors.Withit,there’s

almostnoendtothenumberofthingsthemicroprocessorcancontrol:robots,cars,assemblylines,3Dprinters.Thelistgoesonandon.

APPENDIXCA/DCONVERSION

InthisbonuscircuitIwilldescribehowanalog-to-digitalconversionworks.But,

inordertodothat,Iwillfirstexplaincomparators.Acomparatorisanintegratedcircuitthatcomparestwoanalogvoltages,VaandVb.IfVaisgreaterthanVb,thecomparator’soutputbecomesahighvoltage.IfVaislessthanVb,thecomparator’soutputbecomesalowvoltage.Thus,acomparatorcomparesanaloginputvoltages,butproducesdigital(binary,2-state)outputvoltages.Refertothepicture,below:

FIGUREC-1

LookingatFigureC-1,part(a),wefindthecircuitdiagramforacomparator.

NoticethattheVaanalogvoltageinputentersthe“+”input,andtheVbanaloginputvoltageentersthe“-”input.Noticealsothattwopowersupplyvoltagesareprovided:+5voltsand-5volts.Wecandescribethecomparator’sbehaviorintermsofsignedmathematical

subtraction.WesaythatthecomparatorsubtractsVaminusVb.Iftheresultisapositivenumber,theoutputvoltagebecomesthesameasthe+5voltspowersupply.Iftheresultisanegativenumber,theoutputvoltagebecomesthesameasthe-5voltspowersupply.ThetableinFigureC-1,part(b),givesafewexamplestohelpyouseethis

moreclearly.Rememberfrommathclassthat-2isgreaterthan-3.Alsorememberthat-(-2)=+2.Inrowone,+3-(+2)=+1,whichispositive,sotheoutputgoesto+5volts.Inrowtwo,+2-(+3)=-1,whichisnegative,sotheoutputgoesto-5volts.Inrowthree,-3-(-2)=-1,whichisnegative,sotheoutputgoesto-5volts.

Inrowthree,-2-(-3)=+1,whichispositive,sotheoutputgoesto5volts.Thecomparatorbuildsuponsomethingyoualreadyknow.For,thecomparator

isanop-ampwithoutthenegativefeedbackconnection!Thatbeingsaid,whenshoppingforacomparator,don’tbuyanop-amp.Buyacomponentlabeled,“comparator.”Thecomparatorhasbeenoptimizedtoswitchfromahighoutputvoltagetoalowoutputvoltage(orvice-versa)morequicklythananop-ampusedwithoutfeedback.Ifyouremember,wesaidthatanop-ampisadifferenceamplifier.Itsubtracts

the“-”inputfromthe“+”input.Thenitamplifies(multiplies)thatdifferencebyaridiculouslyhighinternalgainoftimes100,000.Thus,evenadifferenceofgreaterthan50microvolts(.000050volts)wouldcausetheoutputvoltageoftheabovecircuittoreachits+5voltsor-5voltslimitation.Well,thecomparatortakesadvantageofthatproblem.Itdoesn’t“cure”it,by

addingnegativefeedback.Ifthevoltageonthe“-”inputisjustasmidgenmorethanthevoltageonthe“+”input,theoutputvoltagegoestoaslowasitcan,whichisinthiscaseisthe-5voltslimitationofitsnegativepowersupply.Ifthevoltageonthe“-”inputisjustasmidgenlessthanthevoltageonthe“+”input,theoutputvoltagegoestoashighasitcan,whichisinthiscaseisthe+5voltslimitationofitspositivepowersupply.(Rememberfrompreviousdiscussionsthat,duetointernallosses,outputsneverquitereachallthewayto+5voltsor-5volts.)Now,thetwopowersupplyvoltagesonthecomparatordon’thavetobe+5

voltsand-5volts.Theycanbe,forexample,+15voltsand-15volts,likeweusedforourpreviousop-ampcircuits.Somecomparatorsareoptimizedtoworkatpowersuppliesof+5voltsand0volts.Acomparatorthatonlyhastwooutputvoltages—+5voltsand0volts—

interfacesperfectlywithdigitalelectronicscircuits.Suchacomponentmakesaperfectconnectionbetweentheworldofanalogonitsinputsandtheworldofdigitalonitsoutput.WewillusesuchadeviceinourdesignofanA/Dconverter.ThepicturebelowshowsonedesignforanA/Dconverter:

FIGUREC-2

Thisisonedesign,chosenfromseveral,ofanA/Dconverter.Ihavechosen

thisoneforthesamereasonIhavechosenmanyofthepreviousdesignsinthisbook:itbuildsuponsub-circuitsyoualreadyknow.Onegoalfromthestarthasbeenforyoutoexperiencehowdigitalelectronicsandmicroprocessorcircuitsbuildgraduallyfromsimplicitytocomplexity.Eachcircuitisbuiltfrombuildingblocksofsimplercircuits.Buildingblockscontainsimplerbuildingblocks,whichcontainsimplerbuildingblocks,whichcontainsimplerblocks,etc.WhenyoulookatFigureC-2,youfindsubsystemsthatyoualreadyknow.See

Figure16-4toreviewcounters;FigureB-6toreviewD/Aconverters;andFigureC-1toreviewcomparators.SeeFigure7-13toreviewDlatchregisters.Hereweusearegistermadeofflip-flopsinsteadoflatches.But,youknowflip-flopsfromFigures15-1and15-2.Ourregisterhastri-stateoutputs,totakepartinamicroprocessorbussystem.Youknowtri-stateoutputsfromFigures7-19and7-20.Finally,refertoFigureB-1toseehowthisA/Dconvertercommunicateswithamicroprocessor-basedsystem,throughinputandoutputlinesInt,Convert,

Enable,aswellasthe8dataoutputlinesfromtheflip-flopregister.Asanoverview,considerthatthepurposeofananalog-to-digitalconverteristo

changeananalogvoltageintoamulti-bitdigitalvoltage.TheanalogvoltageentersthecomparatorasVin,onthelowerleftsideofFigureC-2.Thedigitalvoltagecomesouttheflip-flopregisterasD7throughD0,onthelowerrightsideofFigureC-2.Noticethatthepowersuppliesonthecomparatorare+5voltsand0volts.AsI

describedearlier,thislimitsthecomparatoroutputto+5voltsor0volts,perfectforthedigitallogiccircuitsitcontrols.Forsimplicity,wewillassumeVin’sanalograngeis0voltsthrough+5volts,too.Justbeawarethatthereareotheroptionsavailablethatallowforarangeofinputsfromnegativethroughpositivevoltages,toaccommodatesinewaveinputvoltages.(Onesolution:Wecanshiftinputvoltagesup,outofthenegative,withanop-ampsummingcircuit.)Next,lookatFigureB-1toseehowthemicroprocessorconnectsto,

communicateswith,andcontrolstheA/Dconverter.FocusontheConvert,Enable,andIntlines.Here’swhatthemicroprocessordoes:1.)PulsestheConvertlinehigh(thenbacklow),toclearthecounterto00000000andstarttheconversionprocess.2.)InternallyenablestheA/Dconversionhardwareinterruptrecognitioncircuitry,sothemicroprocessorcanrespondtotheA/Dconverter’sinterruptrequest(Int).3.)Doesotherstuff,whileawaitingtheA/Dconverter’sinterrupt.4.)RespondstotheA/Dconverter’sinterruptbyfirstdisablingtheA/Dconversionhardwareinterruptrecognitioncircuitry,sothatthemicroprocessortemporarilyignoresfurtherA/Dinterruptrequests.5.)AndsecondbyraisingtheEnablelinehigh,toreadtheD7throughD0linesoutofthe8-bitflip-flopregister.Toreiterate,theD7throughD0linesoutoftheflip-flopregisterarethedigitalequivalentoftheanaloginputvoltage,Vin.Step1,above,clearsthecountertoanoutputof00000000.TheD/Aconverter

receivesthisbinaryinputandconvertsittoananalogoutputvoltageof0volts.Becarefultoavoidconfusion,here.Yes,thisisaD/Aconverter,buriedintheheartoftheA/Dconverter.Confusioncanresultifyourbraindoesn’tkeeptrackofmyreferencestoA/DversusD/A.The0voltsoutoftheD/Aconverterfeedsintothe“-”inputofthecomparator.

Since0voltsislessthanthepositivevoltageonthecomparator’s“+”input,thecomparator’soutputbecomes+5volts.That+5voltsallowsthecountertocountbyraisingits“CtEn”inputhigh.Thatsame+5voltsfromthecomparatoralsoturnsofftheinterruptrequesttothemicroprocessorsinceourdesignrequiresalow(0volts)signaltorequestaninterruptontheIntline.(SignifiedbythebarovertheIntlabelandthebubbleonthemicroprocessorinput.)

Thecountercountstheexternalclockpulses,perhapsthesameclockthatrunsthemicroprocessor.Asthebinarycountrises,thevoltageoutoftheD/Aconverteralsorises.Itkeepsrisingonthecomparator’s“-”input,asitstrivestoreachtheinputvoltageonthecomparator’s“+”input.Whenthevoltageonthecomparator’s“-”inputfinallyexceedsthevoltageon

thecomparator’s“+”inputbyjustonestepupoutoftheD/Aconverter,everythingchanges.Theoutputofthecomparatorgoesto0volts.That0voltsstopsthecounterfromcounting,whilemaintainingthelastbinarycountvalue.Thatcountvalueisprecioustous.Itisthebinaryrepresentationofthevoltage

wearedigitizing,theinputvoltageVin.Howdoweknowthis?BecauseitisthebinaryvaluethatcausedtheD/AconvertertoproduceaVoutoutputvoltageequaltotheA/Dconverter’sVininputvoltage.Itmustbeso,becausethecomparatorannouncedit,whenitsoutputwentto0volts.Thecomparator’soutputgoingto0voltsdoesmore.Itsfallingedgestoresour

preciouscountfromthecounterintotheflip-flopregister.It’sstoredthereuntilthemicroprocessorisreadytoreaditfromthedatabus.Thecomparator’soutputgoingto0voltsdoesathirdthing.ItisalsotheNOT

Intsignalthat,whenlow,requestsaninterruptfromthemicroprocessor.Remember,themicroprocessorhasbeendoingotherchores,whilewaitingfortheNOTIntlinetogolow.Finally,themicroprocessorrespondstotheinterruptbyrunninginterrupt

processingcodethatreadsthetri-stateoutputsoftheflip-flopregister.ItdoesthisbygeneratingahighlogiclevelvoltageonEnable,activatingtheflip-flopregister’sOE(outputenable)line.ThemicroprocessornowhastheresultsoftheA/Dconversioninits

accumulator.TheNOTIntlineisstillactive(Low),butthat’sOK.Perstep4,above,themicroprocessorisignoringit.Themicroprocessorwon’tpayattentiontoitagainuntilafteritstartsthenextconversion,whenitpullstheConvertlinehigh,whichdeactivates(raiseshigh)theNOTIntlineandmakestheinterruptrequestgoaway.WhatdoesthisA/Dconversionvalue,nowinthemicroprocessor’saccumulator,

looklike?Let’sfigureitoutforourselves.Let’sassumethattheA/Dconverter’sinternalD/Aconverterworksonanoutputrangeof0to5volts.Fromthiswedeterminethattheresolutionofthe8-bitD/Aconverteris1/255thof5volts,or.0196volts.Fromthisinformation,wecancalculatetheexpectedvaluethatthe

microprocessor’saccumulatorholds.Let’ssaytheanaloginputvoltagefromthethermocoupleis+1volt.AfterA/Dconversion,whatvalueshouldthemicroprocessorhaveread?Well,witharesolutionof.0196volts,theleastsignificantbitontheD/A’sinput

isworth.0196volts.Thesecond-leastmostsignificantbitisworthtwice.0196,the

thirdmostsignificantbitisworthfourtimes.0196,etc.Fromthisinformation,wecanmakethefirsttworowsofthefollowingchart:

FIGUREC-3

Thebottomrowofthechartisouranswer.+1voltfromthethermocoupleis

readas00110100fromtheA/Dconverter.Toarriveatthatanswer,Isimplyusedthetrial-and-errortechniqueweusedinchapterninetosolvedecimal-to-binaryconversionproblems.Proceedingfromlefttoright,Iputa1underthefirstnumberthatislessthanthenumberweareconvertingtobinary,whichinthiscaseis+1volt..6272isthatnumber.Next,stillproceedingfromlefttoright,Iputa1underanyothernumberswhich,whenaddedtoourrunningtallyofnumberschosenfromrow2,justexceeds+1volt.Usingthistechnique,Ifoundthat.6272+.3136+.0784=1.0192.That’sthefirst

valuehigherthan+1volt.With1’sunderthosethreevalues,and0’sundertheothers,00110100isthefirstcountthatcausesthecomparatortotripwhenanalog+1voltenterstheA/Dconverterforconversion.Indecimal,00110100isequivalentto52.Whenwemultiply52times.0196weget1.0192,whichprovesoursolutiontobecorrect.So,themicroprocessorreads+1voltas00110100.Whatdoestheprogrammer

dowiththis?InourdesignshowninFigureB-1,weseethatthe+1voltscomesfromatransducercalledathermocouple.Theprogrammermustconsultthespecificationsonthethermocoupletodeterminehowvoltagescorrespondtotemperatures.Specificvoltagerangescorrespondtospecifictemperatureranges.Theprogrammer’scodecantestthebinaryvaluefromtheA/Dconvertertodeterminewhichrangeofvoltages,andhencewhichrangeoftemperatures,thebinaryvaluefallsin.Forhighertemperatureranges,theprogrammer’scodecansendproportionallyhighervaluestotheD/Aconverterthatcontrolsthecoolingfan,makingitspinfaster.Ihopeyouenjoyedexploringhowthiscircuitworks.Thereissomuchtoit,and

yetanunderstandingofitbuildsfromthingswehavepreviouslycovered.Youcanthinkitthrough,workbackwards,evendrilldowntotheleveloftransistorsandelectronstoenjoythecompletepictureofhowthiscircuitworks,inallitsgloriousdetail.