Sisällysluettelo:

4-bittinen binaarilaskin: 11 vaihetta (kuvilla)
4-bittinen binaarilaskin: 11 vaihetta (kuvilla)

Video: 4-bittinen binaarilaskin: 11 vaihetta (kuvilla)

Video: 4-bittinen binaarilaskin: 11 vaihetta (kuvilla)
Video: 15 уникальных мест, столь же красивых, сколь и пугающих 2024, Heinäkuu
Anonim
4-bittinen binaarilaskin
4-bittinen binaarilaskin
4-bittinen binaarilaskin
4-bittinen binaarilaskin
4-bittinen binaarilaskin
4-bittinen binaarilaskin
4-bittinen binaarilaskin
4-bittinen binaarilaskin

Kiinnostuin siitä, miten tietokoneet toimivat perustason tasolla. Halusin ymmärtää diskreettien komponenttien käytön ja piirit, jotka ovat tarpeen monimutkaisempien tehtävien suorittamiseksi. Yksi tärkeä peruskomponentti suorittimessa on aritmeettinen logiikkayksikkö tai ALU, joka suorittaa toimintoja kokonaislukuilla. Tämän tehtävän suorittamiseksi tietokoneet käyttävät binäärilukuja ja logiikkaportteja. Yksi yksinkertaisimmista suoritetuista toiminnoista on kahden numeron liittäminen yhteen summainpiirissä. Tämä numberphilen video selittää erinomaisesti tämän käsitteen Domino -lisäyksen kautta. Matt Parker laajentaa tätä peruskonseptia ja rakentaa Domino -tietokonepiirin käyttämällä 10 000 dominoa. Koko henkilökohtaisen tietokoneen rakentaminen dominoista on järjetöntä, mutta halusin silti ymmärtää erillisten komponenttien käytön tämän lisätehtävän suorittamiseksi. Videoissa logiikkaportit luotiin dominoista, mutta ne voidaan valmistaa myös peruskomponenteista, nimittäin transistoreista ja vastuksista. Tämän projektin tarkoituksena oli käyttää näitä erillisiä komponentteja oppimaan ja luomaan oman 4-bittisen summainlaskurini.

Tavoitteeni tälle projektille olivat: 1) Opi luomaan ja valmistamaan mukautettu piirilevy2) Tee suunnittelusta helppo hahmottaa binäärilukujen lisääminen

Suurin osa tämän hankkeen inspiraatiosta ja ymmärryksestä tuli Simon Innsiltä.

Tarvikkeet

Käytin Fritzingiä kaavioiden luomiseen, piirilevyjen luomiseen ja valmistamiseen

Vaihe 1: Teoria

Teoria
Teoria
Teoria
Teoria
Teoria
Teoria
Teoria
Teoria

Laskeminen kantaan 10 on yksinkertaista, koska kahden kokonaisluvun summaa edustaa eri kokonaisluku. Yksinkertaisin esimerkki:

1 + 1 = 2

Laskenta pohjaan 2 tai binääriin käyttää vain 1: tä ja 0: ta. Yhdistelmää 1 ja 0 käytetään edustamaan erilaisia kokonaislukuja ja niiden summia. Esimerkki laskemisesta tukikohdassa 2:

1+1 = 0 ja siirrät 1 seuraavaan bittiin

Kun kaksi bittiä (A ja B) yhdistetään yhteen, 4 eri tulosta on mahdollista saada summa- ja siirto (Cout) -ulostulolla. Tämä näkyy taulukossa.

Logiikkaportit ottavat tuloja ja tuottavat lähdön. Jotkut yksinkertaisimmista logiikkaporteista koostuvat NOT-, AND- ja OR -porteista, joita kaikkia hyödynnetään tässä projektissa. Ne koostuvat erilaisista transistorien ja vastusten yhdistelmistä ja johdotuksista. Jokaisen portin kaaviot ovat mukana.

