tutorial mentor graphics - tuiasi 2.pdf · de exemplu in biblioteca selectata, si anume fsm, avem...
Post on 24-Feb-2020
11 Views
Preview:
TRANSCRIPT
1
Tutorial Mentor Graphics http://vlsi.etti.tuiasi.ro
implementarea si testarea pas cu pas a unui divizor de frecventa
folosind tool-urile Mentor Graphic
Cuprins:
PREGATIREA SISTEMULUI DE OPERARE PENTRU PROIECTUL CID. ................................................. 2 FOLOSIREA PROPRIU ZISA ICSTUDIO: .............................................................................................. 3
Lansarea programului Icstudio ..................................................................................................... 3
Fereastra principala a programului ICStudio: library, cell, view ................................................ 4 Sinteza MUX2-ului (optional) ........................................................................................................ 6 Crearea unei noi celule .................................................................................................................. 7 Paletele cu scurtaturi ..................................................................................................................... 8
Comenzi, activarea si dezactivarea lor ........................................................................................ 10 Instantierea componentelor ......................................................................................................... 10 Rotirea componentelor................................................................................................................. 12 Trasarea firelor de legătură între componente ........................................................................... 13
Selectarea si deselectarea ............................................................................................................ 14 Plasarea si editarea pinilor de intrare si iesire (port-urilor) ...................................................... 15
Editarea blocurilor sau a parametrilor blocurilor ...................................................................... 16
Verificarea si salvarea schemei (si eventuale erori) ................................................................... 18
Generarea simbolului dintr-o schema cu pini ............................................................................. 20 Schema finala a divizorului - adaugarea de surse de semnal, surse de alimentare, etc. ............ 23
Nominalizarea firelor................................................................................................................... 27
SIMULAREA CIRCUITULUI ............................................................................................................... 29 Pasi obligatorii inainte de lansarea simulatorului ...................................................................... 29
Lansarea simulatorului ................................................................................................................ 30 Efectuarea unei simulări .............................................................................................................. 31
Vizualizarea rezultatelor .............................................................................................................. 38
2
Pregatirea sistemului de operare pentru proiectul CID.
Dupa ce ne-am logat pe statiile cu Windows si apoi pe Linux comanda “module avail” ne va arata
ce module se pot incarca pentru diferitele proiecte:
In cazul in care in cimpul “module files” sunt mai multe proiecte, se scrie codul proiectului dorit in
consola dupa care se apasa “Enter”. In cazul de fata, proiectul dorit este cel de la CID, astfel incat ii
scriem codul corespunzator in consola si apasam tasta “Enter” astfel:
In acest moment setarile specifice sistemului de operare pentru proiectul nostru au fost facute
corespunzator si in continuare nu ne mai ramane decat sa lansam in executie programul in care vom
implementa mai departe circuitul.
Atentie, mediul de operare LINUX este „case sensitive”, adica exista o diferentiere clara
intre litere mari si litere mici. Comanda „module load project/cid” va da eroare intrucat
modulul „cid” nu exista, ci exista modulul „CID”. Aceasta observatie este valabila in tot mediul de
proiectare de la Mentor Graphics si este un aspect important care impacteaza mai ales comenzile date
programului. De exemplu comanda „w” (wire) este diferita de „W” care este Bus ! sau „q” de „Q”.
Atentie la Caps Lock !
3
Folosirea propriu zisa ICstudio:
Lansarea programului Icstudio
Daca dorim sa facem un proiect nou, comanda este
“ams_icstudio –p nume_proiect –t c35b3c0”
unde nume_proiect este numele dorit al proiectului nou.
In caz ca doriti sa deschideti un proiect deja existent si nu mai tineti minte ce
nume avea, se poate folosi comanda “dir” care ne va afisa proiectele
realizate pana in prezent de utilizatorul respectiv. Aceasta comanda in acest
moment este foarte utila deoarece pe fiecare utilizator (train1, train2, etc.)
au lucrat mai multi studenti. De exemplu, pentru utilizatorul train1 comanda
“dir”dupa acesti pasi va afisa urmatoarele:
Observam ca toate proiectele au terminatia “.proj”.
Putem deschide ce proiect dorim noi la alegere, cu comanda “ams_icstudio –p nume_proiect”
unde nume_proiect se alege din lista obtinuta cu “dir.
Ex:
ams_icstudio –p PaulAlina
ams_icstudio –p craciun_rusu
etc.
Este de preferat ca fiecare student sa isi aleaga un nume reprezentativ pentru proiect, nu
„ono_team” (facut de userul train1 cum se observa mai sus) sau „marabou” (facut de userul train9).
4
Fereastra principala a programului ICStudio: library, cell, view
In captura de ecran urmatoare se observa in bara de sus ca programul ne indica numele proiectului
deschis, in acest caz „nic_1”.
Dupa deschiderea proiectului observam cele 3 campuri, Library, Cell si View.
Dupa cum stim de datile trecute intr-o bibliotecă exista mai multe celule. De exemplu in proiectul
deschis exista bibliotecile Analogic, Cid_2009, FSM, ICDESIGN_2009 Fiecare celula poate fi ori o
componenta (un inversor, un multiplexor), ori o combinatie de alte componente (o schema de
verificare pentru inversor, o schema de verificare cu componente din alte biblioteci), etc. .
5
De exemplu in biblioteca selectata, si anume FSM, avem celulele inv, inv_n, tb_inv, tb_inv_n. Se
obisnuieste sa se dea nume sugestive celulelor care daca vor fi deschise de o alta persoana decat cel
care le-a creat sa fie evidenta functia sau semnificatia lor.
Fiecare celula are un View, sau, in traducere, o reprezentare. Astfel vedem ca celula selectata “inv”
are doua view-uri, doua reprezentari, si anume o reprezentare de schemă, si o reprezentare de simbol
(Schematic si Symbol).
Am ales in continuare sa lucram in aceasta biblioteca, FSM, si acum ne punem problema de ce
blocuri avem nevoie. Bistabilul de tip D ne este furnizat de catre AMS, deci tot ce ne ramane de
facut este sa sintetizam MUX2-ul
6
Sinteza MUX2-ului (optional)
Functia MUX2-ului este:
_ 1 0 1 0mux out sel in sel in sel in sel in
unde ultima parte a ecuatiei este obtinuta folosind legile lui DeMorgan.
Astfel, schema lui interna este urmatoarea:
7
Crearea unei noi celule
Vom face acum o celula noua cu numele de MUX2 si care va avea View de tip Schematic in care
vom face schema interna din figura anterioara.
Dupa ce am fost siguri ca suntem in biblioteca dorita (Library) dam click dreapta in spatiul alb
asociat celulelor, adica Cell, si selectam “New Cell View”:
Astfel ne apare fereastra:
În această fereastră completăm numele celulei în cîmpul Cell Name şi dam click pe “Finish”.
In acest moment ni se va lansa o alta aplicatie familiara, si anume Design Architect:
8
Paletele cu scurtaturi
In caz ca meniurile evidentiate nu apar, ele se pot restaura usor din meniul Setup ca in figura
urmatoare. Este recomandat sa fie tot timpul afisate Pallete Area adica meniul (sau panoul) incercuit
cu rosu din poza anterioara si Message Area, adica zona incercuita din figura anterioara.
9
Se recomanda pentru începătorii cei care doresc să înveţe sa fie mai eficienti si afisarea Softkey
Area, intrucat ea ne prezinta scurtaturile asociate unui set de comenzi uzuale ce pot fi acţionate cu
tastele de funcţii (F1-F12).
Un mod rapid de a reseta meniurile care apar in program este sa facem restore la ceea ce se
numeste „default profile” ca in figura urmatoare:
Acum putem incepe sa instantiem componentele care
vor intra in schema dedusa mai sus a MUX2-ului.
10
Comenzi, activarea si dezactivarea lor
Este foarte util sa avem grija ce comanda este activa la anumit moment dat in timp. Acest lucru
este usor de observat pentru ca atunci cand dam o noua comanda programului, ori se deschide o
fereastra noua (ca la instantierea unui obiect apasand “i” sau editarea anumitor parametri apasand
“q”, etc) ori ne apare un mesaj in stanga jos in fereastra noastra. Urmatorul screenshot evidentiaza
rezultatul apasarii comenzii Add wire de 7 ori !!!! :
Este bine să aveţi în vedere toate comenzile active la un moment dat ca să nu vă confruntaţi cu
rezultate neaşteptate. De cele mai multe ori este suficient să avem o singură comandă activă (deşi
este perfect posibil să dorim acţionarea unei noi comenzi atunci cînd este activă şi o altă comandă, de
exemplu să acţionăm comanda Zoom atunci cînd este activă şi comanda Add wire).
Comenzile se anuleaza ori dand click pe Cancel ori apasand tasta Escape de numarul
corespunzator de ori.
Instantierea componentelor
From The Free On-line Dictionary of Computing (27 SEP 03) :
Instance: An individual object of a certain class. While a class is just the type definition, an actual
usage of a class is called “instance”. Each instance of a class can have different values for its
instance variables, i.e. its state.
Cu toate ca definitia cuvantului “instance” sau instanta a dictionarului nu ne lumineaza foarte
tare, noi intelegem prin verbul “a instantia” actiunea de a folosi o anumita celula cu un anumit view
(adica cu o anumita reprezentare) intr-o alta celula din aceeasi sau din alta biblioteca.
De exemplu intr-o celula de tip “schematic” putem instantia alte celule care au view-uri
(reprezentari) de simbol. Cu alte cuvinte daca vom realiza o schema cu tranzistoare putem sa punem
in aceasta schema un inversor (la nivel de simbol), sau orice alta poarta. Sau putem realiza o schema
care sa contina doar alte porti (sau alte celule instantiate cu view de simbol).
Instantierea unei celule, sau cu alte cuvinte aducerea si folosirea sa, se face apasand tasta “i” care
va afisa urmatoarea fereastra:
11
Este util de observat titlul ferestrei respective: “Add Instance”. Ea nu trebuie
confundata cu fereastra care ni se deschide cand lansam in executie ICstudio
cu comanda “ams_icstudio –p nume_proiect” .
Mai trebuie observat ca daca initial in ICstudio am fi selectat libraria
CORELIB si mai departe poarta NAND20 ea ar fi avut mai multe View-uri, si
anume Symbol, Schematic, Layout, etc. Dar in cazul de fata cand folosim
poarta in alta schema (schema MUX2-ului) ne apare valabila doar
reprezentarea NAND20-ului ca un simbol.
Dupa ce se selecteaza Biblioteca dorita, Celula si apoi View-ul se da OK, si astfel in dreptul
cursorului va aparea celula instantiata, si cu un simplu click ea poate fi pozitionata oriunde in
schema. Am pozitionat un NAND20 in dreapta cu un click, si folosind tastele sageti si rotita de la
mouse se poate naviga in figura si se pozitioneaza numarul de NAND20-uri necesar pentru
implementarea schemei MUX2-ului.
Conform schemei din primele pagini, sunt necesare în total trei porţi NAND20 si un INV0 care vor
fi luate din biblioteca CORELIB.
12
Dupa instantiere si o plasare iniţială rapidă a blocurilor in schema, s-a obtinut:
Rotirea componentelor: in acest moment este necesara rotirea doar a inversorului. Acest lucru
se poate realiza ori selectand entitatea dorita (simbol, tranzistor, etc) si dand click dreapta:
sau folosind scurtaturile de pe tastatura, care, in caz ca nu le stim, pot fi gasite din meniul urmator:
13
si ele vor fi afisate astfel:
În această fereastră găsim scurtătura care ne interesează şi anume „r” pentru comanda Rotate.
Obtinem usor:
Trasarea firelor de legătură între componente
Componentele se leaga apasand tasta “w” care provine de la “wire”. Firele se conecteaza doar intre
pinii blocurilor care pana acum au fost desenati cu MOV si de obicei sunt notati cat mai clar.
Firele trebuie trase cat mai ingrijit pentru a se evita aglomerarea inutila a figurii.
14
In caz ca este necesar, componentele se pot muta dupa placul studentului studios !
Dupa legarea componentelor, schema arata in acest mod:
Observam ca ni se arata cu linii intrerupte ceea ce este selectat.
Selectarea si deselectarea
Observam in figura anterioara ca programul ne arata ce este selectat cu linii albe si intrerupte.
Pentru deselectarea oricaror componente (fire selectate, pini selectati, blocuri
selectate) se da click stanga oriunde in schema dupa ce am anulat orice
comanda deschisa sau am inchis orice fereastra deschisa de program! Altfel
dand click stanga de exemplu oriunde in schema cand este comanda wire
activa ne va creea un fir nou, nu ne va anula selectia nedorita facuta automat
de program.
Selectarea mai multor componente este utila cand se doreste mutarea lor, sau editarea lor in grup.
Acest lucru se efectueaza tinand apasată tasta Control si selectand cu mouse-ul (asemanator cu felul
în care selectam fisiere in Windows/Linux). In figura urmatoare s-au selectat prin aceasta metoda
cele 3 NAND20:
15
Plasarea si editarea pinilor de intrare si iesire (port-urilor)
Dupa ce am facut schema interna a MUX2-ului mai ramane ca inainte sa ii cream un simbol sa
adaugam asa zisii ports care vor deveni pinii simbolului MUX2-ului.
Intr-o schema oarecare care ulterior va avea un simbol, pinii de
intrare/iesire/etc se numesc ports. Ei vor deveni pins atunci cand se va crea
simbolul schemei respective.
Astfel Portin si Portout se adauga din
1) paleta din dreapta, din meniul
SAU
2) din paleta din stanga dand click pe butonul care seamana cu un pin si selectand ce fel de pin
dorim: in,out sau bi
16
Acest lucru este echivalent cu instantierea blocurilor Portin si Portout in schema noastra.
Porturile se pozitioneaza ca orice bloc din schema, si apoi se fac legaturile corespunzatoare:
Editarea blocurilor sau a parametrilor blocurilor
Dupa cum se observa din figura anterioara, porturile de intrare si de iesire au denumirea de NET.
De obicei marea majoritate a simulatoarelor consideră în mod implicit firele cu acelasi nume ca fiind
în scurt circuit. Deci daca noi vom crea acum un simbol la schema de mai sus, programul va
interpreta acei trei pini ca unul singur, pentru ca ei au aceeasi denumire, si anume “NET”, ceea ce
este profund gresit.
Pentru a edita parametrul care da numele pin-ului sau pentru a edita orice alt parametru asociat
unei componente sau a unui bloc, se selecteaza componenta sau blocul dorit si se da comanda “q”.
A nu se confunda comanda “q” cu “Q”. Ele sunt diferite. In general este util
sa fim atenti daca este apasat Caps Lock intrucat programul este case-
sensitive (sensibil la registrul caracterelor, cu alte cuvinte la majuscule şi
minuscule), chiar daca studentul nu este !
Astfel se selecteaza portul dorit si se apasa “q”, iar in campul de interes, care este Value (adică
valoarea corespunzătoare parametrului) se pune numele portului respectiv:
Atentie, nu se modifica campul Name, se modifica doar Value !
17
si se da “OK”. Obtinem :
Pentru orice alt parametru, se selecteaza campul cu acel parametru, se editeaza unul sau mai multe,
si se da “OK”.
18
Verificarea si salvarea schemei (si eventuale erori)
Se da click pe butonul evidentiat (care acţionează comanda de salvare cu verificare):
Se va deschide o filă nouă in program in care va vor fi afisate erorile si avertismentele (warnings).
Este necesar sa fie cel mult 1 avertisment (Interface....... has no pins), daca sunt mai multe se
procedeaza in modul urmator.
Ce este în plus faţă de acest avertisment “Interface .... has no pins” trebuie remediat.
De exemplu in schema de mai jos am introdus voit trei erori, anume:
1) un fir conectat in plus la intrarea unei porti NAND20
2) un fir in aer
3) un pin in plus neconectat
19
Comanda check and save va genera urmatoarele erori:
Pentru remediera erorilor se da click la inceputul liniei pe fiecare eroare care astfel va
evidentia in schema pinul sau firul unde se afla eroarea. Astfel daca vom da click pe primul rand la
prima eroare in fisierul de raport, daca ne vom duce inapoi in schema eroarea respectiva va fi
evidentiata astfel:
20
Generarea simbolului dintr-o schema cu pini
Generarea simbolului pentru o schema la care s-au adaugat porturi de intrare si de iesire se face
din meniul Miscellaneous -> Generate Symbol:
Dupa click, va apare fereastra urmatoare:
Atentie, programul completeaza singur cîmpul View cu numele Symbol, si
este de preferat ca acest cîmp sa se modifice doar în cunoştinţă de cauză.
Observam ca exista optiunea sa dam o anumita forma de plecare blocului nostru. Programul in
mod implicit, creeaza un “box” si pune ce era ca Portin ca pin de intrare in partea stanga si ceea ce
era ca “Portout” pune ca pini de iesire in partea dreapta a “box”-ului. Daca se doreste se poate alege
21
o alta forma de la care sa se porneasca forma blocului dand click pe “Choose shape” si se selecteaza
alta forma corespunzatoare. Daca nu se doreste aceasta se da click pe “OK” direct.
Observam ca se deschide simbolul intr-o filă nouă unde se pot muta pinii, se pot trage linii, se pot
adauga sau elimina elemente grafice cu ajutorul paletei din stanga sau din dreapta (nereprezentata in
figura de mai jos):
Dupa ce editarile necesare au fost facute, in cazul de fata s-a mutat pin-ul out si linia verde mai sus
si s-a mutat pinul de selectie sel si linia sa verde sub box-ul MUX2-ului este necesar sa se seteze
originea simbolului.
Originea este punctul de ancora din simbol care va fi aliniat la pozitia mouse-ului cand blocul va fi
instantiat. Este usor de observat in figura de sus ca originea este in dreptul pinului de selectie sel.
Originea se modifica din meniul Setup -> Set Origin: si se da click pe pin-ul dorit ca in figura:
22
Dupa ce s-a terminat editarea simbolului, adaugarea/stergerea elementelor, mutarea pinilor,
mutarea originii, adaugarea de text nou, etc. se da click pe discheta din stanga sus pentru salvare cu
verificare (ca de obicei de altfel):
23
Schema finala a divizorului - adaugarea de surse de semnal, surse de alimentare, etc.
Pana acum am implementat blocul MUX2 si acum vom trece la crearea unei bănci de test (test
bench) pentru a verifica functionarea structurii urmatoare:
Nu vom crea un simbol pentru aceasta structura, o vom testa asa cum este ea, vom adauga surse de
semnal in interiorul ei si ceea ce mai este necesar pentru testarea ei.
Astfel, cream o noua celula ! (Click dreapta, New Cell in Design Architect, in biblioteca noastra)
cu view de schematic, unde vom
1) instantia bistabilul de tip D din CORELIB (tasta „i”, NU „I”)
2) instantia MUX2-ul creat de noi din biblioteca FSM (tasta „i”, NU „I”)
3) le vom lega ca in figura si vom obtine urmatoarea figura:
Observam ca sub poarta adusa din CORELIB scrie: C_VDD si C_VSS. Acest
lucru semnifica faptul ca blocul respectiv are nevoie de alimentari. Acest
lucru se explica prin faptul ca in interiorul sau blocul are tranzistoare intr-o
structura tipica circuitelor integrate digitale CMOS, adica un bloc P si un
bloc N conectate la firele cu numele C_VDD si C_VSS care pentru a
functiona corect trebuiesc alimentate la potenţialele de 3.3V respectiv 0V.
24
Astfel surse de tensiune si de semnal se adauga din paleta din dreapta,
din Library -> Sources Lib -> ....ca in figura urmatoare. Vom adauga sursele in doi pasi.
PASUL 1.
Definirea tensiunilor de polarizare (care de fapt sunt pinii +5V si 0V, pinii 14 si 7 de la integratele
din laborator) se face tot din paleta din dreapta, dar de aceasta data dand click pe:
unde vdd_g atunci cand va fi pus in schema va deveni C_VDD iar vss_g cand va fi pus in schema
va deveni C_VSS.
Masa (ground-ul) se ia din Library -> Generic Lib -> Ground. Astfel obtinem schema:
25
Observam ca inca mai avem de completat cu surse de semnal pentru pinii de clock si pentru pinii
de selectie. Aceste surse vor fi „Pulse” din meniul anterior.
PASUL 1.
Adaugam surse de semnal pentru Clock si Sel.
Semnalul Clock va avea o sursa „Pulse” iar semnalul SEL va avea o sursa „Pattern” sau „Pulse”.
Pentru editarea lor se apasa tasta „q” (nu „Q”).
De exemplu pentru semnalul de clock s-a ales o perioada de 50 nano secunde. Se doreste factor de
umplere de 50% deci „pulse value” va fi la jumatate, adica 25 nano secunde. Timpii de crestere si de
scadere nu sunt relevanti in situatia noastra, ii putem pune la 1 nano secunda fiecare. Nivelele de 0 si
1 Logic sunt 3.3V si 0V (fata de 5V si 0V la laborator).
Se editeaza doar campurile marcate cu chenar pentru fiecare sursa, restul campurilor NU
TREBUIESC MODIFICATE, ca in figura urmatoare pentru „Pulse”. Atentie, se modifica doar
VALUE, nu la NAME !
Dupa ce s-au facut modificarile dorite, se da Apply si Ok.
26
Schema finala va arata in acest mod:
Observam ca am adaugat un port in iesirea circuitului pentru a ne facilita citirea semnalului la
iesire.
27
Nominalizarea firelor
Fiecare schemă pe care o introducem va fi „tradusă” ulterior, în vederea simulării, într-o listă de
interconexiuni (termenul în engleză este netlist) care va fi pusă la dispoziţia simulatorului şi cu
ajutorul căreia simulatorul îşi alcătuieşte intern sistemele de ecuaţii pe care le va rezolva.
Rezultatele simulării (soluţiile sistemelor de ecuaţii) sînt disponibile prin intermediul numelor firelor
de interconexiune (pentru semnale de tensiune) şi prin intermediul numelor pinilor componentelor
(pentru semnale de curent).
Atunci cînd introducem o schemă, firele care sînt conectate la porturi capătă numele portului asociat.
Toate celelalte fire rămîn ne-denumite de către utilizator, dar totuşi ele trebuie să fie identificabile în
mod unic de către program. Soluţia la care recurge programul este de a genera un nume aleator
firelor rămase fără nume din schemă.
Această soluţie este acceptabilă de cele mai multe ori, însă există situaţii în care o să vrem să
urmărim semnale de pe fire rămase ne-denumite în schemă şi atunci în vizualizatorul de forme de
undă la numele semnalelor reprezentate vor apărea numele generate de program, care pentru
utilizator nu au nici o semnificaţie şi sînt greu de urmărit.
Soluţia este de a pune cîte o etichetă (de a denumi) pe firele care ne interesează (de exemplu toate
firele care fac legătura între sursele de semnal şi intrările în blocuri, pentru că ele, nefiind conectate
la nici un port, rămîn ne-denumite). Aceasta se face cu comanda Name Net accesibilă din paleta din
dreapta sau cu scurtătura din tastatură „l”. Pentru a denumi un fir trebuie să selectăm firul dorit
şi apoi să acţionăm comanda Name Net (tasta l).
Va apărea o fereastră în care la cîmpul Property Value vom introduce numele dorit pentru fir (clk)
şi vom da click pe At Location (butonul cu cruce).
Vom poziţiona eticheta oriunde dorim pe fir:
28
Iar rezultatul poziţionării arată ca în figură:
Vom denumi firul conectat la sursa generatoare de tact cu clk, firul din ieşirea Q a bistabilului cu
clk_div2 şi firul conectat la intrarea de selecţie a multiplexorului cu sel. Schema finală, cu firele de
interes etichetate, arată ca în figură.
29
Simularea circuitului
Pasi obligatorii inainte de lansarea simulatorului
Primul pas: CHECK AND SAVE !
Daca e mai mult de 1 warning, circuitul trebuie verificat.
Pasul 2: crearea “viewpoint-ului”:
Si apoi:
Unde design path-ul semnifica calea catre celula careia i se face simularea.
Ea are de obicei formatul:
“$biblioteca/default.group/logic.views/$celula”
In cazul de mai sus $biblioteca (Library) este „FSM”, iar $celula (Cell)
este „functionare divizor”.
30
Pentru un student care lucreaza intr-o biblioteca avand denumirea
„biblioteca_mea_1” si celula „MUX2_varianta1” calea corecta de Design
Path ar fi “biblioteca_mea_1/default.group/logic.views/MUX2_varianta1”
Se poate da „Navigate” si se poate face browse selectand biblioteca in care
se lucreaza, se da ok, apoi se selecteaza default_group, se da ok, logic views,
ok si apoi celula la care se lucreaza si se da ok iar astfel calea se completeaza
automat
Se observa ca acest format se respecta si in cazul de fata. Se da “OK”.
In acest moment celula cu acest View este pregătită pentru simulare.
Lansarea simulatorului
Intrarea în modul de simulare se poate face din mai multe locuri ale interfeţei: ori de pe bara de
unelte din stînga acţionînd butonul cu triunghiul verde:
ori, cel mai uzual, acţionînd butonul Simulation de pe paleta din dreapta (dacă acest buton nu este
disponibil pentru că am coborît în ierarhia butoanelor de pe paletă el se găseşte rapid dînd click
dreapta pe paletă şi selectînd Display Schematic Palette):
Va apărea o fereastră prin care sîntem întrebaţi ce configurare a simulării dorim să selectăm:
31
Dacă am urmărit acest tutorial cu precizie, atunci va fi disponibilă o singură configuraţie, cea pe care
am creat-o la etapa Pasi obligatorii inainte de lansarea simulatorului (vezi mai sus). Putem în acest
moment să apăsăm OK.
Astfel se intră în modul de simulare (Simulation Mode), diferit de modul de editare a schemei. Se
poate constata rapid că aspectul interfeţei s-a schimbat, sînt disponibile alte comenzi în meniul
principal, pe bara din stînga, pe paleta din dreapta, etc.:
Efectuarea unei simulări
O simulare se efectuează parcurgînd următorii paşi:
Primul pas: Configurarea modelelor pentru simulare
Aceasta se face acţionînd comanda Set Simulation Models din meniul HIT-
Kit Utilities a meniului principal:
32
Va apărea o fereastră care ne permite să selectăm una dintre abaterile
(process corners) procesului tehnologic: worst speed, worst power, etc., noi
vom alege opţiunile implicite (cele deja selectate) şi vom da OK.
Al doilea pas: Configurarea analizelor care vor fi efectuate
Aceasta se face acţionînd comanda Analyses de pe paleta din dreapta:
Va apărea o fereastră care ne permite să selectăm şi să configurăm fiecare analiză pe
care dorim s-o efectuăm:
33
În această fereastră vom selecta (bifa) analizele pe care dorim să le efectuăm (DC,
AC, Transient, etc.). În exemplul nostru vom dori să efectuăm analiza în timp a
circuitului şi de aceea vom bifa analiza tranzitorie (transient):
Pentru a configura analiza vom da click pe butonul Setup alăturat analizei pe care am
bifat-o. În exemplul nostru vom configura analiza tranzitorie. Fereastra de configurare
arată în felul următor:
Cel mai important parametru pentru analiza tranzitorie este durata simulării sau timpul
de simulare sau timpul de oprire a simulării, indicat de cîmpul Stop time (TSTOP),
care în mod implicit este de 100N. Pentru exemplul nostru vom alege un timp de
simulare de 5u:
În funcţie de forma particulară a semnalelor generatoarelor acest timp poate fi mai
lung sau mai scurt. Trebuie să avem grijă să alegem un timp suficient de lung astfel
34
încît să putem observa fenomenele care ne interesează. Totodată vom căuta să alegem
acest timp cît mai scurt pentru o simulare cît mai rapidă.
Cu aceasta configurarea analizei tranzitorii se încheie, dăm click pe OK şi ferestrele se
închid.
Al treilea pas: Stabilirea listei de semnale urmărite
Acest pas este important deoarece dacă nu există semnale urmărite (ceea ce înseamnă
că nu ne interesează nici un rezultat al simulării) simulatorul nu va rula nici o
simulare.
Aceasta se face acţionînd comanda Wave Outputs de pe paleta din dreapta:
Va apărea o fereastră care ne permite să adăugăm semnale şi să specificăm acţiunea
care va fi efectuată cu rezultatele obţinute (salvare, reprezentare grafică, tipărire), tipul
rezultatelor (este posibil ca în cadrul unei analize să fie disponibile pentru acelaşi
semnal mai multe tipuri de informaţii):
Această fereastră prezintă mai multe cîmpuri şi butoane. Cele mai importante cîmpuri
sînt cele două evidenţiate: Lista de semnale urmărite şi Lista obiectelor selectate.
Iniţial lista semnalelor urmărite este vidă (încă nu am specificat nici un semnal), iar
lista obiectelor selectate poate fi sau nu vidă, în dependenţă de faptul dacă avem sau
nu obiecte selectate în schemă.
Metoda de adăugare a semnalelor la lista de semnale urmărite este după cum urmează:
1. Se selectează un obiect din schema circuitului. În exemplul nostru toate
obiectele vor fi fire (nets). Pentru aceasta vom da la o parte fereastra
(ATENŢIE, NU SE ÎNCHIDE) cu semnalele urmărite pentru a avea accesibilă
schema circuitului. Apoi cu mouse-ul vom selecta un fir de pe care vrem să
urmărim semnalul:
35
Astfel firul selectat apare cu linie întreruptă. În exemplul nostru firul selectat
este out.
2. Aducem (tragem) fereastra cu semnalele urmărite înapoi în prim plan şi
observăm că în lista obiectelor selectate apare selecţia pe care am făcut-o:
Obiectul selectat este un fir deoarece are tipul N (N: OUT), numele firului este
OUT. Pentru acest fir vom specifica: tipul analizei ale cărei rezultate ne
interesează, acţiunea ce trebuie efectuată cu rezultatele obţinute, tipul
particular al rezultatelor care ne interesează. Aceasta se face setînd cîmpurile
din dreapta listei de obiecte selectate:
Tipul analizei ale cărei rezultate ne interesează este setat din cîmpul Analysis.
În exemplul nostru vom alege TRAN pentru analiza tranzitorie (singura
efectuată):
Acţiunea pe care o va întreprinde programul pentru rezultatele pentru semnalul
selectat se configurează din cîmpul Task. În exemplul nostru vom alege ca
aceste rezultate să fie reprezentate grafic (Plot):
36
Tipul particular al rezultatelor care ne interesează din mulţimea rezultatelor
obţinute pentru acest semnal se setează din cîmpul Type. Noi vom alege pentru
tipul rezultatelor valorile de tensiune (Voltages) deoarece în acest circuit
semnalele logice sînt transmise prin intermediul tensiunilor:
În acest moment principalele setări pentru semnalul selectat au fost făcute.
3. Se adaugă semnalul (cu setările făcute la punctul anterior) la lista de semnale
urmărite. Aceasta se face dînd click pe butonul de adăugare care se află în
coloana de butoane din dreapta listei de semnale urmărite:
Astfel semnalul este adăugat la lista de semnale urmărite, aşa cum se observă
în figură.
Punctele 1, 2 şi 3 se reiterează pentru fiecare semnal pe care dorim să-l urmărim. În
exemplul nostru lista finală de semnale urmărite arată aşa:
Această fereastră se poate închide în acest moment dînd click pe butonul X din colţul
din dreapta-sus. Ori de cîte ori avem nevoie să modificăm lista semnalelor urmărite
vom reveni la această fereastră acţionînd comanda Wave Outputs.
Dacă am adăugat semnale în plus acestea se pot sterge selectîndu-le (în aceeaşi
manieră cum selectăm fişiere în sistemul de operare) şi apăsînd butonul de ştergere:
Dacă dorim să modificăm unele setări pentru un anumit semnal, îl selectăm,
modificăm cîmpurile care nu ne convin (Analysis, Task, etc.) şi reactualizăm semnalul
din lista de semnale urmărite făcînd click pe butonul de reactualizare:
37
Cu aceste precizări pasul de configurare a semnalelor urmărite se încheie aici.
Al patrulea pas: Rularea simulării Dacă toţi paşii anteriori au fost corect realizaţi putem, în acest moment, să rulăm
simularea. Aceasta se face acţionînd comanda Run ELDO, disponibilă şi pe paleta din
dreapta:
Vom urmări fereastra de mesaje (Message Area – ATENŢIE – trebuie s-o aveţi în
prealabil afişată, altfel mesajele se pierd) mesajul că simularea s-a încheiat cu succes
(Simulation completed successfully):
În situaţia în care apare un alt mesaj există o problemă ori în circuitul pe care îl
simulăm, ori la setările pe care le-am făcut. Vom urmări fereastra de înregistrări în
jurnal (Log) care apare tot în partea de jos a simulatorului (dacă aceasta lipseşte, ea
trebuie adăugată din meniul Setup->Windows->Log) pentru a găsi problema ce a
condus la eşecul simulării (în general se caută mesaje care conţin cuvintele: error,
failed etc.). Sînt numeroase situaţiile în care pot apărea erori de aceea paşii
premergători rulării simulării trebuie efectuaţi cu atenţie.
38
Vizualizarea rezultatelor
Pentru a vizualiza formele de unda salvate dupa o simulare finalizata cu succes se da click pe „view
waves”.
Aceasta comanda va deschide programul EZWave de vizualizare a rezultatelor care va
incarca in mod automat formele de unda pentru firele care au fost selectate anterior pentru
vizualizare (prin comanda Wave Outputs).
Se observa functionarea corecta a divizorului de frecventa, cand bitul de Selectie are valoarea
0 iesirea este 0.5fck iar cand bitul de selectie are valoarea 1 iesirea este fck .
39
top related