Qual è il ragionamento per le funzioni aritmetiche sul 74181?

Non capisco perché 74181 funzioni in questo modo. Funziona forniscono il set completo di funzionalità logiche (AND, NAND, OR, NOR, XOR, shift), ma le sue funzionalità aritmetiche non sono così chiare. Ad esempio, non contiene A - B e A + B nella stessa modalità.

Potresti fornire un background storico su come è stato progettato?

Commenti

  • buona domanda, ma non ' credo che nessuno di noi utenti di chiphacker conoscerebbe nessuno dei motivi di TI oltre a quello che è nella scheda tecnica o su wikipedia en.wikipedia.org/wiki/74181
  • @Jason: grazie per il tuo commento. allora dovè il buon posto per questa domanda?
  • non sei sicuro … controlla con un rappresentante di vendita TI? forse potrebbero metterti in contatto con uno dei veterani che lavoravano al 74181 nel 1970 ' s.

Risposta

So che questa è una vecchia domanda, ma recentemente ho decodificato il 74181 e posso spiegare in dettaglio perché ha le funzioni lo fa.

Il 74181 è un chip ALU a 4 bit che fornisce 16 funzioni logiche e 16 funzioni aritmetiche sui suoi operandi A e B. Molte delle funzioni logiche sono ciò che potresti aspettarti (AND, OR, XOR), ma ce ne sono anche di insoliti come A OR NOT B. Le funzioni aritmetiche sono ancora più strane. Anche se hai A PLUS B e A MINUS B, alcuni come (A OR B) PLUS (A AND NOT B) sembrano piuttosto casuali.

In realtà cè una ragione per questo insieme di operazioni. Le funzioni logiche forniscono tutte le 16 funzioni booleane f (A, B). Le funzioni aritmetiche si riducono tutte a LA PIÙ f (A, B) PIÙ riporto.

Torna indietro per vedere perché ce ne sono 16 funzioni. Se hai una funzione booleana f (A, B) su ingressi a un bit, ci sono 4 righe nella tabella della verità. Ogni riga può produrre 0 o 1. Quindi ci sono 2 ^ 4 = 16 funzioni possibili. Estendi queste a 4 bit, e queste sono esattamente le 16 funzioni logiche del 74181, dal banale 0 e 1 alla logica attesa come A AND B a operazioni artificiose come NON A AND B.

Le funzioni aritmetiche sono semplicemente queste 16 funzioni aggiunte ad A con laggiunta del carry-in. Ad esempio, se f (A, B) = B, ottieni A PLUS B PLUS carry-in. Se f (A, B) = NON B, ottieni A PLUS NON B PLUS carry-in, che in una logica con complemento a due “s si trasforma in A MINUS B MINUS 1 carry-in.

Altro fu aritmetica Le funzioni richiedono un po più di analisi. Supponiamo che f (A, B) = NOT (A OR B). Quindi ogni bit di LA PIÙ f (A, B) sarà sempre 1 tranne nel caso in cui A è 0 e B è 1. Quindi il risultato è A OR NON B. Anche se stai facendo laddizione, il risultato è un funzione logica. Le altre strane funzioni aritmetiche possono essere spiegate in modo simile.

Una cosa da notare è che LA PIÙ A ti dà lo spostamento a sinistra, ma non cè modo di fare lo spostamento a destra sul 74181.

Nella sua implementazione il 74181 ha quattro linee di selezione che scelgono quale delle 16 funzioni f (A, B) viene utilizzata. La prima metà del circuito del chip calcola le quattro somme a 1 bit di A con f (A, B). (In particolare, crea i segnali di generazione e propagazione utilizzati per carry lookahead . Ciò consente al 74181 di funzionare in parallelo, invece di utilizzare un ripple carry.) La seconda metà del circuito del chip genera tutti i carry in parallelo e calcola la somma finale.

Internamente, le funzioni logiche vengono implementate eseguendo addizioni con i riporti interni tutti forzati in alto dalla linea M: A PIÙ f (A, B) con tutti i riporti. È semplice vedere che questo genera ancora 16 funzioni logiche uniche. Tuttavia, permuta lordine, motivo per cui se guardi il foglio dati non cè alcuna connessione evidente tra le funzioni logiche e le funzioni aritmetiche.

Se vuoi capire gli interni del 74181 “, guarda prima il 7483 sommatore a 4 bit, che è uscito due anni prima. Utilizza il stesse tecniche di calcolo del carry, ma è più semplice da capire in quanto fornisce una funzione, non 32. Puoi pensare al 74181 come alla generalizzazione del 7483.

Risposta

A minus B minus 1 viene utilizzato per la sottrazione e il complemento del flag carry può essere visto come flag di prestito.

Commenti

  • In effetti anche gli AVR lo usano – non hanno unistruzione di aggiunta immediata (solo sottrazione immediata) poiché puoi convertirli facilmente luno nellaltro. Se entrambi i valori provengono da registri quindi entrambi su be aggiungi sono belli e veloci, ma uno non è ancora strettamente necessario.
  • Sì, vedi stackoverflow.com/questions/1337831/…

Lascia un commento

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