Thursday 26 October 2017

Divider Krets Binære Alternativer


Kretser for binær aritmetikk Innledning Binær aritmetikk er et kombinatorisk problem. Det kan virke trivialt å bruke metodene vi allerede har sett for å designe kombinatoriske kretser for å skaffe kretser for binær aritmetikk. Det er imidlertid et problem. Det viser seg at den vanlige måten å skape slike kretser ofte vil bruke opp for mange porte. Vi må søke etter forskjellige måter. Binær heltalltilsetning For binær heltalltillegg kan vi ofre våre krav på kretsdybde som vi tidligere hadde, for å kunne bruke færre porter. Den resulterende kretsen er av en type som vi kaller iterativ kombinatorisk krets. ved at den inneholder flere kopier av et enkelt element. For binær tillegg blir det enkle elementet kalt en full adder. En full adder er en kombinatorisk krets (eller faktisk to kombinatoriske kretser) med tre innganger og to utganger. Funksjonen er å legge til to binære sifre pluss en bære fra forrige posisjon, og gi et to-bits resultat, normal utgang og bære til neste posisjon. Her er sanntabellen for en full adder: Her har vi brukt variable navn x og y for inngangene, c-in for innføring, s for sumoutgang og c-ut for utføring. En full adder kan trivielt bygges ved hjelp av våre vanlige designmetoder for kombinatoriske kretser. Her er det resulterende kretsdiagrammet: Det neste trinnet er å kombinere en serie av slike fulle adders til en krets som kan legge til (si) to 8-biters positive tall. Vi gjør dette ved å knytte utførelsen fra en full adder til innføringen av full adder umiddelbart til venstre. Den høyeste fulladderen tar en 0 på sin innføring. Her har vi brukt abonnement i for den i-binære posisjonen. Som du kan se er dybden av denne kretsen ikke lenger to, men betydelig større. Faktisk bestemmes utgangen og bære fra posisjon 7 delvis av inngangene til posisjon 0. Signalet må krysse alle de fulle adders, med en tilsvarende forsinkelse som et resultat. Det finnes mellomliggende løsninger mellom de to ekstreme som vi har sett så langt (det vil si en kombinatorisk krets for hele (si) 32-bits adder, og en iterativ kombinatorisk krets hvis element er enbit adders bygget som ordinære kombinatoriske kretser). Vi kan for eksempel bygge en 8-bit adder som en vanlig to-nivå kombinatorisk krets og bygge en 32-bit adder fra fire slike 8-bit adders. En 8-bit adder kan trivielt bygges fra 65536 (2 16) og - gates, og en gigantisk 65536-inngang eller - gate. En annen mellomliggende løsning består i å bygge såkalte bæreaccelerator-kretser. Fylles ut. Binær subtraksjon Vår binære adder kan allerede håndtere negative tall som angitt i avsnittet om binær aritmetikk. Men vi har ikke diskutert hvordan vi kan få det til å håndtere subtraksjon. For å se hvordan dette kan gjøres, merk det for å beregne uttrykket x - y. vi kan beregne uttrykket x - y i stedet. Vi vet fra delen om binær aritmetikk hvordan å negere et tall ved å invertere alle bitene og legge til 1. Dermed kan vi beregne uttrykket som x inv (y) 1. Det er nok å invertere alle inngangene til den andre operanden før de når adderen, men hvordan legger vi til 1. Det synes å kreve en annen adder bare for det. Heldigvis har vi et ubrukt innbilsignal til posisjon 0 som vi kan bruke. Å gi en 1 på dette innspillet i kraft legger til en til resultatet. Den komplette kretsen med tillegg og subtraksjon ser slik ut: Binary multiplikasjon og divisjon Binær multiplikasjon er enda vanskeligere enn binær tillegg. Det er ingen god iterativ kombinatorisk krets tilgjengelig, så vi må bruke enda tyngre artilleri. Løsningen skal være å bruke en sekvensiell krets som beregner ett tillegg for hver klokkepuls. Vi vil diskutere dette mer i et senere avsnitt, siden det trenger mecanism vi ikke har diskutert ennå. 4-BIT BINARY DIVIDER Transcript av 4-BIT BINARY DIVIDER I dette prosjektet ønsker vi å designe en krets som implementerer den tradisjonelle langvarige divisjonen. Gitt to usignerte n-bit tall A og B, ønsker vi å designe en krets som produserer to n-bit-utganger Q og R, hvor Q er kvoten AB og R er resten. En algoritme for divisjon er vist på koden nederst. Dette kan implementeres ved å skifte sifrene i A til venstre, ett siffer om gangen, til et skiftregister R. Etter hver skiftoperasjon sammenligner vi R med B. Hvis RB er en 1 plassert i riktig bitposisjon i kvotienten og B subtraheres fra R. Ellers plasseres en 0 bit i kvoten. Notasjonen RA brukes til å representere et 2n-bits skiftregister som er dannet ved å bruke R som de venstre n-bitene og A som de høyeste n-bitene. 4-BIT BINARY DIVIDER I. INTRODUKSJON En algoritme er en veldefinert sekvens av trinn som produserer en ønsket sekvens av handlinger som svar på en gitt sekvens av innganger. ASM (Algoritmic State Machine) er nyttig i å designe synkron sekvensielt nettverk ved hjelp av flytskjema, som ligner de som brukes i dataprogrammering. Det er veldig nyttig i utformingen av FSM (Finite State Machine). Design med ASM gjør det mulig for folk å håndtere mer komplekst system. I dag brukes Feltprogrammerbare Gate Arrays (FPGAs) ofte for komplekse system-on-chip-design (SoC). De er orientert for bilkontroll, online databehandling og et bredt spekter av beregningsoppgaver. Divisjon operasjon brukes ofte i disse oppgavene, spesielt for å beregne koordinatene til en gjenstand eller et punkt på et rutenett i sanntidskala. Fordi resultatet av delingsoperasjonen i mange tilfeller er en omtrentlig verdi, kan dette påvirke løsningen og føre til de etterfølgende feilresultatene. ASM-diagram for kontrollkrets Et ASM-diagram som bare viser styresignalene som kreves for deleren, er gitt på venstre diagram. I tilstand S3 bestemmer verdien av Cout hvorvidt summen av utgangen av adderen er lastet inn i R. Skiftaktiveringen på Q er hevdet i tilstand S3. Vi trenger ikke å spesifisere om 1 eller 0 er lastet inn i Q, fordi Cout er koblet til Qs seriell inngang i datapatakretsen. Datapath Circuit for Divider Vi trenger n-bit skiftregister som skifter til høyre for venstre for A, R og Q. Det kreves et n-bit register for B, og en subtraktor er nødvendig for å produsere R B. Vi kan bruke en adder-modul der innføringen er satt til 1 og B er komplementert. Utførelsen, Cout av denne modulen har verdien 1 hvis tilstanden R B er sann. Derfor kan utføringen kobles til den serielle inngangen til skiftregisteret som holder Q, slik at den blir forskjøvet til Q i tilstand S3. Siden R er lastet med 0 i tilstand S1 og fra utgangene til addereren i tilstand S3, er det nødvendig med en multiplekser for parallelle datainngangene på R. Datapatakretsen er vist ovenfor. AS ASM CHART SCOPE OG BEGRENSNINGER Vårt prosjekt handler om en 4-bit binær divider. Kretsen utfører bare deling av alle 4-bits binære tall. Tillegg, subtraksjon og multiplikasjon av binære tall kan ikke utføres i dette prosjektet eller kretsen. Maksimumsifferet som kan utføres er 1111, som er 15 i desimalverdi og minimumsnummeret som skal utføres er 0000, som er 0 i desimalverdi. I uttrykket A B Q, hvor A er utbyttet, er B divisoren og Q er kvoten, vi begrenser vår prosjekts operasjon der A, utbytte alltid er større enn B, divisor AgtB. Flere presentasjoner av Gil FilomenoBinary Math Circuits Ikke bare sitte der. Bygg noe Lær å analysere digitale kretser krever mye studier og praksis. Vanligvis praktiserer elevene seg ved å arbeide gjennom mange prøveproblemer og sjekke svarene deres mot de som er gitt av læreboken eller instruktøren. Mens dette er bra, er det en mye bedre måte. Du vil lære mye mer ved å faktisk bygge og analysere ekte kretser. la testutstyret gi 8220answers i stedet for en bok eller en annen person. For vellykkede kretsoppbyggingsøvelser, følg disse trinnene: Tegn skjematisk diagram for den digitale kretsen som skal analyseres. Forsiktig bygge denne kretsen på et brettbrett eller annet passende medium. Kontroller nøyaktigheten av kretskonstruksjonen, etter hver ledning til hvert tilkoblingspunkt, og verifiser disse elementene en-for-en på diagrammet. Analyser kretsen, bestemmer alle utgangslogiske tilstander for gitt inngangsforhold. Mål forsiktig de logiske tilstandene for å bekrefte nøyaktigheten av analysen din. Hvis det er noen feil, må du nøye sjekke kretsens konstruksjon mot diagrammet, og analyser deretter kretsen forsiktig og måler den igjen. Sørg alltid for at strømforsyningsspenningsnivåene er innenfor spesifikasjon for logikkretsene du planlegger å bruke. Hvis TTL, må strømforsyningen være en 5 volt regulert tilførsel, justert til en verdi så nær 5,0 volt likestrøm som mulig. En måte du kan spare tid på og redusere muligheten for feil, er å begynne med en veldig enkel krets og gradvis legge til komponenter for å øke kompleksiteten etter hver analyse, i stedet for å bygge en helt ny krets for hvert treningsproblem. En annen tidsbesparende teknikk er å gjenbruke de samme komponentene i en rekke forskjellige kretskonfigurasjoner. På denne måten må du ikke måle noen komponentverdi mer enn én gang. La elektronene selv gi deg svar på dine egne praksisproblemer. Det har vært min erfaring at studentene krever mye øvelse med kretsanalyse for å bli dyktig. Til dette formål gir lærerne vanligvis elevene sine mange praktiseringsproblemer for å jobbe gjennom, og gi svar til elevene for å kontrollere arbeidet sitt mot. Mens denne tilnærmingen gjør elevene dyktige i kretsteori, klarer det ikke å utdanne dem fullt ut. Studentene trenger ikke bare matematisk praksis. De trenger også ekte, praktisk praksis i byggekretser og bruk av testutstyr. Så foreslår jeg følgende alternativ tilnærming: Studentene skal bygge egne praksisproblemer med ekte komponenter, og forsøke å forutsi de forskjellige logiske tilstandene. På denne måten kommer den digitale teorien til livs, og studentene får praktisk ferdighet de ikke ville få bare ved å løse boolske ligninger eller forenkle Karnaugh kart. En annen grunn til å følge denne metoden er å lære studentens vitenskapelig metode. prosessen med å teste en hypotese (i dette tilfellet logiske tilstandsprognoser) ved å utføre et ekte eksperiment. Studentene skal også utvikle virkelige feilsøkingsferdigheter da de noen ganger gjør kretskonstruksjonsfeil. Tilbring litt tid med klassen din for å gjennomgå noen av reglene for byggekretser før de begynner. Diskuter disse problemene med elevene på samme sokratiske måte som du normalt vil diskutere regnearkspørsmålene, i stedet for å bare fortelle dem hva de burde og ikke burde gjøre. Jeg slutter aldri å bli overrasket over hvor dårlige elevene forstår instruksjonene når de presenteres i et typisk foredrag (instruktørmonolog). Jeg anbefaler på det sterkeste CMOS logikk kretser for hjemmeeksperimenter, der elevene kanskje ikke har tilgang til en 5 volt regulert strømforsyning. Moderne CMOS-kretser er langt mer robuste med hensyn til statisk utladning enn de første CMOS-kretsene, så frykt for at studentene skader disse enhetene ved å ikke ha et riktig laboratorium satt opp hjemme, er stort sett ubegrunnede. Et notat til de instruktørene som kan klage på bortkastet tid som kreves for å få elevene til å bygge virkelige kretser i stedet for bare å matematisk analysere teoretiske kretser: Hva er formålet med elevene å ta kurset ditt Hvis elevene dine skal jobbe med ekte kretser, bør de lære på ekte kretser når det er mulig. Hvis målet ditt er å utdanne teoretiske fysikere, så hold deg sammen med abstrakt analyse, for all del. Men de fleste av oss planlegger at våre studenter skal gjøre noe i den virkelige verden med utdanningen vi gir dem. Den bortkastede tid brukt til å bygge ekte kretser, vil betale store utbytter når det kommer tid for dem å bruke sin kunnskap til praktiske problemer. Videre, når elevene bygger sine egne praksisproblemer, lærer de hvordan de skal utføre primær forskning. og dermed gi dem mulighet til å fortsette sin elektroelektronikkutdanning autonomt. I de fleste fagområder er realistiske eksperimenter mye vanskeligere og dyrere å sette opp enn elektriske kretser. Kjernefysikk, biologi, geologi og kjemi professorer vil bare elske å kunne få sine studenter til å bruke avansert matematikk til ekte eksperimenter som ikke utgjør noen sikkerhetsfare og koster mindre enn en lærebok. De kan ikke, men du kan. Utnytte bekvemmeligheten i din vitenskap, og få de studentene dine til å utøve sin matte på mange ekte kretser. Få elevene dine til å forklare deres designprosess for deg, trinnvis. Dette kretskortet er lett nok til å oppdage i sider i en lærebok, så vær ikke overrasket om elevene bare kopierer det de ser uten å prøve å forstå hvordan det fungerer. Å fjerne de to kaskade Ex-OR-portene fra det boolske uttrykket er litt vanskelig, men ikke umulig. Påminn studentene om nødvendig at den boolske ekvivalenten for Ex-OR-funksjonen er AB AB, og at Ex-NOR-funksjonen er AB A B. Forklar forskjellen mellom en rippeladder og en blikkprøveadder. Hva betyr begrepet krusning i denne sammenhengen Hvorfor er krusning muligens en dårlig ting for en digital adder krets Ripple adders oppdatere sine utgangsbiter en om gangen i stedet for samtidig. Dette fører til falske, forbigående utgangstilstander. Rippel-effekten sett i enkle binære adderkretser er ikke begrenset til adders Noen grå-til-binære kodeomformere og motkretser viser også rippel, med samme skadelige effekter. Sammenligne følgende to kretser, den første er en digital adder og den andre er en analog sommer: Disse to kretsene utfører samme matematiske funksjon, men de manerer de utfører denne funksjonen, er ganske forskjellige. Sammenlign og kontrast digital adder og analoge sommerkretsene som vises her, med henvisning til fordeler eller ulemper ved hver. Jeg vil ikke direkte gi bort svar her, men jeg vil liste opp noen få kriterier du kanskje vil bruke til å sammenligne og kontrastere: Oppløsning Nøyaktighet Hastighetskostnad Dette spørsmålet er ikke spesielt spesifikt for addersummer-kretser, slik det først kan vises. Den grunnleggende sammenligningen blir trukket i dette spørsmålet er mellom digital og analog. Dette er et viktig konsept for studenter å forstå, da begge har sine roller i moderne elektronikk. En vanlig feil er at digital er bedre under alle omstendigheter, men sannheten er at både digital og analog har sine respektive styrker og begrensninger. Forklar formålet med en komparator IC som f. eks. 74LS85. Hvilken funksjon, eller funksjoner, utfører jeg? Jeg vil la deg undersøke databladet for en storhetssammenligning på egen hånd for å oppdage svaret (e). Vær sikker på å spørre elevene hvor de fikk sin informasjon. Det er veldig enkelt å hente dataark på nettet (over internett), noe som gjør det praktisk å tilordne korte forskningsprosjekter som dette. Undersøk dataarket for en integrert aritmetisk logisk enhet som 74AS181, og avgjøre hvordan dens ulike driftsformer (tillegg, subtraksjon, sammenligning) velges. Dette er et lite forskningsprosjekt jeg forlater deg. Sørg for å ta med en kopi av IC-dataark til diskusjon. Oppfølgingsspørsmål: En interessant egenskap ved 74AS181 er at den gir 8220aritmetiske funksjoner, samt logiske funksjoner. Disse to modi kan også refereres til som binære og boolske, henholdsvis. Forklar hva som skiller disse to modusene fra hverandre, og hvorfor de er klassifisert annerledes. Selv om 74181 ALU er en noe datert IC (faktisk er noen versjoner foreldet etter denne skrivingen - 2005), står det som et enkelt eksempel for elevene å lære av. En krets som dette gir et godt eksempel på integrasjonskraften, i motsetning til å bygge en lignende logisk funksjon fra individuelle porte (for ikke å nevne diskrete transistorer). Oppfølgingsspørsmålet gir et poeng mange studenter er forvirret på: skillet mellom binære (numeriske) og boolske (bitvise) operasjoner. Binær er et stedvektet tallsystem. pleide å symbolisere ekte tall ved å bruke bare to stater per sted. Boolsk er et talesystem kjennetegnet ved å ha kun to mulige verdier. Siden både binære og boolske har noe å gjøre med toverdige mengder, tror mange studenter at de to er utvekslingsmessige vilkår og begreper. Imidlertid er de ikke, og en undersøkelse av de to driftsmodusene til denne ALU fremhever skillet. Et aritmetisk triks som ofte brukes når man arbeider med metriske systemet, er multiplikasjon-for-ti og divisjon-for-ti via skifting av desimaltegnet. Et lignende knep kan brukes på binære tall, med lignende resultater. Bestem hvilken form for multiplikasjon eller deling som oppnås når binærpunktet skiftes i et binært tall. Undersøk dataarket for en aritmetisk logisk enhet (ALU) krets for å se om og hvordan denne funksjonen er implementert. Skifting av binærpunktet resulterer i enten multiplikasjon eller divisjon med to. Et multiplikativt skifte utføres av 74AS181 ALU ved aritmetisk funksjonsvalg 1100 2 (C 16). Utfordringsspørsmål: Forklar hvordan multiplikasjon eller divisjon med hvilken som helst binær mengde kan oppnås ved å bruke suksessive bitskift og tillegg. Du kan for eksempel vise hvilke trinn du kan ta for å multiplisere alle binære tall med fem (101 2), ved hjelp av bare binærpunktskifting og tillegg (er). Mange aritmetiske triks som eksisterer i desimaltallsystemet, gjelder også, med liten revisjon, i det binære tallsystemet. Dette er en populær, og brukes ofte av skarpe dataprogrammerere til å utføre hurtig multiplikasjon av to eller splitt-for-to operasjoner når konvensjonelle multiplikasjonskommandoer tar mer tid. Forklar betydningen av de digitale linjene A, B, F og S i det følgende skjematiske diagrammet:

No comments:

Post a Comment