M B PSPICE – simulazione di circuiti digitali Flip Flop M/S, Moltiplicatore parallelo, Memoria SRAM, sommatore, comparatore Laboratorio di Architettura degli Elaboratori - A.A. 2004/2005 M B Il flip flop di tipo Master/Slave I flip flop M/S sono elementi di memoria a doppia cella, nei quali la prima cella è preceduta da un rivelatore di transizione attivato dai fronti di salita. La struttura presenta 2 latch con abilitazione collegati in modo che le uscite del primo siano gli ingressi del secondo; in questo modo il secondo latch può solo copiare lo stato presente nel primo e da ciò deriva il nome di master per il primo e slave per il secondo. il segnale di clock è usato per abilitare la cella master e invertito per abilitare la cella slave. M B Il flip flop Master/Slave D Il SOMMATORE completo Il sommatore completo deve tener conto del carry flag che gli arriva dagli stadi di somma precedenti Solo i bit meno significativi possono essere sommati con un semisommatore. In1 In0 Cin C S in0 in1 cin Sommatore completo 1 bit s c uscite 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 semisommatore Risultato Della Simulazione Da notare la spike derivante dai ritardi relativi… Sommatore integrato Stimoli opportuni… Tempo totale di simulazione 20us/100ns = 20000/100 =200 passi M B Moltiplicazione binaria Quando il moltiplicando è moltiplicato per ogni cifra del moltiplicatore, ogni prodotto parziale è uguale al moltiplicando se la cifra del moltiplicatore è 1, mentre sarà tutti 0 se la cifra del moltiplicatore è 0. L’incolonnamento è fatto nel solito modo, spostando la cifra meno significativa di ogni prodotto parziale in modo che si collochi sulla stessa colonna della corrispondente cifra del moltiplicatore. I prodotti parziali incolonnati si sommano in modulo 2. Esempio: 11 x 9 = 99 si effettua come segue: M B Moltiplicazione binaria In genere l’unità ALU può sommare due numeri alla volta. Per questo i prodotti parziali formati durante la moltiplicazione non possono essere sommati tutti insieme in una sola volta. Invece essi vengono sommati a coppie: cioè il primo aggiunto al secondo, la loro somma aggiunta al terzo, la relativa somma al quarto etc… M B Moltiplicazione binaria con segno Nelle macchine che usano il complemento a 2 la moltiplicazione viene eseguita allo stesso modo, purchè i due termini siano espressi in forma binaria diretta Se i 2 numeri sono positivi: essi sono già in forma binaria diretta e il prodotto sarà ovviamente positivo con bit di segno posto a 0. Se i 2 numeri sono negativi: essi sono nella forma complemento a 2, per cui si effettua il complemento a 2 per trasformarli in positivi, quindi si moltiplicano nel modo usuale. Il prodotto sarà positivo con bit di segno 0 Se i 2 numeri sono di segno discorde: quello negativo viene prima convertito in positivo (complemento a 2) e poi moltiplicato nel modo usuale. Il risultato viene poi trasformato nel complemento a 2 con bit di segno 1. Schema a blocchi del moltiplicatore Gli schemi logici per la moltiplicazione sono più complessi di quelli per l’addizione. Uno schema di principio può essere il seguente: gli r bit del moltiplicando sono memorizzati nel registro a scorrimento A con 2r F/F. Gli r bit del moltiplicatore sono memorizzati nel registro a scorrimento B con r F/F. Il risultato è memorizzato nel registro S con 2r F/F. M B M B Moltiplicatore parallelo Moltiplicare 2 numeri (ad es. con 4 cifre binarie xi e yi) in un passo solo, si può se vengono usati 2 F.A. collegati con i riporti a matrice combinazionale Come indicato in tabella, occorre allora formare le cifre Pij dei vari prodotti parziali disposti per righe e incolonnate secondo la propria potenza di 2. Quindi si sommano per colonne le cifre ottenute trasferendo i riporti di un F.A. in quello che segue all’ingresso della riga e della colonna successiva, in modo da ottenere le cifre Zr (con r da 0 a 7) del risultato finale. M B Blocco Full Adder M B Moltiplicatore parallelo a 2 bit LSB output MSB output resto finale M B Moltiplicatore parallelo a 2 bit M B Moltiplicatore parallelo a 2 bit X=11 Y=11 XY = 11 11 111 111 1 001 N.B.: in rosso è indicato il bit di riporto M B Moltiplicatore parallelo a 2 bit X=11 Y=11 XY = 11 11 111 111 1 001 N.B.: in rosso è indicato il bit di riporto M B Moltiplicatore parallelo a 4 bit M B Moltiplicatore parallelo a 4 bit M B Memoria SRAM Sono memorie i cui bit possono essere mantenuti indefinitamente, posto che non manchi l’alimentazione molto veloci: tempo di accesso dell’ordine di pochi ns consumano poca corrente, per cui non scaldano costano care perché hanno molti componenti per unità di cella di memorizzazione cella di memoria M B Memoria SRAM M B Memoria SRAM Ciascun blocco flip flop D dello schema precedente può essere creato a partire da un circuito posto in libreria IF_IN IF_IN IF_IN IF_OUT M B SRAM – schema ridotto Ingressi DATA READ/WRITE ENABLE (0) > read mode (1) > write mode Ingresso ADDRESS Enable Address Output M B Stimolo per l’ingresso address Ingresso ADDRESS M B Stimolo per il R/W Enable READ/WRITE Enable M B SRAM – schema ridotto Ingresso DATA Din0 M B indirizzo WRITE abilitato Simulazione clock F/F attivato cambio valore ingresso Din0 essendo WRITE abilitato, il F/F cambia stato (uscita Q1) qui, essendo WRITE disabilitato, il F/F non cambia stato (uscita Q1) M B decoder Memoria SRAM 2 a 4 Il SOMMATORE Il sommatore è un circuito che effettua la soma bit per bit di cifre binarie. Può essere definito su di un numero arbitrario N di bit. Si distingue in semisommatore e sommatore completo a seconda se contiene o meno il trattamento del “riporto” (Carry flag) in0 in1 Semi Sommatore 1 bit s c uscite In1 In0 S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 I comparatori numerici I comparatori sono dei circuiti combinatori in grado di confrontare tra di loro due numeri binari All’ingresso del circuito arrivano i bit dei due numeri da confrontare e in uscita solo una di tre linee va allo stato logico alto a seconda che il primo numero in ingresso sia uguale, maggiore o minore del secondo numero in ingresso. Mappe di karnaugh del comparatore a due bit A=B Y = A1B1A2B2 + A1B1A2B2 + A1B1A2B2 + A1B1A2B2 = A1B1(A2B2+A2B2)+A1B1(A2B2+A2B2) = (A1B1+ A1B1) (A2B2+A2B2) = A1 ⊕ B1 • A2 ⊕ B2 A>B Y = A1A2B1B2 + A1A2B1B2 +A2B2 = A1B1•(A2⊕B2) + A2B2 A<B Y = A1A2B1B2 + A1A2B1B2 +A2B2 = A1B1•(A2⊕B2) + A2B2 Schematico Comparatore Simulazione del circuito Comparatore a 4 bit (integrato 7485) Simulazione circuito Comparatore a 8 bit Simulazione del circuito Decodifica per display 7 segmenti Da codice BCD a pilotaggio segmenti A catodo comune (accesi se H) Ad anodo comune (accesi se L) Decodifica per display LED/LCD: tabella della verità Tutto ON Tutto OFF SS00 SS5 5 A catodo comune (H) Code S0 0 H H H H H H L 1 L H H L L L L Es. ‘0’ 2 H H L H H L H 3 H H H H L L H SS1 1 SS66 SS2 2 SS4 4 SS33 … S1 S2 S3 S4 S5 S6 Logica della decodifica Si basa sulla semplice interpretazione della tabella della verità (in forma SOP o POS opportunamente minimizzata) Per la simulazione ci serviamo di un circuito preesistente (7449) Lo schematic Risultato di una simulazione Da notare lo stato di alta impedenza dovuta ad uscite a collettore aperto mancanti di connessioni esterne