Sei sulla pagina 1di 41

Univerzitet u Novom Sadu

Fakultet tehnikih nauka


Odsek za raunarsku tehniku i
raunarske komunikacije

Osnovi logikog projektovanja


sekvencijalnih mrea

Automati opteg tipa


Kako memorisati 1 bit
informacije?
Koncepcijski dva invertora povezana u krug pamte stanje

Ako bi im se dodao idealan preklopnik, stanje bi se moglo


menjati
Preklopnik
gore: upii
dole: pamti

2
SR le (latch)

NILI NI

S R Q Q
S R Q Q
0 0 Q- Q-
0 0 Q- Q-
0 1 0 1
0 1 0 1
1 0 1 0
1 0 1 0
1 1 1 1
1 1 0 0

3
D le (latch)

NILI NI

4
Gejtovani D (latch)
Le sa dozvolom upisa

5
Taktovani D flip-flop
sa NI kolima
Samo pri tranziciji CLK (0-1) moe doi do
promene A i B!

Ako je CLK=0 (A,B)=(1,1) izlazni le pamti.

Ako je CLK=1 promena na D ne afektira (A,B)

CLK D A B S R Q
0 0 1 1 0 0 Q- donji le u zabr stanju
1 0 1 0 0 1 0
0 1 1 1 0 0 Q- gornji le u zabr stanju
1 1 0 1 1 0 1

6
Taktovani D flip-flop
sa NILI kolima
Samo pri tranziciji CLK (1-0) moe doi do
promene A i B!

Ako je CLK=1 (A,B)=(0,0) izlazni le pamti.

Ako je CLK=0 promena na D ne afektira (A,B)

CLK D A B S R Q
1 0 0 0 0 0 Q- gornji le u zabr stanju
0 0 1 0 0 1 0 reset
1 1 0 0 0 0 Q- donji le u zabr stanju
0 1 0 1 1 0 1 set

7
Memorijski element tipa
vodei-pratei (engl. Master-Slave)

Q1
R R Q2
VODEI PRATEI
ST ST
F-F Q2 F-F
S S Q2

ST
a)

TAKT
R

Q1

Q2

aktivan
aktivan pratei
vodei
b
Aritmetike kombinacione mree )
i standardne sekvencijalne mree 8
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Odsek za raunarsku tehniku i
raunarske komunikacije

Standardne
sekvencijalne mree

Registri i brojai
Registri

Registri predstavljaju skup elementarnih automata (flip-flopova) i


kombinacionih mrea koje omoguuju pamenje rei i u optem
sluaju omoguuju izvravanje sledeih elementarnih operacija:
postavljanje registara na nulu;
prijem rei iz drugog registra, kombinacione mree ili brojaa;
prenos rei u drugi registar, kombinacionu mreu ili broja;
pretvaranje direktnog koda u komplementarni kod i obrnuto;
pomeraj rei u levo i desno za dati broj razreda;
pretvaranje tipa serijsko/paralelno i paralelno/serijsko.

Ut
ULAZ (U)
za U p 1
n
It 1
Up
U It u protivnom
B
T I

n
IZLAZ (I)
Aritmetike kombinacione mree i standardne sekvencijalne mree 10
Sinhrono vs. asinhrono

reset asinhron u reset sinhron u


odnosu na takt signal odnosu na takt signal

reset = inicijalizacija stanja flip-flopa

Aritmetike kombinacione mree i standardne sekvencijalne mree 11


Registar sa sinhronim
postavljanjem poetnog stanja
LIBRARY ieee; ARCHITECTURE ARH_REG OF REG IS
USE ieee.std_logic_1164.all; -- stanje registra
SIGNAL sREG : STD_LOGIC_VECTOR
ENTITY REG IS (pWIDTH-1 DOWNTO 0);
GENERIC ( BEGIN
-- pretpostavljeni broj bita je 4
pWIDTH: integer := 4 PROCESS (iCLK) BEGIN
); IF (iCLK'EVENT AND iCLK = '1') THEN
PORT ( IF (iCLR = '1') THEN
iCLK, -- sinhrono postavljanje
iCLR : IN STD_LOGIC; -- pocetne vrednosti
iCE : IN STD_LOGIC; sREG <= (OTHERS => '0');
iD : IN STD_LOGIC_VECTOR ELSE
(pWIDTH-1 DOWNTO 0); IF (iCE = '1') THEN
oQ : OUT STD_LOGIC_VECTOR -- upis u registar
(pWIDTH-1 DOWNTO 0) sREG <= iD;
); END IF;
END REG; END IF;
END IF;
END PROCESS;

-- preslikavanje stanja registra


-- na izlazni vektor
oQ <= sREG;

END ARH_REG;

Aritmetike kombinacione mree i standardne sekvencijalne mree 12


Registar sa asinhronim
postavljanjem poetnog stanja
LIBRARY ieee; ARCHITECTURE ARH_REG OF REG IS
USE ieee.std_logic_1164.all; -- stanje registra
SIGNAL sREG : STD_LOGIC_VECTOR
ENTITY REG IS (pWIDTH-1 DOWNTO 0);
GENERIC ( BEGIN
-- pretpostavljeni broj bita je 4
pWIDTH: integer := 4 PROCESS (iCLK, iCLR) BEGIN
); IF (iCLR = '1') THEN
PORT ( -- asinhrono postavljanje
iCLK, -- pocetne vrednosti
iCLR : IN STD_LOGIC; sREG <= (OTHERS => '0');
iCE : IN STD_LOGIC; ELSIF (iCLK'EVENT AND iCLK = '1') THEN
iD : IN STD_LOGIC_VECTOR IF (iCE = '1') THEN
(pWIDTH-1 DOWNTO 0); -- upis u registar
oQ : OUT STD_LOGIC_VECTOR sREG <= iD;
(pWIDTH-1 DOWNTO 0) END IF;
); END IF;
END REG; END PROCESS;

-- preslikavanje stanja registra


-- na izlazni vektor
oQ <= sREG;

END ARH_REG;

Aritmetike kombinacione mree i standardne sekvencijalne mree 13


Pomeraki registri

PARALELNI ULAZ (U)


n Up

U
Usd Usl

T I P

n
PARALELNI IZLAZ (I)

It za p 0
U t za p U p

It 1
I n 1 , I n 2 , I1 , U sl za p pomeranje u levo
U sd , I n , , I 3 , I 2 za p pomeranje u desno

Aritmetike kombinacione mree i standardne sekvencijalne mree 14


Primeri pomerakih registara

Primer 1 Pomeraki registar sa serijskim ulazom/izlazom


I

T
Qn Qn-1 Q1
P

Primer 2 Pomeraki registar sa paralelnim ulazom i serijskim izlazom


I

T
U Qn Qn-1 Q1
P

Un Un-1 U1

Aritmetike kombinacione mree i standardne sekvencijalne mree 15


Primer: pomeraki registar sa
paralelnim ulazom i serijskim izlazom
D3 D 2 D 1 D 0
LOAD Fi
CLK 0 Qi+ 1

CLR OUT 1 Di
LOAD

Fi LOAD Qi 1 LOAD Di

Aritmetike kombinacione mree i standardne sekvencijalne mree 16


Pomeraki registar u VHDL-u
(serijski ulaz, paralelni izlaz)
PROCESS (iCLK) BEGIN
IF (iCLK'EVENT AND iCLK = '1') THEN
IF (inRESET = '0') THEN
-- sinhroni reset
sREG <= "00000";
ELSE
-- dozvoljeno pomeranje?
IF (iSE = '1') THEN
-- LSB bit ulazi prvi
sREG <= ( iD & Operator
sREG(4) &
sREG(3) &
konkatenacije
sREG(2) &
sREG(1)
);
END IF;
END IF;
END IF;
END PROCESS;

Aritmetike kombinacione mree i standardne sekvencijalne mree 17


Brojai

Brojai su sekvencijalne mree sa jednim binarnim ulazom X


(brojaki impuls), iji dijagram stanja predstavlja repetitivni ciklus.
X=0 X=0 X=0 X=0

X=1 X=1 X=1


S0 S1 S2 Sn-1

Broj razliitih stanja u ciklusu se naziva modul ili osnova brojaa


(broja modula N je broja sa N stanja).

Ako se stanja oznae celim brojevima 0,1,...,N-1, funkcija prelaza brojaa


moe se analitiki izraziti u obliku.
S( t 1) (S( t ) x ) mod N

Broj elementarnih automata potrebnih za realizaciju brojaa sa N stanja je


m log 2 N
Aritmetike kombinacione mree i standardne sekvencijalne mree 18
Tipian broja

Q3 Q2 Q1 Q0
B

T
ZB ZADNJI BROJ
DB

Up

U3 U2 U1 U 0

perioda N=16, n=4

Aritmetike kombinacione mree i standardne sekvencijalne mree 19


Primeri brojaa

B
Broja od 1 do 12
Q3 Q2 Q1 Q0 T
B ZB y
x DB
Up
T
ZB
DB
Up 0 1 1 1

Q3
Q2 a)
0 0 0 1
T
x

STANJA S14 S15 S7 S8 S9 S9 S10 S11 S12 S13 S14 S15 S7


y

b)
a) Delitelj po modulu 9
b) Deo vremenskih signala
Aritmetike kombinacione mree i standardne sekvencijalne mree 20
Specijalni brojai

Decimalni broja:
na izlazu se dobijaju vrednosti decimalnog
brojnog sistema

Redni (kruni) broja:


poseduje onoliko memorijskih elemenata
koliko ima simbola
( modul brojaa = broj flip-flopova )

Donsonov broja:
Modifikacija krunog brojaa
( modul brojaa = 2 x broj flip-flopova )
Aritmetike kombinacione mree i standardne sekvencijalne mree 21
Redni broja

Aritmetike kombinacione mree i standardne sekvencijalne mree 22


Donsonov broja

Aritmetike kombinacione mree i standardne sekvencijalne mree 23


Primer realizacije u VHDL-u

library IEEE; architecture BROJAC_ARH of BROJAC is


use IEEE.STD_LOGIC_1164.ALL; SIGNAL sCOUNTER : STD_LOGIC_VECTOR
use IEEE.STD_LOGIC_ARITH.ALL; (3 DOWNTO 0) :=
use IEEE.STD_LOGIC_UNSIGNED.ALL; "0000";
begin
entity BROJAC is
port ( PROCESS (iCLK, inRESET)
iCLK : in STD_LOGIC; BEGIN
inRESET : in STD_LOGIC; IF inRESET='0' THEN
iDIRECTION : in STD_LOGIC; sCOUNTER <= "0000";
oCNT : out STD_LOGIC_VECTOR ELSIF iCLK='1' AND iCLK'event THEN
(3 downto 0) IF iDIRECTION='1' THEN
); sCOUNTER <= sCOUNTER + 1;
end BROJAC; ELSE
sCOUNTER <= sCOUNTER - 1;
END IF;
Preklapanje operatora END IF;
tipa std_logic_vector END PROCESS;
( sCOUNTER ) i oCNT <= sCOUNTER;
tipa integer (+1 i -1)
end BROJAC_ARH;

Aritmetike kombinacione mree i standardne sekvencijalne mree 24


Definicija sekvencijalnih mrea

x1(t) z1(t)
Opti model digitalnog
x2(t)
sistema se definie
DIGITALNI z2(t) funkcijom u vremenu sa
SISTEM n ulaznih promenljivih i
...

...
xN(t) zp(t) p izlaznih promenljivih

Ukoliko vrednosti izlaznih promenljivih zavise ne samo od trenutnih


vrednosti ulaznih promenljivih nego i od prolih vrednosti (parova
ulaza-izlaza) za digitalni sistem se kae da je sekvencijalni sistem ili
automat
X1(t) Z1
...

...
KOMBINACIONA
Xn(t) MREA Zm

Yr
Y1 ... Y1(t)...Yp(t)
...
MEMORIJA

Aritmetike kombinacione mree i standardne sekvencijalne mree 25


Vremensko ponaanje automata

Izlaz automata u trenutku t, oznaen sa z(t), zavisi od ulazne


vremenski zavisne funkcije u intervalu (-, t)

Vrednosti ulazne vremenske funkcije x(-, t) grupie u klase tako da


sve vremenske funkcije koje imaju isti uticaj na izlaz u trenutku t,
pripadaju istoj klasi.

Klase predstavljaju STANJA koja se oznaavaju promenljivom S.


Njima se izraava uticaj prolih ulaza na trenutne i budue vrednosti
izlaza

U praktinim sistemima broj klasa je konaan.

Ukoliko su ulazna i izlazna azbuka (alfabet) stanja konane,


automat se naziva KONANIM

Aritmetike kombinacione mree i standardne sekvencijalne mree 26


Formalni matematiki opis
sekvencijalnih sistema
Apstraktni automat je matematiki model prekidakog upravljakog
automata koji se zadaje skupom iz est elemenata:

W=(X, Y, S, , , S0)

X = (x1, x2, ..., xn) - skup ulaznih signala ili ulazna azbuka/alfabet
(ulazna re automata)
Y = (y1, y2, ..., ym) - skup izlaznih signala ili izlaznih azbuka/alfabet
(izlazna re automata)
S = (s1, s2, ..., sk) - skup stanja ili azbuka/alfabet stanja
S0 - poetno stanje
- funkcija prelaza koja realizuje azbuno
preslikavanje skupa S X S
- funkcija izlaza koja realizuje
preslikavanje skupa S X Y
Aritmetike kombinacione mree i standardne sekvencijalne mree 27
Vremensko modelovanje
automata
Zavisnost izlaza u trenutku t od ulaza i stanja u istom vremenskom trenutku
izraava se tzv. FUNKCIJOM IZLAZA
Z(t) = ( X(t), S(t) )

Uticaj ulazne vremenske funkcije se izraava i u odnosu na promenu stanja,


odnosno, novo stanje zavisi od trenutnog stanja i ulaza. U tom sluaju govori
se o FUNKCIJI PRELAZA
S(t+) = ( S(t), X(t) )
pri emu je S(t) trenutno (sadanje), a S(t+) sledee (naredno) stanje

Poto sinhroni sekvencijalni sistemi mogu menjati stanje u


diskretnim trenucima kontinualna promenljiva t se zamenjuje
diskretnom promenljivom definisanom pozitivnim celim brojem

Sistem je u stanju S(i) u vremenskom intervalu (t-1=i-1, t=i). Sinhrona


sekvencijalna mrea se moe opisati kao
Z(t) = ( S(t), X(t) )
S(t+1) = ( S(t), X(t) )

Aritmetike kombinacione mree i standardne sekvencijalne mree 28


Sinhrone i asinhrone
sekvencijalne mree
Kod sinhronih mrea ulazi, izlazi TAKT
i interna stanja se menjaju u X

diskretnim vremenskim
trenucima, definisanim preko
sinhronizacionog ulaza S
Z
osnovnom frekvencijom takta
sistema, tj. taktom
a)
Kod asinhronih sekvencijalnih X
mrea stanja se mogu menjati u
bilo koje vreme, a ulazi mogu
biti signali razliitih nivoa koji se S
javljaju u proizvoljnom intervalu
vremena Z
b)
Aritmetike kombinacione mree i standardne sekvencijalne mree 29
Milijev i Murov automat
X(t)
K M1
U odnosu na funkciju izlaza u
praksi se sreu dva sluaja REGISTAR
STANJA ST
S(t)
Automati prve vrste ili
K M2
Milijevi (Mealy) automati
definiu funkciju izlaza u Z(t)
obliku Milijev automat
Z(t)= ( S(t), X(t) ) X(t)
K M1

Automati druge vrste ili


REGISTAR
automati Mura (Moore) STANJA ST
definiu funkciju izlaza S(t)
Z(t)= ( S(t) )
K M2

Z(t)

Murov mree
Aritmetike kombinacione mree i standardne sekvencijalne automat 30
Zadavanje konanog automata
tablinom metodom 1/2

Milijev automat se opisuje tablicama prelaza i izlaza

Primer 1: automat prve vrste (Milijev automat)

Aritmetike kombinacione mree i standardne sekvencijalne mree 31


Zadavanje konanog automata
tablinom metodom 2/2

Primer 2: nepotpuno definisan automat

Primer 3: Murov automat (automat druge vrste)

Uopteni Murov automat Konaan Murov automat


Aritmetike kombinacione mree i standardne sekvencijalne mree 32
Zadavanje konanog automata
grafom 1/3
Graf automata je orijentisani graf iji vorovi odgovaraju stanjima,
a lukovi prelazima izmeu stanja.

Dva vora grafa automata Si i Sj (polazno i stanje prelaza) spajaju se


lukovima usmerenim od Si ka Sj ako u automatu postoji prelaz
iz Si u Sj, tj. ako je Sj= (Si, Xr) pri nekom ulaznom signalu Xr.

Luku (Si, Sj) grafa automata dodeljuje se ulazni signal X i izlazni


signal Y=(S, X) ako je on definisan, a u protivnom se stavlja crtica.

Ako prelaz automata iz stanja Si u Sj proizilazi pod uticajem


nekoliko ulaznih signala, luku (Si, Sj) dodeljuju se svi ti
ulazni signali i odgovarajui izlazni signali.

Pri opisu Murovog automata u vidu grafa izlazni signal Ys=(Si)


zapisuje se unutar vora Si ili odmah pored njega

Aritmetike kombinacione mree i standardne sekvencijalne mree 33


Zadavanje konanog automata
grafom 2/3

Luk u nekom voru Si moe biti:


povratni (Si, Si)
odlazni (Si, Sj)
dolazni (Sj, Si)

Prema vrsti lukova u voru S, stanja automata su:


izolovana ako vor ima samo povratne grane
prelazna ako u voru nema dolaznih lukova
ustaljena ako vor nema odlaznih lukova.

Aritmetike kombinacione mree i standardne sekvencijalne mree 34


Zadavanje konanog automata
grafom 3/3
X2 Y1 Y1 S1 X1
S0 X1 Y1
Y2
X1 X2 Y3
Y1 Y2
X2 Y2
S0 S2
X1 X1 X1
X2 Y2 Y1 X2
S1 S2 Y1 Y3
S3
X1
Y1 X2 S0
automat A2
X2 X2 Y1
automat A1
S4 S1
X1 X1
X2
Y3

X2 X1 X2
S3 S2
X1
Y2 Y3
automat A3
Aritmetike kombinacione mree i standardne sekvencijalne mree 35
Zadavanje konanog automata
matrinom metodom 1/2
Matrino zadavanje automata vri se preko kvadratne matrice
C=Cij ije vrste odgovaraju polaznim stanjima, a kolone
stanjima prelaza.

Element Cij=Xp/Yq koji stoji na preseku i-te vrste i j-te kolone u


sluaju Milijevog automata, odgovara ulaznom signalu Xp koji izaziva
prelaz iz stanja Si u Sj i izlaznom signalu Yq, koji se izdaje pri tom
prelazu

Automat A1
Aritmetike kombinacione mree i standardne sekvencijalne mree 36
Zadavanje konanog automata
matrinom metodom 2/2

Primer zadavanja Murovog automata

Automat A3

Aritmetike kombinacione mree i standardne sekvencijalne mree 37


Kanonika struktura automata

X1(t) z(t)
Poto je sistem sinhron,
signal takta ili sinhronizacije
...

X1(t) KM
(oznaen ST) odreuje
M
vremenske trenutke u
ME1 kojima dolazi do formiranja
narednog stanja i izdvajanja
...

ME2 ...
izlaznog signala.
...

MEk
INICIJALIZACIJA U vreme t unosi se novo
ST stanje u memoriju i tu se
uva sve do trenutka t+1.
a
) Signal takta ine periodini
Idealni
takt -1 0 1 2 3 4 5 6
impulsi takta, koji u
idealnom sluaju imaju
b nultu irinu
)
Inicijalizacija se realizuje nad delom
memorije posebnim signalom inicijalizacije.
Aritmetike kombinacione mree i standardne sekvencijalne mree 38
Kodirane tablice
ulaza, izlaza i stanja

X1 Z1
X2 Z2
KM

Q1 Y1
Q1 ME1
Q2 Y2
Q2 ME2

Aritmetike kombinacione mree i standardne sekvencijalne mree 39


Jednoprocesni automat u VHDL-u
architecture behavioral of sm is
type state_t is (s1, s2, s3);
signal state : state_t;
begin
oneproc: process(rst, clk)
begin
if (rst = '0') then
-- Reset
elsif(clk'event and clk = '1') then
case state is
when s1 =>
if (input = '1') then
state <= s2;
else
state <= s1;
end if;
...
...
end case;
end if;
end process;
end architecture;

Aritmetike kombinacione mree i standardne sekvencijalne mree 40


Dvoprocesni automat u VHDL-u
architecture behavioral of sm is
type state_t is (s1, s2, s3);
signal state, next_state : state_t;
begin
syncproc: process(rst, clk)
begin
if (rst = 0') then
state <= s1;
elsif(clk'event and clk = '1') then
state <= next_state;
end if;
end process;

combproc: process(state, input)


begin
case state is
when s1 =>
if (input = '1') then
next_state <= s2;
else
next_state <= s1;
end if;
...
end case;
end process;
end architecture;
Aritmetike kombinacione mree i standardne sekvencijalne mree 41

Potrebbero piacerti anche