I.T.I.S. E. Mattei URBINO Uso di OrCad come simulatore di reti logiche 1
Capitolo 1: Introduzione... 3 Panoramica su SPICE... 3 Componenti di base... 3 Capitolo 2: Simulazione logica nel dominio del tempo... 5 Inizio di una sessione... 5 Scelta della libreria... 10 Zoom... 12 Simulazione di un circuito con porte logiche... 12 Generatori di segnali digitali... 13 Impostazione dei segnali digitali... 14 Impostazione della simulazione logica... 17 Utilizzo dei markers... 19 Visualizzazione dei risultati del transitorio... 20 Misura del ritardo tra il segnale CLK e Q suu1a... 21 2
Capitolo 1: Introduzione L uso dei sistemi di calcolo elettronici ha permesso di semplificare la progettazione e la realizzazione di circuiti elettronici, sia a componenti discreti, sia a componenti integrati; tuttavia il simulatore elettronico non può sostituirsi alla capacità progettuale del tecnico, che risulta in definitiva, la persona capace di scegliere quale tra le soluzioni proposte sia quella più adatta. Prima di utilizzare il simulatore sarà necessario avere in mente le linee guida del progetto, il tipo di commutatori da utilizzare, le potenze da commutare o convertire, gli intervalli di tensioni e correnti che saranno necessarie nel circuito. Queste valutazioni generali sul progetto sono di competenza esclusiva dell esperto in elettronica e in nessun modo sostituibili da algoritmi, per quanto raffinati, di calcolo numerico. Panoramica su SPICE S.P.I.C.E. (Simulation Program with Integrated Circuit Emphasis) è un simulatore per circuiti elettrici ed elettronici, sviluppato presso l università di Berkeley in California (http://bwrc.eecs.berkeley.edu/classes/icbook/spice/userguide/overview_fr.html). Sviluppato all inizio degli anni 70, tra i suoi autori occorre ricordare l ing. Alberto Sangiovanni Vincentelli, del Politecnico di Milano. SPICE in grado di trattare sia componenti lineari, quali induttori, resistori e condensatori, sia componenti non lineari, quali diodi e transistor; per i componenti non lineari permette l utilizzo di due differenti modelli di calcolo, il primo più semplificato e quindi più rapido da eseguire, il secondo più raffinato che richiede una adeguata conoscenze delle specifiche del componente (area della giunzione, perimetro, spessore, densità di drogaggio, tensioni di break down e così via). Per gli usi più comuni il modello semplificato è di gran lunga il migliore, perché presenta il componente come di solito si usa nei progetti per applicazioni industriali, con un modello sufficientemente rappresentativo, ma non troppo dispendioso dal punto di vista del calcolo. Il motore di calcolo del programma è gratuito e disponibile per tutti; il circuito viene espresso come una lista di componenti e/o sottocircuiti, caratterizzati dai loro nodi e dai loro valori caratteristici. Questa modalità operativa non è certo agevole ed è per questo che sono state prodotte delle versioni commerciali che integrano degli ambienti visuali molto comodi da usare. Naturalmente, se si esclude la differenza tra le impostazioni grafiche, i differenti software commerciali sono del tutto equivalenti per quanto riguarda il modello di calcolo. La versione di cui ci occuperemo è quella prodotta da CADENCE, azienda statunitense di cui Sangiovanni Vincentelli fu cofondatore; il nome commerciale del programma è OrCAD e la scelta su questo software rispetto ad altre versioni, come EWB Workbench, Multisim, è dettata dal fatto che OrCAD è il programma più diffuso nell ambito della progettazione elettronica e quindi costituisce una base essenziale per il curriculum di un perito o di un ingegnere elettronico. Componenti di base SPICE ha predefiniti un elevato numero di componenti per la simulazione di circuiti elettrici: 3
Generatori di tensione e di corrente, sia costanti, che con funzioni programmabili Generatori di tensione e di corrente, controllati in tensione oppure in corrente; Elementi passivi lineari e non lineari; Elementi attivi lineari (generatori controllati ideali) e non lineari (transistor, operazionali, diodi) Oltre a questi elementi, è possibile costruire dei blocchi circuitali che includono gli elementi elencati e costituiscono la base per circuiti più complessi. Oltre agli elementi circuitali, il programma esegue differenti tipologie di analisi: 1. La polarizzazione del circuito e la sensitività alla variazione di parametri come temperatura e amplificazione; 2. L analisi lineare per piccoli segnali; 3. L analisi non lineare. 4. L analisi di segnali logici. I risultati vengono espressi in termini di diagrammi di Bode oppure di diagrammi temporali, come elenco di coppie punti valori. Il loro utilizzo è veramente complesso, perché il file di risultato è un elenco molto lungo di numeri. La versione che utilizzeremo ha un visualizzatore che legge il file dei risultati e li mostra su una interfaccia grafica molto simile a quella di un oscilloscopio digitale, sul quale effettuare operazioni matematiche come la FFT, calcoli di intervalli di tempo o di tensioni, valori massimi e minimi, zoom su parti di segnale visualizzato. OrCAD permette anche di trasferire l elenco dei componenti su un altro programma chiamato Layout con il quale è possibile effettuare il circuito stampato, dove saldare successivamente i componenti di cui si è effettuata la simulazione. Anche questo programma è uno standard a livello industriale ed ha elevata complessità. 4
Capitolo 2: Simulazione logica nel dominio del tempo Inizio di una sessione Questo programma di CAD elettronico lavora tramite progetti, perciò anche la più semplice simulazione va impostata come progetto. Prima di avviare un progetto è necessario aprire una sessione del programma (ovvio!!!). Lo schematico si chiama OrCad Capture CIS e va ricercato all interno del menu applicazioni di Windows. Una volta aperto, la finestra che si presenta è la seguente: E naturalmente per iniziare occorre aprire il menu a tendina su File e scegliere New e quindi Project, come si vede in figura: 5
Selezionato il Project occorre scegliere la directory dove raccogliere i files del progetto e inoltre bisogna assegnare un nome al progetto. In questo caso creeremo una directory in F:\Programmi\OrCAD15_7 dal nome work\primoesempio, mentre il progetto avrà nome RLC. Innanzi tutto appare la finestra New Project, e in basso è evidenziata la posizione nel file system ( Location ), tramite cui è possibile spostarsi. Se infatti si fa click su Browse appare la finestra a destra in figura: Select Directory. Siccome work\primoesempio non è presente nel file system, occorre creare questo percorso e per fare ciò si effettua un click su Create Dir. Se il percorso è composto, come in questo caso da due directory in cascata, è necessario che esse vengano create in maniera consecutiva, creando dapprima work e al suo interno primo Esempio. Terminata questa operazione, occorre assegnare un nome al progetto scrivendo nel campo Name, in questo caso RLC. Prima di battere OK occorre scegliere cosa dovrà fare il progetto, andando a scegliere il radio box desiderato. In questo caso occorre selezionare Analog or Mixed A/D. Ora si può premere OK. 6
E verrà creato il progetto desiderato. Prima di poter essere operativi, Capture chiede un ultima cosa, cioè se il progetto dovrà ereditare qualche impostazione da altri progetti oppure dovrà essere un progetto creato ex-novo. Per i nostri scopi ci occuperemo di progetti che non ereditano niente. La finestra che chiede queste info è la seguente: E come si vede è stato scelto un progetto blank, cioè vuoto. Si può ora cliccare su OK e terminare la fase di impostazione del progetto. A questo punto si apre la pagina dello schematico, dove disegnare lo schema elettrico, insieme ad altre finestre di informazioni sugli elementi componenti il progetto. Quest ultima è sulla sinistra mentre lo schematico resta sulla destra. La figura successiva chiarisce meglio l esposizione. 7
Nella finestra di sinistra si nota nel titolo la tipologia di progetto (Analog or Mixed A/D) e si nota che l albero del progetto è stato aperto ( Design resource ) ed indica che dentro il progetto RLC c è uno schematico con una unica pagina ( PAGE1 ). In questa pagina, che è la finestra di destra, si andrà a disegnare il circuito. Se si effettua un click di sinistro all interno della finestra dello schematic1:page1 la finestra principale del programma cambia e diventa quella che si può vedere nella successiva figura: alla destra appare una barra degli strumenti verticale, che sarà molto utile nella editazione del disegno. 8
In particolare sono importanti la seconda icona dall alto, che permette di inserire il componente, la terza icona dall alto che permette di inserire il collegamento elettrico tra componenti, la nona icona dall alto che permette di inserire il nodo con il potenziale di riferimento, ovvero il potenziale 0. Sono questi 3 tasti quelli che saranno, al momento, i più importanti. Come già intuibile dal titolo del progetto, ci occupiamo di disegnare un circuito RLC e quindi dovremo inserire una resistenza, un condensatore ed un induttore. Quindi si effettua un click sul secondo pulsante e si piazza il componente. In realtà Capture è molto più raffinato e raggruppa i componenti in librerie, secondo funzionalità assimilabili: un resistore non si troverà nella libreria dei transistori, così come non si troverà nella libreria degli amplificatori operazionali. Perciò occorre trovare la libreria adatta alle nostre necessità. 9
Scelta della libreria Al primo avvio del programma non è selezionata alcuna libreria come si può vedere nella figura seguente. e la cache è vuota. Quindi occorre selezionare Add Library e scegliere le librerie adatte. Per i nostri scopi sono sufficienti le librerie 74LS e SOURCESTM, la prima per i componenti base di tipo digitale (porte logiche), la seconda per i generatori di segnali digitali. 10
Il percorso della libreria 74LS è il seguente: C:\PROGRAMMI\ORCAD\tools\capture\library\pspice così come lo stesso percorso è relativo alla libreria SOURCESTM. Dopo aver selezionato le due librerie si ha: 11
Selezionando la libreria desiderata dalla finestra Libraries, in Part List è possibile trovare il componente, che va selezionato e poi si preme OK, tornando alla pagina dello schematico, con il pezzo agganciato al cursore. Il pezzo può poi essere piazzato sulla pagina dello schematico. Può essere ruotato, spostato finché non si pigia il tasto sinistro del mouse, che pone il componente nel punto desiderato. Zoom Se la visione è troppo piccola, si può ingrandire o usando il bottone con la lente oppure premendo il tasto I. Per rimpicciolire si può premere O. Una volta che il componente è stato piazzato, il programma ripropone lo stesso componente. Se il numero di componenti è sufficiente, si può interrompere il processo premendo il tasto destro del mouse oppure pigiando il tasto ESC. Simulazione di un circuito con porte logiche In questo esempio si vuole simulare il diagramma temporale dei segnali di ingresso e di uscita di un circuito costituito da un componente 74LS107 che è un doppio flip-flop di tipo J-K. Dal tasto Place Part è possibile scegliere il componente desiderato: e poi si ottiene la seguente finestra: 12
Si pone il componente nel foglio dello schema elettrico. Siccome il componente è costituito da due parti, cioè da 2 flip-flop il programma permette di posizionarli entrambe. Questa cosa è evidenziata anche dal fatto che i due circuiti hanno nome U1A ed U1B. Questa scelta è effettuata in automatico dal programma. Generatori di segnali digitali Per continuare nella simulazione occorre inserire nel circuito un certo numero di generatori digitali, che possono essere a singolo segnale oppure a bus di segnali ; a bus di segnali significa che il generatore raggruppa un insieme di segnali. Questi bus hanno dimensione che è una potenza del 2: 2, 4, 8, 16, 32. I generatori vanno prelevati dalla libreria SOURCESTM. Il generatore ha la forma rappresentata in figura: Figura 1: generatore di segnale digitale L indicazione S1 significa che il generatore è da singolo segnale; S2 indica un bus da 2 segnali e così via. E molto impostante assegnare un nome significativo alla voce implementation = perché permetterà successivamente di definire il segnale temporale con l apposito editor. Per assegnare un nome al segnale doppio click su implementation e poi si scrive il nome voluto. Occorre posizionare 2 generatori di questo tipo ed effettuare i collegamenti, come riportato in figura. 13
Figura 2: circuito di esempio Non ci si preoccupi in questa fase della presenza delle frecce in grigio, perché sono i markers di cui si vedrà successivamente. Come si vede i due generatori hanno nome pulse e clear, ma questi nomi sono naturalmente a scelta dell utilizzatore. Impostazione dei segnali digitali Occorre a questo punto impostare i segnali dei generatori e per far questo click di sinistro sopra il simbolo del generatore di segnale. Figura 3: selezione generatore Occorre poi effettuare il click di destro in modo da far apparire il menu contestuale: 14
Figura 4: selezione dell'editor di stimoli e selezionare Edit PSpice Stimulus. Si apre un nuovo programma che permette di inserire i livelli logici dei segnali di ingresso. Occorre ricordare che deve già essere stato assegnato un nome ad implementation. L apertura dell editor di segnali permette di definire il segnale del generatore che è selezionato. 15
Come si può notare infatti, il nome del segnale, cioè pulse è già preimpostato; occorrerà ora selezionare Signal dal pannello Digital e impostare un valore iniziale, ad esempio 0. Dopo questa operazione si conferma e si ottiene la seguente finestra: Figura 5: impostazione del segnale sul livello "0" Con un click sul simbolo della matita è possibile editare il segnale. Se il segnale è singolo come in questo caso, ad ogni click della matita si ha uno scambio del valore del segnale stesso. Figura 6: impostazione del segnale "PULSE" Per impostare l altro segnale, cioè clear si opera in questo modo: si seleziona stimulus->new come in figura; Si apre la finestra New Stimulus e nel campo Name si inserisce il nome dell implementazione del segnale, cioè clear. Si sceglie poi Signal dal pannello Digital e si ottiene: 16
A questo punto è possibile effettuare la scelta del valore del segnale clear, come si è scelto in figura e poi si salvano le tracce così come sono state editate. Figura 7: segnali di ingresso Si torna alla schermata del circuito e si imposta la simulazione Impostazione della simulazione logica Quando un progetto è creato ex-novo, non si ha alcuna impostazione di simulazione e quindi occorre crearne una. Dalla barra degli strumenti occorre selezionare l icona evidenziata ( New simulation profile ): Dopo il click appare la finestra di richiesta del nome della simulazione: Figura 85: New Simulation Si inserisce un nome, ad esempio sim1 e si effettua click su Create. Appare quindi la finestra delle impostazioni: 17
Figura 9:Scelta impostazioni Occorrerà scegliere Time Domain (Transient) e poi impostare la durata della simulazione. Di default sono scelti 1000ns = 1us. Si conferma la scelta e si torna al foglio di lavoro. Se ci si accorge di aver sbagliato qualcosa nell impostazione si può riaprire la finestra e modificare le scelte. In questo caso è utile l icona Edit Simulation Setting che è alla immediata destra dell icona usata per creare il nuovo profilo di simulazione. Figura 10: Edit Simulation Setting Ora è tutto pronto per lanciare la simulazione e si può agire sull icona RUN PSpice che è rappresentata da un triangolo blu orientato a destra. 18
Utilizzo dei markers Questa operazione è molto semplice, perché il programma mette a disposizione dei markers che vengono scelti usando l apposita icona. Figura 11: scelta markers Per scegliere il marker si deve clickare sul simbolo della freccetta con il simbolo della tensione V. Il cursore cambia forma e diventa del tipo di una freccetta la quale va posta sul nodo che si vuole monitorare. Dopo il posizionamento del primo marker, occorre attendere qualche istante, poi si può proseguire con il secondo. In questo esempio si andranno a controllare i segnali di ingresso e i segnali di uscita. I segnalatori andranno posti come in figura: Figura 11: Impostazione dei markers Si può ora lanciare la simulazione con un click sul tasto in figura (freccia blu a sinistra): 19
Dopo la fine del calcolo, si apre un nuovo programma che si occupa di visualizzare i risultati in forma grafica. Figura 12: risultato della simulazione Si fa notare che STM2 è il nome del generatore DSTM2, mentre STM1 è il nome di DSTM1. STM1 è il segnale di clear, che è attivo basso. Visualizzazione dei risultati del transitorio Per ottenere delle misure sul segnale utilizzare i cursori, che si attivano dall icona Toggle Cursor. Figura 13: Toggle Cursor I cursori sono 2 che vengono attivati dalla pressione dei tasti sinistro del mouse e destro. Lo spostamento del cursore sulla curva avviene tenendo premuto il tasto corrispondente del mouse e trascinando il mouse stesso. Quando i cursori vengono attivati appare la finestra: 20
Figura 14: misura con cursori dove A1 è relativo al cursore di sinistra, mentre A2 è relativo al cursore di destra. La prima colonna riporta i valori dell asse x, mentre la seconda colonna riporta i valori dell asse y. Durante lo spostamento del cursore i valori nella finestra cambiano. All attivazione dei cursori, appare anche la tool bar presente in figura, con la quale è possibile selezionare il precedente o il successivo transitorio. Quando si hanno più curve visualizzate, i cursori si spostano sulla curva selezionata, che è evidenziata in basso: Figura 15: curva selezionata Per cambiare curva, ad esempio U1B:Q si va con il mouse sopra il nome del segnale e poi si effettua click di tasto destro e poi di sinistro. Questa operazione abilita entrambe i cursori a funzionare sulla stessa curva. Misura del ritardo tra il segnale CLK e Q suu1a Come esempio si effettui la misura del ritardo tra la transizione verso il basso del segnale DSTM2 e il successivo cambiamento del uscita Q su blocco U1A. La soluzione è molto semplice: occorre attivare il segnale Q (come detto in precedenza) e poi spostare i cursori premendo i tasti del mouse e poi trascinando. 21
Il grafico rappresenta il risultato della misura. Figura 16: misura con cursori La finestra del Probe Cursor, mostra la differenza temporale tra i due segnali, che si aggira su 16ns. 22