งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Department of Computer Science, BUU

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Department of Computer Science, BUU"— ใบสำเนางานนำเสนอ:

1 Department of Computer Science, BUU
Boolean Algebra Department of Computer Science, BUU

2 Department of Computer Science, BUU
Boolean Algebra เครื่องคอมพิวเตอร์ ประกอบด้วยวงจรไฟฟ้าทำงานเป็นจังหวะ และประสานงานกันเป็นระบบวงจรไฟฟ้าเหล่านี้ประกอบด้วยชิ้นส่วนพื้นฐานซึ่งรับข้อมูล และส่งข้อมูลออกโดยที่ข้อมูลเหล่านี้แทนด้วย 2 สถานะ คือ ปิดหรือเปิด การออกแบบวงจรทั้งหลายได้อาศัยหลักการทางตรรกะ ซึ่งถือเป็นพื้นฐานของพีชคณิตบูลลีนโดยการแทนการทำงานของวงจรด้วยฟังก์ชันบูลลีน ฟังก์ชันดังกล่าวสามารถเขียนในรูปนิพจน์ ที่ประกอบด้วยตัวแปร แบบ 2 สถานะ และตัวดำเนินการบูลลีน และกรรมวิธีในการลดรูปนิพจน์บูลลีน ซึ่งจะส่งผลให้วงจรที่ออกแบบมีความซับซ้อนน้อยและทำงานอย่างมีประสิทธิภาพ Department of Computer Science, BUU

3 Department of Computer Science, BUU
Boolean Functions ฟังก์ชันบูลลีน พีชคณิตบูลลีนประกอบด้วยการดำเนินการ และกฏซึ่งกระทำกับค่าหรือชุดของค่า ค่าแต่ละค่านั้นกำหนดได้เป็น 2 ลักษณะ เขียนแทนด้วยสัญลักษณ์ 0 (ค่าเท็จ - false) และ 1 (ค่าจริง - true) การดำเนินการในพีชคณิตบูลลีน มีอยู่ 3 การดำเนินการคือ Complementation, Boolean Sum (การบวกบูลลีน)และ Boolean Product (การคูณบูลลีน) Department of Computer Science, BUU

4 Department of Computer Science, BUU
Boolean Functions การดำเนินการ complementation แทนด้วยสัญลักษณ์ : การดำเนินการบวกบูลลีน หรือ OR แทนด้วยสัญลักษณ์ +: = 1, = 1, = 1, = 0 การดำเนินการคูณบูลลีน หรือ AND แสดงด้วยสัญลักษณ์ . : = 1, = 0, = 0, = 0 โดยปกติ เราสามารถละสัญลักษณ์ . ได้ Department of Computer Science, BUU

5 Department of Computer Science, BUU
Boolean Functions ในนิพจน์บูลลีน ซึ่งมีตัวดำเนินการบูลลีนปนกัน ถ้าไม่มีเครื่องหมายวงเล็บกำหนดให้ดำเนินการเรียงตามลำดับคือ ทำ complement ก่อนจากนั้นทำ AND ท้ายที่สุดจึงทำ OR Example: จงหาค่า Solution: ตัวดำเนินการบูลลีน complement AND และ OR มีความหมายตรงกับตัวดำเนินการตรรกะ ~ ^ และ v ตามลำดับ ในทางตรรกะนั้น 0 หมายถึงค่าเท็จ และ 1 หมายถึงค่าจริง ดังนั้นพีชคณิตบูลลีน และ ตรรกศาสตร์จึงมีความสัมพันธ์กันอย่างใกล้ชิด Department of Computer Science, BUU

6 Department of Computer Science, BUU
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

7 Department of Computer Science, BUU
Boolean Functions Example: The function 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

8 Department of Computer Science, BUU
สามารถเขียนฟังก์ชันบูลลีนด้วยนิพจน์บูลลีน ซึ่งประกอบด้วยค่าคงที่ บูลลีน ตัวแปรบูลลีนและตัวดำเนินการบูลลีน นิพจน์บูลลีนที่ใช้ได้ (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

9 Department of Computer Science, BUU
Boolean Functions Example: จงหาค่าของฟังก์ชันบูลลีนที่กำหนดโดย Solution: ค่าของฟังก์ชันแสดงตามตารางดังนี้ Department of Computer Science, BUU

10 Department of Computer Science, BUU
Boolean Functions ฟังก์ชันบูลลีนลำดับที่ 2 เป็นฟังก์ชันจากตัวแปรสองตัว ซึ่งผสมกันได้ทั้งหมด 4 แบบนั้นค่าของฟังก์ชันจึงมีได้ทั้งหมด 24 หรือ 16 แบบ ตารางต่อไปนี้ แสดงค่าที่เป็นไปได้ทั้งหมดของฟังก์ชันบูลลีนลำดับที่2 Department of Computer Science, BUU

11 Department of Computer Science, BUU
ฟังก์ชันบูลลีนลำดับที่ n มีตัวแปรทั้งหมด n ตัว แต่ละตัวเป็นได้ 2 สถานะ ฉะนั้นมีวิธีผสมตัวแปรได้ทั้งหมด 2n วิธี ซึ่งคือจำนวนค่าของฟังก์ชัน แต่ละค่าเป็นได้ 2 สถานะดังนั้นจำนวนฟังก์ชันทั้งหมดจึงมีค่า 2(2^n) จากตัวอย่างข้างต้น ให้สังเกตว่าจำนวนฟังก์ชันที่เป็นไปได้สำหรับ n ตัวแปรมีขนาดเพิ่มเร็วมาก เมื่อ n มีค่ามากขึ้น ดังนั้นการใช้ฟังก์ชันบูลลีนควบคุมหรือแสดงการทำงานจึงทำได้มากมาย Boolean Algebra Department of Computer Science, BUU

12 Identities of Boolean algebra
ในการแสดงฟังก์ชันบูลลีนด้วยนิพจน์ เราต้องการแสดงนิพจน์ที่มีรูปแบบง่ายที่สุดคือ จำนวนตัวแปรน้อยที่สุด และเกี่ยวข้องกับตัวดำเนินการน้อยที่สุดในรูปแบบที่ซับซ้อนน้อยที่สุด การลดรูปนิพจน์มีเอกลักษณ์ ซึ่งสามารถช่วยลดรูปได้ดังแสดงในตารางหน้าถัดไป ในการพิสูจน์เอกลักษณ์ เราสามารถใช้วิธีสร้างตาราง โดยกำหนดค่า 0 และ 1 ให้กับตัวแปรแต่ละตัว และพิจารณาทุกค่าที่เป็นไปได้ของชุดตัวแปร (ทุก combination) Department of Computer Science, BUU

13 Identities of Boolean algebra
Department of Computer Science, BUU

14 Department of Computer Science, BUU
Boolean Functions Example: Show that the distributive law x(y + z) = xy + xz Solution: สดมภ์สุดท้ายทั้งสองของตารางมีค่าตรงกัน ดังนั้นเอกลักษณ์ x(y + z) = xy + xz จึงเป็นจริง Department of Computer Science, BUU

15 Department of Computer Science, BUU
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 เนื่องจาก x ⋅ 0 = 0 = p เนื่องจาก x + 0 = x Department of Computer Science, BUU

16 Department of Computer Science, BUU
Duality คู่ (dual) ของนิพจน์บูลลีนใดคำนวณได้โดยการเปลี่ยนตัวดำเนินการ AND เป็น OR และเปลี่ยนตัวดำเนินการ OR เป็น AND และเปลี่ยนค่าคงที่ 0 เป็น 1 และเปลี่ยนค่าคงที่ 1 เป็น 0 Example: จงหา duals ของ x (y + 0) และ Solution: the duals are x + (y.1) and Department of Computer Science, BUU

17 Department of Computer Science, BUU
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

18 Department of Computer Science, BUU
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: Department of Computer Science, BUU

19 Department of Computer Science, BUU
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

20 Representing Boolean Functions
ในหัวข้อนี้เราจะศึกษาปัญหา 2 ปัญหา ถ้าทราบค่าของฟังก์ชันบูลลีนแล้ว จะหานิพจน์บูลลีนที่แทนฟังก์ชันนี้ได้อย่างไร? ฟังก์ชันบูลลีนใด ๆ สามารถแสดงด้วยผลบวกของผลคูณบูลลีนของตัวแปร และส่วนเติมเต็ม (complement) ของตัวแปร ผลสรุปคือ เราสามารถแทนฟังก์ชันบูลลีนใดๆโดยการใช้ตัวดำเนินการเพียง 3 แบบคือ และ สามารถแทนฟังก์ชันบูลลีนใดๆ โดยใช้ตัวดำเนินการน้อยกว่านี้ได้หรือไม่? แทนฟังก์ชันบูลลีนโดยใช้ตัวดำเนินการเดียวได้ Department of Computer Science, BUU

21 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 Department of Computer Science, BUU

22 Representing Boolean Functions
x y z F G 1 Solution: To form the Boolean expressions for the function F(x,y,z), we need to look at the table and notice that F has the value 1 only if x = 1 and y = 0 and z =1 otherwise F has value 0  F(x,y,z) = To form the Boolean expression for the function G(x,y,z), we have to notice that G(x,y,z) = 1  x = y = 1 and z = 0 or x = z = 0 and y = 1; otherwise G(x,y,z) = 0  G(x,y,z) = Department of Computer Science, BUU

23 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 = 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 = Department of Computer Science, BUU

24 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: Minterms are used to determine the Boolean expression of a Boolean function in a table Department of Computer Science, BUU

25 Representing Boolean Functions
Example: Find the sum-of-products expansion for the function Solution (1): Department of Computer Science, BUU

26 Representing Boolean Functions
Solution (2): We use the minterm technique from a table x y z x + y (x + y) 1 Department of Computer Science, BUU

27 Representing Boolean Functions
We need only to spot the set of values (x,y,z) for which This set is: {(1,1,0) ; (1,0,0) ; (0,1,0)} We need to find the minterm that equals 1 if Theorem 1: Every Boolean function can be represented using the three Boolean operators ., +, and – (complement) + Department of Computer Science, BUU

28 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: Department of Computer Science, BUU

29 Representing Boolean Functions
Similarly, we have: 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

30 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 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

31 Department of Computer Science, BUU
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

32 Department of Computer Science, BUU
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 Department of Computer Science, BUU

33 Department of Computer Science, BUU
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

34 Department of Computer Science, BUU
Logic Gates We can have multiple inputs to AND and OR: x1 x1x2…xn x2 xn x1 + x2 + …+ xn x1 x2 xn Gates with n inputs Department of Computer Science, BUU

35 Department of Computer Science, BUU
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

36 Department of Computer Science, BUU
xy x y x y xy Two ways to draw the same circuit Department of Computer Science, BUU

37 Department of Computer Science, BUU
Logic Gates Example: Construct circuits that produce the following outputs: Department of Computer Science, BUU

38 Department of Computer Science, BUU
Logic Gates Department of Computer Science, BUU

39 Department of Computer Science, BUU
Logic Gates ตัวอย่าง คณะกรมการพิจารณาข้อเสนอชุดหนึ่งมี 3 คน ในการพิจารณาข้อเสนอหนึ่งๆ ถ้ากรรมการอย่างน้อยสองคนเห็นด้วยกับข้อเสนอ มติที่ประชุมจึงจะผ่านข้อเสนอนั้นให้ออกแบบวงจรเพื่อแสดงมติของที่ประชุม เราสามารถแทนการเห็นด้วยของกรรมการ ด้วยค่า 1 และการไม่เห็นด้วย ด้วยค่า 0 กำหนดให้ความเห็นของกรรมการทั้งสามคือ ตัวแปร x, y และ z ตามลำดับ ดังนั้นวงจรที่ต้องการจะให้สัญญาณออกเป็นค่า 1 เมื่ออย่างน้อยตัวแปรสองตัวมีค่าเป็น 1 เมื่ออย่างน้อยตัวแปรสองตัวมีค่าเป็น 1 x =1 กรรมการคนที่ 1 ให้ผ่าน x = 0 กรรมการคนที่ 1 ไม่ให้ผ่าน y =1 กรรมการคนที่ 2 ให้ผ่าน y = 0 กรรมการคนที่ 2 ไม่ให้ผ่าน z =1 กรรมการคนที่ 3 ให้ผ่าน z = 0 กรรมการคนที่ 3 ไม่ให้ผ่าน ฟังก์ชันบูลลีนสำหรับการทำงานนี้มีค่า xy + xz + yz Department of Computer Science, BUU

40 Department of Computer Science, BUU
Logic Gates รูปแสดงวงจร xy + xz + yz A circuit for majority voting Department of Computer Science, BUU

41 Department of Computer Science, BUU
Logic Gates ตัวอย่าง ในการควบคุมการเปิดและปิดไฟบันไดดวงหนึ่ง เราใช้สวิตช์สองสวิตช์ เมื่อไฟดับอยู่ การสับสวิตช์ใดสวิตช์หนึ่ง จะมีผลให้ไฟสว่าง และเมื่อไฟสว่างอยู่กับการสับสวิตช์ใดสวิตช์หนึ่งจะมีผลให้ไฟดับ ให้ออกแบบวงจรควบคุมการทำงานของดวงไฟในลักษณะนี้ เราสามารถแทนการทำงานของสวิตช์ทั้งสองด้วยตัวแปร x และ y ถ้าตัวแปรเหล่านี้มีค่า 0 ให้หมายความว่าปิดสวิตช์ (ต้องการให้ไฟดับ) และถ้ามีค่า 1 ให้หมายความว่าเปิดสวิตช์(ต้องการให้ไฟสว่าง) สำหรับวงจรที่ต้องการนั้นจะให้สัญญาณ 0 เพื่อดับไฟ และสัญญาณ 1 เพื่อเปิดไฟ Department of Computer Science, BUU

42 Department of Computer Science, BUU
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) = Department of Computer Science, BUU