Taulukkoon viitaten: Näiden porttien yhdistelmää voidaan käyttää taulukon summa -tulosten tuottamiseen. Tätä logiikan yhdistelmää kutsutaan myös yksinomaiseksi OR (XOR) -portiksi. Tulon on oltava täsmälleen 1, jotta tulos saadaan 1. Jos molemmat tulot ovat 1, tuloksena oleva tulos on 0. Siirtobittitulokset voidaan esittää yksinkertaisella AND -portilla. Näin ollen sekä XOR: n käyttö AND -portilla voi edustaa koko taulukkoa. Tätä kutsutaan puolisekoittimeksi ja kaavio on esitetty yllä.

Suurempien binäärilukujen lisäämiseksi siirtobitti on sisällytettävä syötteeksi. Tämä saavutetaan yhdistämällä 2 Half Adder -piiriä täydellisen summaimen luomiseksi. Täydet lisäimet voidaan sitten kaskadoida yhteen lisäämään suurempia binäärilukuja. Projektissani kaskadoin 4 täyttä lisälaitetta, joiden avulla minulla oli 4 -bittiset tulot. Täyden lisäajan kaavio on yllä.

Simon Innsillä on loistava ja syvällisempi kirjoitus teoriasta. On myös muutamia PDF -tiedostoja, joista pidin hyödyllisinä.

Vaihe 2: Piirin testaus

Piirin testaus
Piirin testaus
Piirin testaus
Piirin testaus

Ensimmäinen askel sen jälkeen, kun olet ymmärtänyt, miten logiikkaportit toimivat ja Full Adderin takana oleva teoria on rakentaa piiri. Aloitin keräämällä kaikki tarvitsemani komponentit: 10K- ja 1K -vastukset, NPN -transistorit, Breadboard, Jumperwires. Seurasin tulosta täyden lisäajan kanssa. Prosessi oli tylsä, mutta pystyin saamaan toimivan piirin täydelle summaajalle. Sidoin tulot korkeiksi tai matalaksi ja testasin lähdöt yleismittarilla. Nyt olin valmis kääntämään leipälevyn ja kaavion piirilevyksi.

Vaihe 3: Täyden summaimen piirilevyn suunnittelu

Täyden summaimen piirilevyn suunnittelu
Täyden summaimen piirilevyn suunnittelu
Täyden summaimen piirilevyn suunnittelu
Täyden summaimen piirilevyn suunnittelu
Täyden summaimen piirilevyn suunnittelu
Täyden summaimen piirilevyn suunnittelu

Piirilevyn suunnittelussa käytin yksinomaan Fritzingia. Tämä oli ensimmäinen kerta, kun suunnittelin piirilevyä, ja tämä ohjelma vaikutti käyttäjäystävällisimmältä ja intuitiivisimmalta, jolla oli pienin oppimiskäyrä. Saatavilla on myös muita hienoja ohjelmia, kuten EasyEDA ja Eagle, jotka auttavat piirilevyn suunnittelussa. Fritzingin avulla voit aloittaa suunnittelun virtuaalisen leipälevyn tai kaavion avulla ja siirtyä sitten piirilevyyn. Olen käyttänyt molempia menetelmiä tässä projektissa. Kun olet valmis valmistamaan piirilevyn, tiedostojen vieminen ja lataaminen suoraan Aislerille, joka on Fritzingin yhteistyökumppani, on yhtä helppoa kuin napin painallus.

Piirrä kaavio Aloitin kaavamaisella välilehdellä aloittaaksesi prosessin. Ensinnäkin löysin ja lisäsin kaikki komponentit työtilaan. Seuraavaksi piirsin kaikki jäljet komponenttien väliin. Varmistin, että lisäsin 5 V: n tulon ja maadoituksen sopiviin paikkoihin.

Suunnittele PCBI napsauttamalla PCB -välilehteä. Kun siirryt suoraan kaaviosta, saat sotkun kaikkien komponenttien kanssa, jotka on yhdistetty ratsnest -linjoilla kaavion tekemien jälkien perusteella. Ensimmäisenä tein harmaan piirilevyn koon haluamaani kokoon ja lisäsin asennusreikiä. Lisäsin myös 16 nastaa tulolle ja lähdölle. Seuraavaksi aloin järjestää komponentit loogisella tavalla. Yritin ryhmitellä komponentit, joiden yhteydet olivat lähellä toisiaan, jotta minimoisin jäljitysetäisyyden. Menin ylimääräisen askeleen ja ryhmitin komponentit yhteen logiikkaportin mukaan. Yksi tavoitteistani oli pystyä visualisoimaan piirin toiminta ja seurata "bittiä" piirin läpi. Sen jälkeen käytin automaattista reititystoimintoa, joka kulkee automaattisesti läpi ja piirtää optimoidut jäljitykset komponenttien välillä. Olin epäileväinen siitä, että tämä prosessi saattoi päätökseen kaikki oikeat jäljitykset, joten kävin läpi kaksinkertaisen tarkistuksen ja piirsin jäljet uudelleen siellä, missä niiden piti olla. Onneksi automaattinen reititystoiminto teki melko hyvää työtä, ja minun piti korjata vain muutama jäljitys. Autorouter teki myös outoja kulmia jälkien kanssa, mikä ei ole "paras käytäntö", mutta olin kunnossa sen kanssa ja kaikki toimi edelleen hyvin. Viimeinen asia, jonka tein, oli lisätä teksti, joka tulostettaisiin silkkipainoksi. Varmistin, että kaikki komponentit oli merkitty. Toin myös mukautettuja logiikkaportteja korostamaan komponenttien ryhmittelyä. Edellisessä kuvassa näkyy silkkipaino.

Valmista PCBI napsauttamalla näytön alareunassa olevaa valmistuspainiketta. Se ohjasi minut suoraan Aisler -verkkosivustolle, jossa pystyin luomaan tilin ja lataamaan kaikki Fritzing -tiedostoni. Jätin kaikki oletusasetukset ja tein tilauksen.

Vaihe 4: Muiden piirilevyjen suunnittelu

Muiden piirilevyjen suunnittelu
Muiden piirilevyjen suunnittelu
Muiden piirilevyjen suunnittelu
Muiden piirilevyjen suunnittelu
Muiden piirilevyjen suunnittelu
Muiden piirilevyjen suunnittelu

Loput PCB: t, joita tarvitsin, olivat tulo-/lähtöliitäntäkortti ja piirilevy. Noudatin prosessia vaiheena 3 näille levyille. Kaavioiden pdf -tiedosto on julkaistu alla. IC: n osalta tein kaikki yhteydet virtuaalisen leipälevyn avulla. Lisäsin kaavion täydellisyyteen, mutta pystyin siirtymään suoraan leipälevyltä PCB -välilehdelle, joka oli aika siistiä. Lisäsin myös pohjan 10 muunnoskaavioon pohjaan 2 I/O -liitäntäkortin silkkinäytöllä ennen lataamista ja tilaamista Aislerissa.

Vaihe 5: Komponenttien juottaminen piirilevylle

Juotoskomponentit piirilevylle
Juotoskomponentit piirilevylle
Juotoskomponentit piirilevylle
Juotoskomponentit piirilevylle
Juotoskomponentit piirilevylle
Juotoskomponentit piirilevylle
Juotoskomponentit piirilevylle
Juotoskomponentit piirilevylle

Kaikki piirilevyt saapuivat ja olin todella vaikuttunut laadusta. Minulla ei ole kokemusta muista valmistajista, mutta en epäröi käyttää Aisleria uudelleen.

Seuraava tehtävä oli juottaa kaikki komponentit, mikä oli vaivalloista, mutta juotostaitoni paranivat huomattavasti. Aloitin täydennyslevyillä ja juotin komponentit alkaen transistoreista, sitten 1K vastuista, sitten 10K vastuista. Noudatin samanlaista menetelmää muiden komponenttien juottamiseksi I/O- ja IC -kortille. Jokaisen Full Adder -levyn valmistuttua testasin ne samalla menetelmällä kuin leipälaudan Full Adder. Yllättäen kaikki levyt toimivat oikein ilman ongelmia. Tämä tarkoitti sitä, että levyt reititettiin oikein ja että ne juotettiin oikein. Siirry seuraavaan vaiheeseen!

Vaihe 6: Piirilevyjen viimeistely pinoamista varten

Piirilevyjen viimeistely pinoamista varten
Piirilevyjen viimeistely pinoamista varten
Piirilevyjen viimeistely pinoamista varten
Piirilevyjen viimeistely pinoamista varten
Piirilevyjen viimeistely pinoamista varten
Piirilevyjen viimeistely pinoamista varten

Seuraava tehtävä oli juottaa kaikki otsikkotapit kullekin levylle. Minun oli myös lisättävä hyppyjohdot oikean otsatapin ja Full Adder -korttien tulojen/lähtöjen (A, B, Cin, V+, GND, Sum, Cout) väliin. Tämä vaihe voitaisiin välttää, jos suunnittelisit eri piirilevyjä jokaiselle lisäyspiirin tasolle, mutta halusin minimoida suunnittelun ja kustannukset luomalla vain yhden täydellisen lisäpiirilevyn. Tämän seurauksena liitännät näihin tuloihin/lähtöihin vaativat hyppyjohtimia. Kaaviossa esitetään, miten suoritin tämän tehtävän ja mitä tappeja käytettiin Full Adder -levyjen kullakin tasolla. Kuvat osoittavat, kuinka juotin hyppyjohdot jokaiselle levylle. Aloitin juottamalla vapaat johdot oikeisiin otsikoihin. Juotin sitten otsikon piirilevyyn. Kun otsikkotapit ja hyppyjohtimet oli juotettu paikoilleen, juotin hyppyjohtojen vapaat päät oikeisiin piirilevyn johtoihin. Yllä olevassa kuvassa on läheltä otettuja otsikkotappeja ja niihin liitettyjä hyppyjohtoja.

Vaihe 7: Virta virtapiireille

Virta piireille
Virta piireille
Virta piireille
Virta piireille
Virta piireille
Virta piireille

Suunnittelin tässä projektissa 12 V DC -tynnyrin jakkivirtalähteen käyttöä, joten suunnittelin I/O -liitäntäkortin niin, että siinä on DC -tynnyrin liitin/liitin virtalähteelle. Koska käytin samaa I/O -korttia ja halusin käyttää ainoaa virtalähdettä, tarvitsin säätää jännitteen 5 V: ksi, koska tämä on SN7483A IC: n maksimi tulo. Tämän saavuttamiseksi tarvitsin 5 V: n säätimen ja kytkimen, joka voisi vaihtaa 12 V: n ja 5 V: n välillä. Yllä oleva kaavio osoittaa, miten kytkin virtapiirin yhteen.

Vaihe 8: Pohjan 3D -tulostus

Pohjan 3D -tulostus
Pohjan 3D -tulostus
Pohjan 3D -tulostus
Pohjan 3D -tulostus
Pohjan 3D -tulostus
Pohjan 3D -tulostus

Nyt kun kaikki johdotukset ja juotos on valmis, minun piti selvittää, miten se kaikki pidettiin yhdessä. Valitsin CADing- ja 3D -tulostusmallin, joka mahtuu ja näyttää kaikki tämän projektin osat.

Suunnittelunäkökohdat Tarvitsin paikkoja piirilevyjen kiinnittämiseen pultteilla ja pysäytyksillä. Pinotut lisäosat ovat visuaalisesti houkuttelevimpia, ja halusin saada ne esille, kun niitä ei käytetä, joten halusin paikan IC -piirilevyn säilyttämiseen. Minun piti ottaa käyttöön virtapiiri, jossa on katkaisimet ja DC -tynnyrin liitin/liitin. Lopuksi halusin jonkinlaisen kotelon näyttökotelon, joka estää pölyn kerääntymisen avoimiin piirilevyihin, joten tarvitsin kotelon istumapaikan.

3D -mallinnus Pohjan suunnittelussa käytin Fusion360: ta. Aloitin piirilevyn mitoista ja asennusreikien etäisyydestä. Sen jälkeen käytin sarjan luonnoksia ja suulakepiirteitä säätääksesi alustan korkeuden ja koon PCB -kiinnityspisteillä. Seuraavaksi tein kotelon katkaisut ja virtapiirin. Sitten tein alueen IC -piirilevyn säilyttämiseen, kun sitä ei käytetä. Lopuksi lisäsin viimeistelyreunan yksityiskohdat ja lähetin sen Cura -leikkausohjelmistolleni.

Tulostus Valitsin mustan PLA -filamentin. Tulostus kesti hieman yli 6 tuntia ja siitä tuli hieno. Yllättäen kaikki mitat olivat oikein ja kaikki näytti siltä, että ne sopisivat yhteen oikein. Yllä olevassa kuvassa näkyy tulostus sen jälkeen, kun olen lisännyt esteet kiinnitysreikiin. Ne sopivat täydellisesti!

Vaihe 9: Kokoonpano

Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano

Aseta vasteet paikalleen. Laitoin kaikki esteet pohjan asennusreikiin.

Aseta virtapiiri pohjaan. Johdotin kaikki yhteen ja vedin kaikki komponentit kytkimen reiän läpi. Seuraavaksi laitoin virtaliitännän/sovittimen jalustan takaosaan. Työnsin 5V: n säätimen paikkaansa ja lopulta kytkin pystyi työntämään paikalleen.

Asenna I/O -piirilevy. Asetin IC -piirilevyn sen tallennustilaan ja asetin I/O -liitännän piirilevyn päälle. Ruuvasin piirilevyn kiinni 4x M3 -pultilla ja kuusiokoloavaimella. Lopuksi liitin DC -tynnyrin liittimen piirilevyyn.

Pinoa summainpiirilevyt. Pinoin ensimmäisen summaimen paikoilleen. Ruuvasin alas piirilevyn takaosan kiinnitysreikiin, joissa oli 2 pysäytystä. Toistin tämän prosessin, kunnes viimeinen liitin oli paikallaan ja kiinnitin sen vielä kahdella M3 -pultilla.

Tee kotelo. Käytin kotelossa 1/4 akryylia. Mittasin projektin lopullisen korkeuden ja leikkasin CAD -mitoilla 5 kappaletta sivuja ja yläosaa varten yksinkertaisen laatikon, jossa oli avoin pohja. Liimaukseen käytin epoksia. Lopuksi hiomasin pienen puoliympyrän aukon oikealle puolelle kytkimen sijoittamiseksi.

Valmis laskemaan

Vaihe 10: Laskeminen ja vertailu

Image
Image
Laskenta ja vertailu
Laskenta ja vertailu
Laskenta ja vertailu
Laskenta ja vertailu

Liitä uusi laskin ja aloita lisääminen! Kaavasta 10 pohjaan 2 voidaan käyttää nopeaa muuntamista binääri- ja kokonaislukujen välillä. Haluan asettaa tulot ja painaa sitten "yhtä" kääntämällä virtakytkintä ja tarkkailemalla LEDien binäärilähtöä.

Erillisten komponenttien vertaaminen integroituun piiriin. Nyt voit purkaa täydet lisälaitteet ja liittää SN7483A -IC I/O -korttiin. (Älä unohda kääntää kytkintä vastakkaiseen suuntaan, jotta IC saa virtaa 5 V: lla 12 V: n sijasta). Voit suorittaa samat laskelmat ja saat samat tulokset. On melko vaikuttavaa ajatella, että sekä erillinen komponentti Adder että IC toimivat samalla tavalla vain hyvin erilaisessa kokoluokassa. Kuvissa on samat piirien tulot ja lähdöt.

Vaihe 11: Johtopäätös

Toivottavasti pidit tästä projektista ja opit yhtä paljon kuin minä. On melko tyydyttävää oppia jotain uutta ja tehdä siitä ainutlaatuinen projekti, joka vaatii myös uuden taidon, kuten piirilevyjen suunnittelun/valmistuksen, oppimista. Kaikki kaaviot on lueteltu alla. Kaikille kiinnostuneille voin myös linkittää PCB Gerber -tiedostoni, jotta voit tehdä oman 4-bittisen binaarilaskurin. Hyvää tekemistä!

Suositeltava: