VHDL - ca un limbaj de programare

VHDL seamana cu un limbaj de programare; cei care sint familiarizati cu limbajul de programare Ada vor observa similaritati cu acest limbaj.

1.Elemente lexicale

a)Comentarii:

Comentarife in VHDL incep cu '--' si se continua pina la sfirsitul rindului. Ele nu au semnificatie intr-o descriere VHDL.

b)Identificatori:

Identificatorii in VHDL sint cuvinte rezervate sau nume definite de programator. Se formeaza dupa regula:

identificator ::= litera {[_ ] litera_sau_cifra}

Nu se face diferenta intre litere mari si litere mici, de exemplu id si Id reprezinta acelasi lucru.

c)Numere:

Numerele sint reprezentate in baza 10 (numere zecimale) sau in alta baza de numeratie (de la 2 la 16). Numerele care contin '.' sint considerate numere reale, celelalte fiind numere intregi. Numerele zecimale sint definite de:

numar_zecimal ::= intreg[.intreg][exponent]

intreg ::= cifra{[_]cifra}

exponent :.= E[+]intreg |E[-]intreg

Exemple:

0 1 123_456 678E9 --numere intregi

0.0 0.1 2.345 67 12.3E-4 --numere reale

Numerele date intr-o baza de numeratie sint definite de:

numar bazat ::= baza#intreg bazat[.intreg-bazat]#[exponent]

baza ::= intreg

intreg_bazat ::= cifra_extinsa{[_]cifra extinsa}

cifra-extinsa ::= cifra | litera

Baza si exponentul sint in baza 10. Exponentul reprezinta puterea la care se ridica baza, cu care va fi inmultit numarul. Literele de la A la F (de la a la f) sint 'cifre extinse' si reprezinta numerele de la 10 la 15.

Exemple:

2# 1100 0100# 16#C4# 4#301 #E1 --nr. intreg 196

2# 1.1111_1111_111 #E+ 11 16#F. FF#E2 --nr. real 4095

d) Caractere:

Caracterele sint delimitate de ’ ’.

Exemple: 'A' 'a'

e)Siruri de caractere:

Sirurile de caractere sint delimitate de "". Pentru a include " intr-un sir, ghilimelele trebuie dublate. Un sir de caractere poate reprezenta valoarea unui obiect care a un vector de caractere.

Exemple:

“Un sir in sir: “”Un sir”” “ --sir care contine "

f)Siruri de biti:

VHDL permite o reprezentare convenabila a vectorilor de biti ('0' sau ' 1'). Sintaxa este:

sir biti ::= baza_de_reprezentare"valoare_bit"

baza de_reprezentare ::= B | O | X

valoare bit ::= cifra extinsa{[ ]cifra_extinsa}

Baza de reprezentare poate fi B (in binar), O (in octal) sau H (in hexazecimal).

Exemple:

B"1010110" --lungimea sirului e 7

O"126" --lungimea a 9, B”001_010_110"

H"56" --lungimea a 8, B"0101_0110"