190 likes | 373 Views
การประยุกต์ Logic Gates ภาค 2. บทที่ 7. การลบเลข. ในคอมพิวเตอร์แท้จริงแล้วไม่สามารถลบได้ จะใช้การบวก ตัวลบ จะต้องมีการแปลงเป็น 2 ’ s complement แล้วนำมาบวกกับตัวตั้ง. วิธีหา 2’s complement. กลับบิท แล้วบวกด้วย 1. วิธีหา 2 ’ s complement. 0111. 1000. 7. + 1. 1001.
E N D
การประยุกต์ Logic Gates ภาค 2 บทที่ 7
การลบเลข • ในคอมพิวเตอร์แท้จริงแล้วไม่สามารถลบได้ • จะใช้การบวก • ตัวลบ จะต้องมีการแปลงเป็น 2’s complement • แล้วนำมาบวกกับตัวตั้ง วิธีหา 2’s complement กลับบิท แล้วบวกด้วย 1
วิธีหา 2’s complement 0111 1000 7 + 1 1001 0011 12 1100 + 1 0100
ทำการลบโดยการบวก 12 - 7 กรณีตัวตั้งมากกว่าตัวลบ 1100 + 1001 10101 ตัดทิ้ง ได้ 1 แสดงว่า เป็นค่า + จะได้ 5
ทำการลบโดยการบวก 7 - 12 กรณีตัวตั้งน้อยกว่าตัวลบ 0111 + 0100 1011 0 หา 2’s complement ได้ 0 แสดงว่า เป็นค่า - 0100 + 1 101 จะได้ -5
การสร้างวงจรลบ • หากต้องการลบโดยไม่ใช้วิธี 2’s complement จะกล่าวถึง การประยุกต์ในภายหลัง (Full Subtractor)
ประโยชน์ของ 2’s complement • ใช้แทนค่าลบของตัวเลขในเครื่องคอมพิวเตอร์ที่เก็บใน RAM • ใช้ signed bit 0 = ค่าลบ 1 = ค่าบวก signed bit สมมติว่าหน่วยความจำของเรามีขนาด 4 บิท จะได้ 24 = 16 ดังนั้น จะเหลือ 3 บิทเก็บข้อมูล ดังนั้นข้อมูลจริงๆมีจำนวน 23 = 8 0/1 xxx
24 = 16ทั้งหมด 16 ค่า, 23 = 8 ค่า + และ - 0111 0110 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 1010 1001 1000 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 + 2’s complement -
ถ้าหน่วยความจำ 8 บิทจะเก็บเลขได้เท่าไร • ประกาศตัวแปร byte • 28 = 256 • หาร 2 ได้ 128 • ดังนั้น ค่าบวกจะได้ = 0 ถึง 127 • ค่าลบจะได้ –1 ถึง -128 127 01111111 … … 00000001 00000000 11111111 … … 10000001 10000000 int 16 บิท float 32 บิท -128
รหัส BCD • Binary coded decimal • ใช้แทนเลขฐาน 10 • เลขฐาน 10 จำนวน 1 ตัว สร้างได้จากเลขฐาน 2 จำนวน 4 ตัว • ตัวอย่าง • 0100 0101 • 0101 0010 • 27 0010 0111 • 5 0100 0101
การตรวจสอบความผิดพลาดของ BCD code • หากค่าเกิน 9 จะ ERROR (เลข 0-9) • แก้ไขได้โดยบวกด้วย 6 • เช่น 72 + 44 0111 0010 0100 0100 + 1011 0110 1011 + 0110 +6 ได้ 10001 1 1 6
Multiplexer แบบ 2 อินพุท • เราสามารถนำข้อมูลจากหลายๆอินพุทมารวมกันให้ออกเป็น Output เดียวได้ เรียกว่า การ Multiplex • วงจรที่ทำงานนี้คือ Multiplexer • ใช้หลักการของการสลับข้อมูลไปตามช่วงเวลาเล็กๆ 1 MUX 2 321 3
วงจร Multiplexer แบบ 2 อินพุท • A ทำงานเป็น Address Input ซึ่งใช้เลือก Input ที่ต้องการส่งข้อมูล
การทำงาน • อินพุทที่เราต้องการ Multiplex มี 2 ตัว ได้แก่ x1 และ x2 • A ทำหน้าที่เลือกอินพุทที่จะส่งออกไป Output • ดังนั้น หากเราส่งข้อมูลไปที่ A สลับกัน (0,1) ข้อมูลของ x1 และ x2 ก็จะสลับกันไปด้วย • ในการส่งเราอาจส่งข้อมูลไปที่ A แบบสัญญาณนาฬิกาก็ได้ • แต่ข้อมูลทั้งหมดจะต้องเข้าจังหวะกัน (Synchronize)
สัญญาณ Clock • เป็นสัญญาณแรงดันไฟฟ้าขึ้นและลง ตามช่วงเวลาที่คงที่ • สัญญาณ 0 และ 1 สลับกัน
วงจร Multiplexer แบบ 4 อินพุท ใช้ A, B ในการเลือกอินพุท
ทำการทดลอง • ให้ลองต่อวงจร Multiplexer และ Demultiplexer ตามรูปที่แสดงมาแล้ว
การทำงาน • ข้อมูลเข้ามาที่ IN • A และ B เป็นตัวเลือกว่าจะส่งไปออกที่ Output ตัวไหน • A และ B นี้จะนำไป Synch กับ A และ B ที่ตัว Multiplexer