1 3.gate-level minimization. 2 gate-level minimization – two-variable map xyz + xyz' =...

35
1 3.Gate-Level Minimization

Upload: peregrine-foster

Post on 04-Jan-2016

243 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

1

3.Gate-Level Minimization

Page 2: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

2

Gate-Level Minimization – Two-Variable Map

xyz + xyz' = xy(z+z')=xy xyz + xy'z = x(y+y')z=xz xyz + x'yz = (x+x')yz=yz 인접항들의 결합임

xyz + x'y'z‘ = ? (minimization 안됨 )

즉 분배법칙을 통한 minimization 과정 인접항들을 찾는 과정 필요함 하나의 minterm 은 3 개의 인접항들을 갖음

Page 3: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

3

Gate-Level Minimization – Two-Variable Map

(2)x'yz (1)xyz (2)xy'z (3)x'y'z

(4)x'yz' (2)xyz' (3)xy'z'(4)x'y'z'

m3 m7 m5 m1

m2 m6 m4 m0

Page 4: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

4

Gate-Level Minimization – Two-Variable Map

x'y'z' x'yz'

xy'z' xyz'

m0 m2

m4 m6

빈 칸 채워볼 것

Page 5: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

5

Gate-Level Minimization – Two-Variable Map

m1+m2+m3 = x'y +xy' +xy = x(y+y’) + y(x+x’) = x +y

Two-Variable Map

Three-Variable Map – 위치 암기하기

Page 6: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

6

Gate-Level Minimization – Three-Variable Map

Map 에서 인접셀은 변수중 하나만 complement 관계이고 나머지는 같은 변수로 이루어짐

m0 와 m4 의 차이점 ? m0 + m4 = ? m1 와 m3 의 차이점 ? m1 + m3= ? m6 와 m4 의 차이점 ? m6 + m4= ? m0 + m1 + m4 + m5= ?

Page 7: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

7

Gate-Level Minimization – Three-Variable Map

Ex 3-1) Simplify the Boolean function, F(x, y, z) = Σ(2, 3, 4, 5)

F = x'y + xy'

Ex 3-2) F(x, y, z) = Σ(3,4,6,7) F = yz+xz'

Page 8: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

8

Gate-Level Minimization – Three-Variable Map

Ex 3-3) Simplify the Boolean function, F(x, y, z) = Σ(0,2,4,5,6)

F = z'+xy'

Ex 3-4) Given Boolean function, F =

A'C + A'B +AB'C +BC a) express it in sum of minterms F(A, B, C) = Σ(1, 2, 3, 5, 7) b) find the minimal sum of products F = C + A'B

위의 2 개의 example 해볼 것

Page 9: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

9

Gate-Level Minimization – Four-Variable Map

Ex 3-5) Simplify the Boolean function,

F(w, x, y, z) = Σ(0, 1, 2, 4, 5, 6, 8, 9, 12, 13, 14)

F = y'+ w'z' + xz'

Ex 3-6) 해볼 것

1

Page 10: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

10

F(A,B,C,D) = Σ(0,2,3,5,7,8,9,10,11,13,15)

F=BD+B'D'+CD+AD

=BD+B'D'+CD+AB' =BD+B'D'+B'C+AD

=BD+B'D'+B’C+AB'

Gate-Level Minimization – Prime Implicants

Page 11: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

11

Gate-Level Minimization – Five-Variable Map

* 순서 외울것

Page 12: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

12

Ex 3-7) Simplify the Boolean function,F(A,B,C,D,E)=Σ(0,2,4,6,9,13,21,23,25,29,31)

F = A'B'E' + BD'E + ACE * 위의 예제 해볼 것

Gate-Level Minimization – Five-Variable Map

Page 13: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

13

Product of Sums Simplification Ex 3-8) Simplify the Boolean function,

F(A, B, C, D) = Σ(0, 1, 2, 5, 8, 9, 10)

a) sum of products F = B'D' + B'C' +A'C'D

b) product of sum F = (A' +B')(C' +D')(B' +D)

Page 14: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

14

Product of Sums Simplification Ex 3-8) Simplify the Boolean function,

F(A, B, C, D) = Σ(0, 1, 2, 5, 8, 9, 10)

b) product of sum G=F' = AB + CD + BD'

F = G'=(A' +B')(C' +D')(B' +D)

0 0 1 0

1 0 1 1

1 1 1 1

0 0 1 0

Page 15: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

15

F( x, y, z) = Σ(1, 3, 4, 6) = ∏ (0, 2, 5, 7) F = x'z +xz' F' = xz +x'z' F = (x'+z')(x + z)

* 위의 예제 해 볼 것

Product of Sums Simplification

Page 16: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

16

Don’t-Care Conditions x y F 0 0 1 0 1 X 1 0 0 1 1 1

1 X0 1

F = x’ + y

x y F 0 0 1 0 1 0 1 0 0 1 1 1

x y F 0 0 1 0 1 1 1 0 0 1 1 1

1 10 1

F = x’ + y

1 00 1

F = x’y’ + xy

Page 17: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

17

Don’t-Care Conditions x y F 0 0 1 0 1 X 1 0 1 1 1 0

x y F 0 0 1 0 1 0 1 0 1 1 1 0

x y F 0 0 1 0 1 1 1 0 1 1 1 0

1 11 0

F = x’ + y’

1 01 0

F = y’

1 X1 0

F = y’

Page 18: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

18

Don’t-Care Conditions Ex 3-9) Simplify the Boolean function, F(w, x, y, z) = Σ(1,3,7,11,15) Don’t-care conditions, d(w, x, y, z) = Σ(0, 2, 5)

F(w, x, y, z) = yz + w'x' = Σ(0, 1, 2, 3, 7, 11, 15) F(w, x, y, z) = yz + w'z = Σ(1, 3, 5, 7, 11, 15)

Page 19: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

19

NAND and NOR Implementation NAND 와 NOR 게이트가 회로적으로 구성 용이함 – 어떠한 digital

system 이라도 NAND 또는 NOR 로만 구성하는 것이 가능 NAND Circuit (inverter 는 하나의 입력이 ‘ 1’ 로 또는 2 개의 입력이 하나로 결합된 형태의

NAND 로 구현 )

Page 20: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

20

F = ((AB)'(CD)')' = AB + CD

Ex 3-10) Implement the following Boolean function with NAND gates:F(x, y, z) = Σ(1, 2, 3, 4, 5, 7) = xy' + x'y + z

NAND and NOR Implementation (NAND : 2-level)

Page 21: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

21

NAND and NOR Implementation(NAND : Multi-level)

Page 22: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

22

NAND and NOR Implementation(NAND)

•NAND 의 두가지 표현 방법은 ?

•AND 와 OR 를 NAND 로 나타내시오 .

Page 23: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

23

NOR Implementation (inverter 는 하나의 입력이 ‘ 0’ 으로 또는 2 개의 입력이 하나로 결합된 형태의 NOR 로 구현 )