43 Department of Computer Science, BUU
Logic Gates Department of Computer Science, BUU

44 Department of Computer Science, BUU
ADDER ในระบบคอมพิวเตอร์ทั่วไปจะแทนเลขจำนวนเต็มด้วยเลขฐานสอง ดังนั้นวงจรบวกเลขฐานสองจึงมีใช้ในหน่วยประมวลผล ลองพิจารณาการบวกเลขฐานสองต่อไปนี้ เมื่อพิจารณาการบวกแต่ละตำแหน่งจะพบว่าเป็นการนำเลข 3 บิตมาบวกกันคือ ตัวตั้ง ตัวบวกและตัวทดจากตำแหน่งทางขวา ผลลัพธ์จะได้เป็น 2 บิตคือ ผลบวกและตัวทดไปยังตำแหน่งทางซ้าย วงจรที่ทำการบวก 3 บิตนี้ชื่อว่า ตัวบวกเต็ม (full adder) Department of Computer Science, BUU

45 Department of Computer Science, BUU
HALF ADDER การบวกตัวตั้ง และตัวบวก (ตัวละ 1 บิต) แล้วได้ผลลัพธ์ 2 บิต คือ ผลบวก และตัวทด ถ้าให้ x เป็นบิตตัวตั้ง y เป็นบิตตัวบวก s เป็นบิตผลบวก และ c เป็นบิตตัวทด เราจะได้ตารางความสัมพันธ์ของข้อมูลเข้าและออกจากวงจรดังนี้ c = xy Department of Computer Science, BUU

46 Department of Computer Science, BUU
HALF ADDER ดังนั้นวงจรตัวบวกครึ่งจึงมีรูปแบบดังนี้ Department of Computer Science, BUU

47 Department of Computer Science, BUU
FULL ADDER สำหรับวงจรตัวบวกเต็ม กำหนดให้ x เป็นบิตตัวตั้ง y เป็นบิตตัวบวก ci เป็นบิตตัวทดเข้า s เป็นบิตผลบวก และ ci+1 เป็นตัวทดออก เราสามารถเขียนตารางแสดงความสัมพันธ์ของ ข้อมูลเข้าและออกของวงจรดังนี้ Department of Computer Science, BUU

48 Department of Computer Science, BUU
FULL ADDER จากฟังก์ชันบูลลีนข้างต้น เราสามารถเขียนรูปวงจรได้ ในที่นี้ขอพิจารณาการสร้างตัวบวกเต็มจากตัวบวกครึ่ง ถ้าเราใช้ตัวบวกครึ่งเพื่อบวก 3 บิต เราจะได้โครงสร้างวงจรง่ายๆ หลักการก็คือ เริ่มบวกบิตตัวตั้งและบิตตัวบวกก่อน แล้วจึงนำผลมาบวกกับบิตตัวทดเข้า ในวงจรข้างต้นจะเห็นว่ามีตัวทดออกเป็น 2 บิต ถ้าพิจารณาให้ดีจะพบว่าค่าตัวทดทั้ง 2 บิตนี้ต้องอยู่ในรูป 01 หรือ 00 เท่านั้น เพราะการบวกบิต 3 บิตเข้าด้วยกันจะมีตัวทดได้อย่างมากที่สุดเพียง 1 ตัวทด (กรณีบวกบิต 3 บิตแล้วได้ผลลัพธ์มากที่สุดคือ = 11) ดังนั้นวงจรที่ใช้ได้คือ Department of Computer Science, BUU

