Circuite

Cum se construiește un computer pe 8 biți: 18 pași (cu imagini)

Как использовать Zoom и FaceRig | Веселье со встречами

Как использовать Zoom и FaceRig | Веселье со встречами

Cuprins:

Anonim

Construirea unui computer TTL pe 8 biți pare a fi o sarcină descurajantă și complicată sau cel puțin mi-a făcut-o când am pornit în călătoria mea pentru a înțelege arhitectura unui procesor de bază. Când vine vorba de ea, un CPU este destul de simplu în funcționare odată ce ați învățat fundamentele din spatele tuturor proceselor sale. Acest proiect este destinat să ajute pe oricine interesat să-și construiască calculatorul propriu și să câștige cunoștințele minunate care vin împreună cu acest proces. Nu vă fie frică să încercați, puteți afla numai.
Acest proiect va începe prin a descrie elementele de bază ale tehnologiei electronice. După aceea, vor fi descrise fundamentele logicii binare și booleene. În cele din urmă vom trece apoi la funcția diferitelor părți ale unui calculator simplu (cu câteva modificări) descrise în textul lui Malvino Calculatoare electronice digitale . Acest lucru înseamnă că produsul final al acestui Instructable va fi un computer pe care îl puteți programa cu un set de instrucțiuni unic. Acest proiect lasă, de asemenea, multe din aspectele de proiectare ale calculatorului până la dvs. și servește ca un ghid pentru construirea propriului computer. Acest lucru se datorează faptului că există multe modalități de abordare a acestui proiect. Dacă aveți deja o înțelegere solidă a logicii booleene și a funcționării binare, vă puteți simți liber să treceți la carnea proiectului. Sper că vă bucurați cu toții și veți obține ceva dintr-o clădire de genul asta, știu că am făcut-o.
Pentru acest proiect veți avea nevoie de:
1.) O sursă de alimentare
2.) Breadboard-uri + multe fire
3.) LED-uri pentru ieșire
4.) Diferite IC logice (discutate mai târziu)
5.) Timp liber
6.) Disponibilitatea de a mizeria și de a învăța din greșeli
7.) O mulțime de răbdare
Opțional (dar foarte util):
1.) Osciloscop
2.) Multimetru digital
3.) Programator EEPROM
4.) Surubelnita Sonic
Link-uri utile pentru un proiect ca acesta:
Calculatoare electronice digitale:
http://www.amazon.com/Digital-computer-electronics-Albert-Malvino/dp/007039861
Cartea de bucate TTL: http://www.amazon.com/TTL-Cookbook-Understanding-Transistor-Transistor-Integrated/dp/B0049UUV38

Furnituri:

Pasul 1: Ce este un computer?

Aceasta poate părea o întrebare foarte simplistă, care nu trebuie să răspundă atunci când, de fapt, este o întrebare pe care mulți oameni nu o cunosc adevăratul răspuns. Calculatoarele au existat mult mai mult decât tranzistorul în formă mecanică și teoretică. Definiția reală a unui computer a fost gândită de un individ foarte inteligent, pe nume Alan Turing. El a descris o mașină numită Mașina Turing. Fiecare computer pe care îl folosim astăzi, de la calculatorul sau telefonul mobil pe care îl citești pe supercomputere, poate fi clasificat ca mașină Turing la nivelul cel mai simplist.
Ce este o mașină Turing? O mașină Turing constă din 4 părți: banda, capul, masa și registrul de stare. Pentru a vizualiza funcționarea unei astfel de mașini, trebuie să vă imaginați mai întâi o bandă de film ce se întinde infinit în fiecare direcție. Acum, imaginați-vă că fiecare celulă din această bandă de film poate conține numai unul dintr-un set definit de simboluri (cum ar fi un alfabet). Pentru acest exemplu, să ne imaginăm că fiecare celulă poate conține numai "0" sau "1". Aceste celule pot fi rescrise într-o perioadă infinită de timp, dar își păstrează informațiile pe o perioadă nedeterminată până când se schimbă din nou. Partea mașinii Turing, cunoscută sub denumirea de cap, poate scrie simboluri celulelor, precum și fie să crească, fie să-și reducă poziția pe benzi de film cu un număr întreg (număr întreg) de celule. Următoarea parte este tabelul care conține un set de instrucțiuni pentru execuția capului, cum ar fi "mutați dreapta 4 celule" și "setați celula la 1". Cea de-a patra și ultima parte a mașinii Turing este registrul de stat al cărui scop este de a menține starea actuală a mașinii. Starea include instrucțiunile, precum și datele curente de pe bandă.
Acesta este modul în care funcționează simplu un computer. Când computerul funcționează, acesta funcționează ca mașină de turing. Procesează datele deținute pe calculatorul dvs. printr-un set dat de instrucțiuni și algoritmi. Calculatorul descris în acest manual este un model foarte simplist al unui calculator, dar funcționează în continuare ca un program pe care îl puteți programa cu un set de instrucțiuni pe care le va urma și va executa.
Link-uri utile:
Wikipedia pe mașinile Turing:
http://en.wikipedia.org/wiki/Turing_machine

Pasul 2: Introducere în electronică

Înainte de a construi un calculator pe 8 biți, este extrem de util să înțelegeți proprietățile elementare ale circuitelor electrice și analogice. Există componente pe computerul pe care îl veți construi, vor avea nevoie de componente analogice. Există multe ghiduri de auto-predare electronice disponibile pentru un cost minim care oferă un curs de accidente în inginerie electrică. Am găsit personal Ghidul de predare în limba electronică electronică de Harry Kybet și Earl Boysen să fie o carte minunată pentru abordarea lumii electronicii analogice.
Ghidul de predare în limba electronică electronică : http://www.amazon.com/Electronics-Self-Teaching-Guide-Teaching-Guides/dp/0470289619/
Componente comune:
Rezistor - limitează curentul, măsurat în ohmi.
Capacitor - Încărcătura de stocare poate fi fie polară, fie nepolară (sensul polar că trebuie plasat în direcția corectă pentru a funcționa). Măsurată în farads.
Diodă - permite numai curentului să curgă într-o direcție, se descompune la o anumită tensiune când este plasat în direcția greșită.
Tranzistor - O poartă curentă care este controlată de un al treilea bolț care acționează ca un mediator. Există multe tipuri de tranzistori, dar aici vom vorbi despre BJT (tranzistor bipolar de joncțiune) care vine în două tipuri: NPN și PNP.

