Innehållsförteckning:

4-bitars binär räknare: 11 steg (med bilder)
4-bitars binär räknare: 11 steg (med bilder)

Video: 4-bitars binär räknare: 11 steg (med bilder)

Video: 4-bitars binär räknare: 11 steg (med bilder)
Video: Matematik åk 6. Nationellt prov VT 2018. Del C 2024, November
Anonim
4-bitars binär räknare
4-bitars binär räknare
4-bitars binär räknare
4-bitars binär räknare
4-bitars binär räknare
4-bitars binär räknare
4-bitars binär räknare
4-bitars binär räknare

Jag utvecklade ett intresse för hur datorer fungerar på en grundläggande nivå. Jag ville förstå användningen av diskreta komponenter och de kretsar som är nödvändiga för att utföra mer komplexa uppgifter. En viktig grundläggande komponent i en CPU är den aritmetiska logiska enheten eller ALU som utför operationer på heltal. För att utföra denna uppgift använder datorer binära tal och logiska grindar. En av de enklaste operationerna som utförs är att lägga ihop två nummer i en adderarkrets. Denna video av numberphile gör ett utmärkt jobb med att förklara detta koncept via Domino Addition. Matt Parker utökar detta grundläggande koncept och bygger en Domino -datorkrets med 10 000 dominoer. Att bygga en hel persondator av dominoer är absurt, men jag ville fortfarande förstå användningen av diskreta komponenter för att utföra denna tilläggsuppgift. I videorna skapades logiska grindar av dominoer men de kan också göras av grundläggande komponenter, nämligen transistorer och motstånd. Syftet med detta projekt var att använda dessa diskreta komponenter för att lära mig och skapa min egen 4-bitars adderkalkylator.

Mina mål för detta projekt inkluderade: 1) Lär dig hur du skapar och tillverkar en anpassad PCB2) Gör designen lätt att konceptualisera att lägga till binära tal3) Visa skillnaden i skala mellan diskreta komponenter och en integrerad krets som utför samma uppgift

Mycket av inspirationen och förståelsen för detta projekt kom från Simon Inns.

Tillbehör

Jag använde Fritzing för att göra scheman, skapa och tillverka kretskort

Steg 1: Teori

Teori
Teori
Teori
Teori
Teori
Teori
Teori
Teori

Att räkna i bas 10 är enkelt eftersom det finns ett annat heltal som representerar summan av två heltal. Det enklaste exemplet:

1 + 1 = 2

Att räkna i bas 2 eller binärt använder bara 1: or och 0: or. En kombination av 1: or och 0: or används för att representera olika heltal och deras summor. Ett exempel på att räkna i bas 2:

1+1 = 0 och du bär 1: an till nästa bit

När man lägger till två bitar (A och B) tillsammans är 4 olika resultat möjliga med utgångarna från Sum and Carry (Cout). Detta är vad som visas i tabellen.

Logiska grindar tar in ingångar och genererar en utgång. Några av de mest grundläggande logikportarna består av NOT-, AND- och OR -grindarna som alla används i detta projekt. De består av olika kombinationer och ledningar av transistorer och motstånd. Scheman för varje grind tillhandahålls.

Med hänvisning till tabellen kan en kombination av dessa grindar användas för att producera summan i tabellen. Denna kombination av logik är också känd som en exklusiv OR (XOR) gate. Ingången måste vara exakt 1 för att resultera i en utgång på 1. Om båda ingångarna är 1 är den resulterande utgången 0. Bärbitsresultaten kan representeras av en enkel OCH -grind. Således kan både en XOR med en OCH -grind representera hela bordet. Detta är känt som en halv adderare och schemat visas ovan.

För att lägga till större binära tal måste bärbiten införlivas som en ingång. Detta åstadkoms genom att kombinera 2 Half Adder -kretsar för att generera en Full Adder. Full Adders kan sedan kaskadas ihop för att lägga till större binära tal. I mitt projekt kaskadade jag 4 Full Adders som gjorde att jag kunde ha 4 bitars ingångar. Schemat för Full Adder är ovan.

Simon Inns har en bra och mer fördjupad skrivning om teorin. Det finns också några PDF -filer som jag tyckte var till hjälp.

Steg 2: Testa kretsen

Testar kretsen
Testar kretsen
Testar kretsen
Testar kretsen

Det första steget efter att ha förstått hur logiska grindar fungerar och teorin bakom en Full Adder är att bygga kretsen. Jag började med att samla alla komponenter jag behövde: 10K och 1K motstånd, NPN -transistorer, brödbräda, Jumperwires. Jag följde med en utskrift av hela adderaren. Processen var tråkig men jag kunde få en fungerande krets för hela addern. Jag skulle knyta ingångarna högt eller lågt och använde en multimeter för att testa utgångarna. Nu var jag redo att översätta brödbrädan och schemat till ett kretskort.

Steg 3: Designa PC -kortet för hela adderaren

Utforma kretskortet för hela adderaren
Utforma kretskortet för hela adderaren
Utforma kretskortet för hela adderaren
Utforma kretskortet för hela adderaren
Utforma kretskortet för hela adderaren
Utforma kretskortet för hela adderaren

För att designa kretskortet använde jag uteslutande Fritzing. Detta var första gången jag designade ett kretskort och det här programmet verkade som det mest användarvänliga och intuitiva med minsta inlärningskurva. Det finns andra bra program som EasyEDA och Eagle tillgängliga för att hjälpa till att designa ett kretskort. Med Fritzing kan du börja designa på en virtuell brödbräda eller schematisk och sedan flytta till kretskortet. Jag använde båda dessa metoder för detta projekt. När du är redo att tillverka kretskortet är det så enkelt som att klicka på en knapp för att exportera dina filer och ladda upp dem direkt till Aisler, den samarbetsvilliga tillverkaren för Fritzing.

Rita schematisk Jag började med den schematiska fliken för att påbörja processen. Först hittade jag och satte in alla komponenter i arbetsytan. Därefter drog jag alla spår mellan komponenterna. Jag såg till att lägga till 5V -ingång och jord till lämpliga platser.

Design PCBI klickade på PCB -fliken. När du flyttar direkt från en schematik får du en röra med alla komponenter som är anslutna med ratsnest -linjer baserat på de spår du gjort i schemat. Det första jag gjorde var att ändra storlek på det grå kretskortet till den storlek jag ville ha och lade till monteringshål. Jag lade också till 16 stift för ingångar och utgångar. Därefter började jag ordna komponenterna på ett logiskt sätt. Jag försökte gruppera komponenter med anslutningar som var nära varandra så att jag skulle minimera spåravståndet. Jag gick ett extra steg och grupperade komponenterna tillsammans med logic gate. Ett av mina mål var att kunna visualisera hur kretsen fungerar och kunna följa "biten" genom kretsen. Därefter använde jag den automatiska utfunktionen som går igenom automatiskt och ritar de optimerade spårningarna mellan komponenterna. Jag var skeptisk till att denna process slutförde alla rätt spårningar så jag gick igenom för att dubbelkolla och rita om spårningar där de skulle vara. Lyckligtvis gjorde autorouting -funktionen ett ganska bra jobb och jag behövde bara fixa några av spårningarna. Autorouter gjorde också några konstiga vinklar med spåren som inte är "bästa praxis" men jag var okej med det och allt fungerade fortfarande bra. Det sista jag gjorde var att lägga till text som skulle skrivas ut som silkscreen. Jag såg till att alla komponenter var märkta. Jag importerade också anpassade logikportbilder för att betona gruppering av komponenterna. Den sista bilden ovan visar silkscreen.

Tillverka PCBI genom att klicka på tillverkningsknappen längst ned på skärmen. Den dirigerade mig direkt till Aislers webbplats där jag kunde skapa ett konto och ladda upp alla mina Fritzing -filer. Jag lämnade alla standardinställningar och lade beställningen.

Steg 4: Designa övriga kretskort

Designa övriga kretskort
Designa övriga kretskort
Designa övriga kretskort
Designa övriga kretskort
Designa övriga kretskort
Designa övriga kretskort

