วงจรบวก
จากวิกิพีเดีย สารานุกรมเสรี
เนื่องด้วยการใช้ถ้อยคำ รูปแบบการเขียน เนื้อหา หรือมีลักษณะคล้ายคู่มือ หรือเอกสารต้นฉบับ ซึ่งไม่ตรงตามนโยบายของวิกิพีเดีย คุณสามารถช่วยแก้ไขปัญหานี้ได้ด้วยการกดที่ปุ่ม แก้ไข หรือย้ายบทความนี้ไปยังโครงการพี่น้องที่เหมาะสม ดูรายละเอียดเพิ่มเติมได้ที่ เงื่อนไขในการนับว่าเป็นสารานุกรม อะไรที่ไม่ใช่วิกิพีเดีย โครงการพี่น้อง บทความคัดสรร และ นโยบายวิกิพีเดีย |
Adder ที่จะกล่าวถึงต่อไปนี้เป็น Adder ของ วงจรทางดิจิตอล คือการบวกกันของเลขฐาน2 นั่นเอง Adder ที่จะกล่าวถึงมี 2 ประเภท คือ Half-Adder และ Full-Adder โดยในเรื่อง Adder นี้จะรวมไปถึงการทำ Carry-look-Ahead ด้วย
สารบัญ |
[แก้] Types of adders
[แก้] Half-Adder
Half-Adder เป็นวงจรที่ทำหน้าที่ในการบวกเลขฐานสองขนาด 2 bit เข้าด้วยกัน โดยมี Output ออกมาเป็นเลขฐานสอง 2 ค่า คือ ค่าผลรวม(sum) และตัวทด(Carry) นั่นเอง โดยวงจรนี้จะได้ค่าผลรวมและตัวทดตามตารางต่อไปนี้
A | B | SUM | CARRY |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
ลักษณะของการต่อวงจรแบบ Half-Adder คือดังต่อไปนี้
ลักษณะนี้การต่อ Half-Adder แบบไม่ใช่ XOR-Gate ในการต่อวงจร
เป็นการต่อวงจร Half-Adder แบบการใช้ XOR-Gateจากรูปทั้งสองจะเห็นได้ว่าการใช้ XOR-Gate ช่วยลดจำนวน Gate ที่ใช้ลงไปได้เป็นอย่างมากและยังช่วยลดความซับซ้อนของวงจรได้อีกด้วย ลักษณะของสมาการ Half-Adder คือ
[แก้] Full-Adder
Full-Adder เป็นวงจรที่ใช้ในการบวกเลขฐานสองเช่นกันแต่จะสามารถบวกได้มากกว่า Half-Adder อยู่ 1 bit คือ เป็นเลข 2 bit และตัวทด(Carry in) 1 bit รวมเป็น 3 bit โดยจะมี Output เหมือนกับ Half-Adder คือ ผลรวม(Sum) และ ตัวทด(Carry out) โดยวงจรนี้จะให้ค่าผลรวมและตัวทดตารางต่อไปนี้
A | B | Carry in | Sum | Carry Out |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
ลักษณะสมการของวงจร Full-Adder คือ
ลักษณะของวงจร Full-Adder สามารถต่อได้หลายแบบ คือการนำ Half-Adder 2 ตัว และ OR-Gate 1 ตัวมาต่อรวมกัน หรือการใช้ XOR เพียง 2 ตัวต่อกันก็เป็น Full-Adder ได้เช่นกัน โดยมีลักษณะวงจรดังต่อไปนี้
การต่อวงจร Full-Adder แบบใช้ Half-Adder 2 ชุดกับ OR-Gate 1 ตัว มาต่อรวมกัน
การใช้ XOR-Gate 2 ตัว มาต่อเป็นวงจร Full-Adderจากรูปข้างต้นจะเห็นได้ว่าการต่อวงจร Full-Adder แบบใช้ XOR-Gate 2 ตัว นั้นจะไม่มี Output ของ Carry Out ออกมาด้วยซึ่งต่างกับแบบแรกที่มี Output เป็น Carry Out ออกมาด้วย แต่จะเห็นได้ว่ามีการใช้จำนวน Gate ต่างกันอย่างชัดเจน
[แก้] Multiple-bit-Adders
เป็นการนำ Full-Adder หลายๆตัวมาต่อรวมๆกันเป็นวงจรใหญ่ๆ เพื่อที่จะได้คำนวณได้หลายบิตมากขึ้นนั่นเองโดยเมื่อมีการต่อวงจรแบบนี้แล้วจะมีการคำนวณ Carry ได้หลายแบบดังเช่น Ripple-Carry-Adder หรือ Carry-look-Ahead เป็นต้น
[แก้] Ripple-Carry-Adder
คำว่า Ripple แปลว่า ระลอก เพระฉะนั้น Ripple-Carry-Adder คือ Adder ที่มีการส่งตัวทดเป็นระลอกกล่าวคือ เมื่อมีการต่อ Adder หลายๆตัวจะต้องมีการส่งตัวทด(Carry) ไปให้กับ Adder ตัวต่อไปเพื่อคำนวณด้วย ลักษณะวงจรคือ
การต่อวงจรลักษณะนี้จะทำให้วงจรมีการทำงานที่ช้าลงเมื่อมีการต่อ Gate มากขึ้นเพราะว่าจากสมการ Carry ของ Full-Adder จะเห็นได้ว่าจำเป็นต้องมีการรอ Carry-in ก่อนที่จะคำนวณต่อไปได้
[แก้] Carry-look-Ahead
เป็นลักษณะของวงจรที่นำ Carry มาคำนวณเลยโดยไม่ต้องรอการส่งผ่านแบบ Ripple-Carry-Adder โดยในวิธีนี้จะช่วยเพิ่มความเร็วให้กับวงจรขนาดใหญ่ได้เพราะไม่จำเป็นต้องรอ Carry-in จาก Full-Adder ตัวข้างหน้า สามารถคำนวณ Carry ออกมาได้พร้อมกับการคำนวณ Sum ได้เลยลักษณะของสูตร Carry-look-Ahead คือ
- Cp = A + B
ลัษณะการนำไปใช้งาน
ในกรณี Full-Adder แบบ 1 บิต
ในกรณี Full-Adder แบบ 2 บิต
ในกรณี Full-Adder แบบ 3 บิต
จะเห็นได้ว่าจะสมการสามารถนำสมการข้างบนลงไปแทนได้เรื่อยๆ จึงไม่มีข้อจำกัดของจำนวนบิตที่ต้องการ แต่ในกรณีที่จำนวนบิตมีมากเกินไปอาจจะทำให้วงจรยุ่งยากซับซ้อนได้
[แก้] Gate-Delay
คือเมื่อมีการต่อ Gate มากขึ้นเรื่อยๆจะส่งผลให้วงจรทำงานช้าลงโดยมีการเทียบระหว่าง Ripple-Carry-Adder และ Carry-look-Ahead ดังตารางต่อไปนี้
Bits | Ripple-Carry | Carry-look-Ahead |
1 | 2 | 2 |
4 | 8 | 6 |
8 | 16 | 10 |
12 | 24 | 10 |
16 | 32 | 10 |
20 | 40 | 14 |
24 | 48 | 14 |
32 | 64 | 14 |
64 | 128 | 14 |
ตารางแสดง Daley ระหว่าง Ripple-Carry และ Carry-look-Ahead