49 Department of Computer Science, BUU
FULL ADDER Department of Computer Science, BUU

50 Department of Computer Science, BUU
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

51 Minimization of Circuits
ประสิทธิภาพของวงจรคอมมิเนชันนอล ขึ้นอยู่กับจำนวนประตูตรรกะและการจัดรูปวงจรวงจรที่มีจำนวนประตูน้อยจะใช้พลังงานน้อย และมักจะใช้เนื้อที่น้อยตามไปด้วย วงจรที่ประตูตรรกะต่อเรียงกันเป็นสายจะทำงานช้ากว่าวงจรที่ต่อประตูตรรกะเรียงกันเป็นสายสั้นกว่า ในหัวข้อนี้เราจะศึกษาวิธีลดรูปนิพจน์บูลลีนให้มีรูปแบบง่ายที่สุด เพื่อที่จะใช้สร้างวงจรตรรกะที่มี ประสิทธิภาพ ในการหาฟังก์ชันบูลลีนนั้น เราสามารถเริ่มได้จากตารางความสัมพันธ์ของสัญญาณเข้าและสัญญาณออก ตารางที่แสดงค่าสัญญาณออกสำหรับแต่ละค่าประสมกันของสัญญาณเข้า(combination ของสัญญาณเข้า วงจรที่ได้จึงเรียกว่า combinational circuit) ตารางดังกล่าวมีชื่อเรียกว่า ตารางจริงเท็จ (truth table) จากตารางจริงเท็จเราสามารถเขียนนิพจน์ผลบวกของผลคูณแทนฟังก์ชันบูลลีนได้ นิพจน์ดังกล่าวมักจะยังไม่อยู่ในรูปแบบที่ง่ายที่สุด Department of Computer Science, BUU

52 Minimization of Circuits
ถ้านิพจน์ประกอบด้วยพจน์ผลคูณสองพจน์ ซึ่งมีตัวแปรเดียวกันที่กลับค่ากัน เราสามารถละตัวแปรนั้นได้ พิจารณานิพจน์ เราสามารถลดรูปได้คือ Department of Computer Science, BUU

