Che cosè una tabella di verità del sommatore completo a 2 bit?


Migliore risposta

Una tabella della verità è una tabella che fornisce loutput di una funzione booleana per ogni possibile combinazione di ingressi. Un sommatore completo è una funzione booleana (o un componente hardware che la implementa) che, dati due interi a 2 bit, fornisce la somma di questi numeri interi incluso il carry-over. (Un mezzo sommatore aggiunge solo i numeri ma ignora il riporto). Se hai due interi a 2 bit come input, ci sono 16 possibili input, quindi la tua tabella avrà 16 righe. Ecco come può apparire se i tuoi ingressi sono aeb con bit luscita è xabx 00 00 000 00 01 001 00 10010 00 1 1 011 01 00 001 01 01 010 01 10011 01 11100 11 00 011 10 01 011 10 10 100 10 11 101 11 00 011 11 01 100 11 10 101 11 11 110

Risposta

La risposta disinvolta è “qualunque cosa il progettista vuole”.

Quando ho iniziato a occuparmi di progettazione di computer alla fine degli anni 70, avevo una formazione in matematica e, in misura minore, nella programmazione di computer. Alcuni dei primi lavori che ho svolto riguardavano la progettazione e limplementazione di set di istruzioni e in particolare, delle operazioni aritmetiche. Tutto ciò richiedeva che dovessi costruire una comprensione dellaritmetica del computer e, a causa del background, lo facevo da un punto di vista matematico leggermente astratto. Questo era in contrasto con quanto stabilito in molti libri di testo di elettronica e progettazione di computer che definiscono le funzioni (ad es. sommatori) e la loro implementazione, ma non sempre danno motivazione.

La motivazione Lo ione per implementare un sommatore consiste nel prendere due serie di bit (“parole”), che rappresentano numeri, e produrre un output che rappresenta la somma di quei bit. Ci sono tre delle domande chiave da porre qui. Innanzitutto, quali sono i numeri che stiamo cercando di rappresentare. In secondo luogo, come vengono rappresentati questi numeri come bit. In terzo luogo, cosa dovrebbe accadere se la somma dei due numeri non può essere rappresentata come un insieme di bit.

Una situazione comune (N-bit, little endian, intero senza segno) è che un La parola di N bit viene utilizzata per rappresentare gli interi [0,2^N-1], e la parola B[N-1]...B[0] rappresenta il valore ΣB[i]2^i: i in [0,N-1]. La terza domanda è un problema: la somma dei due input può essere compresa nellintervallo [0,2*(2^N-1)] e quindi ci sono risultati che non possono essere rappresentati.

A la semplice implementazione da manuale di un “sommatore a N bit” lo costruisce da N “sommatori completi a 1 bit”. Oltre ai 2 set di N bit di operando, cè un bit di riporto (forzato a zero) e un bit di riporto. Se il risultato matematico delladdizione può essere rappresentato, allora gli N-bit di risultato del sommatore saranno la corretta rappresentazione del risultato, e il risultato sarà 0. Se, daltra parte, il risultato matematico di la somma non può essere rappresentata, quindi gli N bit di risultato del sommatore saranno la corretta rappresentazione del risultato modulo 2 ^ N, e il risultato sarà 1. Riassumendo, questo sommatore produce sempre il risultato corretto modulo 2 ^ N e a eseguire indicano che il risultato corretto non è rappresentabile. Alcuni sistemi informatici vorranno trattare questo come un errore, magari registrandolo in un flag o causando uneccezione.

Unaltra situazione comune (N-bit, little endian, complemento a due con segno intero) è che un La parola a N bit viene utilizzata per rappresentare gli interi [-2^(N-1),2^(N-1)-1], e la parola B[N-1]...B[0] rappresenta il valore -B[N-1]*2^N + ΣB[i]2^i: i in [0,N-1]*. Anche in questo caso, ci sono risultati che non possono essere rappresentati. Il sommatore descritto in precedenza ha prodotto il risultato corretto per tutti i risultati rappresentabili (motivo per cui viene utilizzata laritmetica in complemento a due). Tuttavia, il risultato non indica se il risultato è rappresentabile. (Considera -1 + 1 = 0 che produce un risultato e 0 + 0 = 0 che non lo fa). Per il complemento a due la condizione che rappresenta un risultato non rappresentabile (comunemente chiamato “overflow”) è che il bit di segno (bit più significativo) del risultato è “inaspettato”, ovvero la somma di due numeri negativi sembra essere positiva, oppure la somma di due numeri positivi sembra essere negativa (esercizio per il lettore per mostrare che la somma di due numeri di segni diversi può sempre essere rappresentata).

Alcune altre rappresentazioni possono essere in grado di utilizzare gli stessi sommatori come interi con e senza segno. Per le rappresentazioni frazionarie in cui il valore di una parola è il valore della parola, trattato come un intero, diviso per una potenza di due, il sommatore produce il risultato corretto quando il valore è rappresentabile. Tuttavia, nei sistemi che utilizzano queste rappresentazioni, a volte il comportamento desiderato è che i risultati “saturano”, ovvero il risultato è fuori intervallo, la somma è il valore più positivo o più negativo, a seconda dei casi. Altri sistemi 2 uno dei valori, (tipicamente 10… 0) da utilizzare come valore di errore che poi si propagherà attraverso ulteriori operazioni. In questo caso sarà necessario un sommatore speciale.

* Questa formulazione rende esplicita la forma del complemento a due: il valore con segno della parola è il valore senza segno della parola meno 2 ^ N volte il bit superiore (bit del segno). In modo equivalente il valore può essere scritto -B[N-1]*2^(N-1) + ΣB[i]2^i: i in [0,N-2] che corrisponde al bit superiore che rappresenta 0 o -1 anziché 0 o +1.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *