Professional Documents
Culture Documents
Sonraki durum
Sonraki durum
Latch ler
Temel bellek elemanlar Bir latch ikili durumunu sonsuza kadar koruyabilen bir bellek elemandr. Latch ler asenkron devrelerdir ve almak iin saat iaretine ihtiyalar yoktur. Bu sebeple senkron ardl devrelerde dorudan kullanlmazlar. Flip-flop lar elde etmek iin kullanlrlar.
4
SR-Latch
R Q1
S S 0 0 0 1 1 R 0 0 1 0 1 Q1 0 1 0 1 X Q2 1 0 1 0 X
Q2
SR-Latch
S Q Q= (S Q)=S + Q Q= (R Q)=R + Q R S 0 0 1 1 1 R 0 1 0 1 1 Q x 1 0 1 0 Q x 0 1 0 1 Q
Tanmsz
C 0 1 1 1 1
S X 0 0 1 1
R X 0 1 0 1
Tanmsz
D-Latch
Tanmsz hal devrede kararszla sebep olabilecei iin SR latch ler sk kullanlmaz. zm: D-latch ler
D C R Q S Q
D-Latch
C 0 1 1 D X 0 1 Qnun sonraki durumu Deiim yok Q = 0; reset durumu Q = 1; set durumu
Q Q
Bellek elemanlarnn durumlar senkron olarak deimeli. Den veya ykselen kenar tetiklemeli bellek elemanlarna flip-flop lar denir.
10
Q D D latch (slave) C
clk
clk clk
Y=D
Q=Y=D
clk
11
Q D D latch (slave) C
12
D Flip-Flop Sembolleri
D D FF Q
clk
D D FF
clk
Karakteristik denklem
Q(t+1) = D
13
JK Flip-Flop lar
J C K Q
J 0 0 1 1
K 0 1 0 1
Karakteristik Tablo
Karakteristik denklem
Q(t+1) = JQ(t) + KQ(t)
14
T (Toggle) Flip-Flop
T
T C Q
0 1
Karakteristik Tablo
Karakteristik denklem
Q(t+1) = T Q = TQ + TQ T
J C K Q
D C
15
klar
Sonraki durum
CLK
Durum Denklemleri
Ayn zamanda gei denklemleri de denir.
Sonraki durumu imdiki durum ve girilerin bir fonksiyonu olarak verir.
rnek
y1(t+1) x
D C Q
y1 y1 y2 y2 z
y2(t+1)
D C
clk
18
k ve Durum Denklemleri
A(t+1) =(AB)x B(t+1) =xB y = ABx
y1(t+1) x
D C Q
y1 y1 y2 y2 z
Y2(t+1)
D C
clk
19
B(t+1) = ?
Giri x 0 1 0 1 0 1 0 1 Sonraki Durum
Y1 Y2
y=?
k z 0 0 0 0 0 0 0 1
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 0 0 1 0 1 0 0
0 1 0 0 0 1 0 0
m FF ve n girii olan senkron ardl bir devrenin durum tablosunda 2m+n satr vardr. 20
00
0/0
11
1/0
0/0
0/0
1/0
1 1 1 1
01
1/0
10
y1
J2
J D C C K
y2
clk 1
K2
ve ve
Giri x 0 1 0 1 0 1 0 1
K1 =x+ y2 K2 = 1
Sonraki Durum
Y1 0 0 0 1 0 1 0 0
Y2 0 1 0 0 0 1 0 0
FF girileri J1 K1 J2 K2 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1
24
Durum denklemleri
Y1 = xy2y1 + (x+ y2)y1 = xy2y1 + xy2y1 = x(y2 y1) Y2 = xy2 + 1y2 = xy2
25
Durum Diyagram
0/0 1/1
00
0/0
11
imdiki Durum y1 0 y2 0 0 1 1 0 0 1 1
Giri x 0 1 0 1 0 1 0 1
Sonraki Durum Y1 0 0 0 1 0 1 0 0 Y2 0 1 0 0 0 1 0 0
k z 0 0 0 0 0 0 0 1
1/0
0/0
0/0
1/0
0 0 1
01
1/0
10
1 1 1
Devre ne yapyor?
26
T1 = xy0 T2 = x y1
T0 clk reset
T D C C
y0
27
Durum denklemleri
Y0 = x y0 Y1 = x y0 y1
28
k y1 0 0 0 0 1 1 1 1 y0 0 0 1 1 0 0 1 1
00/00
01/01
Y1 Y0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0
11/11
10/10 0
29
Mealy makinas x ve y girileri senkron deiller. Bu sebeple, klar ksa sreli yanl deerler alabilirler. Giriler saat iareti ile senkron hale getirilmelidir veya klar sadece saatin ykselen kenarnda rneklenmelidir. 31
T D
clk reset
C C
x=0 x=1
x=0 x=1 0 1 0 1
k x=0 x=1 0 0 0 1
35
36
1/0
0/0 1/1
1/1
37
00
Balang 0/0 111 geldi 0/0
1/0
01
1 geldi 1/0 11 geldi
0/0 1/1
11
1/1
10
38
00
01
11
10
0 0
0 1
1 1
0 0
y2x y1 0 1
00
01
11
10
0 0
1 1
0 1
0 0
D1 = y1x + y2x
D2 = y1x + y2x
40
0 0
0 0
0 1
0 1
z = y1y2
41
D2 = y1x + y2x
D1
z = y1y2
D C R Q
y1
z D2
D C R Q
y2
clock
reset
42
6 tane kayan k
= lojik-1
O= lojik-0
43
001
D1
D2
010
Y = Jy + Ky
J 0 K 0 1 0 1 Y y 0 1 Q
101
D5
D4
100
D3
011
0 1 1
imdiki Durum
y2 y1 y0
Sonraki Durum
Y2 Y1 Y0
Flip-flop girileri J2 K2 J1 K1 J0 K0
klar z5 z4 z3 z2 z1 z0
0 0 0 0 1 1
0 0 1 1 0 0
0 1 0 1 0 1
0 0 0 1 1 0
0 1 1 0 0 0
1 0 1 0 1 0
0 0 0 1 k k
k k k k 0 1
0 1 k k 0 0
k k 0 1 k k
1 k 1 k 1 k
k 1 k 1 k 1
1 0 0 0 0 0
1 1 0 0 0 1
1 1 1 0 1 1
0 1 1 1 1 1
0 0 1 1 1 0
44
0 0 0 1 0 0
0 k
0 k
0 k
1 k
k 0
k 1
k k
k k
J2 = y1y0
01 11
K2 = y0
01 11 10
0 0
1 0
01
k k
11
k k
k k
k k
01
1 k
11
0 k
10
J1 = y2y0 1 1 k k J0 = 1 k k 1 k
K1 = y0 k k 1 1 K1 =1 1 k k k
1 0 y0 0 y2 y1
z5=y2y1y0+k(y2y1y0+y2y1y0) z4=y2y1y0+y2y1y0+y2y1y0+k(y2y1y0+y2y1y0)
0 1 y0 0 y2 y1
z1=y2y1y0+y2y1y0+y2y1y0+k(y2y1y0+y2y1y0)
47
48
Lojik diyagram
J2 = y1y0 K2 = y0 J1 = y2y0 K1 = y0 J0 = 1 K1 =1
J C K
Q Q
J D C C K
J D C C K
y2
Q
y1
y0
49
2
Ka flip-flop? Durum kodlama: D0 D1 D2 ... D7 000 001 010 111
D2
D6
D3 D4
D5
Durum Diyagram
50
0 0
0 0
1 1
0 0
0 0
1 1
1 1
0 0
T2 = y1y0 T0 = 1
T1 = y0
52
lojik-1
T0
T C R
y0
y1
T2 saat reset
T C R
y2
53
Kullanlmayan Durumlar
D0 D1 D4
Modulo-5 sayc
D2 imdiki Durum y2 0 0 0 0 1 y1 0 0 1 1 0 y0 0 1 0 1 0 Y2 0 0 0 1 0
D3 Sonraki Durum Y1 0 1 1 0 0 Y0 1 0 1 0 0
54
Kullanlmayan Durumlar
imdiki Durum y2 0 0 0 0 1 y1 0 0 1 1 0 y0 0 1 0 1 0 Sonraki Durum Y2 0 0 0 1 0 Y1 0 1 1 0 0 Y0 1 0 1 0 0 y1y0 01 1 X 11 0 X 10 1 X y2 0 1 00 1 0 01 0 X 11 0 X 10 1 X y1y0 y2 00 0 1 0 0 01 0 X 11 1 X 10 0 X
Y2 = y1y0
y1y0 y2 00 0 1 0 0
Y1 = y1 y0 + y1y0 = y1 y0
Y0 = y2 y0
55
Kullanlmayan Durumlar
imdiki Durum y2 0 0 0 0 1 1 1 1 y1 0 0 1 1 0 0 1 1 y0 0 1 0 1 0 1 0 1 Sonraki Durum Y2 0 0 0 1 0 0 0 1 Y1 0 1 1 0 0 1 1 0 Y0 1 0 1 0 0 0 0 0 101 110 010 011 001 100 000 111
Y2 = y1y0 Y1 = y1 y0 Y0 = y2 y0
Tasarm rnei
1 bitlik giriinden son 1010 geldiinde k 1 olan devreyi tasarlaynz. rnek: x= 1010 1011 ise z= 0001 0000 1/0 0/0
1/0 0/0 0/1 11 101 geldi 1/0 1/0 0/0 10 geldi 10 1 geldi
00
Balang
01
Meally makinas
57
Durum Tablosu
imdiki Durum y1 y2 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 Giri x 0 1 0 1 0 1 0 1 Sonraki Durum Y1 Y2 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 k z 0 0 0 0 0 0 1 0
58
VHDL Kodu
library IEEE; use IEEE.STD_LOGIC_1164 .ALL; entity MeallyMachine is Port ( x : in STD_LOGIC; y : out STD_LOGIC; clk : in STD_LOGIC; rst : in STD_LOGIC); end MeallyMachine; architecture Behavioral of MeallyMachine is type state_type is (BD,Bir,Bir0,Bir01); signal durum : state_type; Begin process(clk) begin if clk'event and clk='1' then if rst='1' then durum <= BD; y <= '0'; else case durum is when BD => y <= '0'; if x='1' then durum <= Bir; else durum <= BD; end if; when Bir=> y <= '0'; if x='1' then durum <= Bir; else durum <= Bir0; end if; when Bir0 => y <= '0'; if x='1' then durum <= Bir01; else durum <= BD; end if; when Bir01=> if x='1' then durum <= Bir; y <= '1; else durum <= Bir0; y <= '0; end if; end case; end if; end if; end process; 59 end Behavioral;
Devre emas
60
Zamanlama Diyagram
Moore makinas
1 1 1 0
101 geldi k=0
000
1010 geldi k=1
Balang k=0 0
001
100
011 1
010
62
VHDL Kodu
architecture Behavioral of MooreMachine is type state_type is (BD,Bir,Bir0,Bir01,Bir010); signal durum : state_type; Begin process(clk) begin if clk'event and clk='1' then if rst='1' then durum <= BD; y <= '0'; else case durum is when BD => y <= '0'; if x='1' then durum <= Bir; else durum <= BD; end if; when Bir => y <= '0'; if x='1' then durum <= Bir; else durum <= Bir0; end if; when Bir0 => y <= '0'; if x='1' then durum <= Bir01; else durum <= BD; end if; when Bir01 => y <= '0'; if x='1' then durum <= Bir; else durum <= Bir010; end if; when Bir010 => y <= '1'; if x='1' then durum <= Bir; else durum <= BD; end if; end case; end if; end if; end process; end Behavioral; 63
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity MooreMachine is Port ( x : in STD_LOGIC; y : out STD_LOGIC; clk : in STD_LOGIC; rst : in STD_LOGIC); end MooreMachine;
Devre emas
64
Zamanlama Diyagram