Sisukord:

4-bitine kahendkalkulaator: 11 sammu (piltidega)
4-bitine kahendkalkulaator: 11 sammu (piltidega)

Video: 4-bitine kahendkalkulaator: 11 sammu (piltidega)

Video: 4-bitine kahendkalkulaator: 11 sammu (piltidega)
Video: Какого числа от 1 до 31, родился человек, такая у него и вся жизнь 2024, Juuli
Anonim
4-bitine kahendkalkulaator
4-bitine kahendkalkulaator
4-bitine kahendkalkulaator
4-bitine kahendkalkulaator
4-bitine kahendkalkulaator
4-bitine kahendkalkulaator
4-bitine kahendkalkulaator
4-bitine kahendkalkulaator

Mul tekkis huvi arvutite põhimõttelise toimimise vastu. Tahtsin mõista diskreetsete komponentide kasutamist ja keerukamate ülesannete täitmiseks vajalikke ahelaid. CPU üks oluline põhikomponent on aritmeetiline loogikaüksus või ALU, mis teostab toiminguid täisarvudega. Selle ülesande täitmiseks kasutavad arvutid kahendnumbreid ja loogikaväravaid. Üks lihtsamaid toiminguid on kahe numbri liitmine liiturlülituses. See numberphile'i video teeb suurepärast tööd selle kontseptsiooni selgitamiseks Domino Additsiooni kaudu. Matt Parker laiendab seda põhikontseptsiooni ja ehitab Domino arvuti vooluringi, kasutades 10 000 doominot. Terve personaalarvuti ehitamine doominost on absurdne, kuid tahtsin siiski mõista diskreetsete komponentide kasutamist selle lisamisülesande täitmiseks. Videotes loodi loogikaväravad doominost, kuid neid saab valmistada ka põhikomponentidest, nimelt transistoridest ja takistitest. Selle projekti eesmärk oli kasutada neid diskreetseid komponente oma 4-bitise liitekalkulaatori õppimiseks ja loomiseks.

Minu eesmärgid selle projekti jaoks olid järgmised: 1) Õppige kohandatud PCB loomist ja valmistamist 2) Tehke disaini hõlpsasti kontseptuaalseks binaararvude lisamine

Suur osa selle projekti inspiratsioonist ja mõistmisest pärines Simon Innsilt.

Tarvikud

Kasutasin Fritzingit skeemide tegemiseks, trükkplaatide loomiseks ja valmistamiseks

1. samm: teooria

Teooria
Teooria
Teooria
Teooria
Teooria
Teooria
Teooria
Teooria

Loendamine baasis 10 on lihtne, kuna kahe täisarvu summat tähistab erinev täisarv. Lihtsaim näide:

1 + 1 = 2

Loendamisel baasis 2 või binaarides kasutatakse ainult 1 ja 0. Kombinatsiooni 1 ja 0 kasutatakse erinevate täisarvude ja nende summade esitamiseks. Näide loendamisest baasis 2:

1+1 = 0 ja kannate 1 järgmisele bitile

Kui liita kaks bitti (A ja B) kokku, on Sum ja Carry (Cout) väljunditega võimalik saada 4 erinevat tulemust. Seda on näidatud tabelis.

Loogikaväravad võtavad sisendeid ja genereerivad väljundi. Mõned kõige elementaarsemad loogikaväravad koosnevad väravatest NOT, AND ja OR, mida kõiki selles projektis kasutatakse. Need koosnevad transistoride ja takistite erinevatest kombinatsioonidest ja juhtmestikust. Iga värava skeemid on esitatud.

Kui viidata tabelile, siis tabelite summa tulemuste saamiseks saab kasutada nende väravate kombinatsiooni. Seda loogika kombinatsiooni tuntakse ka eksklusiivse OR (XOR) väravana. Sisend peab olema täpselt 1, et saada väljund 1. Kui mõlemad sisendid on 1, on tulemuseks 0. Edastamisbiti tulemusi saab esitada lihtsa JA väravaga. Seega võib nii XOR -i kui ka AND -värava kasutamine kujutada kogu tabelit. See on tuntud kui poolliitja ja skeem on näidatud ülal.

Suuremate kahendarvude lisamiseks tuleb sisestusbitt lisada sisendiks. See saavutatakse, kombineerides 2 Halder Adderi vooluahelat, et luua täisarvuti. Täislisandeid saab seejärel suuremate kahendarvude lisamiseks kokku liita. Oma projektis kaskaadisin 4 täislisandit, mis võimaldas mul omada 4 -bitist sisendit. Täisliitja skemaatika on ülal.

Simon Innsil on teooria kohta suurepärane ja põhjalikum kirjutis. Samuti on mõned PDF -id, mis mulle abiks olid.