53 Minimization of Circuits
ดังนั้นการสร้างวงจรสำหรับฟังก์ชัน จึงทำได้สองแบบ ดังรูป Department of Computer Science, BUU

54 Department of Computer Science, BUU
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

55 Department of Computer Science, BUU
Karnaugh maps ผังคาร์นอฟ์ ประกอบด้วยช่องสี่เหลี่ยมจัตุรัส โดยที่แต่ละช่องแทนหนึ่งพจน์สั้นในกรณีนี้ผังคาร์นอฟ์มี 4 ช่อง การจัดช่องนั้นต้องจัดช่องให้ช่องสองช่องที่ติดกันใดๆ แทนพจน์สั้นที่มี literal ของตัวแปรเดียวกัน แต่มีค่าตรงกันข้ามเพียงหนึ่งตัว เช่น ช่องซึ่งแทน x y ต้องติดกับช่อง x y และ x y รูปข้างล่างแสดงผังคาร์นอฟ์สำหรับฟังก์ชันบูลลีน 2 ตัวแปร แต่ละช่องในผังมีพจน์สั้นกำกับอยู่ ในการแทนฟังก์ชันบูลลีนด้วยผังคาร์นอฟ์ ให้พิจารณานิพจน์ผลบวกของพจน์สั้น เมื่อมีพจน์สั้นใดในฟังก์ชัน ก็ให้เขียน “ 1 ” ลงในช่องซึ่งแทนพจน์สั้นนั้น Department of Computer Science, BUU

56 Minimization of circuits
ตัวอย่าง ให้เขียนผังคาร์นอฟ์ แทนผลบวกของพจน์สั้นต่อไปนี้ ซึ่งแทนฟังก์ชันแบบ 2 ตัวแปร : a) b) c )

57 Minimization of circuits
ตัวอย่าง ลดรูปฟังก์ชันบูลลีนซึ่งแทนโดยผังคาร์นอฟ์ในตัวอย่าง a) b) c )

58 Minimization of circuits
a) ผลลัพธ์คือ = y b) เนื่องจากช่องที่เป็น “1” ทั้งสองไม่ได้อยู่ติดกันจึงรวมช่องไม่ได้ ผลลัพธ์ยังคงเดิม c) ผลลัพธ์คือ = Department of Computer Science, BUU

59 ผังคาร์นอฟ์สำหรับฟังก์ชันบูลลีนสามตัวแปร
ผังคาร์นอฟ์สำหรับฟังก์ชันบูลลีนสามตัวแปร ประกอบดัวยช่องสี่เหลี่ยมจัตุรัส 8 ช่องโดยที่แต่ละช่องแทนพจน์สั้นขนาดตัวแปร (มีได้ทั้งหมด 23 = 8 แบบ) การแสดงผังคาร์นอฟ์แบบสามตัวแปรนิยมแสดงตามรูป(a) ในหน้าถัดไป ความจริงแล้วการแสดงผังคาร์นอฟ์ต้องให้ช่องซึ่งมี literal ของตัวแปรเดียวกันแต่มีค่าตรงข้ามกันหนึ่งตัวแปรอยู่ติดกัน ดังนั้นช่อง x y z ต้องติดกับช่อง x y z จากรูป (a) เราสามารถม้วนผังให้ขอบซ้ายย้อนมาติดขอบขวาได้ กลายเป็นรูป (b) ซึ่งเป็นผังคาร์นอฟ์ที่ถูกต้อง อย่างไรก็ตามการแสดงผังคาร์นอฟ์ตามรูป(a) เป็น แบบที่ใช้กันทั่วไป Department of Computer Science, BUU

