curs2vhdl

65
LIMBAJUL VHDL - 2

Upload: dianna

Post on 10-Nov-2015

212 views

Category:

Documents


0 download

DESCRIPTION

VHDL

TRANSCRIPT

  • LIMBAJUL VHDL - 2

  • UNITI DE PROIECTARE

    Uniti de proiectare primare entitate (interfaa sistemului) specificaie de pachet (vedere extern a

    posibilitilor puse la dispoziie) configuraie (asociere component - model)

  • UNITI DE PROIECTARE

    Uniti de proiectare secundare arhitectur (descrierea sistemului) corp de pachet (descrierea intern a

    funcionalitilor)

  • UNITI DE PROIECTARE

    Entitateentity nume_entitate is

    {generic (list de parametri generici)}{port (list de porturi)}{begin

    list de instruciuni concurente}end {nume_entitate}

  • UNITI DE PROIECTARE

    Entitate numele entitii - unic n biblioteca

    respectiv parametri generici - pentru a reutiliza

    entitile port - informaii pentru semnale de interfa

    (nume, mod, tip, valori iniiale)mod - cuvinte rezervate - specific direcia

    semnalelormod: in, out, inout, buffer, linkage

  • UNITI DE PROIECTARE

    Arhitecturarhitecture nume_arhitectur of nume_entitate is

    ... Zona de declaraii (tipuri, semnale, constante,funcii, proceduri, componente)

    begin... Instruciuni concurente

    end {nume_arhitectur}

  • UNITI DE PROIECTARE

    Arhitectur tipuri de descriere: structural - interconectare de alte cutii negre comportamental - funcional flux de date - descriere algoritmichibrid - combinaii ntre primele 3

    la o entitate - mai multe arhitecturi posibileObservaie - entitatea i arhitectura trebuie

    s se gseasc n aceeai bibliotec

  • UNITI DE PROIECTARE

    Arhitectur nume_entitate trebuie s corespund cu

    numele dat entitii arhitectura face parte din domeniul

    concurent nu se admit declaraii devariabile

    funcionalitatea descris de instruciuniconcurente care se execut asincron

  • UNITI DE PROIECTARE

    Specificaie de pachetpackage nume_pachet isdefiniii;. . . -- coninutul pachetului;declaraii;end nume_pachet;

  • UNITI DE PROIECTARE

    Corp de pachetpackage body nume_pachet is{declaraii interne} -- subprograme;end nume_pachet;

  • UNITI DE PROIECTARE

    Corp de pachet conine algoritmii (strict secveniali) pentru

    subprograme face parte din domeniul secvenial - nu se

    pot declara semnale

  • UNITI DE PROIECTARE Configuraieconfiguration nume_configuraie of nume_entitate is{Zona declarativ (numai clauza use i specificareaatributelor)}{Zona rezervat configuraiei}

    end {nume_configuraie}for eticheta_instanei_componentei :

    nume_component use entity nume_entitate(numele_arhitecturii){parametrii generici}{corespondena porturi formale / porturi actuale};

    end for;

  • UNITI DE PROIECTARE

    Configuraie descrie corespondena dintre componente

    (declarate n arhitecturi structurale sauhibride) i arhitecturi precizate pentru entitate

  • SEMNALE

    Comunicaie procesul comunicrii - implic transmiterea

    informaiei: surs - destinaie semnal - purttor de informaie n general - semnal = fenomen fizic care se

    poate modifica n timp i/sau n spaiu, iarmodificrile se pot specifica prin instruciuniformale

    semnale: electrice, mecanice, acustice,optice

  • SEMNALE

    Clasificarea semnalelor (i n VHDL) externe - purttoare de informaie ntre

    dispozitive reprezint interfaa n VHDL se declar numai n entitate

    interne - purttoare de informaie n interioruldispozitivelornu sunt vizibile n VHDL se declar numai n arhitecturi

  • SEMNALE

    Semnale electrice rol esenial n orice dispozitiv electronic permit analizarea relaiilor temporale n VHDL semnalele conin i informaii

    prezente i viitoare (istoria - history) linii de semnal: singulare (de ex.: Clock) - o sigur valoare binarmultiple (magistrale) - combinaie de valori binare

    (vectori de bii)

  • SEMNALE

    Semnale n VHDL n VHDL semnalul = corespunde

    reprezentrii hardware a conceptului depurttor de informaie

    reprezentarea = structur de date simplsau complex, funcie de tipul datelor purtatede semnal

    declaraiile de semnal - n domeniulconcurent (entitate i arhitectur)

  • SEMNALE

    Semnale n VHDL acces la valori trecute, prezente i viitoare -

    prin pilot (driver) de semnal se memoreaz evenimentele care indic o

    schimbare de valoare la un moment de timpbine definit

    pot fi modificate numai valorile(evenimentele) viitoare

  • SEMNALE

    Semnale n VHDL operaia de atribuire a unei valori:prin conectare la un port de ieire a unei

    componente n domeniul concurent (corespunde descrierii flux

    de date) n domeniul secvenial

  • SEMNALE Declararea semnalelor semnale externeport - canal de comunicare dinamic ntre o

    entitate (sau un bloc) i mediul nconjurtor caracteristici:

    nume mod - sensul fluxului de informaie tip eventual valoare iniial

    semnale interne cuvnt cheie signal fr declaraie de mod

  • SEMNALE

    Vizibilitatea semnalelor determinat de locul declaraiei reguli: semnal declarat n pachet - vzut de unitile de

    proiectare care utilizeaz pachetulorice port - vzut n toate arhitecturile entitii semnal declarat n zona de declaraii a

    arhitecturii - vzut numai n arhitectura respectiv semnal declarat ntr-un bloc din arhitectur -

    vzut doar n acel bloc

  • SEMNALE

    Asignarea semnalelor instruciunile de asignare de valori modific

    valoarea viitoare (modific piloii) element de form de und - o pereche

    valoare + after + ntrziere valoare tip compatibil cu semnalulpoate fi:

    constant rezultatul unei expresii

  • SEMNALE

    Asignarea semnalelor ntrzieriobligatoriu de tip Timeapar obligatoriu n ordine cresctoare

    ntrziere nulnu exist dispozitive fizice care nu au timpi de

    propagare a semnalelor electrice (ntrzieri) ntrziere delta - reprezint o cauzalitate - este o

    ntrziere nul pentru simulare

  • SEMNALE

    Asignarea semnalelor 2 dimensiuni ale timpului timp real

    vzut de proiectant se msoar n pai de simulare folosete uniti de timp Time

    timp delta gestionat de simulator n fiecare pas de simulare se aloc felii de timp

    infinitezimal pt. a gestiona succesiunea asignrilor exprimarea cauzalitii generate de succesiunea

    asignrilor

  • SEMNALE

    Asignarea semnalelormodele de transmisie inerial

    filtrare impulsuri mai mici dect timpul de transmisie modul implicit

    transport cuvnt cheie: transport transmiterea oricrui impuls, indiferent de durata sa

  • PARAMETRI GENERICI

    Scop transmiterea unei informaii statice unui

    bloc blocuri generice = blocuri parametrizate n interiorul blocurilor vzui ca i constantemanipulai ca i constante

  • PARAMETRI GENERICI

    Blocuri generice entitate se poate compila se gsete n bibliotecperechea entitate/arhitectur nu se poate simula

    bloc intern declarat cu blocknu poate fi instaniat din exteriorul arhitecturii n

    care se gsete i nici din interior se poate instania doar n momentul declarrii

  • PARAMETRI GENERICI

    Parametri declarai generici dimensiuni de obiecte complexe (vectori,

    magistrale ) iteratori pt. bucle for parametri de temporizare: ntrzieri timp de setup timp de hold timpi de comutare

  • PARAMETRI GENERICI

    Sintaxageneric (parametru1 {, alt_parametru} : tip_ parametru

    {:= valoare_implicit};parametru2 {, alt_parametru} : tip_ parametru{:= valoare_implicit}; ..parametruN {, alt_parametru} : tip_ parametru{:= valoare_implicit});

  • PARAMETRI GENERICI ExempluPOARTA_I_NU: blockgeneric (nr_intrri: Natural := 3);port (intrri: in Bit_Vector (1 to nr_intrri); ieire: out Bit);generic map (nr_intrri => 4); -- Instanierea unei pori I-NU cu 4 intrribegin--Zona de instruciuni din cadrul bloculuiprocess (intrri)variable V: Bit := 1;beginfor I in 1 to nr_intrri loop

    V:= V nand intrri(I);end loop;ieire

  • CONSTANTE

    Scop informaie static declarat n interiorul

    modelului arhitectur valoare de iniializare care nu mai poate fi

    modificat tipul valorii de iniializare identic cu cel din declaraienu poate fi acces sau fiier

    declarare de constant cu valoare amnat -n specificaie de pachet

  • OPERATORI

    Clase i prioriti 7 clase, cu prioritate cresctoare de la 1 la 7:1. operatori logici: and, or, nand, nor, xor, xnor2. operatori relaionali: =, /=, =3. operatori de deplasare: sll, slr, sla, sra, rol, ror4. operatori de adunare: +, -, &5. operatori de semn: +, -6. operatori de nmulire: *, /, mod, rem7. operatori diveri: **, abs, not

  • OPERATORI

    Caracteristici operatorii logicipredefinii pentru realizarea operaiilor logice: I,

    SAU, I-NU, SAU-NU, SAU-EXCLUSIV,COINCIDENoperanzi de tip Boolean (False, True) i Bit (0,

    1) funcionali pe vectori de elemente de tip Boolean

    sau Bit, dac au aceeai lungime

  • OPERATORI

    Caracteristici operatorii relaionali rezultat de tip Boolean (False, True)= i /= nu sunt definii pt. tip fiier la tipurile enumerate, primul element este

    considerat cel mai mic exemplu: la tipul Boolean, False e mai mic dect True

  • OPERATORI

    Caracteristici operatorii de deplasare - binariopereaz pe vectori cu elemente de tip Bit sau

    Boolean operatorii de adunare - binari& - definit pe vectori (tipul String = vector de

    caractere) operatorii de semn - unariau prioritate mai mic dect nmulirea

    utilizarea parantezelor pt. evitarea erorilor

  • OPERATORI

    Caracteristici operatori de nmulire - binari operatori diveri ** - ridicare la putere

    operandul din stnga de tip ntreg sau flotant puterea - obligatoriu tip ntreg

    abs - pe orice tip numericnot

    operator logic, unar opereaz pe obiecte de tip Boolean i Bit i pe vectori

    de astfel de elemente

  • TIPURI DE DATE GeneralitiVHDL puternic tipizat fiecare semnal, variabil, constant are un tip

    (definit nainte de utilizare)parametrii procedurilor i funciilor i rezultatul

    returnat de funcii - au obligatoriu un tip tipizarea obiectelor - protejeaz instruciunile

    de atribuire nivel de abstractizare relativ la

    implementarea structurilor de date prinasociere de reprezentare simbolicindependent de partea hardware

  • TIPURI DE DATE

    Tipuri de date 4 tipuri de date: scalare - valoarea constituit dintr-un element compuse - valoarea constituit din mai multe

    elementeacces (pointeri) fiier

  • TIPURI DE DATE

    Clase de obiecte - familii de tipuri

    Constante Variabile Semnale FiiereScalare DA DA DA NUCompuse DA DA DA NUAcces NU DA NU NUFiier NU NU NU DA

  • TIPURI DE DATE

    Tipuri scalare 4 tipuri: enumerate, ntregi, flotante, fizice ordonate (pot fi comparate) interval de validitate - restrnge valorile

    posibile range expresie 1 to expresie2; range expresie 3 downto expresie4;

  • TIPURI DE DATE Tipuri scalare enumerate type Nume is (valoare_simbolic1, valoare

    simbolic2, ...); simbolurile: identificatori sau caractere predefinite n pachetul Standard: type Boolean is (False, True); type Bit is (0, 1); type Severity_Level is (Note, Warning, Error,

    Failure);Character - toate caracterele admise n VHDL

    poziia - induce relaia de ordine ntreelemente

  • TIPURI DE DATE

    Tipuri scalare ntregi sunt definii operatorii aritmetici n declaraie se indic domeniul (range)exemplu: type Nume is range 1 to 15;

    tipul Integer predefinit n pachetul Standard tipurile Positive i Natural - subtipuri ale

    Integer conversie implicit n Universal_Integer - tip

    virtual

  • TIPURI DE DATE

    Tipuri scalare flotante sunt definii operatorii aritmetici n declaraie se indic domeniul (range) tipul Real predefinit n pachetul Standard intervalul domeniului - cu precizie de

    minimum 6 cifre dup virgul conversie implicit n Universal_Real - tip

    virtual

  • TIPURI DE DATE Tipuri scalare fizice n VHDL - noiune de unitate de cantitate caracteristici:unitatea de baz intervalul valorilor autorizateeventual colecie de subuniti cu

    corespondenele lor sunt definii operatorii aritmetici ntre numr i unitatea de msur - spaiu!!! toate valorile unui tip fizic i toate valorile de

    conversie trebuie s fie numere ntregi

  • TIPURI DE DATE

    Tipuri scalare fizice Time - singurul tip fizic predefinit n pachetul

    Standard tip utilizat de simulatorunitatea de baz - femptosecundadefinit de un interval cu capetele exprimate pe 64

    biiuniti: fs, ps, ns, ms, sec, min, hr

  • TIPURI DE DATE

    Tipuri compuse 2 tipuri compuse: tablouri - colecie de obiecte de acelai tiparticole - colecie de obiecte de tipuri diferite

  • TIPURI DE DATE

    Tipuri compuse tablouri structuri omogeneelementele accesibile pe baza unor indecidefinirea:

    specificarea tipului indicarea numrului indecilor (tip discret) specificarea tipului elementelor (fr tipul fiier)

    vector - tablou cu un singur index

  • TIPURI DE DATE

    Tipuri compuse tablouri constrnse

    intervalul de variaie al indecilor cunoscut cuanticipaie

    sensul de variaie a indecilor - specificat cu to idownto

    exemple: type Adres is array (0 to 15) of Bit; type Word is array (31 downto 0) of Bit; type Memory is array (Adres) of Word;

  • TIPURI DE DATE

    Tipuri compuse tablourineconstrnse

    intervalul de variaie al indecilor cunoscut numai ntimpul simulrii

    (box) amn definirea intervalului de indexare i adireciei de variaie

    2 tablouri neconstrnse n pachetul Standard: type Bit_vector is array (Natural range ) of Bit; type String is array (Positive range ) of Character;

  • TIPURI DE DATE

    Tipuri compuse articoleelemente (cmpuri) diferiteenumerare cmpuri ntre record end record selectarea prin notaia cu punct

  • TIPURI DE DATE

    Tipuri compuse indicarea valorilor - notaia prin agregareasociere poziional

    conteaz ordinea n lista elementelorasociere prin denumire

    nume => valoare ordinea cmpurilor nu conteaz

    asociere mixt ncepe cu partea poziional

    pentru iniializare se folosete others

  • TIPURI DE DATE

    Tipuri acces (pointeri) indic spre obiecte definite anterior pt. crearea dinamic de obiecte alocarea

    dinamic a memoriei alocarea - new; dezalocarea - deallocate la declarare - iniializare cu valoarea implicit

    null

  • TIPURI DE DATE

    Tipuri fiier fiiere cu acces secvenial la declarare trebuie precizat tipul de date din

    fiier 3 subprograme create automat la declararea

    de tip fiier: Read, Write, Endfile

  • TIPURI DE DATE

    Conversii de tip conversia - foarte restrictiv posibil n 3 cazuri: tipuri cu reprezentare ntreag sau flotantpentru tablouri

    aceleai dimensiuni aceleai tipuri de elemente indecii trebuie s fie convertibili

    conversia unui tip n el nsui

  • ATRIBUTE

    Generaliti caracteristic asociat unui tip sau unui

    obiect, care poate fi cunoscut n moddinamic, n timpul rulrii

    notaie - adugarea unui apostrof dupnumele tipului sau obiectului

    atribute:predefinitedefinite de proiectant

  • ATRIBUTE

    Atribute predefinite pot fi: valori (tipizate), funcii, tipuri, intervale

    de variaie se aplic unor prefixuri care pot fi: valori,

    tipuri, etichete simplific scrierea apar n funcii utilitare

  • ATRIBUTE

    Atribute predefinite atribute definite pe tipuriT desemneaz un tip (obiectul asupra cruia

    acioneaz atributul), prefix al atributuluiobiectnume_atribut(parametri)

  • ATRIBUTE

    Atribute predefinite atribute definite pe tipuri tip sau subtip scalar T; X = tip scalar

    Atribut RezultatTleft Limita la stnga a lui TTright Limita la dreapta a lui TTlow Limita inferioar a lui TThigh Limita superioar a lui TTbase Tipul de baz a lui TTimage(X) irul XTvalue(X) Valoare de tip T

  • ATRIBUTE Atribute predefinite atribute definite pe tipuri tip sau subtip discret sau fizic T; X membru al lui

    T; N numr ntreg Atribut Rezultat

    Tpos(X) Numrul poziiei lui X n TTval(N) Valoarea la poziia N n TTleftof(X) Valoarea n T, cu o poziie n stnga lui XTrightof(X) Valoarea n T, cu o poziie n dreapta lui XTpred(X) Valoarea n T, cu o poziie mai mic dect XTsucc(X) Valoarea n T, cu o poziie mai mare dect XTascending Valoare boolean pt. interval cresctor sau

    descresctor

  • ATRIBUTE

    Atribute predefinite atribute definite pe tipuri sau subtipuri tablouA = tablou; N = numr ntreg ntre 1 i numrul

    dimensiunilor lui A Atribut Rezultat

    Aleft(N) Limita stnga a domeniului indicelui dimensiunii N a lui AAright(N) Limita dreapta a domeniului indicelui dimensiunii N a lui AAlow(N) Limita inferioar a domeniului indicelui dimensiunii N a lui AAhigh(N) Limita superioar a domeniului indicelui dimensiunii N a lui AArange(N) Domeniul indicelui dimensiunii N a lui AAreverse_range(N) Inversul domeniului indicelui dimensiunii N a lui AAlength(N) Lungimea domeniului indicelui dimensiunii N a lui AAascending(N) Valoare boolean pentru direcia indicelui dimensiunii N a lui A

  • ATRIBUTE

    Atribute predefinite atribute definite pe semnale Satribute semnal

    Atribut RezultatSdelayed(T) Semnal S ntrziat cu T uniti de timpSstable(T) Valoare boolean True dac S e fr

    evenimente n TSquiet(T) Valoare boolean True dac S e inactiv n TStransaction Modificare valoare Bit de cte ori S este activ

  • ATRIBUTE Atribute predefinite atribute definite pe semnale Satribute funcie

    Atribut RezultatSevent Valoare boolean True pt. eveniment pe SSactive Valoare boolean True dac S e activSlast_event Timpul trecut de la ultimul eveniment pe S

    (valoare Time)Slast_active Timpul trecut de la ultima activare a lui S

    (valoare Time)Slast_value S imediat nainte de ultima modificareSdriving_value Permite o operaie de atribuireSdriving Valoare boolean dac S nu este deconectat

  • ATRIBUTE

    Atribute predefinite atribute definite pe obiecte n sens larg Xutilizate pentru elaborare de mesaje

    Atribut RezultatXsimple_name Numele XXpath_name Numele X i etichetele de revenire la XXinstance_name Numele X, etichetele de revenire la X,

    informaii de configurare

  • ATRIBUTE

    Atribute definite de utilizator declarare atributattribute nume_atribut: tip_atribut;

    specificare atribut (primete valoare)attribute nume_atribut of obiect is expresie;nu pot fi dect constante, deci sunt statice

    utilizare atribut - cu notaia cu apostrofobiectnume_atribut

  • ATRIBUTE Atribute definite de utilizator se pot raporta la:entiti, arhitecturi, configuraii, pachete,

    proceduri, funcii, tipuri, subtipuri, constante,semnale, variabile, componente, etichete

    raportarea se poate face: la anumite elemente, care trebuie numite n

    cmpul obiect nume_element, {nume_element}: clas_element pentru toate celelalte elemente ale unei clase:

    others: clas_element la toat clasa de elemente

    all.clas_elemente

    LIMBAJUL VHDL - 2UNITI DE PROIECTAREUNITI DE PROIECTAREUNITI DE PROIECTAREUNITI DE PROIECTAREUNITI DE PROIECTAREUNITI DE PROIECTAREUNITI DE PROIECTAREUNITI DE PROIECTAREUNITI DE PROIECTAREUNITI DE PROIECTAREUNITI DE PROIECTAREUNITI DE PROIECTARESEMNALESEMNALESEMNALESEMNALESEMNALESEMNALESEMNALESEMNALESEMNALESEMNALESEMNALESEMNALEPARAMETRI GENERICIPARAMETRI GENERICIPARAMETRI GENERICIPARAMETRI GENERICIPARAMETRI GENERICICONSTANTEOPERATORIOPERATORIOPERATORIOPERATORIOPERATORITIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATETIPURI DE DATEATRIBUTEATRIBUTEATRIBUTEATRIBUTEATRIBUTEATRIBUTEATRIBUTEATRIBUTEATRIBUTEATRIBUTEATRIBUTE