Proiectarea sistemelor electronice

37
CÂTEVA SFATURI PENTRU PROIECTAREA UNUI SISTEM NUMERIC CU CIRCUITE INTEGRATE

description

electronica

Transcript of Proiectarea sistemelor electronice

Page 1: Proiectarea sistemelor electronice

CÂTEVA SFATURI PENTRUPROIECTAREA UNUI SISTEM

NUMERIC CU CIRCUITEINTEGRATE

Page 2: Proiectarea sistemelor electronice

1

1. INTRODUCEREO proiectare modernă a unui circuit electronic nu se poate concepe fără

utilizarea unui program CAD pentru electronică. Cele mai cunoscute programefolosite în acest scop sunt programele de tip SPICE şi ORCAD. Deşi nu suntprograme destinate sintezei de circuit (există şi astfel de programe, dar sunt mai puţinrăspândite), utilizarea lor în proiectare devine aproape indispensabilă atunci când sedoreşte optimizarea unei soluţii iniţiale prin iteraţii succesive, cu ajutorulcalculatorului. De fapt procesul de proiectare poate fi considerat ca un proces iterativde analiză şi îmbunătăţire a unei soluţii, care se termină atunci când se îndeplinesctoate cerinţele impuse prin tema de proiectare.

Programul SPICE despre care vom discuta este Design Center 5.2, un mediuintegrat sub Windows, produs de firma americană MicroSim Corporation. Acestmediu conţine subprograme de editare, analiză şi prezentare a rezultatelor obţinute.Cea mai importantă parte a programului de simulare o reprezintă subprogramul deanaliză, care execută analizele de circuit specificate în fişierul editat, ieşirile din acestsubprogram furnizând date pentru a fi utilizate ulterior de subprogramul de prezentarea rezultatelor, care materializează rezultatele sub formă de grafice şi texte.Subprogramul de analiză conţine procedeele numerice ale reprezentării matematice acircuitului. Pentru a trece de la circuitul propriu-zis la un sistem matematic de ecuaţii,elementele de circuit utilizate în SPICE (rezistoare, condensatoare, surse, diode,tranzistoare, amplificatoare operaţionale, etc.) sunt reprezentate prin modelematematice. Sistemul de ecuaţii care descrie întregul circuit este determinat deecuaţiile modelului fiecărui element şi relaţiile topologice care sunt date deinterconectarea elementelor. Relaţiile topologice au la bază legile lui Kirchhoff iarcomportarea generală a circuitului este descrisă printr-un sistem de ecuaţiidiferenţiale, ale cărui soluţii se obţin prin analiza circuitului, pentru diferite cazuriparticulare de abordare: analiza de curent continuu (.DC), analiza de curent alternativ(.AC), analiza regimurilor tranzitorii (.TRAN) şi altele. Aceste analize se realizeazăpe baza unor metode numerice, care presupun formularea ecuaţiilor, rezolvareaecuaţiilor liniare, a ecuaţiilor neliniare şi integrarea numerică. Simulatorul SPICEconţine şi alte posibilităţi de analiză (analiza Fourier, analiza funcţiei de transfer,analiza zgomotului , a distorsiunilor, etc.).

Pe măsură ce creşte experienţa lucrului cu SPICE se pun tot mai clar înevidenţă avantajele simulării. În afară de faptul că simularea este mult mai ieftinădecât realizarea experimentală a circuitului, ea permite efectuarea unor analizeimposibil de realizat pe model experimental: cum am putea măsura de exemplutensiunea într-un nod din interiorul unui circuit integrat sau comportarea unuitranzistor la temperatura de 120 grade Celsius ?

Deşi primele variante ale programului SPICE au fost concepute înexclusivitate pentru analiza circuitelor analogice, Design Center 5.2 şi varianteleulterioare permit şi analiza sistemelor numerice realizate cu circuite integrate digitale.Opţiunea DIGITAL SIMULATION permite modelarea comportării unui numărmare de dispozitive numerice (porţi, bistabile, memorii ROM şi RAM, dispozitivelogice programabile etc.), numite primitive. Aceste primitive sunt folosite de obibliotecă numerică DIGITAL.LIB pentru a modela un număr mare de componentecare pot fi introduse direct în circuit printr-un apel de subcircuit.

Page 3: Proiectarea sistemelor electronice

2

SPICE recunoaşte trei tipuri de noduri: analogice, numerice şi de interfaţă.Dacă la un nod sunt conectate numai dispozitive analogice, atunci el este analogic.Dacă sunt conectate numai dispozitive digitale, atunci el este digital. Dacă la nod suntconectate atât dispozitive analogice cât şi digitale, atunci avem nod de interfaţă.SPICE separă automat nodurile de interfaţă în analogice şi numerice, inserând una saumai multe circuite de interfaţă analog/numerice.

Nivelele logice utilizate în SPICE nu trebuie neapărat să corespundă uneitensiuni şi ele sunt:

0 LOW1 HIGHR RISE ( crescător, de la 0 la 1)F FALL ( descrescător, de la 1 la 0)X necunoscut

În situaţia conectării mai multor ieşiri logice împreună, pentru determinareanivelului logic corect al nodului, s-a asociat fiecărei ieşiri câte o intensitate, a căreivaloare este determinată în raport cu intensităţile celorlalte ieşiri. Nodurile conduse deieşiri cu aceeaşi intensitate, dar de nivele diferite, vor avea nivelul logic X. SPICE are64 de nivele de intensitate, cea mai slabă fiind Z (înaltă impedanţă), iar cea maiputernică intensitatea de forţare (scurtcircuitul). Aceste nivele se fixează prinparametrii DIGDRVZ şi DIGDRVF ai comenzii OPTIONS.

Programul de simulare numerică SPICE defineşte trei noduri numericeglobale, având următoarele nume şi valori:

$D_HI 1$D_LO 0$D_X X

Ele sunt folosite pentru a menţine un pin al unui dispozitiv sau subcircuit la nivelullogic dorit, pe tot parcursul simulării. La aceste noduri nu se conectează dispozitiveanalogice. În simularea numerică, tot nod global este considerat şi nodul analogic demasă (potenţial nul sau nod logic 0).

Pentru a furniza semnalele de intrare necesare simulării funcţionării unuicircuit numeric, programul SPICE pune la dispoziţia utilizatorului două tipuri dedispozitive. Primul dispozitiv este un generator de impuls care permite obţinereaunei game largi de semnale numerice, în mod asemănător cu cele generate lasimularea circuitelor analogice. Al doilea dispozitiv este un fişier de impulsuri, carepermite obţinerea unui număr oricât de mare de forme de undă dintr-un fişier extern.În acest material vom utiliza acest din urmă dispozitiv pentru generarea semnalelor deintrare.

Se poate face o simulare pur analogică, dacă avem de-a face cu un circuit puranalogic, o simulare pur numerică, dacă circuitul supus analizei conţine numaidispozitive numerice, dar şi o simulare mixtă analog/numerică, dacă circuitul deanalizat conţine atât dispozitive analogice cât şi numerice. În figura 1 este prezentatăschema electrică a unui oscilator mixt. Figura 2 prezintă fişierul text pentru generareasemnalului RESET, iar figura 3 arată formele de undă rezultate în urma simulării. Înpartea de sus sunt reprezentate formele de undă numerice, iar în cea de jos tensiunileîn diferite noduri importante ale circuitului. Semnalul RESET este aplicat prin U4 laintrarea CLEAR a bistabilului JK, iar prin inversorul cu colector în gol U3 la nodul 1al oscilatorului, pentru stabilirea condiţiilor iniţiale de simulare.

Page 4: Proiectarea sistemelor electronice

3

Fig.1. Schemă electrică editată în PSPICE

URESET STIM(1,1) $G_DPWR $G_DGND+ RESET+ IO_STM+ TIMESTEP=10n+ 0c 1+ 10c 0

Fig. 2. Fişierul text INPUT.STM

Fig. 3. Formele de undă rezultate în urma simulării

Desenul din figura 1 a fost construit cu ajutorul editorului grafic din pachetulDesign Center 5.2. La lansarea în execuţie a programului sunt încărcate în memorietoate bibliotecile de componente utilizabile. Circuitele LS TTL din schemă au fostluate din biblioteca DIG_1.SLB, conectorii globali de intrare/ieşire GLOBALprecum şi conectorul nivelului de 1 logic pentru intrările bistabilului JK, HI(nodulnumeric global $D_HI) sunt din PORT.SLB, componentele pasive RC sunt dinANALOG.SLB, iar comanda INCLUDE pentru fişierul semnalelor de intrare

Page 5: Proiectarea sistemelor electronice

4

INPUT.STM este din SPECIAL.SLB. Selecţia acestor componente de bibliotecă seface cu ajutorul comenzii DRAW, urmată de GET NEW PART, din meniulprincipal. Fiecare componentă astfel selectată se poziţionează cu mouse-ul pe foaia delucru, iar fixarea valorilor unor parametri variabili (valori de componente, eticheteetc.) se face prin dublu click pe componenta respectivă. Interconectareacomponentelor se face prin DRAW, urmată de WIRE.