De återstående kretskorten som jag behövde var in-/utgångskortet och kortet för IC. Jag följde processen som steg 3 för dessa brädor. Skematikens pdf finns nedan. För IC gjorde jag alla anslutningar med den virtuella breadboard -funktionen. Jag inkluderade schemat för fullständighet men kunde gå direkt från panelen till PCB -fliken vilket var ganska coolt. Jag lade också till en konverteringskarta från bas 10 till bas 2 på silkscreen på I/O -gränssnittskortet innan jag laddade upp och beställde i Aisler.

Steg 5: Lödningskomponenter till kretskort

Lödningskomponenter till kretskort
Lödningskomponenter till kretskort
Lödningskomponenter till kretskort
Lödningskomponenter till kretskort
Lödningskomponenter till kretskort
Lödningskomponenter till kretskort
Lödningskomponenter till kretskort
Lödningskomponenter till kretskort

Alla kretskort kom och jag var verkligen imponerad av kvaliteten. Jag har ingen erfarenhet av andra tillverkare men skulle inte tveka att använda Aisler igen.

Nästa uppgift var att löda alla komponenter som var en mödosam process men mina lödkunskaper förbättrades kraftigt. Jag började med hela adderbrädorna och lödde komponenterna med transistorer, sedan 1K -motstånd, sedan 10K -motstånd. Jag följde en liknande metod för att löda resten av komponenterna på I/O- och IC -kortet. När varje Full Adder -bräda var klar testade jag dem med samma metod som breadboard Full Adder. Överraskande nog fungerade alla brädor korrekt utan problem. Detta innebar att brädorna dirigerades korrekt och att de löddes korrekt. Till nästa steg!

Steg 6: Avsluta kretskorten för stapling

Avsluta kretskorten för stapling
Avsluta kretskorten för stapling
Avsluta kretskorten för stapling
Avsluta kretskorten för stapling
Avsluta kretskorten för stapling
Avsluta kretskorten för stapling

Nästa uppgift var att löda alla huvudstiften till varje bräda. Jag behövde också lägga till bygelkablar mellan rätt rubrikstift och ingångar/utgångar från Full Adder -korten (A, B, Cin, V+, GND, Sum, Cout). Det här steget skulle kunna undvikas om du konstruerade olika kretskort för varje nivå i adderkretsen men jag ville minimera design och kostnad genom att bara skapa en Full Adder PCB. Som ett resultat krävde anslutningar till dessa ingångar/utgångar bygelkablar. Den schematiska beskrivningen är hur jag utförde den här uppgiften och vilka stift som användes för varje nivå på Full Adder -korten. Bilder visar hur jag lödde bygelkablarna för varje bräda. Jag började med att lödda fria trådar till rätt stift på rubriken. Jag lödde sedan rubriken till kretskortet. Efter att jag hade huvudstiften med bygelstrådar lödda på plats, lödde jag de fria ändarna på bygelkablarna till rätt ledningar på kretskortet. Bilden ovan visar en närbild av huvudstiften med bygelstrådarna lödda på dem.

Steg 7: Strömförsörjning av kretsarna

Driva kretsarna
Driva kretsarna
Driva kretsarna
Driva kretsarna
Driva kretsarna
Driva kretsarna

Jag planerade att använda en 12V DC -fatuttag för detta projekt så jag utformade I/O -gränssnittskortet för att ha ett DC -fatuttag/-kontakt för ingången. Eftersom jag använde samma I/O -kort och ville använda en enda strömförsörjning behövde jag reglera spänningen till 5V eftersom detta är maxingången för SN7483A IC. För att uppnå detta behövde jag en 5V regulator och en switch som kunde växla mellan 12V och 5V. Schemat ovan visar hur jag kopplade ihop strömkretsen.

Steg 8: 3D -utskrift av basen

3D -utskrift av basen
3D -utskrift av basen
3D -utskrift av basen
3D -utskrift av basen
3D -utskrift av basen
3D -utskrift av basen

Nu när alla kablar och lödningar är klara, behövde jag ta reda på hur det hela skulle hållas ihop. Jag valde CADing och 3D -utskrift en design som skulle rymma och visa alla delar av detta projekt.

