Gerarchia per un circuito digitale

Si riporta in fig.5, a titolo di esempio, lo schema a blocchi di un circuito sommatore per due parole binarie a 4 bit di nome ADDER4B.SCH.

Fig.5 Circuito sommatore realizzato con la struttura gerarchica nidificata

Le variabili di ingresso del blocco sono due parole binarie a quattro bit A4... A1, B4... B1 e l'ingresso di riporto indicato con C1.

Le variabili di uscita sono i quattro bit S4... S1, risultato della somma, e il riporto C5.

Il blocco è alimentato da due generatori di tipo DigStim ciascuno dei quali è costituito da 4 bit. C1 è tenuto costantemente al livello logico basso dal port LO.

Per la costruzione del blocco si applichi lo stesso metodo indicato nel paragrafo 3.

Per la definizione dei generatori DigStim si faccia riferimento alle forme d'onda che sono mostrate in fig.9.

Il contenuto del blocco, come è noto, è costituito da quattro full-adder ad un bit collegati in cascata in modo che l'uscita di riporto di un full-adder sia l'ingresso di riporto del full-adder immediatamente più significativo.

Fig. 6 Sommatore a 4 bit ottenuto dal collegamento in cascata di 4 full-adder a loro volta blocchi

In fig.6 si mostra tale circuito, di nome ADDER.SCH, che si deve costruire cliccando due volte in rapida successione all'interno del blocco di fig.5 o applicando il comando Navigate/Push.

Vi sono 4 blocchi dalle funzionalità identiche indicati con FA1, FA2, FA3 e FA4 ciascuno dei quali ha come ingresso i bit A e B ed ingresso di riporto C e come uscite il bit di somma S e quello di riporto R.

Si noti che l'uscita R del full-adder meno significativo FA1 è collegato all'ingresso di riporto C del full-adder successivo, e così via.

I port INTERFACE di ingresso e di uscita sono stati trovati all'interno di Schematic quando si è passati dallo schema gerarchicamente più elevato ADDER4B.SCH in ADDER.SCH col comando Navigate/Push.

Ciascun full-adder, a sua volta, è costituito da due half-adder e una porta logica OR come si mostra in fig.7. Tale circuito ha nome FULL_ADD.SCH.

Fig.7 Full-adder ad un bit realizzato con due half-adder e una porta OR

Anche gli half-adder di fig.7 sono dei blocchi ciascuno dei quali è realizzato da una porta OR-esclusivo per la somma S e da una porta AND per il riporto R come si mostra in fig.8. Il circuito ha nome HA.SCH

Fig.8 Half-adder realizzato con X-OR 7486 e porta AND 7408

Il circuito di fig.8 rappresenta il livello più basso della struttura gerarchica del sommatore.

Per eseguire l'analisi in funzione del tempo si imposta Analysis/Setup/Transient e si pone il Time Step a 200ns e il Final Time a 5000ns. Nel menù Setup si ricordi di cliccare nel rattangolino a sinistra del pulsante Transient per attivare tale analisi.

Si procede, infine, alla simulazione col comando Analysis/Simulate.

Dopo l'elaborazione di Pspice entra automaticamente in azione Probe. Per visualizzare le forme d'onda di fig.9, che forniscono in forma esadecimale, i valori della parola A, della parola B, della somma S, qui indicata con Sbus, e del riporto C5, qui indicato con C5$DtoA, si attiva il comando Trace/Add e nella barra Command si digitano, di seguito, {A4 A3 A2 A1} {B4 B3 B2 B1} {S4$DtoA S3$DtoA S2$DtoA S1$DtoA};Sbus C5$DtoA.

Il punto e virgola dopo la parentesi graffa è necessario se si vuole che il titolo della forma d'onda in questione sia Sbus anziché la scomoda e lunga stringa {S4$DtoA S3$DtoA S2$DtoA S1$DtoA}

Fig.9 Forme d'onda di ingresso e di uscita per il sommatore di fig.5

Si ricordi di definire i generatori di stimoli STM1 e STM2 come le forme d'onda A e B indicate in fig.9. Si osservi, infine, che il valore 7 dell'addendo A e del risultato Sbus è sostituito dal simbolo di asterisco * perché lo spazio disponibile non consente la scrittura del carattere 7.