Curentul, tensiunea și rezistența merg mana în mână într-un circuit. Relația dintre cele trei poate fi exprimată cu legea lui Ohm: V = IR. Cu alte cuvinte, tensiunea este egală cu curentul în amperi înmulțit cu rezistența în ohmi. Legea lui Ohm este una dintre cele mai importante formule din domeniul electronicii și merită să știi din capul tău.
Pentru a aplica legea lui Ohm, trebuie să știi rezistența unui circuit. Pentru a găsi valoarea unui rezistor trebuie să utilizați codul de culoare. Codul culorii rezistorului se bazează pe spectrul vizibil și poate fi memorat în multe moduri diferite. Pentru cei care nu au grijă să-l memoreze, există o multitudine de instrumente care există pentru a vă ajuta să găsiți valoarea corectă pentru rezistor. Pentru a calcula rezistența totală într-un circuit aveți nevoie de două formule pentru două configurații diferite de rezistențe: serie și paralel. În serie, un rezistor urmează celălalt, în timp ce în paralel lucrează alături de celălalt. În serie formula este foarte simplă:
Rezistoare în serie: R (total) = R (1) + R (2) +. . . + R (N)
Înseamnă că trebuie doar să adăugați valorile rezistențelor.
Rezistoare în paralel: R (total) = 1 / {1 / R (1) + 1 / R (2) +. . . + 1 / R (N)}
Un instrument bun pentru a găsi rezistență la codul de culoare: http://www.csgnetwork.com/resistcolcalc.html
Este mai ușor să înțelegeți formula pentru rezistențe în paralel dacă vă gândiți la rezistoare ca lucrand împreună ca doi oameni care lucrează împreună la un proiect. Aceeași formulă este folosită și pentru problemele de cuvinte în care vi se oferă rata la care o persoană operează și trebuie să aflați cât de repede va fi finalizat proiectul în cazul în care lucrați împreună.
Pentru a afla cât de mult este furnizat curentul unei componente date cu o valoare de rezistență dată, trebuie doar să conectați valorile rezistenței și tensiunii în legea lui Ohm și să rezolvați problema I. De exemplu:
O lumină se află într-un circuit și două rezistențe de 1K (o mie) sunt plasate în fața ei în paralel. Cu o sursă de alimentare de 9 volți, cât de mult este furnizat curentului lumina?
1.) Calculați R (total):
R (total) = 1 / (1/1000 + 1/1000) = 1 / (2/1000) = 1000/2 = 500 ohmi
2.) Calculați curentul utilizând legea lui Ohm:
9 = I * 500
I = 9/500 = .018 A = 18 mA (milliamps)
De asemenea, puteți aranja rezistențe într-un circuit de reglare a tensiunii. Aceasta se numește divizor de tensiune și implică două rezistoare în serie. Tensiunea de ieșire a celor două rezistoare este la intersecția lor. Pentru o idee mai bună, uitați-vă la imaginea pe care am atașat-o. În acest aranjament formula pentru tensiunea de ieșire este:
V (ieșire) = V (sursă) * R (2) / {R (1) + R (2)}
Condensatoarele vor fi utile în calculatorul dvs. cu construcția ceasului. Ceasul este pur și simplu un circuit care se aprinde și se oprește la o viteză constantă. La fel ca rezistoarele, condensatoarele au două formule pentru a găsi valoarea totală atât pentru configurațiile seriale, cât și pentru cele paralele.
Seria: C (total) = 1 / {1 / C (1) + 1 / C (2) +. . . + 1 / C (N)}
Paralel: C (total) = C (1) + C (2) +. . . + C (N)

Rata la care un încărcător de condensator depinde de rezistența circuitului înainte (sau după ce îl descărcați) condensatorul, precum și capacitatea acestuia. Încărcarea unui condensator este măsurată în constante de timp. Este nevoie de 5 constante de timp pentru încărcarea sau descărcarea completă a unui condensator. Formula pentru găsirea constantei de timp a unui condensator în câteva secunde este:
T (constant) = Rezistență * Capacitate
Diodele sunt simple în funcționare și vin la îndemână atunci când construiți un computer TTL. Ele permit numai curentului să curgă într-o direcție. Când sunt plasate în direcția corectă, ele sunt ceea ce se numește înaintarea-părtinitoare. Când sunt inversate, se descompun la o anumită tensiune. Când o diodă funcționează împotriva curentului, aceasta este inversă.
Un tranzistor funcționează ca o supapă care este acționată de curent. Un BJT are trei pini: colectorul, emițătorul și baza. Din motive de simplitate în acest pas voi descrie un tranzistor NPN în care curentul curge de la colector la emițător. Curentul aplicat la bază comandă cantitatea de curent care circulă din colector către emițător. Tranzistorii sunt ideali pentru multe aplicații datorită capacității lor de a amplifica un semnal. Acest lucru se datorează faptului că curentul aplicat la baza tranzistorului poate fi considerabil mai mic decât curentul controlat. Acest câștig în curent se numește câștigul curent al tranzistorului sau beta. Formula pentru beta este:
Beta = curent (colector) / curent (bază)
Când un tranzistor este complet pe el se spune că este saturat. Un tranzistor boolean este unul care se află fie în starea sa saturată, fie în afara și niciodată între ele. Acesta este tipul de tranzistor pe care îl veți ocupa mai ales în domeniul electronicii digitale. Tranzistorii formează porțile logice necesare funcționării unui computer. Acestea vor fi descrise mai târziu.
Link-uri utile:
http://en.wikipedia.org/wiki/Resistor
http://en.wikipedia.org/wiki/Capacitor
http://en.wikipedia.org/wiki/Diode
http://en.wikipedia.org/wiki/Transistor

Pasul 3: Numerele binare

