Documente Academic
Documente Profesional
Documente Cultură
LABORATOR nr. 7
VHDL. Latch-uri. Bistabile.
Proiectarea unui microprocesor.
1. Scopul laboratorului
n cadrul acestei lucrri se urmresc dou obiective:
1. Prezentarea latch-urilor i a bistabilelor din VHDL.
2. Coduri VHDL pentru latch-uri i bistabile.
2. Teorie VHDL
3. Consideraii teoretice pentru latch-uri i bistabile
3.1 Latch-uri i bistabile
Pn acum s-au studiat circuitele logice combinaionale, cu accent pe acele
scheme tipice UCP-urilor i anume sumatoare n cascad i cu transport anticipat,
circuitele de scdere, de deplasare i rotaii stnga/ dreapta, multiplexoare i
decodificatoare adic ntr-un cuvnt Unitatea Aritmetic i logic. n continuare ne vom
ndrepta atenia asupra circuitelor logice secveniale prin intermediul crora vom
proiecta calea de date i unitatea de control a microprocesorului..
Reamintim c ieirile circuitelor secveniale sunt dependente nu doar de intrrile lor
curente (ca i la circuitele combinaionale) dar i de intrrile anterioare. Din cauza acestei
necesiti de amintire a istoriei intrrilor, circuitele secveniale trebuie s conin elemente
de memorie.
Latch-urile i bistabilele sunt elementele principale de memorie pentru stocarea de
informaie. Prin urmare, sunt blocurile de construcie fundamentale pentru toate
circuitele secveniale. Un singur latch sau bistabil poate stoca doar un bit de informaie.
Acest bit de informaie care este stocat n latch sau bistabil este denumit starea unui latch
sau flip-flop. Prin urmare, un latch sau bistabil poate fi n una din cele dou stri: 0 sau 1.
Spunem c un latch sau bistabilul i schimb starea atunci cnd coninutul acestuia se
schimb din 0 n 1 i invers. Aceast valoare a strii este ntotdeauna disponibil la ieire.
n consecin, coninutul unui latch sau bistabil reprezint valoarea strii i este
ntotdeauna egal cu valoarea ieirii.
Diferena principal dintre latch i un bistabil este aceea c pentru un latch starea
sau ieirea este constant afectat de ctre intrarea sa att timp ct semnalul de validare
este activ. Cu alte cuvinte, atunci cnd un latch este activat, starea sa se schimb imediat
atunci cnd se schim i intrarea. Atunci cnd un latch este dezactivat, starea rmne
constant, i prin urmare este memorat valoarea anterioar. Pe de alt parte, un bistabil
i schimb starea doar la un front activ al semnalului de activare, cum ar fi momentul
precis n care semnalul trece din 0 n 1 (definit ca frontul cresctor al semnalului), sau
Figura 3-1 Latch SR : (a) circuit utiliznd pori NAND; (b) tabela de adevr; (c)
simbolul logic; (d) evoluia n timp.
Figura 3-2. Latch-ul SR: (a) circuit utiliznd pori NOR; (b) tabela de adevr; (c)
simbolul logic.
Figura 3-3. Latch-ul SR cu activare: (a) circuit utiliznd pori NAND; (b) tabela de
adevr; (c) simbolul logic; (d) evoluia n timp.
Figura 3-4. Latch-ul D: (a) circuit care folosete pori NAND; (b) tabela de adevr; (c)
simbolul logic.
Figura 3-5. Latch-ul de tip D cu validare: (a) circuit care folosete pori NAND; (b)
tabela de adevr; (c) simbolul logic (d) evoluia n timp.
3.1.5 Ceasul
Latch-urile sunt cunoscute i ca sensibile pe nivel (sau transparente) deoarece
ieirile lor sunt afectate de ctre intrri att timp ct acestea sunt validate. Starea lor de
memorie se poate schimba pe durata ct semnalul de validare este activ.
ntr-un circuit al calculatorului, totui, nu dorim ca starea memoriei s se schimbe
ct timp semnalul de validare este activ. De fapt, am dori s sincronizm toate schimbrile
strii pentru a se ntmpla la un moment de timp precis i la intervale regulate. Pentru a
se ndeplini acest lucru sunt necesare dou lucruri: 1) un semnal de sincronizare i 2) un
circuit de memorie care s nu fie sensibil pe nivel.
Un semnal de ceas este pur i simplu un semnal rectangular aa cum este
prezentat n figura 3-6. Vom numi frontul semnalului de ceas, atunci cnd i schimb
valoarea din 0 n 1, un front cresctor (rising edge). Invers, frontul descresctor
(falling edge) al ceasului este frontul cnd semnalul se schimb din 1 n 0. Vom folosi
simbolul pentru a arta frontul cresctor i pentru frontul descresctor. ntr-un circuit al
calculatorului, poate fi folosit fie frontul cresctor fie frontul descresctor al ceasului ca un
semnal de sincronizare pentru a scrie data ntr-un element de memorare. Acest front al
semnalului se refer la frontul de activare a ceasului. n toate exemplele noastre, vom
utiliza frontul cresctor al ceasului ca un front de activare. Prin urmare, la fiecare
front cresctor, data va fi nchis sau stocat n elementul de memorare.
Un ciclu de ceas dureaz ntre un front cresctor i urmtorul front cresctor sau
de la un front cztor la urmtorul front cztor de ceas. Viteza ceasului, msurat n heri
(Hz) este numrul ciclilor pe secund. Tipic, viteza ceasului pentru un microprocesor din
sistemele embedded (nglobat) funcioneaz n jurul frecvenei de 20 MHz, n timp ce un
microprocesor pentru un calculator personal (PC) funcioneaz pn la 2-3 GHz i chiar
mai sus. O perioad de ceas este timpul pentru un ciclu de ceas (secunde pe ciclu), prin
urmare este doar inversul vitezei ceasului.
Viteza ceasului este determinat de ct de repede poate produce un circuit
rezultate valide. De exemplu, un circuit combinaional cu dou nivele va avea rezultate
valide la ieire mult mai repede dect poate scoate un ALU. Bineneles, vom dori ca
viteza ceasului s fie ct mai rapid cu putin, dar poate fi att de rapid nct s
funcioneze i circuitul cel mai lent.
Figura 3-6 prezint o descriere VHDL a unui circuit divizor al ceasului care divide
un ceas de 25 MHz pn la 1 Hz.
Figura 3-8 Bistabil de tip D triggerat pe front pozitiv master-slave: (a) circuit
utiliznd latch-uri de tip D; (b) tabela de operaii; (c) simbolul logic; (d) evoluie n
timp.
n figura 3-9 se compar un latch (a), un bistabil activ pe front pozitiv (b) i un
bistabil activ pe front negativ (c)
Figura 3-10. Bistabil de tip D cu activare: (a) circuit; (b) tabela de adevr; (c)
simbolul logic
Figura 3-12. Descrierea unui bistabil de tip D: (a) tabela caracteristic; (b) ecuaia
caracteristic; (c) diagrama de stare; (d) tabelul de excitaie.
10
11
12
13
14
Figura 3-17. Codul VHDL structural pentru un bistabil de tip D triggerat pe front pozitiv
15
Figura 3-18. Codul VHDL pentru un bistabil de tip D triggerat pe un front pozitiv cu
semnal activare pe 1 i intrri asincrone pentru set i clear.
16
4. Desfurarea lucrrii
1. Se studiaz latch-urile i bistabilele.
2. Se vor testa funcionarea programelor pentru exemplele date.
TEM:
Se vor scrie exemple VHDL pentru bistabilele de tip SR, JK i T.
17