ครั้งที่ 2 การบวกลบเลขฐานสอง (Binary Addition-Subtraction) Binary Subtraction Adder สมการ วงจร ตารางความจริง
การบวกเลขฐานสอง (Binary Addition) [1] การบวกเลขฐานสองนั้นใช้หลักการเดียวกับการบวกเลขฐานสิบที่เราคุ้นเคยกัน โดยพิจารณาจากเลขที่จะบวกกันในแต่ละหลัก หากเป็นการบวกเลขหลักเดียวก็ทำการบวกได้เลย แต่หากเป็นการบวกเลขที่มีขนาดหลายหลัก การบวกให้เริ่มจากการบวกระหว่างหลักขวาสุดก่อน ในการบวกหากมีตัวทดเกิดขึ้นก็ให้นำไปบวกเพิ่มในการบวกระหว่างเลขหลักถัดไปทางซ้าย และทำเช่นนี้ไปเรื่อย ๆ จนหมด ตัวทดที่เกิดจากกาบวกของหลักสุดท้าย (หากมี) จะนำไปเขียนเป็นหลักซ้ายสุดของผลลัพธ์
การบวกเลขฐานสอง (Binary Addition) [2] การบวกเลขฐานสองแต่ละหลักมีกฎการบวกดังนี้ ตัวตั้ง ตัวบวก ผลบวก ตัวทด 0 + 0 0 0 0 + 1 1 0 1 + 0 1 0 1 + 1 0 1
การบวกเลขฐานสอง (Binary Addition) [3] ตัวอย่าง จงบวก 111102 และ 11002 ตัวทด 1 1 1 ตัวตั้ง 1 1 1 1 0 ตัวบวก 1 1 0 0 ผลรวม 1 0 1 0 1 0 ตรวจสอบ 1 1 1 3010 + + 1210 1 1 1 4210
การบวกเลขฐานสอง (Binary Addition) [4] จากตัวอย่างการบวกจะพบว่า การบวกเลขฐานสองนั้นมี 2 ลักษณะคือ 1. การบวกที่มีตัวตั้งกับตัวบวก ใช้ในการบวกหลักขวาสุด เรา เรียกการบวกลักษณะนี้ว่า Half Addition 2. การบวกที่มีตัวตั้งกับตัวบวกและตัวทดจากหลักต่ำกว่า ใช้ ในการบวกหลักที่สองนับจากทางขวา ไปจนถึงหลักที่ อยู่ซ้ายสุด เราเรียกการบวกในลักษณะนี้ว่า Full Addition
การบวกเลขฐานสอง แบบ Half - Addition Input Output A (ตัวตั้ง) B (ตัวบวก) CO (ตัวทดออก) Sum (ผลรวม) 1 1 1 1
การบวกเลขฐานสอง แบบ Full - Addition Input Output Cin A B Co Sum 1
การลบเลขฐานสอง (Binary Subtraction) [1] การลบเลขฐานสองนั้นก็ใช้หลักการเดียวกับการลบเลขฐานสิบเช่นเดโดยเริ่มจากการลบหลักขวาสุดก่อน หากเป็นการลบเลขหลักเดียวก็ทำการลบได้เลย หากเป็นการลบระหว่างเลขหลายหลักนั้น หากตัวลบมากกว่าตัวตั้ง ต้องมีการยืมจากหลักที่สูงกว่าถัดไปมาใช้ และเมื่อมีการยืมเกิดขึ้นต้องนำตัวยืมไปลบกับตัวตั้งของหลักถัดไปก่อนที่จะนำตัวลบมาลบออก ทำเช่นนี้ไปเรื่อยๆ จนหมด
การลบเลขฐานสอง (Binary Subtraction) [2] การลบเลขฐานสองแต่ละหลักมีกฎการลบดังนี้ ตัวตั้ง ตัวลบ ผลต่าง ตัวยืม 0 - 0 0 0 0 - 1 1 1 1 - 0 1 0 1 - 1 0 0
การลบเลขฐานสอง (Binary Subtraction) [3] ตัวอย่าง จงลบ 10012 จาก 100112 ตัวยืม 10 ตัวตั้ง 1 0 0 1 1 ตัวลบ 1 0 0 1 ผลต่าง 0 1 0 1 0 ตรวจสอบ 10 / 1910 - - 910 1 1 1010
การลบเลขฐานสอง (Binary Addition) [4] จากตัวอย่างการลบจะพบว่า การลบเลขฐานสองนั้นมี 2 ลักษณะคือ 1. การลบที่มีตัวตั้งกับตัวลบ ใช้ในการลบหลักขวาสุด เรา เรียกการลบนี้ว่า Half Subtraction 2. การบวกที่มีตัวตั้งกับตัวลบและตัวยืมที่หลักต่ำกว่าถัดไปมา ยืมไปใช้ ใช้ในการลบหลักที่สองนับจากทางขวา ไป จนถึงหลักที่อยู่ซ้ายสุด เราเรียกการลบนี้ว่าว่า Full Subtraction
การลบเลขฐานสอง แบบ Half - Subtraction Input Output A (ตัวตั้ง) B (ตัวลบ) BO (ตัวยืมออก) Sum (ผลต่าง) 1 1 1 1
การลบเลขฐานสองแบบ Full Subtraction Input Output Bori A B Boro Diff 1
การลบเลขฐานสองโดยใช้วิธี Complement การลบเลขฐานสองนั้นนอกจากการนำเอาตัวลบไปลบออกจากตัวตั้งโดยตรงตามวิธีการที่กล่าวมาแล้ว เรายังสามารถลบเลขฐานสองได้โดยใช้วิธีการของการหาคอมพลีเมนท์ของตวเลขมาประกอบกับการบวกเพื่อหาผลลบได้
1’s Complement ของเลขฐานสอง คอมพลีเมนท์ของเลขฐานสองมี ชนิด คือ 1’s complement และ 2’s complement 1’s complement ของเลขฐานสอง เป็นการนำเลขฐานสองนั้นมาทำการกลับค่าของแต่ละบิตให้มีค่าตรงกันข้าม ( 0 เป็น 1 และ 1 เป็น 0) บิตต่อบิต เช่น 1’s complement ของ 1011101 คือ 0100010
2’s Complement ของเลขฐานสอง 2’s complement ของเลขฐานสอง เป็นการนำเลขฐานสองนั้นมาทำ 1’s complement แล้วบวกผลที่ได้จากการทำ 1’s complement ด้วย 1 2’s complement ของ 1011101 คือ 1’s complement ของ 1011101 = 0100010 บวกด้วย 1 ซึ่งเท่ากับ 0100011
การลบเลขฐานสองโดยใช้วิธี 1’s Complement 2.1 ถ้าเกิดตัวทดจากการบวกหลักซ้ายสุดแสดงว่าคำตอบมีค่าเป็นบวก เราหาคำตอบได้โดยนำบิตตัวทดที่เกิดขึ้นไปบวกกับผลที่ได้จาก การบวกในตอนแรก (End-around carry / EAC) 2.2 ถ้าไม่มีตัวทดเกิดขึ้นจากการบวกหลักซ้ายสุดแสดงว่าคำตอบมีค่า เป็นลบ (ติดลบ) เราหาคำตอบได้โดยนำผลที่ได้ไปแปลงเป็น 1’s complement อีกครั้ง
ตัวอย่างที่ 1 การลบเลขฐานสองโดยใช้วิธี 1’s Complement ตรวจคำตอบ 25 – 17 = 8 - 1 1 0 0 1 1 0 0 0 1 + 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 EAC Overflow + 0 0 1 1 1 1 + 1 0 0 0
ตัวอย่างที่ 2 การลบเลขฐานสองโดยใช้วิธี 1’s Complement ตรวจคำตอบ 11 – 5 = 6 - 1 0 1 1 1 0 1 + 1 0 1 1 1 0 1 0 1 0 1 0 1 EAC Overflow + 0 1 0 1 1 + 1 1 0
ตัวอย่างที่ 3 การลบเลขฐานสองโดยใช้วิธี 1’s Complement ตรวจคำตอบ 5 – 24 = -19 - 1 0 1 1 1 0 0 0 + 1 0 1 0 0 1 1 1 0 1 1 0 0 1’s complement No Overflow -1 0 0 1 1
ตัวอย่างที่ 4 การลบเลขฐานสองโดยใช้วิธี 1’s Complement ตรวจคำตอบ 16 – 29 = -13 - 1 0 0 0 0 1 1 1 0 1 + 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1’s complement No Overflow -0 1 1 0 1
การลบเลขฐานสองโดยใช้วิธี 2’s Complement พิจารณาผลลัพธ์ที่ได้ I I I. ถ้าเกิดตัวทดจากการบวกแสดงว่าคำตอบมีค่าเป็นบวก เราหาคำตอบได้โดยนำผลบวกที่ได้มาเป็นคำตอบ บิตตัวทดที่เกิดขึ้นให้ทิ้งไป IV. ถ้าผลที่ได้ไม่มีตัวทดแสดงว่าคำตอบมีค่าเป็นลบเป็นลบ (ติดลบ) หาคำตอบได้โดยนำผลบวกที่ได้ไปแปลงเป็น 2’s complement อีกครั้ง
ตัวอย่างที่ 1 การลบเลขฐานสองโดยใช้วิธี 2’s Complement ตรวจคำตอบ 11 – 4 = 7 - 1 0 1 1 1 0 0 + 1 0 1 1 1 1 0 0 1 0 1 1 1 Overflow Ignore the Overflow + 0 1 1 1
ตัวอย่างที่ 2 การลบเลขฐานสองโดยใช้วิธี 2’s Complement ตรวจคำตอบ 18 – 24 = -6 - 1 0 0 1 0 1 1 0 0 0 + 1 0 0 1 0 0 1 0 0 0 2’s complement 1 1 0 1 0 No Overflow + 0 0 1 0 1 1 - 1 1 0
ตัวอย่างที่ 3 การลบเลขฐานสองโดยใช้วิธี 2’s Complement ตรวจคำตอบ 9 – 21 = -12 - 1 0 0 1 1 0 1 0 1 + 1 0 0 1 0 1 0 1 1 2’s complement 1 0 1 0 0 No Overflow + 0 1 0 1 1 1 - 1 1 0 0
วงจรดิจิตอล การวิเคราะห์วงจร (Analysis) และ การออกแบบวงจร (Design) ในการศึกษาเกี่ยวกับวงจรทางไฟฟ้าอิเล็กทรอนิกส์นั้น เราศึกษาใน 2 ลักษณะ คือ การวิเคราะห์วงจร (Analysis) และ การออกแบบวงจร (Design)
การวิเคราะห์วงจร ในการวิเคราะห์วงจรนั้น มักเป็นการศึกษาวงจรที่มีอยู่แล้วว่าวงจรทำงานอะไร ซึ่งมักจะเป็นการหาสมการ หรือ ตารางความจริงของวงจรนั้น ๆ นั่นเอง เราได้เรียนมาแล้วถึงการทำงานของเกตพื้นฐานที่เราสามารถเขียนแทนได้ด้วยสมการหรือตารางความจริงได้ วงจรตรรกนั้นประกอบขึ้นจากเกตจำนวนหลายตัวที่เราสามารถเขียนแสดงการทำงานได้โดยพิจารณาค่าที่ output ของเกตแต่ละตัวไปเรื่อย ๆ จากตัวแรกไปจนกระทั่งตัวสุดท้ายที่สามารถเขียนออกมาเป็นตารางความจริงได้
การออกแบบวงจร ในการออกแบบวงจรนั้น เป็นการหาวงจรตรรกตามการทำงานที่ต้องการ ซึ่งส่วนใหญ่แล้วก็จะใช้วิธีการเขียนตารางความจริงของการทำงานที่ต้องการขึ้นก่อน แล้วจึงสร้างวงจรจากตารางความจริงที่เขียนขึ้น สำหรับวิธีการในการออกแบบจะกล่าวต่อไป
ความสัมพันธ์ระหว่างสมการกับวงจร ทั้งในการวิเคราะห์หรือออกแบบวงจรนั้น เราใช้สมการมาช่วย เราจึงต้องศึกษาถึงความสัมพันธ์ระหว่างสมการกับวงจรก่อน การเขียนสมการจากวงจร การเขียนวงจรจากสมการ
ความสัมพันธ์ระหว่างสมการกับวงจร วงจรเกตพื้นฐานต่าง ๆ สามารถเขียนอธิบายการทำงานออกมาเป็นสมการได้ ดังนั้น ถ้ามีวงจรใด ๆ ที่ประกอบขึ้นจากเกตหลาย ๆ ตัว เราก็สามารถเขียนเป็นสมการได้เช่นเดียวกันดังนี้
ความสัมพันธ์ระหว่างสมการกับวงจร ในทางตรงกันข้าม หากเรามีสมการก็สามารถที่จะเขียนวงจรได้เช่น สมการ สามารถเขียนเป็นวงจรได้ดังนี้
ตารางความจริง (Truth table) นอกจากสมการที่ใช้แสดงการทำงานของวงจรในรูปของพีชคณิตแล้ว เรายังสามารถใช้ตารางความจริงแสดงการทำงานของวงจรได้ โดยตารางความจริงจะแสดงค่า output (0 หรือ 1) ในทุกค่าที่เป็นไปได้ของ input เช่น output มีค่า 1 เมื่อ input ทั้งสามมีค่าเป็น 1 เป็นต้น แต่ค่าเหล่านี้จะแสดงออกมาในรูปตาราง
ตารางความจริงและสมการตรรก ตารางความจริงและสมการตรรกหรือสมการบูลลีนสามารถใช้แสดงถึงการทำงานของวงจรตรรกได้ ในการใช้งานนั้นบางครั้งเราอาจมีตารางความจริงที่ต้องเปลี่ยนเป็นสมการก่อน หรือบางครั้งเราอาจจะมีสมการที่ต้องเปลี่ยนเป็นตารางความจริงเสียก่อนจึงจะเหมาะสมกับการใช้งานเราจึงต้องเข้าใจความสัมพันธ์ระหว่างตารางความจริงกับสมการ หากมีตารางความจริงเราต้องสามารถเขียนเป็นสมการได้ หรือในทางกลับกัน หากมีสมการเราก็สามารถเขียนตารางความจริงได้
การเขียนสมการตรรกจากตารางความจริง เรามีวิธีการเขียนสมการจากตารางความจริงได้โดยใช้วิธีพื้นฐาน 2 วิธีได้แก่ - Sum of Product (SOP) การ OR กันของเทอมที่ AND กัน - Product of Sum (POS) การ AND กันของเทอมที่ OR กัน
Sum of Product Sum of Product เป็นวิธีการหาสมการจากตารางความจริง โดยสมการที่ได้จะอยู่ในรูปของการ OR (Sum)กันของเทอมที่ AND (Product) กันมาแล้ว ในการเขียนสมการนั้น ให้ดูจาก Output ตัวที่มีค่าเป็น 1 ในตารางความจริง (Truth Table) ว่าเกิดจากค่า Input แต่ละตัวเป็นอย่างไร แล้ว เขียนนิพจน์ในรูปของค่าของ Input ออกมา จากนั้นนำเอานิพจน์ที่ได้ของแต่ละ Output มา OR กัน ก็จะได้ค่าของสมการของ Output
Sum of Product วิธีการเขียนนิพจน์นั้น ให้ดูว่า Output ที่กำลังพิจารณาว่าเกิดจากค่า Input ที่มีค่า 0 หรือ 1 หาก Input มีค่า 0 ก็นำค่า Invert ของ Input นั้นมาใช้ หาก Input มีค่า 1 ก็นำค่า Input นั้นมาใช้ โดยนำค่าของ Input ที่ได้ทั้งหมดมา AND กันเป็นค่าของนิพจน์แต่ละตัว ในการเขียนสมการนั้น หากตารางความจริงเป็นตารางความจริงที่มีหลาย Output เราต้องแยกเขียนเป็นสมการสำหรับแต่ละ Output โดยพิจารณาจาก Input ชุดเดียวกัน
Sum of Product [3] ตัวอย่างที่ 1 จงเขียนสมการบูลลีนจากตารางค่าความจริงต่อไปนี้ I/P O/P A B Y 1
Sum of Product [4] ตัวอย่างที่ 2 จงเขียนสมการบูลลีนจากตารางค่าความจริงต่อไปนี้ Input Output C B A Y 1
Sum of Product [5] ตัวอย่างที่ 3 จงเขียนสมการบูลลีนจากตารางค่าความจริงต่อไปนี้ Input Output C B A X Y 1
Product of Sum Product of Sum เป็นวิธีการหาสมการจากตารางความจริง โดยสมการที่ได้จะอยู่ในรูปของการ AND (Product) กันของเทอมที่ OR (Sum) กันมาแล้ว ในการศึกษาของเรา เราจะกล่าวถึงเฉพาะวิธีการ Product of Sum เพราะเป็นวิธีการที่ได้รับความนิยมใช้งานกันแพร่หลาย
การเขียนตารางความจริงจากสมการตรรก การเขียนตารางความจริงจากสมการตรรกนั้น วิธีการจะตรงกันข้ามกับการเขียนสมการจากตารางความจริง โดยเริ่มจากการดูว่าสมการนั้นอยู่ในรูปแบบใดระหว่าง SOP และ POS หากสมการเป็น POS เทอมแต่ละเทอมจะเมีค่า Output ในตารางความจริงเป็น 1 Output ในบรรทัดอื่นที่ไม่มีเทอมในสมการจะมีค่า 0 หากสมการเป็น SOP เทอมแต่ละเทอมจะเมีค่า Output ในตารางความจริงเป็น 0 Output ในบรรทัดอื่นที่ไม่มีเทอมในสมการจะมีค่า 1
การสร้างวงจรจากตารางความจริง การสร้างวงจรจากตารางความจริงนั้น เราสามารถสร้างได้โดยดูจากตารางความจริงว่าตรงกับเกตชนิดใด เราก็เขียนเป็นวงจรของเกตชนิดนั้นได้เลย วิธีการนี้หากวงจรเป็นการประกอบขึ้นจากเกตหลายตัว เราอาจไม่สามารถพิจารณาได้ว่าเป็นเกตอะไรบ้างมาประกอบกัน ต้องอาศัยวิธีการเขียนสมการบูลลีนช่วย แล้วจึงเขียนวงจรจากสมการ
การสร้างวงจร Half-Adder [1] B Sum Co (Carry Out) Input Output A B Sum Co 1
การสร้างวงจร Half-Adder [1] จากตัวอย่างจะพบว่าเราสามารถพิจารณาจากค่า Output ของตารางความจริงได้ว่า ค่า Sum นั้นมีการทำงานเหมือนการทำงานของ EX-OR gate และ ค่า Carry นั้นมีการทำงานเหมือนการทำงานของ AND gate ฉะนั้นเราจึงเขียนวงจรได้ดังรูป โดย gate ทั้งสองมี Input ชุดเดียวกัน วิธีการนี้เป็นการสร้างวงจรจากการพิจารณาดูค่า Output ในตารางความจริง ซึ่งทำได้ในกรณีที่เป็นวงจรง่าย ๆ ในกรณีนี้ เราสามารถใช้วิธีการทางสมการในการสร้างวงจรได้ดังตัวอย่าง
การสร้างวงจร Half-Adder [1] B Sum Co (Carry Out) Input Output A B CO Sum 1
การสร้างวงจร Full-Adder [1] B Sum Co Cin Input Output Cin A B Co Sum 1
การสร้างวงจร Full-Adder [2]
การสร้างวงจร Full-Adder [3]
วงจรบวกขนาด 4 บิต การบวกเลขฐานสองขนาด 4 บิต เราสามารถสร้างวงจรบวกเลข 4 บิต โดยการใช้ Half-Adder 1 ตัวและ Full Adder 3 ตัวมาต่อกันตามลักษณะการบวกที่เกิดขึ้น หรือเราอาจใช้ Full Adder 4 ตัวมาต่อกันก็ได้โดยกำหนดค่าตัวทดเข้าของ Full Adder ตัวแรกที่ทำการบวกบิตขวาสุดให้เป็น 0 ทำให้ Full Adder ตัวแรกทำงานเป็น Half Adder
Block Diagram ของแอดเดอร์ขนาด 4 บิต Half Adder Full Adder Full Adder Full Adder
Block Diagram ของแอดเดอร์ขนาด 4 บิต Full Adder Full Adder Full Adder Full Adder
ไอซีวงจรบวกเลขขนาด 4 บิต DEVICE NO. FAMILY DESCRIPTION 7483 74C83 4008 TTL CMOS 4-bit binary adder with fast carry 4-bit full adder with fast carry
แผนผังการต่อขาของ IC เบอร์ 7483
สัญลักษณ์ของไอซี 7483 7483