2. samm: vooluahela testimine

Vooluahela testimine
Vooluahela testimine
Vooluahela testimine
Vooluahela testimine

Esimene samm pärast loogikaväravate toimimise ja täisarvuti taga oleva teooria mõistmist on vooluahela ehitamine. Alustasin kõigi vajalike komponentide kogumisest: 10K ja 1K takistid, NPN transistorid, leivaplaat, Jumperwires. Järgnesin täieliku liitja väljatrükiga. Protsess oli tüütu, kuid mul oli võimalus saada täislülitaja jaoks töötav vooluring. Ma seoksin sisendid kõrgeks või madalaks ja kasutaksin väljundite testimiseks multimeetrit. Nüüd olin valmis leivalaua ja skeemi trükkplaadiks tõlkima.

3. samm: täissummerdava PCB kujundamine

Täisarvuti trükkplaadi projekteerimine
Täisarvuti trükkplaadi projekteerimine
Täisarvuti trükkplaadi projekteerimine
Täisarvuti trükkplaadi projekteerimine
Täisarvuti trükkplaadi projekteerimine
Täisarvuti trükkplaadi projekteerimine

PCB projekteerimisel kasutasin ainult Fritzingi. See oli minu esimene kord PCB projekteerimisel ja see programm tundus kõige kasutajasõbralikum ja intuitiivsem väikseima õppimiskõveraga. PCB kujundamisel on saadaval ka teisi suurepäraseid programme, nagu EasyEDA ja Eagle. Fritzingi abil saate alustada projekteerimist virtuaalsel leivalaual või skemaatilisel joonisel, seejärel liikuda trükkplaadile. Ma kasutasin selle projekti jaoks mõlemat meetodit. Kui olete valmis trükkplaati valmistama, on failide eksportimiseks ja nende üleslaadimiseks otse Aritrisse, Fritzingi partneriks valmistamisse, lihtsalt nupuvajutusega.

Protsessi alustamiseks joonistage skeemMa alustasin skemaatilise vahekaardiga. Esiteks leidsin ja sisestasin kõik komponendid tööruumi. Järgmisena joonistasin kõik jäljed komponentide vahele. Kindlasti lisasin 5V sisendi ja maandasin sobivatesse kohtadesse.

Kujundage PCBI, klõpsates vahekaardil PCB. Kui liigute otse skeemilt, tekib segadus kõigi komponentidega, mis on ühendatud ratsnesti joontega, tuginedes skeemil tehtud jälgedele. Esimese asjana muutsin halli trükkplaadi suurust soovitud suuruseks ja lisasin kinnitusavad. Lisasin sisendite ja väljundite jaoks ka 16 tihvti. Järgmisena hakkasin komponente loogiliselt korraldama. Püüdsin rühmitada komponente ühendustega, mis olid üksteise lähedal, et minimeerida jälgimiskaugust. Läksin täiendava sammu ja rühmitasin komponendid loogikavärava järgi kokku. Üks minu eesmärke oli visualiseerida, kuidas vooluring töötab, ja jälgida ahela "bitti". Pärast seda kasutasin autorouting -funktsiooni, mis läheb automaatselt läbi ja tõmbab komponentide vahel optimeeritud jäljed. Ma olin skeptiline, et see protsess viis lõpule kõik õiged jäljed, nii et ma vaatasin kaks korda üle ja joonistasin jäljed uuesti sinna, kus need peaksid olema. Õnneks tegi autorouting funktsioon päris head tööd ja ma pidin parandama vaid mõned jäljed. Autorouter tegi jälgedega ka imelikke nurki, mis ei ole "parim praktika", kuid mul oli sellega kõik korras ja kõik töötas endiselt hästi. Viimase asjana lisasin teksti, mis trükitakse siiditrükina. Veendusin, et kõik komponendid on märgistatud. Impordisin ka kohandatud loogikavärava pilte, et rõhutada komponentide rühmitamist. Ülaltoodud viimasel pildil on siiditrükk.

Valmistage PCBI, klõpsates ekraani allosas asuvale valmistamisnupule. See suunas mind otse Aisleri veebisaidile, kus sain konto luua ja kõik oma Fritzingi failid üles laadida. Jätsin kõik vaikeseaded ja tegin tellimuse.

Samm: muude PCB -de kavandamine

Teiste PCBde projekteerimine
Teiste PCBde projekteerimine
Teiste PCBde projekteerimine
Teiste PCBde projekteerimine
Teiste PCBde projekteerimine
Teiste PCBde projekteerimine

