Contenuti
- 1 sommatori
- Versione 1.1
- 1.2 Sommatore in linea
- Versione 1.3
- Versione 1.4
- 1.5 Aggiunta veloce
- 1.6 Sommatori a pistone
- 1.7 Sommatore a 4 bit
- 1.8 Sommatore alternativo a 4 bit
- 2 Sottrazione
- 3 unità logiche
Sommatori
Versione: 1
sommatore completo 1
Visualizza su: Tutorial/Porte logiche/Sommatore completo 1 [modifica] Sommatore completoUn sommatore completo prende due input A e B e un input Carry e produce gli output Sum e Carry. Si basa su due porte XOR, due porte AND e una porta OR. Con un po' di attenzione, queste porte possono essere compresse (poiché entrambe le porte AND e XOR esistono già nel gioco e una porta OR può essere semplicemente un filo di pietra rossa).
A e B sono gli ingressi bit e C' è il riporto. Produce una somma in S e un riporto in C. Quando i moduli sommatori completi sono affiancati insieme C' e C saranno collegati, il che consente al riporto di propagarsi a il modulo successivo.
Schema sommatore completo Mezzo sommatore
Il mezzo sommatore è quasi identico al sommatore completo, tranne che la seconda porta XOR viene rimossa e l'uscita dalla prima porta XOR diventa S. Non c'è riporto in (C'), ma il circuito di esecuzione (C) è ancora attivo superiore del primo cancello XOR e fornisce un riporto al primo sommatore completo. Alcune ALU non utilizzeranno un mezzo sommatore per il primo bit, per supportare INCREMENT (consentire un riporto sul primo bit).
Sommatore in linea
Sommatore completoQuesto sommatore completo è simile al precedente, tranne per il fatto che è largo due e gli ingressi sono allineati verticalmente. Questo design è ottimo per ridurre al minimo lo spazio orizzontale e può essere costruito in linea con due bus di pietra rossa, eliminando lo spazio necessario per espandere un bus per raggiungere gli ingressi di un sommatore più ampio.
Schema del sommatore completoVideo tutorial (visualizza su YouTube) |
---|
Versione: 2
Sommatore completoCancelli: XNOR (2), IMPLICA, NOT, OR, AND
Dimensioni: 6×12×5 (inclusi spazi I/O)
Questo sommatore prenderà 2 bit e un bit riportato (in realtà C, anziché C, un valore contenuto nella pietra rossa nell'angolo in basso a sinistra del livello 1) e li somma tutti insieme, producendo un bit di somma (S) e un riporto (in realtà C anziché C).
Quando si utilizzano i cancelli sopra; attenzione agli ingressi e alle uscite. Ci si potrebbe chiedere perché vengono utilizzati così tanti segnali invertiti invece del segnale normale.
I sommatori mostrati qui usano le porte XNOR anziché le porte XOR perché sono più compatte e, di conseguenza, implicano che le porte debbano essere utilizzate al posto delle porte AND, che sono anche più compatte.
Pertanto, per il sommatore più compatto, devono essere utilizzati segnali inversi. Questi sommatori sono troppo complessi per essere facilmente decifrati con 2 strati per quadrato, quindi ogni singolo strato è stato disegnato separatamente per facilitare il processo di costruzione.
Schema del sommatore completo Mezzo sommatoreCancelli: XNOR, IMPLIES
Dimensioni: 5 × 4 × 4
Questo sommatore prenderà 2 bit e li aggiungerà insieme. Il bit risultante sarà l'output di S (somma). Se entrambi i bit sono 1, ci sarà un riporto e C diventerà 1 (C diventerà 0). Questo mezzo sommatore può essere modificato per creare un'uscita C non invertita, ma questa configurazione viene utilizzata in modo che possa essere implementata come inizio di una catena di sommatori completi.
Estensione: per chi è nuovo di redstone avanzato come me, è più facile capirlo in questo modo: diciamo che l'uscita B (C) ha un cancello NOT che inverte il segnale e conduce a una porta di ferro o a una porta del pistone ecc. L'uscita A (S) è collegato a pistoni appiccicosi che controllano il pavimento. Diciamo per amor di discussione che esiste un blocco 1×1×1 NON interessato dai pistoni appiccicosi, questo è il blocco di sicurezza. Quando attivi l'ingresso A, entrambe le porte si apriranno e il pavimento cadrà, se sei in piedi sul blocco di sicurezza, allora non cadrai. L'ingresso B controllerà solo il piano, ma se l'ingresso A è attivo l'ingresso B controllerà entrambi. Quando entrambi sono attivi, l'ingresso A influirà solo sul pavimento. Ciò significa che se sei fuori dal server e non vuoi che nessuno entri, lascia A e B accesi, quando disattivano A, il pavimento cadrà, ma la porta rimarrà chiusa, quindi se conoscono il segreto, non possono comunque entrare.
Schema del mezzo sommatore
Versione: 3
Sommatore completoDimensioni: 5 × 6 × 3
L'ingresso e l'uscita del carrello sono allineati per collegare facilmente molti di questi moduli in serie.
Schema del sommatore completoAggiunta veloce
Quando si costruiscono circuiti digitali avanzati come computer e moltiplicatori, i sommatori utilizzati devono essere il più veloci possibile per garantire la massima velocità di esecuzione. I sommatori semplici hanno un problema di velocità fondamentale che numerosi progetti di sommatori cercano di correggere per accelerare. Il problema è il ritardo di propagazione del riporto: ritardo causato dal modo in cui i sommatori prendono in prestito i riporti. Possiamo vederlo quando eseguiamo il problema 1111 + 0001:
1111 0001 ---- 1110
Questo è il primo passo del processo di addizione, XORing i due input. Poiché c'erano due 1 nel bit meno significativo, la porta AND si attiva e porta al bit successivo:
1 1111 0001 ---- 1100
Ma ecco il problema: ora devi prendere in prestito di nuovo un riporto, perché, al posto dei due, ce ne sono due. Questo viene fatto collegando in AND l'output del primo mezzo sommatore con il riporto dal bit precedente e questo è un grosso problema. Perché, per la parte successiva, tu E il preso in prestito porti ancora e ancora. Ogni porta AND richiede 2 tick, quindi, per calcolare tutti i carry che devono essere sommati nel passaggio finale, sono necessari 2 tick per 4 bit o 8 tick.
Immagina di vedere il problema 999 + 1. Non stai seduto a pensare "9 + 1 fa 10, porta 1, quindi 9 + 1 fa 10, porta 1, quindi 9 + 1 fa 10, quindi 1000". È la stessa situazione in un circuito avanzato.
I veri ingegneri elettrici e i redstones creativi hanno progettato circuiti che calcolano il trasporto del sommatore più velocemente di questo metodo sequenziale.
Per inciso, i sommatori che calcolano porta uno alla volta in questo modo sono chiamati Ripple Carry sommatori.
Sommatori a pistone
Uno dei modi più semplici e classici per risolvere il problema del trasporto dell'ondulazione è utilizzare porte AND istantanee che utilizzano pistoni. Questi sommatori sono semplici e veloci, ma sono incostanti perché utilizzano pistoni. Quando i blocchi cadono accidentalmente, l'intero circuito si interrompe. I pistoni hanno anche problemi di temporizzazione che possono essere estremamente scomodi quando si costruisce un circuito avanzato che si basa molto sul tempismo.
Ogni volta che viene creato un riporto, viene inviato attraverso il filo con la leva su di esso e, invece di passare attraverso un cancello AND, il pistone si ritrae e il riporto può passare al bit successivo che non aggiunge alcun ritardo di propagazione del riporto ( fino all'esaurimento della potenza del segnale).
Questo video mostra una semplice implementazione della logica. Il design è ampio e diffuso, quindi è facile vedere ogni singola parte del sommatore e la logica di trasporto.
sommatore a 4 bit
Cancelli: XNOR (7), IMPLICA (4), NOT (4), OR (3), AND (3)
Dimensione: 23X12X5
Nota! La cifra meno significativa ("cifra delle unità") si trova a sinistra del diagramma in modo che la progressione da mezzo sommatore a sommatore completo possa essere vista più chiaramente. Invertire il diagramma se si desidera un ingresso convenzionale da sinistra a destra.
Questo sommatore prenderà 2, 4 numeri di bit (A e B) e li sommerà, producendo un bit di somma (S) per ogni bit aggiunto e un riporto (C) per l'intera somma. I bit di somma sono nello stesso ordine dei bit di ingresso, il che sul diagramma significa che l'uscita S più a sinistra è la cifra meno significativa della risposta. Questo è solo un esempio di una stringa di sommatori; i sommatori possono essere messi in fila in questo modo per aggiungere anche numeri più grandi.
Schema del sommatore a 4 bitSommatore alternativo a 4 bit
Stessa funzione ma design diverso con 4 sommatori completi invece di 1 mezzo sommatore e 3 sommatori completi
NOTA: gli interruttori sono gli ingressi A e B (ingresso C dell'interruttore superiore)
Schema del sommatore alternativo a 4 bitSottrazione
Sottrarre e sommare sono la stessa cosa se ridotti all'idea che, ad esempio, 3-2 = 3 + (-2) = 1. Poiché abbiamo già la struttura per aggiungere bit, è abbastanza semplice sottrarre per solo aggiungendo il bit negativo. Il problema sta nella rappresentazione dei numeri negativi.
Conosciamo tutti il concetto della scuola elementare di "prendere in prestito" in sottrazione dalla colonna successiva come questa:
5623-128 -----
Non siamo in grado di prendere 8 da tre, quindi "prendiamo in prestito" un 1 dalla cifra decimale successiva per permetterci di sottrarre invece 8 da 13, ottenendo 5
1 5623-128 ----- 5
I computer non sono in grado di fare supposizioni, quindi quando un computer ha bisogno di trovare un negativo non può (e non può) mettere un segno negativo davanti all'input. Sottrae semplicemente da zero "prendere in prestito" dalla colonna successiva in questo modo:
000000 - 3 ------- -999997
Questo è lo stesso in binario. Usiamo, ad esempio, un numero binario a 4 bit per l'esempio:
1 11 111 1111 0000 0000 0000 0000 -0011 -0011 -0011 -0011 ----- ----- ----- ------1-01-101 -1101
Potremmo ripeterlo all'infinito, ma sarebbe inutile. Si tratta di ciò che fa un registro a 4 bit: viene troncato dopo 4 bit di dati. Quindi, dopo aver troncato il numero (cosa che ho gentilmente fatto per te nell'esempio, altrimenti il numero avrebbe un numero infinito di 1 a sinistra). Grazie a questo piccolo vantaggio, possiamo fare quello che vogliamo con gli 0 dopo i quattro, incluso (che si rivelerà straordinariamente utile in seguito) aggiungendo un singolo 1 davanti a loro.
10000 -0011 ----- 1101 <-- NOTA: Questo numero è positivo! Successo!
Ricordi come abbiamo detto che la nostra pietra rossa non aveva un modo speciale per designare un negativo da un positivo? Abbiamo appena creato un modo. Se il bit più significativo (primo) di un numero è 1 significa che è un numero negativo. Questo fantastico vantaggio dei numeri binari è un teorema chiamato "Complemento a due".
Formalmente, il complemento a due è definito come:
Il negativo di un numero b con lunghezza di bit n è uguale a 2n+1 − b
In sostanza ciò che sta dicendo è che -b è solo l'inversione di b (scambio 1 per 0 e 0 per 1) più 1.
Quello che abbiamo fatto è trasformare il primo bit in un "segno negativo" se è acceso, ma se hai letto questo ti rendi conto che non è così semplice. I numeri che hanno un segno negativo come questo sono comunemente indicati come firmato interi. Vengono chiamati i numeri come in un normale sommatore, in cui il complimento a due non viene applicato unsigned interi. Gli interi senza segno possono andare a un valore più alto, ma non possono andare sotto lo zero, mentre gli interi con segno possono salire solo la metà, ma possono andare ugualmente al di sotto dello zero. Ciò significa che i due numeri hanno lo stesso intervallo, è solo in una posizione diversa in questo modo (questo è con un numero a 8 bit):
Senza segno: 0-255 Firmato -128-127
Va notato che possono verificarsi alcuni strani effetti quando si utilizza il valore con segno più basso (in questo caso -128), quindi questo dovrebbe essere evitato.
Ora che abbiamo un modo positivo di rappresentare i nostri numeri negativi, è molto banale implementarlo in un sommatore. Attualmente il nostro sommatore risolve
A + B
Vogliamo che si risolva
LA − SI
or
A + (-B)
Pertanto, se entriamo nel complemento a due di B, il nostro sommatore diventa un sottrattore. Questo è facilmente implementabile utilizzando il bit Carry-in del bit meno significativo (primo) come "+1" e quindi tutto ciò che resta da fare è invertire B.
C'è una cosa importante da notare quando si implementa questo. Poiché è possibile ottenere un numero in complemento a due, quando si sottrae la cifra più significativa deve essere invertita. Questo di solito è il Carry out dell'ultimo sommatore.
Tutto questo può essere implementato in un sommatore in questo modo:
Un bit di controllo viene aggiunto al circuito in modo tale che quando è acceso, l'unità sottrae e quando è spento l'unità aggiunge. Successivamente, aggiungi le porte XOR tra il bit di controllo e ciascun ingresso B. Indirizza l'uscita di ogni XOR all'ingresso B di ogni sommatore. Infine, per rendere compatibile il complimento dell'unità Due, è necessario aggiungere una porta XOR finale tra il bit di controllo e l'esecuzione del bit più significativo.
Questo è il modo più semplice per implementare negativi e sottrazioni in una CPU, poiché aggiungerà con grazia e memorizzerà bene nei registri. Se questo deve essere implementato in una calcolatrice, è sufficiente sottrarre 1 dall'output e quindi invertire tutti gli output tranne quello più significativo. Il bit più significativo sarà attivo se il numero è negativo.
Per fare un sottrattore è sufficiente invertire uno degli ingressi binari (il 1° o il 2° numero). Se il numero è negativo, la risposta esce invertita. Nei computer reali, il primo bit (chiamato anche segno) decide se il numero è positivo o negativo, se lo includi (applicando la stessa regola di inversione) puoi rilevare se il numero è negativo o se è solo un numero grande .
Unità logiche
Nei circuiti potrebbe essere utile avere un'unità logica che, in base all'ingresso, decide quale uscita deve essere scelta. Tale unità può quindi essere utilizzata per circuiti più complessi, come un ALU.
Questo è un esempio di un'unità logica a 2 bit che avrà quattro stati a seconda dell'ingresso.
Le uscite sono nella riga superiore, con ordine 11, 00, 01, 10 (ordine di ingresso: primo primo, secondo inferiore).
Questo è un altro esempio di una versione semplificata che utilizza i codici Gray. L'output appare alle torce alla fine delle righe superiori. Questo design può essere esteso a qualsiasi numero di bit, ma limitazioni pratiche dovute a considerazioni di temporizzazione limitano l'uso di più di un byte o giù di lì. Le uscite vengono attivate rispettivamente dagli ingressi 11, 01, 00, 10.
Unità logica aritmetica
L'unità logica aritmetica (ALU) è la parte centrale della CPU. Esegue calcoli ed elaborazioni logiche e quindi passa queste informazioni a un registro. L'ALU, sulla base dell'input, seleziona una funzione specifica, la esegue e quindi fornisce il risultato.
L'ALU mostrata di seguito è un ALU a 1 bit con le funzioni: ADD, AND, XOR. Prende gli ingressi A e B e poi esegue le funzioni selezionate. Leggi i sommatori per vedere come funziona la funzione AGGIUNGI. XOR e AND sono funzioni di base spiegate nella pagina dei circuiti logici. Ci possono essere più funzioni aggiunte ad una ALU, come moltiplicazione, divisione, OR, NAND... ecc. Queste funzioni potrebbero, con alcune modifiche, essere aggiunte a questa ALU a 1 bit.
Queste ALU a 1 bit possono essere collegate tra loro per creare il maggior numero di bit ALU possibile. Proprio come i sommatori devi collegare il Carry out (Cout) al Carry in (Cin) della prossima ALU
Schema ALU a 1 bit
Redstone
Visualizza su: Template: Redstone/contenuto [modifica]Tutorial | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Introduttivo |
| ||||||||||||
Generale |
| ||||||||||||
Le sfide |
| ||||||||||||
costruzioni |
| ||||||||||||
Agricoltura |
| ||||||||||||
Incantevole e fondente |
| ||||||||||||
Blockbreaking |
| ||||||||||||
meccanismi |
| ||||||||||||
Server |
| ||||||||||||
Tecnici |
| ||||||||||||
Antiquato |
|