บทท่ี 10 วงจรทางคณิตศาสตรวัตถปุ ระสงค หลังจากทีไ่ ดศกึ ษาบทนแี้ ลว จะสามารถ 1. จําและเขียนไดอะแกร มของวงจร half adder, full adder, half subtractor และ fullsubtractor ไดอ ยางถูกตอ ง 2. แกปญ หาการบวกและลบแบบไบนารีโดยใชตารางความจริงได 3. ออกแบบและเขยี นไดอะแกรมทางลอจิกของวงจรการบวกและลบเลขแบบขนานโดยใชว งจร halfadders, full adders และเกตได 4. นําไอซีบวกแบบ 4 บิตเบอร 7483 จํานวน 2 ตัวมาสรา งเปนวงจรบวกแบบ 8 บิตได 5. วิเคราะหก ารทํางานของเคร่ืองเลนเกมแบบดิจิตอลอยา งงา ยๆ ได 6. แปลงเลขฐานสิบเปนเลข 2’s complement และแปลงเลข 2’s complement เปนเลขฐานสิบได 7. บวกและลบโดยใชวิธี 2’s complement ได 8. ตรวจหาทผ่ี ิดของวงจร full-adder ได ในบทนี้จะกลาวถึงวงจรบวกลบเลขที่ใชในวงจรดิจิตอล โดยเปนวงจรบวก (Add) วงจรลบ(Subtract) พื้นฐานที่ใชในคอมพิวเตอรและเครื่องคํานวณท่ัวไป ในหนวยประมวลผลกลางของคอมพวิ เตอรห รือ CPU จะมีวงจรลอจกิ สว นหนง่ึ ที่ใชใ นการประมวลผลทางคณิตศาสตรและลอจิก วงจรนี้มีช่ือวา Arithmetic-logic unit (ALU) โดยท่ีโครงสรางภายในของวงจรลอจิกสวนนี้จะสรางมาจากเกตพ้ืนฐานตา งๆ10.1 การบวกเลขไบนารี (BINARY ADDITION) ตามที่ไดศึกษามาแลววา ถาพิจารณาเลขไบนารี 101011 บิตซายสุดจะเปน MSB บิต และบิตขวาสุดจะเปน LSB บิต สาํ หรบั คา นาํ หนักของตัวเลขแตล ะบิตจะเปน 1s, 2s, 4s, 8s, 16s และ 32s, จากขวาไปซา ย ในบทนี้เราจะไดศึกษาการบวกและลบเลขไบนารี ตัวเลขไบนารีแตละหลักจะมคี าเพยี งสองคาคือ 0 และ 1 ข้ันแรกตองศึกษาพื้นฐานการบวกเลขสองหลักเขาดวยกันเสียกอน พิจารณารูปท่ี 10.1 (a)ซึ่งจะแสดงวิธีการบวกเลขไบนารี โดย 3 ตัวอยางแรกจะเปนการบวกแบบงายๆ ไมมีตัวทดเกิดข้ึน แตตัวอยางถัดไปจะมีตัวทด โดย 1+1 จะมีคาเทากับ 2 ตัวเลขที่เขียนแทน 2 ก็คือ 10 จากวิธีการบวกในรปูจะเห็นวา 1+1 = 0 และจะทาํ ใหเ กิดตวั ทดคอื 1 และตัวทดน้จี ะนาํ ไปเขียนในบติ สูงขึน้ บติ ถดั ไป สําหรับรูปที่ 10.1 (b) จะแสดงตัวอยางการบวกเลขไบนารี โดยจะเขียนเลขฐานสิบเพื่อใชในการตรวจเช็คคําตอบเทียบกับเลขไบนารี ในตัวอยางแรกจะบวกเลขไบนารี 101 กับ 10 ผลลัพธที่ไดจะเปน111 (เทากับ 7 ในระบบเลขฐานสิบ) ในการบวกนี้จะใชขอมูลในรูปที่ 10.1 (a) มาชวยในการบวกเพื่อใสผลลพั ธของการบวกในแตละบิต สําหรับตวั อยางท่ี 2 จะเปนการบวกเลขไบนารีระหวาง 1010 กบั 11 ซงึ่ 252
จะเห็นวาการบวกของ 1+1 = 0 จะเกิดตวั ทดในหลัก 2s ตัวทดนี้จะนําไปบวกในหลกั 4s ซึง่ แสดงไดด ังรปูผลลัพธท่ีไดจะมีคาเทากับ 1101 (เทากับ 13 ในระบบเลขฐานสิบ) สําหรับตัวอยางที่ 3 ในรูปท่ี 10.1 (b)จะเปนการบวกเลขไบนารี 11010 กับ 1100 โดยจะเกิดตัวทด 2 ตัวดังแสดงในรูป ผลลัพธที่ไดจะมีคาเทากบั 100110 (เทา กับ 38 ในระบบฐานสิบ) รปู ท่ี 10.1 (a) วิธกี ารบวกเลขไบนารี (b) ตัวอยา งการบวกเลขไบนารี ปญหาของการบวกเลขอกี แบบหนึง่ ดงั แสดงในรปู ท่ี 10.2 (a) พจิ ารณาการบวกในหลัก 2s โดยหาการบวกของ 1+1+1 ซงึ่ ผลลพั ธจ ะตอ งเปน 3 ในระบบเลขฐานสิบ หรอื 11 ในระบบเลขฐานไบนารี ดังน้นัการบวกจะไดเปน 1 และตวั ทดเปน 1 รูปที่ 10.2 (a) ตัวอยางการบวกเลข (b) ตารางการบวกเลข 253
โจทยทดสอบ 1. จงบวกเลขไบนารี 1010 + 0100 2. จงบวกเลขไบนารี 1010 + 0111 3. จงบวกเลขไบนารี 1111 + 1001 4. จงบวกเลขไบนารี 10011 + 011110.2 วงจรบวกเลขฮาลฟ แอดเดอร การบวกเลขนํามาเขียนเปน ตารางความจริงได โดยมีอินพตุ เปน A และ B สวนของเอาตพ ุตของตารางความจรงิ จะมี 2 คอลมั น โดยคอลมั นแรกจะเปน บวกอีกคอลมั นห นง่ึ เปนตัวทด คอมลัมนผ ลบวกจะแทนดวยสัญลักษณ Σ สวนคอลัมนตัวทดจะแทนดวย C0 โดยบิต C0 เรียกวาบิตตัวทดออก (carryoutput) เราสามารถเขียนสัญลักษณของการบวกจากตารางความจริงไดดังรูปท่ี 10.3 (b) โดยวงจรนี้เรียกวา วงจรบวกแบบฮาลฟแอดเดอร (half-adder) ซึ่งวงจรนจ้ี ะมี 2 อินพุต คือ A และ B และเอาตพุตจะมี 2 คา Σ คือ กบั C0 254
รูปท่ี 10.3 half adder (a) ตารางความจรงิ (b) บล็อกไดอะแกรม (ค) วงจรลอจกิ จากตารางความจรงิ ของวงจร half-adder ในรูปที่ 10.3 (a) จะพบวาคา Boolean expressionของ C0 เอาตพุตหาไดจาก A∙B = C0 สามารถสรางไดโดยใช AND เกต 2 อินพุต โดยเอาตพุตของ ANDเกตจะเปน C0 สําหรับคา Boolean expression ของผลบวก (Σ) จากวงจร half adder ในรูปท่ี 10.3(a) สามารถหาไดจาก A∙B + A∙B = Σ ซ่ึงสามารถสรางไดโดยใช AND เกต 2 ตัว NOT เกต 2 ตัว และOR เกต 1 ตัว หรืออาจใชเกตแบบ XOR ก็ไดโดยสามารถเขียน Boolean expression ไดเปน A + B =Σ ดังน้นั เราใช XOR เกตแบบ 2 อินพุตแทนผลลัพธข องเอาตพุตได การใช AND เกตสองอินพุตแบะ XOR เกตสองอินพุตมาสรางเปนวงจร half-adder ซึ่งวงจรhalf-adder น้ีจะบวกเลขใบนารีหลักแรก หรือ LSB (1s) สําหรับการบวกในหลักถัด ๆ ไป เชน 2s, 4s,8s และ 16s หรอื สงู กวา จะใชในวงจรท่เี รยี กวา full adder ในการบวกโจทยท ดสอบ 5. จงเขียนไดอะแกรมการบวกแบบ half adder โดยมีอินพตุ เปน A, B และเอาตพ ุตเปน Σ และ C0 6. จงเขียนตารางความจรงิ การบวกแบบ half adder 7. ถาหากใชว งจรบวกแบบ half adder ในการบวกบิตสูงขึน้ ทานคิดวา จะเกดิ ปญ หาใดขน้ึ 255
8. จากรปู ที่ 10.4 จงเขียนผลลัพธข องการบวกเมื่อมขี อ มลู อนิ พุตเขา ไป รูปที่ 10.4 โจทยตวั อยางของวงจรบวก10.3 การบวกแบบฟูลแอดเดอร รูปที่ 10.5 Full adder (a) ตารางความจริง (b) บลอ็ กสัญลกั ษณ (ค) สรา งจาก half adder และ OR เกต 256
ในรูปที่ 10.2 (b) แสดงตารางการบวกเลขไบนารคี าตา งๆ พรอ มทง้ั แสดงการบวก 1+1+1สําหรบั ตารางความจรงิ ในรปู ท่ี 10.5 (b) จะแสดงการบวกกนั ของคา 3 คา A,B และ C (ตัวทดเขา ) ตารางความจรงิ น้ีเปนการบวกเลขแบบฟูลแอดเดอร (Full adder) การบวกแบบ full adder นจ้ี ะใชในการบวกเลขใบนารีตาํ แหนง ทส่ี ูงกวา 1s ซึง่ จะตอ งบวกตวั ทดทีไ่ ดจากการบวกกนั ของบิตตํ่ากวา เขาไปดวย สําหรบั ไดอะแกรมของการบวกแบบ full adder แสดงไดด งั รปู ท่ี 10.5 (b) การบวกแบบ full adder จะมีอนิ พตุ เขา 3 คาCin , A และ B โดยอินพตุ ทง้ั สามเมอ่ื บวกกนั จะไดเอาตพ ุตคาคอื Σ กบั C0 วิธีงายๆ วิธีหนึ่งในการเขียนวงจรลอจิกของวงจรแบบ full adder แสดงไดดังไดอะแกรมในรปู ท่ี10.5 (ค) โดยใชวงจร half-adder 2 วงจร กับ OR เกต 1 ตัว สําหรับผลลัพธจากการบวกเขียนไดเปน A+ B + C = Σ สําหรับตัวทดออก (carry out) ท่ีไดจากการบวกเขียนไดเปน A ∙ B + Cin ∙ (A + B) = C0สาํ หรับวงจรลอจิกทั้งหมดเขียนไดดงั รปู ท่ี 10.6 (a) เรยี กวาวงจรแบบ full adder วงจรนไ้ี ดจ ากการเขียนวงจรลอจิกเขาไปแทนในวงจร half adder สองวงจรในรูปที่ 10.5 (ค) นอกจากน้เี รายงั สามารถเขียนวงจรใหมอีกแบบหน่ึงไดดังรูปที่ 10.6 (b) โดยใช XOR เกต 2 ตัวกับ NAND เกต แทนการใช AND และ ORเกต วงจรบวกแบบ half adder และแบบ full adder สามารถนํามาใชรวมกันได อยางเชนการบวกเลขไบนารีในรูปท่ี 10.2 (a) จะตองใชวงจร half adder ในการบวกหลักแรกหรือหลัก 1s และใชวงจรfull adder ในหลัก 2s และ 4s เปน ตน วงจร half adder และ full adder จะเปนสวนประกอบหนึง่ ในไมโครโปรเซสเซอรในสวนทเี่ ปนวงจรการกระทําทางคณติ ศาสตรแ ละลอจิก (arithmetic logic unit) หรอื ALU ซ่ึงจะเปนวงจรบวกเลขไบนารีแบบ 8 บิต, 16 บิต หรือ 32 บิต นอกจากน้ีในสวนของ ALU ของไมโครโปรเซสเซอรน้ันยังสามารถสรางเปนวงจรลบเลขไดโดยใชวงจร half adder และ full adder ไดอีกดวย ซ่ึงจะกลาวถึงวงจรสําหรบัเลขแบบไบนารีตอไป 257
รปู ที่ 10.6 full adder (a) ลอจกิ ไดอะแกรม (b) ลอจิกไดอะแกรมโดยใช XOR และ NAND เกตโจทยทดสอบ 9. จงเขียนไดอะแกรมการบวกแบบ full adder โดยมีอินพุตเปน A, B และ Cin และเอาตพ ตุ เปน Σกบั C0 10. จงเขียนตารางความจริงการบวกแบบ full adder 11. วงจรบวกจะบรรจุอยูในสวนใดของไมโครโปรเซสเซอร 12. ถา นาํ เลขฐานสองมาบวกกนั ในการบวกบติ สูงๆ เชน หลัก 2s, 4s, 8s จะตองใชวงจรบวกแบบใด 13. จากรูปที่ 10.7 จงเขียนเอาตพุตท่ไี ดจ ากวงจรบวกเมือ่ มีสัญญาณอินพุตเขาไปดังรูป 258
รปู ท่ี 10.7 ตวั อยา งโจทยวงจรบวกแบบ Full adder10.4 การบวกเลขแบบสามบติ (THREE-BIT ADDERS) วงจรบวกแบบ half adder และ full adder สามารถนาํ มาตอกันสําหรบั การบวกเลขใบนารแี บบหลาย ๆ บิตใจเวลาเดียวกนั ซงึ่ จะเปนการบวกเลขสามบติ โดยเปนการบวกระหวาง A2A1A0 และ B2B1B0สาํ หรับในการบวกตาํ แหนง 1S จะใชใ นวงจรบวกแบบ half adder การบวกในตําแหนง 2S จํานาํ ตวั ทดCin เขามาบวกดว ยโดยนํามาบวกรวมกบั การบวกของบติ A1 และ B1 และการบวกในตาํ แหนง 4s ซงึ่ เปนการบวกกนั ของบติ A2 และ B2 จะนาํ ตัวทดที่ไดจากการบวกในตําแหนง 2S มาบวกดวยเชน กนั การบวกกันในลกั ษณะนคี้ าผลลพั ธข องเลขใบนารีอาจมีคา เกนิ 111 ได ซ่งึ เอาตพตุ ของการบวกในตําแหนง 4S ถามตี ัวทดเกดิ ขึ้นคาตวั ทดน้ีจะเปน เลขใบนารีในตาํ แหนง 8S ของผลลพั ธ การบวกเลขใบนารีสามบิต จะเปน การบวกแบบ and and carry จะเปน พื้นฐานการบวกแบบหลาย ๆ บิต ซึ่งจะเห็นวา การใชวงจร half adder ในการบวกตําแหนง 1S สาํ หรบั ตาํ แหนง บิตอ่นื ๆ จะใชวงจร full adder การบวกนเ้ี รียกวา การบวกแบบขนาน Parallel adder การบวกแบบขนานทกุ ๆ บิตของขอ มลู จะถกู ปอนเขา สูอ ินพตุ พรอม ๆ กนั เอาตพตุ ท่ไี ดจ ะเปน ผลลพั ธข องการบวกในการใชง านจรงิวงจรในลักษณะรูปที่ 10.8 จะตองใชร ีจีสเตอรม าแลตช (latch) ขอมูลสาํ หรบั อนิ พุตและเอาตพ ุต 259
รูปท่ี 10.8 วงจรบวกแบบขนานแบบ 3 บติโจทยทดสอบ 14. ในรปู ท่ี 10.8 บิต 1s จะบวกแบบใด และบิตทส่ี ูงกวาจะบวกแบบใด 15. วงจรบวกแบบขนานจะเปน แบบวงจรแบบ……………………..(combinational, sequential)logic circuit 16. วงจรในรูปท่ี 10.8 ถา ขอมูลอินพตุ ขนาด 3 บิต มคี าเปน 110 และ 111 และเอาตพุตที่ไดจ ากวงจรจะเปน คาใด 17. จากวงจรในรูปท่ี 10.8 ถาขอมลู อนิ พุตทง้ั สองคา มีคาเปน 010 และ 110 เอาตพ ตุ ที่ไดจ ะเปน คาใด 18. จากวงจรในรูปท่ี 10.8 ถาขอมูลอนิ พตุ ท้ังสองคา มีคา เปน 111 และ 111 เอาตพตุ ที่ไดจะเปน คาใด10.5 การลบเลขไบนารี (BINARY SUBTRACTION) การลบเลขใบนารคี ลายกบั การบวกเลขใบนารี คอื จะมี half subtractors และ full subtractorsลกั ษณะการใชง านจะคลายกับวงจรบวก สําหรบั ตารางการลบเลขใบนารีจะแสดงไดดังรปู 10.8 a ถา หากเปนตารางความจริงจะเขยี นไดดังรปู ที่ 10.8b โดยทางดานอินพตุ จะเปนการลบคา B ออกจาก A ผลลพั ธจากการลบท่ีไดจ ะเปน Di ถา B มคี ามากกวา A ดังบรรทดั ทีส่ องในตารางจะ ตอ งชต ัวยมื โดยตัวยมื จะเขยี นเปน B0 (borrow out) 260
รปู ที่ 10.9 (a) ตารางการลบไบนารี (b) ตาราง half subtractor 261
รูปที่ 10.10 (a) ตวั อยางการลบเลขไบนารี (b) ตารางความจริงของ full subtrstor 262
รูปที่ 10.11 Full subtractor (ก) สัญลักษณ (b) การสรางจาก Half subtractor (ค) วงจรลอจกิ ) ไดอะแกรมของ full subtractor แสดงไดดังรูปท่ี 10.11 (a) โดยจะมีอินพุตเปน A, B และ Binเอาตพุตท่ีไดคือ D1 และ B0 วงจร full subtractor สามารถเขียนโดยใช half subtractor 2 ตัวกับ ORเกตแทนได สาํ หรับลอจิกไดอะแกรมของ full subtractor แสดงไดด ังรปู ที่ 10.11 (ค) และมคี ณุ สมบตั เิ ปนดงั ตารางความจริงในรปู ท่ี 10.10 (b) วงจร AND-OR ของเอาตพุต B0 สามารถใช NAND เกต 3 ตวั แทนไดเชน เดียวกบั วงจร full-adder ในรปู ท่ี 10.6 (b) 263
โจทยท ดสอบ19. จงตอบปญ หาการลบเลขตอ ไปน้ี (ตรวจสอบคําตอบจากการลบเลขฐานสิบ)ก. 11 ข. 100 -10 -10ค. 111 ง. 1010 -111 -101จ. 10010 ฉ. 1000 -11 -0120. จงเขยี นไดอะแกรมการลบแบบ half subtractor โดยมีอินพตุ เปน A และ B และเอาตพุตคือ D1กับ B021. จงเขียนตารางความจรงิ ของ half subtractor22. จงเขยี นไดอะแกรมของ full subtractor โดยมีอินพุตเปน A, B และ Bin และเอาตพ ตุ เปน D1กบั B023. จงเขยี นตารางความจรงิ ของ full subtractor10.6 การลบแบบขนาน (PARALLEL SUBTRACTOSS) วงจร half subtractors และ full subtractors สามารถใชพ รอมกนั ได เปนรูปแบบของการลบแบบขนาน คลายกบั การตอ วงจรบวกแบบขนาน ซึง่ ตวั อยา งของการบวกแบบขนาน 3 บิต การลบแบบขนานกส็ ามารถทําไดคลายกับการบวกแบบขนานเพราะตวั เลขทุกบติ จะเขา สวู งจรในเวลาเดยี วกัน 264
รปู ท่ี 10.12 วงจรบวกแบบขนานแบบ 4 บิตโจทยท ดสอบ 24. จากรปู ท่ี 10.12 เปนไดอะแกรมของ 4-bit…………………………..(parallel adder, parallelsubtractor, serial adder, serial subtractor) circuit 25. จากรูปที่ 10.12 เสน ท่ีลากระหวาง subtractor (B0 กบั Bin) หมายถึงอะไร 265
10.7 ไอซบี วก (IC ADDERS) ปจจุบนั ไดมีการสรางไอซสี ําเร็จรูปที่สามารถทําวงจรบวกได อยางเชน ไอซีคณิตศาสตรเ บอรTTL7483 ซึ่งเปน ไอซี 4 bit binary full adder ถาหากจะบวกเลขใบนารี 4 บิตสองจํานวน(A3A2A1A0 และ B3B2B1B0) สามารถทําไดโ ดยตอ เขากบั อนิ พตุ ทั้ง 8 อินพุต ของไอซี 7483 สําหรับการบวก จะตัองมเี ลขไบนารี 4 บติ สองจาํ นวนและ Co อนิ พตุ จะถูกทาํ ใหเปน 0 อนิ พตุ Co สรา งใหเ ปนCin สาํ หรบั ทางดา นเอาตพุต C4 จะกลายเปน เลขใบนารีในตําแหนง 16s การบวกเลขใบนารโี ดยใชไ อซีเบอรน ี้ จะบวกไดค า สงู สุดคือ 11110 (30 ในระบบเลขฐานสิบ) เมือ่ มีการบวกเลขใบนารรี ะหวาง1111กับ 1111 รปู ท่ี 10.13 ไอซีบวก 7483 4-Bit binary 266
รูปที่ 10.14 โครงสรา งวงจรภายในของไอซที ีทแี อลเบอร 7483 267
รูปท่ี 10.15 การใชไอซี 7483 จํานวน 2 ตวั มาสรางเปนวงจรบวกแบบ 8 บิตโจทยท ดสอบ 26. ไอซีเบอร 7483 เปน ไอซีแบบ 4-bit binary………………………………. 27. ไอซเี บอร 7483 ถา ตอ งการใชง านเปน 8-bit parallel binary adder จะตอ งตอ แบบใด 28. จากรูปที่ 10.13 ถาตอ งการทาํ ไอซี 7483 ใหเปน adder/subtractor จะตอ งนาํ AND เกตและเกตชนิดใดอกี 1 ตวั มาตอ เพิ่ม10.8 การคณู เลข เราสามารถเอาตัวคูณตัวเลขโดยใชวธิ กี าร บวกแบบซํ้า ๆ กันไดด งั แสดงในรปู ที่ 10.18 ซึง่ ตวั ตัง้ คือเลข 7 จะถกู บวก 4 ครง้ั และจะไดผลลพั ธเ ปน 28 ไดอะแกรมทีใ่ ชแ ทนรปู แบบของวงจรการบวกแสดงดงัรปู 10.22 โดยตงั ตั้งจะถูกเกบ็ ไวในรจี ิสเตอรตงั บน ในตัวอยา งนค้ี ือ 7 หรือเปน เลขใบนารี 111 สวนตัวคูณจะเก็บไวใ นวงจรนับดา นลา งซา ยดังรูปที่ 10.22 โดยในตัวอยา งนีต้ ัวคูณจะเปน 4 หรอื เลขใบนารี 100ผลลัพธทไี่ ดหรอื ผลคูณจะเกบ็ ไวใ นรจี ีสเตอรด า นลางสุด 268
รูปที่ 10.16 (a) การคูณเลขฐานสบิ (b) การคูณเลขที่สอดคลอ งกับการบวก รปู ท่ี 10.17 (a) ปญหาการคูณเลขฐานสบิ (b) การคณู ขัน้ แรก (ค) การคณู ขน้ั ที่ 2 ไดผ ลลพั ธการคูณเลข 269
รูปท่ี 10.18 (a) กฎการคณู เลขไบนารี (b) ตวั อยา งการคณู เลข ปญหาการคณู เลขไบนารแี บบอื่นๆ แสดงไดดังรปู ท่ี 10.19 โดยทางซายจะแสดงการคูณเลขฐานสิบทางขวาจะแสดงการคูณเลขไบนารี เมื่อเลขไบนารี 11011 ถกู คูณดว ย 1100 จะคลา ยกับการคูณเลขฐานสบิ ดว ย 0 คอื สามารถเวน ตําแหนง 1s และ 2s ในเลขไบนารีได ผลลพั ธจากการคณู จะมีคาเทา กับ 101000100 ซงึ่ เทา กบั เลข 324 ในฐานสิบ รปู ท่ี 10.19 ตัวอยางการคูณเลขโจทยท ดสอบ 29. จงหาผลลัพธข องเลขไบนารีตอไปน้ี 111 x 10 30. จงหาผลลพั ธของเลขไบนารีตอ ไปน้ี 1101 x 101 31. จงหาผลลพั ธของเลขไบนารตี อไปน้ี 1100 x 1110 270
10.9 การคณู เลขไบนารี เราสามารถคูณตัวเลขโดยใชวิธีการบวกแบบซ้าํ ๆได ดังแสดงในรูปที่ 10.16 (b) ซง่ึ ตวั ตั้งคอื เลข7 จะถกู คูณ 4 ครั้งไดผ ลลพั ธเ ปน 28 ไดอะแกรมท่ีใชแทนรูปแบบของวงจรการบวกแสดงไดดงั รปู ท่ี 10.20 โดยตัวตงั้ จะถูกเก็บไวใ นรีจสี เตอรตัวบน ในตัวอยางน้ีคอื 7 หรอื เปน เลขไบนารี 111 สําหรับตัวคณู จะเก็บไวในวงจรนับดา นลา งซายของรปู ที่ 10.20 โดยในตวั คณู จะมีคาเปน 4 หรือเลขไบนารี 100 ผลลัพธทไี่ ดหรือผลคูณจะเก็บไวใ นรจี สี เตอรด า นลางสดุ รปู ท่ี 10.20 ไดอะแกรมของระบบการคูณโดยใชการบวก เทคนิคการบวกแบบซํ้าๆ แสดงการทํางานไดดังรูปที่ 10.21 โดยจะแสดงตัวตั้ง 111 ถูกคูณดวยตวั คูณ 100 ข้ันแรกรีจีสเตอรท ่เี ก็บผลลพั ธจะถูกเคลียรใ หเปน 0000 หลังจากนน้ั จะทําการนบั ลง โดยการนบั ลงแตล ะครั้งจะนาํ ผลบวกทีไ่ ดเก็บไวในรีจีสเตอรผ ลลพั ธ ข้นั แรกจะเก็บคา 00111 (7) เอาไวก อนในรีจีสเตอร หลังจากนั้นในการนับลงคร้ังที่ 2 รีจีสเตอรผลลัพธจะเก็บคา 01110 (14) การนับลงครั้งท่ี 3 รีจีสเตอรผลลัพธจะเก็บคา 10101 (21) การนับลงคร้ังท่ี 4 รีจีสเตอรผลลัพธจะเก็บคา 11100 (28) ซึ่งเปนผลลัพธครั้งสุดทาย (Final Product) โดยการคูณ 7×4 = 28 จะสมบูรณ วงจรในรูปท่ี 10.20 จะมีการบวก 7 ท้ังหมด 4 ครงั้ ไดผลลพั ธเปน 28 271
รูปที่ 10.21 การคณู เลขไบนารี 111 และ 100 ดวยการบวกแบบซ้าํ ๆ วงจรประเภทน้ีจะไมนิยมใชกันเพราะการบวกซํ้าๆ จะใชเวลานานเม่ือตัวคูณมีคามากข้ึน วิธีท่ีนิยมใชในการคูณของวงจรดิจิตอลอิเล็กทรอนิกสคือ วิธีบวกแลวเล่ือน หรือวิธี add and shift method(บางครั้งเรียกวา shift and add method) ในรูปท่ี 10.22 จะแสดงการคูณไบนารีโดยจะคูณ 111 ดวย101 (7×5 ในระบบฐานสิบ) ถาสังเกตดูโดยละเอียดจะเห็นวาในการคูณเลขไบนารีจะประกอบดวยสวนสาํ คัญ 3 สวนดังนี้ 1. ผลลพั ธบ างสว นจะมีคา เปน 000 ถาถูกคูณดว ย 0 และผลลัพธจ ะเทากับตัวต้งั ถา ถกู คูณดวย 1 2. รีจสี เตอรที่เก็บผลลพั ธจ ะตองมจี าํ นวนบิตมาก 3. ผลลัพธข องการคูณในแตละสว นจะตองถกู เลื่อนไปทางซา ยครงั้ ละ 1 ตาํ แหนง รูปที่ 10.22 ปญหาการคูณเลขไบนารี ขัน้ ตอนแตละขั้นตอนสามารถสงั เกตไดจ ากรปู ที่ 10.22 ลกั ษณะของการคณู ท่ีกลาวมา ถานํามาออกแบบเปน วงจรคณู เลขไบนารีสามารถทําไดในรูป 10.23 โดยรูปที่ 10.23 (a) แสดงวาวงจรที่ใชคณู 272
เลขไบนารสี งั เกตดูจะเห็นวา ตวั ตง้ั 111 จะถูกโหลดเขา ไปเกบ็ ในรจี สี เตอรท างดานบน รจี สี เตอรแอคควิ มูเลเตอร (accumulstor) จะถูกเคลียรเ ปน 0000 และตัวคูณ 101 จะถกู โหลดเขาไปเก็บในรีจสี เตอรด านลางนอกจากนี้จะสังเกตเุ หน็ ไดว า มีการตอ รีจีสเตอรแอคคิวมูเลเตอรกับรีจสี เตอรเกบ็ ตัวคูณและจะตอกบั วงจรการบวกแบบขนานดวย เม่ือใชวงจรในรูปท่ี 10.23(a) และอธิบายการทํางานของการคูณดวยไดอะแกรมในรูปที่10.23(b)แตละขั้นตอนจะแสดงการคูณเลข 111 ดวย 101 โดยใชวิธี add and shift method ข้ันแรกเลขไบนารี 111จะถูกโหลดเขาไปในรีจิสเตอรที่เก็บตัวต้ัง รีจีสเตอร accumulator และรีจีสเตอร ตัวคูณจะถูกโหลดเขาไปในขั้นตอน A ดังรูปท่ี 10.23 ตอมาขั้นตอน B คา 0000 จากรีจีสเตอร accumulatorและคา 111 จากรจี ีสเตอรต วั ตั้งจะบวกกนั เม่อื มีคา 1 สง ไปยังในสายควบคุม ( control line) ซึ่งเปรียบเทียบกับบรรทัดที่3 ของการคูณในรูป 10.22 ก็ไดตอมาข้ันตอน C จะเลื่อนคาในรีจีสเตอรaccumulator และรีจีสเตอรตัวคูณไปทางขวา 1 คร้ัง โดยบิตต่ําสุด LSB ของรีจิสเตอรตัวคูณ (1) จะถูกเล่ือนออกมา ขนั้ ตอน D เปน ข้ันตอนของการบวก แตข ณะน้ีคา 0 จะสง ออกไปทาง control line ทาํ ใหไมมีการบวกเกิดข้ึน คาในรีจิสเตอรจะไมมีการเปลี่ยนแปลง ข้ันตอน D น้ีไดเปรียบเทียบไดกับ บรรทัก 4และ 5 ของรูปที่ 10.22 ตอไปขั้นตอน E จะเปนการเลื่อนขอมูลไปทางขวา 1 ครั้งโดยบิต 2s จะหายไปขั้นตอน F จะแสดงบวกกันของคารีจีสเตอร accumulator ซงึ่ มีคา 0001 กบั คารจี สี เตอรตวั คณู เปน 111ซง่ึ ผลลพั ทจะไดเปน 1000 เก็บไวใ นรจี ีสเตอร accumeulator โดยตําแหนง 4 s จะมคี า เปน 1 ข้นั ตอนนี้เปรียบเทยี บไดกับบรรทัดท่ี 5 ถึง 7 ในรปู ท่ี 10.22 ตอ มาข้ันตอน G จะเปน ข้ันตอนสุดทา ยโดยเล่ือนขอมูลในรจี สี เตอรทง้ั สองโดยบิต 4s ของตวั คูณจะหายไป ผลรวมของการคูณคร้ัง สดุ ทายจะปรากดในรจี ีสเตอรทั้งสอง โดยมีคาเทากับ 100011 ดังนั้นการคูณเลขไบนารี 111 ดวย 101 จะได ผลลัพเปน100011(7x5=35 ในระบบฐานสิบ)ผลรวมท่ไี ดจ ากวงจรคณู จะมีคา เทากบั บรรทดั ที่ 7 ของรูป 10.22 วงจรคูณท้ัง 2 แบบที่ไดแสดงมาแลว แบบแรกจะแสดงมาแลว แบแรกจะแสดงโดยใชวิธีการบวกซา้ํ ๆกัน ดงั แสดงในรปู ที่ 10.20 วงจรแบบที่ 2 จะใชวิธี add and shilft method ซ่งึ แสดงไดด ังรูปที่10.23 ในระบบคอมพิวเตอรใ นสวนของการคาํ นวณแบบ add and shilft method สามารถโปรแกรมเขาไปไดซ ่ึงจะใชโ ปรแกรมในระบบคอมพวิ เตอรหรอื คําสัง่ ใหเครือ่ งคํานวณ ดงั รูปท่ี10.23(b) การใชโ ปรแกรมจะเปนการลดวงจรอิเล็กทรอนิกสที่ตองสรางลงใน CPU ลงได ในไมโครโปรเซสเซอรแบบ 8 บิต เชนของintel เบอร 8080/8085 motorola เบอร 6800 และ 6502/65C02 จะไมมีวงจรในสวนของ ALUสาํ หรับการคูณเลข ในการคูณเลขไบนารจี ะตองทาํ โดยโปรแกรมเขาไปโดยอาจใชว ิธีการบวกซํ้าๆ หรอื วธิ ีadd and shilft ก็ไดแตในไมโครโปรเซสเซอรรุนใหมๆจะมีการออกแบบคําสั่งคูณเอาไวภายในตัวไมโครโปรเซสเซอร 273
274
รูปท่ี 10.23 (a) ไดอะแกรมวงจร add shift-type multiplier (b) คาในรจี สี เตอร A และรีจีสเตอรต วั คูณโดยมกี ารบวกและเล่ือนโจทยท ดสอบ 32. จากรูปท่ี 10.20 จะใชวิธกี ารใดหาผลคูณของเลขไบนารี 33. เทคนคิ การคณู เลขไบนารที ใี่ ชใ นวงจรดจิ ติ อลเรเรียกวา ..................method 34. จากรปู ที่ 10.23 จะเปน การหาผลคูณเลขไบนารีดวยวธิ กี ารใด 35. ไมโครโปรเซสเซอรแ บบ 8 บิตในยคุ แรก ๆ จะมคี า่ํ สง่ั ในการคณู หรอื ไม10.10 การบวกและการลบโดยใชส ัญลกั ษณ 2’s complement วธิ กี ารใช 2’s complement เปน วธิ ที ใี่ ชก นั มากในไมโครโปรเซสเซอร ซ่ึงในตัวไมโครโปรเซสเซอรจะตองมีการทํางานท้ังบวกและลบ การใชวธิ ี 2’s complement สามารถใชเปนสญั ลกั ษณใ นการแสดงบวกลบได พจิ ารณาการประมวลผลแบบ 4 บิต โดยการจัดกลุมขอมลู 4 บติ แทนตวั เลขดังรปู ที่ 10.24 (a)บติ หนาสุดเรยี กวาบิตเครอ่ื งหมาย ถา มีคาเปน 0 หมายความวาเปนเลขบวก ถา มีคา เปน 1หมายความวา เปนเลขลบ ในรปู ที่ 10.24 (b) จะแสดงคาดวย 2’s complement แทนตวั เลข 4 บิตทัง้ จํานวนบวกและจํานวนลบโดยมีคาต้ังแต +7 ถงึ -8 บติ สูงสุด MBS ในรูปท่ี 10.24 (b) คา 2’s complement จะเปน 0สําหรบั เลขลบต้งั แต -1 ถงึ -8 บิตสูงสดุ จะเปน 1 เมือ่ คูณจํานวนบวกท่แี สดงดวยเลข 2’s complementจะเหน็ วา จะเหมือนกบั เลขไบนารีเชน +7 ในฐานสบิ จะเทากับ 0111 ในระบบ 2’s complement การแสดงคา 2’s complementของเลขลบทําไดโ ดยทาํ1’s complement แลวบวกดว ย 1 ดงั แสดงตัวอยา งในรูปท่ี 10.25 (a) จากฐานสิบ -4 ถาจะแปลงเปน2’s complement ทาํ ไดดังนี้ 275
รูปที่ 10.24 (a) รจี สี เตอร 4 บติ มีบิตเครอื่ งหมาย (b) คา 2’s complement ของเลขบวกและลบ1. แปลงเลขฐานสิบเปนเลขไบนารีท่ีมีคาเทากันโดยไมคิดเคร่ืองหมาย ในตัวอยางนี้จะแปลง -4 10 เปน 01002 2’s complement ดงั นนั้ -410 =1100(2. แปลงเลขไบนารีท่ไี ดเปน 1’s complement โดยเปลย่ี นบติ 1เปน 0 และบติ 0 เปน 1โดยแปลง 01002 เปน 1011 (1’s complement)3. บวก 1 เขากับเลข 1’s complement ที่ไดโดยใชการบวกแบบเลขไบนารี ในตัวอยางน้ี 1011+1=1100 ซง่ึ จะเปนจะเปน คําตอบของตวั เลข 2’s complement ดังนนั้ -410 =1100(2’s complement) 276
คําตอบน้ีจะอางองิ ไดจากตารางที่ 10.24 (b) สําหรบั การแปลงคา จากเลข 2’s complement เปนเลขไบนารี ทาํ ไดดงั รูปที่ 10.25 (b) โดยตวั อยา งจะแปลงเลข 2’s complement (1100ใหเปน เลขไบนารีโดยเขยี นแรกฐานสบิ กาํ กับไว) ขั้นตอนในการทํามดี งั น้ี 1. ทํารูปแบบ 1’s complement ของเลข 2’s complement โดยกลบั คาทุกบติ จาก 1 เปน 0 จาก 0 เปน 1 ในตัวอยา งนี้จะแปลง 1100 เปน 0011 2. บวก 1 เขากับเลข 1’s complement ท่ีได โดยใชการบวกแบบเลขไบนารี ในตัวอยางนี้ 0011+1=0100 ซึ่งจะเปนคําตอบในรูปแบบเลขไบนารีโดย 01002 = 410 เน่ืองจากบิตสูงสุด MBS ของ 2’s complement (1100) เปน 1 ตัว ตวั เลขที่ไดจะเปน เลขลบ ถาอยากทราบวา เปน ลบเทาไรจะตองทํา 2’s complement กลับ ดังน้ันเลข 2’s complement 1100 จะมีคา เทา กับ-410 รูปท่ี 10.25 (a) การแปลงเลขลบเปนเลข 2’s,complement (b) การแปลงเลข 2’s complement เปนไบนารี เครื่องหมาย 2’s จะใช complement จะใชกันอยางกวา งขวางเนอื่ งจากงา ยในการบวกและลบเลข ในรูปท่ี 10.26 จะเปนตัวอยางการบวกเลข 2’s complement 4 แบบ โดยการบวกของจํานวน 2คาแสดงในรูปที่ 10.26 (a) ซึ่งการบวกเลข2’s complement จะเหมือนกับการบวกเลขไบนารี สําหรับรูปท่ี10.26 (b) จะเปนจํานวนลบ 2 จํานวนมาบวกกัน(-110 กับ -210)ซ่ึงจะใช2’s complement แทนเลข -1 และ -2 คือ 1111 และ1110 บิตสูงสุด (บิต overflow) จะถูกตัดท้ิงในการบวกแบบ2’s 277
complement ผลบวกท่ีไดจะเปน1101 หรือ -3 ในระบบเลขฐานสิบ พิจารณาตัวอยาง (ค) และ (ง) ในรูปท1ี่ 0.26 จะทาํ ใหเ ขาใจการใชเ ครอื่ งหมาย2’s complement ในการบวกเลข รปู ที่ 10.26 ตวั อยา งการบวกเลข 4 บิต โดยใชวธิ ี 2’s complement สัญลักษณ 2’s complement มักจะใชในการลบเลข ในรูปที่ 10.27 จะเปนการลบเลข 4ตัวอยาง ตัวอยางแรกจะเปน (+7)-(+3) =+410 โดยเลขที่นํามาลบ (+3) จะถูกแปลงเปนรูปแบบเลข 2’scomplement จะได1101 จากน้ันนํา 0111 มาบวกกับ 1101 จะได 10100 โดยบิตบนสุด MSB (บิตoverflow) จะตัดทิ้ง ซ่ึงไดผลลัพธจากการลบเปน 0100 หรือ +410 ใหสังเกตวาการบวกจะใชในการลบเลขได แตตองแปลงเลขที่จะนํามาลบใหอยูในรูปแบบ 2’s complement กอนแลวจึงนําไปบวก สําหรับบติ ตัวทดหรอื (overflow)ซึง่ เปน บิตท่ี 5 ของเลขไบนารจี ะถกู ตัดท้ิงไป ตวั อยา งตอ ไปน้ี รูปท่ี10.27 (b),(ค) และ (ง) จะเปนการลบเลขโดยใชว ธิ กี ารแปลงใหเปน เลข 2’scomplement แลวนําไปบวกเชนกัน ซ่ึงจะเห็นวาวิธีนี้สามารถใชไดเปนอยางดี ในตัวอยางที่ผานมาจะเปนตัวเลข 4 บิตมาทํา 2’s complement สําหรับในไมโครโปรเซสเซอรจะเปนแบบ 8,16 หรือ 32 บิตการทํางานของมนั จะใชเลข 2’s complement แบบ8บติ ,16บิต และ 32บิต ถึงตรงน้ี สามารถสรปุ ไดวาเลขแบบ 2’s complement สามารถใชก บั การบวกและลบเลขได 278
รูปที่ 10.27 ตัวอยางการลบเลขโดยใช 2’s complement ระบบเลข 2’s complement แบบ 8 บิต จะใชบิตสูงสุดเปนบิตเคร่ืองหมายเชนกัน ดังรูปที่10.28 (a) ระบบเลขแบบ 8 บิตน้ีจะแทนขอมูลไดในชวง -128 ถงึ +127 สําหรับการเปล่ียนฐานสิบท่ีเปนเลขลบ(-1 ถึง -128) ใหเปน เลข 8 บติ แบบ 2’s complement สามารถทาํ ไดดังตัวอยางตอไปนี้ 1 .เปลย่ี นเลขฐานสิบ-126 ใหเปนเลขฐานสอง ดงั นัน้ 126 =0111 1110 2. เปลี่ยนเลขฐานสองเปน 1’s complement ดงั นั้นคา 0111 1110 จะไดเปน 1000 0001 3. บวก 1 เขา กับเลข 1’s complement ที่ได 1000 0001 + 1 = 1000 0010 ดังนนั้ – 126=1000 0010 ในระบบเลข 2’s complement 279
รปู ท่ี 10.28 ระบบเลข 2’s complement แบบ 8 บิต ดงั นั้นจะไดวา 1001 1100 มคี า เทา กับ -100ในระบบเลขฐานสิบ ระบบเลข 2’S COMPLEMENT แบบ 8 บติ สามารถแทนคาเลขไดส ูงกวาแบบ ในรปู ท่4ี บิต ในรูปท่ี 10.29 (a) เปน ตัวอยางของการบวกเลข ถาหากเปนการบวกของเลขลบจะตองทาํ เลขลบน้นั ใหเ ปนเลขแบบ2’S COMPLEMENT กอน และถาหากผลลัพธมีคา ทดมายงั บิตที่ 9 ใหตัดบิตนท้ี ง้ิ ไป ในรปู ที่ 10.29 (b) เปน ตวั อยา งของการลบเลขแบบ 2’S COMPLEMENT โดยใชว ิธีการบวกกับเลขลบคา นน้ั เชนถาหากตองการหาคา ของ(+65)-(+35) จะคิดโดยการนาํ 65 ไปบวกกบั คา-35โดยเขียนเลข2’S COMPLEMENTของ-35 ออกมากอ น ถาหากตองคาํ นวณ (-78)-(-35) กส็ ามารถทจี่ ะทําได โดยวธิ กี ารบวกกันระหวาง -78 กบั คา 35 ดงั รปู ท่ี 10.29 (b) 280
รูปท่ี 10.29 (a) การบวกแบบคดิ เครือ่ งหมายของเลข 2’s complement แบบ 8 บติ (b) การบวกแบบคดิ เครอ่ื งหมายของเลข 2’s complement แบบ 8 บติ 281
โจทยทดสอบ 36. เมอ่ื ไมโครโปรเซสเซอรต องการประมวลผลแบบเลขลบ จะใชว ิธใี ดในการแทนเลขลบ 37. ตัวเลข 0111 ในระบบ 2’s complement จะแทนเลข…………………………ในระบบไบนารีและ………………….…..ในระบบฐานสบิ 38. ตัวเลข 1111 ในระบบ 2’s complement จะแทนเลข…………………………ในระบบฐานสิบ 39. ระบบเลข จงหาคาผลบวกของเลข 2’s complement คา 1110 และ 1101 โดยตอบในรูปแบบเลข 2’s complement และเลขฐานสิบ บิตสูงสุด (MSB) จะเปน…………………….bit และถา MSB เปน 0จะเปน เลข……………………..(ลบ,บวก) และถาเปนเลข………………………..(ลบ,บวก) 40. ตัวเลขฐานสบิ -6 จะแทนดวย………………….ในระบบ 2’s complement 41.ตัวเลขฐานสิบ +5 จะแทนดวย………………….ในระบบ 2’s complement 42. จงหาคา ผลบวกของเลข 2’s complement คา 1110 และ 1101 โดยตอบในรปู แบบเลข 2’scomplement และเลขฐานสบิ 43. จงหาคา ผลบวกของเลข 2’s complement คา 0110 และ 1100 โดยตอบในรปู แบบเลข 2’scomplement และเลขฐานสิบ10.11 ตวั บวกลบเลขแบบ 2’s complement ระบบ 2’s complement adder/subtractor ในรปู ที่ 10.30 จะเหมอื นกับระบบ binaryadder/subtractor ในรปู ท่ี 10.15 เพียงแตร ะบบ 10.30 น้ีจะใชกับเลขแบบ 2’s complement 282
รูปท่ี 10.30 ระบบ Adder/subtractor โดยใช 2’s complementโจทยท ดสอบ 44. จากรูปท่ี 10.30 ตวั เลขที่นํามาบวกหรือลบกนั จะเปนตัวเลขแบบใด (binary, BCD, 1’scomplement, 2’s complement 45. จากรูปท่ี 10.30 เอาตพุตที่ไดจะเปนแบบใด (binary, BCD, 1’s complement, 2’scomplement) 46. จากรูปท่ี 10.30 ระบบนี้สามารถบวกหรอื ลบตวั เลขแบบ................(signed. Only unsignednumbers) ได 47. จากรปู ที่ 10.30 ถา ระบบนเ้ี ปนเลข 0011 กับ1100 เอาตพ ตุ ทไี่ ดม ีคา เทากับ..........ซึ่งเปน เลขแบบ 2’s complement ซ่ึงแทนเลขในระบบฐานสบิ เทากบั ............... 48. จากรปู ท่ี 10.30 ถา ระบบเลข 0010 จาก 0101 เอาตพ ตุ ที่ไดจะเปน ..................ซงึ่ เปน เลขแบบ2’s complement ซ่งึ แทนเลขฐานสบิ เทากบั ......................10.12 การหาขอผดิ พลาดในวงจรบวก ความผดิ พลาดทีเ่ กิดขนึ้ ในวงจรบวก full addaer ในรปู ที่ 10.31 (a) สามารถตรวจเชก็ จากวงจรไดในรปู ที่ 10.31 (a) เปนวงจรบวกแบบ full-adder ซ่งึ สรางลอจกิ เกต โดยอินพุตของขอมูลและเอาตพุตที่ไดจะเปนดังตารางความจริงในรูปท่ี 10.31 (b) จากอินพุตท่ีกําหนดให ลองตรวจสอบคําตอบจากเอาตพตุ (∑และC0) ดวยลอจิกโพรบ จะพบวาในบรรทัดท่ี 6 และ 7 ของตารางความจริง เอาตพุตที่ไดจะ 283
ผิดจากความจริง สําหรับคาผลบวกจะถูกตองทั้งหมด ดังนั้นไมตองเช็ก XOR ท้ังสองตัว คาตัวทดที่ผิดพลาดอาจเกิดข้ึนจาก OR เกตและ AND เกตท้ังสองตัว ใหลองเช็ก AND เกตตัวบน (ตัวที่4) ถาหากอินพุตเปนไปตามบรรทัดที่ 6 ของตารางความจริง (Cin = 1, B=0,A=1) ขา 1 และขา 2 ของ AND เกตหมายเลข 4 จะตอ งเปน High ใหลองใชล อจิกโพรบตรวจวัดดู และเอาตพตุ ขา 3 จะตองเปน High แตถาเปน Low หมายความวา AND เกตตวั น้ีใหเอาตพ ตุ ผดิ พลาด ทําใหเ อาตพตุ Co ท่ไี ดผิดจากความเปนจรงิ จากน้ันจะตองดูวาเอาตพุตของ AND ทํางานผิดจากสาเหตุใด ซึ่งอาจเปนไปไดท่ีเอาตพุตของวงจรช็อตกับ GND แตถาไมช็อตแสดงวา AND เกตตัวน้ีเสียใหเปล่ียนโดยเปลี่ยนตัวไอซี 7408 จะเห็นวาการหาขอผิดพลาดของวงจรจะตอ งรจู ักการวเิ คราะหว งจรและการใชเ คร่อื งมอื ในการแกปญ หา รูปท่ี 10.31 (a) วงจรลอจกิ ทเี่ กิดความผิดพลาด (b) คาของอินพุตและเอาตพ ุตท่ีไดจากวงจรสรุป 1. วงจรบวกลบเลขทางคณิตศาสตรสามารถสรา งจากวงจร Combinational logic โดยใชเกตพ้ืนฐานตางๆได 2. วงจรบวกเลขอยางงา ยเรียกวา half adder 2 วงจรกบั OR เกตสามารถสรา งเปน วงจร Fullsubtractor ได 284
3. วงจรลบเลขอยางงา ยเรยี กวา half subtractor ถา หากมี half subtractor 2 วงจรกบั OR เกตสามารถสรา งเปนวงจร full subtractor ได 4. วงจรบวกหรือลบเลขสามารถสรา งจาก parallel adder ได 5. วงจร 4-bit parallel adder สามารถบวกเลขไบนารี่แบบ 4 บิต 2 จํานวนไดใ นเวลาเดยี วกัน โดยสรา งมาจาก half adder 1ตัว (ตัวแรก) และ full adder 3 ตวั มาประกอบกัน 6. เราสามารถใช 1’s complement และวิธี end-around carry มาสรางเปนวงจรลบไบนาร่ไี ด 7. เราสามารถใช AND เกต มาสรางเปนวงจรบวกแบบขนานได และวงจรลกั ษณะนจ้ี ะมบี รรจอุ ยใู นไอซเี พยี งตวั เดียว 8. ไอซที ี่สามารถทํางานทางคณติ ศาสตรไ ด ไดแกเบอร 7483 ซ่งึ เปน 4-bit binary adder 9. วงจรบวกแลพลบจะเปน สวนหน่งึ ทปี่ ระกอบอยใู น CPU ของเครอื่ งคดิ เลขอิเลก็ ทรอนกิ ส 10. การคูณเลขไบนารโี ดยใชวงจรดจิ ิตอลสามารถสรางจากวิธี บวกแลวเล่ือน (add and shiftmethod) ได 11. ในไมโครโปรเซสเซอรจ ะใชว ธิ ี 2’s complement ในกราคํานาณแบบมีเครือ่ งหมาย โดยการบวกและลบเลขจะเปน แบบ 2’s complement 12. เราสามารถหาจุดผดิ พลาดของวงจรลอจิกไดจ ากการวิเคราะหวงจรและใชเ คร่อื งมอื เขาชวยคาํ ถามทายบท10.1 จงบวกเลขไบนารีตอ ไปน้ีก. 101+011 = จ. 1000+1000 =ข. 110+101 = ฉ. 1001+0111 =ค. 111+111 = ช. 1010+0101 =ง. 1000+0011 = ซ. 1100+0101 =10.2 จงเขยี นไดอะแกรมของ half adder10.3 จงเขียนไดอะแกรมของ full adder10.4 จงลบเลขไบนารีตอไปน้ีก. 1100 – 0010 = . . . . . . . . . . จ. 1000 – 0011 = . . . . . . .ข. 1101 – 1010 = . . . . . . . . . . ฉ. 100 – 0101 = . . . . . . . . .ค. 110 – 0011 = . . . . . . . . . . ช. 10010 – 1011 = . . . . . . . . . .ง. 1111 – 0110 = . . . . . . . . . . ซ. 1001 – 0010 = . . . . . . . .10.5 จงเขยี นไดอะแกรมของ half subtractor10.6 จงเขยี นไดอะแกรมของ full subtractor10.7 จงเขยี นไดอะแกรมของ 2-bit parallel adder10.8 จงเขยี นไดอะแกรมของ 3-bit parallel adder/subtractor (ใช full adder 3 ตัว , XOR เกต 3 ตัว, AND เกต 1 ตวั )10.9 จงลบเลขตอ ไปนโี้ ดยใชวธิ ี 1’s complement และ end-around carry 285
ก. 111 – 101 = . . . . . . . . . . จ. 1011 – 1010= . . . . . . . . . .ข. 1000 – 0011 = . . . . . . . . . . ฉ. 1100 – 0110 = . . . . . . . . .ค. 1001 – 0010 = . . . . . . . . . . ช. 1110 – 0100= . . . . . . . . . .ง. 1010 – 0100 = . . . . . . . . . . ซ. 1111 – 0111= . . . . . . . . . .10.10 จงคุณเลขตอไปน้แี ละเช็คคําตอบจากการคูณเลขฐานสิบก. 101 x 011 = . . . . . . . . . . จ. 1010 x 011 = . . . . . . . . . .ข. 111 x 011 = . . . . . . . . . . ฉ. 110 x 111 = . . . . . . . . . .ค.1000 x 101 = . . . . . . . . . . ช. 1100 x 1000 = . . . . . . . . . .ง. 1001 x 010 = . . . . . . . . . . ซ. 1010 x 1001 = . . . . . . . . . .10.11 จงบอกวธิ กี ารคณุ เลขไบนารีใชในดิจิตอลอิเลก็ ทรอนิกสม า 2 วิธี10.12 ถา หาก CPU ของเครื่องคอมพวิ เตอรภ ายในมี adder และ shift register คณุ คดิ วา เครอ่ื งจะทําการคูณเลขไบนารอี ยางไร10.13 จงแปลงเลขฐานสิบแบบมีเครื่องหมายตอไปน้ี เปนเลขไบนารี 4 บิต แบบ 2’s complementก. + 1 = . . . . . . . . . . ค. -1 = . . . . . . . . . .ข. +7 = . . . . . . . . . . ง. -7 = . . . . . . . . . .10.14 จงแปลงเลข 4 บิต 2’s complement ตอ ไปนี้ดปนฐานสบิ แบบมเี ครอ่ื งหมายก. 0101 = . . . . . . . . . . ค. 1110 = . . . . . . . . . .ข. 0011 = . . . . . . . . . . ง. 1000 = . . . . . . . . . .10.15 จงบวกเลข 4 บติ 2’s complement ตอไปนี้ และตอบในรูปแบบเลขฐานสบิ แบบมีเครอื่ งหมายก. 0110 + 0001 = …………………….ข. 1101 + 1011 = …………………….ค. 0001 + 1100 = …………………….ง. 0100 + 1110 = …………………….10.16 จงลบเลข 4 บติ 2’s complement ตอไปนี้ และตอบในรปู แบบเลขฐานสบิ แบบมีเครอ่ื งหมายก. 0110 - 0010 = …………………….ข. 1001 - 1110 = …………………….ค. 0010 - 1101 = …………………….ง. 1101 - 0001 = ……………………. 286
คาํ ตอบโจทยทดสอบ 2871. 11102. 100013. 110004. 110105.6.7. 1s8. t1 : sum = 1, C0 = 0 t2 : sum = 0, C0 = 0 t3 : sum = 0, C0 = 1 t4 : sum = 1, C0 = 09.10.11. arithmetic-logic unit (ALU)12. full-adder13. t1 : sum = 1, C0 = 1 t2 : sum = 0, C0 = 1 t3 : sum = 0, C0 = 1 t4 : sum = 1, C0 = 0 t5 : sum = 0, C0 = 1 t6 : sum = 1, C0 = 0 t7 : sum = 1, C0 = 0 t8 : sum = 0, C0 = 014. half adder, full adders15. combinational16. 110117. 100018. 111019. a. 01 b.10 c.000 d.101 e. 1111
f. 11120.21.22.23.24. parallel subtractor25. borrow lines26. adder27. cascaded28. XOR29. 111030. 100000131. 1010100032. repeated addition33. add and shift34. add and shift35. F36. 2s complement37. 0111, -538. -139. sign, positive, nwgative40. 101041. 010142. 1011, -543. 0010, +244. 2s complement45. 2s complement46. signed47. 1111, -148. 0011, +3 288
Search
Read the Text Version
- 1 - 37
Pages: