ฟังก์ชันบูลลีน

advertisement
Boolean Algebra
Department of Computer Science, BUU
1
Boolean Algebra
• เครื่ องคอมพิวเตอร์ ประกอบด้วยวงจรไฟฟ้ าทางานเป็ นจังหวะ และ
ประสานงานกันเป็ นระบบวงจรไฟฟ้ าเหล่านี้ประกอบด้วยชิ้นส่ วน
พื้นฐานซึ่งรับข้อมูล และส่ งข้อมูลออกโดยที่ขอ้ มูลเหล่านี้แทนด้วย 2
สถานะ คือ ปิ ดหรื อเปิ ด
• การออกแบบวงจรทั้งหลายได้อาศัยหลักการทางตรรกะ ซึ่งถือเป็ น
พื้นฐานของพีชคณิ ตบูลลีนโดยการแทนการทางานของวงจรด้วย
ฟังก์ชนั บูลลีน ฟังก์ชนั ดังกล่าวสามารถเขียนในรู ปนิพจน์ ที่ประกอบด้วย
ตัวแปร แบบ 2 สถานะ และตัวดาเนินการบูลลีน และกรรมวิธีในการลด
รู ปนิพจน์บูลลีน ซึ่งจะส่ งผลให้วงจรที่ออกแบบมีความซับซ้อนน้อยและ
ทางานอย่างมีประสิ ทธิภาพ
Department of Computer Science, BUU
2
Boolean Functions
• ฟังก์ชันบูลลีน
– พีชคณิ ตบูลลีนประกอบด้วยการดาเนินการ และกฏซึ่ งกระทากับค่าหรื อ
ชุดของค่า ค่าแต่ละค่านั้นกาหนดได้เป็ น 2 ลักษณะ เขียนแทนด้วย
สัญลักษณ์ 0 (ค่าเท็จ - false) และ 1 (ค่าจริ ง - true)
– การดาเนินการในพีชคณิ ตบูลลีน มีอยู่ 3 การดาเนินการคือ
Complementation, Boolean Sum (การบวกบูลลีน)และ
Boolean Product (การคูณบูลลีน)
Department of Computer Science, BUU
3
Boolean Functions
– การดาเนินการ complementation แทนด้วยสัญลักษณ์ :
0  1; 1  0
– การดาเนินการบวกบูลลีน หรื อ OR แทนด้วยสัญลักษณ์ +:
1 + 1 = 1, 1+ 0 = 1, 0 + 1 = 1, 0 + 0 = 0
– การดาเนินการคูณบูลลีน หรื อ AND แสดงด้วยสัญลักษณ์ . :
1 . 1 = 1, 1 . 0 = 0, 0 . 1 = 0, 0 . 0 = 0
โดยปกติ เราสามารถละสัญลักษณ์ . ได้
Department of Computer Science, BUU
4
Boolean Functions
• ในนิพจน์บูลลีน ซึ่งมีตวั ดาเนินการบูลลีนปนกัน ถ้าไม่มีเครื่ องหมาย
วงเล็บกาหนดให้ดาเนินการเรี ยงตามลาดับคือ ทา complement
ก่อนจากนั้นทา AND ท้ายที่สุดจึงทา OR
• Example: จงหาค่า
Solution:
1 0  ( 0  1 )
1 0  (0  1)  0  1  0  0  0
• ตัวดาเนินการบูลลีน complement AND และ OR มีความหมายตรง
กับตัวดาเนินการตรรกะ ~ ^ และ v ตามลาดับ
• ในทางตรรกะนั้น 0 หมายถึงค่าเท็จ และ 1 หมายถึงค่าจริ ง ดังนั้น
พีชคณิ ตบูลลีน และ ตรรกศาสตร์จึงมีความสัมพันธ์กนั อย่างใกล้ชิด
Department of Computer Science, BUU
5
Boolean Functions
• นิยาม กาหนดให้ B = {0, 1} และ Bn = {(x1, x2, …,
xn) ซึ่ง xi  B สาหรับ 1  i  n} ตัวแปร x จะเรี ยกว่า
ตัวแปรบูลลีน (Boolean variable) ถ้าตัวแปรซึ่งอาจมีค่า 0
หรื อ 1 เท่านั้น
• ฟังก์ชนั จาก Bn ไปยัง B จะเรี ยกว่า ฟังก์ชนั บูลลีนลาดับที่ n
(Boolean function of degree n)
• เรามักอธิบายฟังก์ชนั บูลลีนด้วยตารางแสดงความสัมพันธ์ของ x1,
x2, …, xn กับค่าของฟังก์ชนั
Department of Computer Science, BUU
6
Boolean Functions
• Example: The function F ( x, y)  xy from
B2 ={(x, y) such that (x, y)  {0, 1} *
{0,1} is a Boolean function with:
F(1, 1) = 0, F(1, 0) = 1, F(0, 1) = 0, F(0, 0) = 0
Department of Computer Science, BUU
7
• สามารถเขียนฟังก์ชนั บูลลีนด้วยนิพจน์บูลลีน ซึ่งประกอบด้วยค่าคงที่
บูลลีน ตัวแปรบูลลีนและตัวดาเนินการบูลลีน
• นิพจน์บูลลีนที่ใช้ได้ (valid) มีดงั นี้
1. ค่าคงที่ 0 และ 1 เป็ นนิพจน์บูลลีน
2. ตัวแปร เป็ นนิพจน์บูลลีน
3. ถ้า E1 และ E2 เป็ นนิพจน์บูลลีนแล้ว E1, E1.E2, E1 + E2, (
E1 ), (E1 . E2) และ (E1+E2) จะเป็ นนิพจน์บูลลีน
• ค่าของนิพจน์บูลลีนหรื อฟังก์ชนั บูลลีน คานวณได้โดยการแทนค่าตัว
แปรด้วย 0 หรื อ 1 แล้วคานวณตามกฏการดาเนินการ
Department of Computer Science, BUU
8
Boolean Functions
• Example: จงหาค่าของฟังก์ชนั บูลลีนที่กาหนดโดย
F ( x , y , z )  xy  z
Solution: ค่าของฟังก์ชนั แสดงตามตารางดังนี้
Department of Computer Science, BUU
9
Boolean Functions
• ฟังก์ชนั บูลลีนลาดับที่ 2 เป็ นฟังก์ชนั จากตัวแปรสองตัว ซึ่งผสมกันได้
ทั้งหมด 4 แบบนั้นค่าของฟังก์ชนั จึงมีได้ท้ งั หมด 24 หรื อ 16 แบบ
• ตารางต่อไปนี้ แสดงค่าที่เป็ นไปได้ท้ งั หมดของฟังก์ชนั บูลลีนลาดับที่2
Department of Computer Science, BUU
10
• ตัวอย่ าง หาจานวนฟังก์ชนั บูลลีนของฟังก์ชนั บูลลีนลาดับที่ n
ฟังก์ชนั บูลลีนลาดับที่ n มีตวั แปรทั้งหมด n ตัว แต่ละตัวเป็ นได้ 2
สถานะ ฉะนั้นมีวิธีผสมตัวแปรได้ท้ งั หมด 2n วิธี ซึ่งคือจานวนค่าของ
ฟังก์ชนั แต่ละค่าเป็ นได้ 2 สถานะดังนั้นจานวนฟังก์ชนั ทั้งหมดจึงมีค่า
2(2^n)
• จากตัวอย่างข้างต้น ให้สงั เกตว่าจานวนฟังก์ชนั ที่เป็ นไปได้สาหรับ n
ตัวแปรมีขนาดเพิ่มเร็ วมาก เมื่อ n มีค่ามากขึ้น ดังนั้นการใช้
ฟังก์ชนั บูลลีนควบคุมหรื อแสดงการทางานจึงทาได้มากมาย
Boolean
Algebra
Department
of Computer
Science, BUU
11
Identities of Boolean algebra
• ในการแสดงฟังก์ชนั บูลลีนด้วยนิพจน์ เราต้องการแสดงนิพจน์ที่มี
รู ปแบบง่ายที่สุดคือ จานวนตัวแปรน้อยที่สุด และเกี่ยวข้องกับตัว
ดาเนินการน้อยที่สุดในรู ปแบบที่ซบั ซ้อนน้อยที่สุด การลดรู ปนิพจน์มี
เอกลักษณ์ ซึ่งสามารถช่วยลดรู ปได้ดงั แสดงในตารางหน้าถัดไป
• ในการพิสูจน์เอกลักษณ์ เราสามารถใช้วิธีสร้างตาราง โดยกาหนดค่า
0 และ 1 ให้กบั ตัวแปรแต่ละตัว และพิจารณาทุกค่าที่เป็ นไปได้ของชุด
ตัวแปร (ทุก combination)
Department of Computer Science, BUU
12
Identities of Boolean algebra
Department of Computer Science, BUU
13
Boolean Functions
• Example: Show that the distributive law
x(y + z) = xy + xz
Solution:
สดมภ์สุดท้ายทั้งสองของตารางมีค่าตรงกัน ดังนั้นเอกลักษณ์
x(y + z) = xy + xz จึงเป็ นจริ ง
Department of Computer Science, BUU
14
Example
• จงใช้เอกลักษณ์ในการพิสูจน์ Absorption Laws
p(p + r) = p
พิสูจน์
p(p + r) = (p + 0)(p + r) เนื่องจาก x + 0 = x
= p + (0 ⋅ r) เนื่องจาก x + yz = (x + y)(x +
z)
= p + (r ⋅ 0) เนื่องจาก xy = yx
= p + 0 เนื่องจาก x ⋅ 0 = 0
=p
เนื่องจาก x + 0 = x
Department of Computer Science, BUU
15
Duality
• คู่ (dual) ของนิพจน์บูลลีนใดคานวณได้โดยการเปลี่ยนตัว
ดาเนินการ AND เป็ น OR และเปลี่ยนตัวดาเนินการ OR เป็ น
AND และเปลี่ยนค่าคงที่ 0 เป็ น 1 และเปลี่ยนค่าคงที่ 1 เป็ น 0
• Example: จงหา duals ของ x (y + 0) และ x .1  ( y  z )
– Solution: the duals are x + (y.1) and ( x  0 )( yz )
Department of Computer Science, BUU
16
Boolean Functions
• หลักของลักษณะคู่ (duality principle)
– กล่าวว่า เอกลักษณ์ใดเป็ นจริ งแล้ว คู่ของเอกลักษณ์น้ นั จะเป็ นจริ ง
ด้วย หลักการนี้ทาให้เราสามารถหาเอกลักษณ์ใหม่ๆได้อย่าง
ง่ายดายในเชิงฟังก์ชนั บูลลีน
• ตัวอย่ าง จงหาเอกลักษณ์ซ่ ึงเป็ นคู่ของเอกลักษณ์ x(x + y) = x
คู่ของนิพจน์ x(x + y) คือ x + (xy) คู่ของ x คือ x
ดังนั้นคู่เอกลักษณ์ของx(x + y) = x คือ เอกลักษณ์ x + xy = x
Department of Computer Science, BUU
17
Boolean Functions
• Definition 1: A Boolean algebra is a set B with
two binary operations  and , elements 0 and 1,
and a unary operation  such that these properties
hold for all x, y and z in B:
x  o  x
 Identity laws
x  1  x
x  x  1
Complementlaws
x  x  0
(x  y)  z  x  ( y  z)
 Associative laws
(x  y)  z  x  ( y  z)
x  y  y  x
Commutative laws
x  y  y  x
x  (y  z)  ( x  y)  (x  z)
 Distributive laws
x  (y  z)  ( x  y)  (x  z)
Department of Computer Science, BUU
18
Boolean Functions
• The set of propositions in n variables, with the 
and  operators, F and T, and the negation
operator, also satisfies all the properties of a
Boolean algebra
• Similarly, the set of subsets of a universal set with
the union and intersection operators, the empty set
and the universal set, and the set complementation
operator is a Boolean algebra
Department of Computer Science, BUU
19
Representing Boolean Functions
•
ในหัวข้ อนีเ้ ราจะศึกษาปัญหา 2 ปัญหา
1. ถ้าทราบค่าของฟังก์ชนั บูลลีนแล้ว จะหานิพจน์บูลลีนที่แทน
ฟังก์ชนั นี้ได้อย่างไร?
•
•
ฟังก์ชนั บูลลีนใด ๆ สามารถแสดงด้วยผลบวกของผลคูณบูลลีนข
องตัวแปร และส่ วนเติมเต็ม (complement) ของตัวแปร
ผลสรุ ปคือ เราสามารถแทนฟังก์ชนั บูลลีนใดๆโดยการใช้ตวั
ดาเนินการเพียง 3 แบบคือ . + และ
– สามารถแทนฟังก์ชนั บูลลีนใดๆ โดยใช้ตวั ดาเนินการน้อยกว่า
นี้ได้หรื อไม่?
• แทนฟังก์ชนั บูลลีนโดยใช้ตวั ดาเนินการเดียวได้
Department of Computer Science, BUU
20
Sum-of-products expansions
Goal: Find a Boolean expression that represents a
Boolean function
• Example: Find Boolean expressions that represent
the functions F(x, y, z) and G(x, y, z) given by the
following table:
x
y
z
F
G
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0 of Computer
0 Science,
0 BUU
0
Department
0
1
0
0
0
1
0
0
21
Representing Boolean Functions
x y z F G
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1Solution:
0 0
0 0 1
1 1 To
0 form the Boolean expressions for the function
0 0 F(x,y,z),
0
we need to look at the table and notice
1 0 that
0
F has the value 1 only if x = 1 and y = 0 and z
0 0 1
=1 otherwise F has value 0
1 0 0
0 0
0 F(x,y,z) =
xyz
 To form the Boolean expression for the function
G(x,y,z), we have to notice that
G(x,y,z) = 1  x = y( xy
= z1 )and
x=z
 ( xzyz=)0 or
= 0 and y = 1; otherwise G(x,y,z) = 0
 G(x,y,z) =
Department of Computer Science, BUU
22
Representing Boolean Functions
• Definition 1:A literal is a Boolean variable or its
complement. A minterm of the Boolean variables
x1, x2, …, xn is a Boolean product y1y2…yn, where
yi = xi or yi = x i . Hence, a minterm is a product
of n literals, with one literal of each variable.
The minterm y1y2…yn, is 1 if and only if each yi is
1, and therefore xi = 1 when yi = xi and xi = 0
when yi = x i .
Department of Computer Science, BUU
23
Representing Boolean Functions
• Example: Find a minterm that equals 1 if
x1 = x3 = 0 and x2 = x4 = x5 = 1, and equals 0
otherwise
Solution: The minterm is: x1 x 2 x 3 x4 x5
• Minterms are used to determine the Boolean
expression of a Boolean function in a table
Department of Computer Science, BUU
24
Representing Boolean Functions
• Example: Find the sum-of-products expansion for
the function
F ( x , y , z )  ( x  y )z
Solution (1):
( x  y )z  xz  yz  x 1z  1 yz
 x(y  y)z  (x  x)yz
 xyz  xyz  xyz  xyz
 xyz  xyz  xyz (since u  u  u)
Department of Computer Science, BUU
25
Representing Boolean Functions
Solution (2): We use the minterm technique from a
table
x
y
z
x+y
z (x + y) z
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
Department of Computer Science, BUU
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
26
Representing Boolean Functions
We need only to spot the set of values (x,y,z) for
which F ( x , y , z )  ( x  y )z  1. This set is:
{(1,1,0) ; (1,0,0) ; (0,1,0)}
We need to find the minterm that equals 1 if
(x  y  1 and z  0) OR (x  1 and y  z  0) OR (x  z  0 and y  1)



xyz
+
xyz
+
xyz
Theorem 1: Every Boolean function can be
represented using the three Boolean operators ., +,
and – (complement)
Department of Computer Science, BUU
27
Functional completeness
• The set{., +, } is functionally complete because
of theorem 1
• Question: Can we find a smaller set of
functionally complete operators?
• We answer “yes” to this question if one of the
three operators can be expressed in terms of the
other two
• One of the De Morgan’s laws provide the solution:
x  y  x y sin ce ( x  y )  x y
Department of Computer Science, BUU
28
Representing Boolean Functions
• Similarly, we have: xy  x  y
• Finally, we have found a smaller set functionally
complete; it contains only 2 operators!
• Question: Can we still reduce the set to only one
operator? The answer is “yes”.
• Indeed, there are 2 sets that contain only one
operator, they are: the NAND and the NOR.
Department of Computer Science, BUU
29
Representing Boolean Functions
• NAND ( | ) is defined as
1|1 = 0 and 1|0 = 0|1= 0| =1
• NOR () is defined as
11 = 10 = 01 = 0 and 00 =1
x
• Since the set {. , } is functionally complete and
= x|x, xy = (x|y) | (x|y) then the set {|} is functionally
complete.
• Home-exercise: Prove that the set {} is functionally complete.
Department of Computer Science, BUU
30
Logic Gates
• A computer, or electronic devices, is made up of a number of
circuits
• Each circuit can be designed using the rules of Boolean
algebra
• The basic element of circuits are called gates
• Each type of gates implements a Boolean Operation
• All circuits studied in this chapter provides output that
depends only on the input, and not on the current state of the
circuit
• These circuits that have no memory capabilities are called
combinational circuits or gating networks
• Combinatorial circuits are built using 3 types of elements: (1)
inverter, (2) OR gate, and (3) AND gate
Department of Computer Science, BUU
31
Logic Gates
–
Role of each type of elements:
1. Inverter: it accepts the value of one Boolean
variable as input and produces the complement of
this value as its output.
x
x
Department of Computer Science, BUU
32
Logic Gates
2. OR gate: it accepts as input values of 2 or more Boolean
variables. The output is the Boolean sum of their values
x
y
x+y
3. AND gate: The inputs to this gate are the values of two or
more Boolean variables. The output is the Boolean
product of their values.
xy
x
y
Department of Computer Science, BUU
33
Logic Gates
– We can have multiple inputs to AND and OR:
x1
x2
xn
x1
x2
xn
x1x2…xn
…
x1 + x2 + …+ xn
…
Gates with n inputs
Department of Computer Science, BUU
34
Logic Gates
• Combinations of Gates
– Combinational circuits can be constructed using
a combination of inverters, OR gates, and AND
gates
– When combinations of circuits are formed,
some gates may share input using branching
– The following figure shows 2 ways of drawing
the same circuit
Department of Computer Science, BUU
35
xy
x
y
xy  xy
x
x
y
xy
xy
x
y
x
xy  xy
xy
Two ways to draw the same circuit
Department of Computer Science, BUU
36
Logic Gates
• Example: Construct circuits that produce the
following outputs:
a)
( x  y) x
b)
x( y  z )
c)
( x  y  z )(x y z )
Department of Computer Science, BUU
37
Logic Gates
Department of Computer Science, BUU
38
Logic Gates
• ตัวอย่าง คณะกรมการพิจารณาข้อเสนอชุดหนึ่งมี 3 คน ในการพิจารณาข้อเสนอ
หนึ่งๆ ถ้ากรรมการอย่างน้อยสองคนเห็นด้วยกับข้อเสนอ มติที่ประชุมจึงจะผ่าน
ข้อเสนอนั้นให้ออกแบบวงจรเพื่อแสดงมติของที่ประชุม
• เราสามารถแทนการเห็นด้วยของกรรมการ ด้วยค่า 1 และการไม่เห็นด้วย ด้วยค่า 0
• กาหนดให้ความเห็นของกรรมการทั้งสามคือ ตัวแปร x, y และ z ตามลาดับ ดังนั้น
วงจรที่ตอ้ งการจะให้สัญญาณออกเป็ นค่า 1 เมื่ออย่างน้อยตัวแปรสองตัวมีค่าเป็ น 1
เมื่ออย่างน้อยตัวแปรสองตัวมีค่าเป็ น 1
x =1 กรรมการคนที่ 1 ให้ผา่ น
y =1 กรรมการคนที่ 2 ให้ผา่ น
z =1 กรรมการคนที่ 3 ให้ผา่ น
x = 0 กรรมการคนที่ 1 ไม่ให้ผา่ น
y = 0 กรรมการคนที่ 2 ไม่ให้ผา่ น
z = 0 กรรมการคนที่ 3 ไม่ให้ผา่ น
• ฟังก์ชนั บูลลีนสาหรับการทางานนี้มีค่า xy + xz + yz
Department of Computer Science, BUU
39
Logic Gates
รู ปแสดงวงจร xy + xz + yz
A circuit for majority voting
Department of Computer Science, BUU
40
Logic Gates
• ตัวอย่ าง ในการควบคุมการเปิ ดและปิ ดไฟบันไดดวงหนึ่ง เราใช้
สวิตช์สองสวิตช์ เมื่อไฟดับอยู่ การสับสวิตช์ใดสวิตช์หนึ่ง จะมีผล
ให้ไฟสว่าง และเมื่อไฟสว่างอยูก่ บั การสับสวิตช์ใดสวิตช์หนึ่งจะมี
ผลให้ไฟดับ
ให้ออกแบบวงจรควบคุมการทางานของดวงไฟในลักษณะนี้
• เราสามารถแทนการทางานของสวิตช์ท้ งั สองด้วยตัวแปร x และ y
ถ้าตัวแปรเหล่านี้มีค่า 0 ให้หมายความว่าปิ ดสวิตช์ (ต้องการให้
ไฟดับ) และถ้ามีค่า 1 ให้หมายความว่าเปิ ดสวิตช์(ต้องการให้ไฟ
สว่าง) สาหรับวงจรที่ตอ้ งการนั้นจะให้สญ
ั ญาณ 0 เพื่อดับไฟ และ
สัญญาณ 1 เพื่อเปิ ดไฟ
Department of Computer Science, BUU
41
Logic Gates
วิธีทา มีสวิตช์ 2 ตัวคือ x,y
ให้ F(x,y) = 1 ไฟติด (ติด = 1 และดับ = 0)
ถ้าเลือก F(1,1) = 1 (x และ y = ไฟติด)
∴ ถ้าปิ ด x ไฟต้องดับ นัน่ คือ F(0,1) = 0
หรื อปิ ด y ไฟต้องดับ นัน่ คือ F(1,0) = 0
ขณะที่ไฟดับ การเปิ ดปิ ด x y จะต้องได้ไฟติด จะได้ 2 สถานะ
คือ F(1,1) หรื อ F(0,0)=1
∴ จะได้ตารางค่า F (ตารางที่ 1) ที่ตอ้ งการคือ F(x,y) จะมีพจน์ส้ นั
2 พจน์บวกกัน
∴ F(x,y) = xy  xy
Department of Computer Science, BUU
42
Logic Gates
Department of Computer Science, BUU
43
ADDER
• ในระบบคอมพิวเตอร์ทวั่ ไปจะแทนเลขจานวนเต็มด้วยเลขฐานสอง
ดังนั้นวงจรบวกเลขฐานสองจึงมีใช้ในหน่วยประมวลผล ลองพิจารณา
การบวกเลขฐานสองต่อไปนี้
1011
0010
1101
• เมื่อพิจารณาการบวกแต่ละตาแหน่งจะพบว่าเป็ นการนาเลข 3 บิตมาบวก
กันคือ ตัวตั้ง ตัวบวกและตัวทดจากตาแหน่งทางขวา ผลลัพธ์จะได้เป็ น 2
บิตคือ ผลบวกและตัวทดไปยังตาแหน่งทางซ้าย วงจรที่ทาการบวก 3 บิต
นี้ชื่อว่า ตัวบวกเต็ม (full adder)
Department of Computer Science, BUU
44
HALF ADDER
• การบวกตัวตั้ง และตัวบวก (ตัวละ 1 บิต) แล้วได้ผลลัพธ์ 2 บิต คือ
ผลบวก และตัวทด ถ้าให้ x เป็ นบิตตัวตั้ง y เป็ นบิตตัวบวก s เป็ นบิต
ผลบวก และ c เป็ นบิตตัวทด เราจะได้ตารางความสัมพันธ์ของข้อมูลเข้า
และออกจากวงจรดังนี้
s  xy  xy  ( x  y )( xy )
c = xy
Department of Computer Science, BUU
45
HALF ADDER
• ดังนั้นวงจรตัวบวกครึ่ งจึงมีรูปแบบดังนี้
Department of Computer Science, BUU
46
FULL ADDER
• สาหรับวงจรตัวบวกเต็ม กาหนดให้ x เป็ นบิตตัวตั้ง y เป็ นบิตตัวบวก
ci เป็ นบิตตัวทดเข้า s เป็ นบิตผลบวก และ ci+1 เป็ นตัวทดออก เรา
สามารถเขียนตารางแสดงความสัมพันธ์ของ ข้อมูลเข้าและออกของ
วงจรดังนี้
s  xyci  xyci  xyci  xyci
ci 1  xyci  xyci  xyci  xyci
Department of Computer Science, BUU
47
FULL ADDER
• จากฟังก์ชนั บูลลีนข้างต้น เราสามารถเขียนรู ปวงจรได้ ในที่น้ ีขอ
พิจารณาการสร้างตัวบวกเต็มจากตัวบวกครึ่ ง ถ้าเราใช้ตวั บวกครึ่ ง
เพื่อบวก 3 บิต เราจะได้โครงสร้างวงจรง่ายๆ หลักการก็คือ เริ่ มบวก
บิตตัวตั้งและบิตตัวบวกก่อน แล้วจึงนาผลมาบวกกับบิตตัวทดเข้า
• ในวงจรข้างต้นจะเห็นว่ามีตวั ทดออกเป็ น 2 บิต ถ้าพิจารณาให้ดี
จะพบว่าค่าตัวทดทั้ง 2 บิตนี้ตอ้ งอยูใ่ นรู ป 01 หรื อ 00 เท่านั้น
เพราะการบวกบิต 3 บิตเข้าด้วยกันจะมีตวั ทดได้อย่างมากที่สุด
เพียง 1 ตัวทด (กรณี บวกบิต 3 บิตแล้วได้ผลลัพธ์มากที่สุดคือ
1 + 1 + 1 = 11) ดังนั้นวงจรที่ใช้ได้คือ
Department of Computer Science, BUU
48
FULL ADDER
Department of Computer Science, BUU
49
Logic Gates
– การบวกเลขจานวนเต็ม 3 bit 2 จานวนtwo three-bit integers
(x2x1x0)2
(y2y1y0)2
(s3s2s1s0)2
การบวกเลขจานวนเต็ม 3 bit 2 จานวน จะใช้ 1 Half Adder และ 2 Full Adder
Department of Computer Science, BUU
50
Minimization of Circuits
• ประสิ ทธิภาพของวงจรคอมมิเนชันนอล ขึ้นอยูก่ บั จานวนประตูตรรกะและการจัดรู ป
วงจรวงจรที่มีจานวนประตูนอ้ ยจะใช้พลังงานน้อย และมักจะใช้เนื้อที่นอ้ ยตามไปด้วย
• วงจรที่ประตูตรรกะต่อเรี ยงกันเป็ นสายจะทางานช้ากว่าวงจรที่ต่อประตูตรรกะเรี ยงกัน
เป็ นสายสั้นกว่า
• ในหัวข้อนี้เราจะศึกษาวิธีลดรู ปนิพจน์บูลลีนให้มีรูปแบบง่ายที่สุด เพื่อที่จะใช้สร้างวงจร
ตรรกะที่มี ประสิ ทธิภาพ
• ในการหาฟังก์ชนั บูลลีนนั้น เราสามารถเริ่ มได้จากตารางความสัมพันธ์ของสัญญาณเข้า
และสัญญาณออก ตารางที่แสดงค่าสัญญาณออกสาหรับแต่ละค่าประสมกันของสัญญาณ
เข้า(combination ของสัญญาณเข้า วงจรที่ได้จึงเรี ยกว่า combinational circuit) ตาราง
ดังกล่าวมีชื่อเรี ยกว่า ตารางจริ งเท็จ (truth table)
• จากตารางจริ งเท็จเราสามารถเขียนนิพจน์ผลบวกของผลคูณแทนฟังก์ชนั บูลลีนได้
นิพจน์ดงั กล่าวมักจะยังไม่อยูใ่ นรู ปแบบที่ง่ายที่สุด
Department of Computer Science, BUU
51
Minimization of Circuits
• ถ้านิพจน์ประกอบด้วยพจน์ผลคูณสองพจน์ ซึ่ งมีตวั แปรเดียวกันที่กลับค่า
กัน เราสามารถละตัวแปรนั้นได้
พิจารณานิพจน์ xyz เราสามารถลดรู
ปได้คือ
xyz
xyz  xyz  ( y  y )(xz)  1.(xz)  xz.
Department of Computer Science, BUU
52
Minimization of Circuits
• ดังนั้นการสร้างวงจรสาหรับฟั งก์ชนั
xyz  xyจึzงทาได้สองแบบ
Department of Computer Science, BUU
ดังรู ป
53
Karnaugh maps
• จากตัวอย่างข้างต้นจะเห็นว่า เราสามารถรวมพจน์บางพจน์ในนิ พจน์ผลบวก
ของผลคูณได้วธิ ี การพื้นฐานที่นิยมใช้ทวั่ ไปในการลดรู ปนิพจน์ คือการใช้ผงั
คาร์นอฟ์ (Karnaugh map) ซึ่ งเหมาะสาหรับลดรู ปผลบวกของผลคูณ
ที่เกี่ยวข้องกับตัวแปรน้อยกว่าหรื อเท่ากับ 6 ตัว
• K-maps for two variables:
• ฟังก์ชนั บูลลีนแบบ 2 ตัวแปรคือ x และ y สาหรับฟังก์ชนั แบบนี้จะมีพจน์
สั้น (minterm - ผลคูณของ literal ของทุกตัวแปร) ทั้งหมด 4 แบบ
คือ x y, x y, x y และ x y
Department of Computer Science, BUU
54
Karnaugh maps
• ผังคาร์นอฟ์ ประกอบด้วยช่องสี่ เหลี่ยมจัตุรัส โดยที่แต่ละช่องแทน
หนึ่งพจน์ส้ นั ในกรณี น้ ีผงั คาร์นอฟ์ มี 4 ช่อง การจัดช่องนั้นต้องจัด
ช่องให้ช่องสองช่องที่ติดกันใดๆ แทนพจน์ส้ นั ที่มี literal ของตัว
แปรเดียวกัน แต่มีค่าตรงกันข้ามเพียงหนึ่งตัว เช่น ช่องซึ่งแทน x
y ต้องติดกับช่อง x y และ x y รู ปข้างล่างแสดงผังคาร์นอฟ์
สาหรับฟังก์ชนั บูลลีน 2 ตัวแปร
• แต่ละช่องในผังมีพจน์ส้ น
ั กากับอยู่
ในการแทนฟังก์ชนั บูลลีนด้วยผังคาร์นอฟ์
ให้พิจารณานิพจน์ผลบวกของพจน์ส้ นั
เมื่อมีพจน์ส้ นั ใดในฟังก์ชนั ก็ให้เขียน “ 1 ”
ลงในช่องซึ่งแทนพจน์ส้ นั นั้น
Department of Computer Science, BUU
55
Minimization of circuits
ตัวอย่าง ให้เขียนผังคาร์นอฟ์ แทนผลบวกของพจน์ส้ นั ต่อไปนี้ ซึ่ งแทนฟังก์ชนั
แบบ 2 ตัวแปร :
a)
xy  xy
b)
xy  xy
c)
xy  xy  xy
56
Minimization of circuits
ตัวอย่ าง ลดรู ปฟังก์ชนั บูลลีนซึ่งแทนโดยผังคาร์นอฟ์ ในตัวอย่าง
a)
xy  xy
b)
xy  xy
c)
xy  xy  xy
57
Minimization of circuits
a) ผลลัพธ์คือ
xy  =
xyy
b) เนื่องจากช่องที่เป็ น “1” ทั้งสองไม่ได้อยูต่ ิดกันจึงรวมช่องไม่ได้ ผลลัพธ์
ยังคงเดิม
xy  xy= xy
c) ผลลัพธ์คือ
x y
Department of Computer Science, BUU
58
ผังคาร์นอฟ์ สาหรับฟังก์ชนั บูลลีนสามตัวแปร
• ผังคาร์นอฟ์ สาหรับฟังก์ชนั บูลลีนสามตัวแปร ประกอบดัวยช่อง
สี่ เหลี่ยมจัตุรัส 8 ช่องโดยที่แต่ละช่องแทนพจน์ส้ นั ขนาดตัวแปร (มี
ได้ท้ งั หมด 23 = 8 แบบ) การแสดงผังคาร์นอฟ์ แบบสามตัวแปรนิ ยม
แสดงตามรู ป(a) ในหน้าถัดไป ความจริ งแล้วการแสดงผังคาร์นอฟ์
ต้องให้ช่องซึ่งมี literal ของตัวแปรเดียวกันแต่มีค่าตรงข้ามกันหนึ่ง
ตัวแปรอยูต่ ิดกัน ดังนั้นช่อง x y z ต้องติดกับช่อง x y z จากรู ป (a)
เราสามารถม้วนผังให้ขอบซ้ายย้อนมาติดขอบขวาได้ กลายเป็ นรู ป
(b) ซึ่งเป็ นผังคาร์นอฟ์ ที่ถูกต้อง อย่างไรก็ตามการแสดงผังคาร์นอฟ์
ตามรู ป(a) เป็ น แบบที่ใช้กนั ทัว่ ไป
Department of Computer Science, BUU
59
ผังคาร์นอฟ์ สาหรับฟังก์ชนั บูลลีนสามตัวแปร
• ในการลดรู ปนิพจน์ จะต้องรวมช่องที่มีค่า “1” และอยูต่ ิดกันเป็ นผืน
ขนาด 2 ช่อง 4 ช่องหรื อ 8 ช่อง เพื่อกาจัดตัวแปร 1 ตัว 2 ตัว หรื อ 3 ตัว
ตามลาดับ ตัวแปรที่กาจัดก็คือตัวแปรในพจน์ส้ นั ซึ่งมีค่าตรงข้ามกันใน
ผืนที่พิจารณา ผลของผืนรวมจะมีค่าเท่ากับผลคูณของตัวแปรทีเ่ หลือ
Department of Computer Science, BUU
60
ตัวอย่ าง การลดรู ปในผังคาร์นอฟ์ ขนาดสามตัวแปร
รู ป (a) และ (b) แสดงผืนรวมขนาด 2 ช่อง รู ป (c)และ (d) แสดงผืนรวมขนาด 4
ช่อง และรู ป (e) แสดงผืนรวมขนาด 8 ช่อง
Department of Computer Science, BUU
61
ตัวอย่ าง ใช้ ผงั คาร์ นอฟ์ ในการลดรูปผลบวกของผลคูณสาหรับฟังก์ชันสาม
ตัวแปรต่ อไปนี้
Department of Computer Science, BUU
62
ผังคาร์นอฟ์ สาหรับฟังก์ชนั บูลลีนสี่ ตวั แปร
• สาหรับกรณี สี่ตวั แปร ผังคาร์นอฟ์ มักแสดงด้วยผืนสี่ เหลี่ยมจัตุรัส
ขนาด 4×4 ช่องโดยที่แต่ละช่องแทนหนึ่งพจน์ส้ นั ดังรู ป
Department of Computer Science, BUU
63
ผังคาร์นอฟ์ สาหรับฟังก์ชนั สี่ ตวั แปร
• ความจริ งแล้วช่องหนึ่งช่องในผลคาร์ นอฟ์ จะต้องอยูต่ ิดกับช่องที่มีค่าตัวแปร
ต่างกันหนึ่งตัวในกรณี ฟังก์ชนั สี่ ตวั แปร ช่องหนึ่งช่องต้องอยูต่ ิดกับช่องอื่นๆ
อีกสี่ ช่อง ดังนั้นผังคาร์ นอฟ์ ที่ถูกต้องในรู ปที่ผา่ นมาต้องม้วนขอบซ้ายมาชิด
ขอบขวา แล้วม้วนขอบบนมาชิดขอบล่าง รู ปที่ได้จะเป็ นเหมือนโดนัท ซึ่ งตาม
ภาษาคณิ ตศาสตร์ เรี ยกว่า ทอรัส (torus) อย่างไรก็ตามเมื่อแสดงในสองมิติ
เรามักจะแทนเป็ นสี่ เหลี่ยมจตุรัสขนาด 4×4
• การลดรู ปนิพจน์กท็ าได้ทานองเดียวกับกรณี ฟังก์ชนั สามตัวแปร คือ รวมช่อง
ที่มีค่า “1”และอยูต่ ิดกัน เป็ นผืนขนาด 2 ช่อง, 4 ช่อง, 8 ช่อง หรื อ 16 ช่อง เพื่อ
กาจัดตัวแปร 1 ตัว, 2 ตัว, 3 ตัว หรื อ 4 ตัว ตามลาดับ จุดมุ่งหมายก็คือต้องการ
จานวนผืนน้อยที่สุดโดยที่แต่ละผืนมีขนาดใหญ่ที่สุด
Department of Computer Science, BUU
64
ตัวอย่ าง การการรวมช่ องเพือ่ ลดรูปในผังคาร์ นอฟ์ ขนาดสี่ ตัวแปร
xz
Department of Computer Science, BUU
65
ตัวอย่าง
• จงใช้ ผงั คาร์ นอฟ์ ในการลดรู ปผลบวกของผลคูณสาหรับฟังก์ ชันสี่ ตัวแปร
ต่ อไปนี้
Department of Computer Science, BUU
66
Download