Fişierul text INPUT.STM se editează cu un simplu editor de text, de exempluNOTEPAD. Formatul generatorului de impuls pentru un semnal este următorul:

U<nume> STIM(<lăţime>,<format>)+ <nod alimentare numerică> <nod masă numerică>+ <nod>+ <nume (Model de I/E)>+ [IO_LEVEL = <valoare (selectare subcircuit interfaţă)>]+ [TIMESTEP = <pas>]+ <(comandă)>

unde <lăţime> specifică numărul semnalelor de ieşire furnizate de generator,iar <format> specifică formatul valorilor utilizate în definirea impulsului, fiind osecvenţă de biţi care specifică numărul de semnale(noduri) pe care îl reprezintă bitulcorespunzător din <valoare>. Fiecare bit din <valoare> este în baza 2m, unde m estebitul corespunzător din <format>. <nod alimentare numerică> şi <nod masănumerică> sunt noduri utilizate de subcircuitele interfaţă, iar <nod> este numelenodului de ieşire. Numărul nodurilor de ieşire trebuie să fie egal cu <lăţime>. <nume(Model de I/E)> este de cele mai multe ori modelul IO_STM . IO_LEVEL este unparametru opţional prin care se pot selecta subcircuitele interfaţă numeric analogice;el a fost fixat înainte de analiză la valoarea recomandată 3 (prin comandaANALYSIS, urmată de SETUP, şi OPTIONS din meniul principal, s-a fixatparametrul DIGIOLVL = 3). TIMESTEP reprezintă numărul de secunde pe un ciclude tact sau un pas. Dacă nu este specificat se consideră 0. În sfârşit <comandă> este odescriere a impulsurilor printr-o sintaxă de tipul:

<<timp> <valoare>><LABEL = <nume (etichetă)>><<timp> GOTO <nume (etichetă)> <n> TIMES><<timp> GOTO <nume (etichetă)> UNTIL GT<valoare>><<timp> GOTO <nume (etichetă)> UNTIL GE<valoare>><<timp> GOTO <nume (etichetă)> UNTIL LT<valoare>><<timp> GOTO <nume (etichetă)> UNTIL LE<valoare>><<timp>INCR BY<valoare>><<timp>DECR BY<valoare>>

<timp> specifică timpul de existenţă a noii valori <valoare>, GOTO, sauINCR/DECR. Unitatea de măsură pentru timp este secunda sau ciclul de tact.<valoare> reprezintă valoarea logică pentru fiecare nod, iar timpii trebuie să fie înordine strict crescătoare.

După desenarea schemei electrice a circuitului, se selectează ANALYSIS dinmeniul principal şi apoi ANNOTATE (numai dacă se doreşte o renumerotare acomponentelor din circuit) şi ELECTRICAL RULE CHECK. Dacă există erori în

Page 6: Proiectarea sistemelor electronice

5

schemă, programul anunţă acest lucru înainte de a merge mai departe. Dacă nu existăerori, se lansează CREATE NETLIST şi pe urmă se alege tipul de analiză dorit.Acest lucru se face prin comanda ANALYSIS, urmată de SETUP şi TRANSIENT.Pentru analiza tranzitorie s-a fixat o durată totală de 10 µsec, cu un pas de 0,1 µsec.Nu uitaţi selectarea opţiunii ENABLED înainte de a părăsi fereastra de setare atipului de analiză.

Urmează rularea programului de analiză, cu comanda RUN PSPICE. Laterminarea rulării, care poate dura de la fracţiuni de secundă la zeci sau sute desecunde, funcţie de complexitatea circuitului, tipul de analiză, numărul de paşi ales şiviteza sistemului de calcul, apare ecranul mediului PROBE cu un alt meniu specific.Comanda TRACE, urmată de ADD afişează o fereastră cu toate semnalele din circuit.Dacă nodurile de interes au etichete, atunci identificarea lor este uşoară, în caz contrarsemnalele poartă numerele nodurilor stabilite prin NETLIST. După ce s-au selectatsemnalele dorite, ele sunt afişate pe ecran, aşa cum se vede în figura 3. În partea desus s-au afişat semnalele numerice, iar în partea de jos cele analogice. Scalarea pe axay a semnalelor analogice s-a făcut automat, funcţie de variaţia semnalelor, dar ea poatefi modificată prin comanda AXIS, urmată de SET RANGE.

Formele de undă din PROBE pot fi copiate în CLIPBOARD cu comandaDISPLAY, urmată de COPY TO CLIPBOARD. Înainte de acest lucru, recomandămînsă reprezentarea monocoloră a formelor de undă prin comenzile TRACE, urmată deSYMBOLS şi AUTOSYMBOLS, respectiv AXIS, urmată de COLOR şi MATCHAXIS. Se apelează programul PAINT (din Windows 95, sau dacă nu PAINTBRUSHdin Windows 3.X) şi se selectează EDIT, urmată de PASTE. Se selectează apoi dinmeniul principal IMAGE, urmată de ATTRIBUTES şi opţiunea BLACK ANDWHITE. După click pe butonul OK şi răspuns afirmativ la avertismentul că în urmaconversiei din color în alb negru se pierde informaţie din imagine, se obţine negativulimaginii dorite. Prin comenzile IMAGE, şi INVERT COLORS se obţine imagineadorită, care este copiată în CLIPBOARD prin EDIT şi COPY, iar apoi se revine înWORD şi prin EDIT şi PASTE se aduce imaginea în pagina documentului deschis.Rezultatul obţinut se poate vedea în figura 3. Acest procedeu permite obţinereaimaginilor alb-negru în fişiere de dimensiuni mult mai mici decât dacă imaginile ar fifost preluate color.

Pachetul de programe ORCAD la care ne vom referi în continuare esteOrCAD 4.20, un mediu integrat de proiectare produs de firma OrCAD L.P. andGogesch Micro Systems. El conţine programe de desenare a schemelor electrice(SDT - Schematic Design Tools), de realizare a circuitelor imprimate (PCB - PCBoard Layout Tools) şi de verificare logică a funcţionării (VST). VST împreună cuprogramele PLD (Programmable Logic Device Tools) şi MOD (Programmable DeviceModeling Tools ) alcătuiesc un ansamblu numit Digital Simulation Tools. Programele ORCAD/VST permit verificarea funcţionării schemelor cu circuitelogice preluate din ORCAD/SDT prin simulare logică. Viteza de simulare este de50.000 evenimente /secundă la un calculator AT - 40Mhz, prin eveniment înţelegândmodificarea stării logice la intrare (semnal CLK, de exemplu), complexitateacircuitului simulat poate atinge 14.000 porţi logice, iar vizualizarea semnalelor pemonitor se face în stil de analizor logic. Biblioteca proprie conţine peste 800 decomponente modelate, dar se pot genera modele noi. Există un editor de stimuli. Laterminarea simulării fie circuitul nu funcţionează corect şi în acest caz se facmodificări în schemă cu SDT şi apoi se repetă simularea, fie circuitul corespunde

Page 7: Proiectarea sistemelor electronice

6

caietului de sarcini şi atunci este posibilă trecerea la proiectarea cablajului imprimat(PCB). ORCAD/VST acceptă două moduri de descriere a semnalelor, care pot fiutilizate sau nu în comun : modul EDIT care constă dintr-o descriere temporală şicalitativă a fiecărui semnal şi modul TEST VECTOR EDIT care constă índeclararea "vectorilor test" a căror descriere este realizată sub forma unei listeíntr-un fişier text specific. Ne ocupăm numai de primul mod de editare, ín carevom reprezenta intrările ín circuit sub forma unor simple semnale ce evoluează întimp.

Sunt posibile patru tipuri de nivele logice:0 LOW1 HIGHU UNKNOWNZ HIGH Z

Editarea listei de semnale la ieşire ( traces) se face cu TRACE EDITOR ,ín care fiecare semnal ce urmează a fi afişat primeşte un nume din maxim 16 caracterealfanumerice şi un tip, care poate fi semnal sau bus. Toate exemplele pe care le-amvizualizat sunt simple semnale.

După cum se poate observa, numărul de nivele logice este mai mic la ORCADdecât la PSPICE. La ORCAD, trecerea de la un nivel logic la altul se face într-un timpnul, iar acest lucru nu corespunde realităţii. Din acest motiv, simularea în ORCAD nupune întotdeauna în evidenţă un posibil hazard combinaţional. Pentru a fi siguri decorectitudinea simulării trebuie să introducem nivelul logic de stare nedeterminată Ula fiecare tranziţie între cele două nivele logice, 0 şi 1. Acest lucru nu este de regulăcomod şi ca atare, considerăm simulatorul PSPICE superior celui din ORCAD.

Rezultatul simulării poate fi furnizat prin forme de undă în timp, ca în figura 6,sau într-un fişier de tip vectori de test, care ţine cont de toate tranziţiile detectate desimulator, chiar dacă acestea nu au fost afişate datorită frecvenţei de eşantionareutilizate la generarea formelor de undă (figura 7).

Pentru a da un exemplu de simulare în ORCAD, am desenat schema electrică aunui sistem numeric secvenţial sincron cu ajutorul editorului grafic DRAFT din SDT.Modul de lucru este în mare măsură asemănător cu cel din PSPICE, iar schema astfelobţinută este reprezentată în figura 4.

Se fac configurările corecte ale mediilor ESP şi SDT, stabilind numelefişierului sursă *.SCH care conţine desenul schemei electrice. Pe foaia de lucru seaduc componentele necesare din bibliotecile instalate cu ajutorul comenzii GET dinmeniul principal. Conexiunile dintre componente se fac prin amplasarea firelor deconexiune cu comanda PLACE, urmată de WIRE. Punctele de conexiune dintre firenu se fac automat ca la SPICE, ci cu ajutorul comenzii PLACE / JUNCTION. Piniide conexiune cu exteriorul se amplasează cu comanda PLACE / MODULE PORT ,unde, în cazul nostru PI1, PI2, PCLK, PRESET, PVSS şi PVDD sunt intrări, iar PQ2,PQ1 şi PQ0 sunt ieşiri. Pentru simulare este important ca prima literă din numele unuimodul port să fie P. Tot cu ajutorul comenzii PLACE, urmată de POWER, seamplasează pe desen pinii de alimentare a circuitelor integrate. ComandaHARDCOPY realizează tipărirea fişierului schemă editat pe imprimanta declarată laconfigurarea programului. Subcomenzile DESTINATION LPT: şi MAKEHARDCOPY realizează imprimarea, dar formatul de tipărire depinde de tipul

Page 8: Proiectarea sistemelor electronice

7

Fig. 4. Schemă electrică editată în ORCAD/SDT

Page 9: Proiectarea sistemelor electronice

8

Fig. 5. Copii ecran ale editoarelor de stimuli şi trasee

Page 10: Proiectarea sistemelor electronice

9

Fig. 6. Simularea funcţionării circuitului în ORCAD/VST

Page 11: Proiectarea sistemelor electronice

10

driverului de imprimantă selectat la configurarea sistemului. Desenul din figura 4 afost obţinut cu o imprimantă HP 690C folosind driverul HPDESK2.DRV (100 *100,format A4).

După editarea schemei electrice, se părăseşte mediul DRAFT şi se selecteazăopţiunea DIGITAL SIMULATION. Din LOCAL CONFIGURATION se seteazăopţiunile ANNOTATE, INET şi IBUILD. Opţiunea ASCTOVST nu trebuie setatădacă se foloseşte editorul de stimuli din mediul de simulare. După rularea fără erori autilitarelor ANNOTATE, INET şi IBUILD, componentele schemei sunt numerotateautomat şi se construieşte lista de legături, sau NETLIST-ul în formatul necesarsimulării numerice.

Pentru editarea stimulilor am preferat utilizarea editorului încorporat în mediulde simulare, care permite foarte simplu o descriere temporală şi calitativă a fiecăruisemnal. A doua posibilitate de editare, TestVectorEdit, nu este discutată aici.Comanda EDIT STIMULUS aduce pe ecran editorul de stimuli, care conţine listasemnalelor stimuli, aşa cum se vede în figura 5. Se observă că există un prim nivel íncare sunt listate semnalele de intrare, şi un al doilea nivel ín care este detaliat fiecaresemnal ín parte. Funcţia de editare a semnalelor se apelează cu comenzile ADD,INSERT sau EDIT. Ea permite definirea evoluţiei temporale a unei intrări acircuitului pornind de la o valoare iniţială (vezi STIMULUS DETAIL EDITOR dinfigura 5). Pentru a edita o specificaţie, trebuie deplasată zona luminată pesterespectiva specificaţie, iar apoi validată subcomanda EDIT. Subcomanda RETURNpermite revenirea în mediul de editare a stimulilor. Comanda WRITE permitesalvarea pe disc a unei liste de stimuli (fişier *.STM). READ permite încărcarea uneiliste de stimuli memorată pe disc, USE compilează lista de stimuli în curs şi apeleazăprogramul principal de stimulare, iar QUIT permite abandonarea editării stimulilorfără compilare şi fără salvarea modificărilor făcute. Se impune şi precizarea nivelelorlogice ale pinilor de alimentare.

Editarea listei de semnale de ieşire se face cu subcomanda TRACE EDIT dinmeniul TRACE. Pentru exemplul considerat, ecranul editorului de trasee este dat totîn figura 5. Şi aici există un prim nivel ín care sunt listate semnalele de vizualizat, şiun al doilea nivel în care este detaliat fiecare semnal în parte. În exemplu a fostdetaliat semnalul RESET, căruia i se schimbă şi numele din PRESET, cum estefigurat în schemă datorită condiţiei impuse asupra primei litere din nume, în RESET ,aşa cum urmează a fi afişat. Acest semnal este absolut necesar pentru a iniţializabistabilii la pornire; astfel analiza circuitului începe din starea în care toţi bistabilii auieşirile în 0. În caz contrar simulatorul nu ştie starea curentă a bistabililor şi vareprezenta ieşirile ín starea nedefinită ( U ).

Subcomanda CHANGE VIEW din TRACE stabileşte scalarea semnalelorvizualizate pe axa timpului. Pentru exemplul nostru am ales View = 500. ComandaRUN SIMULATION lansează în execuţie programul de simulare şi după răspunsulla întrebarea SIMULATION LENGTH ? se afişează formele de undă stabilite.Pentru duratele semnalelor stimuli definite în STIMULUS EDITOR simulareaprezintă interes până la 80000 unităţi de timp. Am fixat această lungime de simularela 90000. Rezultatul se poate vedea în figura 6. Dacă se doreşte repetarea simulăriitrebuie readus la 0 momentul de început al simulării, acest lucru realizându-se princomanda INITIALISE. Subcomenzile DESTINATION LPT: şi MAKEHARDCOPY din HARDCOPY permit tipărirea formelor de undă la imprimantă, cudriverul ales în etapa de configurare locală a simulatorului. Opţiunea PRINT ON

Page 12: Proiectarea sistemelor electronice

11

CHANGE din SET permite obţinerea rezultatului simulării într-un fişier de tipvectori de test, care ţine cont de toate tranziţiile detectate de simulator, chiar dacăacestea nu au fost afişate datorită frecvenţei de eşantionare utilizate la generareaformelor de undă. Fişierul astfel obţinut este PRTONCHG.TVS, iar conţinutul luipentru exemplul nostru este dat în figura 7.

; . . . . . . .; P P P P P P P; C R I I Q Q Q; L E 1 2 2 1 0; K S; E; T;0000000000 0 0 0 0 U U U0000001000 0 1 0 0 U U U0000001468 0 1 0 0 0 0 00000004000 0 0 0 0 0 0 00000005000 1 0 0 0 0 0 00000008000 0 0 0 0 0 0 00000011000 1 0 0 0 0 0 00000014000 0 0 0 0 0 0 00000017000 1 0 0 0 0 0 00000020000 0 0 0 0 0 0 00000023000 1 0 0 0 0 0 00000026000 0 0 0 0 0 0 00000027000 0 0 1 0 0 0 00000029000 1 0 1 0 0 0 00000029351 1 0 1 0 0 1 00000032000 0 0 1 0 0 1 00000033000 0 0 1 1 0 1 00000035000 1 0 1 1 0 1 00000035351 1 0 1 1 0 1 10000038000 0 0 1 1 0 1 1

0000041000 1 0 1 1 0 1 10000041351 1 0 1 1 1 0 10000044000 0 0 1 1 1 0 10000047000 1 0 1 1 1 0 10000047351 1 0 1 1 0 1 00000050000 0 0 1 1 0 1 00000053000 1 0 1 1 0 1 00000053351 1 0 1 1 0 1 10000056000 0 0 1 1 0 1 10000057000 0 0 0 1 0 1 10000059000 1 0 0 1 0 1 10000059351 1 0 0 1 1 0 10000062000 0 0 0 1 1 0 10000065000 1 0 0 1 1 0 10000065351 1 0 0 1 0 1 00000067000 1 0 0 0 0 1 00000068000 0 0 0 0 0 1 00000071000 1 0 0 0 0 1 00000071351 1 0 0 0 0 0 10000074000 0 0 0 0 0 0 10000077000 1 0 0 0 0 0 10000077351 1 0 0 0 0 0 00000080000 0 0 0 0 0 0 00000083000 1 0 0 0 0 0 00000086000 0 0 0 0 0 0 00000089000 1 0 0 0 0 0 0END

Fig. 7. Conţinutul fişierului text PRTONCHG.TVS

Circuitul descris mai sus este de fapt un automat finit. Tranziţiile de staresurprinse pe formele de undă simulate ne arată dacă circuitul funcţionează corect, înconformitate cu cerinţele utilizatorului. După cum vom vedea imediat, nu am reuşit săsurprindem absolut toate tranziţiile posibile, dar cele care sunt, sunt corecte. Putemaplica semnalele stimul de intrare în aşa fel încât să vizualizăm absolut toate tranziţiileautomatului.

