Breadboard computer [chiuso]


19

È possibile realizzare un semplice computer interamente con breadboard e componenti elettronici di base? È possibile, ad esempio, costruire un calcolatore scientifico in questo modo?


10
Non è solo possibile, ma la gente lo fa, ad esempio megaprocessor.com e molti altri, solo google per "CPU a transistor discreti" o simili. Diventa terribilmente complesso e ci vogliono anni per costruire ed eseguire il debug
PlasmaHH il

Dipende da cosa intendi per breadboard. Se include Veroboard, tag strip o costruzione di insetto morto ancorato da chiodi martellati nella breadboard della mamma (sì) - tutti saldati, allora sì, sicuramente. Se intendi quelle cose di plastica che lasciano andare casualmente i fili, dimenticalo ...
Brian Drummond,

@BrianDrummond Re breadboard in plastica - è apparentemente possibile (vedi la mia risposta). Ho visto un paio di computer costruiti in questo modo. Se uno estrae accidentalmente dei fili, che incubo. Sono davvero stupito che corrano davvero.
Tcrosley,

2
Penso che se avessi infinite breadboard, diventeresti completo?
PyRulez,

2
Hai davvero bisogno di scoprire il "web ring" della CPU Homebrew (era una cosa molto
lontana

Risposte:


33

Non sarò d'accordo sul fatto che posizionare un microcontrollore su una breadboard si qualifichi come costruire un computer su una breadboard. Fatta eccezione per l'I / O (come una tastiera e un display), un microcontrollore da solo è praticamente un computer completo. Basta posizionarlo su una breadboard e collegare alcuni fili è banale e può essere fatto in dieci minuti.

Quando l'OP ha chiesto "È possibile realizzare un semplice computer interamente con breadboard e componenti elettronici di base?", Per componenti elettronici di base penso che significhi qualcosa di più simile a questo:

inserisci qui la descrizione dell'immagine

Questo è un computer su una breadboard (beh, diverse breadboard), costruito con componenti di base . La descrizione è qui . È composto da una dozzina di tipi di circuiti integrati serie 74LS00. (Non credo che vogliamo tornare indietro ai transistor; il PDP-8 originale aveva le dimensioni di un piccolo frigorifero ).

Per quanto riguarda un calcolatore scientifico, se hai costruito un computer generico come quello mostrato sopra, potrebbe essere programmato come un calcolatore scientifico. Costruire un calcolatore scientifico usando solo circuiti integrati logici (nessun computer) sarebbe estremamente difficile; tutti i produttori di calcolatori del genere (Ti, HP ecc.) utilizzavano speciali circuiti integrati di grandi dimensioni . Ecco una calcolatrice fatta in casa che utilizza i primi circuiti integrati della calcolatrice a 4 bit.

Concordo sul fatto che se si desidera mettere in funzione un computer il più rapidamente possibile, utilizzare un microcontrollore è la strada da percorrere. Se uno vuole veramente capire come funziona un computer internamente, allora costruirne uno con circuiti integrati di base è la strada giusta.



1
@ColeJohnson I suoi appunti dicono che non ha schemi per questo!
Tcrosley,

1
@JohnD thx, fixed.
Tcrosley,

23

Non è solo possibile, in realtà l'ho fatto: vedi https://www.vttoth.com/CMS/projects/47

Ecco come apparivano i cavi sul retro di una delle breadboard:

inserisci qui la descrizione dell'immagine

Naturalmente tutto dipende da quali componenti si qualificano come "di base". Nel mio caso, i componenti di base erano chip TTL serie 74 ..., circa un centinaio. Costruire un computer interamente da, diciamo, transistor ... sarebbe troppo travolgente.

Inoltre, il mio computer a 4 bit non è davvero abbastanza potente da essere usato come una calcolatrice scientifica, principalmente a causa delle limitazioni della memoria (256 nybbles a 4 bit). Tuttavia, non è tremendamente difficile estendere lo spazio degli indirizzi, forse usando un meccanismo di paging, e 4096 nybbles (indirizzi a 12 bit) potrebbero già abbastanza, 65536 nybbles (indirizzi a 16 bit) di sicuro.


Congratulazioni. È un bel risultato. Mi piace il set di istruzioni - mi ricorda un 6800.
Tcrosley,

1
C'è un ragazzo che sta lavorando alla costruzione di un processore usando nient'altro che transistor. La RAM, il processore, tutto. MegaProcessor.com
Cole Johnson,

4
Alcune persone sono più pazienti di me
Viktor Toth,

10

Sì, è possibile, ma avresti bisogno di un po 'più di poche breadboard per elaborare un calcolatore scientifico, a seconda ovviamente di ciò che consideri un componente di base: se chiami un transistor un componente di base o un flip-flop , una EEPROM o semplicemente qualcosa che puoi saldare da un vecchio frigorifero.

Ci sono alcune buone risposte qui, ma vorrei solo sottolineare una cosa che la gente spesso non considera. Guardando la storia dei dispositivi informatici, la difficoltà nella costruzione di un computer dalla corteccia e dai chiodi degli alberi non è la CPU né l'ALU. Il problema principale è la memoria. Perché hai bisogno di una grande quantità per far funzionare l'intero concetto di programma memorizzato. È possibile creare una CPU da alcuni infradito e porte NAND; ad esempio per un'applicazione di elettronica di potenza con vincoli specifici, una volta ho progettato un microprocessore che utilizza solo 69 flip-flop (4 registri a 16 bit, 4 flag e 1 bit del registro di stato che indicano FETCH / EXECUTE). È implementato in silicio e le persone scrivono software che gira su di esso. È semplice e si adatta alle dimensioni di un contatto di drain di un transistor di potenza. Ma la memoria necessaria per memorizzare qualsiasi programma utile è molto, molto più grande.

All'inizio, la memoria era il punto di partenza del design. È possibile utilizzare i relè bi-stabili come nei primi scambi telefonici. È possibile utilizzare tubi a vuoto o transistor per realizzare infradito; e i registri della CPU di solito venivano implementati in questo modo. Ma per il programma e l'archiviazione dei dati sono stati utilizzati nastri di carta, nastri magnetici, dischi rotanti o tamburi rotanti. Anche onde acustiche su filo di acciaio che vengono costantemente ricevute e ritrasmesse dall'elettronica. Qualunque cosa tu possa pensare che potrebbe contenere alcuni bit per un ragionevole periodo di tempo con costi ragionevoli. I computer terrestri orbiter Apollo e quelli lunari utilizzavano memorie a spirale avvolte come corde. Tutti questi richiedono diverse apparecchiature di interfaccia e hanno un impatto enorme su come deve essere la CPU per accedere a quel tipo di memorie. La memoria dei semiconduttori è apparsa davvero solo negli anni '70, respingendo finalmente quel tipo di complessità. Ma anche in questo caso, le moderne RAM dinamiche non sono neanche così facili.

Poi c'è l'ulteriore meraviglia di dover progettare apparecchiature input-output per il computer. Alcune lampadine vanno bene per alcune applicazioni, ma se hai bisogno di input / output di testo o qualcosa di ancora più complesso, stai di nuovo affrontando più difficoltà. Lettori di schede perforate, stampanti e terminali cartacei erano un'impresa enorme ai loro tempi. Un terminale video VT100 in modalità testo del 1978 ha molta più memoria e potenza di elaborazione di quanto avrebbe il tuo computer di bordo calcolatrice scientifica.


Sebbene sia certamente possibile implementare la memoria usando i flip-flop, penso che sia necessaria una concessione per consentire ai circuiti integrati di memoria (proprio come in questi computer di produzione casalinga di usare un 74181 per ALU). È possibile ottenere una SRAM 8Kx8 in un pacchetto DIP per circa $ 2. Dovrebbe essere abbastanza per una calcolatrice. Lo stesso vale per EEPROM.
Tcrosley,

1
@tcrosley Sono d'accordo. Sto solo sottolineando un'osservazione della storia. Se oggi costruirai un computer homebrew, non lo farai per seguire un insieme arbitrario di regole, lo farai per divertimento e apprendimento. E la progettazione di un microprocessore è più divertente e un'esperienza di apprendimento migliore rispetto all'avvolgimento di 16 mila bit di memoria centrale;)
PkP

@PkP C'è qualcosa da dire per qualcuno che ricorda come tessere la memoria centrale e come documentarla. Non tanto a livello di come funzionano un po 'o due, ma il lato pratico di come si fanno 16 kbit senza impazzire. Ho lavorato a progetti di seed beed. Posso visualizzare la follia ... Presumo che ci fosse una volta l'automazione di fabbrica per farlo, ma ho visto pochissimo scritto sul lato della produzione.
RBerteig,

2
@RBerteig grazie, sono d'accordo. Bene, ricordo di aver letto che le memorie di corda del computer spaziale Apollo erano intrecciate da destre tessitrici molto abili, che avevano la sorprendente pazienza di controllare con attenzione ognuna o zero nel diagramma del codice, che indica se la bobina di bit è tessuta attraverso il nucleo o aggirato attorno ad esso, o qualcosa in tal senso. Ricordo di aver letto dalla stessa fonte che ci vollero sei mesi per tessere una nuova ROM dopo ogni modifica del software da parte degli ingegneri del MIT che scrissero il software Apollo.
PkP,

7

È possibile, ma la complessità e le dimensioni dipendono da ciò che chiamate componenti elettronici di base. Una logica ALU e sequencer è un po 'complessa, ma fattibile. La memoria è semplice, ma lo schema di base deve essere ripetuto un numero molto grande di volte (pensate a migliaia di volte).

Oltre all'hardware avrai anche bisogno del software che lo esegue. Come stima approssimativa, per una CPU moderatamente complessa (istruzioni classiche a 16 bit livello di dati a 8 bit) il tuo sforzo software sarà paragonabile al tuo sforzo hardware. (Per una CPU più semplice avrai bisogno di più sforzo SW.) E come caricherai quel SW nella tua macchina?

La caccia (e la risoluzione) di bug sarà un'impresa interessante. Ti consiglierei di iniziare a scrivere in VHDL ed eseguirlo su un simulatore, che sarà molto più facile da eseguire il debug di un mucchio di chip e fili.

Due miei studenti hanno creato una CPU a 16 bit con alcuni software di base (inclusa una porta backend GCC) in circa 1 anno, iniziando con il codice VHDL e C per la simulazione. L'ALU utilizzava chip 74181, la memoria era RAM statica e utilizzava un atMega per interfacciarsi tra PC e computer. Il computer era in parte su breadbord senza saldatura e in parte su PCB (gli 8 registri a 16 bit). (Questi due non erano studenti medi!)


5

Sì, è possibile. Ma hai bisogno di un microcontrollore per fare i conti. Questo è un esempio di progetto. Utilizza microcontrollore AVR e display LCD 16 × 2.


+1 Ho una calcolatrice che utilizza un processore ARM. In questi giorni un microcontrollore dovrebbe essere considerato un componente di base.
Spehro Pefhany,

25
Non hai bisogno di un micro, semplifica le cose.
PlasmaHH,

@PlasmaHH o un microcontrollore o più breadboard. Hai solo porte di base a 2 ingressi? Divertiti. OTOH una ROM o due + un registro MUX + = già un semplice microcontrollore.
John Dvorak,

Come pensi che i microcontrollori facciano matematica? Con gli ALU - realizzati in silicio / transistor / cancelli elementari a seconda della scala che vedi.
user3728501

Microcontrollori e microprocessori sono anch'essi realizzati con elementi elettronici, quindi puoi realizzarli su una breadboard, senza bisogno di un vero microcontrollore
phuclv,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.