Sunteți pe pagina 1din 96

Circuite combinaţionale integrate tipizate

2.1. Preliminarii
2.2. Porţi logice uzuale
2.3 Tehnici de analiză a circuitelor cu porţi logice
2.4. Multiplexoare şi demultiplexoare
2.5 Tehnici de analiză a circuitelor cu
demultiplexoare şi/sau cu multiplexoare
2.6 Memorii

Circuite combinationale 1
2.1. Preliminarii
a.) Definiţii
Y1  f1  X 1 , X 2 , ... , X n 
X1 Y1
X2 Y2 Y2  f 2  X 1 , X 2 , ... , X n 
CLC 
Ym  f m  X 1 , X 2 , ... , X n 
Xn Ym

Schema bloc de principiu a unui


circuit logic combinaţional

X  X 1 , X 2 ,  X n 
Y  Y1 , Y2 , Ym  S c  X , Y , f 
f   f1 , f 2 ,  f m 
f : X Y

Circuite combinationale 2
2.1. Preliminarii
b.) Descriere

1. Explicitarea funcţiei (funcţiilor) logice asociate circuitului


logic combinaţional;
Y  f ( A, B)  A  AB
2. Cu ajutorul tabelului de adevăr
Intrări Ieşiri
A B Y1 Y2 Y1  AB  AB  AB
0 0 0 1 Y2  AB  AB
0 1 1 0
1 0 1 1
1 1 1 0

Circuite combinationale 3
2.1. Preliminarii
b.) Descriere (cont.)

3. Cu ajutorul formelor de undă

Formele de undă asociate unui circuit combinaţional


cu două intrări (A, B) şi o ieşire (Y)

Circuite combinationale 4
2.2. Porţi logice uzuale

2.2.1. Poarta logică AND


2.2.2. Poarta logică NAND
2.2.3. Poarta logică OR
2.2.4. Poarta logică NOR
2.2.5. Poarta logică NOT

Circuite combinationale 5
2.2.1. Poarta logică AND
a.) Definiţie: Circuit logic care realizează funcţia logică ŞI
b.) Simbol şi notaţii folosite
A &
Y
B

Simbol AND; standard ANSI Simbol AND; standard DIN


c.) Descrierea funcţionării cu ajutorul funcţiilor logice
Y ( A, B )  AB sau Y ( A, B)  A  B Y ( A, B)  A  B
d.) Descrierea funcţionării cu ajutorul tabelului de adevăr.
Intrări Ieşire
A B Y
0 0 0
0 1 0
1 0 0
1 1 1
Circuite combinationale 6
2.2.1. Poarta logică AND (cont.)
e.) Simulare SPICE a functionării porţii

16 0
0 1
0
0 A 1 0 1 0
0
A B 1 1 0 0 1
X Y
X
X B 1 0 0 0
F Y
X
C Q T
31 15
T R

Circuit utilizat la simularea Formele de undă asociate cu


funcţionarii porţii AND circuitul din figura

Circuite combinationale 7
2.2.1. Poarta logică AND (cont.)
f.) Descriere VERILOG a porţii
1.) Descriere la nivel de poartă logică.

module P1(A,B,Y); // iniţializarea unui modul cu numele P1


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
and P1(Y,A,B); // apelarea funcţiei P1 care realizează
// funcţia logică AND
endmodule

Circuite combinationale 8
2.2.1. Poarta logică AND (cont.)
f.) Descriere VERILOG a porţii (cont.)
2.) Descriere la nivel RTL. O posibilă descriere este prezentată mai jos:

module P2(A,B,Y); // iniţializarea unui modul cu numele P2


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
assign Y=A&B; // lui Y i se atribuie valoarea AB
endmodule

Circuite combinationale 9
2.2.1. Poarta logică AND (cont.)
f.) Descriere VERILOG a porţii (cont.)
3.) Descriere la nivel comportamental.

module P3(A,B,Y); // iniţializarea unui modul cu numele P3


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
// atribuirea valorii AB lui Y
always @(A or B)
begin
Y<=(A & B);
end
endmodule

Circuite combinationale 10
2.2.1. Poarta logică AND (cont.)
g.) Simulare VERILOG a funcţionării porţii
Pentru simularea funcţionării porţii a fost construit modulul LAND.

module LAND(Y,A,B);
input A,B;
output Y;
reg Y;
always @(A or B)
begin
Y<=(A & B);
end
endmodule

Circuite combinationale 11
2.2.1. Poarta logică AND (cont.)
g.) Simulare VERILOG a funcţionării porţii (cont.)
module Testbench;
reg A_t,B_t;
wire Y_t;
LAND LAND_t(Y_t,A_t,B_t);
always
begin
A_t<=0;B_t<=0;
#10$display("Y=5b",Y_t);
A_t<=0;B_t<=1;
#10$display("Y=5b",Y_t);
A_t<=1;B_t<=1;
#10$display("Y=5b",Y_t);
A_t<=1;B_t<=0;
#10$display("Y=5b",Y_t);
end
endmodule Circuite combinationale 12
2.2.1. Poarta logică AND (cont.)
g.) Simulare VERILOG a funcţionării porţii (cont.)

Circuite combinationale 13
2.2.2. Poarta logică NAND
a.) Definiţie: Circuit logic care realizează funcţia logică ŞI negat
b.) Simbol şi notaţii folosite
A A &
Y Y
B A
B