În concluzie, sinteza schemei electrice rămâne deocamdată în sarcinaproiectantului. Programul ORCAD/SDT nu face decât să uşureze munca de desenare aschemei electrice şi să asigure construcţia automată a listei de legături. Prin simularelogică cu ORCAD/VST se face analiza schemei electrice pentru a verificacorectitudinea operaţiei de sinteză, dar succesul simulării depinde de aplicarea

Page 13: Proiectarea sistemelor electronice

12

corectă a vectorilor de test capabili să pună în evidenţă eventualele erori deproiectare. Nu poate fi acuzat programul dacă noi am scăpat din vedere săsimulăm o anumită combinaţie intrare/stare şi constatăm o funcţionaredefectuoasă a circuitului după ce acesta a fost realizat practic!Organigrama de funcţionare a circuitului din figura 4 este reprezentată în figura 8,unde semnalele de intrare I1 şi I2 sunt asincrone. Codificarea stărilor a fost făcutăţinând seama de acest lucru. Urmăriţi formele de undă simulate şi verificaţi tranziţiileevidenţiate de ele. Există şi tranziţii care nu au fost puse în evidenţă prin simulare şidacă da, cum ar trebui aplicate semnalele de intrare pentru ca simularea circuitului săfie completă?

I2=1

A

BI1=1 danu

I1=1 danuC D E

danu

Q2 Q1 Q0000

010

001 011 101

Fig. 8. Reprezentarea funcţionării prin organigramă

Instrucţiunile sumare date în acest capitol nu ţin loc de documentaţie. Sperămtotuşi ca ele să fie utile pentru ca o persoană cu experienţă în calculatoare să poatăutiliza cele două pachete de programe pentru simularea funcţionării unui circuitnumeric de complexitate medie, cerinţa proiectului la această disciplină.

Din păcate accesul la documentaţia de firmă este dificil, dar pot fi consultateurmătoarele cărţi publicate:

[1] Voloşencu C., Analiza circuitelor cu programul Spice, EdituraElectronistul, 1994

[2] Câmpeanu A., Jiveţ I., ORCAD , Editura Teora, Bucureşti, 1994[3] Sofron E., ş. a., SPICE. Simularea circuitelor analogice. Noua eră în

inginerie, Editura militară, Bucureşti, 1994[4] Marian T., SPICE , Editura Teora, Bucureşti, 1996

Lucrarea [3] se ocupă numai de simularea analogică SPICE.

Proiectul la disciplina ASDN/CID trebuie să conţină următoareleelemente:

- dosar cu şină- 8..12 pagini editate în WORD care conţin tema de proiectare şi proiectarea

teoretică a schemei logice, după modelul folosit la curs şi laborator.- schema electrică a circuitului desenată cu un editor grafic din SPICE sau din

ORCAD- formele de undă simulate, fie în SPICE, fie în ORCAD (1..3 pagini)- toate fişierele sursă utilizate, pe dischetă (discheta se restituie).

Page 14: Proiectarea sistemelor electronice

13

2. TEMA DE PROIECTAREVom formula în continuare un exemplu de sistem numeric care trebuie

proiectat. Cerinţele de funcţionare impuse de utilizator constituie caietul de sarcini alprodusului sau tema de proiectare. Aceste cerinţe sunt studiate cu atenţie şi dupăînţelegerea lor se alege un mod de reprezentare convenabil pentru sinteza schemeilogice (forme de undă, organigramă etc.). După cum se ştie, sinteza unui sistemnumeric nu este unică, existând numeroase posibilităţi de implementare a schemei,funcţie de tipurile de circuite integrate disponibile. De regulă, într-o temă deproiectare nu sunt impuse circuitele utilizate, fiecare proiectant încercând să facăcompromisul cel mai bun între preţ, performanţă, gabarit, consum, fiabilitate,testabilitate etc. Noi însă vom impune circuitele folosite în fiecare caz, pentru a cuplamai mulţi studenţi la aceeaşi temă, dar fiecare student să prezinte o schemă proprieaplicabilă aceluiaşi caiet de sarcini impus.

Să se proiecteze o interfaţă calculator-microcalculator cu 4 intrări şi cu 4 ieşiri,sincronă cu ceasul microcalculatorului. Cele 8 semnale numerice sunt împărţite îndouă grupe: 4 dintre ele sunt conectate la calculator, iar celelalte 4 la microcalculator,după cum se vede în figura 9.

Calculator InterfaţăMicro -

calculator

CLK

ATTENTION

READY

CYCLE

CYEND

START

INACTIVE

T / R

F / E

Fig. 9. Semnalele interfeţei

Semnalul de intrare START condiţionează prin valoarea lui logică trecereainterfeţei din starea de repaus într-o nouă stare. Dacă START = 0 interfaţa rămâne înstarea de repaus şi nu o părăseşte decât dacă START devine 1 logic. Noua stare ainterfeţei care succede stării de repaus activează prin 1 logic semnalul de ieşireATTENTION, trimis către microcalculator. După transmiterea acestui semnalinterfaţa aşteaptă primirea semnalului READY de la microcalculator, semnal careatestă disponibilitatea microcalculatorului pentru comunicaţie. Ca şi în cazulsemnalului START, atât timp cât READY = 0 interfaţa îşi păstrează starea curentă,iar la activarea lui READY (READY = 1) se trece în starea următoare, stare în care setrimite spre calculator semnalul INACTIVE, un semnal de scurtă durată (o perioadăde ceas). Activarea lui se face tot pe 1 logic, ca şi în cazul semnalului ATTENTION.Datorită duratei scurte a semnalului INACTIVE, se trece imediat în starea următoare,în care se testează semnalul T/R (TRANSMIT/RECEIVE) prin care calculatorulindică tipul operaţiei dorite, transmisie sau recepţie. Nu ne preocupă aici sensul detransmisie a datelor ci numai modul de aplicare a semnalelor de comandă. Dacă T/R =

Page 15: Proiectarea sistemelor electronice

14

1 interfaţa comandă trecerea într-o nouă stare în care se elaborează semnalul de cerereCYCLE pentru efectuarea schimbului de date. Dacă T/R = 0 se revine în stareainiţială de la început. În starea în care s-a făcut activarea semnalului CYCLE, careeste transmis microcalculatorului, este testat şi semnalul de răspuns CYEND. Acestsemnal provine de la microcalculator şi anunţă terminarea operaţiei solicitate. DacăCYEND = 1 interfaţa comandă trecerea într-o nouă stare, în care comunicăcalculatorului prin activarea semnalului F/E (FULL/EMPTY) faptul că s-au completatsau golit regiştrii de date. Şi acest semnal este de scurtă durată şi după o perioadă deceas interfaţa trece în starea în care se testează valoarea semnalului T/R. Dacăsemnalul CYEND = 0 se aşteaptă în starea generatoare a semnalului CYCLE pânăcând CYEND =1.

Semnalele START şi T/R sunt asincrone din punctul de vedere al interfeţei,care are ceas comun cu microcalculatorul. Celelalte două intrări, READY şi CYENDprovin de la microcalculator, deci sunt sincrone. Vom ţine seamă de acest lucru lacodificarea stărilor interfeţei, prin aplicarea principiului codificării cu dependenţăredusă faţă de variabilele asincrone. Acest lucru este posibil în cazul de faţă.

Vom prezenta în cele ce urmează 5 soluţii distincte de implementare acircuitului, dar numărul lor poate fi cu mult mai mare. Pentru a diferenţia acestesoluţii vom adăuga la tema de proiectare formulată mai sus nişte cerinţe suplimentare,cerinţe care vor genera de fapt 5 teme de proiectare distincte:

1. Să se proiecteze circuitul folosind bistabile JK şi porţi logice din familialogică LS TTL ( se impune folosirea circuitului integrat 74LS73).

2. Să se proiecteze circuitul folosind un registru serie - paralel şi porţi logicedin familia logică LS TTL (se impune folosirea circuitului integrat 74LS195).

3. Să se proiecteze circuitul folosind un numărător sincron presetabil şi porţilogice din familia logică CMOS, seria 4000 (se impune folosirea circuitului 40193).

4. Să se proiecteze circuitul folosind o memorie PROM, bistabile de tip D şimultiplexoare din familia logică TTL (se impune folosirea următoarelor circuiteintegrate: 7474, 74151, 74157).

5. Să se proiecteze circuitul folosind structuri logice programabile de tip PAL(se impune folosirea circuitului PAL16R4 de la AMD).

Page 16: Proiectarea sistemelor electronice

15

3. PROIECTAREA SCHEMEI LOGICEFolosind caietul de sarcini din capitolul anterior reprezentăm funcţionarea

interfeţei prin organigrama din figura 10. Pentru codificarea stărilor s-au respectatprincipiile de codificare prezentate la curs, iar codurile alese sunt trecute peorganigramă în dreptul stărilor.

A

B

D

E

Q2 Q1 Q0000

C

START

001

ATTENTION

READY

0 1

