วันอังคารที่ 1 กันยายน พ.ศ. 2558

Digital Weekly Jurnal#4 :: KARNAUGH MAPS

      ในเรื่องการยุบวงจร Logic Gates นั้น ซึ่งจาก Block ที่แล้วนั้นได้รู้จักกับ Boolean Expression แล้ว ซึ่งถ้าคนที่แม่นทางคณิตศาสตร์ก็สามารถนำวิธีนี้ไปใช้ยุบวงจรได้  แต่เนื่องด้วยความซับซ้อนส่วนบุคคลนั้นจะทำให้เราได้รู้จักการยุบวงจรอีกหนึ่งวิธีซึ่งก็คือ Karnaugh Maps.

       Karnaugh Maps
           เป็นการเขียน Output ในรูปแบบตาราง Matrix เพื่อให้ดูง่ายต่อการลดรูปวงจร แถวยังรวดเร็วด้วย
       การใส่ค่า Truth Table ลง K-map.
         - มุมซ้ายของตาราง กำหนดให้เป็นช่องของ A แล้วไล่ 0 1 ลงมา
         - บนหัวตารางเป็นของช่อง B ใสเลข 0 1 เรียงไปทางขวา
          - นั่งเทียบผล Output ว่าตรงกันช่องไหน แล้วเขียนลงไป
           - จากนั้นก็ทำการ วงกลม เลข '1' (กรณีทำ SOP) หรือเลข '0' (กรณีทำ POS) ที่อยู่ติดกันเฉพาที่อยู่ในด้าน บน - ล่าง - ซ้าย - ขวา เท่านั้น (ห้ามวงเฉียงหรือวงแบบโดนัทเด็ดขาด)

       - การวงต้องวงให้ครอบคลุมจำนวน 2^n โดยไม่มีเลข '0' (กรณีทำ SOP) หรือเลข '1' (กรณีทำ POS) อยู่ด้วย
กรณีทำ K-map 3 Input.
         คราวนี้ตารางมีหน้าตาเปลี่ยนไปเป็นแบบ 2*3 แล้ว (ไม่ใช่ 3*3 นะแจ๊ะ) การเขียนตารางเพื่อไล่เขียน Output นั้น ต้องมีฝั่งใดฝั่งหนึ่งมี 2 ตัวแปร(เพื่อนรัก)อยู่ด้วยกัน และอีกฝั่งก็มีเพียงตัวแปรเดียวเหมือนเดิม จะเขียนได้เป็น (A กับ BC)หรือ(AB กับC) แบบนี้ แต่ การเรียงเลขบนตาราง K-map นั้นจะเรียงจาก 00 -> 01 -> 11 -> 10 ทำไม ?? ทำไมมันไม่เรียงตาม Binary ทำไม TT
แล้วอะไรคือ Gray Code ???
คือรหัสที่แต่ละค่าเปลี่ยนแปลงไป จะมีค่าต่างจากค่อก่อนหน้า 1 bit เสมอ 
Decimal
Binary
Gray Code
0
0000
0000
1
0001
0001
2
0010
0011
3
0011
0010
4
0100
0110
5
0101
0111
     
     เป็นรหัสตัวเลขที่ไม่เหมาะแก่การนำไปคำนวณ แต่มีข้อดีคือโอกาสเกิด error ในการส่งข้อมูลจะลดลง ซึ่ง Gray Code ถูกนำมาใช้ใน K-map เพื่อช่วยทำให้ Boolean ที่ร่วมกันมาอยู่ในช่องที่ติดกัน
                 เกร็ดความรู้เกี่ยวกับ Gray Code.
                ขั้นตอนการแปลงเลขฐานสอง เป็น รหัสเกรย์
            1.) เริ่มจากบิตแรกซึ่งถือว่ามีนัยสำคัญมากที่สุด (MSB) ดึงมาไว้เป็นบิตแรกเช่นเดิม
            2.) นำบิตแรกไปบวกกับบิตตัวที่ 2
            3.) นำบิตตัวที่ 2 ไปบวกกับบิตตัวที่ 3
            4.) นำบิตตัวที่ 3 ไปบวกกับบิตตัวที่ 4 ไปเรื่อยๆจนหมด ผลบวกที่เราได้ ก็คือ Gray Code เช่น
                   . Binary________1110011001
                   . Gray Code_____1001010101
                ขั้นตอนการแปลงจากรหัสเกรย์ เป็นเลขฐานสอง
            มีหลักคล้ายๆกับ การแปลงเลข Binary ให้เป็น Gray Code โดยเริ่มต้นจาก MSB เช่นเดียวกัน นั่นคือ
           1.) MSB ของเลข Binary จะมีค่าเหมือนกับ MSB ของ Gray Code
           2.) นำ MSB ของเลข Binary บวกกับบิตที่ 2 (นับจาก MSB) ของ Gray Code ผลบวกที่ได้คือ บิตที่ 2 ของเลข Binary
           3.) บิตที่ 2 ของเลข Binary บวกกับบิตที่ 3 ของ Gray Code ผลบวกที่ได้คือ บิตที่ 3 ของเลข Binary
           4.) บวกกันเช่นนี้ไปเรื่อยๆจนหมด เช่น
                 . Gray Code_______1110111010
                 . Binary__________10110100011
        เอาหล่ะ พอหอมปากหอมคอกับ Gray Code กับแล้ว กลับมาสู่เรื่องของ K-Map แบบ 3 input อีกครั้งเถอะนะ.