Ülejäänud PCB -d, mida ma vajasin, olid sisend-/väljundliidese plaat ja IC -plaat. Ma järgisin nende plaatide sammu 3. Skeemide pdf on postitatud allpool. IC jaoks tegin kõik ühendused virtuaalse leivaplaadi funktsiooni abil. Lisasin täielikkuse skeemi, kuid suutsin otse leivaplaadilt minna PCB vahekaardile, mis oli päris lahe. Enne Aisleris üleslaadimist ja tellimist lisasin I/O liidese plaadil siiditrükil ka aluse 10 teisendusdiagrammi baasi 2.

Samm: komponentide jootmine PCB -le

Jootekomponendid trükkplaadile
Jootekomponendid trükkplaadile
Jootekomponendid trükkplaadile
Jootekomponendid trükkplaadile
Jootekomponendid trükkplaadile
Jootekomponendid trükkplaadile
Jootekomponendid trükkplaadile
Jootekomponendid trükkplaadile

Kõik trükkplaadid saabusid kohale ja mul oli kvaliteet väga muljet avaldanud. Mul pole teiste tootjatega kogemusi, kuid ma ei kõhkle Aisleri uuesti kasutamast.

Järgmine ülesanne oli kõigi komponentide jootmine, mis oli vaevaline protsess, kuid minu jootmisoskus paranes oluliselt. Alustasin täissummutahvlitega ja jootsin komponendid alates transistoridest, siis 1K takistid, siis 10K takistid. Ma järgisin sarnast meetodit, et joota ülejäänud komponendid I/O ja IC -plaadile. Pärast iga täislaua tahvli valmimist testisin neid sama meetodiga nagu leivaplaadi täissummutaja. Üllataval kombel töötasid kõik lauad ilma probleemideta õigesti. See tähendas, et lauad olid õigesti paigutatud ja need olid õigesti joodetud. Järgmise sammu juurde!

6. samm: virnastamiseks mõeldud trükkplaatide viimistlemine

Trükkplaatide viimistlemine virnastamiseks
Trükkplaatide viimistlemine virnastamiseks
Trükkplaatide viimistlemine virnastamiseks
Trükkplaatide viimistlemine virnastamiseks
Trükkplaatide viimistlemine virnastamiseks
Trükkplaatide viimistlemine virnastamiseks

Järgmine ülesanne oli joota kõik päise tihvtid igale tahvlile. Mul oli vaja lisada ka hüppajajuhtmed õige päise tihvti ja Full Adderi plaatide sisendite/väljundite (A, B, Cin, V+, GND, Sum, Cout) vahele. Seda sammu saaks vältida, kui konstrueeriksite lisamisahela igale tasandile erinevad trükkplaadid, kuid tahtsin disaini ja kulusid minimeerida, luues ainult ühe täisarvuti trükkplaadi. Selle tulemusena nõudsid ühendused nende sisendite/väljunditega hüppajajuhtmeid. Esitatud skeem on see, kuidas ma selle ülesande täitsin ja milliseid tihvte kasutati Full Adderi tahvlite igal tasandil. Piltidel on näha, kuidas ma jootsin iga plaadi hüppaja juhtmed. Alustasin vabade juhtmete jootmisega päise õigetele tihvtidele. Seejärel jootsin päise trükkplaadile. Pärast seda, kui ma olin jootnud päise tihvtid koos hüppajajuhtmetega, jootsin džemprijuhtmete vabad otsad trükkplaadi õigetele juhtmetele. Ülaloleval pildil on näha päisepistikute lähivõtteid, millele on jootetud hüppaja juhtmed.

Samm: vooluringide toide

Vooluahelate toide
Vooluahelate toide
Vooluahelate toide
Vooluahelate toide
Vooluahelate toide
Vooluahelate toide

Kavatsesin selle projekti jaoks kasutada 12 V alalisvoolu tünni pistikupesa, nii et kavandasin I/O liidese plaadi nii, et toitesisendiks oleks alalisvoolu tünnipistik/pistik. Kuna ma kasutasin sama I/O plaati ja tahtsin kasutada ainult toiteallikat, oli mul vaja pinget reguleerida 5 V -ni, kuna see on SN7483A IC maksimaalne sisend. Selle saavutamiseks vajasin 5V regulaatorit ja lülitit, mis võiksid lülituda 12V ja 5V vahel. Ülaltoodud skeem näitab, kuidas ühendasin toiteahela kokku.

8. samm: aluse 3D -printimine

Aluse 3D printimine
Aluse 3D printimine
Aluse 3D printimine
Aluse 3D printimine
Aluse 3D printimine
Aluse 3D printimine

Nüüd, kui kogu juhtmestik ja jootmine on lõpule jõudnud, pidin ma välja mõtlema, kuidas seda kõike koos hoida. Valisin CADingi ja 3D -printimise disaini, mis mahutab ja kuvab kõik selle projekti osad.