Simbol NAND; standard ANSI Simbol NAND; standard DIN


c.) Descrierea funcţionării cu ajutorul funcţiilor logice
Y ( A, B)  AB sau Y ( A, B)  A  B Y ( A, B)  A  B
d.) Descrierea funcţionării cu ajutorul tabelului de adevăr.
Intrări Ieşire
A B Y
0 0 1
0 1 1
1 0 1
1 1 0
Circuite combinationale 14
2.2.2. Poarta logică NAND (cont.)
e.) Simulare SPICE a functionării porţii

16 0
0 1
0
0
A Y
A 0 1 0 1
0

X
B B 0 0 1 1

X
X Y 1 1 1 0
X F
C Q T
31 15
T R

Circuit utilizat la simularea Formele de undă asociate cu


funcţionarii porţii NAND circuitul din figura

Circuite combinationale 15
2.2.2. Poarta logică NAND (cont.)
f.) Descriere VERILOG a porţii
1.) Descriere la nivel de poartă logică.

module P4(A,B,Y); // iniţializarea unui modul cu numele P4


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
nand P4(Y,A,B);// apelarea funcţiei P4 care realizează
// funcţia logică NAND
endmodule

Circuite combinationale 16
2.2.2. Poarta logică NAND (cont.)
f.) Descriere VERILOG a porţii (cont.)
2.) Descriere la nivel RTL. O posibilă descriere este prezentată mai jos:

module P5(A,B,Y); // iniţializarea unui modul cu numele P5


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
assign Y=~(A&B); // lui Y i se atribuie valoarea
endmodule

Circuite combinationale 17
2.2.2. Poarta logică NAND (cont.)
f.) Descriere VERILOG a porţii (cont.)
3.) Descriere la nivel comportamental.

module P6(A,B,Y); // iniţializarea unui modul cu numele P6


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
// atribuirea valorii lui Y
always @(A or B)
begin
Y<=~(A & B);
end
endmodule

Circuite combinationale 18
2.2.2. Poarta logică NAND (cont.)
g.) Simulare VERILOG a funcţionării porţii
Pentru simularea funcţionării porţii a fost construit modulul LNAND.

module LNAND(Y,A,B);
input A,B;
output Y;
reg Y;
always @(A or B)
begin
Y<=~(A & B);
end
endmodule

Circuite combinationale 19
2.2.2. Poarta logică NAND (cont.)
g.) Simulare VERILOG a funcţionării porţii (cont.)
module Testbench;
reg A_t,B_t;
wire Y_t;
LNAND LNAND_t(Y_t,A_t,B_t);
always
begin
A_t<=0;B_t<=0;
#10$display("Y=5b",Y_t);
A_t<=0;B_t<=1;
#10$display("Y=5b",Y_t);
A_t<=1;B_t<=1;
#10$display("Y=5b",Y_t);
A_t<=1;B_t<=0;
#10$display("Y=5b",Y_t);
end
endmodule Circuite combinationale 20
2.2.2. Poarta logică NAND (cont.)
g.) Simulare VERILOG a funcţionării porţii (cont.)

Circuite combinationale 21
2.2.3. Poarta logică OR
a.) Definiţie: Circuit logic care realizează funcţia logică SAU
b.) Simbol şi notaţii folosite
A A 1 Y
Y
B B

Simbol OR; standard ANSI Simbol OR; standard DIN


c.) Descrierea funcţionării cu ajutorul funcţiilor logice
Y ( A, B )  A  B sau Y ( A, B)  A  B
d.) Descrierea funcţionării cu ajutorul tabelului de adevăr.
Intrări Ieşire
A B Y
0 0 0
0 1 1
1 0 1
1 1 1
Circuite combinationale 22
2.2.3. Poarta logică OR (cont.)
e.) Simulare SPICE a functionării porţii

0 1 0 1
A
0 0 1 1
B

Y 0 1 1 1

Circuit utilizat la simularea Formele de undă asociate cu


funcţionarii porţii OR circuitul din figura

Circuite combinationale 23
2.2.3. Poarta logică OR (cont.)
f.) Descriere VERILOG a porţii
1.) Descriere la nivel de poartă logică.

module P4(A,B,Y); // iniţializarea unui modul cu numele P4


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
or P4(Y,A,B); // apelarea funcţiei P4 care realizează
// funcţia logică OR
endmodule

Circuite combinationale 24
2.2.3. Poarta logică OR (cont.)
f.) Descriere VERILOG a porţii (cont.)
2.) Descriere la nivel RTL. O posibilă descriere este prezentată mai jos:

module P5(A,B,Y); // iniţializarea unui modul cu numele P5


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
assign Y=(A|B); // lui Y i se atribuie valoarea A+B
endmodule

Circuite combinationale 25
2.2.3. Poarta logică OR (cont.)
f.) Descriere VERILOG a porţii (cont.)
3.) Descriere la nivel comportamental.

module P6(A,B,Y); // iniţializarea unui modul cu numele P6


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
// atribuirea valorii A+B lui Y
always @(A or B)
begin
Y<=(A | B);
end
endmodule

Circuite combinationale 26
2.2.3. Poarta logică OR (cont.)
g.) Simulare VERILOG a funcţionării porţii
Pentru simularea funcţionării porţii a fost construit moduluL LOR.

module LOR(Y,A,B);
input A,B;
output Y;
reg Y;
always @(A or B)
begin
Y<=(A | B);
end
endmodule

Circuite combinationale 27
2.2.3. Poarta logică OR (cont.)
g.) Simulare VERILOG a funcţionării porţii (cont.)
module Testbench;
reg A_t,B_t;
wire Y_t;
LOR LOR_t(Y_t,A_t,B_t);
always
begin
A_t<=0;B_t<=0;
#10$display("Y=5b",Y_t);
A_t<=0;B_t<=1;
#10$display("Y=5b",Y_t);
A_t<=1;B_t<=1;
#10$display("Y=5b",Y_t);
A_t<=1;B_t<=0;
#10$display("Y=5b",Y_t);
end
endmodule Circuite combinationale 28
2.2.3. Poarta logică OR (cont.)
g.) Simulare VERILOG a funcţionării porţii (cont.)

Circuite combinationale 29
2.2.4. Poarta logică NOR
a.) Definiţie: Circuit logic care realizează funcţia SAU negat
b.) Simbol şi notaţii folosite
A 1
Y A Y
B B

Simbol NOR; standard ANSI Simbol NOR; standard DIN


c.) Descrierea funcţionării cu ajutorul funcţiilor logice
Y ( A, B )  A  B sau Y ( A, B)  A  B

d.) Descrierea funcţionării cu ajutorul tabelului de adevăr.


Intrări Ieşire
A B Y
0 0 1
0 1 0
1 0 0
1 1 0
Circuite combinationale 30
2.2.4. Poarta logică NOR (cont.)
e.) Simulare SPICE a functionării porţii

16 0
0 1
0
0
0
A 0 1 0 1
X B 0 0 1 1
X
X
X F

31 15
C Q T Y 1 0 0 0
T R

Circuit utilizat la simularea Formele de undă asociate cu


funcţionarii porţii NOR circuitul din figura

Circuite combinationale 31
2.2.4. Poarta logică NOR (cont.)
f.) Descriere VERILOG a porţii
1.) Descriere la nivel de poartă logică.

module P4(A,B,Y); // iniţializarea unui modul cu numele P4


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
nor P4(Y,A,B); // apelarea funcţiei P4 care realizează
// funcţia logică NOR
endmodule

Circuite combinationale 32
2.2.4. Poarta logică NOR (cont.)
f.) Descriere VERILOG a porţii (cont.)
2.) Descriere la nivel RTL. O posibilă descriere este prezentată mai jos:

module P5(A,B,Y); // iniţializarea unui modul cu numele P5


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
assign Y=~(A|B); // lui Y i se atribuie valoarea
endmodule

Circuite combinationale 33
2.2.4. Poarta logică NOR (cont.)
f.) Descriere VERILOG a porţii (cont.)
3.) Descriere la nivel comportamental.

module P6(A,B,Y); // iniţializarea unui modul cu numele P6


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
// atribuirea valorii A+B lui Y
always @(A or B)
begin
Y<=~(A | B);
end
endmodule

Circuite combinationale 34
2.2.4. Poarta logică NOR (cont.)
g.) Simulare VERILOG a funcţionării porţii
Pentru simularea funcţionării porţii a fost construit modulul LNOR.

module LNOR(Y,A,B);
input A,B;
output Y;
reg Y;
always @(A or B)
begin
Y<=~(A | B);
end
endmodule

Circuite combinationale 35
2.2.4. Poarta logică NOR (cont.)
g.) Simulare VERILOG a funcţionării porţii (cont.)
module Testbench;
reg A_t,B_t;
wire Y_t;
LNOR LNOR_t(Y_t,A_t,B_t);
always
begin
A_t<=0;B_t<=0;
#10$display("Y=5b",Y_t);
A_t<=0;B_t<=1;
#10$display("Y=5b",Y_t);
A_t<=1;B_t<=1;
#10$display("Y=5b",Y_t);
A_t<=1;B_t<=0;
#10$display("Y=5b",Y_t);
end
endmodule Circuite combinationale 36
2.2.4. Poarta logică NOR (cont.)
g.) Simulare VERILOG a funcţionării porţii (cont.)

Circuite combinationale 37
2.2.5. Poarta logică NOT
a.) Definiţie: Circuit logic care realizează funcţia NU
b.) Simbol şi notaţii folosite
1
A Y A Y

Simbol NOT; standard ANSI Simbol NOT; standard DIN


c.) Descrierea funcţionării cu ajutorul funcţiilor logice
Y ( A)  A
d.) Descrierea funcţionării cu ajutorul tabelului de adevăr.
Intrare Ieşire
A Y
0 1
1 0
Circuite combinationale 38
2.2.5. Poarta logică NOT (cont.)
e.) Simulare SPICE a functionării porţii

A 1 0

B 0 1

Circuit utilizat la simularea Formele de undă asociate cu


funcţionarii porţii NOT circuitul din figura

Circuite combinationale 39
2.2.5. Poarta logică NOT (cont.)
f.) Descriere VERILOG a porţii
1.) Descriere la nivel de poartă logică.

module P4(A,B,Y); // iniţializarea unui modul cu numele P4


input A; // asignarea intrării A
input B; // asignarea intrării B
output Y; // asignarea ieşirii Y
nor P4(Y,A,B); // apelarea funcţiei P4 care realizează
// funcţia logică NOR
endmodule

Circuite combinationale 40
2.2.5. Poarta logică NOT (cont.)
f.) Descriere VERILOG a porţii (cont.)
2.) Descriere la nivel RTL. O posibilă descriere este prezentată mai jos:

module P11(A,Y); // iniţializarea unui modul cu numele P11


input A; // asignarea intrării A
output Y; // asignarea ieşirii Y
assign Y=~A; // lui Y i se atribuie valoarea
endmodule

Circuite combinationale 41
2.2.5. Poarta logică NOT (cont.)
f.) Descriere VERILOG a porţii (cont.)
3.) Descriere la nivel comportamental.

module P12(A,Y); // iniţializarea unui modul cu numele P12


input A; // asignarea intrării A
output Y; // asignarea ieşirii Y
// atribuirea valorii lui Y
always @(A)
begin
Y<=~A;
end
endmodule

Circuite combinationale 42
2.2.5. Poarta logică NOT (cont.)
g.) Simulare VERILOG a funcţionării porţii
Pentru simularea funcţionării porţii a fost construit modulul LNOT.

module LNOT(Y,A);
input A;
output Y;
reg Y;
always @(A)
begin
Y<=~A;
end
endmodule

Circuite combinationale 43
2.2.5. Poarta logică NOT (cont.)
g.) Simulare VERILOG a funcţionării porţii (cont.)
module Testbench;
reg A_t;
wire Y_t;
LNOT LNOT_t(Y_t,A_t,B_t);
always
begin
A_t<=0;
#10$display("Y=5b",Y_t);
A_t<=1;
#10$display("Y=5b",Y_t);
end
endmodule

Circuite combinationale 44
2.2.5. Poarta logică NOT (cont.)
g.) Simulare VERILOG a funcţionării porţii (cont.)

Circuite combinationale 45
2.3 Tehnici de analiză a circuitelor cu
porţi logice

2.3.1 Explicitarea funcţiei logice a circuitului


2.3.2 Simularea SPICE a funcţionării circuitului
2.3.3 Simularea VERILOG a funcţionării circuitului

Circuite combinationale 46
2.3.1 Explicitarea funcţiei logice a circuitului

A A A B
B B
Y
C  A  B C
C C

Circuit logic Explicitarea funcţiei logice implementată de


circuitul din figura

Circuite combinationale 47
2.3.2 Simularea SPICE a funcţionării circuitului
16 0
0 1
0
0
0 A

X B
X C
X
X F
C Q T
Y
31 15
T R

Circuit utilizat pentru simularea Formele undă asociate circuitului


funcţionării circuitului

Circuite combinationale 48
2.3.3 Simularea VERILOG a funcţionării circuitului
A d
B
e Y
C
Notaţiile folosite pentru descriere VERILOG
module EXEMPLU(Y,A,B,C);// desemnarea numelui modulului
input A,B,C; // desemnarea variabilelor A,B,C ca intrări
output Y; // desemnarea variabilei Y ca ieşire
wire d,e; // desemnarea variabilelor d,e ca fiind conexiuni
and SI(d.A,B); // apelarea func. and sub numele SI cu ieşire d şi intrări A,B
not NU(e,C); // apelarea funcţiei not subnumele NU cu ieşire e şi intrare C
nand SINU(Y,d,e);// apelarea func. nand subnum. SINU cu intr. d,e şi ieşire Y
endmodule

Programul utilizat pentru descrierea circuitului

Circuite combinationale 49
2.3.3 Simularea VERILOG a funcţionării circuitului
(cont.)
module Testbench;
reg intrare_A, intrare_B, intrare_C;
wire iesire_Y;
EXEMPLU EXEMPLU_T(intrare_A, intrare_B, intrare_C, iesire_Y);
initial
begin
#1intrare_A<=0; intrare_B<=0; intrare_C<=0;
#1intrare_A<=1; intrare_B<=0; intrare_C<=0;
#1intrare_A<=0; intrare_B<=1; intrare_C<=0;
#1intrare_A<=1; intrare_B<=1; intrare_C<=0;
#1intrare_A<=0; intrare_B<=0; intrare_C<=1;
#1intrare_A<=1; intrare_B<=0; intrare_C<=1;
#1intrare_A<=0; intrare_B<=1; intrare_C<=1;
#1intrare_A<=1; intrare_B<=1; intrare_C<=1;
#1intrare_A<=0; intrare_B<=0; intrare_C<=0;
end
endmodule Circuite combinationale 50
2.3.3 Simularea VERILOG a funcţionării circuitului
(cont.)

Formele de undă obţinute prin rularea programelor VERILOG

Circuite combinationale 51
2.4 Multiplexoare şi demultiplexoare

2.4.1. Multiplexorul
2.4.2. Demultiplexorul / Decodorul
2.4.3. Decodoare specializate

Circuite combinationale 52
2.4.1. Multiplexorul
a.) Definiţie: Circuit electronic cu „n” intrări şi o ieşire, care realizează funcţia
unui comutator rotativ cuplat ca în figura
D0
D1
Y
D2
D3

b.) Simbol şi notaţii folosite

Simbol MUX; standard ANSI Simbol MUX; standard DIN


Circuite combinationale 53
2.4.1. Multiplexorul (cont.)
c.) Descrierea funcţionării cu ajutorul funcţiilor logice
D0

D1
Y
D2

D3

A
B
Schema desfăsurată a unui multiplexor 4 la 1

Y  ABD0  ABD1  ABD2  ABD3

Circuite combinationale 54
2.4.1. Multiplexorul (cont.)
d.) Descrierea funcţionării cu ajutorul tabelului de adevăr.
Adrese Date Ieşiri
B A D0 D1 D2 D3 Y
0 0 1 X X X 1
0 0 0 X X X 0
0 1 X 1 X X 1
0 1 X 0 X X 0
1 0 X X 1 X 1
1 0 X X 0 X 0
1 1 X X X 1 1
1 1 X X X 0 0
Tabelul 2.6

Circuite combinationale 55
2.4.1. Multiplexorul (cont.)
e.) descriere VERILOG a multiplexorului 4 la 1
module mux4_la_1 (Dt, Ad, Y); // desemnarea intrărilor
input [0:3] Dt; // intrare de date pe patru biti
input [0:1] Ad; // intrare de adresa pe doi biti
//. desemnarea ieşirii
output Y;
reg Y;
// descrierea funcţionării
always @ (Dt or Ad)
if (Ad==0)
Y<=Dt[0];
else if (Ad==1)
Y<=Dt[1];
else if (Ad==2)
Y<=Dt[2];
else
Y<=Dt[3];
endmodule
Circuite combinationale 56
2.4.1. Multiplexorul (cont.)
f.) Simulare SPICE a functionării multiplexorului 4 la 1

16 0
0
1
0
D0
0
0 Y
D1
D0
D2
X D1
D3
X D2

X D3

X A
F
31 15 B
C Q T Y
T R
~G

Circuit utilizat pentru simularea funcţionării Formele de undă ataşate circuitului din
multiplexorului în situaţia în care A=0 şi figura
B=0

Circuite combinationale 57
2.4.1. Multiplexorul (cont.)
f.) Simulare SPICE a functionării multiplexorului 4 la 1
16 0
0 1
0
D0
0
0 D0
Y D1
D1 D2
X D2 D3
X D3
X A
X F
B
C Q T
31 15
T R ~G Y

Circuit utilizat pentru simularea funcţionării Formele de undă ataşate circuitului din
multiplexorului în situaţia în care A=1 şi figura
B=0

Circuite combinationale 58
2.4.1. Multiplexorul (cont.)
f.) Simulare SPICE a functionării multiplexorului 4 la 1
16 0
0 1
0
0
Y D0
0 D0

D1 D1
X D2 D2
X D3 D3
X A
X F
B
C Q T
31 15
T R ~G
Y

Circuit utilizat pentru simularea funcţionării Formele de undă ataşate circuitului din
multiplexorului în situaţia în care A=0 şi figura
B=1

Circuite combinationale 59
2.4.1. Multiplexorul (cont.)
f.) Simulare SPICE a functionării multiplexorului 4 la 1

D0
D1
D2
D3

Circuit utilizat pentru simularea funcţionării Formele de undă ataşate circuitului din
multiplexorului în situaţia în care A=1 şi figura
B=1

Circuite combinationale 60
2.4.1. Multiplexorul (cont.)
g.) Simulare VERILOG a funcţionării multiplexorului 4 la 1
module Testbench; always
reg [0:3] intrare_D; begin
reg [0:1] adresa_t; #2intrare_D[1]=~intrare_D[1];
wire iesire_Y; end
initial always
begin begin
intrare_D[0]=0; #4intrare_D[2]=~intrare_D[2];
intrare_D[1]=0; end
intrare_D[2]=0; always
intrare_D[3]=0; begin
adresa_t[0]=0; #8intrare_D[3]=~intrare_D[3];
adresa_t[1]=0; end
end always
always begin
begin #16adresa_t[0]=~adresa_t[0];
end
#1intrare_D[0]=~intrare_D[0]; always
end begin
always #32adresa_t[1]=~adresa_t[1];
begin end
#2intrare_D[1]=~intrare_D[1]; mux4_la_1 mux4_la_1_t (intrare_D, adresa_
end iesire_Y);
endmodule
Circuite combinationale 61
2.4.1. Multiplexorul (cont.)
g.) Simulare VERILOG a funcţionării multiplexorului 4 la 1

Formele de undă obţinute prin simulare VERILOG a unui


muiltiplexor 4 la 1

Circuite combinationale 62
2.4.2. Demultiplexorul / Decodorul

Observatie.)

Circuitele integrate cu rol de demultiplexor pot fi utilizate şi ca


circuite de decodare. Deosebirea esenţială constă în modul în care
este utilizată intrarea de validare („enable”). În cazul în care
această intrare este utilizată ca intrare de date, circuitul capătă rolul
de demultiplexor, pe cánd neutilizarea acestei intrări atrage
utilizarea circuitului ca decodor.

Circuite combinationale 63
2.4.2. Demultiplexorul
a.) Definiţie: Circuit electronic cu o intrare şi “n” ieşiri, care realizează funcţia
unui comutator rotativ cuplat ca în figura
Y0

Y1
G
Y2
Y3
b.) Simbol şi notaţii folosite

Simbol DMUX; standard ANSI Simbol DMUX; standard DIN


Circuite combinationale 64
2.4.2. Demultiplexorul (cont.)
c.) Descrierea funcţionării cu ajutorul funcţiilor logice
B A

Y0  G AB
Y1  G AB
Y0
Y2  G AB
Y1

Y2 Y3  GAB
G Y3

Schema desfăsurată a unui


multiplexor 4 la 1

Circuite combinationale 65
2.4.2. Demultiplexorul (cont.)
d.) Descrierea funcţionării demultiplexorului cu ajutorul tabelului de
adevăr

Intrări
Ieşiri
Enable Adrese
G B A Y0 Y1 Y2 Y3
1 X X 1 1 1 1
0 0 0 0 1 1 1
0 0 1 1 0 1 1
0 1 0 1 1 0 1
0 1 1 1 1 1 0

Circuite combinationale 66
2.4.2. Demultiplexorul (cont.)
e.) descriere VERILOG a demultiplexorului 1 la 4
module dmux4 (G, Ad, Y);
// intrari
input G;
input [0:1] Ad;
// iesiri
output [0:3] Y;
reg [0:3] Y;
// functionarea demux
always @ (G or Ad)
if (Ad==0)
Y[0]<=G;
else if (Ad==1)
Y[1]<=G;
else if (Ad==2)
Y[2]<=G;
else
Y[3]<=G;
endmodule Circuite combinationale 67
2.4.2. Demultiplexorul (cont.)
f.) Simulare SPICE a funcţionării demultiplexorului 1 la 4.

A0
A1

Y0
Y1
Y2
Y3

Circuit utilizat pentru Formele de undă ataşate


simularea funcţionării circuitului din figura
demultiplexorului

Circuite combinationale 68
2.4.2. Demultiplexorul (cont.)
g.) Simulare VERILOG a funcţionării demultiplexorului 1 la 4
module Testbench; always
reg intrare_G; begin
reg [0:1] adresa_t; #16adresa_t[0]=~adresa_t[0];
wire [0:3] iesire_Y; end
initial always
begin begin
#1intrare_G=0; #32adresa_t[1]=~adresa_t[1];
#1adresa_t[0]=0; end
#1adresa_t[1]=0; endmodule
end
always
begin
#1intrare_G=~intrare_G;
end

Circuite combinationale 69
2.4.2. Demultiplexorul (cont.)
g.) Simulare VERILOG a funcţionării demultiplexorului 1 la 4

Formele de undă obţinute prin simulare VERILOG a unui


demultiplexor 1 la 4

Circuite combinationale 70
2.4.3. Decodoare specializate

a.) Decodor BCD – 7 segmente

b.) Decodor BCD - zecimal

Circuite combinationale 71
2.4.3. Decodoare specializate
a.) Decodor BCD – 7 segmente
Simbol

Simbol decodor BCD - 7 Simbol decodor BCD - 7


segmente; standard ANSI segmente; standard DIN

Circuite combinationale 72
2.4.3. Decodoare specializate
a.) Decodor BCD – 7 segmente
Tabelul de adevar
Intrări Ieşiri
D C B A 0 1 2 3 4 5 6
0 0 0 0 1 1 1 1 1 1 0
0 0 0 1 0 1 1 0 0 0 0
0 0 1 0 1 1 0 1 1 0 1
0 0 1 1 1 1 1 1 0 0 1
0 1 0 0 0 1 1 0 0 1 1
0 1 0 1 1 0 1 1 0 1 1
0 1 1 0 0 0 1 1 1 1 1
0 1 1 1 1 1 1 0 0 0 0
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 0 0 1 1
Tabelul 2.9
Circuite combinationale 73
2.4.3. Decodoare specializate
a.) Decodor BCD – 7 segmente
Aplicatii
A A
0

B B
1

2
C C
3
D
D 4 ABCDE FG
5

Modul de conectare al decodorului BCD – 7 segmente cu o celulă de


afişaj de 7 semente

Circuite combinationale 74
2.4.3. Decodoare specializate
b.) Decodor BCD – zecimal
Simbol

Simbol decodor BCD - zecimal; Simbol decodor BCD - zecimal;


standard ANSI standard DIN

Circuite combinationale 75
2.4.3. Decodoare specializate
b.) Decodor BCD – zecimal
Tabelul de adevar

Intrări Ieşiri
D C B A 0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 1 1 1 1 1 1 1 1 1
0 0 0 1 1 0 1 1 1 1 1 1 1 1
0 0 1 0 1 1 0 1 1 1 1 1 1 1
0 0 1 1 1 1 1 0 1 1 1 1 1 1
0 1 0 0 1 1 1 1 0 1 1 1 1 1
0 1 0 1 1 1 1 1 1 0 1 1 1 1
0 1 1 0 1 1 1 1 1 1 0 1 1 1
0 1 1 1 1 1 1 1 1 1 1 0 1 1
1 0 0 0 1 1 1 1 1 1 1 1 0 1
1 0 0 1 1 1 1 1 1 1 1 1 1 0

Circuite combinationale 76
2.5 Tehnici de analiză a circuitelor cu
demultiplexoare şi/sau cu multiplexoare

2.5.1 Formularea problemei aleasă ca exemplu


2.5.2 Analiza funcţionării circuitului
2.5.3 Simularea SPICE a funcţionării circuitului.
2.5.4 Simularea VERILOG a funcţionării circuitului

Circuite combinationale 77
2.5.1 Formularea problemei aleasă ca exemplu

D0 Y 2 4
D0
1A
1Y0 Y0
D1 D1
3 5
D3, D2, D1, D0 intrări de date;
1B
1Y1 Y1
D2 D2
6
A1, A0 intrări de selecţie
1Y2 Y2
D3 D3 1 7
~1G
1Y3 Y3 pentru multiplexor;
A0
intrări de selecţie
A
A3, A2
A1 B

~G
pentru demultiplexor;
Y3, Y2, Y1, Y0 ieşiri de date;
A2
A3

Circuit de multiplexare
demultiplexare

Circuite combinationale 78
2.5.2 Analiza funcţionării circuitului

D0 Y 2 4
D0 1Y0 Y0
Intrări Ieşire
1A
D1 D1
3 5
1B
1Y1 Y1
D2 D2
6

D3
1Y2
7
Y2 Codificare
D3 1
Y3 A1 A0 Y
zecimală
1Y3
~1G
A0 A

A1 B
0 0 0 D0
~G
0 1 1 D1
A2 1 0 2 D2
A3 1 1 3 D3
Explicitarea modului în care intrările sunt
Circuit de multiplexare conectate la ieşire funcţie de adresa de selecţie
demultiplexare

Circuite combinationale 79
2.5.2 Analiza funcţionării circuitului

D0 Y 2 4
Intrări
D0
1A
1Y0 Y0
D1 5

Ieşiri
3
D1
Y1
D2 D2
1B
1Y1
6
Codif.
D3 1
1Y2
7
Y2 A3 A2 G
A0
D3

A
~1G
1Y3 Y3 Zecim.
A1
Y0  G
B

~G 0 0 0
A2
0 1 1 Y1  G
A3
1 0 2 Y2  G
Circuit de multiplexare 1 1 3 Y3  G
demultiplexare Explicitare modului în care intrarea este
conectată la ieşire funcţie de adresa de selecţie

Circuite combinationale 80
2.5.2 Analiza funcţionării circuitului
Adresa selecţie mux Adresă selecţie dmux Modul de conectare al
{A1, A0} {A3, A2} intrărilor la ieşiri
0 0 Y0=D0
1 0 Y0=D1
2 0 Y0=D2
3 0 Y0=D3
0 1 Y1=D0
1 1 Y1=D1
2 1 Y1=D2
3 1 Y1=D3
0 2 Y2=D0
1 2 Y2=D1
2 2 Y2=D2
3 2 Y2=D3
0 3 Y3=D0
1 3 Y3=D1
2 3 Y3=D2
3 3 Y3=D3

Circuite combinationale 81
2.5.2 Analiza funcţionării circuitului

D0 Y 2 4 Modul de
D1
D0
1A
1Y0
5
Y0 Adresa Adresă
D1
3
Y1 conectare
selecţie selecţie
1Y1
1B
D2 6

al intrărilor
D2
1Y2 Y2
D3 1 7
D3 1Y3 Y3 mux dmux
A0 A
~1G
la ieşiri
A1 B

~G
0 0 Y0=D0
1 1 Y1=D1
A2 2 2 Y2=D2
A3 3 3 Y3=D3
Circuit de multiplexare Tabel simplificat de funcţionare al
demultiplexare circuitului din figura

Circuite combinationale 82
2.5.3 Simularea SPICE a funcţionării circuitului

16 0
0 1
0
0
0

X
X
X
Y
X D0
2 4 F
D1 1A
1Y0 C Q T
31 15 3 5
T R 1Y1
D2 1B 6
1Y2
D3 7
1
1Y3
A ~1G

~G

Circuit utilizat pentru simularea circuitului de multiplexare


demultiplexare
Circuite combinationale 83
2.5.3 Simularea SPICE a funcţionării circuitului

D0
D1
D2
D3
A

Y0
Y1
Y2
Y3

Formele de undă obţinute prin simularea funcţionării


circuitului
Circuite combinationale 84
2.5.3 Simularea SPICE a funcţionării circuitului

Se constată că:

1.dacă adresa de selecţie A este {A0, A1}={0, 0}, ieşirea Y0 este


identică cu intrarea D0.
2.dacă adresa de selecţie A este {A0, A1}={0, 1}, ieşirea Y1 este
identică cu intrarea D1
3.dacă adresa de selecţie A este {A0, A1}={1, 0}, ieşirea Y2 este
identică cu intrarea D2
4.dacă adresa de selecţie A este {A0, A1}={1, 1}, ieşirea Y3 este
identică cu intrarea D3

Circuite combinationale 85
2.5.4 Simularea VERILOG a funcţionării circuitului

module dmux4 (g, Ado, Yf); module mux4_la_1 (Dt, Ad, Ys);
// intrari input [0:3] Dt;
input g; input [0:1] Ad;
input [0:1] Ado; output Ys;
// iesiri reg Ys;
output [0:3] Yf; always @ (Dt or Ad)
reg [0:3] Yf; if (Ad==0)
always @ (g or Ado) Ys<=Dt[0];
if (Ado==0) else if (Ad==1)
Yf[0]<=g; Ys<=Dt[1];
else if (Ado==1) else if (Ad==2)
Yf[1]<=g; Ys<=Dt[2];
else if (Ado==2) else
Yf[2]<=g; Ys<=Dt[3];
else endmodule
Yf[3]<=g;
endmodule
Circuite combinationale 86
2.5.4 Simularea VERILOG a funcţionării circuitului

Programul utilizat pentru modelarea Programul de test:


circuitului prezentat: module Testbench;
reg [0:3] Dx;
module muxdmux (D, Ai, Ao, Yo); reg [0:1] Aix;
input [0:3] D; reg [0:1] Aox;
input [0:1] Ai; wire [0:3] Yx;
input [0:1] Ao; initial
output [0:3] Yo; begin
wire m; Dx[0]=0;
Dx[1]=0;
mux4_la_1 mux (D, Ai, m);
Dx[2]=0;
dmux4 dmux (m, Ao, Yo);
Dx[3]=0;
endmodule Aix[0]=0;
Aix[1]=0;
Aox[0]=0;
Aox[1]=0;
end
Circuite combinationale 87
2.5.4 Simularea VERILOG a funcţionării circuitului

Programul de test (cont.): Programul de test - semnal intrari (cont.):


always
// initializarea intrarilor begin
initial #1Dx[0]=~Dx[0];
end
begin
always
Dx[0]=0;
begin
Dx[1]=0; #2Dx[1]=~Dx[1];
Dx[2]=0; end
Dx[3]=0; always
Aix[0]=0; begin
Aix[1]=0; #4Dx[2]=~Dx[2];
Aox[0]=0; end
Aox[1]=0; always
begin
end
#8Dx[3]=~Dx[3];
end
Circuite combinationale 88
2.5.4 Simularea VERILOG a funcţionării circuitului

Programul de test - semnal adrese: Programul de test - semnal adrese

always always
begin begin
#128Aox[1]=~Aox[1];
#16Aix[0]=~Aix[0];
end
end
always // conectarea semnalelor la intrari
begin
#32Aix[1]=~Aix[1]; muxdmux muxdmux4 (Dx, Aix, Aox, Yx);
end endmodule
always
begin
#64Aox[0]=~Aox[0];
end

Circuite combinationale 89
2.5.4 Simularea VERILOG a funcţionării circuitului

Figura prezintă rezultatele obţinute pentru situaţiile în care adresele


multiplexorului au valori 0 sau 2
Circuite combinationale 90
2.5.4 Simularea VERILOG a funcţionării circuitului

Figura prezintă rezultatele obţinute pentru situaţiile în care adresele


multiplexorului au valori 1 sau 3
Circuite combinationale 91
2.6 Memorii
a.) Definiţie: Circuite electronice care realizează funcţia memorare adică
de a păstra o informaţie binară într-o locaţie ce poate fi adresată printr-un
alt număr numit adresa locaţiei.

Observaţie: Litaratura de specialitate prezintă două tipuri principale de


memorie:

1.memorii ROM (Read Only Memory) memorii ce pot fi doar citite, după ce
au fost în prealabil încrise de obicei în procesul de fabricaţie;
2.memorii RAM (Random Acces Memory) memorii ce pot fi utilizate atát
pentru scriere cát şi pentru citire

Circuite combinationale 92
2.6 Memorii
b.) Simbol şi notaţii folosite

MAGISTRALA MAGISTRALA
DE ADRESE DE DATE

MAGISTRALA
DE CONTROL

Simbolul general al unei memorii

Circuite combinationale 93
2.6 Memorii
c.) Structura unei memorii
+EC

D
E
C
MAGISTRALA O
DE ADRESE D
O
R
MAGISTRALA
DE CONTROL

MAGISTRALA
DE DATE

Structura de principiu a unui Structura unei celule de


ROM memorie
Circuite combinationale 94
2.6 Memorii
c.) Structura unei memorii
Familia memoriilor ROM cuprinde:

PROM (Programmable Read-Only Memory), memorii care pot fi scrise


(programate) cu ajutorul unui dispozitiv special. Un PROM nu poate fi scris decát o
singură dată.
EPROM (Erasable Programmable Read-Only Memory), memorii care pot fi sterse.
Scrierea se realizează tot cu ajutorul unui programator numit programator EPROM.
EAROM (Electrically Alterable Read-Only Memory) memorii al căror conţinut poate
fi modificat bit cu bit.
EEPROM (Electrically Erasable Programmable Read-Only Memory) memorii care
pot fi şterse (nu numai bit cu bit ci intregi secţiuni sau chiar în totalitate), respectiv
rescrise fără a necesita demontarea lor din calculator

Circuite combinationale 95
2.6 Memorii
d.) descrierea VERILOG

module SRAM (dateout ,datein, adresa, w);


input [9:0] adresa;
input [3:0] datein;
input w;
output [3:0] dateout;
reg [3:0] date;
reg [0:3] SRAM [1023:0]; // memoria

always @ (datein or adresa or w)


begin
if (~w) SRAM [adresa] <=datein;
else dateout<=mem[adresa];
end
endmodule
Circuite combinationale 96

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