Astăzi suntem obișnuiți cu un sistem global de numerotare care se bazează pe numărul zece. Prin asta vreau să spun că nu avem nici o cifră în sistemul nostru de numere care merită valoarea a zece și astfel numărul nostru de sisteme este de bază zece.
Gândiți-vă la sistemul nostru de număr ca un kilometraj. Un kilometraj contorizează de la cea mai mică cifră la cea mai înaltă cifră și apoi forțează următorul rotor în ordine pentru a avansa un loc. De exemplu:
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
1 0 <- Realizați următoarea cifră
Binar este baza doi, ceea ce înseamnă că are doar două cifre și nu are nici o cifră pentru 2. Binar are doar cifrele 0 și 1 sau "off" și "on". Pentru a număra în binar, aplicați pur și simplu tehnica kilometrajului:
0001b - 1
0010b - 2
0011b - 3
0100b - 4
0101b - 5
0110b - 6
0111b - 7
1000b - 8
etc. . .
Există un alt factor al sistemului nostru de numere care îl face pe baza a zece; pe măsură ce deplasăm mai mult în cifre, greutatea cifrelor crește cu o putere de zece. De exemplu, 1 = 10 ^ 0, 10 = 10 ^ 1, 100 = 10 ^ 2, etc. . . În binar, lucrurile sunt, desigur, baza a doua și, ca atare, fiecare număr succesiv este o altă putere de două. 1b = 1 = 2 ^ 0, 10b = 2 = 2 ^ 1, 100b = 4 = 2 ^ 2, etc. . .
Pentru a converti un număr zecimal în binar există un truc simplu cunoscut sub numele de dublu-dabble care face procesul mult mai ușor:
Spuneți că vrem să convertim 13 la un număr binar, începem prin împărțirea lui 13 cu două și scrierea restului. Apoi, direct deasupra ei, notați numărul rezultat fără restul (6 în acest caz) și împărțiți-l cu două și notați restul deasupra celui precedent. Continuați acest proces până când ajungeți la 1 sau la 0. La final ați citit din partea de sus în jos pentru a obține rezultatul.
1/2 = 0 R1 <Citiți de sus în jos. Rezultatul este 1101 sau 2 ^ 0 + 0 + 2 ^ 2 + 2 ^ 3 = 1 + 0 + 4 + 8 = 13. Acesta este numit un cuvânt binar.
3/2 = 1 R1 <
6/2 = 3 R0 <
13/2 = 6 R1 <
Hexadecimal este folosit foarte des cu binar. Hexadecimal este baza 16 și conține cifrele 0-9 și a-f. O cifră hexazecimală este utilizată pentru a descrie o hârtie sau patru biți de date. Un pic este un singur 1 sau 0 de binar. O nibble poate conta de la 0 la 15 (0000 la 1111) înainte ca următorul bit să fie în următoarea nibble. Două nibble împreună este un octet sau 8 biți. Deoarece prima cifră este 2 ^ 0, ultima cifră este ponderată 2 ^ 7. Prin urmare, un octet poate fi oriunde în intervalul de la 0 la 255. Pentru a exprima octetul 00101110 (46 în zecimal) în hexazecimal, mai întâi, separați cele două nibble în 0010 și 1110. Prima nibble are o valoare de 2 și a doua unul are o valoare E (sau 14 în zecimal). Prin urmare, octetul 00101110 în hexazecimal ar fi 2E.
Link-uri utile:
http://en.wikipedia.org/wiki/Binary_numeral_system
http://en.wikipedia.org/wiki/Hexadecimal

Pasul 4: Porți logice

Un computer constă din mii de porți logice aranjate pentru a îndeplini anumite funcții. O poartă logică este o componentă a electronicii digitale a cărei ieșire depinde de starea intrărilor sale. Cele mai multe porți logice au două intrări și o ieșire. Vă puteți gândi la porțile logice ca factori de decizie în domeniul electronicii digitale. Cele șase principale porți logice utilizate în electronica digitală sunt:
ȘI Poarta: Ieșirea este ridicată atunci când toate sunt mari de intrare.
OR Poarta: Ieșirea este mare atunci când oricare din intrările sale sunt ridicate.
NOT Gate: Are doar o intrare. Ieșirea este mare atunci când intrarea este scăzută.
Portul NAND: Ieșirea este mare, dacă toate intrările nu sunt mari.
Poarta NOR: Ieșirea este mare atunci când nici una dintre intrările sale nu este ridicată.
Poarta XOR: Ieșirea este mare atunci când un număr impar de intrări este ridicat.

Buffer Tri-State: Un tampon care este controlat de un al treilea semnal logic.
Este important să menționăm acum diferența dintre semnalul înalt "1" și semnalul scăzut "0". Un semnal înalt poate fi fie o conexiune la tensiune pozitivă, fie poate fi o intrare plutitoare. O intrare plutitoare este una care nu este conectată la nici o ieșire. Un exemplu de intrare plutitoare ar fi unul care nu este conectat deloc sau unul care este conectat la ieșirea unui buffer de 3 state care nu este activat. Un semnal slab este prezent când o intrare este la sol.
Porțile logice pot fi introduse între ele pentru a produce aproape orice funcție imaginabilă. De exemplu, două porți NOR pot fi alimentate unul cu altul pentru a stoca un bit de date într-un zăvor RS_NOR în timp ce alimentarea este furnizată circuitului.

Pasul 5: Numărarea binară (contorul programului)

Una dintre părțile esențiale ale unui computer este contorul programului său. Contorul de programe furnizează computerului adresa curentă a instrucțiunii care trebuie executată. Totuși, pentru ca programul să funcționeze, trebuie să numărați în binar. Pentru a face acest lucru JK flip flops sunt folosite. Un flip-flop este un aranjament de porți logice care stochează un bit (ca și zăvorul RS_NOR descris în faza de porți logice). Un flip-flop JK își schimbă starea atunci când intrarea în impulsuri de ceas merge înaltă și apoi scăzută din nou (intrările lui J și K trebuie, de asemenea, să fie ridicate). Cu alte cuvinte, ori de câte ori un flip flop JK ajunge la marginea căderii unui impuls de ceas, starea lui se schimbă de la "0" la "1" sau de la "1" la "0".
Dacă conectați ieșirea unui flip flop JK la altul și le cascadezi rezultatul este un contor binar care acționează ca un kilometraj. Acest lucru se datorează faptului că, în timp ce primul flip flop JK din secvență merge în sus și apoi scăzut, declanșează următorul în secvență. Frecvența ceasului (de câte ori se activează și se oprește o secundă) se reduce la jumătate cu fiecare adăugare succesivă a unui flip flop JK. Acesta este motivul pentru care un JK flip-flop este de asemenea numit circuitul diviziune-două. Modelul rezultat pentru patru jgheaburi JK va fi 0000, 0001, 0010, 0011, 0100, etc. . .
Pentru cel mai simplu calculator posibil descris în acest manual, sunt totuși câteva funcții de care aveți nevoie pentru a face computerul să funcționeze. Pentru ca computerul să poată reporni programul, are nevoie de capacitatea de a șterge sau de a seta toate ieșirile la zero. Contorul de programe are, de asemenea, nevoie de capacitatea de a încărca un cuvânt binar pentru codul JMP op care permite calculatorului să sară la o anumită instrucțiune. Porțile logice sunt folosite pentru a atinge acest obiectiv. Din fericire pentru noi contoarele binare vin în chips-uri convenabile cu toate funcțiile de care aveți nevoie.

Pasul 6: Registrele

Registrele:

Registrele ar putea fi partea cea mai importantă a unui computer. Un registru stochează temporar o valoare în timpul funcționării unui computer. Calculatorul pe 8 biți descris în acest manual de instrucțiuni are doi registri atașați la unitatea sa de operare (ALU), un registru pentru stocarea instrucțiunilor curente și un registru pentru ieșirea calculatorului.

