Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore บทที่ 10 วงจรทางคณิตศาสตร์

บทที่ 10 วงจรทางคณิตศาสตร์

Published by ห้องสมุด สุธีร์, 2017-03-21 03:47:02

Description: วงจรทางคณิตศาสตร์

Keywords: วงจรทางคณิตศาสตร์,arithmatic circuit

Search

Read the Text Version

บทท่ี 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


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook