Funkcionális elemek
©
Benesóczky Zoltán 2004 A jegyzetet a szerzıi jog védi. Azt a BME hallgatói használhatják, nyomtathatják tanulás céljából. Minden egyéb felhasználáshoz a szerzı belegyezése szükséges.
1
A funkcionális logikai elemek valamely az SSI (kapukból és flip-floppokból építkezı) tervezési tapasztalatok során letisztult egyszerő funkciót valósítanak meg. funkcionális elemek
kombinációs
sorrendi regiszter
multiplexer
latch
dekóder
számláló
komparátor
shiftregiszter
összeadó
stb...
ALU BCD/7szegmenses dekóder 3 állapotú meghajtó stb...
Kapuk, flip-flopok helyett ill. mellett a funkcionális elemeket használjuk a tervezés során.
2
Multiplexer Feladata: N bementbıl kiválasztja azt az egyet, amit a címbemenetei kijelölnek. Elnevezése: N/1-es multiplexer Pl: 4/1-es multiplexer
Rajzele:
Mőködése: kimenet
MSB s1 s0
cím bemenetek
y MPX 0 1 2 3
s1 s0
adat bemenetek a)
b)
Belsı felépítése: Y 1
&
&
S0 S1 D0
&
S0 S1
&
S0 S1
D1
S0 S1 D2
3
D3
A 4/1-es multiplexer Verilog leírása module mux4_1(I0, I1, I2, I3, S, Y); input I0; input I1; input I2; input I3; input [1:0] S; output Y; reg Y; always @(S,I0,I1,I2,I3) case (S) 2'b00: Y = I0; 2'b01: Y = I1; 2'b10: Y = I2; 2'b11: Y = I3; endcase endmodule
4
Csatorna számának növelése: y MPX s1 s0 0 1 2 3
s3 s2
y MPX s1 s0 0 1 2 3
y MPX s1 s0 0 1 2 3 0 1
s0
y MPX s1 s0 0 1 2 3
y MPX s1 s0 0 1 2 3
. .
. .
15
s1
Csatorna szélességének bıvítése: y0
s1 s0
y1
y MPX s1 s0 0 1 2 3
y2
y MPX s1 s0 0 1 2 3
y MPX s1 s0 0 1 2 3
A2-0 B2-0 C2-0 D2-0
Multiplexer mint univerzális KH: MPX 0 1 2 Y 3 S1 S0
1
__ f=A B + A B
0 1
MPX 0 1 Y 2 3 S1 S0
___ _ f=A B C + A B C + A B
0 B
A
C
B
a.)
A b.)
5
Dekóder/demultiplexer A demultiplexer feladata, egy bemeneti jelet kiadni a címbenetekkel kijelölt kimenetre. A dekóder feladata a címbemenetekkel kijelölt kimenetének aktivizálása. Inkább a dekóder funkciót használjuk. Elnevezés: n/N-es dekóder/demultiplexer A dekóder rajzjele:
Mőködése:
kimenetek
cím bemenetek
s1 s0
0 1 2 3
DMPX In
s1 s0
adat bemenet a.)
b.)
6
A dekóder belsı felépítése:
Y0
Y1
&
&
S0 S1
S0 S1
Y2
Y3
&
&
S0 S1
In
7
S0 S1
Leírása hardver leíró nyellevvel, VERILOG-ban: module dekoder2_4(E, S, Y); input E; input [1:0] S; output [3:0] Y; reg Y; always @(S,E) if (~E) Y = 4'b0000; else case (S) 2'b00 : Y = 4'b0001; 2'b01 : Y = 4'b0010; 2'b10 : Y = 4'b0100; 2'b11 : Y = 4'b1000; endcase endmodule
8
A dekóder bıvítése: 0 1 . .
s1 s0
0 1 2 3 DEK En
. .
s1 s0
0 1 2 3 DEK En
s1 s0
0 1 2 3 DEK En
s1 s0
15
0 1 2 3 DEK En s0 s1
s3 s2
s1 s0
0 1 2 3 DEK En En
9
3 állapotú meghajtó Funkciója, az engedélyezı jellel a kimenete 3. állapotba hozható, ekkor lekapcsolódik a meghajtott vezetékrıl, ahová ezután más rákapcsolódhat.
E
a.) 1 bites
BUFFER
b.) több bites
Leírása hardver leíró nyellevvel, VERILOG-ban: module ThriStateBuff8(In, E, Y); input [7:0] In; input E; output [7:0] Y; assign Y = E ? In : 8'bz; endmodule 10
Három állapotú kimenet Az L és H szintet aktív félvezetı kapcsolók biztosítják, de a harmadik állapotban mindekttı kikapcsol. +Ut
+Ut
kimenet L
kimenet H
EN
EN
H
H +Ut
kimenet Z (magas impedanciás állapot) EN L
11
E &
BUFFER
DIR
&
DIR
EN a.)
b.)
Uout Uh
Ul Uk2
Uk1
12
Uin
Multiplexer 3 állapotú meghajtóval Centralizált felépítés: IN0
BUFFER E
ADAT
IN1
IN2
IN3
BUFFER E
BUFFER E
BUFFER E
-RD1
-RD2
-RD3
-RD0 0 1 2 3 DEK E B A
-RD
A1 A0
Decentralizált felépítés: IN0
-RD0
IN1
BUFFER E
-RD1
IN2
BUFFER E
-RD2
BUFFER E
-RD A1 A0 ADAT
A1-A0
0
1
2
3
IN1
IN2
IN3
-RD ADAT
IN0
13
IN3
-RD3
BUFFER E
Komparátor Funkciója a bementére adott számok összehasonlítása. Ha azt is jelzi, hogy melyik a nagyobb, akkor magnitudo komparátor. <
A0 A1 A2 A3
<
= In Out = > B0 B1 B2 B3 >
Ha csak egyenlıséget jelez, akkor egyenlıség komparátor. . . . A0 A1
A7
B0 B1
Out = B7
G . . . 14
4 bites komparátor VERILOG leírása: module mag_komp4(A, B, LTI, EQI, GTI, LTO, EQO, GTO); input [3:0] A; input [3:0] B; input LTI; input EQI; input GTI; output LTO; output EQO; output GTO; assign EQO = A==B & EQI; assign LTO = A
B | A==B & GTI; endmodule
15
Hagyományos kaszkádosítás A legelsı komparátor kaszkádosító bemeneteit úgy kell beállítani, mintha egy elızı komparátor egyenlıséget jelezne. A7 A6
.
.
A1 A0
MSB AB
<
LSB A3 A2 A1 A0
<
<
= Out In = > B3 B2 B1 B0 >
B7 B6
.
A3 A2 A1 A0
<
0
= Out In = > B3 B2 B1 B0 >
1
.
0
B1 B0
Komparátorral a 2-es komplemensben ábrázolt számokat az elıjel bit invertálása után tudjuk összehasonlítani (offszet kóddá transzformálás).
16
Gyorsított kaszkádosítás A hagyományos kaszkádosítás hátránya, hogy a kaszkádosított egységek késletetési ideje összeadódik. Itt 4 bites komparátorokkal gyors 24 bites komparátor. A kapcsolás olyan komparátort tételez fel, amelynek < és > bementére egyszerre ugyanazt kapcsolva, annak < és > kimenete egyforma logikai értéket ad, ha A=B. A>B
A=B
A
> = < A B 3 2 1 0 > = < 0 1 2 3 1.
2.szint
1. szint
> = < 3. A B 3 2 1 0 > = < 0 1 2 3
> = < 5. A B 3 2 1 0 > = < 0 1 2 3
A19 A17 A15 B15 B17 B19 A18 A16 L B16 B18 > = < 2. A B 3 2 1 0 > = < 0 1 2 3
A24 A22 A20 B20 B22 B24 A23 A21 L B21 B23
A9 A7 A5 B5 B7 B9 A8 A6 L B6 B8
> = < 4. A B 3 2 1 0 > = < 0 1 2 3
A14 A12 A10 B10 B12 B14 A13 A11 L B11 B13
17
> = < A B 3 2 1 0 > = < 0 1 2 3
6.
A4 A2 L L B2 B4 A3 A1 H B1 B3
Összeadó Funkciója: Az összeadó két n bites (elıjel nélküli abszolútértékes vagy 2-es komplemens ábrázolású) bináris szám összeadása. 0+0=0 C=0, 0+1=1+0=1 C=0, 1+1=0 C=1 Pl: 1001 +1011 -------------10100 Paramétere: - szószélesség (hány bites): n Bemenetei: - összeadandó számok (A, B) 2 x n bit Ci átvitel bemenet Kimenetei: - eredmény S (SUM) n bit - Co átvitel
18
Rajzjele: A3 A2 A1 A0 MSB S0 S1 S2 S3 Co
A3 A2 A1 A0
B3 B2 B1 B0
Ci
B3 B2 B1 B0
4 bites összeadó VERILOG leírása: module add4(A, B, CI, S, CO); input [3:0] A; input [3:0] B; input CI; output [3:0] S; output CO; assign {CO,S} = A + B + CI; endmodule 19
Két 4 bites összeadó kaszkádosítása A legelsı összeadó Cin bemenetére 0-át kell kötni. S8
S0 A7 A6 A5 A4
A3 A2 A1 A0
MSB S0 S1 S2 S3 Co
MSB A3 A2 A1 A0
B3 B2 B1 B0
S0 S1 S2 S3 Ci
Co
B7 B6 B5 B4
A3 A2 A1 A0
B3 B2 B1 B0
Ci
0
B3 B2 B1 B0
Sok bit esetén az átvitel soros terjedése nagy késleltetést okoz. Elkerülése: átvitel gyorsítással S2
S1 S
S
Σ B
A
S0 S
Σ C
B
A
Σ C
C1
A2
A
C
C0
carry logika
B2
B
carry logika
B1
A1
20
B0
A0 Cin
BCD/7szegmenses dekóder A meghajtandó LED kijelzı: a f
e
A g
d
b
c
a
b
c
d
h
A dekóder rajzjele: OC. g
EN
f
D C
e d
B
c b
A BCD/7sz
a
Alkalmazása: Ut
R OC. EN
g
D3 D2
D C
D1 D0
B A
f e d
1
c b BCD/7sz a
21
e
f
g
h
7 szegmenses dekóder Verilog leírása module Seg7Dek(HEXin, Seg7Ou); input [3:0] HEXin; output [6:0] Seg7Ou; reg Seg7Ou; // 7-segment encoding // 0 // --// 5 | | 1 // --- <--6 // 4 | | 2 // --// 3 always @(HEXin) case (HEXin) 4'b0001 : Seg7Ou = 7'b1111001; 4'b0010 : Seg7Ou = 7'b0100100; 4'b0011 : Seg7Ou = 7'b0110000; 4'b0100 : Seg7Ou = 7'b0011001; 4'b0101 : Seg7Ou = 7'b0010010; 4'b0110 : Seg7Ou = 7'b0000010; 4'b0111 : Seg7Ou = 7'b1111000; 4'b1000 : Seg7Ou = 7'b0000000; 4'b1001 : Seg7Ou = 7'b0010000; 4'b1010 : Seg7Ou = 7'b0001000; 4'b1011 : Seg7Ou = 7'b0000011; 4'b1100 : Seg7Ou = 7'b1000110; 4'b1101 : Seg7Ou = 7'b0100001; 4'b1110 : Seg7Ou = 7'b0000110; 4'b1111 : Seg7Ou = 7'b0001110; default : Seg7Ou = 7'b1000000; endcase endmodule
22
// 1 // 2 // 3 // 4 // 5 // 6 // 7 // 8 // 9 // A // b // C // d // E // F // 0
Sorrendi funkcionális elemek (tároló tulajdonságú elemek) Regiszter (közös órajelő D flip-flopok) adat kimenet Q0 Q1 Q2 Q3 élérzékeny órajel bemenet
D0 D1 D2 D3 adat bemenet
module D_REG(clk, D, Q); input clk; input [3:0] D; output [3:0] Q; reg Q; always @(posedge clk) Q <= D; endmodule 23
Latch (közös G-jő D-G flip-flopok) adat kimenet
szintérzékeny órajel bemenet
Q0 Q1 Q2 Q3 G D0 D1 D2 D3 adat bemenet
module D_LATCH(G,D, Q); input G; input [3:0] D; output [3:0] Q; reg Q; always @((G or D)) if (G) Q = D; endmodule
24
Engedélyezhetı regiszter Qi
adat kimenet
engedélyezõ bemenet
Q0 Q1 Q2 Q3 E D0 D1 D2 D3
Q D clk
clk
adat bemenet
MPX S 0 1
E
Di
Regiszterek beírása buszról (centralizált felépítés): OUT0
0. REGISZER
OUT1
OUT2
OUT3
1. REGISZER
2. REGISZER
3. REGISZER
-WR1
-WR2
ADAT
-WR3
-WR0 0 1 2 3 DEK E S1 S0 LSB -WR
CÍM ADAT
0
A1 A0
1 ADAT 0
(CÍM)
2 ADAT 1
ADAT2
-WR -WR0 -WR1 -WR2 OUT0
ADAT0
OUT1
ADAT1
OUT2
ADAT2
25
Engedélyezhetı regiszterek buszról (centralizált felépítés): OUT0
0. E REGISZER
OUT1
OUT2
OUT3
1. E REGISZER
2. E REGISZER
3. E REGISZER
clk WR1
WR2
ADAT
WR3
WR0 0 1 2 3 DEK E S1 S0 LSB WR
CÍM ADAT
0
A1 A0
1
ADAT 0
(CÍM)
2
ADAT 1
ADAT2
clk WR WR0 WR1 WR2 OUT0 OUT1
beírása
ADAT0 ADAT1
OUT2
ADAT2
26
Decentralizált felépítés: DATA0
REG
DATA1
DATA2
DATA3
REG
REG
REG
-WR A1 A0 ADAT
27
Számlálók
A számlálók (számláló üzemmódjára jellemzı) állapotgráfja győrő alakú. Pl. 6-os számláló állapotgráfja: 0
5
1
4
2
3
A számláló az órajeleit számolja. A modulusa, a ciklus hossza. Modulus alapján: bináris, decimális, egyéb (12-es, 6-os stb.)
28
Aszinkron számláló Aszinkron bináris aszinkron törléssel: Q2
Q1
Q
Q0
Q Cl
Q Cl
T
1
számláló,
felfele
Cl
T
T
1
1
clk Cl
clk
Q0
0
1
0
1
0
1
0
1
Q1
0
0
1
1
0
0
1
1
Q2
0
0
0
0
1
1
1
1
Az egyes kimenetek egyre jobban késnek az órajelhez képest.
29
Aszinkron bináris aszinkron törléssel: Q2
Q1
Q
Q0
Q Cl
Q Cl
T
1
számláló,
lefele
Cl
T
T
1
1
clk Cl
clk 0
1
0
1
0
1
0
1
Q1
0
1
1
0
0
1
1
0
Q2
0
1
1
1
1
0
0
0
Q0
30
Szinkron számláló Szinkron bináris felfele számláló belsı felépítése: Q2
Q1
Q0
Q
Q
Q
T
T
T clk
1
clk
Q0
0
1
0
1
0
1
0
1
Q1
0
0
1
1
0
0
1
1
Q2
0
0
0
0
1
1
1
1
A kimenetek egyszerre váltanak, késleltetésük kicsi az órajelhez képest.
31
Szinkron bináris lefele számláló belsı felépítése: Q2
Q1
Q0
Q
Q
Q
T
T
T clk
1
32
Szinkron engedélyezhetı bináris felfele számláló belsı felépítése: Q2
Q1
Q0
Q
Q
Q
T
T
T clk
E
module UPCOUNTER(clk, E, Q); input clk; input E; output [3:0] Q; reg Q; always @(posedge clk) if (E) Q <= Q+1; endmodule
33
Szinkron bináris, engedélyezhetı és tölthetı felfele számláló funkcionális felépítése: Q2
Q1
Q0
Q
Q
Q
D
D
D clk
1
MPX
s
0
1
MPX
D2
T2
0
s
1
MPX
D1
T1
0
s
-LD
D0
T0
E
module UPCOUNTERLD(clk, E, LD, D, Q); input clk; input E; input LD; input [3:0] D; output [3:0] Q; reg Q; always @(posedge clk) if(LD) Q <= D; else if (E) Q <= Q+1; endmodule
34
Szinkron bináris, engedélyezhetı és tölthetı fel-le számláló funkcionális felépítése: Q2
Q1
Q0
Q
Q
Q
D
D
D clk
1
MPX
s
0
1
MPX
0
D2
MPX
0
1
MPX
D1
T2
1
s
1
MPX
0
-LD
s
D0
T1 s
0
T0 s DIR (UP/-DOWN)
E
module UDCOUNTERLD(clk, E, LD, DIR, D, Q); input clk; input E; input LD; input DIR; input [3:0] D; output [3:0] Q; reg Q; always @(posedge clk) if (LD) Q <= D; else if (E) begin if (DIR) Q <= Q+1; else
Q <= Q-1;
end endmodule 35
Számlálók vezérlı jelei lehetnek: CL: törlés LD: betöltés En: engedélyezés (csak szinkron esetben) DIR: számlálási irány Számlálók kimeneti jelei lehetnek: CY(carry): felfele számláló végállapota Bináris számlálónál CY = Q0.Q1.Q2…. BO(borrow): lefele számláló végállapota BO = /Q0./Q1./Q2…. Max/min: fel-le számláló végállapotai Bináris számlálónál M/m=DIR.Q0.Q1.Q2..+/DIR./Q0./Q1./Q2..
RCY: ripple carry RCY = E.CY RCO: ripple clock RCO = /(E.CY./CLK) 36
Számlálók kaszkádosítása (modulus növelés) 3db 4 bites bináris számláló mőködése 3.
2.
1.
0.
0000 1111 1111 1111 0001 0000 0000 0000
Aszinkron kaszkádosítások: Qd Qc Qb Qa
Qd Qc Qb Qa
SZ1
SZ1
clk
CY
RCO
Qa Qb Qc Qd
Qa Qb Qc Qd
SZ1
SZ1
Cl
Cl
Cl
CLK
CLOCK SZ0
13
14
15
0
CY RCO SZ1
0
1
A kaszkádosított számlálók modulusai összeszorzódnak. 37
Szinkron kaszkádosítások: RCY CY Qa Qb Qc Qd E SZ1 Cl
Qa Qb Qc Qd E SZ1 Cl
E Cl CLK
T CLOCK SZ0
13
14
15
0
t 1
Carry
t h
SZ1
5
6
38
A carry soros terjesztése: RCY2
RCY1
CY
E
RCY0
CY
CLK
E
CY
E
E
CLK
CLK
CLK
Az engedélyezés az MSB felé egyre jobban késik az órajelhez képest. Gyorsított kaszkádosítások A CY párhuzamos elıállításával: RCY2
RCY1
CY
RCY0
E
CY
CLK
E
CY
CLK
E
E
CLK CLK
A legelsı CY elırecsatolásával: minden elõzõ végállapotban és engedélyezett
legelsõ kivételével mindenki végállapotban és engedélyezve
E CY CLK
E
CY
E
CY
CLK
CLK
E
CY
E
1
CLK
clk legelsõ végállapotban
39
Moduluscsökkentési eljárások N
KOMP = SZ Clk
Clock SZ
Clock Clk
Cl
Cy Ld
Down Clock szinkron LD
U/D Max/min SZ Clk Ld szinkron LD
szinkron Cl N
N
MODULUS=Végállapot+1-N
MODULUS=N+1
MODULUS=N+1
_
MODULUS=N+1 bin. száml. esetén n 2 -1 N
N N 0
0
0
t
t
a.) 0-tól N-ig
b.) N-tõ TOP-ig
t
c.) N-tõl 0-ig
Mintapéldák: Készítsünk 16-os szinkron tölthetı lefele számlálóból 9-es modulusút. A kódolása 8-0.
Mm
Qd Qc Qb Qa
U/D Dd Dc Db Da 0
1
0
0
Ld E clk
0
40
RESET 1
Készítsünk 16-os szinkron törléső, engedélyezhetı felfele számlálókból 67os modulusút. A kódolása legyen 0-66. 66D=00100 0010B Kaszkádosítunk, majd modulust csökkentünk. MSB Qd Qc Qb Qa RCY
Qd Qc Qb Qa
Cl E
RCY
Cl E
1 clk
41
A shiftregiszter Egy balra shiftelı SHR belsı felépítése: Qc
Qb
shift output
Q Cl
D
Qa
Q
clk
D
Q
clk
Cl
Cl
Si
D clk
clock Cl
Állapotgráfja: kezdõ állapot
1 001 1
011 0
0 000
010
1
1
1 0
101
111 1
0
0
0
100
1
0
0 110
Mőködésének idıdiagramja: T CLK Si
t su D2
D3
t dCQ
Qa/Db
D1
D2
D3
Qb/Dc
D0
D1
D2
42
Tölthetı 4 bites SHR Verilog leírása module SHR16(clk, E, LD, SI, D, Q); input clk; input E; input LD; input SI; input [3:0] D; output [3:0] Q; reg Q; always @(posedge ) if (LD) Q <= D; else if (E) begin Q[3:1]=Q[2:0]; Q[0] <= SI; end endmodule
43
Tölthetı, engedélyezhetı, jobbra-balra shiftelı shiftregiszter belsı felépítése: clock
Qd
Qc
Qb
Q D
Q D
Q D
MPX 0 2 3 1
S0
SIR Da Qa Qb
MPX
MPX
0 2 3 1
Qa Db Qb Qc
S1
S1S0 00 jobbra shift (SHR) 01 balra shift (SHL) 10 betölt (LOAD) 11 tart (HOLD)
44
Qa Q D
MPX
0 2 3 1
0 2 3 1
Qb Dc Qc Qd
Qc Dd Qd SIL
Shiftregiszter mint számláló Győrős számláló:
Qa Qb Qc Qd SHR
SI A
B
C
LD/S D
1
0
0
0
RESET
A számláló kódolása Qa, Qb, Qc, Qd: 1000, 0100, 0010, 0001 N bites SHR esetén a modulusa: N Johnson számláló: Qa Qb Qc Qd SI
SHR A B C
LD/S D
0
0
0
0
RESET
A számláló kódolása Qa, Qb, Qc, Qd: 0000, 1000, 1100, 1110, 1111, 0111, 0011, 0001
Modulusa N bites SHR esetén: 2N
45
Önkorrigáló Johnson számláló
Qa Qb Qc Qd SHR
SI A
B
C
LD/S D
1
0
0
0
Néhány órajelen belül tetszıleges állapotból beletalál a normál ciklusba. Pl: 1010, 1101, 0110, 1000,… Álvéletlen generátor MOD 2 visszacsatolt shiftregiszterrel
Qa Qb Qc Qd SI A
CLK
0
SHR B C
0
0
LD/S D
RESET
1
Kódolása: 0001, 1000, 0100, 0010, 1001, 1100, 0110, 1011, 0101, 1010, 1101, 1110, 1111, 0111, 0011 Modulusa N bites SHR és maximális ciklushosszú visszacsatolás esetén: 2N-1 46
Memória elemek: MEMÓRIÁK ROM (csak olvasható)
RAM (írható-olvasható)
PROM (egyszer írható, OTP) statikus RAM
-mask programozott -felhasználó által programozott
dinamikus RAM
EPROM (UV-vel törölhetõ) EEPROM (elektromosan szavanként törölhetõ) FLASH (elektromosan szektoronként törölhetõ, nagy sûrûségû)
Jellemzık: szószélesség, byte szám, hozzáférési idı ROM dekóder
szavak 0. 1.
An-A0 An-A0 Dm-D0 CS
m.
RD
CS En
&
meghajtó
RD Dm-D0 a.)
b.)
Olvasás idıdiagramja: CS
RD t
RD
CÍM
ADAT
STABIL t
AA
t
CA
t
AO
t
DF
47
ROM mint univerzális KH: f D3
D2
D1
D0
0.
x
x
1
0
1.
x
x
1
0
2.
x
x
0
1
3.
x
x
0
0
4.
x
x
0
1
5.
x
x
1
0
6.
x
x
0
0
7.
x
x
1
1
8. . . .
x . . .
x . . .
x . . .
x . . .
15.
x
x
x
x
cím
f2 1 1
1 1
C B A
f
2
a.)
1
A3 A2 A1 A0
OE CS
0 A B C
0 0
b.)
f 2 = AB + AC = ABC + ABC + ABC + ABC
A tartalom az igazságtábla.
48
RAM szavak
0. 1. DEK
An-A0
m.
An-A0
meghajtó
RD
&
Dm-D0
En
DIR
CS CS
RD WR
Dm-D0
& W a.)
b.)
Statikus RAM írási ciklusa: CS
t
t
WR
CW
WR t
t
t AS
DS
CÍM
ADAT
STABIL t WP
t WC
49
DH
Memóriák szószélességének növelése D0
D0
D15
. . .
CS A0 A1
D7
D0 RD WR A0 A1
RD WR An WR
A0
. . .
D7 CS An
RD
An CS
Memóriák kapacitásának növelése An-A0
OE
OE RAM CS W
OE RAM CS W
OE RAM CS W
WR Dm-D0
0 1 2 3 DEK E B A LSB CS
An+2
50
An+1
OE RAM CS W
Példák funkcionális elemekkel felépített logikákra: PWM (változtatható kitöltési tényezıjő jel) elıállítása. N B OUT KOMP
A>B
A
SZ
clk TOP N
t OUT
t
51
Idımultiplexált kijelzı megvalósítása Vcc
MPX ADAT3
D3_3-0
ADAT2
D2_3-0
MSB ADAT1
D1_3-0 BCD/7sz OC.
ADAT0
D0_3-0
D C B A
S1 S0
7sz.adat
a b c d e f g -EN3
3 DEK SZ
B
OC. 2
-EN2
OC.
A
-EN1 1
OC. -EN0
clk
0
sz 7sz. adat
OC.
3
0
1
2
3
ADAT 0
ADAT 1
ADAT2
ADAT3
-EN0 -EN1 -EN2 -EN3
52
Mátrix billentyőzet kezelése Vcc
egy billntyû bekötése 0 1 DEK
sor számláló
2 MSB SZ EN
CLK
S1 S0
3
0 S1 S0
RCY SZ EN oszlop sz.
biilentyû kód
1 MPX
2
3
Y 0
CLK
K
J
Q
Cl Q
READY
53
STRB