Designhänsyn Jag behövde platser för att montera kretskorten med bultar och avstånd. De staplade Adders är de mest visuellt tilltalande och jag ville ha dem på skärmen när de inte används så jag ville ha en plats att lagra IC -kretskortet. Jag behövde rymma strömkretsen med avstängningar för omkopplaren och DC -fatuttag/kontakt. Slutligen ville jag ha ett slags skåp för att förhindra att damm samlas i de öppna kretskorten så jag behövde en plats för höljet att sitta.

3D -modellering Jag använde Fusion360 för att designa basen. Jag började med måtten på kretskortet och avståndet mellan monteringshålen. Efter det använde jag en serie skisser och extruderingar för att ställa in höjden och storleken på basen med kretskortsmonteringspunkterna. Därefter gjorde jag utskärningarna för höljet och strömkretsen. Sedan gjorde jag ett område för att lagra IC -kretskortet när det inte används. Slutligen lade jag till några detaljer om detaljerna och skickade det till Cura, min skivprogramvara.

Jag valde svart PLA -filament. Utskriften tog lite mer än 6 timmar och blev jättebra. Överraskande nog var alla dimensioner korrekta och allt verkade som om det skulle passa ihop ordentligt. Bilden ovan visar utskriften efter att jag lagt till avstånden i monteringshålen. De passade perfekt!

Steg 9: Montering

hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning

Sätt i avstånden. Jag placerade alla distanser i basens monteringshål.

Placera strömkretsen i basen. Jag hade kopplat ihop allt och drog alla komponenter genom hålet för omkopplaren. Därefter satte jag in strömuttaget/adaptern på baksidan av basen. Jag tryckte in 5V -regulatorn i dess kortplats och slutligen kunde omkopplaren skjutas på plats.

Montera I/O -kretskortet. Jag placerade IC -kretskortet i sitt lagringsutrymme och placerade I/O -gränssnittets kretskort ovanpå. Jag skruvade ner kretskortet med hjälp av 4x M3 -bultar och en hex -drivning. Slutligen anslöt jag DC -fatuttaget till kretskortet.

Stapla Adder -kretskortet. Jag staplade den första Addern på plats. Jag skruvade ner kretskortets baksida i de bakre monteringshålen med 2 avstånd. Jag upprepade denna process tills den sista huggormen var på plats och säkrade den med ytterligare två M3 -bultar.

Gör höljet. Jag använde 1/4 akryl för höljet. Jag mätte projektets slutliga höjd och med CAD -mått klippte jag ut 5 bitar för sidorna och toppen för att göra en enkel låda med öppen botten. Jag använde epoxi för att limma bitarna tillsammans. Slutligen slipade jag en liten halvcirkelutskärning på höger sida för att rymma omkopplaren.

Redo att beräkna

Steg 10: Beräkning och jämförelse

Image
Image
Beräkning och jämförelse
Beräkning och jämförelse
Beräkning och jämförelse
Beräkning och jämförelse

Anslut din nya miniräknare och börja lägga till! Diagrammet bas 10 till bas 2 kan användas för att snabbt konvertera mellan binära och heltal. Jag föredrar att ställa in ingångarna och sedan slå "lika" genom att vända strömbrytaren och observera den binära utgången från lysdioderna.

Jämför diskreta komponenter med en integrerad krets. Nu kan du ta bort hela Adders och ansluta SN7483A IC till I/O -kortet. (Glöm inte att vrida omkopplaren till motsatt riktning för att driva IC: n med 5V istället för 12V). Du kan utföra samma beräkningar och du får samma resultat. Det är ganska imponerande att tro att både den diskreta komponenten Adder och IC fungerar på samma sätt bara på en mycket annan storlek. Bilderna visar samma ingångar och utgångar för kretsar.

Steg 11: Slutsats

Jag hoppas att du gillade detta projekt och lärde dig lika mycket som jag. Det är ganska tillfredsställande att lära sig något nytt och göra det till ett unikt projekt som också kräver inlärning av en ny färdighet som PCB -design/tillverkning. Alla scheman listas nedan. För alla intresserade kan jag också länka mina PCB Gerber-filer så att du kan skapa din egen 4-bitars binära räknare. Glad att göra!

Rekommenderad: