Segnalazione di numeri primi

Si propone, ora, la realizzazione di un circuito combinatorio in grado di segnalare sull'uscita Y se un numero dato in ingresso, sotto forma binaria a quattro bit D[3] D[2] D[1] D[0] , è un numero primo (Esercizio n.30 pag.25 Esercizi ed Applicazioni di Elettronica Digitale).

Per pervenire al circuito risolutivo indicato in fig.5 si devono effettuare i seguenti passi:

Fig.5 Circuito combinatorio per la segnalazione dei numeri primi da 0 a 15

Per disegnare il circuito si suggerisce di sistemare prima le porte logiche 7410, 7420 e 7404 prelevate dalla libreria 7400.

I quattro generatori STM1...STM4 sono di tipo DigStim disponibili nella libreria Source. Per disporli come in figura è sufficiente impostare il comando Edit/Rotate di Schematic Editor o, più velocemente, CTRL+R.

Con un pò di pazienza si sistemano i fili di collegamento tra i vari componenti selezionando il comando Edit/Wire o, più velocemente, CTRL+W.

Si salva il circuito realizzato col comando File/Save o, più velocemente, CTRL+S attribuendo il nome PRIMI.SCH.

Cliccando due volte in rapida successione il pulsante sinistro del mouse con la freccia inserita nel simbolo del generatore STM1 si entra automaticamente in Stimulus Editor come descritto nel caso precedente.

Col comando Edit/Add Transition/To 0/1 si realizzi la forma d'onda che in fig.6 è indicata col nome D3. Si ripeta la procedura per gli altri generatori al fine di ottenere le forme d'onda D2 D1 e D0. Ogni volta che si esce da Stimulus Editor si deve salvare il file di stimoli generato: viene automaticamente attribuito il nome PRIMI.STL.

Se si intende realizzare le commutazioni dei vari bit con estrema precisione temporale si può procedere con la modifica del file PRIMI.STL utilizzando un editore di testi come descritto nel caso precedente.

Terminato l'editing dello schema si passa alla simulazione del funzionamento.

Si attiva il comando Analysis/Setup/Transient e si imposta il Print Step al valore 20ns e il Final Time al valore 1000ns che sono, poi, i valori di default.

Tornati, infine, in ambiente Schematic Editor si attiva il comando Analysis/Simulate o, più velocemente, il tasto funzione F11.

Fig.6 Andamento temporale delle linee del circuito segnalatore di numeri primi

Se non si sono commessi errori, dopo l'elaborazione di PSpice si passa in ambiente Probe che ci consente di visualizzare le forme d'onda. Quelle a disposizioni sono numerose ma noi intendiamo utilizzare solo quelle che appaiono in fig.6 che rappresentano le linee di ingresso, le uscite delle porte NAND intermedie e l'uscita finale Y. Per ottenere graficamente sul monitor tali linee si attiva il comando Trace/Add e si clicca col mouse sulle voci D3 D2 D1 D0 Y1A Y1B Y1C Y2A Y che appariranno, in successione, sulla barra Trace Command, in basso. Si clicca, poi, su OK.

L'ultima forma d'onda che appare in fig.6 è quella del BUS a quattro bit costituito dalle linee di ingresso D3..D0. All'interno è indicato il valore esadecimale e ciò ci aiuta ad interpretare il risultato finale della linea Y.

Per ottenere tale BUS si attiva il comando Trace/Add e si digita sulla riga Trace Command l'insieme dei bit costituente il BUS racchiuso tra parentesi graffe:

{ D3 D2 D1 D0 }

Si rammenta che la parentesi graffa aperta ha codice ASCII 123 e quella chiusa 125.

Per materializzare la visualizzazione del simbolo della parentesi graffa aperta, ad esempio, si tiene premuto il tasto ALT posto a sinistra della tastiera e di digita il numero 123 dal tastierino numerico posto a destra. La comparsa della parentesi graffa avviene al rilascio del tasto ALT.