Home

.

Logica Digitale

 

Logica combinatoria

Come è già stato accennato nella simulazione dei transistor, MicroCap si rivela particolarmente utile nella simulazione di circuiti logici, soprattutto quando ci sono più variabili. La possibilità di vedere direttamente lo stato dei vari elementi che compongono un circuito, consente infatti di esaminare le combinazioni che ne determinano il funzionamento. La libreria di MicroCap contiene quindi tutti i tipi di elementi logici normalmente usati, reperibili con: Component/Digital Primitives/Standard Gates/…… (i vari elementi sono seguiti da una cifra che indica il numero di ingressi, ad es. And2 indica un And con 2 ingressi ). Un doppio click, consente di riportare nella pagina dello schema (Main) il componente scelto. Per la determinazione dei segnali d’ingresso è previsto un commutatore di stato logico (“0” o “1”), reperibile con: Component/Animation/Animated Digital Switch, mentre per la visualizzazione degli stati d’uscita è previsto un segnalatore nero (spento) per lo stato “0” e rosso (acceso) per lo stato “1” , con : Component/Animation/Animated Digital LED. Naturalmente bisogna poi procedere al “cablaggio”, cioè a collegare fra loro gli elementi disegnati (ma la procedura dovrebbe essere ormai nota).

La seguente configurazione mostra i vari tipi di elementi (a 2 ingressi) pilotati da 2 variabili (switch U1 ed U2), e con le uscite visualizzate dai rispettivi segnalatori.

Per simulare il funzionamento, occorre predisporre Analysis/Dynamic DC…/OK (che permane sino all’arresto con Dynamic DC/Exit Analysis): qualsiasi variazione (doppio click su U1 oppure U2) sarà seguita dall’aggiornamento delle indicazioni luminose. E’ evidente che già con tali possibilità è simulabile qualsiasi circuito di logica combinatoria. Questo permette di verificare facilmente il rispetto delle condizioni fissate o l’equivalenza (nel caso di sostituzioni del tipo di elemento utilizzato). Si vuole invece evidenziare la possibilità di una simulazione più aderente alla realtà fisica di componenti specifici (ad es. TTL della serie 74xx, oppure a CMOS della serie 4000). Occorre però precisare che l’edizione DEMO limita la scelta ad un certo numero di tali elementi, quindi bisogna fare riferimento  a  Component/Digital Library/…. per verificarne la disponibilità.

 

L’esempio mostra una configurazione per l’attivazione di un LED comandato da un elemento SN7406 (buffer inverter) come spesso realizzato in pratica, attraverso un’alimentazione a 5V (V1) ed uno switch che porta a “0” l’ingresso. Si noti che in questo caso, l’accensione si ha in corrispondenza dell’uscita “0” (quindi quando lo switch è aperto), contrariamente al caso di segnalatore logico visto precedentemente.

La possibilità di comandare manualmente la variazione delle singole variabili d’ingresso, pur essendo di per sé notevole, costringe ad effettuare molte  prove per esaurire tutte le possibili combinazioni. MicroCap dà però un’alternativa, mettendo a disposizione una serie di cosiddetti “stimolatori”, cioè di generatori programmabili di forme d’onda che svolgono automaticamente la funzione di cambiare le combinazioni degli stati degli ingressi.

Come esempio, scegliamo: Component/Digital Primitives/Stimulus Generator/Stim4 e ci apparirà un rettangolino con 4 uscite. Col solito doppio click, entriamo nel riquadro di attribuzioni di questo elemento, ed in particolare nel campo programmazione:

Attivando Count4, otteniamo il programma riportato in figura che genera 4 forme d’onda riproducenti il conteggio binario e con questo possiamo quindi ottenere fino a 16 combinazioni delle 4 uscite. Utilizzando tale elemento, vediamone un’applicazione ad un problema di verifica di una minimizzazione circuitale: supponiamo che dalle specifiche di progetto si ottenga una configurazione come quella rappresentata nella figura seguente (elementi 2…8) e che in una successiva minimizzazione questa sia stata ridotta ai soli elementi 9 e 10. Vogliamo verificare che in effetti le 2 configurazioni siano “logicamente” equivalenti.

 

Una volta disegnate le 2 configurazioni ed averle collegate allo stimolatore (U1), possiamo attivare l’analisi transitoria, ottenendo il grafico seguente:

 

Come si può notare, entrambe le configurazioni (uscite d(11) e d(13)) si comportano allo stesso modo. Naturalmente la finestra dell’analisi transitoria deve essere preventivamente predisposta in modo opportuno: poiché usiamo solo 3  variabili, il tempo dovrà essere limitato a 0.8 (solo 8 combinazioni) e le tracce saranno le 4 dello stimolatore ( si noti la possibilità di raggruppamento), più le uscite delle 2 configurazioni a confronto

 

L’esempio dello stimolatore, ci introduce nella più vasta area applicativa degli elementi sequenziali, cioè di quei dispositivi le cui uscite non dipendono direttamente dai segnali di ingresso ma, o tengono conto della sequenza temporale di questi, o generano direttamente forme d’onda prestabilite. E’ quello che vedremo nel prossimo capitolo.

Logica sequenziale

