Kretsar för binär aritmetik Inledning Binär aritmetik är ett kombinatoriskt problem. Det kan tyckas trivialt att använda de metoder som vi redan har sett för att designa kombinatoriska kretsar för att erhålla kretsar för binär aritmetik. Det finns emellertid ett problem. Det visar sig att det normala sättet att skapa sådana kretsar ofta skulle använda alltför många portar. Vi måste söka efter olika sätt. Binär heltalstillägg För binärt heltalstillägg kan vi offra vårt krav på kretsdjup som vi tidigare hade för att kunna använda färre portar. Den resulterande kretsen är av en typ som vi kallar iterativ kombinatorisk krets. genom att den innehåller flera kopior av ett enkelt element. För binär tillsats kallas det enkla elementet en full adderare. En full adder är en kombinatorisk krets (eller faktiskt två kombinatoriska kretsar) av tre ingångar och två utgångar. Dess funktion är att lägga till två binära siffror plus en bär från föregående position, och ge ett tvåbits resultat, normal utgång och bära till nästa position. Här är sanningstabellen för en fullständig adderare: Här har vi använt variabla namn x och y för ingångarna, c-in för inmatning, s för summaffekten och c-out för utmatningen. En full adder kan trivialt byggas med våra vanliga konstruktionsmetoder för kombinatoriska kretsar. Här är det resulterande kretsschemat: Nästa steg är att kombinera en serie av sådana kompletta adders till en krets som kan lägga till (säga) två 8-bitars positiva tal. Vi gör detta genom att koppla ut överföringen från en full adder till inlämningen av full adder direkt till vänster. Den högsta fullständiga adderen tar en 0 på sin inlämning. Här har vi använt prenumeration i för den i-binära positionen. Som du kan se är djupet av denna krets inte längre två, men betydligt större. Faktum är att utsignalen och bärningen från läget 7 bestäms delvis av ingångarna till position 0. Signalen måste passera alla de fullständiga tillsatserna, med en motsvarande fördröjning som ett resultat. Det finns mellanliggande lösningar mellan de två extrema som vi hittills har sett (dvs. en kombinatorisk krets för hela (säga) 32 bitars adder och en iterativ kombinatorisk krets vars element är enbitiga adderare som är byggda som vanliga kombinatoriska kretsar). Vi kan till exempel bygga en 8-bitars adder som en vanlig tvånivåskombinatorisk krets och bygga en 32-bitars adderare från fyra sådana 8-bitars adderare. En 8-bitars adder kan trivialt byggas från 65536 (2 16) och - gates och en gigantisk 65536-ingång eller - gate. En annan mellanliggande lösning består av att bygga så kallade bäracceleratorkretsar. Fylls i. Binär subtraktion Vår binär adder kan redan hantera negativa tal som anges i avsnittet om binär aritmetik. Men vi har inte diskuterat hur vi kan få det att hantera subtraktion. För att se hur detta kan göras, märk det för att beräkna uttrycket x - y. vi kan beräkna uttrycket x - y istället. Vi vet från avsnittet om binär aritmetik hur man negerar ett tal genom att invertera alla bitar och lägga till 1. Således kan vi beräkna uttrycket som x inv (y) 1. Det räcker att invertera alla ingångar från den andra operanden innan de når adderaren, men hur lägger vi till 1. Det verkar behöva en annan adder bara för det. Lyckligtvis har vi en oanvänd inbruktignal till position 0 som vi kan använda. Att ge en 1 på den här inmatningen i praktiken lägger till en till resultatet. Den kompletta kretsen med addition och subtraktion ser ut så här: Binär multiplikation och division Binär multiplikation är ännu hårdare än binär tillägg. Det finns ingen bra iterativ kombinationskrets tillgänglig, så vi måste använda ännu tyngre artilleri. Lösningen kommer att vara att använda en sekventiell krets som beräknar ett tillägg för varje klockpuls. Vi kommer att diskutera detta mer i ett senare avsnitt eftersom det behöver mecanism vi ännu inte har diskuterat.4-BIT BINARY DIVIDER Transcript av 4-BIT BINARY DIVIDER I det här projektet vill vi designa en krets som implementerar den traditionella långa divisionen. Med tanke på två osignerade n-bitnummer A och B önskar vi designa en krets som producerar två n-bitars utgångar Q och R, där Q är kvoten AB och R är resten. En algoritm för uppdelning visas på koden längst ner. Detta kan genomföras genom att växla siffrorna i A till vänster, en siffra i taget, till ett skiftregister R. Efter varje skiftoperation jämför vi R med B. Om RB placeras en 1 i lämplig bitposition i kvoten och B subtraheras från R. I övrigt placeras en O bit i kvoten. Notationen RA används för att representera ett 2n-bitskiftregister som bildas med användning av R som de vänstra nbitarna och A som de högst n-bitarna. 4-BIT BINARY DIVIDER I. INTRODUKTION En algoritm är en väldefinierad sekvens av steg som producerar en önskad sekvens av åtgärder som svar på en given sekvens av ingångar. ASM (Algoritmic State Machine) är användbar för att designa synkrona sekventiella nät med flödesschema, vilket liknar dem som används i datorprogrammering. Det är mycket användbart vid utformningen av FSM (Finite State Machine). Design med ASM gör det möjligt för människor att hantera mer komplext system. Numera används fältprogrammerbara portarrangemang (FPGA) ofta för komplexa system-on-chip-design (SoC). De är inriktade på bilkontroll, online databehandling och ett brett spektrum av beräkningsuppgifter. Divisionsoperation används ofta i dessa uppgifter, speciellt för att beräkna koordinaterna för ett objekt eller en punkt på ett rutnät i realtidsskala. Eftersom resultatet av delningsoperationen i många fall är ett ungefärligt värde kan detta påverka lösningen och leda till efterföljande felresultat. ASM-diagram för styrkretsen Ett ASM-diagram som endast visar de styrsignaler som behövs för dividerna ges på vänster diagram. I tillståndet S3 bestämmer värdet av Cout huruvida summan av adderarens utmatning laddas in i R. Växlingsaktiveringen på Q är hävdad i tillståndet S3. Vi behöver inte ange om 1 eller 0 laddas in i Q, eftersom Cout är ansluten till Qs seriell ingång i datapatakretsen. Datapath Circuit for Divider Vi behöver n-bitskiftregister som skifter åt höger till vänster för A, R och Q. En n-bitregistrering behövs för B, och en subtraktor behövs för att producera R B. Vi kan använda en addermodul där inmatningen är inställd på 1 och B kompletteras. Utförandet, Cout av denna modul har värdet 1 om villkoret R B är sant. Därför kan utmatningen kopplas till den seriella ingången hos skiftregistret som håller Q, så att det skiftas till Q i tillståndet S3. Eftersom R laddas med 0 i tillståndet S1 och från adderarens utgångar i tillståndet S3, behövs en multiplexor för parallella dataingångarna på R. Datapatakretsen är avbildad ovan. AS ASM CHART SCOPE OCH BEGRÄNSNINGAR Vårt projekt handlar om en 4-bitars binär delare. Kretsen utför endast uppdelning av alla 4-bitars binära nummer. Tillsats, subtraktion och multiplicering av binära tal kan inte utföras i detta projekt eller krets. Den maximala siffran som kan utföras är 1111, som är 15 i decimalvärdet och det minsta antalet som ska utföras är 0000, vilket är 0 i decimalvärdet. I uttrycket A B Q, där A är utdelningen, är B divisorn och Q är kvoten, vi begränsar vår projektdrift där A, utdelningen alltid är större än B, divisor AgtB. Mer presentationer av Gil FilomenoBinary Math Circuits Låt inte bara sitta där Bygg någonting Att lära dig att analysera digitala kretsar kräver mycket studier och övningar. Vanligtvis övar studenterna genom att arbeta igenom massor av provproblem och kontrollera deras svar mot dem som tillhandahålls av läroboken eller instruktören. Även om detta är bra finns det ett mycket bättre sätt. Du lär dig mycket mer genom att faktiskt bygga och analysera riktiga kretsar. låta din testutrustning tillhandahålla 8220answers istället för en bok eller en annan person. För framgångsrika kretsbyggnadsövningar, följ dessa steg: Rita schematiskt diagram för den digitala kretsen som ska analyseras. Montera försiktigt denna krets på ett brödbräda eller annat lämpligt medium. Kontrollera noggrannheten i kretsens konstruktion, följ varje ledning till varje anslutningspunkt och verifiera dessa element en-för-en på diagrammet. Analysera kretsen, bestämma alla utgångslogiska tillstånd för givna inmatningsförhållanden. Noggrant mäta de logiska tillstånden, för att verifiera noggrannheten i din analys. Om det finns några fel kontrollerar du noggrant din krets konstruktion mot diagrammet, analysera sedan noggrant kretsen och mät igen. Var alltid säker på att nätspänningsnivåerna ligger inom specifikationen för de logikkretsar du planerar att använda. Om TTL måste strömförsörjningen vara en 5-volts reglerad matning, justerad till ett värde så nära 5,0 volt likström som möjligt. Ett sätt att spara tid och minska risken för fel är att börja med en mycket enkel krets och öka gradvis komponenterna för att öka komplexiteten efter varje analys, snarare än att bygga en helt ny krets för varje övningsproblem. En annan tidsbesparande teknik är att återanvända samma komponenter i en rad olika kretskonfigurationer. På det här sättet behöver du inte mäta några komponenter värde mer än en gång. Låt elektronerna själva ge dig svaren på dina egna praktikproblem. Det har varit min erfarenhet att eleverna kräver mycket träning med kretsanalys för att bli skicklig. För detta ändamål ger instruktörer vanligtvis sina elever massor av övningsproblem att arbeta igenom, och ger svar för studenter att kontrollera sitt arbete mot. Medan detta tillvägagångssätt gör eleverna skickliga i kretsteori misslyckas det inte att utbilda dem fullt ut. Studenter behöver inte bara matematisk träning. De behöver också riktiga, praktiska träningsbyggnader och använda testutrustning. Så föreslår jag följande alternativa tillvägagångssätt: eleverna ska bygga sina egna praktikproblem med reella komponenter och försöka förutse de olika logiska tillstånden. På så sätt kommer den digitala teorin till liv och studenterna får praktisk kunskap som de inte skulle vinna bara genom att lösa boolesiska ekvationer eller förenkla Karnaugh-kartor. En annan anledning till att följa denna metod är att lära eleverna vetenskaplig metod. processen att testa en hypotes (i detta fall logiska tillståndsprognoser) genom att utföra ett verkligt experiment. Eleverna kommer också att utveckla riktiga felsökningsförmågor, eftersom de ibland gör kretsbyggnadsfel. Tillbringa några minuter med din klass för att granska några av reglerna för byggnadskretsar innan de börjar. Diskutera dessa frågor med dina elever på samma socratiska sätt som du normalt skulle diskutera arbetsbladets frågor, snarare än att bara berätta för dem vad de borde och borde inte göra. Jag slutar aldrig bli förvånad över hur dåliga eleverna förstår instruktioner när de presenteras i en typisk föreläsningsformat (instruktörsmonolog). Jag rekommenderar starkt CMOS-logikkretsar för hemmaxperiment, där eleverna kanske inte har tillgång till en 5-volts reglerad strömförsörjning. Moderna CMOS-kretsar är mycket mer robusta när det gäller statisk urladdning än de första CMOS-kretsarna, så rädslan för att studenter skadar dessa enheter genom att inte ha ett korrekt laboratorium som är uppbyggda hemma är i stort sett ogrundade. En anteckning till de instruktörer som kan klaga över den bortkastade tiden som krävs för att få eleverna att bygga riktiga kretsar istället för att bara matematiskt analysera teoretiska kretsar: Vad är syftet med eleverna att ta kursen Om dina elever ska arbeta med riktiga kretsar bör de lära sig på riktiga kretsar när det är möjligt. Om ditt mål är att utbilda teoretiska fysiker, håll då med abstrakt analys, med alla medel Men de flesta av oss planerar för våra elever att göra någonting i den verkliga världen med den utbildning vi ger dem. Den bortkastade tid som spenderas bygga riktiga kretsar kommer att betala stora utdelningar när det är dags för dem att tillämpa sin kunskap på praktiska problem. Dessutom har eleverna att bygga sina egna praktikproblem lär dem hur de ska utföra primärforskning. vilket ger dem möjlighet att fortsätta sin elelektronikutbildning autonomt. I de flesta vetenskaper är realistiska experiment mycket svårare och dyrare att installera än elektriska kretsar. Kärnfysik, biologi, geologi och kemi professorer skulle bara älska att kunna få sina studenter att tillämpa avancerad matematik till verkliga experiment som inte utgör någon säkerhetsrisk och kostar mindre än en lärobok. De kan inte, men du kan. Utnyttja bekvämligheten i din vetenskap och få de eleverna att utöva sin matematik på massor av riktiga kretsar. Låt dina elever förklara sin designprocess för dig, steg för steg. Detta kretsschema är lätt att upptäcka på sidorna i en lärobok, så bli inte förvånad om eleverna helt enkelt kopierar vad de ser utan att försöka förstå hur det fungerar. Att avleda de två kaskade ex-ELLER-portarna från det booleska uttrycket är lite knepigt, men inte omöjligt. Påminn dina elever om nödvändigt att den booleska motsvarigheten för Ex-OR-funktionen är AB AB, och att Ex-NOR-funktionen är AB A B. Förklara skillnaden mellan en rippeladder och en blickad adderare. Vad betyder termen rippel i detta sammanhang Varför är rippel potentiellt en dålig sak för en digital adderkrets Ripple adders uppdaterar sina utgångsbitar en i taget snarare än samtidigt. Detta leder till falska, övergående utgångstillstånd. Rippel-effekten som ses i enkla binära adderkretsar är inte begränsad till adders Vissa grå-till-binära kodomvandlare och motkretsar uppvisar också krusning med samma skadliga effekter. Jämför följande två kretsar, den första är en digital adder och den andra är en analog sommar: Dessa två kretsar utför samma matematiska funktion, men de sätt där de utför denna funktion är ganska annorlunda. Jämför och kontrastera den digitala adderaren och de analoga sommarkretsarna som visas här, med hänvisning till några fördelar eller nackdelar med var och en. Jag kommer inte direkt ge bort svar här, men jag kommer att lista några kriterier du kanske vill använda för att jämföra och kontrastera: Upplösning Noggrannhet Kostnadskostnad Den här frågan är inte riktigt specifik för addersummer-kretsar, som den först kan visas. Den grundläggande jämförelsen som dras i denna fråga är mellan digital och analog. Detta är ett viktigt begrepp för studenter att förstå, eftersom båda har sina roller i modern elektronik. En vanlig felaktighet är att digitalt är bättre under alla omständigheter, men sanningen är att både digital och analog har sina respektive styrkor och begränsningar. Förklara syftet med en magnitudkomparator IC, såsom 74LS85. Vilken funktion, eller funktioner, utför den? Jag låter dig undersöka databladet för en storlekssammanställning för att hitta svaret. Var noga med att fråga eleverna om vilka de fick sin information. Det är väldigt lätt att skaffa datablad online (via internet), vilket gör det bekvämt att tilldela korta forskningsprojekt som detta. Undersök databladet för en integrerad aritmetisk logisk enhet, såsom 74AS181, och bestäm hur dess olika driftsätt (tillägg, subtraktion, jämförelse) väljs. Detta är ett litet forskningsprojekt som jag lämnar upp till dig. Var noga med att ta med en kopia av din IC-datablad till diskussionsuppföljning. Uppföljningsfråga: En intressant egenskap hos 74AS181 är att den ger 8220aritmetiska funktioner samt logiska funktioner. Dessa två lägen kan också kallas binära respektive booleska. Förklara vad som skiljer dessa två driftlägen från varandra och varför de klassificeras annorlunda. Även om 74181 ALU är en något daterad IC (i själva verket är vissa versioner föråldrade på grund av detta skrivande - 2005) står det som ett enkelt exempel för studenter att lära av. En krets som detta ger ett bra exempel på integrationskraften, i motsats till att man konstruerar en liknande logisk funktion från enskilda grindar (för att inte tala om diskreta transistorer). Uppföljningsfrågan ger upphov till en punkt som många studenter är förvirrade på: skillnaden mellan binära (numeriska) och booleska (bitvisa) operationer. Binär är ett platsviktat numerationssystem. brukade symbolisera reella tal med endast två stater per plats. Boolean är ett nummersystem som kännetecknas av att endast ha två möjliga värden. Eftersom både binära och booleska har något att göra med tvåvärda kvantiteter, tror många elever att de två är utbytbara termer och begrepp. De är emellertid inte, och en undersökning av de två operativa lägena för denna ALU lyfter fram skillnaden. Ett aritmetiskt trick som ofta används när man arbetar med det metriska systemet är multiplication-by-ten och division-by-ten via växling av decimalpunkten. Ett liknande trick kan tillämpas på binära tal, med liknande resultat. Bestäm vilken typ av multiplikation eller delning som uppnås när binärpunkten skiftas i ett binärt tal. Undersök databladet för en aritmetisk logisk enhet (ALU) krets för att se om och hur denna funktion implementeras. Byte av binärpunkten resulterar i antingen multiplikation eller delning med två. Ett multiplikativt skift utförs av 74AS181 ALU med aritmetiskt funktionsval 1100 2 (C16). Utmaningsfråga: förklara hur multiplicering eller delning med vilken binär kvantitet som helst kan åstadkommas med hjälp av successiva bitskift och tillägg. Till exempel, visa vilka steg du kan vidta för att multiplicera ett binärt tal med fem (101 2), med bara binär punktskiftning och addition (er). Många aritmetiska tricks som existerar i decimalsystemet är tillämpliga, med liten omprövning, i det binära talsystemet också. Detta är en populär och används ofta av skarpa datorprogrammerare för att utföra snabb multiplicera-för-två eller uppdelning av två operationer när konventionella multiplikationskommandon tar mer tid. Förklara betydelsen av de digitala linjerna A, B, F och S i följande schematiska diagram:
No comments:
Post a Comment