Circuite combinaţionale integrate tipizate 2.1. 2.2. 2.3 2.4. 2.5 2.6
Preliminarii Porţi logice uzuale Tehnici de analiză a circuitelor cu porţi logice Multiplexoare şi demultiplexoare Tehnici de analiză a circuitelor cu demultiplexoare şi/sau cu multiplexoare Memorii
Circuite combinationale
1
2.1. Preliminarii a.) Definiţii X1 X2
Y1 f1 X 1 , X 2 , ... , X n
Y1 Y2
Y2 f 2 X 1 , X 2 , ... , X n Ym f m X 1 , X 2 , ... , X n
CLC Xn
Ym
Schema bloc de principiu a unui circuit logic combinaţional X X 1 , X 2 , X n
Y Y1 , Y2 , Ym f f1 , f 2 , f m
S c X , Y , f 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 A B 0 0 0 1 1 0 1 1
Ieşiri Y1 Y2 0 1 1 0 1 1 1 0
Circuite combinationale
Y1 AB AB AB Y2 AB AB
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 B
Simbol AND; standard ANSI
&
Y
Simbol AND; standard DIN
c.) Descrierea funcţionării cu ajutorul funcţiilor logice Y ( A, B) A B Y ( A, B) A B Y ( A, B ) AB sau d.) Descrierea funcţionării cu ajutorul tabelului de adevăr. Intrări A B 0 0 0 1 1 0 1 1
Ieşire Y 0 0 0 1
Circuite combinationale
6
2.2.1. Poarta logică AND (cont.) e.) Simulare SPICE a functionării porţii 0
16
1
0 0 0
A
1
B
1
0
1
0
0
0
1
0
0
0
0
A X
Y
1
X X X 31
T
15 R
B F C Q T
Circuit utilizat la simularea funcţionarii porţii AND
1
Y
Formele de undă asociate cu 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 B
A Y A
B
Simbol NAND; standard ANSI
&
Y
Simbol NAND; standard DIN
c.) Descrierea funcţionării cu ajutorul funcţiilor logice Y ( A, B) A B Y ( A, B) AB sau Y ( A, B) A B d.) Descrierea funcţionării cu ajutorul tabelului de adevăr. Intrări A B 0 0 0 1 1 0 1 1
Ieşire Y 1 1 1 0
Circuite combinationale
14
2.2.2. Poarta logică NAND (cont.) e.) Simulare SPICE a functionării porţii
0
16
1
0 0 0
A
Y
0 X
B
A
0
1
0
1
B
0
0
1
1
Y
1
1
1
0
X X X 31
T
15 R
F C Q T
Circuit utilizat la simularea funcţionarii porţii NAND
Formele de undă asociate cu 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 B
A B
Y
Simbol OR; standard ANSI
1
Y
Simbol OR; standard DIN
c.) Descrierea funcţionării cu ajutorul funcţiilor logice Y ( A, B) A B Y ( A, B ) A B sau d.) Descrierea funcţionării cu ajutorul tabelului de adevăr. Intrări A B 0 0 0 1 1 0 1 1
Ieşire Y 0 1 1 1
Circuite combinationale
22
2.2.3. Poarta logică OR (cont.) e.) Simulare SPICE a functionării porţii
A
0
1
0
1
0
0
1
1
0
1
1
1
B Y
Circuit utilizat la simularea funcţionarii porţii OR
Formele de undă asociate cu 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
A B
Y B
Simbol NOR; standard ANSI
1
Y
Simbol NOR; standard DIN
c.) Descrierea funcţionării cu ajutorul funcţiilor logice Y ( A, B) A B Y ( A, B ) A B sau d.) Descrierea funcţionării cu ajutorul tabelului de adevăr. Intrări A B 0 0 0 1 1 0 1 1
Ieşire Y 1 0 0 0
Circuite combinationale
30
2.2.4. Poarta logică NOR (cont.) e.) Simulare SPICE a functionării porţii 16
0 1
0 0 0 0 X
A
0
1
0
1
B
0
0
1
1
Y
1
0
0
0
X X X 31
T
15 R
F C Q
T
Circuit utilizat la simularea funcţionarii porţii NOR
Formele de undă asociate cu 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 A
Y
A
Simbol NOT; standard ANSI
1
Y
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 0 1
Y 1 0
Circuite combinationale
38
2.2.5. Poarta logică NOT (cont.) e.) Simulare SPICE a functionării porţii
Circuit utilizat la simularea funcţionarii porţii NOT
A
1
0
B
0
1
Formele de undă asociate cu 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 B C
Circuit logic
Y
A B C
A B C
A B C
Explicitarea funcţiei logice implementată de circuitul din figura
Circuite combinationale
47
2.3.2 Simularea SPICE a funcţionării circuitului 16
0 1
0 0 0 0
A
X
B
X
C
X X 31
T
15 R
F C Q T
Circuit utilizat pentru simularea funcţionării circuitului
Y
Formele undă asociate circuitului
Circuite combinationale
48
2.3.3 Simularea VERILOG a funcţionării circuitului A B C
d
e
Y
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
Ieşiri
Date
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 D0
31
T
X
D1
X
D2
X
D3
X
A
15 R
B
D1 D2
Y
D3
F C Q
T
Y
~G
Circuit utilizat pentru simularea funcţionării multiplexorului în situaţia în care A=0 şi B=0
Formele de undă ataşate circuitului din figura
Circuite combinationale
57
2.4.1. Multiplexorul (cont.) f.) Simulare SPICE a functionării multiplexorului 4 la 1 16
0 1
0 0
D0
0 0
D0
D1 D2 D3
Y
D1
X X X X 31
T
15 R
D2 D3 A B
F C Q T
~G
Circuit utilizat pentru simularea funcţionării multiplexorului în situaţia în care A=1 şi B=0
Y
Formele de undă ataşate circuitului din figura
Circuite combinationale
58
2.4.1. Multiplexorul (cont.) f.) Simulare SPICE a functionării multiplexorului 4 la 1 16
0 1
0 0 0 0
D0
D0
Y
D1 D2 D3
D1
X X X X 31
T
15 R
D2 D3 A B
F C Q T
Y
~G
Circuit utilizat pentru simularea funcţionării multiplexorului în situaţia în care A=0 şi B=1
Formele de undă ataşate circuitului din figura
Circuite combinationale
59
2.4.1. Multiplexorul (cont.) f.) Simulare SPICE a functionării multiplexorului 4 la 1
D0 D1 D2 D3
Y
Circuit utilizat pentru simularea funcţionării multiplexorului în situaţia în care A=1 şi B=1
Formele de undă ataşate circuitului din figura
Circuite combinationale
60
2.4.1. Multiplexorul (cont.) g.) Simulare VERILOG a funcţionării multiplexorului 4 la 1 module Testbench; reg [0:3] intrare_D; reg [0:1] adresa_t; wire iesire_Y; initial begin
always begin #2intrare_D[1]=~intrare_D[1]; end always intrare_D[0]=0; intrare_D[1]=0; intrare_D[2]=0; intrare_D[3]=0; adresa_t[0]=0; adresa_t[1]=0;
end always
begin #4intrare_D[2]=~intrare_D[2]; end
always begin #8intrare_D[3]=~intrare_D[3]; end always begin #16adresa_t[0]=~adresa_t[0]; end
begin #1intrare_D[0]=~intrare_D[0]; end
always begin #32adresa_t[1]=~adresa_t[1]; end mux4_la_1 mux4_la_1_t (intrare_D,
always begin #2intrare_D[1]=~intrare_D[1]; end
iesire_Y); endmodule Circuite combinationale
adresa_ 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
b.) Simbol şi notaţii folosite
Simbol DMUX; standard ANSI
Y3
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 Y1 Y2
Y2 G AB
Y3 GAB
Y3
G
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 Enable Adrese G B A 1 X X 0 0 0 0 0 1 0 1 0 0 1 1
Ieşiri Y0 1 0 1 1 1
Circuite combinationale
Y1 1 1 0 1 1
Y2 1 1 1 0 1
Y3 1 1 1 1 0
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.
G A0 A1 Y0 Y1 Y2 Y3
Circuit utilizat pentru simularea funcţionării demultiplexorului
Formele de undă ataşate circuitului din figura
Circuite combinationale
68
2.4.2. Demultiplexorul (cont.) g.) Simulare VERILOG a funcţionării demultiplexorului 1 la 4 module Testbench; reg intrare_G; reg [0:1] adresa_t; wire [0:3] iesire_Y; initial begin
always begin #16adresa_t[0]=~adresa_t[0]; end
always begin #32adresa_t[1]=~adresa_t[1]; end endmodule
#1intrare_G=0; #1adresa_t[0]=0; #1adresa_t[1]=0; 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 segmente; standard ANSI
Simbol decodor BCD - 7 segmente; standard DIN
Circuite combinationale
72
2.4.3. Decodoare specializate a.) Decodor BCD – 7 segmente Tabelul de adevar D 0 0 0 0 0 0 0 0 1 1
Intrări C B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0
A 0 1 0 1 0 1 0 1 0 1
0 1 0 1 1 0 1 0 1 1 1
1 2 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 Tabelul 2.9
Circuite combinationale
Ieşiri 3 1 0 1 1 0 1 1 0 1 0
4 1 0 1 0 0 0 1 0 1 0
5 1 0 0 0 1 1 1 0 1 1
6 0 0 1 1 1 1 1 0 1 1 73
2.4.3. Decodoare specializate a.) Decodor BCD – 7 segmente Aplicatii A B C D
A B C D
0 1 2 3 4
ABCDE FG
5 6
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; standard ANSI
Simbol decodor BCD - zecimal; standard DIN
Circuite combinationale
75
2.4.3. Decodoare specializate b.) Decodor BCD – zecimal Tabelul de adevar D 0 0 0 0 0 0 0 0 1 1
Intrări C B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0
A 0 1 0 1 0 1 0 1 0 1
0 0 1 1 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1 1
2 1 1 0 1 1 1 1 1 1 1
3 1 1 1 0 1 1 1 1 1 1
Ieşiri 4 5 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1
Circuite combinationale
6 1 1 1 1 1 1 0 1 1 1
7 1 1 1 1 1 1 1 0 1 1
8 1 1 1 1 1 1 1 1 0 1
9 1 1 1 1 1 1 1 1 1 0 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 D1 D2 D3 A0 A1
D0 D1
Y
4
2 3
1A 1B
D2 D3
1Y0 5 1Y1 6 1Y2 7
1 ~1G
1Y3
A
Y0 Y1 Y2 Y3
D3, D2, D1, D0 A1, A0 A3, A2
B ~G
Y3, Y2, Y1, Y0
intrări de date; intrări de selecţie pentru multiplexor; intrări de selecţie pentru demultiplexor; ieşiri de date;
A2 A3
Circuit de multiplexare demultiplexare Circuite combinationale
78
2.5.2 Analiza funcţionării circuitului D0 D1 D2 D3 A0 A1
Y
D0
3
D1
4
2 1A 1B
D2
1Y0 5 1Y1 6 1Y2 7
1
D3
~1G
1Y3
A B ~G
A2 A3
Circuit de multiplexare demultiplexare
Y0 Y1 Y2 Y3
Intrări Ieşire Codificare A1 A0 Y zecimală 0 0 0 D0 0 1 1 D1 1 0 2 D2 1 1 3 D3 Explicitarea modului în care intrările sunt conectate la ieşire funcţie de adresa de selecţie
Circuite combinationale
79
2.5.2 Analiza funcţionării circuitului
D0 D1 D2 D3 A0 A1
D0 D1
Y
4
2 3
1A 1B
D2 D3
1Y0 5 1Y1 6 1Y2 7
1 ~1G
1Y3
Y0 Y1 Y2 Y3
Intrări A3
A2
A B ~G
A2 A3
Circuit de multiplexare demultiplexare
Codif. Zecim.
G
Ieşiri
Y0 G 0 0 Y1 G 1 1 0 2 Y2 G Y3 G 1 3 Explicitare modului în care intrarea este conectată la ieşire funcţie de adresa de selecţie
0 0 1 1
Circuite combinationale
80
2.5.2 Analiza funcţionării circuitului Adresa selecţie mux {A1, A0} 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
Adresă selecţie dmux {A3, A2} 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 Circuite combinationale
Modul de conectare al intrărilor la ieşiri Y0=D0 Y0=D1 Y0=D2 Y0=D3 Y1=D0 Y1=D1 Y1=D2 Y1=D3 Y2=D0 Y2=D1 Y2=D2 Y2=D3 Y3=D0 Y3=D1 Y3=D2 Y3=D3 81
2.5.2 Analiza funcţionării circuitului
D0 D1 D2 D3 A0 A1
D0 D1
Y
4
2 3
1A 1B
D2 D3
1Y0 5 1Y1 6 1Y2 7
1 ~1G
1Y3
Y0 Y1 Y2 Y3
Adresa selecţie mux
Adresă selecţie dmux
0 1 2 3
0 1 2 3
A B ~G
A2 A3
Circuit de multiplexare demultiplexare
Modul de conectare al intrărilor la ieşiri Y0=D0 Y1=D1 Y2=D2 Y3=D3
Tabel simplificat de funcţionare al circuitului din figura
Circuite combinationale
82
2.5.3 Simularea SPICE a funcţionării circuitului 16
0 1
0 0 0 0 X X X X 31
T
15 R
D0 D1
Y
3
D2 D3
4
2 1A 1B
1Y0 5
F C Q T
1Y1 6 1Y2 7
1
A
~1G
1Y3
B ~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); // intrari input g; input [0:1] Ado; // iesiri output [0:3] Yf; reg [0:3] Yf; always @ (g or Ado) if (Ado==0) Yf[0]<=g; else if (Ado==1) Yf[1]<=g; else if (Ado==2) Yf[2]<=g; else Yf[3]<=g; endmodule
module mux4_la_1 (Dt, Ad, Ys); input [0:3] Dt; input [0:1] Ad; output Ys; reg Ys; always @ (Dt or Ad) if (Ad==0) Ys<=Dt[0]; else if (Ad==1) Ys<=Dt[1]; else if (Ad==2) Ys<=Dt[2]; else Ys<=Dt[3]; endmodule
Circuite combinationale
86
2.5.4 Simularea VERILOG a funcţionării circuitului Programul utilizat pentru modelarea circuitului prezentat:
module muxdmux (D, Ai, Ao, Yo); input [0:3] D; input [0:1] Ai; input [0:1] Ao; output [0:3] Yo; wire m; mux4_la_1 mux (D, Ai, m); dmux4 dmux (m, Ao, Yo); endmodule
Programul de test: module Testbench; reg [0:3] Dx; reg [0:1] Aix; reg [0:1] Aox; wire [0:3] Yx; initial begin
Dx[0]=0; Dx[1]=0; Dx[2]=0; Dx[3]=0; Aix[0]=0; Aix[1]=0; Aox[0]=0; Aox[1]=0; Circuite combinationale
end
87
2.5.4 Simularea VERILOG a funcţionării circuitului Programul de test (cont.):
Programul de test - semnal intrari (cont.): always
// initializarea intrarilor initial begin Dx[0]=0; Dx[1]=0; Dx[2]=0; Dx[3]=0; Aix[0]=0; Aix[1]=0; Aox[0]=0; Aox[1]=0; end
begin
#1Dx[0]=~Dx[0]; end always begin #2Dx[1]=~Dx[1]; end
always begin #4Dx[2]=~Dx[2]; end always
begin #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); endmodule
end 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 DE ADRESE
MAGISTRALA DE DATE
MAGISTRALA DE CONTROL
Simbolul general al unei memorii
Circuite combinationale
93
2.6 Memorii c.) Structura unei memorii +EC
MAGISTRALA DE ADRESE
D E C O D O R
MAGISTRALA DE CONTROL
MAGISTRALA DE DATE
Structura de principiu a unui ROM Circuite combinationale
Structura unei celule de memorie 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