Disaini kaalutlused Vajasin kohti, kus PCB -sid kinnitada poltide ja vaheseintega. Virnastatud lisad on visuaalselt kõige atraktiivsemad ja ma tahtsin, et need oleksid ekraanil, kui neid ei kasutata, nii et ma tahtsin kohta, kuhu salvestada IC PCB. Mul oli vaja mahutada toiteahel koos lüliti ja alalisvoolu tünni pistiku/pistiku väljalülitustega. Lõpuks tahtsin mingit korpuse vitriini, et vältida tolmu kogunemist avatud trükkplaatidele, nii et mul oli vaja ruumi istumiseks.

Aluse kujundamisel kasutasin Fusion360. Alustasin trükkplaadi mõõtmetest ja kinnitusavade vahekaugusest. Pärast seda kasutasin trükkplaadi kinnituskohtadega aluse kõrguse ja suuruse määramiseks rea eskiise ja väljapressimist. Järgmisena tegin korpuse ja toiteahela väljalõiked. Seejärel tegin ala, kuhu salvestada IC PCB, kui seda ei kasutata. Lõpuks lisasin mõned viimistlusserva detailid ja saatsin selle oma viilutamistarkvarasse Cura.

Valisin musta PLA hõõgniidi. Trükkimine võttis veidi üle 6 tunni ja tuli suurepärane. Üllataval kombel olid kõik mõõtmed õiged ja kõik tundus, et see sobiks korralikult kokku. Ülaloleval pildil on trükitud pärast seda, kui olen lisanud eraldusjooned kinnitusavadesse. Need sobisid ideaalselt!

9. samm: kokkupanek

Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek

Sisestage vaheseinad. Asetasin kõik takistused aluse kinnitusavadesse.

Asetage toiteahel alusesse. Ma ühendasin kõik kokku ja tõmbasin kõik komponendid läbi lüliti ava. Järgmisena sisestasin toitepistiku/adapteri aluse tagaküljele. Lükkasin 5V regulaatori oma pesasse ja lõpuks sai lüliti asendisse suruda.

Paigaldage I/O trükkplaat. Asetasin IC trükkplaadi selle salvestusruumi ja asetasin I/O liidese trükkplaadi peale. Kruvisin trükkplaadi 4x M3 poltide ja kuuskantdraiveri abil maha. Lõpuks ühendasin alalisvoolu tünnipistiku PCB -ga.

Virnage summaatori trükkplaadid. Panin esimese lisuri oma kohale. Keerasin trükkplaadi tagakülje 2 eraldusribaga tagumistesse kinnitusavadesse. Kordasin seda protsessi, kuni viimane liitja oli paigas ja kinnitasin selle veel 2 M3 poldiga.

Tehke ümbris. Korpuse jaoks kasutasin 1/4 akrüüli. Mõõtsin projekti lõpliku kõrguse ja lõikasin CAD -mõõtmetega 5 tükki külgede ja ülaosa jaoks välja, et teha lihtne lahtise põhjaga karp. Liimimiseks kasutasin epoksüüdi Lõpuks lihvisin paremal küljel väikese poolringi väljalõike, et lülitit mahutada.

Arvutamiseks valmis

10. samm: arvutamine ja võrdlus

Image
Image
Arvutamine ja võrdlus
Arvutamine ja võrdlus
Arvutamine ja võrdlus
Arvutamine ja võrdlus

Ühendage uus kalkulaator ja alustage lisamist! Diagrammi 10 kuni 2 saab kasutada binaar- ja täisarvude kiireks teisendamiseks. Ma eelistan seadistada sisendid ja seejärel vajutada "võrdseks", lülitades toitelüliti ja jälgides LED -ide binaarset väljundit.

Diskreetsete komponentide võrdlemine integraallülitusega. Nüüd saate eemaldada kõik lisad ja ühendada SN7483A IC sisend-/väljundplaadiga. (Ärge unustage lülitit pöörata vastupidises suunas, et toita IC -d 12 V asemel 5 V). Saate teha samu arvutusi ja saate samu tulemusi. On üsna muljetavaldav mõelda, et nii diskreetkomponent Lisur kui ka IC toimivad samamoodi lihtsalt väga erinevas suuruses. Piltidel on samad ahelate sisendid ja väljundid.

Samm 11: Järeldus

Loodan, et teile meeldis see projekt ja õppisite sama palju kui mina. On üsna rahuldav õppida midagi uut ja muuta see ainulaadseks projektiks, mis nõuab ka uue oskuse, näiteks trükkplaatide disaini/valmistamise, omandamist. Kõik skeemid on loetletud allpool. Kõigile huvilistele võin linkida ka oma PCB Gerberi failid, et saaksite teha oma 4-bitise kahendkalkulaatori. Head tegemist!

Soovitan: