15 Circuite Combinationale.ppt

  • Uploaded by: Catalin Apetre
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 15 Circuite Combinationale.ppt as PDF for free.

More details

  • Words: 5,183
  • Pages: 96
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

Related Documents

Circuite El
August 2019 23
15
October 2019 40
15
November 2019 33

More Documents from ""