Department of Computer Science, BUU

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ชื่อผู้สอน : นางฐิติมา พิริยะ
Advertisements

การใช้งานโปรแกรม SPSS
หน่วยที่ 3 ภาษาคำสั่งพื้นฐานที่ใช้เขียนโปรแกรม PLC
สื่อการสอนด้วยโปรมแกรม “Microsoft Multipoint”
หน่วยที่ 2 โครงสร้างโปรแกรมเมเบิลคอนโทรลเลอร์
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
ค32214 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 4
หน่วยการเรียนรู้ที่ 2 หลักการแก้ปัญหาด้วยคอมพิวเตอร์
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
การใช้งาน Microsoft Excel
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
การเลือกข้อมูลจาก List การกำหนดเงื่อนไขการป้อนข้อมูลด้วย Data Validation การใส่ Comment / แสดง / แก้ไข / ลบ.
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
คำสั่งควบคุมการทำงาน
Project Management by Gantt Chart & PERT Diagram
การตรวจสอบคุณภาพเครื่องมือ
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
เกม คณิตคิดเร็ว.
Chapter 1 Mathematics and Computer Science
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การทำ Normalization 14/11/61.
แรงแบ่งได้เป็น 2 ลักษณะ คือ 1. แรงสัมผัส ( contact force )
Number system (Review)
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
การประยุกต์ Logic Gates ภาค 2
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
สมการเชิงเส้น (Linear equation)
Digital Circuit & Logic Design สอนโดย รศ. ดร
แล้วทำการเรียงลำดับข้อมูลใหม่โดยเรียงจากน้อยไปหามาก
บทที่ 7 การหาปริพันธ์ (Integration)
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
BC320 Introduction to Computer Programming
โครงสร้างภาษา C Arduino
บทที่ 1 โครงสร้างคอมพิวเตอร์พื้นฐาน
การลดรูป Logic Gates บทที่ 6.
บทที่ 4 การอินทิเกรต (Integration)
เซต (SET) ประวัติย่อของวิชาเซต ความหมายของเซต การเขียนแทนเซต
คำสั่ง Create , Insert, Delete, Update
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
การสร้างโมเดลจำลองความสัมพันธ์ ระหว่างข้อมูล E-R Model
Data storage II Introduction to Computer Science ( )
บริษัท พัฒนาวิชาการ (2535) จำกัด
บทที่ 9 การทำซ้ำ (Loop).
State Table ตารางสถานะ ปรับปรุง 18 เมษายน 2562
อาจารย์อภิพงศ์ ปิงยศ Lab 06 : Microsoft Excel (Part2) ทท101 เทคโนโลยีสารสนเทศและนวัตกรรมการสื่อสารทางการท่องเที่ยว อาจารย์อภิพงศ์
ผู้ช่วยศาสตราจารย์จุฑาวุฒิ จันทรมาลี
คณิตศาสตร์ 1 รหัสวิชา
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Data storage II Introduction to Computer Science ( )
บทที่ 2 ทฤษฎีบทพีทาโกรัส.
บรรยายครั้งที่ 8 - กราฟฟิกวิศวกรรม 1
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
บทที่ 7 การประมวลผลอาร์เรย์
OPERATOR ภาษาปาสคาล (Pascal)
งานนำเสนอสำหรับโครงการ นิทรรศการวิทยาศาสตร์
ตัวแบบมาร์คอฟ (Markov Model)
2 โครงสร้างข้อมูลแบบสแตก (STACK).
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
Array: One Dimension Programming I 9.
ฟังก์ชันของโปรแกรม Computer Game Programming
การเติบโตของฟังก์ชัน (Growth of Functions)
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
บทที่ 5 พัลส์เทคนิค
Decision: Single and Double Selection (if and if-else statement)
การวิเคราะห์สถานะคงตัวของ วงจรที่ใช้คลื่นรูปไซน์
กระดาษทำการ (หลักการและภาคปฏิบัติ)
ใบสำเนางานนำเสนอ:

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

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

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

Department of Computer Science, BUU Boolean Functions การดำเนินการ complementation แทนด้วยสัญลักษณ์ : การดำเนินการบวกบูลลีน หรือ 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

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

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

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

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

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

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

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

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

Identities of Boolean algebra Department of Computer Science, BUU

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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