Circuito per la segnalazione dei numeri primi

 

Ricordiamo che la versione di valutazione del programma Design Lab della MicroSim contiene nella libreria EVAL, oltre a vari componenti elettronici, anche circuiti digitali della famiglia logica TTL standard.

  In questa seconda esercitazione ci proponiamo di eseguire l’analisi in funzione del tempo di un circuito digitale che, sull’uscita Y, è in grado di segnalare col livello logico 1 la presenza nella configurazione di ingresso di un numero primo.

Poiché gli ingressi binari sono 4 e sono : D C B A, i numeri che possiamo applicare in ingresso sono quelli compresi tra 0 e 15.

I numeri primi compresi tra 0 e 15 sono, come è noto: 2, 3, 5, 7, 11, 13.

Quando applichiamo in ingresso una combinazione binaria corrispondente ai numeri primi precedentemente indicati l’uscita Y deve andare a 1.  In tutti gli altri casi rimane al livello logico 0.

 

Di seguito si mostra la tabella della verità, la mappa di Karnaugh e la funzione minimizzata.

 

        _ _     _       _         _
Y = D C B + D B A + C B A + C B A

 
 

n

D

C

B

A

Y

 

0

0

0

0

0

0

 

1

0

0

0

1

0

 

2

0

0

1

0

1

 

3

0

0

1

1

1

 

4

0

1

0

0

0

 

5

0

1

0

1

1

 

6

0

1

1

0

0

 

7

0

1

1

1

1

 

8

1

0

0

0

0

 

9

1

0

0

1

0

 

10

1

0

1

0

0

 

11

1

0

1

1

1

 

12

1

1

0

0

0

 

13

1

1

0

1

1

 

14

1

1

1

0

0

 

15

1

1

1

1

0

 

 

DC

 

 

 

 

BA

 

00

01

11

10

 

00

 

 

 

 

 

01

 

1

1

 

 

11

1

1

 

1

 

10

1

 

 

 

 

 

 

Y1

 

 

                   

  Per verificare la tabella della verità abbiamo deciso di applicare in sequenza, ad intervalli di tempo di 1ms, tutte le possibili combinazioni comprese tra 0 e 15.

Per ottenere ciò è sufficiente pilotare l’ingresso D con un clock digitale che assume il valore 0 per 8ms e 1 per i successivi 8ms. In tal caso il periodo è 16ms.

L’ingresso C, invece, deve assumere il valore per 4ms. e 1 per i successivi 4ms. e periodo, quindi, di 8ms. L’ingresso B deve assumere il valore 0 per 2ms. e 1 per altrettanti 2ms. per un periodo di 4ms.

L’ingresso A, infine, deve assumere i valori 0 e 1 per 1ms. con periodo 2ms.

I componenti digitali da utilizzare sono: 4 porte NAND a 3 ingressi, una porta NAND a 4 ingressi  e 3 porte NOT.

Il circuito integrato 7410 contiene 3 porte NAND a tre ingressi indicate con le lettere A B e C.

Il circuito integrato 7420 contiene 2 porte NAND a 4 ingressi indicate con A e B.

Il circuito integrato 7404 contiene 6 NOT indicati con le lettere A, B, C, D, E e F.

Si osservi, infine, che per la realizzazione del circuito sarebbero necessari 2 circuiti integrati 7410 per coprire il fabbisogno di 4 porte NAND a 3 ingressi e che ci avanza una porta NAND a 4 ingressi appartenete al circuito integrato 7420.

Si decide, allora, per risparmiare la spesa di un circuito integrato non strettamente necessario, di “adattare” la porta NAND a 4 ingressi del 7420 che avanza come porta NAND a 3 ingressi.

 

Come si fa ? Semplice. E’ sufficiente applicare il livello logico 1 al quarto ingresso che non utilizzeremo oppure applico una linea di ingresso a due piedini di ingresso contemporaneamente. Ad esempio applico la linea A ai pin 4 e 5

In ambiente Schematics di MicroSim si realizza il circuito come quello mostrato in fig.1.

 

 Fig.1 Circuito per la segnalazione dei numeri primi realizzato in ambiente Schematics di MicroSim 8.

 Per attribuire il nome D, C, B ed A ai fili di collegamento compresi tra i DigClock e gli ingressi delle porte è sufficiente fare doppio clic sul relativo filo ed inserire il nome desiderato nella finestra di dialogo che appare. Fare la stessa cosa per le uscite Y1A, Y1B, Y1C, Y2A, Y.

 Per impostare le forme d’onda sulle linee D, C, B, A è sufficiente fare doppio clic sul simbolo del clock digitale ed inserire per:

 Per attribuire il nome e la piedinatura come in fig.1 alle porte logiche è sufficiente fare doppio clic nel campo U1A dell’integrato così definito. Si ottiene una finestra di dialogo che ci consente di modificare sia il nome dell’integrato (conviene conservare la convenzione della lettera U iniziale ) che la scelta della porta logica all’interno dell’integrato.

 Analisi delle forme d’onda

 Per eseguire l’analisi in funzione del tempo delle forme d’onda delle linee di ingresso e dell’uscita Y si deve eseguire il setup specificando l’analisi ai transienti:

 Analysis/Setup/transient

In questo modo si potranno esaminare le 16 combinazioni di ingresso che si otterranno in 16 ms più la ripetizione delle prime 4 combinazioni.

Salvare il file col nome PRIMI.SCH nella cartella c:\corso3 (se non esiste la create).

Dopo il setup si passa alla simulazione:

Analysis/Simulate (oppure F11)

Se il circuito è privo di errori il programma Schematics richiama  PSpice che elabora i dati per poi visualizzarli automaticamente col programma Probe.

Se si è entrati nel programma Probe si noterà lo schermo vuoto da forme d’onda.

Per inserire le forme d’onda è necessario attivare il comando: Trace/add.

Sulla parte destra si ha l’elenco delle grandezze che è possibile visualizzare, e sono tante. Per ridurre all’essenziale le grandezze in elenco, deselezioniamo la casella “alias name”. In questo modo ci appaiono solo quelle definite da noi più qualche altra di facile interpretazione.

Facendo clic sulle linee D C B A e poi clic sul pulsante OK si visualizzano le forme d’onda mostrate in fig.2 limitatamente alle linee di ingresso.  

Fig.2. – Forme d’onda di ingresso, intermedie e di uscita del circuito assegnato.

  Dalla fig.2 si nota che sono state scelte contemporaneamente gli ingressi D C B A rappresentate con linee a doppio livello con dentro il valore esadecimale corrispondente alla parola binaria DCBA. Ciò, come si evince, facilita la lettura delle varie combinazioni.

Per ottenere sullo schermo l’insieme delle linee si procede così:

 Trace/Add.

  Si apre una finestra di dialogo che presenta nella parte inferiore una riga Trace Expression: inserire in tale campo l’elenco delle grandezze che voglio esaminare comprese tra parentesi graffe (ALT123 e ALT125): {D C B A}; se non piace visualizzare l’elenco delle linee racchiuse in parentesi graffe ma preferiamo la dicitura INGRESSI è sufficiente far seguire alla parentesi graffa chiusa il punto e virgola seguito dalla parola che si intende visualizzare: {D C B A};INGRESSI.

  Per ottenere, infine, le uscite delle porte NAND a tre ingressi e l’uscita Y si attiva il comando:

Trace/Add/ Y1A Y1B Y1C Y2A Y.

  Per controllare la correttezza del funzionamento del circuito basta visualizzare il cursore col comando Tool/Cursor/Display e poi scorrere lentamente il cursore sulle forme d’onda verificando, combinazione per combinazione il corretto responso.

  Controllare, inoltre, la correttezza delle funzioni Y1A Y2A Y3A e Y2A (funzionanti in logica negativa perché corrispondono alle uscite delle porte NAND e non AND) desumendole dalla mappa di Karnaugh in pag.1.

 Proposta di lavoro:

Sostituire tutte le porte NAND con porte NOR ed analizzare l’uscita Y in funzione degli ingressi {DCBA} indicando, di seguito, i livelli logici assunti da Y in corrispondenza di ciascuna combinazione di ingresso.

 

Valore decimale

Ingressi

DCBA

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

uscita

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 Suggerimento: seleziona e cancella le cinque porte logiche.

Infatti la funzione svolta è:

 Y = (Y1A +Y1B) + (Y1C + Y2A)