1 0010

INACTIVE

011

T / R

CYCLE

0 1 100

CYEND 01F110

F / E

Fig. 10. Organigrama interfeţei

Construim în continuare tabelul tranziţiilor şi al ieşirilor. Coloanele din stângaconţin variabilele de intrare şi stările prezente ale automatului. Cele 3 coloaneadiacente indică stările în care se face tranziţia, iar următoarele 4 coloane reprezintăieşirile. Tabelul mai conţine două grupe de câte 5 coloane necesare implementăriicircuitului cu registru serie-paralel şi respectiv cu numărător sincron.

Soluţia 1:

Nu s-au mai reprezentat în tabel coloanele J K ii i , = 0 1 2, , , deoarece acestefuncţii de excitaţie pot fi deduse direct din construcţia diagramelor Veitch - Karnaugh.Urmărind de exemplu tranziţiile Q Q2 2→ + rezultă următoarele diagrame:

Page 17: Proiectarea sistemelor electronice

16

Page 18: Proiectarea sistemelor electronice

17

Start Ready

T/R Cyend Q2 Q1 Q0 Q2+ Q1+ Q0+ Attention

Inactive

Cycle

F/E MC SI I3 I2 I1 INC LD I2 I1 I0

0 x x x 0 0 0 0 0 0 0 0 0 0 1 x 0 0 0 0 1 0 0 01 x x x 0 0 0 0 0 1 0 0 0 0 1 x 0 0 1 1 0 x x xx 0 x x 0 0 1 0 0 1 1 0 0 0 1 x 0 0 1 0 1 0 0 1x 1 x x 0 0 1 0 1 0 1 0 0 0 1 x 0 1 0 1 0 x x xx x x x 0 1 0 0 1 1 0 1 0 0 1 x 0 1 1 1 0 x x xx x 0 x 0 1 1 0 0 0 0 0 0 0 1 x 0 0 0 0 1 0 0 0x x 1 x 0 1 1 1 0 0 0 0 0 0 1 x 1 0 0 1 0 x x xx x x 0 1 0 0 1 0 0 0 0 1 0 1 x 1 0 0 0 1 1 0 0x x x 1 1 0 0 1 1 0 0 0 1 0 0 1 x x x 0 1 1 1 0x x x x 1 1 0 0 1 1 0 0 0 1 0 0 x x x 0 1 0 1 1

Fig. 11. Tabelul tranziţiilor şi al ieşirilor

Page 19: Proiectarea sistemelor electronice

18

QQ

Q

Q

Q QQ

2 2

1 1 1

0

0

0 00

0

QQ

Q

Q

Q QQ

2 2

1 1 1

0

0

J2 K2

x xx x

xT/R

1xx x x x

Se obţin următoarele ecuaţii:

J T/ R Q Q2 1 2= ⋅ ⋅ şi K Q2 1=

În mod asemănător rezultă şi:

J READY Q CYEND Q1 0 2= ⋅ + ⋅ şi K Q1 0=

J Q START + Q0 2 1= ⋅ şi K READY + Q0 1=

Schema logică a circuitului este dată în figura 12.

J

K

Q

QCLK

2

J

K

Q

QCLK

1

J

K

Q

QCLK

0T/R

CYEND

READY

STARTCLK

Fig. 12. Schema logică a interfeţei (soluţia 1)

Indiferent de soluţia cerută pentru implementare, ieşirile se obţin cu ajutorulunui CLC realizat cu porţi, circuite MSI (decodificator) etc. După minimizare se obţinurmătoarele ecuaţii ale ieşirilor:

ATTENTION = Q Q1 0⋅ ; INACTIVE = Q Q Q2 1 0⋅ ⋅ ;CYCLE = Q Q2 1⋅ ; F / E = Q Q2 1⋅

Schema logică din figura 13 propune o implementare cu decodificator cu 3intrări de selecţie. Se pot imagina şi alte soluţii.

Nu vom reveni în soluţiile ce urmează asupra modului de sinteză a ieşirilor.

Page 20: Proiectarea sistemelor electronice

19

DCDQQQ

2 22

1 2 1

0 2 0 0 1 2 3 4 5 6 7

ATTENTIONINACTIVE

CYCLE

F / E

Fig. 13. Un mod de sinteză a ieşirilor

Soluţia 2:

Pentru a face sinteza cu registru serie-paralel folosim coloanele respective dintabelul tranziţiilor. După minimizare rezultă următoarele funcţii binare:

MC = Q Q CYEND2 1+ ⋅ , SI = Q1

I3 = ⋅ ⋅Q Q T/ R + Q1 0 2 , I READY Q Q Q Q2 1 0 1 0= ⋅ ⋅ + ⋅ ,

I START Q Q READY Q Q Q Q1 2 0 1 0 1 0= ⋅ ⋅ + ⋅ ⋅ + ⋅

Schema logică a circuitului este dată în figura 14. Pentru a simplificareprezentarea nu am mai figurat toate conexiunile de reacţie. Acolo unde a fostnecesar am etichetat liniile respective. Două linii care au aceeaşi etichetă suntconectate între ele. Tot pentru simplitate nu am mai reprezentat semnalele de ieşire.

REGISTRU

I3 I2 I1 I0MC

SI Q3 Q2 Q1 Q0

Q2 Q1 Q0

Q1

CYEND

Q1

Q2

Q2

Q1Q0

T/R Q1 Q0READY

Q0 Q1

CLK

Q2 Q0START READY

Q1 Q0 Q0 Q1

Fig. 14. Schema logică a interfeţei (soluţia 2)

Soluţia 3:

Pentru a face sinteza cu numărător sincron presetabil şi porţi folosim coloanelerespective din tabelul tranziţiilor. După minimizare rezultă următoarele funcţii binare:

INC = LOAD START Q Q READY Q Q T/ R Q Q Q Q Q2 0 1 0 1 0 2 1 0= ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅

I Q Q I CYEND Q Q Q ; I Q Q2 2 1 1 2 2 0 1 0= ⋅ = ⋅ + ⋅ = ⊕; 1

Page 21: Proiectarea sistemelor electronice

20

Pentru a folosi un număr minim de elemente de circuit am implementat funcţiaINC cu multiplexor. Implementarea funcţiilor de ieşire s-a făcut cu porţi logice, darele nu au mai fost reprezentate în schemă.

I3 I2 I1 I0

Q3 Q2 Q1 Q0

Q2 Q1 Q0

CYEND

Q2

Q1

Q1

READY

Q0

Q1

CLK

Q2

START

NUMĂRĂTOR

INC

T/R

Q2

LOADCLKUP

Q2 Q1 Q0

2 2

WMUX

2 1 2 0

01234567

1T/R

Fig. 15. Schema logică a interfeţei (soluţia 3)

Soluţia 4:

Pentru a face sinteza cu memorie PROM utilizând circuitele impuse prin temade proiectare, construim circuitul din figura 16. Schema nu este completă fără tabeluldin figura 17, care indică conţinutul memoriei. Completarea tabelului s-a făcutfolosind tabelul tranziţiilor din figura 11.

Sigur că cea mai simplă soluţie la implementarea cu memorie PROM esterealizarea CLC-ului cu un singur circuit integrat. Capacitatea necesară de memorie arfi însă de cel puţin 128 * 4 biţi, o soluţie probabil mai scumpă şi o folosire neraţionalăa memoriei. O structură de memorie de 128 * 8 biţi ar rezolva în acest caz şi problemadecodificării ieşirilor. Încercaţi să realizaţi circuitul şi să simulaţi funcţionarea lui.

PROMA2 A1 A0

O2O1 O3 O4 O5 O6 O7 O8

Q2 Q1 Q0

MUX (2:1)1A 1B 2A 2B 3A 3B 4A 4B

1Y 2Y 3Y 4YS

MUX

Q2 Q1 Q0

22

(8:1)4

21

20

Y

1

2

3

4

5

6

7

START

READY

XT/R

CYEND

X

X

X

D

QCLK

D

QCLK

D

QCLK

CLOCK Q2 Q1 Q0

Fig. 16. Schema logică a interfeţei (soluţia 4)

Page 22: Proiectarea sistemelor electronice

21

Q2 Q1 Q0 - - Q0+ Q0+ Q1+ Q1+ Q2+ Q2+A2 A1 A0 O8 O7 O6 O5 O4 O3 O2 O10 0 0 X X 1 0 0 0 0 00 0 1 X X 0 1 1 0 0 00 1 0 X X 1 1 1 1 0 00 1 1 X X 0 0 0 0 1 01 0 0 X X 0 0 1 0 1 11 0 1 X X X X X X X X1 1 0 X X 1 1 1 1 0 01 1 1 X X X X X X X X

Fig. 17. Harta memoriei PROM de 8 * 8 biţi

Soluţia 5:

Pentru a face sinteza cu structuri logice programabile folosind circuitulPAL16R4 consultăm totuşi înainte foaia lui de catalog. Varietatea structurilor logiceprogramabile este foarte mare şi înainte de scrierea ecuaţiilor logice trebuie văzutămai întâi configuraţia circuitului (fig. ). Observăm că ieşirile bistabilelor sunt trecuteprin inversoare cu 3 stări înainte de a ajunge la pinii de ieşire ai circuitului. Atribuimieşirea O6 lui Q2, O5 lui Q1 şi O4 lui Q0. Aria combinaţională implementeazăfuncţiile D2, D1 şi D0 cu porţi ŞI-SAU. Prin urmare în aria combinaţională segenerează funcţiile Q2

+ , Q1+ şi Q0

+ . Ecuaţiile lor deduse cu ajutorul tabelului din figura11 sunt următoarele:

Q Q Q Q Q T/ R Q2+

2 1 1 0= ⋅ + ⋅ + ⋅ 1

Q Q Q Q Q Q READY Q CYEND Q Q1 2 1 0 1 0 0 2 1+ = ⋅ ⋅ + ⋅ + ⋅ + ⋅ ⋅

Q Q Q Q Q READY Q Q Q START0 2 1 1 0 0 1 0+ = ⋅ + ⋅ + ⋅ + ⋅ ⋅

Celelalte 4 semnale de ieşire ATTENTION, INACTIVE, CYCLE şi F/E suntatribuite ieşirilor I/O8, I/O7, I/O2 şi respectiv I/O1, care au şi ele inversoare cu 3 stăripe ieşire. Ecuaţiile lor devin:

ATTENTION Q Q ; INACTIVE = Q Q Q ;1 0 2 1 0= + + +

CYCLE Q Q ; F / E = Q Q ;2 1 2 1= + +

Semnalele de intrare START, READY, T/R şi CYEND sunt atribuite intrărilorI1, I2, I3 şi respectiv I4. Dacă este nevoie de intrare de RESET, o putem introduce peI5. Schema logică este prea simplă pentru a mai fi desenată.

Page 23: Proiectarea sistemelor electronice

22

4. PROIECTAREA SCHEMEI ELECTRICEÎn cazul proiectării manuale a schemei electrice se aleg din cataloage circuitele

integrate necesare, se notează cu atenţie configuraţia pinilor şi, de la caz la caz, tabelulde adevăr dacă avem de-a face cu un circuit combinaţional, sau tabelul tranziţiilor,forme de undă etc., dacă avem de-a face cu un circuit secvenţial. Nu se copiază dincatalog informaţie redundantă (caracteristici electrice pentru respectiva familie logică,schema internă a circuitului integrat etc.), caracteristică pentru orice circuit integratdin familia logică respectivă.

Există situaţii în care semnalele de intrare într-un circuit integrat real diferă desemnalele luate de noi în considerare la proiectarea schemei logice. În cazulimplementării cu numărător sau cu registru am considerat circuite teoretice, carerealizează funcţiile logice dorite. Este foarte probabil ca circuitele integrate reale săaibă alte semnale decât cele considerate în teorie. Pentru rezolvarea problemei seconstruieşte o logică combinaţională care, având ca intrări semnalele teoretice, săgenereze semnalele reale necesare pentru comanda circuitelor integrate respective.

În cazul editării automate a schemelor electrice componentele amplasate pefoaia de lucru se aleg din bibliotecile pachetului de programe CAD şi configuraţiapinilor este cunoscută. Totuşi este utilă consultarea catalogului. Am editat desenele înSPICE, deoarece varianta Design Center 5.2 este o aplicaţie Windows, care oferăfacilităţi caracteristice acestui mediu. Toate variantele de ORCAD rămân din păcateaplicaţii DOS.

Soluţia 1:

Schema electrică a circuitului implementat cu bistabile JK şi porţi LS TTL estedată în figura 18.

Fig. 18. Schema electrică a interfeţei (soluţia 1)

Page 24: Proiectarea sistemelor electronice

23

Circuitul U12 este un decodificator cu 3 intrări de selecţie, având codul SN74LS138. Acest standard, introdus de TEXAS INSTRUMENTS este respectat deorice producător de circuite integrate, chiar dacă codul circuitului poate fi diferit. Laextragerea circuitului din biblioteca DIG1.SLB din SPICE, observăm că în afarasemnalelor cunoscute din teorie, intrările C, B, A (corespunzătoare lui 22 , 21 şirespectiv 20 ) şi ieşirile Y0, Y1,…,Y7, există 3 intrări suplimentare: G1, G2A şi G2B.Aici avem nevoie de catalog pentru a afla modul de conectare a lor. Tabelul de adevăral circuitului arată că pentru o funcţionare normală ca decodificator, intrările G2A şiG2B se conectează împreună la 0 logic, iar G1 se conectează la 1 logic.

Soluţia 2:

Schema electrică a circuitului implementat cu registrul serie - paralel 74LS195şi circuite LS TTL este dată în figura 19.

Fig. 19. Schema electrică a interfeţei (soluţia 2)

Calitatea schemelor este slabă, deoarece ele ocupă o foaie mare de lucru şi aufost folosite mai multe trepte de ZOOM pentru micşorarea lor la dimensiuniacceptabile.

Registrul cerut de această implementare conţine alte semnale de comandădecât cele considerate de noi, MC şi SI. Pentru a genera noile semnale cerute,SHIFT/LOAD, J şi \K, vom construi un tabel de adevăr folosind datele de catalog.Semnalele MC şi SI sunt intrările, iar SHIFT/LOAD, J şi \K sunt funcţiile binare deieşire.

MC SI acţiune SH/LD J \K0 0 serie 1 0 00 1 serie 1 1 11 0 paralel 0 X X1 1 paralel 0 X X

Page 25: Proiectarea sistemelor electronice

24

Rezultă de aici ecuaţiile care generează semnalele de intrare în registru:

J = K = SI, şi SHIFT / LOAD = MC .

Soluţia 3:

Schema electrică a circuitului implementat cu numărătorul sincron presetabil40193 şi circuite CMOS, seria 4000 este dată în figura 20.

Fig. 20. Schema electrică a interfeţei (soluţia 3)

La implementarea schemei electrice s-au folosit circuitele integrate CMOS40193, multiplexorul digital cu ieşiri cu 3 stări 4512 şi diferite tipuri de porţi logice.Conexiunile se fac ca la schema logică, iar intrările suplimentare ale circuitelor seconectează conform indicaţiilor de catalog.

Astfel, multiplexorul 4512 are 2 intrări suplimentare: INHIBIT care permiteaccesul direct al datelor de la intrarea selectată la ieşirea OUT şi DISABLE carecontrolează trecerea ieşirii în starea HIGH Z. Ambele intrări se conectează la 0 logic.

Corespondenţa dintre intrările unui numărător teoretic INC şi LOAD şiintrările numărătorului folosit RESET, PRESET ENABLE (PE), CLOCKUP(CLKUP) şi CLOCKDOWN (CLKD) rezultă din tabelul de funcţionare, construit cuajutorul informaţiilor din catalog:

INC LOAD acţiune RESET PE CLKUP CLKD0 0 no change 0 1 1 10 1 preset 0 0 X X1 0 increment 0 1 11 1 imposible X X X X

Page 26: Proiectarea sistemelor electronice

25

Rezultă de aici ecuaţiile care stabilesc conexiunile necesare:

PE LOAD , CLKUP INC CLK , CLKD ,= = + =1

iar RESET se conectează la linia semnalului de intrare RESET, necesară pentruiniţializarea elementelor de memorie la începutul simulării. Căsuţa care corespundesimbolului , care reprezintă frontul crescător al ceasului, se înlocuieşte cu semnalulde ceas CLK

Soluţia 4:

Schema electrică a circuitului implementat cu memoria PROM şi circuitele7474, 74151, 74157 este dată în figura 21. Am preferat de această dată utilizareamediului OrCAD 4.2, deoarece este mult mai bogat în biblioteci de componenteprogramabile decât Design Center 5.2 în varianta originală. O memorie PROMconvenabilă am găsit în MEMORY.LIB, circuitul 82S23, o structură de 32*8 biţi întehnologie Schottky TTL. Celelalte circuite TTL cerute în temă se găsesc înTTL.LIB.

Circuitul 82S23 are pinul CE (chip enable) care a fost conectat permanent la 0logic pentru autorizarea accesului datelor spre ieşire prin porţile de ieşire cu 3 stări.Multiplexorul cuadruplu cu 2 intrări şi o ieşire 74157 are o intrare de strobare notatăcu G, activă pe 0 logic, iar intrarea de selecţie comună celor 4 multiplexoare interneeste A/B şi s-a conectat la ieşirea Y a circuitului 74151. Multiplexorul cu 8 intrări74151 are 3 intrări de selecţie notate cu A, B şi C (C corespunde lui 22 ) şi o intrare destrobare notată cu G, activă pe 0 logic. Ieşirea negată W a circuitului nu este utilizatăşi poate fi lăsată în aer.

Page 27: Proiectarea sistemelor electronice

26

Fig. 21. Schema electrică a interfeţei (soluţia 4)

Page 28: Proiectarea sistemelor electronice

27

Soluţia 5:

Schema electrică a interfeţei implementate cu circuitul integrat PAL16R4, unPLD (Programmable Logic Device) realizat de firma AMD(Advanced MicroDevices) este dată în figura .

Structura internă a circuitului este prezentată în figura 23. Este o structură cu 8intrări (I1,I2,…I8), 4 intrări sau ieşiri, după dorinţa utilizatorului (I/O1, I/O2, I/O7,I/O8) şi 4 ieşiri din elemente de memorie de tip bistabil D (registered outputs) (O3,O4, O5, O6). Toate ieşirile sunt cu 3 stări. Aria combinaţională este o structură de tipPLA care conţine 2048 de fuzibile ce pot fi arse o singură dată. Fiecare fuzibil poate fiprogramat cu o secvenţă simplă de tensiuni aplicate la doi pini de control şi pe ieşireacare se programează. Adresarea ariei de fuzibile se face prin aplicarea unor semnaleTTL la cele 8 intrări (5 intrări selectează coloana, iar restul de 3 selectează una dincele 8 porţi ŞI corespunzătoare unei celule). Un fuzibil de protecţie permiteîmpiedicarea oricărei încercări de copiere neautorizate.

Programarea se face cu ajutorul unui programator conectat la un port al unuicalculator. Starea fuzibilelor este identificată de programul de ardere prin citirea unuifişier text în format standard JEDEC (Joint Electronic Device Engineering Council).Acest fişier poate fi creat manual, dar de regulă se preferă generarea lui automată cuajutorul unui compilator specializat (LOG/iC, ABEL etc.). Informaţia de intrare estedată de ecuaţiile logice ale circuitului, iar rezultatul compilării este un fişier în formatJEDEC (cu extensia .JED).

Fig. 22. Schema electrică a interfeţei (soluţia 5)

Page 29: Proiectarea sistemelor electronice

28

5. SIMULAREA NUMERICĂ A CIRCUITULUIPentru schema circuitului din figura 18 şi pentru fişierul de stimuli din figura

de mai jos, se obţin prin simulare numerică formele de undă din figura 25.

Soluţia 1:

UCLOCK STIM(1,1) $G_DPWR $G_DGND+ CLOCK+ IO_STM TIMESTEP=0.5u+ 0c 0+ label=loop+ 1c 1+ 2c 0+ 3c goto loop -1 times

URESET STIM(1,1) $G_DPWR $G_DGND+ RESET+ IO_STM+ TIMESTEP=0.5u+ 0c 1+ 2c 0+ 6c 1

USTART STIM(1,1) $G_DPWR $G_DGND+ START+ IO_STM+ TIMESTEP=0.2u+ 0c 0+ 29c 1+ 57c 0

UREADY STIM(1,1) $G_DPWR $G_DGND+ READY+ IO_STM+ TIMESTEP=0.5u+ 0c 0+ 20c 1+ 25c 0

UT/R STIM(1,1) $G_DPWR $G_DGND+ T/R+ IO_STM+ TIMESTEP=0.2u+ 0c 0+ 53c 1+ 84c 0

UCYEND STIM(1,1) $G_DPWR $G_DGND+ CYEND+ IO_STM+ TIMESTEP=0.5u+ 0c 0+ 40c 1+ 50c 0

Fig. 24. Fişierul semnalelor de intrare

Fig. 25. Simularea SPICE a funcţionării interfeţei (soluţia 1)

Page 30: Proiectarea sistemelor electronice

29

Se pot observa pe formele de undă din figură aproape toate tranziţiile făcute desistemul numeric proiectat, precum şi evoluţia semnalelor de ieşire. Totuşi nu a fostpusă în evidenţă tranziţia din starea D în A pentru T/R = 0. Încercaţi să arătaţi acestlucru prin modificarea fişierului de stimuli şi lansarea unei noi simulări.

Soluţia 2:

Vom folosi în cele ce urmează acelaşi fişier de stimuli şi vom urmări dacăobţinem aceleaşi forme de undă ca în figura 25.

Fig. 26. Simularea SPICE a funcţionării interfeţei (soluţia 2)

Observăm aici că formele de undă sunt identice cu cele obţinute în figura 25.Singura diferenţă constă în faptul că schimbarea de stare se face aici pe frontulcrescător al ceasului şi nu pe cel descrescător ca în cazul bistabililor JK. Registrulutilizat dispune de un pin pentru aducerea la zero a bistabililor din structură şi dinacest motiv fişierul de stimuli este acelaşi ca la soluţia 1. Să se analizeze cazulregistrului SN 74LS95 şi să se propună o soluţie pentru simulare.

Soluţia 3:

Rezultatul simulării funcţionării interfeţei implementate cu numărător şicircuite CMOS este dat în figura 27.

Observăm aici diferenţe faţă de formele de undă de până acum. Stările şiieşirile interfeţei sunt identice cu cele obţinute la implementările anterioare atât timpcât tranziţia de stare se face prin incrementarea numărătorului (vezi semnalulCLOCK_UP). În momentul în care tranziţia se face prin încărcarea paralelă anumărătorului (stările F(110) şi D(011)), observăm că duratele stărilor şi evident aieşirilor (semnalul F/E) nu mai depind de durata ceasului, ci de timpii de propagareprin CLC-ul de reacţie. Acest lucru se datorează faptului că încărcarea paralelăa

Page 31: Proiectarea sistemelor electronice

30

Fig. 27. Simularea SPICE a funcţionării interfeţei (soluţia 3)

numărătorului se face asincron, în timp ce incrementarea sau decrementarea luise face sincron! Mai mult decât atât, se poate observa că hazardul combinaţional careapare acum pe ieşiri, introduce pentru foarte scurt timp o nouă stare parazită, carecoincide cu starea C şi ca atare se activează ieşirea INACTIVE atunci când nutrebuie.Aceste fenomene pot deranja sau nu funcţionarea automatului pe care dorim să-limplementăm, deci se impune o analiză atentă a schemei electrice obţinute şisimularea funcţionării ei pentru orice combinaţie posibilă a intrărilor.

Arătaţi dacă se poate găsi o soluţie care să rezolve problema descrisă şiverificaţi prin simulare corectitudinea ei.

Soluţia 4:Problema circuitelor programabile o constituie faptul că modelele lor nu pot fi

direct utilizate în simulare, deoarece nu este cunoscut conţinutul memoriei lor. Încazul nostru, nici măcar nu este introdus modelul de simulare pentru memoria 82S23.

În primul rând se editează schema cu editorul grafic DRAFT. Dupăconfigurarea corectă şi rularea utilitarelor ANNOTATE, INET şi IBUILD, se ajungeîn mediul de simulare. Aici trebuie creat modelul logic al memoriei. Fişierul textconstruit în acest scop este dat în figura 28. Acest text se adaugă la conţinutulfişierului ROM.DSF din directorul C:\ORCADESP\VST\LIBRARY\, o bibliotecăcare conţine modelele memoriilor ROM. Tot în acest director trebuie să se afle şifişierele MODEL.DAT şi MODEL.NDX. Comanda ADD DEVICE MODEL faceconversia fişierului sursă specificat la configurare într-un model ce poate fi citit deSIMULATE. Să revenim la modelul introdus în ROM.DSF.

Descrierea modelului de dispozitiv începe cu simbolul (:) în prima coloană aprimei linii şi se termină cu simbolul (%) amplasat în prima coloană a ultimei linii.Urmează numele dispozitivului din schemă (fişierul *.SCH) pe un câmp maxim de 16

Page 32: Proiectarea sistemelor electronice

31

caractere alfanumerice, numele bibliotecii (MEMORY.LIB) şi numărul pinilorcircuitului integrat. Următoarele linii sunt destinate descrierii dispozitivului cu

:82S23 MEMORY 16ROM(HEXFILE;P10,P11,P12,P13,P14;N1,N2,N3,N4,N5,N6,N7,N8;50,50);LINV(P15;L1);TSB(N1,L1;P1;25,25,25,25,25,25,25,25);TSB(N2,L1;P2;25,25,25,25,25,25,25,25);TSB(N3,L1;P3;25,25,25,25,25,25,25,25);TSB(N4,L1;P4;25,25,25,25,25,25,25,25);TSB(N5,L1;P5;25,25,25,25,25,25,25,25);TSB(N6,L1;P6;25,25,25,25,25,25,25,25);TSB(N7,L1;P7;25,25,25,25,25,25,25,25);TSB(N8,L1;P9;25,25,25,25,25,25,25,25) ;%

Fig. 28. Modelul sursă al memoriei 82S23.

nişte primitive care caracterizează principalele funcţii logice de circuit (porţi, bistabili,memorii, diverse). O primitivă are următoarele tipuri de intrări/ieşiri:

- o conexiune la un terminal al componentei (caracterul P urmat de numărulterminalului)

- o conexiune la un nod intern (caracterul N urmat de un număr de ordine)- o conexiune la un nod logic intern, care este ieşirea unei primitive logice

(caracterul L urmat de un număr de ordine).Prima primitivă utilizată este în mod obligatoriu:

ROM(nume_fişier;A0,A1,…An;O0,O1,…Om;timp_acces_minim;timp_acces_maxim);

Nume_fişier reprezintă numele fişierului care conţine datele memorate înROM. Acest fişier trebuie să fie în format INTEL HEX, formatul standard pentrureprezentarea datelor în majoritatea programelor asambloare. Octeţii de date suntexprimaţi în cod ASCII - hexazecimal. Fişierul nostru are numele HEXFILE.HEX.

A0,A1,…An reprezintă numerele terminalelor celor n linii de adresă (se admitmaxim 12 linii de adresă). S-a folosit caracterul P, urmat de numărul pinului.

O0,O1,…Om reprezintă numerele celor m terminale de ieşire (se admit maxim16 linii de ieşire). Am folosit caracterul N, deoarece avem de-a face cu noduri interne.Ieşirile reale se obţin de la aceste noduri interne, prin intermediul unor porţi cu treistări, controlate de pinul CE (pinul 15).

timp_acces_minim şi timp_acces_maxim reprezintă valorile minime şirespectiv maxime ale timpilor de acces la citirea memoriei. Valorile de 50 nscorespund unui timp mediu de acces, conform catalogului firmei SIGNETICS,producătorul acestor circuite.

O altă primitivă este:LINV(intrare;ieşire);

unde intrare este un terminal de intrare în circuit (notat cu P15), iar ieşire este un nodlogic de ieşire (notat cu L1), care este complementul nivelului logic de pe intrarea P15şi care comandă accesul datelor de ieşire prin porţile logice cu 3 stări.

Ultima primitivă utilizată de model este:

Page 33: Proiectarea sistemelor electronice

32

TSB(intrare,comandă;ieşire;lista_timpilor_de_propagare);unde intrare este un terminal de intrare, în cazul nostru unul din nodurile internenotate cu N, comandă este nodul logic de ieşire L1, iar ieşire este o ieşire fizică acircuitului, terminal notat cu P. Timpul mediu de propagare prin poartă este de circa25 ns, valoare care trecută de 8 ori (valorile t PHL şi t PLH ca valori tipice şi valorimaxime, odată pentru intrarea de comandă şi odată pentru ieşire).

Fişierul de date HEXFILE.HEX este dat în figura 29. El trebuie să fie amplasatîn acelaşi director cu fişierul ROM.DSF, iar semnificaţia câmpurilor de format esteurmătoarea: caracterul de start este (:), urmat de 2 caractere hexa care indică lungimeaînregistrării pe linie (10H = 16 octeţi); urmează un câmp format din 4 caractere careindică adresa de memorie a primului octet de date din înregistrarea pe linie şi un codde înregistrare format din 2 caractere (00 = înregistrare de date, 01 = end of file).

Urmează în continuare datele din memorie. Ne interesează numai primii 8octeţi de date, ceilalţi fiind indiferenţi. Datele introduse sunt în ordine: 20, 18, 3C, 02,0B, 00, 3C, 00: următorii 8 octeţi sunt 00, iar următorii 16 sunt FF.

:1000000020183C020B003C000000000000000000:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:00000001

Fig. 29. Conţinutul fişierului HEXFILE.HEX

Simularea s-a făcut prin editarea fişierului de stimuli şi de trasee cu ajutoruleditoarelor locale, iar rezultatele sunt date în figura 30.

Soluţia 5:

Rezultatul simulării funcţionării interfeţei implementate cu circuitulPAL16R4, este dat în figura 31.

Fig. 31. Simularea SPICE a funcţionării interfeţei (soluţia 5)

Page 34: Proiectarea sistemelor electronice

33

Page 35: Proiectarea sistemelor electronice

34

Structura interfeţei este memorată în aria combinaţională prin stareafuzibilelor. Fişierul care conţine această informaţie este un fişier în format JEDEC, unfişier ASCII care poate fi uşor editat. Figura 32 arată conţinutul acestui fişier pentruinterfaţa considerată.

�$DEVICEPAL16R4;

$PIN1=CLOCK;2=START;3=READY;4=T/R;5=CYEND;6=RESET;12=F/E;13=CYCLE;18=INACTIVE;19=ATTENTION;

$END*D1234*G0*QF2048*F0*L0000 11111111111111111111111111111111*L0032 11111111111111011111111111111111*L0064 11111111111111111110111111111111*L0256 11111111111111111111111111111111*L0288 11111111110111111111111111111111*

L0320 11111111111111101111111111111111*L0352 11111111111111111101111111111111*L0512 11111111111011101111111111111111*L0544 11111111111111011110111111111111*L0576 11111111101111011111111111111111*L0608 11111111111111110111111111111111*L0768 11111111111011101110111111111111*L0800 11111111111111011101111111111111*L0832 11111011111111111101111111111111*L0864 11111111110110101111111111111111*L0896 11111111111111110111111111111111*L1024 11111111110111101111111111111111*L1056 11111111111111011101111111111111*L1088 11110111111111111101111111111111*L1120 10111111111111101110111111111111*L1152 11111111111111110111111111111111*L1536 11111111111111111111111111111111*L1568 11111111111011111111111111111111*L1600 11111111111111011111111111111111*L1792 11111111111111111111111111111111*L1824 11111111111011111111111111111111*L1856 11111111111111101111111111111111*�

Fig. 32. Conţinutul fişierului PAL.JED

Fişierul începe cu caracterul 02H (start of text) şi se termină cu caracterul 03H(end of text). Fişierul este divizat în câmpuri. Fiecare câmp, cu excepţia primului(numit câmp de identificare), începe cu un identificator de câmp şi se termină cuasterisc (*). Identificatorul de câmp este un caracter alfabetic.

Câmpul de identificare începe imediat după caracterul 02H şi se terminăobligatoriu cu asterisc. Standardul recomandă ca acest câmp să conţină numelecircuitului, atribuirea pinilor, data, numărul de cod al proiectului, alte informaţii.

În continuare s-au folosit următorii identificatori: D, care este un identificatorpentru tipul circuitului (la noi 1234), G, fuzibilul de siguranţă, QF, numărul total defuzibile din circuit (la noi 2048) şi F, care reprezintă starea implicită a fuzibilelor (lanoi 0). L este un identificator pentru lista fuzibilelor. Numerotarea lor începe de sus înjos şi de la dreapta la stânga: rândul 0 şi coloana 0 este L0000, rândul 0 şi coloana 1este L0001, rândul 1 şi coloana 5 este L0037 etc. Această listă de fuzibile a fostgenerată manual pe baza ecuaţiilor interfeţei. Formele de undă obţinute prin simularearată că acest fişier poate fi folosit la programarea unui circuit real PAL16R4 care săimplementeze interfaţa dată prin tema de proiect.

Page 36: Proiectarea sistemelor electronice

35

6. ÎNCHEIERE

Cele 2 medii de simulare a structurilor numerice, SPICE şi ORCAD, sunt multmai complexe decât s-a arătat aici. Pentru sisteme de mare complexitate existăposibilitatea lucrului cu scheme ierarhice, adică o schemă reprezentată într-un fişier*.sch poate fi reprezentată printr-un bloc într-o altă schemă mai complexă (alt fişier*.sch). Semnalele de stimul au fost reprezentate numai ca simple semnale, deşi existăposibilitatea reprezentării lor ca magistrale (BUS) cu afişarea informaţiei în binar,octal, hexa. Există apoi posibilitatea editării componentelor utilizate în scheme, atât casimbol grafic, cât şi ca model de simulare.

O problemă de care trebuie să ţinem seamă într-un proiect este reprezentareaSTAS a dispozitivelor folosite (circuite integrate, tranzistoare, diode, rezistoare,condensatoare, conectori, notaţii etc.). Din păcate, cele mai multe biblioteci SPICEsau ORCAD păstrează standardul american de reprezentare MIL 806-STD, care nucorespunde cu recomandările actuale ICE. Acest neajuns este compensat de mediulORCAD care introduce bibliotecile IEEE?.LIB care corespund standardelor învigoare. Există bineînţeles şi posibilitatea editării unor simboluri standard.

Realizarea practică a circuitului presupune şi realizarea circuitului imprimat,care poate fi proiectată interactiv în ORCAD. Mediul SPICE nu are posibilitatea deproiectare a circuitului imprimat. Proiectarea circuitului imprimat nu este o cerinţăobligatorie la acest proiect.

Page 37: Proiectarea sistemelor electronice

Filename: PROIECT_.docDirectory: E:\Pagina Web\Pagina Web in lucru\assn course\projectsTemplate: C:\Program Files\Microsoft Office\Templates\Normal.dotTitle: CÂTEVA SFATURI PENTRUSubject:Author: Popa RustemKeywords:Comments:Creation Date: 12/27/03 7:06 PMChange Number: 50Last Saved On: 12/27/03 9:28 PMLast Saved By: PopaTotal Editing Time: 32 MinutesLast Printed On: 12/27/03 9:28 PMAs of Last Complete Printing

Number of Pages: 36Number of Words: 9,097 (approx.)Number of Characters: 47,309 (approx.)