Programarea HDL

  • View
    249

  • Download
    2

Embed Size (px)

Text of Programarea HDL

  • 8/13/2019 Programarea HDL

    1/166

  • 8/13/2019 Programarea HDL

    2/166

    PROGRAMAREA CU LIMBAJEDE DESCRIERE HARDWARE

    Aplicaii n limbajul VHDL

    Gabriel V. Iana, Gheorghe erbanLaureniu Ionescu, Petre Anghelescu

    UNIVERSITATEA DIN PITESTI

    2009

  • 8/13/2019 Programarea HDL

    3/166

  • 8/13/2019 Programarea HDL

    4/166

    -I-

    CUPRINS

    INTRODUCERE 1

    CAPITOLUL 1. Configurarea structurilor hardware reprogramabilede tip FPGA cu Xilinx ISE

    3

    CAPITOLUL 2. Programarea structurilor hardware reprogramabile

    prin descrieri concurente

    27

    CAPITOLUL 3. Programarea structurilor hardware reprogramabile

    prin descrieri cu specificaii secveniale

    45

    CAPITOLUL 4. Testarea modulelor digitale descrise n VHDL 65

    CAPITOLUL 5. Proiectarea automatelor secveniale

    cu limbajul VHDL

    89

    CAPITOLUL 6. Model de proiectare a unui modul digital

    n limbajul de descriere hardware VHDL

    115

    CAPITOLUL 7. Utilizarea subprogramelor i package-urilor

    n limbajul VHDL

    131

    BIBLIOGRAFIE 151

    ANEXA 1 153

    ANEXA 2 157

  • 8/13/2019 Programarea HDL

    5/166

    -II-

  • 8/13/2019 Programarea HDL

    6/166

    1

    INTRODUCERE

    VHDL este un limbaj de descriere hardware. Prin el se descrie

    comportamentul unor circuite electronice digitale sau sisteme care pot fi

    implementate fizic. Denumirea de VHDL vine de la VHSIC Hardware

    Description Language, VHSIC este nsi o abreviere de la Very High

    Speed Integrated Circuits. Acest limbaj reprezint o iniiativ finanat de

    ctre departamentul de aprare al Statelor Unite n anii 1980.

    VHDL este destinat pentru sinteza circuitelor, precum i simulareaacestora. Cu toate acestea, dei codul VHDL este pe deplin simulabil, nu

    toate construciile sunt sintetizabile. O motivaie fundamentalde a utiliza

    limbaje de descriere hardware cum ar fi VHDL sau Verilog (concurentul

    VHDL-ului) este faptul c sunt standardizate, nu depind de tehnologia

    circuitelor pe care se implementeaz codul, sunt portabile i reutilizabile.

    Doudin aplicaiile principale imediate ale limbajului VHDL se regsesc n

    domeniul dispozitivelor logice programabile - Programmable Logic Devices

    (inclusiv CPLDs-Complex Programmable Logic Devices i FPGA-Field

    Programmable Gate Arrays), precum i n domeniul circuitelor integrate

    dedicate pe aplicaie - ASICs (Application Specific Integrated Circuits).

    Dup ce este scris codul VHDL, acesta poate fi sintetizat iar pentrurealizarea fizic a circuitului dorit poate fi implementat ntr-o structur

    programabil (de la Altera, Xilinx, Atmel, etc) sau pot fi trimise pentru

    fabricarea unui circuit de tip ASIC. Este bine cunoscut faptul c, n prezent,

    multe circuite complexe (microprocesoare, de exemplu) pot fi concepute

    folosind o astfel de abordare. O altobservaie n ceea ce privete limbajul

    VHDL este c, spre deosebire de programele software care sunt executate

    secvenial, declaraiile sale sunt n mod inerent concomitente (paralele). Din

    acest motiv, limbajul VHDL este de obicei mai degrabmenionat ca un cod

    i nu ca un program.

    Cartea se adreseazn primul rnd studenilor din cadrul seciilor de

    Electronic, Calculatoare i Telecomunicaii care au n programproiectarea

    circuitelor logice utiliznd limbaje de descriere hardware. De asemenea,

    prin bogatul suport practic pe care l deine, cartea se adreseaz oricui

    dorete s se iniieze dar i s aprofundeze n domeniul proiectrii cu

    limbaje de descriere hardware.

    Lucrarea este structuratpe 7 capitole, urmate de dou anexe, prin

    care se realizeazo introducere treptatn complexitatea problematicii, de la

  • 8/13/2019 Programarea HDL

    7/166

    2

    abordarea mediilor de proiectare cu limbaje hardware (mediul Xilinx ISE lacapitolul 1) pn la realizarea propriilor pachete de funcii i de declaraii

    care pot fi utilizate n proiectare (capitolul 7). Fiecare capitol ncepe cu un

    breviar teoretic, n care sunt prezentate conceptele legate de tematica acelui

    capitol. Partea principal a capitolelor este constituitde aplicaii. Acestea

    sunt prezentate sub forma unor probleme urmate de soluiile propuse (uneori

    sunt prezentate i mai multe metode de rezolvare). Toate aplicaiile au fost

    destinate implementrii practice pe machete cu circuite FPGA Spartan 3

    XC3S400 existente n cadrul laboratoarelor de Calculatoare numerice, din

    cadrul Facultii de Electronic, Comunicaii i Calculatoare al Universitii

    din Piteti. Totui, dat fiind gradul de generalitate pe care l ofer limbajul

    de descriere hardware VHDL (utilizat n aceast carte), aplicaiile pot fiimplementate i pe alte sisteme cu alte tipuri de circuite reconfigurabile prin

    schimbarea corespunztoare a constrngerilor legate de distribuirea pinilor

    pe capsul. Fiecare capitol se termincu un set de exerciii propuse ce au ca

    scop stimularea iniiativei personale a studenilor.

  • 8/13/2019 Programarea HDL

    8/166

    -3-

    Capitolul I

    Configurarea structurilor hardware reprogramabile

    de tip FPGA cu XILINX ISE

    n acest capitol este prezentat metodologia relativ la implementareaprogramelor scrise prin limbajul VHDL, pe structura reprogramabilFPGA de tipSPARTAN 3, folosind pachetul software de dezvoltare XILINX ISE. Pe scurt, suntabordate urmtoarele etape: introducerea codului VHDL, simularea i vizualizarearezultatelor obinute, sinteza i implementarea surselor, iar n final programareastructurii reconfigurabile.

    1. Breviar teoretic

    1.1.Mediul de proiectare Xilinx ISE

    Mediul software de proiectare XILINX ISE (Integrated SoftwareEnvironment) este utilizat la realizarea i implementarea complet a unui proiect

    pentru structurile programabile de tip XILINX. Componenta software ISE ProjectNavigator faciliteazcrearea proiectului, organizndu-l pe urmtoarele etape:- Descriere proiect. Programatorul are posibilitatea s descrie proiectul prin

    introducerea de coduri surs HDL (Hardware Description Language) pentru

    limbajele VHDL, Verilog, Abel sau utiliznd schematice i diagrame cu strifinite;- Sinteza.n cadrul acestei etape fiierele de tip VHDL, Verilog sau schematice

    sunt transformate n fiiere de tip netlistcare sunt acceptate ca fiiere de intrarela etapa de implementare;

    - Implementarea. Dup sintez, la implementare, proiectul este adaptat itransformat din forma logicdigital n forma tehnologic implementabilpestructura reconfigurabilaleas;

    - Verificarea.Poate fi realizatn toate etapele de implementare ale proiectului.Utilizarea componentelor software de simulare conduce la verificareacomplet a funcionalitii proiectului sau a unor poriuni de proiect. Deasemenea, pot fi realizate i verificri directe pe circuit, dup programarea

    acestuia;- Configurarea. Dup generarea fiierelor de programare (bitstream file)proiectantul are posibilitatea programrii circuitului reconfigurabil. n timpulprocesului de configurare sunt programate interconexiunile structurii FPGAalese.

    n vederea exemplificrii modului de implementare a unui modul digital peo structurde tip FPGA, se prezinturmtorul model.

  • 8/13/2019 Programarea HDL

    9/166

    -4-

    1.2. Structura unui program VHDL

    Programul prin care se descrie un modul digital n limbajul VHDL con ine treipri:

    Entitatea descrie interfaa modulului digital cu semnalele din mediul exterior. Oentitate deja declaratpoate fi accesatde ctre alte entiti.

    Sintax: entitynume_entitate isgeneric(list_generic);

    port(list_de_porturi);]endentitynume_entitate;

    Prin specificaia entityse declarnumele modulului digital. n plus, pot fi declaraiparametrii generici i porturi care fac parte din aceastentitate. Porturile declaratentr-o entitate sunt vizibile n toate arhitecturile atribuite acesteia. Porturile pot fi deintrare, ieire, buffer sau bidirecionale (IN, OUT, BUFFER, INOUT)

    Arhitectura descrie relaia dintre intrrile i ieirile porturilor entitiicreia i este asociat. O arhitecturpoate avea asociatdoar o singurentitate, daro entitate poate avea asociate mai multe arhitecturi prin configuraie.

    Sintax:architecturenume_arhitecturof nume_entitate is-- declaraii n arhitectur

    begin

    --specificaii_concurenteend [ architecture] [ nume_arhitectur];

    Declaraiilibrrii

    Entitate

    Arhitectur

    - declararea librriilor care vor fiutilizate n proiect;

    - declararea entitii modulului ceurmeaza fi proiectat;

    - descrierea arhitecturii acestuia.

  • 8/13/2019 Programarea HDL

    10/166

    -5-

    Zona declarativ a unei arhitecturi poate conine declaraii de tipuri, semnale,constante, subprograme, componente i grupuri. Specificaiile concurente dincorpul arhitecturii definesc legturile dintre intrrile i ieirile modulului digital pecare-l reprezint.

    Sintaxa generala unui program n cod VHDL este urmtoarea:--Declararea librariilor prin clauza library si uselibrarynume_librarie;usenume_librarie.nume_pachet.all;

    --Declararea entitatii modulului digitalentitynume_entitateis

    generic(nume generice : type := valori_initiale);port(nume_porturi : directie tip port);

    end entitynume_entitate; --entity[93]

    --Corpul arhitecturiiarchitecturenume_arhitectura ofnume_entitate is

    declaratii arhitecturabegin

    specificatii concurenteend architecturenume_arhitectura;

    1.3. Operatori utilizai n limbajul VHDL

    Pentru implementarea circuitelor combinaionale, n limbajul VHDL, s-aupus la dispoziia programatorului operatori logici, aritmetici, de comparaie,deplasare i de concatenare.

    n tabelul de mai jos sunt prezentai, pe scurt, ope