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