15
În entitate se definește interfața componentei. Aici se găsesc porturile de intrare / ieșire și tipul lor.
Conexiunile între componente vor putea fi realizate dacă tipurile și dimensiunile semnalelor de intrare /
ieșire vor fi respectate.
În arhitectură definim comportamentul ce va trebui să îl aibă componenta respectivă, dar și semnalele
ce ne ajută să definim acel comportament.
Tipul de date STD_LOGIC este un standard definit în biblioteca IEEE.STD_LOGIC_1164. Acest tip de date
este utilizat pentru definirea datelor ce rețin un singur bit. Datele de tip STD_LOGIC pot lua următoarele
valori [https://www.cs.sfu.ca/~ggbaker/reference/std_logic/1164/std_logic.html]
- ‘U’ : neinițializat (Uninitialized)
- ‘X’ : valoare necunoscută. Nu poate fi determinată valoarea
- ‘0’ : 0 logic
- ‘1’ : 1 logic
- ‘Z’ : înaltă impedanță
- ‘W’ : semnal slab însă necunoscut (Weak signal)
- ‘L’ : semnal slab care probabil tinde să meargă către 0 logic (Low signal)
- ‘H’ : semnal slab care probabil tinde să meargă către 1 logic (High signal)
- ‘-‘ : Nu contează valoarea (Don’t care)
Cu toate că acest tip de date oferă o gamă așa de largă de valori, în realitate, datele utilizate în interiorul
FPGA-ului sunt doar de tipul ‘0’ și ‘1’ logic, celelalte fiind utilizate mai mult la simulare.
Tot în această bibliotecă există tipul de date STD_LOGIC_VECTOR, acesta fiind folosit atunci când se
dorește a se utiliza o anumită dată pe mai mulți biți.
Astfel, dacă dorim ca în loc de S0 și S1 să avem un singur port pe doi biți cu numele S și în loc de Y0, Y1,
Y2 si Y3 să avem un singur port pe 4 biți cu numele Y, entitatea anterioară va putea fi scrisă utilizând
următorul cod:
➔ Aici se vede înlocuirea lui S cu un
vector de 2 biți și Y cu un vector de 4 biți
➔ Accesul la biții din vector se face
utilizând paranteza rotundă