Proiectarea Cu Circuite Logice Program a Bile

download Proiectarea Cu Circuite Logice Program a Bile

of 26

Transcript of Proiectarea Cu Circuite Logice Program a Bile

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    1/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 6 1

    PROIECTAREA CU CIRCUITE LOGICE PROGRAMABILE

    1. Scopul lucrrii

    Lucrarea prezint principalele tipuri de circuite programabile, etapele din cadrul procesului deproiectare utiliznd circuite logice programabile, structura sistemului CAD Xilinx WebPACKi unexemplu simplu de proiectare utiliznd acest sistem.

    2. Consideraii teoretice

    2.1. Circuite logice programabile

    Circuitele logice programabile, cunoscute i sub forma acronimului PLD (Programmable Lo-gic Device), sunt circuite integrate care conin un numr mare de pori sau celule a cror interconexi-une poate fi configurat sau programat pentru a implementa orice funcie combinaional sausecvenial dorit. Pentru programarea circuitelor PLD se utilizeaz dou tehnici: programarea prinmti, care se efectueaz n timpul procesului de fabricaie, sau programarea de ctre utilizator, pentrucare se utilizeaz echipamente de programare cu costuri reduse. Multe circuite PLD pot fireprogramate de utilizator de multe ori, motiv pentru care ele sunt avantajoase pentru realizarea pro-totipurilor unui nou produs.

    Conexiunile programabile ntre elementele logice ale unui circuit PLD conin comutatoare

    realizare de obicei cu tranzistoare sau antifuzibile (uneori fuzibile). Porile logice programabile aleunui circuit PLD pot fi reprezentate n mod simplificat ca n Figura 6.1( b). n locul unor linii de intra-re multiple la fiecare din aceste pori, ca n Figura 6.1(a), n reprezentarea simplificat s-a figurat osingur linie. Semnul indic o conexiune programabil a unei linii de intrare la o poart logic. Ab-sena semnului indic faptul c respectiva conexiune a fost programat n starea deconectat.

    Figura 6.1. Pori I, respectiv SAU: (a) reprezentare obinuit; (b) reprezentare simplificat pentru circuitelePLD.

    Exist mai multe tipuri de circuite care sunt denumite n mod generic circuite logice progra-mabile (PLD). Principalele tipuri sunt prezentate n continuare.

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    2/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 62

    2.1.1. Reele logice programabile

    O reea logic programabil PLA (Programmable Logic Array) este similar ca i concept cuo memorie ROM, cu excepia faptului c nu realizeaz decodificarea complet a variabilelori nu ge-nereaz toi mintermii. Decodificatorul este nlocuit cu o reea de pori I care poate fi programat

    pentru a genera termenii produs ai variabilelor de intrare. Termenii produs sunt apoi conectai n modselectiv cu pori SAU pentru a genera suma termenilor produs pentru funciile booleene necesare.Structura de baz a unui circuit PLA este prezentat n Figura 6.2.

    Figura 6.2. Structura general a unui circuit PLA.

    Un circuit PLA poate implementa n mod direct un set de funcii logice exprimate printr-untabel de adevr. Fiecare intrare pentru care valoarea funciei este adevrat necesit un termen produs,i acestuia i corespunde o linie de pori I din primul etaj al circuitului PLA. Fiecare ieire corespun-de la o linie de pori SAU din al doilea etaj al circuitului. Numrul de pori SAU corespunde cu num-rul de intrri din tabela de adevr pentru care ieirea este adevrat. Dimensiunea total a circuituluiPLA este egal cu suma dintre dimensiunea reelei de pori I i dimensiunea reelei de pori SAU.Din Figura 6.2 se observ c dimensiunea reelei de pori I este egal cu numrul de intrri multipli-cat cu numrul diferiilor termeni produs, iar dimensiunea reelei de pori SAU este egal cu numrulde ieiri multiplicat cu numrul termenilor produs.

    Pentru proiectarea unui sistem digital cu un circuit PLA, nu este necesar s se indice conexiu-nile interne ale circuitului, ci trebuie s se specifice doar tabela de programare. Circuitele PLA pot fi

    programate prin mti (n timpul fabricaiei) sau pot fi programate de ctre utilizator. Circuitele PLAprogramate de ctre utilizator se numesc FPLA (Field Programmable Logic Array).

    Figura 6.3.Structura general a unui circuit PAL.

    O alt categorie de reele logice programabile sunt circuitele PAL (Programmable Array Lo-gic), care conin o reea de pori I programabil, dar reeaua de pori SAU are conexiuni fixe (Figura6.3). Fiecare linie de ieire este conectat la un set fix de linii ale reelei de pori I. O asemenea ieire

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    3/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 6 3

    a circuitului PAL poate implementa o expresie pe dou nivele coninnd cel mult opt termeni. Avan-tajele circuitelor PAL sunt simplitatea utilizrii n anumite aplicaii i viteza mai ridicat. Aceste cir-cuite sunt ns mai puin flexibile dect circuitele PLA.

    Existi circuite PLA sau PAL care conin bistabile ataate prin conexiuni programabile laieirile reelei de pori SAU, ceea ce permite implementarea unor circuite secveniale de dimensiuni

    medii. Aceste circuite sunt cunoscute i cu denumirea de circuite logice programabile simple (SPLD -Simple Programmable Logic Device).

    2.1.2. Circuite CPLD

    Circuitele logice programabile complexe (CPLD - Complex Programmable Logic Device)sunt circuite PLD avnd o densitate mai ridicat. Ele conin un numr de blocuri funcionale, asem-ntoare unor circuite PLD, fiecare bloc fiind compus din mai multe macrocelule (Figura 6.4). Existde asemenea o matrice de rutare pentru interconectarea blocurilor. Funciile logice simple pot fi im-

    plementate n cadrul uni singur bloc. Funciile mai complexe pot necesita mai multe blocuri, care vorfi interconectate prin matricea de rutare.

    Figura 6.4.Structura general a unui circuit CPLD.

    2.1.3. Circuite FPGA

    Circuitele FPGA (Field Programmable Gate Array) au fost introduse n anul 1985 de compa-nia Xilinx. De atunci au fost elaborate diferite tipuri de circuite FPGA de un numr de alte companii

    ca Actel, Altera, Atmel, Texas Instruments etc. Un circuit FPGA const dintr-o reea bidimensionalde celule sau blocuri logice. De obicei, fiecare bloc logic poate fi programat pentru a implementa ori-ce funcie logic a intrrilor sale. De aceea, aceste blocuri sunt numite de obicei blocuri logice confi-gurabile (Configurable Logic Block- CLB). Cele mai multe blocuri logice conin de asemenea unulsau dou bistabile. Canalele i blocurile de comutare dintre aceste blocuri conin resurse de interco-nectare, dup cum se ilustreaz n Figura 6.5. Aceste resurse conin de obicei segmente de interco-nectare de diferite lungimi. Interconexiunile conin comutatoare programabile cu rolul de a conecta

    blocurile logice la segmentele de interconectare, sau un segment de interconectare la altul. n plus,exist celule de I/E la periferia reelei, care pot fi programate ca intrri sau ieiri.

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    4/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 64

    Figura 6.5. Structura unui circuit FPGA tipic.

    Din punctul de vedere al tipului conexiunilor programabile, exist dou categorii principalede circuite FPGA: circuite cu memorii SRAM i circuite cu antifuzibile.

    Circuite cu memorii SRAM. Programarea acestor circuite se realizeaz prin celule de me-morie static. Logica este implementat cu ajutorul unor tabele (lookup table) realizate din celulele dememorie, intrrile funciilor controlnd liniile de adres. Fiecare tabel de 2n celule de memorie im-

    plementeaz orice funcie cu n intrri. Una sau mai multe tabele, combinate cu bistabile, formeaz unbloc logic configurabil. Aceste blocuri sunt aranjate ntr-un tablou bidimensional, segmentele de in-terconectare formnd canale, similar cu reelele de pori. Segmentele se conecteaz la pinii blocurilelogice din canale i la alte segmente din blocurile de comutare prin intermediul tranzistoarelor de tre-cere controlate de celule ale memoriei de configurare.

    O secven de configurare pentru circuitele cu memorii SRAM const dintr-un singur cuvntlung de programare. Logica din circuit ncarc cuvntul de programare, pe care l citete serial dintr-omemorie extern de fiecare dat cnd circuitul este alimentat. Biii acestui cuvnt seteaz valorile tu-turor celulelor memoriei de configurare din circuit, setnd astfel valorile tabelelor i selectnd seg-mentele care se vor conecta ntre ele. Circuitele cu memorii SRAM sunt reprogramabile. Ele pot fiactualizate n sistem, punnd la dispoziia proiectanilor noi opiuni i posibiliti de proiectare.

    Din aceast categorie de circuite FPGA fac parte cele ale firmelor Xilinx, Altera, AT&T.Circuite cu antifuzibile. Un antifuzibil este un dispozitiv cu dou terminale care n mod

    normal se afl n starea de nalt impedan, iar atunci cnd este expus la o tensiune ridicat, trece nstarea cu rezisten redus (300-500 ). Antifuzibilele au dimensiuni reduse, astfel nct o arhitectur

    bazat pe antifuzibile poate conine sute de mii sau milioane de antifuzibile. Pentru simplificarea

    arhitecturii i a programrii, circuitele FPGA bazate pe antifuzibile constau de obicei din rnduri deelemente logice configurabile cu canale de interconectare ntre ele, ca i reelele de pori tradiionale.Un bloc logic poate fi programat prin conectarea pinilor si de intrare la valori fixe sau la reele deinterconectare. Exist antifuzibile la fiecare punct de intersecie ntre interconexiuni i pini din canali la toate punctele de intersecie ntre interconexiuni n locurile n care canalele se intersecteaz.

    Din categoria circuitelor FPGA cu antifuzibile fac parte circuitele firmelor Actel, Quicklogic,Cypress.

    2.2. Procesul de proiectare cu circuite programabile

    2.2.1. Fluxul de proiectare

    Pentru proiectarea sistemelor digitale utiliznd circuite programabile, cum sunt circuiteleFPGA i CPLD, se utilizeaz pachete de programe de proiectare asistat de calculator (CAD Com-

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    5/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 6 5

    puter Aided Design). Aceste pachete de programe asist proiectantul n toate etapele procesului de proiectare. Astfel, majoritatea pachetelor CAD pentru circuitele programabile asigur urmtoarelefuncii principale:

    Specificarea (descrierea) sistemului digital;

    Sinteza descrierii, deci transformarea acesteia ntr-o list de conexiuni coninnd pori ele-mentare i interconexiunile dintre ele;

    Simularea funcionrii sistemului pe baza listei de conexiuni obinute, nainte de implementa-rea ntr-un anumit circuit;

    Implementarea sistemului ntr-un circuit prin adaptarea listei de conexiuni pentru a se utilizan mod eficient resursele disponibile ale circuitului;

    Configurarea (programarea) circuitului pentru ca acesta s realizeze funcia dorit.

    Figura 6.6 ilustreaz etapele din cadrul procesului de proiectare a sistemelor digitale utilizndcircuite programabile.

    Figura 6.6. Fluxul de proiectare a sistemelor digitale utiliznd circuite programabile.

    n continuare sunt descrise mai detaliat principalele etape de proiectare.

    2.2.1.1. Descrierea sistemului

    Exist mai multe metode pentru descrierea sistemelor digitale. n figura 6.6 sunt indicate principalele metode: prin scheme logice, prin limbaje de descriere hardware (HDL HardwareDescription Language) i prin diagrame de stare.

    n mod tradiional, sistemele digitale sunt descrise prin scheme logice. Pentru aceasta se utili-zeaz un editor schematic, care permite specificarea componentelor care trebuie utilizate i a moduluin care acestea trebuie interconectate. Aceast metod este cea care va fi utilizat n primul rnd n

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    6/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 66

    lucrrile urmtoare i este ilustrat n Figura 6.7. Circuitul din aceast figur detecteaz secvena bi-nar 1010 aplicat la intrarea X. La detectarea acestei secvene, ieirea Z va fi setat la 1 logic.

    Figura 6.7. Etapele descrierii unui sistem digital utiliznd scheme: (1) Selectarea i amplasarea componentelor;(2) Conectarea componentelor; (3) Adugarea porturilor de I/E.

    Exist urmtoarele etape principale la utilizarea schemelor logice pentru proiectarea unui sis-tem digital:

    1. n cadrul unui editor schematic se selecteaz componentele necesare dintr-o bibliotec decomponente. Asemenea componente pot fi, de exemplu, pori elementare, multiplexoare,decodificatoare, numrtoare, circuite aritmetice etc. n funcie de circuitul care va utilizat,

    proiectantul trebuie s selecteze o anumit bibliotec de componente, deoarece exist biblio-

    teci care sunt specifice diferiilor productori de circuite programabile i diferitelor familii decircuite. Circuitele dintr-o anumit familie difer prin capacitatea lor, viteza i capsula utili-zat. n aceast etap, nu este ns necesar specificarea exact a circuitului care va utilizatdintr-o anumit familie.

    2. Componentele selectate i plasate n cadrul schemei sunt interconectate prin fire de legtur.Proiectantul realizeaz interconectarea componentelor pentru a obine configuraia necesar

    pentru o anumit aplicaie.

    3. Se adaugi se eticheteaz porturile de I/E. Aceste porturi definesc intrrile i ieirile siste-mului, permind aplicarea semnalelor la pinii de intrare ai sistemului digital i preluareasemnalelor de ieire generate de sistem la pinii de ieire. Semnalele de intrare sunt aplicate laintrrile sistemului digital prin intermediul unor buffere de intrare, iar semnalele de ieire sunt

    preluate de la sistemul digital prin intermediul unor buffere de ieire. Aceste buffere izoleaz

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    7/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 6 7

    sistemul digital fa de exterior. n unele cazuri, bufferele de I/E sunt adugate n mod auto-mat de sistemul CAD.

    Pe lng schemele logice, o alt posibilitate pentru descrierea sistemelor digitale este cu aju-torul limbajelor de descriere hardware. Aceste limbaje sunt din ce n ce mai utilizate, fiind preferate

    pentru descrierea sistemelor cu complexitate mai ridicat, datorit urmtoarelor avantaje principale:

    Posibilitatea descrierii funcionale a sistemelor, aceasta fiind o descriere la un nivel mai nalt,fr detalierea structurii la nivelul componentelor simple sau a porilor elementare. Astfel,timpul necesar pentru descrierea sistemelor complexe se reduce n mod semnificativ.

    Independena descrierilor HDL fa de diferitele tipuri de circuite. n timp ce schemele logicesunt realizate cu componente de bibliotec specifice unei anumite familii de circuite, descrie-rile HDL sunt complet independente de un anumit circuit, astfel nct aceeai descriere se

    poate utiliza pentru implementarea sistemului ntr-un anumit circuit FPGA, dari ntr-un alttip de circuit programabil, de exemplu, ntr-o reea logic programabil.

    Posibilitatea modificrii mai simple a descrierii HDL a unui sistem, datorit faptului c oasemenea descriere reprezint n acelai timp o documentare a sistemului.

    Figura 6.8. Descrierea n limbajul VHDL a circuitului din Figura 6.7.

    Exist diferite limbaje de descriere hardware, dar mai utilizat este limbajul VHDL (VHSICHardware Description Language), VHSIC fiind acronimul pentru Very High Speed Integrated Circu-it. Pe lng acest limbaj, pentru proiectarea cu circuite FPGA se mai utilizeaz limbajul Verilog. Pen-tru proiectarea cu circuite CPLD, un limbaj utilizat n mod frecvent este ABEL (Advanced Boolean

    Expression Language). Limbajele VHDL i Verilog sunt standardizate de institutul IEEE. Figura 6.8prezint o descriere posibil n limbajul VHDL a circuitului ilustrat n Figura 6.7.

    Pentru descrierea automatelor cu stri finite se utilizeaz pe scar larg diagramele de stare.Sistemele CAD pentru proiectarea cu circuite programabile conin de obicei editoare pentru diagra-mele de stare, care permit specificarea sub form grafic a strilor sistemului, a tranziiilor ntre strii a semnalelor de ieire care trebuie generate n fiecare stare. O diagram de stare va fi compilat de

    ctre sistemul CAD ntr-o reprezentare intern sau ntr-o descriere HDL, care poate fi simulati uti-lizat apoi pentru implementarea automatului ntr-un anumit circuit. n Figura 6.9 se prezint o dia-

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    8/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 68

    gram de stare echivalent cu circuitul ilustrat n Figura 6.7 i descrierea n limbajul VHDL din Figu-ra 6.8.

    Figura 6.9. Diagrama de stare echivalent cu circuitul reprezentat prin schema din Figura 6.7 i descrierea nlimbajul VHDL din Figura 6.8.

    2.2.1.2. Sinteza sistemului

    Dup descrierea sistemului digital, etapa urmtoare din cadrul procesului de proiectare estecea de sintez a sistemului. Sinteza const n translatarea schemei logice, a descrierii HDL sau a dia-

    gramei de stare ntr-o listde conexiuni. Aceast translatare se realizeaz cu ajutorul unui program desintez din cadrul sistemului CAD. Lista de conexiuni (netlist) este o descriere compact a siste-mului digital sub form textual, n care sunt specificate componentele sistemului, interconexiuniledintre acestea i pinii de intrare/ieire. Aceast list este prelucrat de celelalte componente ale siste-mului CAD pentru realizarea etapelor urmtoare din cadrul procesului de proiectare.

    Exist diferite formate pentru listele de conexiuni, cel mai utilizat fiind formatul EDIF (Elec-tronic Digital Interchange Format), acesta reprezentnd un standard industrial. Pe lng acest formatstandard, se pot utiliza diferite formate care sunt specifice anumitor productori de circuite. Un exem-

    plu este formatul XNF ( Xilinx Netlist Format), care este formatul propriu al firmei Xilinx, cel maiimportant productor de circuite programabile de tip FPGA i CPLD. O alt posibilitate este utilizareaunui limbaj de descriere hardware ca format pentru lista de conexiuni. De exemplu, sistemul CAD

    poate utiliza o reprezentare structural a sistemului proiectat ntr-un limbaj de descriere hardware

    specificat de proiectant.Relaia dintre schema logic a unui circuit simplu i un format posibil al unei liste de conexi-

    uni este ilustrat n Figura 6.10. n prima parte a listei de conexiuni sunt declarate componentele dincadrul schemei, iar n a doua parte sunt specificate conexiunile dintre componente. Denumirile com-

    ponentelor sunt G1..G7, iar denumirile conexiunilor sunt N1..N10. Aceste denumiri sunt fie cele spe-cificate de proiectant, fie cele asignate n mod automat de sistemul CAD.

    n circuitul ilustrat n Figura 6.10 exist dou inversoare (G1 i G2), dou pori I cu douintrri (G3 i G4), o poartI cu patru intrri (G7) i dou bistabile JK (G5 i G6). Inversoarele au un

    pin de intrare IN, un pin de ieire OUT, un pin de alimentare Vcc i un pin de mas GND. Similar,porile I cu dou intrri au doi pini de intrare IN1 i IN2, un pin de ieire OUT, un pin de alimentarei un pin de mas. Bistabilele au doi pini pentru intrrile de date J i K, un pin pentru intrarea de ceas

    C i un pin pentru ieirea Q, pe lng pinii de alimentare i mas. Pentru simplitate, pinii i semnalelede alimentare i mas au fost omii n aceast figur. O conexiune este indicat prin listarea tuturorpinilor care sunt conectai mpreun. Semnalele de intrareXi CLKsunt conectate la pinii de intrarecu aceleai nume ai circuitului, iar semnalul de ieireZeste conectat la pinul de ieire al circuitului.

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    9/26

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    10/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 610

    Figura 6.11. Semnalele de intrare i de ieire ale circuitului din Figura 6.7 vizualizate la simularea funcional acircuitului.

    2.2.1.4. Maparea tehnologic

    Etapele urmtoare din cadrul procesului de sintez realizeaz implementarea sistemului pro-iectat ntr-un circuit programabil (FPGA sau CPLD). Prima etap din cadrul implementrii este cea demapare tehnologic. Aceast etap const dintr-o serie de operaii care realizeaz prelucrarea listei de

    conexiuni i adaptarea acesteia la particularitile i resursele disponibile ale circuitului utilizat pentruimplementare. Operaiile executate n aceast etap difer n funcie de sistemul de proiectare. Celemai obinuite operaii sunt: adaptarea la elementele fizice ale circuitului, optimizarea i verificarearegulilor de proiectare (de exemplu, testarea depirii numrului pinilor de I/E disponibili n cadrulcircuitului). n timpul acesteia etape, proiectantul selecteaz tipul circuitului programabil care va fiutilizat, capsula circuitului integrat, viteza i alte opiuni specifice circuitului respectiv.

    n urma execuiei operaiilor din etapa de mapare tehnologic se genereaz un raport detaliatal rezultatelor tuturor programelor executate. Pe lng mesaje de eroare i de avertizare, se creaz deobicei o list cu resursele utilizate din cadrul circuitului.

    Figura 6.12 ilustreaz etapa de mapare tehnologic pentru circuitul utilizat ca exemplu. Dupcum se observ, schema circuitului a fost modificat pentru a utiliza bistabile D n locul bistabilelorJK, iar porile I au fost nlocuite cu pori I-NU. Se menioneaz c aceste transformri sunt efectu-

    ate asupra listei de conexiuni care s-a obinut n urma etapei de sintez, schema din Figura 6.12 fiinddoar ilustrativ.

    Figura 6.12. Ilustrarea etapei de mapare tehnologic pentru circuitul din Figura 6.7.

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    11/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 6 11

    2.2.1.5. Plasarea i rutarea

    Aceste operaii sunt executate n cazul utilizrii unui circuit FPGA pentru implementare.Pentru proiectarea cu circuite CPLD, operaia echivalent este numit adaptare (fitting). Plasareaeste procesul de selectare a unor module sau blocuri logice ale circuitului programabil care vor fi uti-

    lizate pentru implementarea diferitelor funcii ale sistemului digital.Rutarea const n interconectareaacestor blocuri logice utiliznd resursele de rutare disponibile ale circuitului.Majoritatea sistemelor CAD realizeaz operaiile de plasare i rutare n mod automat, astfel

    nct utilizatorul nu trebuie s cunoasc detaliile arhitecturii circuitului utilizat pentru implementare.Anumite sisteme permit utilizatorilor experi plasarea i rutarea manual a unor poriuni critice alesistemului digital pentru a obine performane superioare.

    Figura 6.13 ilustreaz plasarea i rutarea circuitului rezultat n urma maprii tehnologice acircuitului utilizat ca exemplu. Dup selectarea blocurilor logice care vor fi utilizate pentru imple-mentarea circuitului, acestea se configureaz pentru implementarea unor poriuni ale schemei. Pentruinterconectarea semnalelor generate de diferitele blocuri logice se utilizeaz resursele de rutare dispo-nibile. Aceste resurse sunt indicate n figur prin linii orizontale i verticale. Intrrile i ieirile utili-zate ale blocurilor logice se conecteaz la liniile de rutare prin puncte de conexiune programabile

    (indicate n figur prin cercuri), iar liniile de rutare sunt interconectate cu ajutorul unor comutatoareprogramabile.

    Figura 6.13. Ilustrarea etapelor de plasare i rutare pentru circuitul din Figura 6.12.

    Operaiile de plasare i rutare pot necesita un timp ridicat pentru execuie n cazul sistemelordigitale complexe, deoarece sunt necesare operaii complexe pentru determinarea i configurarea blo-curilor logice necesare din cadrul circuitului programabil, interconectarea corect a acestora i verifi-carea faptului c sunt asigurate cerinele de performan specificate n timpul proiectrii.

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    12/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 612

    2.2.1.6. Analiza de timp

    Pachetele de programe CAD pentru proiectarea sistemelor digitale conin de obicei un pro-gram numit analizor de timp, care poate furniza informaii despre ntrzierile semnalelor. Aceste in-formaii se refer att la ntrzierile introduse de blocurile logice, ct i la ntrzierile datorate

    interconexiunilor. Analizorul poate afia aceste informaii n diferite moduri, de exemplu, prin ordo-narea conexiunilor n ordinea descresctoare a ntrzierilor semnalelor. Proiectantul poate utiliza in-formaiile despre ntrzierile semnalelor pentru a realiza o nou simulare a sistemului, n care s sein cont de aceste ntrzieri. Aceast operaie prin care se furnizeaz simulatorului informaii detali-ate despre ntrzierile semnalelor se numete adnotare invers (back-annotation).

    2.2.1.7. Configurarea sau programarea circuitului

    Operaia de configurare se refer la circuitele programabile bazate pe memorii volatile SRAM(Static Random Access Memory) i const din ncrcarea informaiilor de configurare n memoria cir-cuitului. Operaia de programare se refer la circuitele programabile bazate pe memorii nevolatile(cum sunt circuitele care conin antifuzibile). Aceast operaie se execut similar cu cea de configura-

    re, dar informaiile de configurare sunt pstrate i dup ntreruperea tensiunii de alimentare.La sfritul operaiilor de plasare i rutare, se genereaz un fiier care conine toate informa-

    iile necesare pentru configurarea circuitului. Aceste informaii se refer att la configurarea blocuri-lor logice ale circuitului, ct i la specificarea interconexiunilor dintre blocurile logice. Fiierul n carese nscriu aceste informaii conine, n principiu, un ir de bii (bitstream), fiecare bit indicnd sta-rea nchis sau deschis a unui comutator. Circuitele programabile conin un numr mare de asemeneacomutatoare, un comutator fiind realizat sub forma unui tranzistor sau a unei celule de memorie. Un

    bit de 1 din irul de bii va determina nchiderea unui comutator i, deci, stabilirea unei conexiuni.Biii din acest fiier de configurare sunt aranjai ntr-un anumit format pentru a realiza o corespon-den ntre un bit i comutatorul corespunztor.

    Coninutul fiierului de configurare se transfer la circuitul programabil, aflat de obicei pe oplac de circuit imprimat mpreun cu alte circuite. Comutatoarele circuitului se nchid sau rmndeschise n funcie de valorile biilor din irul de configurare. Dup terminarea configurrii, circuitulva funciona conform descrierii sistemului digital care a fost implementat.

    Din cauza memoriei volatile, circuitul trebuie configurat din nou dup fiecare ntrerupere atensiunii de alimentare. Informaiile de configurare pot fi pstrate ntr-o memorie nevolatil PROM( Programmable Read Only Memory), existnd posibilitatea configurrii automate a circuitului dinaceast memorie nevolatil la aplicarea tensiunii de alimentare.

    Configurarea sau programarea se pot realiza utiliznd interfaa paralel a calculatorului. Pen-tru aceasta, este necesar ca placa cu circuitul programabil s conin un conector pentru interfaa pa-ralel, pentru transfer utilizndu-se un cablu paralel. Figura 6.14 ilustreaz un cablu paralel obinuit,care conine conectori cu 25 de contacte DB25.

    Figura 6.14. Cablu paralel care poate fi utilizat pentru configurarea circuitelor programabile.

    O alt posibilitate este utilizarea unui cablu special i a unei metodologii de configurare pro-puse de organizaia JTAG ( Joint Test Advisory Group). Aceast metodologie, cunoscut i sub nu-mele de Boundary-Scan, a fost standardizat de institutele IEEE ( Institute of Electrical and

    Electronic Engineers) i ANSI (American National Standards Institute) ca standardul 1149.1, repre-

    zentnd un set de reguli de proiectare care faciliteaz configurarea sau programarea circuitelor, testa-rea i depanarea acestora. Un capt al cablului JTAG se conecteaz la interfaa paralel a

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    13/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 6 13

    calculatorului, iar cellalt capt se conecteaz la un numr de 5 pini speciali de pe placa circuituluiprogramabil. Informaiile de configurare sunt preluate n paralel de la calculator i sunt transferateserial (bit cu bit) la circuitul programabil. Un asemenea cablu permite i testarea sistemului digitalimplementat prin citirea unor informaii (valori ale semnalelor sau coninutul unor locaii de memorie)de la circuitul programabil n timpul funcionrii, transferul acestora la calculatori vizualizarea lor

    pe ecran.Figura 6.15 ilustreaz un cablu JTAG al firmei Xilinx (Parallel Cable IV). Exist mai multevariante de cabluri JTAG produse de aceast firm. Cablul MultiLINXpoate fi conectat fie la interfaaserial RS232 a calculatorului, fie la interfaa USB, prin intermediul unui cablu serial sau al unui ca-

    blu USB. Dispozitivul MultiPRO poate fi utilizat att ca i cablu de configurare, ct i ca programatorpentru memorii PROM i circuite CPLD CoolRunner II cu ajutorul unor adaptoare. Cablurile ParallelCable III i Parallel Cable IV se conecteaz la interfaa paralel a calculatorului. Cablul ParallelCable IV permite o rat de transfer superioar comparativ cu cablulParallel Cable III (de pn la 5MB/s fa de 500 KB/s).

    Figura 6.15. Cablul paralel JTAGParallel Cable IV al firmei Xilinx.

    Figura 6.16 ilustreaz conectarea unui cablu JTAG n modul JTAG (sau Boundary-Scan) laun sistem de dezvoltare coninnd unul sau mai multe circuite programabile. Firele de legtur se co-necteaz cu un capt la pinii JTAG ai cablului, iar cu cellalt capt la pinii JTAG corespunztori ai

    plcii de dezvoltare. Un asemenea cablu poate fi utilizat fie pentru configurarea unui singur circuit programabil, fie a mai multor circuite conectate ntr-un lan Boundary-Scan. De menionat c un

    cablu JTAG poate fi utilizat de obicei i pentru configurarea circuitelor n alte moduri dect modulJTAG, cum sunt modurile Slave Serial sau Slave Parallel.

    Figura 6.16. Conectarea unui cablu JTAG la un sistem de dezvoltare n modul Boundary-Scan.

    Tabelul 6.1 indic denumirea i semnificaia semnalelor JTAG care sunt utilizate pentru con-figurarea circuitelor programabile.

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    14/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 614

    Tabelul 6.1. Denumirea i semnificaia semnalelor JTAG utilizate pentru configurarea circuitelor.

    Denumire Semnificaie

    VCC Alimentare - Tensiunea de alimentare (5 V, 3,3 V sau 2,5 V)

    GND Mas - Referina pentru masa electric

    TCK Test Clock- Semnal de ceas pentru circuitele programabile

    TDO Test Data Out- Semnal pentru citirea datelor de la circuitele programabile

    TDI Test Data In - Semnal pentru transmiterea instruciunilori datelor la circuitele progra-mabile

    TMS Test Mode Select- Semnal decodificat de controlerul JTAG pentru controlul operaiilor

    2.2.1.8. Depanarea sistemului

    n aceast ultim etap a procesului de proiectare se verific funcionarea sistemului digitalproiectat n condiii reale. O funcionare necorespunztoare se poate datora nerespectrii specificaii-lor de proiectare, a specificaiilor circuitului utilizat pentru implementare, a unor aspecte legate dentrzierea semnalelor etc. Depanarea poate fi simplificat dac circuitul se configureaz astfel nct

    s conin unele module speciale care permit citirea valorii unor semnale n timpul funcionrii itransferul acestor informaii la calculator, utiliznd un cablu JTAG i un program special pentru vizu-alizarea semnalelor dorite.

    2.3. Sistemul de proiectare Xilinx WebPACK ISE

    Pachetul de programe WebPACK ISE al firmei Xilinx reprezint un mediu integrat pentru proiectarea sistemelor digitale utiliznd circuite FPGA sau CPLD produse de aceast firm. Acestpachet conine un subset al sistemului de proiectare Xilinx Foundation ISE. Pentru descrierea siste-melor digitale, proiectantul poate utiliza scheme, limbaje de descriere (VHDL sau Verilog pentru cir-cuitele FPGA, ABEL pentru circuitele CPLD), sau diagrame de stare. Este posibil utilizarea

    combinat a acestor metode pentru descrierea diferitelor componente ale aceluiai sistem digital.Pachetul de programe WebPACK este disponibil gratuit de pe paginile Web ale firmei Xilinx.Pentru transferul pachetului este necesar nregistrarea prealabil la adresa:

    http://www.xilinx.com/xlnx/xil_entry2.jsp?sMode=login&group=webpack

    Se alege un identificator i o parol, dup care va fi permis accesul la pagina de pe care se poatetransfera pachetul, adresa acestei pagini fiind:

    http://www.xilinx.com/webpack/index.html

    Pentru simularea descrierilor, sistemul WebPACK conine o versiune a simulatoruluiModelSim al firmei Model Technology (http://www.model.com), denumit MXE (ModelSim Xilinx

    Edition). Acest simulator permite simularea funcional a descrierilor nainte de sintez, sau simularea

    dup procesul de implementare pentru verificarea ntrzierii semnalelor. Sistemul WebPACK con inede asemenea o interfa grafic pentru specificarea unor vectori de test. Pe baza acestora se genereazun banc de test sub forma unui fiier HDL, care va fi compilat mpreun cu descrierea sistemului di-gital pentru simularea funcionrii acestuia.

    Sistemul WebPACK permite utilizarea urmtoarelor tipuri de circuite FPGA i CPLD Xilinx:

    Circuite FPGA din familia Spartan: Spartan-2, Spartan-2E; Circuite FPGA din familia Virtex: Virtex, Virtex-E, Virtex-2, Virtex-2 Pro; Circuite CPLD din familia XC9500: XC9500, XC9500XL, XC9500XV; Circuite CPLD din familia CoolRunner: CoolRunner, CoolRunner-2.

    http://www.xilinx.com/xlnx/xil_entry2.jsp?sMode=login&group=webpackhttp://www.xilinx.com/webpack/index.htmlhttp://www.model.com/http://www.model.com/http://www.model.com/http://www.xilinx.com/webpack/index.htmlhttp://www.xilinx.com/xlnx/xil_entry2.jsp?sMode=login&group=webpack
  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    15/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 6 15

    2.3.1. Structura sistemului WebPACK

    Figura 6.17 prezint principalele module software ale sistemului de proiectare WebPACK.

    Figura 6.17. Structura sistemului de proiectare Xilinx WebPACK.

    2.3.2. Prezentarea modulelor

    Pentru proiectarea unui sistem digital cu ajutorul pachetului WebPACK, trebuie s se creezemai nti un proiect. Acestuia i se asociaz un fiier care va conine informaiile principale despre

    sistemul proiectat: fiierele care conin descrierea sistemului digital, tipul circuitului care va fi utilizat pentru implementare etc. Toate fiierele care conin descrierea sistemului digital i cele care vor figenerate n diferitele etape ale procesului de proiectare se pstreaz ntr-un director separat pe disc.

    2.3.2.1. Interfaa graficProject Navigator

    Programele care compun sistemul de proiectare WebPACK pot fi lansate din fereastra uneiinterfee grafice, numit Project Navigator, care coordoneaz procesele i fiierele asociate cu unanumit proiect. Acest navigator vizualizeaz fiierele de intrare ale proiectului, fiierele intermedia-re sau de ieire generate pe parcursul etapelor de proiectare, procesele care pot fi executate asupradiferitelor fiiere i mesajele generate de programele executate.

    Ecranul interfeei grafice Project Navigatoreste mprit n patru ferestre principale, dup

    cum se ilustreaz n Figura 6.18. n fereastra fiierelor surs se afieaz toate fiierele surs care aufost incluse n proiectul curent. Prin execuia unui clic dublu pe numele unui fiier din aceast fereas-

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    16/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 616

    tr se va deschide fiierul respectiv de ctre modulul CAD corespunztor.Fereastra proceselorindictoate procesele care sunt disponibile pentru un anumit tip de fiier surs. Execuia unui clic dublu penumele unui proces va lansa n execuie procesul respectiv.Fereastra editorului HDL afieaz coni-nutul fiierului surs selectat, coninnd descrierea unei componente digitale ntr-un limbaj de descri-ere hardware. Coninutul fiierului poate fi editat n aceast fereastr. nfereastra consolei se afieaz

    toate mesajele care indic starea execuiei unui proces, inclusiv mesajele de avertisment sau de eroarecare sunt generate n urma execuiei.Pe lng aceste ferestre principale, interfaaProject Navigatorpoate deschide i alte ferestre

    necesare pentru unele aplicaii.

    Figura 6.18. Ecranul principal al interfeei graficeProject Navigator.

    2.3.2.2. Modulele pentru descrierea sistemului

    Modulele pentru descrierea sistemului digital cuprind editorul schematic ECS (EngineeringCapture System), editorul HDL pentru limbaje de descriere hardware i editorul pentru diagrame destare StateCAD. Editorul schematic utilizeaz un modul care conine primitivele de bibliotec pentrucircuitele FPGA i CPLD care pot fi utilizate pentru implementarea sistemului digital. Editorul HDL

    permite editarea fiierelor surs care conin descrierea sistemului digital n limbajul VHDL sauVerilog. Editorul StateCAD permite descrierea unor automate cu stri finite utiliznd diagrame destare. Utilizatorul poate desena strile automatului, tranziiile ntre stri i poate specifica semnalelede ieire care trebuie generate n fiecare stare.

    Sistemul digital poate fi descris utiliznd mai multe metode, de exemplu, prin scheme i lim-baje de descriere hardware. Schemele i diagramele de stare vor fi compilate n descrieri HDL carepot fi simulate pentru verificarea funcional a sistemului proiectat. Aceste descrieri vor fi utilizate nurmtoarele etape de proiectare.

    2.3.2.3. Modulul HDL Bencher

    Modulul HDL Bencher permite testarea mai simpl a sistemului digital. Cu ajutorul acestui

    modul, utilizatorul poate introduce semnalele de intrare sub form grafic, ca diagrame de timp. Pebaza acestor semnale se va genera un banc de test (testbench) sub forma unei descrieri HDL, descri-

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    17/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 6 17

    ere care poate fi utilizat pentru simularea funcionrii sistemului digital. Utilizatorul poate specificai rezultatele ateptate ale simulrii, ceea ce permite simulatorului s afieze mesaje de avertismentdac rezultatele obinute prin simulare nu coincid cu cele ateptate.

    2.3.2.4. Simulatoarele MXE i StateBench

    Simulatorul ModelSim Xilinx Edition (MXE) permite att o simulare funcional a sistemuluidigital proiectat, ct i o simulare care ine cont de ntrzierile semnalelor. Acest simulator utilizeaz

    biblioteci pentru circuitele programabile care pot fi utilizate pentru implementare, aceste bibliotecifiind precompilate. Descrierea sistemului digital care trebuie testat i bancul de test generat pe bazavectorilor de test sunt compilate, rezultatul compilrii fiind utilizat pentru simularea sistemului.

    Simularea funcional a sistemului digital este executat nainte de etapa de sintez. Dupimplementarea ntr-un circuit programabil se poate realiza o simulare temporal, adugnd informai-ile despre ntrzierile introduse de ctre blocurile logice i cele datorate interconexiunilor.

    Pentru simularea funcionrii automatelor de stare descrise cu ajutorul editorului StateCAD sepoate utiliza simulatorul StateBench. Acest simulator permite i crearea unor bancuri de test, fie nmod interactiv, fie n mod automat. Dup crearea unui banc de test, se poate simula funcionarea au-

    tomatului utiliznd bancul de test creat.

    2.3.2.5. Modulele pentru sintez

    Aceste module realizeaz sinteza descrierii sistemului digital, genernd o reprezentare interna sistemului sub forma unei liste de conexiuni. Rezultatele sintezei sunt controlate prin specificareadiferitelor proprieti (opiuni). Una din proprietile specificate n mod obinuit este cea care indicmodul n care se dorete optimizarea rezultatelor sintezei, din punct de vedere al resurselor utilizatesau al vitezei de funcionare. O alt proprietate este cea care indic efortul de optimizare, afectndtimpul care va fi necesar pentru execuia procesului de sintez.

    Modulul de sintez care este integrat n cadrul sistemului WebPACK este XST (XilinxSynthesis Technology). Pe lng acest modul, se pot utiliza urmtoarele module de sintez pentru careexist interfee integrate n cadrul sistemului: FPGA Express (Synopsys, Inc.), Synplify/Synplify Pro(Synplicity, Inc.) sauLeonardoSpectrum (Exemplar Logic, Inc.). Aceste module nu fac parte ns dinsistemul WebPACKi trebuie instalate separat.

    2.3.2.6. Modulele pentru implementare

    O parte din modulele utilizate pentru implementarea sistemului digital sunt diferite n funciede tipul circuitului programabil utilizat: CPLD sau FPGA. Pentru ambele tipuri de circuite, prima eta-

    p de implementare este cea de translatare. n aceast etap se ruleaz programul NGDBuild, careprelucreaz lista de conexiuni obinut n etapa de sintez (sau listele de conexiuni n cazul n caredescrierea sistemului digital este coninut n mai multe fiiere surs). Aceste liste de conexiuni, care

    pot fi n format XNF sau EDIF, sunt convertite n formatul XilinxNative Generic Database (NGD).Pe lng aceast conversie, programul NGDBuild realizeaz verificarea constrngerilor de temporiza-re specificate de proiectant i verificarea regulilor de proiectare (DRC Design Rule Check). Progra-mul genereaz un raport care conine eventualele mesaje de eroare sau de avertismente desprerezultatele acestor verificri.

    n cazul proiectrii cu circuite CPLD, urmtoarea etap de implementare este cea de adaptare(Fitting), executat de modulul CPLD Fitter. Acest modul minimizeaz logica utilizat pentru des-crierea sistemului i realizeaz adaptarea acesteia la particularitile circuitului CPLD din familiaXC9500 sau CoolRunner, astfel nct s se utilizeze numrul minim de macrocelule i termeni produs.Modulul CPLD Fitter poate genera i un raport coninnd caracteristici de timp ale semnalelor, raportcare indici frecvena maxim a semnalului de ceas la care poate funciona sistemul proiectat.

    n cazul proiectrii cu circuite FPGA, urmtoarea etap de implementare dup cea de transla-tare este maparea tehnologic, executat de programul MAP. Acest program execut mai nti verifi-carea regulilor de proiectare pentru descrierea din fiierul n format NGD, iar apoi realizeaz

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    18/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 618

    adaptarea logicii la resursele disponibile n circuitul FPGA din familia Spartan sau Virtex utilizat pentru implementare. Rezultatul maprii tehnologice este un fiier n format NCD ( Native CircuitDescription), care specific elementele fizice care vor fi utilizate din circuitul FPGA. Programul MAPgenereaz un raport cu rezultatele operaiilor efectuate. Raportul conine mesajele de eroare i deavertisment care au fost afiate, logica eliminat n urma optimizrilor efectuate, numrul i procentul

    de utilizare a blocurilor logice, a blocurilor de I/E i a bistabilelor.Dup maparea tehnologic, se ruleaz programul PAR, care execut operaiile de plasareirutare a circuitului FPGA. Acest program prelucreaz fiierul n format NCD obinut n urma mapriitehnologice i genereaz un fiier n acelai format care conine i informaiile de rutare. ProgramulPAR genereaz mai multe rapoarte care conin: numrul semnalelor care nu au putut fi rutate complet,caracteristici de timp ale semnalelor, pinii circuitului sortai mai nti dup numele semnalelor, iarapoi dup numr, frecvena maxim de funcionare a circuitului.

    Dup implementare, se poate genera un model al sistemului proiectat coninnd i ntrzierilesemnalelor, aceste informaii fiind adugate prin operaia de adnotare invers. Modelul generat poatefi utilizat pentru simularea temporal a sistemului. Pentru generarea acestui model, se ruleaz (n modautomat sau la comanda utilizatorului) programul NGDAnno i unul din programele NGD2VHDL,

    NGD2VER sau NGD2EDIF, n funcie de fluxul de proiectare utilizat (XST VHDL, XST Verilog,

    respectiv EDIF).

    2.3.2.7. Modulul pentru generarea fiierului de configurare

    Dup executarea etapelor de implementare, se poate genera un fiier care va fi utilizat pentruconfigurarea circuitului programabil astfel nct acesta s execute funciile dorite ale sistemului digi-tal proiectat. Fiierul de configurare este sub forma unui ir de bii (bitstream), coninnd toate in-formaiile din fiierul NCD care definesc logica interni interconexiunile circuitului utilizat pentruimplementare, plus alte informaii din unele fiiere asociate cu acest circuit. Asemenea informaiisunt, de exemplu, cele care indic asignarea semnalelor la pinii circuitului. Fiierul de configurareeste generat de programul BitGen. Acest fiier poate fi utilizat apoi pentru configurarea circuitului sau

    pentru crearea unui fiier necesar programrii unei memorii PROM cu informaiile de configurare alecircuitului.Pentru circuitele CPLD, fiierul de configurare este creat n formatul JEDEC (Joint Electron

    Device Engineering Council) i are extensia .jed. Ulterior, se poate crea un fiier n formatul SVF(Serial Vector Format) cu ajutorul modulului iMPACT. Pentru circuitele FPGA, fiierul de configura-re creat este un fiier binari are extensia .bit.

    2.3.2.8. Modulul pentru configurare sau programare iMPACT

    Modulul iMPACT permite configurarea sau programarea circuitului CPLD sau FPGA utilizatpentru implementare. Pentru aceasta trebuie conectat un cablu paralel sau un cablu JTAG la portulparalel al calculatorului (n unele cazuri, se poate utiliza un cablu serial sau un cablu USB). Fiierul

    care conine irul de bii pentru configurare va fi transferat la circuitul programabil.Modulul iMPACT conine i un program (PROM File Formatter) pentru generarea fiierului

    necesar programrii unei memorii PROM. O asemenea memorie nevolatil poate fi utilizat pentrupstrarea informaiilor de configurare necesare circuitelor CPLD sau FPGA care se bazeaz pe teh-nologia SRAM i necesit configurarea dup fiecare ntrerupere a tensiunii de alimentare. Fiierulgenerat de modulul iMPACT poate avea formatul MCS-86 (Intel), EXORMACS (Motorola) sauTEKHEX (Tektronix). Se poate genera i un fiier HEX, care conine reprezentarea hexazecimal airului de configurare. Fiierul generat poate fi utilizat pentru programarea unei memorii PROM cuajutorul unui echipament de programare.

    2.3.2.9. Modulul de vizualizare

    Pentru circuitele CPLD, modulul ChipViewerpoate fi utilizat pentru vizualizarea n mod gra-fic a structurii macrocelulelor dup configurare, a semnalelor de intrare i de ieire, a ecuaiilor sem-

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    19/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 6 19

    nalelor a modului de asignare a pinilor de I/E i a ntrzierii semnalelor ntre doi pini. De asemenea,modulul ChipViewerpermite asignarea semnalelor la anumii pini de I/E naintea etapelor de imple-mentare.

    2.4. Exemplu de proiectare

    n continuare se prezint un exemplu simplu de proiectare utiliznd pachetul de programeXilinx WebPACK, versiunea 4.2.

    2.4.1. Prezentarea circuitului proiectat

    Pentru exemplul de proiectare se va utiliza editorul schematic ECS. Circuitul proiectat constdin dou numrtoare de cte 16 bii, care sunt conectate pentru a forma un numrtor de 32 de bii.Acest numrtor va fi implementat pe o plac de dezvoltare XSA-50 a firmei XESS, care conine uncircuit FPGA Xilinx Spartan2 XC2S50, cu o capacitate de 50.000 pori echivalente. Numrtorul pri-mete semnalul de ceas de 100 MHz de la generatorul de ceas al plcii XSA, realizat cu un oscilator

    programabil. Dou din liniile de ieire ale numrtorului vor fi conectate la segmentul de sus i cel dejos al afiajului cu 7 segmente al plcii. Segmentul de sus va fi comandat de bitul 25 al numrtorului,bit a crui valoare se modific din 0 n 1 sau din 1 n 0 cu o frecven de 100.000.000 / 226 = 1,49 Hz,astfel c acest segment se va aprinde sau se va stinge de 1,49 ori pe secund (aproximativ de 3 ori n 2secunde). Segmentul de jos va fi comandat de bitul 24 al numrtorului, iar acest segment se va aprin-de sau se va stinge de aproximativ 3 ori pe secund.

    Schema circuitului este prezentat n Figura 6.19.

    Figura 6.19. Schema circuitului utilizat ca exemplu de proiectare.

    2.4.2. Lansarea programului WebPACK

    Pentru lansarea n execuie a programului WebPACK se execut un dublu clic pe icoana in-

    terfeei graficeProject Navigator(Figura 6.20). Programul poate fi lansat n execuie i selectnd nmeniul StartProgramsXilinx WebPACK 4.2 WebPACK Project Navigator. n funcie de

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    20/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 620

    configurarea interfeei Project Navigator, se va ncrca ultimul proiect care a fost utilizat, sau nu seva ncrca nici un proiect.

    Figura 6.20. Icoana interfeei grafice WebPACK Project Navigator.

    2.4.3. Crearea proiectului

    Pentru crearea unui nou proiect, se execut urmtoarele etape:

    1. n ecranul Project Navigatorse selecteazFileNew Project. Se va deschide fereastra dedialogNew Project.

    2. n cmpulProject Location din fereastra de dialogNew Projectse introduce directorul n carese va crea proiectul, de exemplu, C:\Student\Tcalc2\AC. n acest director, programul va crea

    un nou director pentru fiierele proiectului. Se poate utiliza butonul ... pentru a selecta undirector existent pe disc.

    3. n cmpulProject Name se introduce numele proiectului, de exemplu, lab6_1.

    4. n cmpulDevice Family se selecteaz familia de circuite FPGA: Spartan2.

    5. n cmpulDevice se selecteaz circuitul FPGA: xc2s50-5tq144. n aceast denumire, xc2s50indic tipul i capacitatea circuitului, -5 este un indicator al vitezei circuitului, iar tq144 re-

    prezint tipul capsulei circuitului i numrul de pini.

    6. n cmpulDesign Flow se selecteaz fluxul de proiectare: XST VHDL.

    7. Se execut un clic pe butonul OKpentru a crea proiectul.

    2.4.4. Lansarea editorului schematic

    Pentru lansarea n execuie a editorului schematic ECS, se execut urmtoarele operaii:

    1. n ecranulProject Navigatorse selecteazProjectNew Source. Se va deschide fereastra dedialogNew.

    2. Se selecteaz opiunea Schematic din meniu.

    3. n cmpul File Name se introduce numele fiierului care va conine schema numrtoruluiproiectat, de exemplu, num32.

    4. Se execut un clic pe butonulNext, iar apoi pe butonulFinish. Editorul schematic va fi lansatntr-o nou fereastr.

    2.4.5. Adugarea componentelor

    n etapa urmtoare se vor aduga componentele necesare pentru realizarea numrtorului de32 de bii. Componentele disponibile pentru diferitele familii de circuite programabile se pstreaz ncte o bibliotec de componente, aceast bibliotec fiind specific pentru o anumit familie de circu-ite. Categoriile de componente sunt afiate n fereastra Categories a editorului schematic, iar compo-nentele dintr-o categorie selectat sunt afiate n fereastra Symbols. Deoarece nu este disponibil unnumrtor de 32 de bii, acesta va fi realizat prin interconectarea a dou numrtoare de 16 bii.

    Pentru adugarea componentelor necesare, se procedeaz astfel:

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    21/26

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    22/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 622

    (CE) numrtorului de sus, acest numrtor va reaciona la un impuls de ceas numai atunci cnd nu-mrtorul de jos ajunge la valoarea FFFFh.

    Numrtorul de jos, care va conine biii mai puin semnificativi ai contorului, trebuie s seincrementeze la fiecare impuls de ceas. De aceea, intrarea CEa acestui numrtor trebuie conectat n

    permanen la 1 logic. Valoarea 1 logic se poate obine prin plasarea i conectarea simbolului VCC.

    Fiecare numrtor are o intrare de tergere CLR (Clear) care reseteaz numrtorul la 0 atunci cndaceast intrare trece n 1 logic. Pentru a preveni resetarea numrtoarelor n timpul funcionrii, se vaaplica n permanen valoarea logic 0 la ambele intrri CLR. Valoarea 0 logic se poate obine prin

    plasarea i conectarea simbolului GND.Pentru conectarea intrrii CEla 1 logic i a intrrilorCLR la 0 logic se procedeaz astfel:

    1. Se execut un clic pe butonulAdd Symbol . n fereastra Categories se selecteazGeneral,iar n fereastra Symbols se selecteaz simbolul vcc.

    2. Se deplaseaz cursorul n fereastra principali se verific forma simbolului ataat cursorului.

    Dac aceast form nu este cea a literei T, se execut clic de dou ori pe butonulRotatepentru rotirea simbolului. Se plaseaz apoi simbolul vcc deasupra terminalului CEa numr-

    torului de jos i la stnga acestuia, asigurnd un spaiu suficient pentru a putea conecta sim-bolul la terminal printr-o linie de conexiune. Se apas apoi tasta Esc.

    3. Se traseaz o linie de conexiune ntre simbolul vcci terminalul CEal numrtorului de jos,n modul descris anterior.

    4. n fereastra Symbols se selecteaz simbolul gnd. Se plaseaz cte un simbol gnd sub termi-nalele CLR ale numrtoarelor i la stnga acestora, asigurnd un spaiu suficient pentru a

    putea conecta simbolurile la terminale prin linii de conexiune. Se apas apoi tasta Esc.

    5. Se traseaz linii de conexiune ntre simbolurile gndi terminalele CLR ale numrtoarelor.

    Se salveaz schema, selectndFileSave sau executnd un clic pe butonul Save .

    2.4.7. Adugarea i conectarea unei magistrale

    n cazul editorului ECS, o magistral este ca i o linie de conexiune, dar creia i s-a atribuitun nume indicnd numrul de linii ale magistralei, de exemplu, bus(7:0). Pentru adugarea unei ma-gistrale, se procedeaz ca i pentru adugarea unei linii de conexiune, iar apoi se atribuie acesteia nu-mele corespunztor. Dup adugarea magistralei, exist posibilitatea utilizrii individuale asemnalelor magistralei.

    Doi bii ai numrtorului de sus trebuie conectai la dou segmente ale afiajului de pe placaXSA-50. Pentru a avea acces la aceti bii, mai nti se prelungete magistrala de ieire Q a numrto-rului de sus i se atribuie un nume acestei magistrale, astfel:

    1. Se execut un clic pe butonulAdd Wire .

    2. Se traseaz o linie de conexiune de la ieirea Q a numrtorului de sus, mai nti la dreapta,iar apoi n jos. Se apas tasta Esc.

    3. Se selecteazAddNet Name sau se execut un clic pe butonulAdd Net Name .

    4. Se introduce de la tastatur numele CNT(15:0)i se apas tasta Enter. Prin aceasta se ataea-z cursorului numele magistralei.

    5. Se execut un clic pe captul de sus al magistralei pentru a se ataa numele acesteia. Se apasapoi tasta Esc.

    Pentru comanda segmentului de sus i a celui de jos al afiajului cu 7 segmente, este necesaraccesul la doi bii ai numrtorului. Se vor utiliza biii 25 i 24 ai numrtorului de 32 de bii, acetia

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    23/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 6 23

    fiind reprezentai de biii 9, respectiv 8, ai numrtorului de sus. Pentru accesul la aceti bii, se pro-cedeaz astfel:

    1. Se selecteazAddBus Tap sau se execut un clic pe butonulAdd Bus Tap . Se observmodificarea formei cursorului.

    2. Dac este necesar, se modific orientarea n fereastra de opiuni (cea n care este afiatRotate0), astfel nct baza triunghiului s fie paralel cu poriunea vertical a magistralei. Se executun clic pe poriunea vertical a magistralei pentru adugarea primului conector la magistral,iar apoi un nou clic pentru adugarea celui de-al doilea conector. Se apas apoi tasta Esc.

    2.4.8. Adugarea i conectarea bufferelor de ieire

    Semnalele de ieire se vor conecta la pinii de ieire prin intermediul unor buffere de ieire.Pentru adugarea i conectarea acestora se procedeaz astfel:

    1. Se execut un clic pe butonulAdd Symbol . n fereastra Categories se selecteazIO, iar n

    fereastra Symbols se selecteaz simbolul obuf.2. Se plaseaz dou componente obuf la dreapta celor doi conectori la magistral, la o oarecare

    distan de acetia. Se apas apoi tasta Esc.

    3. Se traseaz cte o linie de conexiune de la fiecare conector al magistralei la bufferul de ieirecorespunztor.

    4. Se prelungesc la dreapta liniile de la ieirile componentelorobuf.

    2.4.9. Ataarea numelor la conexiuni

    n continuare se vor ataa nume unor conexiuni. Pentru aceasta se procedeaz astfel:

    1. Se selecteazAddNet Name sau se execut un clic pe butonulAdd Net Name .

    2. Se introduce de la tastatur numele CLKi se apas tasta Enter.

    3. Se execut un clic n partea stng a liniei conectate la intrarea de ceas Ca numrtorului dejos i se verific ataarea numelui CLKla aceast linie. Se apas tasta Esc.

    4. Se procedeaz similar pentru ataarea numelui CNT(9) la linia dintre conectorul de sus almagistralei i bufferul de ieire corespunztor.

    5. Se ataeaz numele CNT(8) la linia dintre conectorul de jos al magistralei i bufferul de ieirecorespunztor.

    6. Se ataeaz numele S6 la linia din dreapta bufferului de ieire conectat la semnalul CNT(9).7. Se ataeaz numele S0 la linia din dreapta bufferului de ieire conectat la semnalul CNT(8).

    2.4.10. Adugarea porturilor de I/E

    Porturile de I/E permit utilizarea unei componente proiectate sau a unui subsistem ntr-oschem mai complex. Pentru numrtorul proiectat, singurul port de intrare este cel de ceas. Porturilede ieire sunt liniile CNT(9)i CNT(8) ale numrtorului. Pentru adugarea acestor porturi, se proce-deaz astfel:

    1. Se selecteazAddI/O Markersau se execut un clic pe butonulAdd I/O Marker .

    2. Se selecteaz direciaInputn partea de sus a ecranului.

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    24/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 624

    3. Se apas butonul din stnga al mouse-ului i, cu butonul apsat, se traseaz un dreptunghi njurul semnalului CLK. Se observ adugarea simbolului pentru portul de intrare.

    4. Se selecteaz direcia Output.

    5. Se apas butonul din stnga al mouse-ului i, cu butonul apsat, se traseaz un dreptunghi njurul semnalelorS6

    i S0. Se observ

    ad

    ugarea a dou

    simboluri pentru porturile de ie

    ire. Se

    apas tasta Esc.

    Se salveaz schema utiliznd butonul Save .

    2.4.11. Verificarea schemei

    Pentru verificarea corectitudinii conexiunilor, se selecteaz comanda Tools Check Sche-

    matic sau se execut un clic pe butonul Check Schematic . Eventualele erori se afieaz ntr-o no-u fereastr, Schematic Check Errors. Se verific dac sunt erori, iar apoi se nchide fereastra cu

    butonul Close. n cazul unor erori, se verific modul n care sunt realizate interconexiunile pe schem

    i se repet testul.

    2.4.12. Asignarea pinilor la semnalele de intrare i ieire

    n acest moment, schema este terminat, dar semnalele de intrare i ieire trebuie conectate lapinii corespunztori ai circuitului FPGA, n funcie de modul n care sunt conectai aceti pini pe pla-ca XSA-50. Conexiunile necesare sunt ilustrate n Figura 6.21.

    Figura 6.21. Conectarea oscilatorului programabil i a afiajului cu 7 segmente la pinii circuitului FPGA de peplaca XSA-50.

    Pinii la care se vor conecta semnalele de intrare i de ieire se pot specifica prin ataarea unuiparametru, denumit LOC, semnalelor respective. Pentru aceasta se procedeaz astfel:

    1. Se execut un clic cu butonul din dreapta pe portul de intrare al semnalului CLKi se selec-teaz opiunea Object Properties. Se va deschide o fereastr cu atributele acestui semnal.

    2. Se execut un clic pe butonulNew pentru adugarea unui nou atribut.3. n fereastra Attribute Name se introduce LOC, iar n fereastra Attribute Value se introduce

    P88. Aceasta nseamn c semnalul CLKva fi conectat la pinul 88 al circuitului FPGA, pincare este conectat la oscilatorul programabil al plcii XSA-50.

    4. Se execut un clic pe butonul OK, iar apoi un nou clic pe butonul OKpentru nchiderea fe-restrei Object Properties.

    5. Se procedeaz similar pentru conectarea semnalului S6la pinul 49 al circuitului FPGA (seg-mentul S6 al afiajului cu 7 segmente).

    6. Se procedeaz similar pentru conectarea semnalului S0 la pinul 67 al circuitului FPGA (seg-mentul S0 al afiajului).

    Se salveaz schema utiliznd butonul Save .

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    25/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 6 25

    2.4.13. Sinteza i implementarea proiectului

    Dup terminarea editrii schemei, se revine n fereastra Project Manager. n fereastra fiie-relor surs se selecteaz fiierul care conine schema (fiierul cu extensia .sch), dac fiierul nu esteselectat. n fereastra proceselor se vor afia procesele disponibile pentru acest fiier.

    1. Pentru lansarea procesului de sintez, se execut un clic dublu pe numele procesuluiSynthesize din fereastra proceselor. n timpul sintezei, se afieaz diferite mesaje n fereastraconsolei. Dup terminarea sintezei, se verific dac s-au afiat mesaje de eroare (marcate cuculoarea roie). n cazul unor erori, se revine la editorul schematic i se verific schema. Me-sajele de avertisment (marcate cu culoarea galben) pot fi ignorate.

    2. Se execut un clic pe semnul + din stnga numelui Synthesis, iar apoi se execut un clic dublupe linia View Synthesis Report. Prin aceasta se va afia coninutul fiierului de raport generatn urma sintezei. Se parcurge fiierul, iar n seciunea Timing Summary se verific frecvenamaxim de funcionare a circuitului. Se nchide apoi fiierul de raport.

    3. Pentru lansarea procesului de implementare, se execut un clic dublu pe numele procesuluiImplement Design din fereastra proceselor.

    4. Dup terminarea implementrii, se execut un clic pe semnul + din stnga numeluiImplementDesign, iar apoi un clic pe semnul + din stnga numelui Map. Se execut un clic dublu pe li-nia Map Report. n fiierul afiat, se determin din seciunea Design Summary care este

    procentul resurselor utilizate din circuit: numrul de blocuri logice (Number of Slices), num-rul de bistabile (Number of Slice Flip-Flops) i numrul de pori echivalente (Total equivalent

    gate countfor design). Se nchide apoi fiierul de raport.

    5. Se execut un clic pe semnul + din stnga numelui Place & Route din cadrul procesului Implement Design. Se vizualizeaz fiierul de raport care conine asignarea pinilor de I/E(Pad Report), generat n urma proceselor de plasare i rutare (Place & Route). Se verific da-c semnalele sunt asignate n mod corect la pinii de I/E. Se nchide apoi fiierul de raport.

    6. Pentru generarea fiierului de configurare, se execut un clic dublu pe numele procesului Ge-nerate Programming File din fereastra proceselor. Se verific n directorul proiectului exis-tena unui fiier cu extensia .bit, care este fiierul de configurare.

    2.4.14. Configurarea circuitului FPGA

    Pentru configurarea circuitului FPGA se procedeaz astfel:

    1. Se lanseaz n execuie programul GXSLOAD, cu icoana din Figura 6.22, care permitetransferul fiierului de configurare la circuitul FPGA.

    2. Se verific tipul plcii selectate n fereastraBoard Type; acest tip trebuie s fie XSA-50.

    3. Se alimenteaz placa XSA-50 cu o tensiune de 7,5 V.

    4. Se utilizeaz programul Windows Explorerpentru vizualizarea fiierelor din directorul pro-iectului. Se reduce dimensiunea ferestrei acestui program pentru a fi vizibili fereastra pro-gramului GXSLOAD.

    5. Se selecteaz fiierul cu extensia .biti se plaseaz acest fiier n fereastra FPGA/CPLD aprogramului GXSLOAD.

    6. Se execut un clic pe butonulLoad.

    Fiierul de configurare se va transfera la circuitul FPGA, dup care circuitul va ncepe s fun-cioneze. Dac oscilatorul plcii este programat la 100 MHz, segmentul de sus al afiajului cu 7 seg-

    mente va clipi de aproximativ 3 ori n 2 secunde, iar segmentul de jos de 3 ori pe secund.

  • 8/6/2019 Proiectarea Cu Circuite Logice Program a Bile

    26/26

    Arhitectura calculatoarelor - Lucrarea de laborator Nr. 626

    Figura 6.22. Icoana programului GXSLOAD.

    3. Desfurarea lucrrii

    3.1. Executai etapele descrise n seciunea 2.4 pentru proiectarea i verificarea funcionriinumrtorului.

    3.2. Modificai schema pentru a conecta ali doi bii ai numrtorului de sus la cele dou seg-mente ale afiajului. Repetai etapele necesare pentru implementare, configurai din nou circuitul iverificai funcionarea.

    3.3. Conectai ali bii ai numrtorului de sus la alte segmente ale afiajului. Conectareasegmentelor afiajului la pinii circuitului FPGA este indicat n Tabelul 6.2.

    Tabelul 6.2. Conexiunile segmentelor afiajului cu 7 segmente la pinii circuitului FPGA.Segment afiaj Pin FPGA

    S0 67

    S1 39

    S2 62

    S3 60

    S4 46

    S5 57

    S6 49