În funcție de chip, un registru va avea 2 sau 3 pini de control. Registrele pe care le vom folosi au două pinii de control: activarea ieșirii și activarea intrării (ambii activi când este scăzut). Când pinul de activare a ieșirii este conectat la masă, cuvântul binar stocat în prezent este trimis peste pinii de ieșire. Când pinul de intrare este conectat la masă, cuvântul binar prezent pe pinii de intrare este încărcat în registru.

Un exemplu de utilizare a unui registru pe un computer este acumulatorul de pe unitatea logică aritmetică (ALU) care efectuează operații matematice. Acumulatorul este ca un scratchpad pentru calculatorul care stochează ieșirea din ALU. Acumulatorul este, de asemenea, prima intrare pentru ULE. Registrul B este a doua intrare. Pentru o operație de adăugare, prima valoare este încărcată în acumulator. După aceea, a doua valoare care urmează să fie adăugată la prima valoare este încărcată în registrul B. Ieșirile acumulatorului și registrul B sunt fuzibile deschise și se hrănesc în mod continuu în ALU. Ultimul pas pentru adăugare este transferul ieșirii operației în Acumulator.

Registrele funcționează pe o linie de date comună numită magistrala. Autobuzul este un grup de fire egale în număr față de arhitectura oricărui procesor. Acest lucru este de a pune într-adevăr calul înainte de coșul de caractere lățimea de autobuz este măsurarea definitorie pentru arhitectura procesorului. Deoarece un digital 1 înseamnă tensiune pozitivă și un 0 înseamnă legare la pământ, ar fi imposibil ca toate registrele să partajeze aceeași magistrală fără a le oferi posibilitatea de a se conecta selectiv și de a se deconecta de la magistrală. Din fericire pentru noi, există un al treilea stat între 1 și 0, care este ambivalent la imput curent, care funcționează excelent pentru acest lucru. Introduceți tamponul tri-state: un cip care vă permite să conectați selectiv grupuri de fire la o magistrală. Folosind unele dintre aceste buffer-uri tri-state, puteți avea fiecare registru și cip pe întregul computer care are nevoie de comunicație împărtășesc aceleași fire ca un autobuz. În cazul calculatorului meu, era o bandă largă de sloturi de paiete de 8 fire care au tras pinii de jos ai panoului de bastoane. Experimentați-vă cu autobuzele, deoarece acestea conțin toate informațiile de la bucată la bucată în computer. O operație defectuoasă ar putea însemna date eronate care se răsfrâng pe linie.

Pasul 7: UAU

Unitatea logică aritmetică (ALU) a unui computer este partea care execută operațiile matematice. Pentru computerul SAP va trebui să aibă doar două funcții: adăugarea și scăderea. Adăugarea și scăderea în lucrări binare foarte asemănătoare cu adăugarea și scăderea în termeni zecimali, de exemplu:
1 <- Carry 1 1 <- Carry Bits
05 0101
+05 +0101
10 1010
Pentru a adăuga binar avem nevoie de ceea ce se numește un full-adder. Un aditiv complet adaugă în mod efectiv un pic de binar în altul cu o transportare și efectuare. Introducerea unui sumator complet reprezintă o a treia contribuție pentru procesul de adăugare. Acestea sunt utilizate pentru a lega împreună multi-adders împreună. Efectuarea unui procesor complet are loc atunci când există o pereche de cele în procesul de adăugare. Efectuarea unui adactor complet este introdus în carcasa pentru a adăuga mai mulți biți de binar. Pentru a construi un aderent complet aveți nevoie de două porți XOR, două porți și o poartă OR.
Pentru a scădea binar, trebuie să convertim un număr la omologul său negativ și să îl adăugăm la numărul din care se scade. Pentru a face acest lucru folosim ceea ce se numește complimentul lui 2. Pentru a lua complimentul 2 al unui cuvânt binar, inversați fiecare bit (schimbați fiecare 0 la 1 și fiecare 1 la 0) și adăugați unul.
5 = 0101, -5 = 1010+1 = 1011
Nefolosit -> 1 1
10 1010
+(-5) +1011
5 0101
Pentru a controla inversarea biților, folosim porțile XOR cu o intrare normal redusă. Cu o intrare normal redusă, ieșirea este echivalentă celeilalte intrări. Când setați intrarea de comandă ridicată, inversați cealaltă intrare. Dacă vom cupla această inversiune cu un pic trimis la transportarea tuturor aditivilor o operație de scădere este rezultatul.

Pasul 8: Memorie program și memorie RAM

Memoria de program a calculatorului dvs. va stoca instrucțiunile care urmează să fie executate. Acesta va acționa și ca RAM care poate stoca valori în timpul funcționării calculatorului. Memoria programului este formată din trei părți principale: memoria, registrul de adrese de memorie (MAR) și multiplexorul. Memoria este un cip care are 16 octeți de spațiu de stocare. Există o adresă de patru biți care este introdusă în memorie care îi spune ce octeți ar trebui să citească sau să scrie. MAR stochează adresa curentă pentru octetul care urmează să fie citit sau scris din memorie. Este alimentat în mod constant în cipul de memorie, cu excepția cazului în care computerul este în starea sa de programare. Un multiplexor vă permite să alegeți între două intrări și să ieșiți intrarea dată. Multiplexorul folosit în calculatorul meu vă permite să selectați două intrări de patru biți (MAR și o intrare manuală). Când computerul se află în starea de programare, adresa manuală este introdusă în memorie și vă permite să programați octeți în memoria calculatoarelor la adresa pe care o definiți.

Pasul 9: Registrul de instrucțiuni

Registrul de instrucțiuni al unui computer stochează instrucțiunea curentă, precum și o adresă la care va funcționa instrucțiunea. Este o componentă foarte simplă, cu un scop foarte important. În timpul funcționării calculatorului, conținutul unei adrese date în memorie este transferat în registrul de instrucțiuni. În calculatorul meu, cei mai de jos biți sunt codul OP sau instrucțiunea curentă care trebuie efectuată. Cei patru biți dreapta, sau cele mai mici patru biți, informează computerul despre ce adresă să utilizeze pentru operație. Primii patru biți alimentează în mod constant codul OP în matricea de control care spune computerului ce trebuie făcut pentru o instrucțiune dată. Cei mai drept patru biți se reintroduc în computer, astfel încât adresa poate fi transferată în MAR sau în contorul de programe.

Pasul 10: Înregistrarea rezultatelor

Dacă un computer ar fi doar să alimenteze ieșirea autobuzului către operator, citirea nu ar face prea mult sens. Acesta este motivul pentru care există un registru de ieșire al cărui scop este de a stoca valorile destinate producției. Ieșirea pentru computerul dvs. poate fi fie un simplu LED care afișează binar brute, fie puteți avea un afișaj care citește numere reale pe afișaje pe șapte segmente. Totul depinde de munca pe care doriți să o puneți în computer. Pentru calculatorul meu folosesc niște tuburi Numitron ruse IV-9 pentru ieșirea calculatorului meu cuplat cu un arduino pentru a face conversia de la binar la zecimal.

Pasul 11: Ceas

Fiecare parte a calculatorului trebuie să fie complet sincronizată pentru a funcționa corect. Pentru a face acest lucru, calculatorul are nevoie de un ceas sau de un circuit care are o ieșire care se activează și se oprește la o rată constantă. Cel mai simplu mod de a face acest lucru este să utilizați un cronometru 555. Timerul 555 este un timer extrem de popular care a fost inventat în epoca apariției calculatorului, care este extrem de popular cu amatorii de astăzi. Pentru a construi circuitul 555, trebuie să știți cum funcționează.
Ceasul pentru calculatorul dvs. ar trebui să fie relativ lent la început. 1Hz, sau un ciclu pe secundă, este o valoare bună de pornire. Acest lucru vă permite să vizualizați funcționarea computerului și să verificați eventualele erori. Cipul 555 are nevoie de două rezistoare și un condensator pentru funcționare. Cele două rezistoare determină cât timp sunt lungi impulsurile mari și joase, precum și frecvența generală. Condensatorul modifică lungimea impulsului pentru ambele. Dacă nu aveți nicio experiență cu 555 de cronometre, vă recomand să experimentați cu ei.
Link-uri utile:
http://en.wikipedia.org/wiki/555_timer_IC

Pasul 12: Arhitectura

Acesta este pasul în care totul se reuneste. Este timpul pentru a proiecta arhitectura calculatorului. Arhitectura este modul în care registrele și componentele diferite ale computerului sunt organizate. Aspectul designului depinde complet de dvs., deși vă ajută să păstrați un scop în minte (ceea ce doriți să faceți computerul dvs.) și un model pentru a ieși din. Dacă doriți să vă proiectați calculatorul după a mea, este complet bine. Am modificat arhitectura SAP-1 găsită în Calculatoare electronice digitale pentru computerul meu pe 8 biți.
Un aspect de design care trebuie ținut mereu în minte este modul în care datele sunt transferate între diferitele componente ale computerului. Cea mai obișnuită metodă este să aveți o "autobuz" comună pentru toate datele de pe computer. Intrările și ieșirile regiștrilor, ALU, contorul de programe și memoria RAM sunt conectate la magistrala computerului. Firele sunt aranjate în ordine de la bitul cel mai puțin semnificativ (1) la cel mai mare bit semnificativ (128).
Oricare și toate ieșirile care sunt conectate la magistrala trebuie să fie complet deconectate în timp ce sunt inactive sau altfel s-ar fuziona între ele și ar duce la o ieșire eronată. Pentru a face acest lucru, folosim tampoane Tri-state pentru a controla ieșirea anumitor elemente care ies în mod implicit, cum ar fi acumulatorul, ALU și intrarea reală pentru programarea calculatorului.

Pasul 13: Matricea de control

Matricea de control a unui computer îi spune fiecărei părți individuale când trebuie să ia o intrare și să își dea valoarea. Există mai multe stări ale fiecărei operații într-un computer. Aceste stări sunt declanșate de un tip de contor numit contor. Un contor de sonerie are doar un bit mare la un moment dat și cicluri prin ieșirile sale consecutiv. De exemplu, dacă un contor de sonerie are 4 ieșiri, va avea prima ieșire activă. La următorul impuls de ceas se va seta a doua ieșire mare (și prima scăzută). Următorul impuls de ceas va avansa bitul o ieșire mai mare și așa mai departe. Aceste etape sunt numite state T. Computerul din acest Instructable utilizează 6 stări T pentru operarea unei singure comenzi. Primele trei stări T sunt ceea ce se numește ciclu de preluare în care instrucțiunea curentă este extrasă și plasată în registrul de instrucțiuni. Contorul de programe este, de asemenea, incrementat cu unul. Al doilea set de trei stări T depinde de ce cod OP este introdus în matricea de control din registrul de instrucțiuni. Stările T sunt după cum urmează:
T1: Conținutul numărătorului de programe este transferat în registrul de adrese al memoriei. (Statul de adresă)
T
2: Contorul de programe este incrementat de unul. (Gradul de creștere)
T3: octetul adresat în memoria programului este transferat în registrul de instrucțiuni. (Starea memoriei)
T4: În funcție de ce comandă este executată.
T5: În funcție de ce comandă este executată.
T6: În funcție de ce comandă este executată.
Există două moduri principale de a crea o matrice de control: folosind logica discretă și folosind ROM-urile. Metoda ROM este cea mai ușoară și mai eficientă. Folosirea logicii discrete implică proiectarea unei scheme logice masive care va afișa cuvintele de control corecte pentru computerul dvs. pe baza unei intrări de cod OP. ROM-ul este memorie numai pentru citire. Există mai multe tipuri de ROM-uri pe care le puteți lua în considerare pentru a le utiliza în construirea dvs. Pentru calculatorul meu am folosit inițial EEPROM (ROM programabil electronic ștergător), dar apoi am mutat în NVRAM (memorie de acces aleatoriu non-volatilă) după ce cipurile EEPROM nu au reușit să scrie. Nu recomand NVRAM deoarece este destinat pentru memorie de acces aleatoriu și nu pentru stocare permanentă. EEPROM este cea mai eficientă soluție în opinia mea.
Matricea de control va avea trei cipuri ROM fiecare având cel puțin 32 de adrese de stocare pe 8 biți (precum și elementele de sincronizare și de numărare). Cuvântul binar care este trimis din matricea de control se numește ROM-ul de control și conține toți biți de control pentru fiecare componentă a computerului. Vrei să fii sigur că ai organizat biții de control și cunoști ordinea lor. Pentru nici o operație nu doriți un cuvânt de control care să denatureze fiecare parte a computerului (cu excepția ceasului, desigur). Cuvântul de control pentru computerul descris în acest manual este de 16 biți și este stocat în două cipuri de control ROM. Primele trei adrese ale cipurilor ROM de control dețin cuvintele de control pentru ciclul de preluare. Restul adreselor de pe cip păstrează cuvintele de control în perechi de câte trei pentru fiecare cod OP. Al treilea cod ROM deține locația de memorie pentru începutul secvenței de cuvinte de control pentru fiecare cod OP și se adresează prin codul OP propriu-zis. De exemplu, în computerul meu, dacă dai controlul codul OP 0110, va ieși binar 21, care este adresa startului comenzii JMP. Există un contor pe 8 biți între OP ROM și ROM-urile de control care contează de la 0-2 (primele trei stări T), apoi în cea de-a treia stare T încarcă adresa afișată de OP ROM și se contorizează de la această poziție până la T1 statul eliberează din nou contorul. Inelul și contorul binar pentru matricea de comandă sunt controlate printr-o inversare a impulsului de ceas, astfel încât să existe cuvinte de control atunci când impulsul de ceas în creștere se duce la elementele calculatorului. Întregul proces în ordine este după cum urmează:
1.) Starea T1 șterge contorul la 0, cuvântul de control stocat la 0 este trimis
2.) Ceasul se deplasează și starea adresei are loc
3.) Ceasul se micșorează și, la rândul său, incrementările contorului de comandă și cuvântul de control 1 sunt trimise
4.) Ceasul este ridicat și se produce ciclul incrementării
5.) Ceasul se micșorează și contorul de comandă crește la 2, cuvântul de control 2 este trimis
6.) Ceasul este mare și starea memoriei are loc și codul OP ajunge la registrul de instrucțiuni, T3 este de asemenea activ, ceea ce înseamnă că la următorul impuls de ceas mic va fi încărcat adresa de control OP
7.) Ceasul se micșorează și încarcă contorul cu adresa pentru prima dintre cele trei cuvinte de control pentru codul OP dat
8.) T4, T5 și T6 execută codul OP
9.) T1 resetează contorul, procesul continuă până când este recepționat un OP HLT. Comanda HLT oprește ceasul.

Pasul 14: Microprogramarea

Acum este partea în care decideți ce comenzi doriți calculatorul dvs. să fie capabil. Mi-am dat computerului 6 operațiuni unice care i-ar oferi funcțiile de bază de programare de care aveam nevoie. Comenzile pe care le veți programa în computerul dvs. sunt ceea ce se numește limba de asamblare. Adunarea este una dintre cele mai vechi limbi de programare și poate fi folosită astăzi pe calculatoare. Comenzile din limbă includ încărcarea acumulatorului, adăugarea, mutarea, afișarea și stocarea variabilelor. Fiecare comandă are propriul cod de 4 biți OP în acest computer pe 8 biți. Comenzile pe care le-am ales pentru calculatorul meu sunt:
NOP: Fără operațiune. (0000)
LDA: Încărcați acumulatorul cu valoarea la această adresă. (0001)
ADD: Adăugați valoarea de la adresa specificată la valoarea din acumulator. (0,010)
SUB: Scoateți valoarea de la adresa specificată de la valoarea din acumulator. (0,011)
STO: Stocați conținutul acumulatorului la adresa specificată. (0100)
OUT: Stocați conținutul acumulatorului în registrul de ieșire, astfel încât operatorul să îl poată vedea. (0101)
JMP: Salt la o anumită instrucțiune din memorie la adresa specificată. (0110)
HLT: Opriți funcționarea calculatorului. (0111)
Pentru a determina ce cuvinte de control trebuie trimise pentru fiecare OP, trebuie să știți ce biți trebuie să fie activi în timpul fiecărei stări T. Pentru calculatorul meu am organizat biții după cum urmează (o subliniere denotă un bit activ-scăzut):
CE CO J MI RO II IO OI BI EO SU I AI RI HLT X
CE - Count Enable (permite activarea contorului de programe al programului)
CO - Activare ceas
J - Activare salt
Intrare MI - MAR
RO - Memorie programată
II - Registrul de instrucțiuni în
IO - Înregistrați-vă instrucțiunile
OI - Registrul de ieșire din
Registrul BI - B din
EO - ALU permite ieșirea
SU - Scădere
AI - Acumulator în
AO - Acumulatorul permite ieșirea
RI - memorie de program în
HLT - opriți
X - Nefolosit
Iată ce biți ar trebui să fie activi pentru fiecare stat T pentru o instrucțiune dată, precum și adresa pe care ar trebui să o afișeze în ROM-ul de control:
Preluați:
0: CO, MI - Contorul de programe iese în MAR
1: CE - Contorul este activat pentru următorul impuls de ceas
2: RO, II - octetul adresat este trimis din RAM în registrul de instrucțiuni
NOP:
3: X
4: X
5: X
LDA:
6: IO, MI - Adresa din registrul de instrucțiuni este transferată la MAR (cel mai mic patru biți)
7: RO, AI - Baza adresată este trimisă din memorie în acumulator
8: X
ADĂUGA:
9: IO, MI - Adresa din registrul de instrucțiuni este transferată la MAR (cel mai mic patru biți)
10: RO, BI - octetul adresat este trimis din memorie în acumulator
11: EO, AI - Suma acumulatorului și registrul B sunt încărcate în acumulator
SUB:
12: IO, MI - Adresa din registrul de instrucțiuni este transferată la MAR (cel mai mic patru biți)
13: RO, BI - octetul adresat este trimis din memorie în acumulator
14: AI, SU, EO - Diferența dintre acumulator și registrul B este încărcată în acumulator
STO:
15: IO, MI - Adresa din registrul de instrucțiuni este transferată la MAR (cel mai mic patru biți)
16: AO, RO, RI - Acumulatorul iese în memoria programului în locația adresată (RO și RI trebuie să fie active pentru o scriere pe chipul pe care l-am folosit)
17: X
OUT:
18: OI, AO - Acumulatorul iese în registrul de ieșire
19: X
20: X
JMP:
21: J, IO - Registrul de instrucțiuni încarcă contorul de programe cu cele mai mici patru biți
22: X
23: X
HLT:
24: HLT - Un semnal de oprire este trimis la ceas
25: X
26: X
OP ROM-ul dvs. conține multipli de câte trei la fiecare locație de memorie. Aceasta este, desigur, pentru că fiecare ciclu durează trei stări de execuție. Prin urmare, datele adresate pentru OP ROM vor fi:
0 - 3
1 - 6
2 - 9
3 - 12
4 - 15
5 - 18
6 - 21
7 - 24
Pentru a programa alegerea cipului, aveți multe opțiuni diferite. Ai putea cumpăra un programator EEPROM și EPROM, dar costa de obicei o sumă considerabilă de bani. Am construit un programator breadboard pentru ROM-ul meu, care este operat prin deplasarea firelor în jurul valorii de și de control al scriere și citirea PIN-uri de activare prin butoane. Mai târziu am simplificat procesul și am proiectat un programator Arduino pentru NVRAM-ul meu în mod specific. Voi atașa codul, deoarece poate fi ușor modificat pentru a programa aproape orice chip de memorie paralelă pe care l-ați folosi pentru acest proiect.

Pasul 15: Achiziționarea de piese

Lucrul minunat pentru construirea unui calculator pe 8 biți este că majoritatea pieselor vă vor costa mai puțin de un dolar o bucată dacă le cumpărați din locul corect. Am cumpărat 90% din piesele mele de la Jameco Electronics și am fost complet mulțumit de serviciile lor. Singurele piese pe care le-am cumpărat cu adevărat de oriunde sunt panele de paie și firele de pâine (și tuburile Numitron). Acestea pot fi găsite considerabil mai ieftine pe site-uri precum Amazon. Asigurați-vă întotdeauna că piesele pe care le comandați sunt cele corecte. Fiecare parte pe care o cumperi ar trebui să aibă o fișă tehnică disponibilă online care să explice toate funcțiile și limitele articolului pe care îl cumperi. Asigurați-vă că păstrați-le organizate, deoarece veți folosi multe foi de date în construcția computerului. Pentru a vă ajuta cu calculatorul, voi lista părțile pe care le-am folosit pentru a mea:
Contor de 4 biți:
74161 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=74161&langId=-1&storeId=10001&productId=49664&search_type=jamecoall&catalogId=10001&ddkey=http:StoreCatalogDrillDownView
Registru de 4 biți (folosesc două pentru fiecare registru de 8 biți):
74LS173 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=74LS173&langId=-1&storeId=10001&productId=46922&search_type=jamecoall&catalogId=10001&ddkey=http:StoreCatalogDrillDownView
2-1 Multiplexer:
74LS157 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_46771_-1
16x8 RAM (ieșirea trebuie inversată):
74189 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=74189&langId=-1&storeId=10001&productId=49883&search_type=jamecoall&catalogId=10001&ddkey=http:StoreCatalogDrillDownView
Completatori:
74LS283 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=74LS283&langId=-1&storeId=10001&productId=47423&search_type=all&catalogId=10001&ddkey=http:StoreCatalogDrillDownView
Tampoane Tri-State:
74S244 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_910750_-1

XOR Porți:
74LS86 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_295751_-1
Și porți:
74LS08 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_295401_-1
NOR Porți:
74LS02 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_283741_-1
invertoare:
74LS04 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_283792_-1
Ring Counter:
CD4029 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=4029&langId=-1&storeId=10001&productId=12925&search_type=jamecoall&catalogId=10001&ddkey=http:StoreCatalogDrillDownView
JK Flip-Flops:
74LS10 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_295427_-1

Pasul 16: Construcția

Iată unde vine cu adevărat răbdarea. Am ales să folosesc un breadboard pentru calculatorul propriu-zis, dar există multe alte metode acolo (cum ar fi înfășurarea firelor) care vor funcționa la fel de bine. Pentru a face lucrurile mult mai simple am inclus o diagramă bloc pentru schema reală a calculatorului meu. Cu toate acestea, nu am inclus numere de numere sau numere de pini. Cred că acest lucru va face lucrurile mai simple și deschise pentru creativitate. Ieșirea contorului de programe pe 4 biți, intrarea MAR și ieșirea din registrul de instrucțiuni sunt toate conectate la cei patru biți cei mai puțin semnificativi ai magistralei calculatorului.
A doua diagramă prezentată este logica de control pentru capătul de operare al calculatorului. Comenzile sunt proiectate astfel încât comutatoarele să poată fi o intrare pentru computer. Dispozitivele RS_NOR sunt amplasate în partea din față a comutatoarelor pentru a le debloca. Comutatoarele de comutare au adesea conexiuni murdare care pot sări de la starea de pornire la oprire și oferă mai multe impulsuri decât doriți. Adăugarea unui flip-flop la ieșirea unui comutator elimină impulsurile suplimentare. Acest lucru ar fi extrem de util atunci când utilizați opțiunea de ceas manual. Nu ați vrea să răsturnați comutatorul și să inițiați 8 impulsuri de ceas. Butonul de citire / scriere scrie biblioteca de intrare activă în memoria adresată. Prin schimbarea intrării implicite a cuvintelor de control în memoria RAM la doi biți RO și RI redus care inițiază un ciclu de scriere. Comutatorul de rulare / program schimbă care intrare este activă pe multiplexorul adresei de memorie. Flip flopul JK după 555 înseamnă că atunci când computerul este pornit, acesta nu va porni în mijlocul unui impuls de ceas. Un semnal HLT scăzut va opri ceasul de la trecerea fie la ceasul manual, fie la 555. Și în cele din urmă, comutatorul de rulare / ștergere este conectat la toți pinii clare de pe computer, cum ar fi cei de pe registre și contoare.

Pasul 17: Programare

Acum, când computerul este terminat, poate fi programat să execute instrucțiuni. Pentru a face acest lucru, trebuie mai întâi să puneți computerul în setarea sa de program prin rotirea comutatorului de comutare rulare / program în poziția programului. După aceea, selectați adrese începând de la 0 și mergând la 15 și introduceți datele necesare pentru programul dvs. De exemplu, pentru a începe cu 5 și a adăuga 4 cu fiecare ieșire programul ar fi după cum urmează:
Adresa - Date:
0000 - 00010111 LDA 7: Încărcați acumulatorul cu valoarea memorată la adresa memoriei 7 (5)
0001 - 00101000 ADD 8: Adăugați valoarea stocată la adresa memoriei 8 (4)
0010 - 01010000 OUT: Ieșiți acumulatorul
0011 - 01100001 JMP 1: Salt la instrucțiuni 1
0100 - X
0101 - X
0110 - X
0111 - 00000101 5
1000 - 00000100 4
1001 - X
1010 - X
1011 - X
1100 - X
1101 - X
1110 - X
1111 - X

Pasul 18: Continuați

Sper că v-ați bucurat de această instrucție și, mai presus de toate, sper că veți obține ceva din ea. Puteți lua în considerare toată această muncă grea o experiență incredibil de valoros de învățare care vă va oferi o mai bună înțelegere a electronicii, a calculatoarelor și a programării. În cele din urmă, veți avea, de asemenea, ceva foarte cool pentru a vă arăta pentru toată munca dvs. grea, de asemenea.
După construirea primului computer pe 8 biți, puteți merge mai departe și puteți adăuga mai multe funcționalități. UTI utilizată în acest calculator este foarte simplistă în funcționare, iar adevăratele ALU au astăzi o multitudine de funcții, cum ar fi comparațiile bit-shifting și logice. Un alt aspect important pentru a vă deplasa este ramificarea condiționată. Condiționarea ramificării înseamnă că o instrucțiune depinde de starea actuală a steguletelor setată de ULE. Aceste steaguri se modifică pe măsură ce conținutul acumulatorului devine negativ sau egal cu zero. Acest lucru permite o posibilitate mult mai expansivă pentru aplicarea calculatorului.
Dacă aveți întrebări legate de acest proiect, nu ezitați să comentați acest program sau pe site-ul meu web la http://8-bitspaghetti.com. Vă doresc cele mai bune norocuri cu acest proiect.

3 persoane au realizat acest proiect!

  • JamesP383 a reușit!

  • xdola a făcut-o!

  • realhet a făcut-o!

Ați făcut acest proiect? Împărtășește-i cu noi!

recomandări

  • Vintage Look Media PC de la un laptop vechi

  • Digi-Comp II Replica

  • Clasa Internet de lucruri

  • Culorile concursului curcubeu

  • Concursul de științe la clasă

  • Concursul Fandom

173 Discuții

0

AtomicFerryt

1 an in urma

Credeți că puteți face o diagramă digitală pentru placa de bază? Nu am mai folosit niciodată un panou de paine, dar sunt profund interesat de computerele vechi.

0

FarsinHamza

1 an in urma

Unul dintre minunatele instrucțiuni pe care le-am văzut vreodată … Apreciez răbdarea ta … :)

0

bob491

1 an in urma

acest lucru este extrem de bine scris și instrucțiuni detaliate și foarte cool prea. Mulțumesc.

0

champ12345

1 an in urma

pare puțin complexă

0

mkpeker

1 an in urma

construi frumos. este posibil să doriți să verificați cel mai simplu 4-bit CPU ttl (MP-4) pentru a înțelege elementele de bază:

http://www.instructables.com/id/Simplest-4-Bit-TTL-CPU/

0

mkpeker

acum 2 ani

un proiect frumos poate fi să vrei să-mi verifici a mea;

În sfârșit, sistemul meu de monitorizare OS (cu instalator in-line și disassembler) este gata
Vă rugăm să configurați și să încercați acest v1.0b
puteți găsi toate informațiile necesare în paginile mele Efex;

http://mkpeker.wixsite.com/efex

trimiteți-mi comentariile dvs. decât pot îmbunătăți software-ul
Mulțumesc

0

TheMrCode

acum 2 ani

dacă ați făcut-o folosind led-uri în loc de cabluri. ar putea u vedea unde au fost semnalele

0

GeorgeW134

acum 2 ani

Cum ați programa o declarație if-statement?

2 răspunsuri 0

JuliaS87GeorgeW134

Răspuns acum 2 ani

Nu aveți nevoie de un nou opcod. Ceea ce aveți nevoie este o valoare care reprezintă adevărată și falsă ca 1 și 0. Încărcați acea valoare în acumulator și scade 1. Apoi faceți un salt condițional. Dacă valoarea a fost 1 (adevărat), scăderea va provoca o depășire și saltul condițional va efectua. În cazul în care valoarea a fost 0 (falsă), nu are loc niciun preaplin și deci nu are loc un salt.

0

calebj20GeorgeW134

Răspuns acum 2 ani

Deoarece există un registru (acumulator) care stochează suma anterioară de la ALU puteți verifica dacă rezultatul dă un număr negativ, pozitiv sau zero, apoi cu ajutorul căruia puteți adăuga un nou cod opcod care verifică acea stare și salturi dacă condiția este Adevărat.
de exemplu

4 - 10 = -6 -> -6 este negativ, astfel încât orice comandă de ramură cu un bit N setat la 1 să sară

asamblare: BRN RA Aceasta ar ramane pe negativ la locatia stocata in A

binar presupunând opcode este 1000: 10001000

În cazul în care aceasta este defalcarea biți a opcodei

BR: 1000

N: 1 | 0

Z: 1 | 0

P: 1 | 0

0: 0 | 0

De asemenea, dacă doriți să o faceți mai versatilă, puteți încerca să adăugați capacitatea lui B de a seta valoarea busului, apoi ultimul bit "0" ar putea fi pentru A sau B ca 0 sau respectiv 1.

0

T0BY

acum 2 ani

Crikey, ai răbdare!

0

SuperNovaa41

acum 2 ani

Am o întrebare. Toate părțile din listă există, cu excepția celor de la 2.
buffer-ele tri stat și flip-urile jk
A existat un alt site web cu același model ca și tampoanele de trei stări
dar
nu a existat un înlocuitor JK flip flop, trebuie să folosesc exact
același model pe care l-ați enumerat sau pot utiliza un model diferit? și dacă da, care
model ar trebui să utilizez?

0

SuperNovaa41

acum 2 ani

Hei! Știu că acesta este un post mai vechi, dar ați putea să-mi dați câteva linkuri actualizate pentru Buffer-urile Tri State și JK Flip Flops? Am incercat cercetarea produselor, dar nu stiu ce modele sa folosesc. Mulțumesc anticipat!

0

BartH19

acum 2 ani

Sunt interesat să fac un simplu CPU pe care îl pot folosi pentru a tasta pe un LED sau chiar pe ecranul LCD. Este acesta proiectul pentru mine sau mă puteți îndrepta în direcția mea mai bună?

Sunt un novice complet la asta. Sunt un dulgher care încearcă să facă un fel de computer de lemn!

5 răspunsuri 0

FinnW3BartH19

Răspuns acum 2 ani

În loc să construiți un procesor, ar trebui să construiți un computer cu o cutie de lemn. Computerele pot costa destul de mult, dar le puteți obține de fapt sub 300 de dolari. Încercați să utilizați acest site: pcpartpicker.com

0

BartH19FinnW3

Răspuns acum 2 ani

Multumesc pentru asta. Sper că există părți destul de subțiri. Vreau să fie ca un calculator pentru cuvinte. Voi verifica linkul: D

0

KyleF45BartH19

Răspuns acum 2 ani

Dacă tot ce vrei să faci este să acționezi ca un calculator, poate că vrei să te uiți în Raspberry Pi. Va fi mult mai mic și mai ieftin, Pi sunt ca mărimea unui telefon.

0

KyleF45KyleF45

Răspuns acum 2 ani

Acum, când mă gândesc la asta, Pi poate face ceva mai mult decât un computer desktop, este mult mai mic. Există probabil un fel de software pe care îl puteți folosi pentru el.

0

BartH19KyleF45

Răspuns acum 2 ani

Vă mulțumesc pentru răspunsul dvs.: D

La scurt timp după comentariul meu inițial, l-am găsit pe tipul ăsta: http: //www.etsy.com/shop/writeotron? Ref = unav_lis …

Vom lucra împreună la unul nou. E un Pi!

0

bharathis

acum 2 ani

Minunat și încurajându-mă să fac una din propria mea ..

sigur voi apăsa "Am reușit". Eu am un proces în care să-l construiesc. hee hee minunatele sale electronice digitale