curs2vhdl
Post on 10-Nov-2015
212 Views
Preview:
DESCRIPTION
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
top related