Sunteți pe pagina 1din 8

UNIVERSITATEA TEFAN CEL MARE SUCEAVA

FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR

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

UNIVERSITATEA TEFAN CEL MARE SUCEAVA


FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
cnd trece din 1 n 0 (front cztor). Totui, pe durata ct semnalul de validare (ceasul)
este constant, 1 sau 0, starea bistabilului rmne constant chiar dac se schimb
intrarea.
ntr-un sistem cu microprocesor, de obicei, dorim ca schimbrile s se fac precis
la acelai moment de timp. Prin urmare, bistabilele sunt utilizate mai des dect latch-urile,
din moment ce toate pot fi sincronizate s-i schimbe valoarea doar frontul activ al
semnalului de validare (ceasului). Acest semnal de activare pentru bistabile este de obicei
un semnal de ceas controlat global.
Din punct de vedere istoric, exist patru tipuri principale de baz de bistabil: SR, D,
JK i T. Diferena principal dintre ele este numrul de intrri pe care le pot avea i cum
pot fi schimbate coninuturile lor. Orice circuit secvenial propus poate fi construit utiliznd
oricare dintre aceste tipuri de bistabile (sau combinaii dintre acestea). Totui, selectarea
unui tip de bistabil n loc de altul poate afecta mrimea general a circuitului. Astzi,
majoritatea circuitelor secveniale sunt proiectate cu bistabile de tip D din cauza uurinei
n utilizarea lor. De aceea, ne vom concentra n principal doar pe bistabile de tip D.
n acest capitol, vom vedea cum sunt proiectate i cum funcioneaz latch-urile i
bistabilele. Din moment ce bistabilele sunt inima circuitelor secveniale, n proiectarea
microprocesoarelor este foarte important o bun nelegere a modului cum sunt
proiectate i cum funcioneaz.

3.1.1 Latch-ul de tip SR


Circuitul din figura 3-1 este denumit latch SR. n completarea celor dou ieiri Q i
Q, mai sunt dou intrri S i R respectiv pentru setare i resetare. Latch-ul SR poate fi n
una din cele dou stri: o stare de setare atunci cnd Q=1 sau o stare de resetare atunci
cnd Q=0. Deoarece S i R sunt negate nseamn c sunt active pe 0.
n figura 3-1 sunt prezentate schema circuitului utiliznd pori NAND, tabelul de
adevr, simbolul i evoluia n timp a circuitului SR.

Figura 3-1 Latch SR : (a) circuit utiliznd pori NAND; (b) tabela de adevr; (c)
simbolul logic; (d) evoluia n timp.

UNIVERSITATEA TEFAN CEL MARE SUCEAVA


FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
Reamintim c pentru bistabilele sau latch-urile de tip SR combinaia 00 (pentru
implementarea cu pori NAND sau 11 pentru implementarea cu pori NOR) este interzis.
n figura 3-2 se prezint bistabilul latch SR implementat cu pori NOR.

Figura 3-2. Latch-ul SR: (a) circuit utiliznd pori NOR; (b) tabela de adevr; (c)
simbolul logic.

3.1.2 Activarea Latch-ului SR


Latch-ul SR este tot timpul sensibil la intrri. n figura 3-3 se prezint un latch cu
semnal de validare. Ct timp semnalul de validare este pe 1, latch-ul este transparent,
adic orice modificare a intrrilor determin modificarea ieirii n conformitate cu tabelul
de adevr. Trecerea n 0 a semnalului de validare face ca ultima informaie de la ieire s
fie memorat (latch zvort) att timp ct semnalul rmne pe 0. Se obine un latch cu
activare.
n figura 3-3 sunt prezentate schema circuitului utiliznd pori NAND, tabelul de
adevr, simbolul i evoluia n timp a circuitului SR.

Figura 3-3. Latch-ul SR cu activare: (a) circuit utiliznd pori NAND; (b) tabela de
adevr; (c) simbolul logic; (d) evoluia n timp.

UNIVERSITATEA TEFAN CEL MARE SUCEAVA


FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
3.1.3 Latch de tip D
n figura 3-4, legnd un inversor ntre intrarea R i S se elimin situaia interzis
cnd ambele intrri sunt pe 0. Se obine astfel un bistabil de tip D. Dup cum se poate
observa acest bistabil copie valoarea intrrii la ieire i are proprietatea de memorare
dac intrarea nu se schimb. Fr prezena unei intrri de validare, bistabilul nu are
aplicaii. Ca urmare, trebuie trecut la bistabilul de tip D cu validare.

Figura 3-4. Latch-ul D: (a) circuit care folosete pori NAND; (b) tabela de adevr; (c)
simbolul logic.

3.1.4 Latch-ul D cu activare


Schema din figura 3-5, care utilizeaz un multiplexor comandat de semnalul de
validare E, rezolv problema zvorrii. Ct E este pe 0 bistabilul de tip D este zvort
intrarea copiind ieirea, iar ct timp D este pe 1 logic bistabilul copie n mod transparent
intrarea la ieire.

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.

UNIVERSITATEA TEFAN CEL MARE SUCEAVA


FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR

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-6. Semnalul de ceas


5

UNIVERSITATEA TEFAN CEL MARE SUCEAVA


FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY Clockdiv IS PORT (
Clk25Mhz: IN STD_LOGIC;
Clk: OUT STD_LOGIC);
END Clockdiv;
ARCHITECTURE Behavior OF Clockdiv IS
CONSTANT max: INTEGER := 25000000;
CONSTANT half: INTEGER := max/2;
SIGNAL count: INTEGER RANGE 0 TO max;
BEGIN
PROCESS
BEGIN
WAIT UNTIL Clk25Mhz'EVENT and Clk25Mhz = '1';
IF count < max THEN
count <= count + 1;
ELSE
count <= 0;
END IF;
IF count < half THEN
Clk <= '0';
ELSE
Clk <= '1';
END IF;
END PROCESS;
END Behavior;

Figura 3.7. Descrierea comportamental VHDL a unui circuit divizor de ceas.

3.1.6 Bistabile de tip D


Din nefericire pentru latch, un bistabil nu este sensibil pe nivel, ci este triggerat pe
front. Cu alte cuvinte, data se stocheaz ntr-un bistabil doar la un front activ al ceasului.
Un bistabil de tip D activ pe front se obine prin legarea n serie a unui ir de latch-uri de
tip D. n figura 3-8 se prezint un bistabil de tip D activ pe front pozitiv, obinut prin
conectarea n serie a dou latch-uri de tip D. Semnalul de ceas Clk este conectat la
intrarea E ale celor dou latch-uri: unul direct i unul printr-un invertor.
Primul latch este denumit latch principal (master). Latch-ul master este activat
atunci cnd Clk =0 deoarece inversorul activeaz latch-ul MASTER. Ieirea masterului
QM copie datele de pe intrare. Totui, semnalul de la QM nu poate trece ctre ieirea
principal Q, deoarece al doilea latch (denumit latch slave) este dezactivat cnd Clk=0.
Atunci cnd Clk=1, latch-ul master este dezactivat (zvort) dar latch-ul slave este activat
astfel nct ieirea de la lach-ul master, QM, este transferat ctre ieirea principal Q.
Lach-ul slave se activeaz atunci cnd Clk=1 dar coninutul se schimb doar la un front
cresctor al ceasului, deoarece odat ce Clk este pe 1, latch-ul master este dezactivat iar
intrarea latch-ului slave, QM, va fi constant. Prin urmare, cnd Clk=1 i latch-ul slave
este activat, ieirea principal Q nu se va schimba deoarece nu este schimbat intrarea
QM.

UNIVERSITATEA TEFAN CEL MARE SUCEAVA


FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
Circuitul prezentat n figura 3-8 (a) este numit bistabil cu front pozitiv deoarece
ieirea principal Q de pe latch-ul slave se schimb doar la frontul cresctor al ceasului.
Dac latch-ul slave este activat cnd ceasul este pe 0 (de ex., cu ieirea invertorului
conectat la intrarea E al latch-ului slave), atunci ne vom referi la un bistabil cu front
triggerat negativ. Circuitul este denumit i la bistabil de tip D master-slave deoarece se
utilizeaz n circuit dou latch-uri de tip D.
Triunghiul mic de pe intrarea de ceas simbolizeaz c bistabilul este activ pe front.
Prezena unui cerc n faa triunghiului ne-ar spune c bistabilul este activ pe front negativ.
Reamintim c denumirea Q reprezint starea curent, Q next starea urmtoare (viitoare) i
Q` reprezint negatul lui Q.

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.

Figura 3-9. Comparaie a unui latch, cu un bistabil triggerat pe front pozitiv i un


bistabil triggerat pe front negativ: (a) circuit; (b) evoluie n timp
7

UNIVERSITATEA TEFAN CEL MARE SUCEAVA


FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR

n figura 3-9 se compar un latch (a), un bistabil activ pe front pozitiv (b) i un
bistabil activ pe front negativ (c)

3.1.7 Bistabil de tip D cu activare


n figura 3-10 se prezint circuitul, tabela de adevr i simbolul bistabilului de tip D
cu activare.

Figura 3-10. Bistabil de tip D cu activare: (a) circuit; (b) tabela de adevr; (c)
simbolul logic

3.1.8 Intrri asincrone


Bistabilele i schimb strile doar la un front cresctor sau un front descresctor
pe baza unui semnal de ceas de sincronizare. Multe circuite necesit iniializarea
bistabilelor la o stare cunoscut care este independent de semnalul de ceas. Sunt
denumite circuite secveniale asincrone, circuitele secveniale care i schimb strile
oricnd intervine o schimbare la valorile de la intrare i acest lucru se petrece independent
de ceas.
Pe de alt parte, circuitele secveniale sincrone, schimb strile doar la frontul
activ al semnalului de ceas. De obicei, intrrile asincrone, sunt disponibile att pentru
latch-uri ct i pentru bistabile i sunt utilizate fie pentru a seta sau fie pentru a terge
coninutul elementului de stocare independent de ceas.
Figura 3-11 prezint latch-ul i bistabilul de tip D cu intrri asincrone de setare/
resetare active pe 0 precum i simbolurile asociate.
entru bistabilele de tip SR, JK i T.

S-ar putea să vă placă și