60 ผังคาร์นอฟ์สำหรับฟังก์ชันบูลลีนสามตัวแปร
ในการลดรูปนิพจน์ จะต้องรวมช่องที่มีค่า “1” และอยู่ติดกันเป็นผืนขนาด 2 ช่อง 4 ช่องหรือ 8 ช่อง เพื่อกำจัดตัวแปร 1 ตัว 2 ตัว หรือ 3 ตัวตามลำดับ ตัวแปรที่กำจัดก็คือตัวแปรในพจน์สั้น ซึ่งมีค่าตรงข้ามกันในผืนที่พิจารณา ผลของผืนรวมจะมีค่าเท่ากับผลคูณของตัวแปรที่เหลือ Department of Computer Science, BUU

61 ตัวอย่าง การลดรูปในผังคาร์นอฟ์ขนาดสามตัวแปร
รูป (a) และ (b) แสดงผืนรวมขนาด 2 ช่อง รูป (c)และ (d) แสดงผืนรวมขนาด 4 ช่อง และรูป (e) แสดงผืนรวมขนาด 8 ช่อง Department of Computer Science, BUU

62 Department of Computer Science, BUU
ตัวอย่าง ใช้ผังคาร์นอฟ์ในการลดรูปผลบวกของผลคูณสำหรับฟังก์ชันสามตัวแปรต่อไปนี้ Department of Computer Science, BUU

63 ผังคาร์นอฟ์สำหรับฟังก์ชันบูลลีนสี่ตัวแปร
สำหรับกรณีสี่ตัวแปร ผังคาร์นอฟ์มักแสดงด้วยผืนสี่เหลี่ยมจัตุรัสขนาด 4×4 ช่องโดยที่แต่ละช่องแทนหนึ่งพจน์สั้นดังรูป Department of Computer Science, BUU

64 ผังคาร์นอฟ์สำหรับฟังก์ชันสี่ตัวแปร
ความจริงแล้วช่องหนึ่งช่องในผลคาร์นอฟ์จะต้องอยู่ติดกับช่องที่มีค่าตัวแปรต่างกันหนึ่งตัวในกรณีฟังก์ชันสี่ตัวแปร ช่องหนึ่งช่องต้องอยู่ติดกับช่องอื่นๆ อีกสี่ช่อง ดังนั้นผังคาร์นอฟ์ที่ถูกต้องในรูปที่ผ่านมาต้องม้วนขอบซ้ายมาชิดขอบขวา แล้วม้วนขอบบนมาชิดขอบล่าง รูปที่ได้จะเป็นเหมือนโดนัท ซึ่งตามภาษาคณิตศาสตร์ เรียกว่า ทอรัส (torus) อย่างไรก็ตามเมื่อแสดงในสองมิติเรามักจะแทนเป็นสี่เหลี่ยมจตุรัสขนาด 4×4 การลดรูปนิพจน์ก็ทำได้ทำนองเดียวกับกรณีฟังก์ชันสามตัวแปร คือ รวมช่องที่มีค่า “1”และอยู่ติดกัน เป็นผืนขนาด 2 ช่อง, 4 ช่อง, 8 ช่อง หรือ 16 ช่อง เพื่อกำจัดตัวแปร 1 ตัว, 2 ตัว, 3 ตัว หรือ 4 ตัว ตามลำดับ จุดมุ่งหมายก็คือต้องการจำนวนผืนน้อยที่สุดโดยที่แต่ละผืนมีขนาดใหญ่ที่สุด Department of Computer Science, BUU

65 ตัวอย่าง การการรวมช่องเพื่อลดรูปในผังคาร์นอฟ์ขนาดสี่ตัวแปร
xz Department of Computer Science, BUU

66 Department of Computer Science, BUU
ตัวอย่าง จงใช้ผังคาร์นอฟ์ในการลดรูปผลบวกของผลคูณสำหรับฟังก์ชันสี่ตัวแปรต่อไปนี้ Department of Computer Science, BUU


ดาวน์โหลด ppt Department of Computer Science, BUU

งานนำเสนอที่คล้ายกัน


Ads by Google