La logica sequenziale, con i suoi stati che evolvono nel tempo, è certamente la più difficile da interpretare. Maggiore quindi è l’utilità di una simulazione che permetta di seguire l’andamento dei vari stati logici di uno schema. Tipici elementi sequenziali sono i Flip-Flop che tengono conto dell’ordine con cui vengono applicati i segnali ai loro ingressi cioè che, in un certo senso, “memorizzano” gli eventi. Non entriamo qui nella casistica dei FF, menzionando solo il tipo più importante, il noto J-K. Supponendo quindi la conoscenza del suo principio di funzionamento e della funzione dei vari terminali di cui dispone, vogliamo mostrare la possibilità di simulazione con MicroCap.

Il generico JK-FF è reperibile con  Component/Digital Primitives/Edge-Triggered Flip-Flops/JKFF ed è qui rappresentato da U1.

 

I terminali d’ingresso non direttamente utilizzati possono essere collegati a dei predispositori di segnale (simili a freccette con 1 o 0, a secondo del segnale, e reperibili con Component/Digital Primitives/Stimulus Generator/Fixed Digital). Con tali segnali sono stati impostati gli ingressi J e K, nonché il Preset ed il Clear di U1 nella figura. Per l’ingresso di Clock si ricorre ad uno stimolatore (come già precedentemente visto) di tipo Stim1 (U13, ad una sola uscita) programmato per generare una forma d’onda quadra di 1Hz. Il risultato del comando Run dell’analisi transitoria è la visualizzazione delle forme d’onda di ingresso (3) e di uscita (6) del FF. Se si vuole visualizzare nello schema l’accensione degli indicatori luminosi, occorre preventivamente nascondere la pagina del grafico ed introdurre un ritardo con la seguente procedura: Analysis/Transient/Scope/Animated Options…/Wait for Time Delay (1)/OK Il risultato (ovviamente qui statico) è riportato nelle seguente figura, dove si possono notare, oltre agli indicatori luminosi accesi, l’indicazione dello stato di ciascun ingresso ed uscita.

Per configurazioni complesse, con più elementi, è evidente che è più importante la registrazione grafica delle forme d’onda. Se ne mostra qui solo un esempio, tratto direttamente dai programmi dimostrativi allegati a DEMO: la configurazione di conteggio decimale .

4 JK-FF collegati fra loro in questo modo permettono il conteggio da 0 a 9 con le uscite QA….QD (in forma BCD, cioè decimale codificato in binario), ripartendo poi da 0.

E’ interessante notare l’uso di stimolatori non solo per l’ingresso impulsi (clock U5, CLK), ma anche per programmare altri segnali quali il SET (U6)  ed il RESET (U7, CLEAR).

 

Il risultato dell’analisi transitoria è riportato nelle figura (solo parziale), in cui si riconoscono chiaramente le combinazioni delle uscite (si noti la forma di indicazione dell’ultima riga).

L’esecuzione di tale programma è ottenuta da: File/Open…/Counter2/Apri.

Questi esempi hanno un carattere didattico più che progettuale ma è ovvio che MicroCap può servire anche a simulare configurazioni molto più complesse, partendo da componenti commerciali specializzati quali contatori (mono o bidirezionali, shift-register, convertitori di codici, ecc.).

La seguente simulazione riguarda un integrato 7490 (contatore TTL per 2 e per 5) con un 7448 (convertitore  BCD - 7segmenti) ed un display  a 7 segmenti.

I singoli integrati sono prelevabili da:  Component/Digital Library/74xx42-/86-/7490A    e, rispettivamente, /42-/7448 . Il display  da:  Component/Animation/Animated Seven Segment.

Con il solito stimolatore (U5) si forniscono  al contatore (X1) gli impulsi di conteggio (clock CKA) per la divisione per 2 (uscita QA), che a sua volta fornisce gli impulsi al divisore per 5 (clock CKB). X2 è invece il convertitore di codice, che controlla poi il display.

L’analisi transitoria, mostra i diagrammi temporali dei vari segnali in gioco, ma permette anche di visualizzare il conteggio sul display. Tale simulazione è così realistica da mostrare anche (con determinati tempi di ritardo impostati) la falsa indicazione dovuta al transitorio tra un conteggio e l’altro (il 7490 non è sincrono).

 

Un altro semplice esempio di automatismo sequenziale è dato dal semaforo. Viene qui indicato uno schema basato sul conteggio di impulsi di temporizzazione, simulando il conteggio con uno stimolatore Stim4 (U1).

 

Come si vede la logica è semplicissima (3 AND ed un NOT), con dei “buffers” (U5…U10) per comandare le luci semaforiche. I semafori sono prelevabili da  Component/Animation/Animated Traffic Light e devono essere impostati per una soglia di commutazione di 0.5V.

L’analisi transitoria delle uscite di U1 (dal n. 7 al 10, dal basso) e del pilotaggio delle luci gialle (uscite U3 , v(13) ed U4, v(14)) hanno i seguenti andamenti.

 

Per una visualizzazione “dal vero” con l’accensione delle lampade semaforiche, occorre anche qui ricorrere, come con i contatori, ad introdurre un opportuno Time Delay.

Si ritiene con questo di aver dato una panoramica (pur molto sommaria) delle simulazioni fattibili con MicroCap anche nel campo digitale, nella convinzione dell’utilità sia nella didattica che nella progettazione dell’impiego di questi nuovi strumenti.