
เรียนรู้วิธีที่ตัวลบแบบเต็มจัดการกับการคำนวณเลขฐานสองที่ซับซ้อน
วงจรลบเลขฐานสอง (Total Subtractor)เป็นวงจรเชิงรวม (Combinational Circuit) ที่ใช้ในการลบเลขฐานสอง มีอินพุตสามตัว:
มันสร้างผลลัพธ์สองอย่าง:
ตัวลบแบบเต็มมีความสำคัญอย่างยิ่ง เนื่องจากตัวลบแบบครึ่งสามารถลบได้เฉพาะบิตที่มีค่าต่ำที่สุด (LSB) ของเลขฐานสองเท่านั้น อย่างไรก็ตาม หากมีการสร้างบิตที่ยืมมาในระหว่างการลบ LSB บิตนั้นจะส่งผลต่อการลบในขั้นตอนถัดไปตัวลบแบบเต็มจะจัดการกับสถานการณ์นี้โดยพิจารณาบิตที่ยืมมาจากขั้นตอนก่อนหน้า ทำให้มั่นใจได้ว่าการลบจะถูกต้องแม่นยำแม้จะมีบิตที่ยืมมาอยู่ก็ตาม
ตัวลบแบบเต็ม (Full subtractor) ใช้สำหรับลบเลขฐานสองที่มีการยืม ทำให้เหมาะอย่างยิ่งสำหรับการลบหลายบิตในวงจรดิจิทัล เช่นหน่วยคำนวณและตรรกะ (ALU )


จากตารางด้านบน เราสามารถสร้างแผนที่คาร์โนห์เพื่อแสดงภาพ "ผลกระทบ" และ "การยืม" ได้

นิพจน์ตรรกะสำหรับความแตกต่าง
สำนวนพื้นฐานคือ :
D = A'B'Bin + A'BBin' + AB'Bin' + ABBin
แยกตัวประกอบของพจน์ร่วม :
D = บาร์เรล(A'B' + AB) + บาร์เรล'(AB' + A'B)
ระบุคุณสมบัติของการดำเนินการ XOR และ XNOR :
A'B' + AB = A XOR B
AB' + A'B = A XOR B
แทนที่ค่าเหล่านี้ :
D = Bin(A XNOR B) + Bin' (A XOR B)
การใช้ตัวระบุ XNOR :
D = Bin ⊕ (A ⊕ B)
ดังนั้น นิพจน์ที่ง่ายที่สุดสำหรับความแตกต่างของการลบทั้งหมดคือ:
D = (A ⊕ B) ⊕ Bin

นิพจน์ตรรกะสำหรับคำยืม
ผลลัพธ์ของฟังก์ชันการยืม (Bout)คำนวณได้ดังนี้:
นิพจน์พื้นฐาน :
การต่อสู้ = A'B'Bin + A'BBin' + A'BBin + ABBin
แยกตัวประกอบของพจน์ร่วม :
Bout = A'Bin(B + B') + A'B(Bin + Bin') + BBin(A + A')
โดย สรุป
Bout = A'Bin + A'B + BBin
อีกทางเลือกหนึ่ง เราสามารถใช้วิธีการอื่นได้เช่นกัน :
การต่อสู้ = A'B'Bin + A'BBin' + A'BBin + ABBin
แยกตัวประกอบของพจน์ร่วม :
Bout = Bin(AB + A'B') + A'B(Bin + Bin')
โดยใช้คุณสมบัติ XOR และ XNOR :
AB + A'B' = A XNOR B
แทนที่ค่าเหล่านี้ :
Bout = Bin(A XNOR B) + A'B
การใช้ตัวระบุ XNOR :
Bout = Bin (A XOR B)' + A'B
ดังนั้น นิพจน์ที่ง่ายที่สุดสำหรับจำนวนที่ยืมมาในการลบทั้งหมดคือ:

ในการสร้างวงจรลบแบบสมบูรณ์ คุณต้องใช้วงจรลบครึ่งวงจรสองวงจรและเกต OR หนึ่งตัว