ตัวอย่างการเขียน K-map แบบ 3 Input
Hint :: คราวนี้ ตารางของเรานั้นสามารถม้วนเข้าหากันเพื่อให้วงกลมนั้นมันเชื่อมต่อกันได้ด้วยนะ
คราวนี้ลองมาเขียน K-map ของตัวอย่างข้างบนกันเถอะ
จะเห็นว่า มันช่างง่ายและดูดีกว่านั่งไล่ Boolean Expression แล้วไปเข้า Boolean Algieba ชะอีกเมื่อเปรียบเที่ยบ
 
K-map แบบ 4 ตัวแปร
              การเขียนตารางก็เหมือนแบบ 3 input แต่เป็นแบบ 4*4 และทั้งทางซ้ายและบัวบนมีตัวแปร 2 ตัวและไล่รหัส Gray Code เหมือนเดิม
 
       Hint :: คราวนี้ ตารางของเรานั้นสามารถพับเข้าหากันเพื่อให้วงกลมนั้นมันเชื่อมต่อกันได้ด้วยนะ
เช่นกันนั้น เราสามารถทำในรูปของ POS ได้เช่นกันดังที่กล่าวไว้แล้วในข้างต้น
Don't care Term.
            กรณีที่ Output ของ State หรือเงื่อนไขของ Input นั้น ไม่ส่งผลใดๆต่อการทำงานของระบบ ไม่ว่า Output นั้นจะให้ค่าเป็น '0' หรือ '1' ก็ตาม
             ลองมาดู CASE ของ Don't care term กันบ้างดีกว่า
 CASE ไฟแสดงความเร็วในการปั่นจักรยาน
 Truth Table ของวงจรแสดงไฟ
 ทำ K-Map ของแต่ละ Output
 แปลงเป็น Digital logic circuit.
 เรื่อง Don't care บางกรณีก็คิดได้ ถ้ามันส่งผลให้ได้ Gate Minimize ก็ควรนำมันไปคำนวณด้วย แต่ถ้ามันไม่ได้ช่วย ก็ควรละทิ้งมันไป อิอิ  
K - Map กรณี 5 ตัวแปร.
      - ลักษณะจะเป็นตาราง 4*8 ที่มีเส้นคั่นอยู่ตรงกลาง
      - ฝั่งหนึ่งมีตัวแปร 2 ตัว อีกฝั่งมีตัวแปร 3 ตัว เรียงรหัส gray code
      - มองโดยรวมแล้วจะเป็นเหมือนขนมชั้นที่มีแค่ 2 ชั้นเท่านั้น
K - Map 6 ตัวแปร.
      - ลักษณะจะเป็นตาราง 8*8 ที่มีเส้นคั่นอยู่ตรงระหว่างกลาง
      - มีตัวแปรฝั่งละ 3 ตัว เรียงรหัส gray code
      - มองโดยรวมแล้วจะเป็นเหมือนขนมชั้นที่มีอยู่ 4 ชั้นด้วยกัน
      - ซับซ้อนสุดๆๆ
คำแนะนำในการแปลงวงจร Logic Gate. 
    - 1-2 ตัวแปรแนะนำ Boolean Algrbra
    - 3-4 ตัวแปรแนะนำ K - Maps.
    - 5-6 ตัวแปรอาจจะ powerful ใช้ K-map หรือ Computer ก็ได้
    - มากกว่า 7 ตัวแปร ใช้ Computer คำนวณเถอะนะ...
     ในปัจจุบันการลดรูป Logic โดยใช้คอมพิวเตอร์นั้นก็กำลังนิยมมาก ซึ่งผู้พัฒนา Software นั้นก็ต้องเชี่ยวชาญเรื่องการลดวงจรโดยใช้มืออย่างถ่องแท้แน่นอน
     แนะนำโปรแกรมลดรูปวงจร Logic Friday ใช้งานง่ายเพียงแค่ปลายนิ้วกด Enter เท่านั้น ดาวน์โหลดโล้ด 
**** หมายเหตุ เรื่องเกี่ยวกับ DeMorgan's Theorems นั้นผมขอลงไว้ที่ลิ้งของ Week 3 แล้วครับ****  คลิ๊กที่ตรงนี้^^
ปัญหาที่เกิดขึ้นจากบทเรียนนี้
   - เรียนครั้งแรกยังเข้าใจอยู่ครับ แต่พอขึ้น 3 Input เริ่มสับสนแล้วครับว่าจะจับประเด็นเขียนตารางลง Output อย่างไร
   - ที่สับสนยิ่งกว่านั้นคือ การวงตัวเลข 1 นั้น ที่มันสามารถพับ หรือ ม้วนได้ ยิ่งทำให้ช่วงแรกๆดูยากแต่พอได้ลองทำจริงแล้ว เข้าใจขึ้นมาบ้าง และดู output เข้าใจมากขึ้น

ไม่มีความคิดเห็น:

แสดงความคิดเห็น