F = (AB' + A'B)(C + D')

NAND and NOR Implementation(NOR)

Page 24: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

24

NAND and NOR Implementation(NOR)

•NOR 의 두가지 표현 방법은 ?

•AND 와 OR 를 NOR 으로 나타내시오 .

•F = (AB' + A'B)(C + D') 를 NOR 으로 나타내시오 .

Page 25: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

25

Wired Logic

Wired AND : Open collector

Wired OR : ECL

Page 26: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

26

2-LEVEL

AND, OR, NAND, NOR 의 4 개의 gate 고려 – 16 개의 2 level 가능 Degenerate form – 하나의 동일한 gate 로 표현 가능 . 즉 1 level 로

구현 가능 AND-AND one AND AND-NAND one NAND OR-OR one OR OR-NOR one NOR, NAND-OR one NAND NAND-NOR one AND NOR-AND one NOR NOR-NAND one OR

Nondegenerate form AND-OR, OR-AND : standard form 으로 이미 학습 NAND-NAND, NOR-NOR : 이미 학습 NAND-AND, AND-NOR AND-OR-INVERT 로 구현 OR-NAND, NOR-OR OR-AND-INVERT 로 구현

Example 3-11(a) 의 map 을 AND-OR-INVERT 로 구현하고 , 이를 각각 NAND-AND 및 AND-NOR 로 그리시오 .

Page 27: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

27

2-LEVEL (F=(AB+CD+E)’,F=[(A+B)(C+D)E]’)

Page 28: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

28

Exclusive-OR Function x y = xy' + x'y ( 만들어볼것 ) (x y)' = (xy' + x'y)' = xy + x'y'

x 0=x x 1=x' x x=0 x x'=1 x y'=x' y=(x y)‘

A B = B A (A B) C = A (B C) = A B C

Fig. 3-32 회로가 EX-OR 나오는지풀어볼 것

Page 29: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

29

Parity Generation and Checking

P = x y z ( 송신측 ) C = x y z P ( 수신측 )

Exclusive-OR Function

Page 30: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

30

HDL(Hardware Description Language)( 퀴즈 및 시험 안 나옴 ) VHDL, Verilog HDL Module Representation

//HDL Example 3-1

//Description of the simple circuit of Fig. 3-37

module smpl_circuit(A,B,C,x,y);

input A,B,C;

output x,y;

wire e;

and g1(e,A,B);

not g2(y, C);

or g3(x,e,y);

endmodule

Page 31: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

31

HDL(Hardware Description Language) 다음의 HDL 의 내용으로 회로를 그리시오 .

module smpl_circuit(A,B,C,x,y);

input A,B,C;

output x,y;

wire e;

and g1(e,A,B);

not g2(y, C);

or g3(x,e,y);

endmodule

Page 32: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

32

Gate Delays - `timescale 1ns/100ps

HDL(Hardware Description Language)

//HDL Example 3-2

//Description of circuit with delay

module circuit_with_delay (A,B,C,x,y);

input A,B,C;

output x,y;

wire e;

and #(30) g1(e,A,B);

or #(20) g3(x,e,y);

not #(10) g2(y,C);

endmodule

Page 33: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

33

//HDL Example 3-3

//Stimulus for simple circuit

module stimcrct;

reg A,B,C;

wire x,y;

circuit_with_delay cwd(A,B,C,x,y);

initial

begin

A = 1'b0; B = 1'b0; C = 1'b0;

#100

A = 1'b1; B = 1'b1; C = 1'b1;

#100 $finish;

end

Endmodulemodule circuit_with_delay (A,B,C,x,y); input A,B,C; output x,y; wire e; and #(30) g1(e,A,B); or #(20) g3(x,e,y); not #(10) g2(y,C);endmodule

e

Page 34: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

34

HDL(Hardware Description Language)

//HDL Example 3-4

// x=A+BC+B’D

// y=B’C+BC’D’

//Circuit specified with Boolean equations

module circuit_bln (x,y,A,B,C,D);

input A,B,C,D;

output x,y;

assign x = A | (B & C) | (~B & C);

assign y = (~B & C) | (B & ~C & ~D);

endmodule

Boolean Expressions

- AND, OR, NOT => (&), (|), (~)

Page 35: 1 3.Gate-Level Minimization. 2 Gate-Level Minimization – Two-Variable Map  xyz + xyz' = xy(z+z')=xy  xyz + xy'z = x(y+y')z=xz  xyz + x'yz = (x+x')yz=yz

35

User-Defined Primitives (UDP)

HDL(Hardware Description Language)

//HDL Example 3-5

//User defined primitive(UDP)

primitive crctp (x,A,B,C);

output x;

input A,B,C;

//Truth table for x(A,B,C) = Minterms (0,2,4,6,7)

table

// A B C : x (Note that this is only a comment)

0 0 0 : 1;

0 0 1 : 0;

0 1 0 : 1;

0 1 1 : 0;

1 0 0 : 1;

1 0 1 : 0;

1 1 0 : 1;

1 1 1 : 1;

endtable

endprimitive

//Instantiate primitive

module declare_crctp;

reg x,y,z;

wire w;

crctp (w,x,y,z);

endmodule