แผนผังคาร์โนห์
(Karnaugh Map : KM : K-map)
<< 8.1 การดัดแปลงทฤษฎีบูลีนไปเป็นแผนผังคาร์โนห์
<< 8.2 การลดรูปฟังก์ชั่นโดยใช้ แผนผังคาร์โนห์
<< 8.3 เทอมไม่สนใจ (Don’t Care term)
<< 8.4 K-map ชนิด 6 ตัวแปร และ n ตัวแปร
การลดรูปสมการบูลีน หรือ ฟังก์ชัน ให้สั้นที่สุด เราสามารถทำได้โดยการใช้ทฤษฎีของบูลีน แต่เป็นการยากในกรณีที่มีหลายๆ
ตัวแปร การใช้แผนผังคาร์โนห์ (Karnaugh Map : KM : K-map) ช่วยในการแก้ปัญหาจะเป็นการง่ายกว่า และจะมีข้อผิดพลาด
น้อยกว่า
|
8.1 การดัดแปลงทฤษฎีบูลีนไปเป็นแผนผังคาร์โนห์
พิจารณาการลดทอนสมการลอจิกโดยใช้ทฤษฎีบูลีนของสมการต่อไปนี้
|
ทั้ง 4 กรณีที่กล่าวถึงข้างต้น จะทำการลดทอนโดยใช้ทฤษฎีบูลีนโดยตรง ซึ่งสามารถดัดแปลงไปเป็น K-mapโดยมี
หลักการดังนี้
1. ต้องเป็นสมการลอจิกที่อยู่ในรูป Canonical Sum หรือ Canonical Product เท่านั้น
2. จำนวนเทอมในกลุ่มที่จะลดทอน =
|
|
8.2 การลดรูปฟังก์ชั่นโดยใช้ แผนผังคาร์โนห์
8.2.1 K-map ชนิด 1 ตัวแปร
เราสามารถทราบจำนวน Cell ของตาราง K-map ชนิด 1 ตัวแปร ได้จากความสัมพันธ์ คือ
|
|
ตัวอย่างตาราง K-map ชนิด 1 ตัวแปร ในสภาวะมีค่าเอาต์พุตที่แตกต่างกันออกไป เราสามารถจำแนกออกได้
เป็น 4 ลักษณะด้วยกัน แสดงดังรูปที่ 8.2
|
|
จากรูปที่ 8.2 (ค) แสดงให้เห็นว่า ไม่สามารถทำการลดรูปฟังก์ชันให้ต่ำกว่านี้ได้อีก เนื่องจากในตาราง K-map มี “1”
เพียงตัวเดียว และถูกวางอยู่ใน Cell 1 ซึ่งมีค่ากำกับตำแหน่งเท่ากับ “1” (A=1) ทำให้ผลลัพธ์ที่เราได้ คือ F = A แสดงดังรูปที่ 8.3
|
|
จากรูปที่ 8.2 (ข) เราไม่สามารถทำการลดรูปฟังก์ชันนี้ได้อีกแล้ว เนื่องจากว่ามี “1” อยู่เพียงตัวเดียว โดยที่ “1” วางอยู่ใน Cell 0
มีค่ากำกับตำแหน่งเท่ากับ “0” (A = 0) ทำให้เราได้ผลลัพธ์จาก K-map นี้คือ
|
|
จากรูปที่ 8.5 จะประกอบด้วย Minterm = 1 จำนวน 2 ตัวด้วยกัน ซึ่งถูกวางอยู่ใน Cell 0 และ Cell 1 ในรูปที่ 8.5 แสดง
ให้เห็นลักษณะของการวงรอบ 2 แบบเพื่อเปรียบเทียบกัน การลดรูปฟังก์ชันในรูปที่ 8.5 (ข) เป็นการวงรอบ Minterm 1 แยกกัน
แล้วนำเอาค่าผลลัพธ์ที่ได้จาก 2 วงรอบ มาบวกกันตามรูปแบบ Canonical SOP ผลลัพธ์ที่เราได้ เกิดจากการนำเอาผลลัพธ์ทั้ง 2
วงรอบมาบวกกัน คือ
ส่วนการลดรูปฟังก์ชันในลักษณะแสดงดังรูปที่ 8.5 (ค) เราสามารถสรุปได้โดยทันทีเลยว่าผลลัพธ์เท่ากับ “1” เพราะทุก Cell
ของตาราง K-map มีค่า Minterm เป็น “1” ความแตกต่างของการลดรูปฟังก์ชันที่ยกขึ้นมาเปรียบเทียบให้เห็นดังรูปที่ 8.5(ข) และ
8.5(ค) ทำให้เราพบว่าผลลัพธ์ที่ได้จากการลดรูปฟังก์ชันนั้น ไม่ได้สิ้นสุดอยู่ที่การใช้ตาราง K-map เพราะเราจะต้องนำผลลัพธ์
แต่ละวงรอบมาพิจารณา เพื่อจัดให้อยู่ในรูปแบบ Canonical SOP แต่การลดรูปฟังก์ชันดังแสดงในรูปที่ 8.5 (ค) เราจะได้ผลลัพธ์
การลดรูปโดยการใช้ตาราง K-map อย่างแท้จริง เพราะฉะนั้น การวงรอบ เราจำเป็นอย่างยิ่งที่จะต้องวงรอบในครั้งหนึ่งๆ ให้สามารถ
ครอบ- คลุม Minterm ได้จำนวนมากที่สุด และอยู่ในกฎการวงรอบที่ถูกต้อง
|
8.2.2 K-map ชนิด 2 ตัวแปร
K-map ชนิด 2 ตัวแปรจะประกอบด้วยจำนวน Cell เท่ากับ 22 = 4 Cell พิจารณาตาราง K-map ชนิด 2 ตัวแปรได้
ดังรูปที่ 8.6
|
|
หลักการพิจารณาผลลัพธ์ของวงรอบ
1. การเปรียบเทียบค่าประจำตำแหน่งของ Cell
พิจารณารูปที่ 8.7 จะเห็นว่ามี Minterm ที่เป็น “1” อยู่ใน Cell 0 และ Cell 1 เราจะทำการวงรอบ Minterm
เหล่านี้เข้าด้วยกัน เสมือนเป็นการวงรอบ
|
|
2. การเปรียบเทียบค่ากำกับตำแหน่งของ K-map
การพิจารณาผลลัพธ์ของการวงรอบมีหลักการง่ายๆ คือ ถ้าเมื่อไหร่ที่ค่ากำกับตำแหน่งของตัวแปรในวงรอบนั้นๆ ต่างกัน
เราสามารถตัดตัวแปรนั้นทิ้งไปได้เลย จากรูปที่ 8.8 (ก) หากเราพิจารณาไปที่ตัวแปร A จะเห็นว่า ค่ากำกับตำแหน่งของ
ตัวแปร A มีค่าเป็น “0” ในส่วนของตัวแปร B จะเห็นว่ามีทั้งที่เป็น “0” และ “1” นั่นหมายความว่า วงรอบนี้ค่ากำกับ
ตำแหน่งของตัวแปร B มีค่าไม่เท่ากันจึงต้องตัดตัวแปร B ทิ้งไป ผลลัพธ์ที่เราจะได้ คือ
|
|
ขั้นตอนการลดรูปฟังก์ชัน
1. ให้พิจารณาว่า Minterm ของทุก Cell ในตาราง K-map มีค่าเป็ฯ “1” หรือ “0” หรือไม่ ถ้าหากในตาราง K-map
มีค่าเป็น “1”ทุก Cell สามารถสรุปได้ทันทีว่า ผลลัพธ์ของการลดรูปฟังก์ชันมีค่าเท่ากับ “1” และผลลัพธ์การลดรูปฟังก์ชัน
จะมีค่าเป็น “0” ถ้าหากMinterm ในทุก Cell มีค่าเท่ากับ “0”
2. ถ้าค่า Minterm ในตาราง K-map ไม่ได้เป็น “0” และ “1” ทุก Cell เราจะต้องพิจารณาต่อไปว่า เราจะทำการวงรอบ
อย่างไร เพื่อให้สามารถครอบคลุม Minterm ที่เป็น “1” ให้ได้มากที่สุด พิจารณาตัวอย่างการวงรอบ Minterm ที่เป็น
“1” ดังรูปที่ 8.8 (ข)
|
|
3. เราได้ทำการวงรอบ “1” ไป 1 วงรอบแล้ว ต่อไปก็ให้พิจารณาต่อไปว่า ยังเหลือ Minterm ที่เป็น “1” อีกหรือไม่ สำหรับ
ตัวอย่างที่ยกมาประกอบการอธิบาย ยังเหลือ “1” อยู่อีก 1 ตัว เพราะ ฉะนั้นเราจะต้องทำการวงรอบ MInterm ตัวที่เหลือ
โดยการวงรอบร่วมกับ Minterm ที่ถูกวงรอบไปแล้วในครั้งแรก เพื่อต้องการให้ผลลัพธ์ของการลดรูปมีตัวแปรน้อยที่สุด
แสดงดังรูปที่ 8.8 (ค) ผลการลดรูปในวงรอบที่ 2 โดยอาศัยการพิจารณาตามหลักการลดรูปฟังก์ชันในข้างต้น เราจะได้ผลลัพธ์
การลดรูป คือ B
|
|
4. เมื่อเราได้ดำเนินการวงรอบ Minterm ที่เป็น “1” ในตาราง K-map คตรบทุกค่าแล้ว ต่อไปจะเป็นขั้นตอนของการนำเอาผลลัพธ์
ที่ได้จากการวงรอบทั้งสองครั้ง มาทำการบวกกัน เพื่อจัดให้อยู่ในรูปแบบ Canonical SOP จากการลดรูปฟังก์ชันทั้งสองครั้ง
เราจะได้
|
ข้อควรระวัง ลักษณะการวงรอบ Minterm “1” ที่ไม่ถูกต้อง แสดงดังรูปที่ 8.9
|
ตัวอย่างที่ 8.1 การลดรูปฟังก์ชัน
|
ตัวอย่างที่ 8.2 การลดรูปฟังก์ชัน
|
8.2.3 K-map ชนิด 3 ตัวแปร
ตาราง K-map ชนิด 3 ตัวแปรจะประกอบด้วยจำนวน Cell เท่ากับ
|
|
รูปที่ 8.11 (ก) เป็นตัวอย่างตารางความจริงที่เรากำหนดค่าเอาต์พุต F ขึ้นมา เพื่อจะใช้ศึกษาวิธีการลดรูปฟังก์ชัน โดยใช้ตาราง
K-map ชนิด3 ตัวแปร เราสามารถดำเนินตามขั้นตอยเหมือนกับการลดรูปฟังก์ชันด้วยตาราง K-map ชนิด 2 ตัวแปร นั่นคือ การใส่ค่า
Minterm ที่เป็น “1” ของเอาต์พุต F ลงใน Cell ต่างๆ ของตาราง K-map ให้ทำการวงรอบ “1” ให้ได้จำนวนมากที่สุด (จำนวนของ
“1” ในแต่ละวงรอบจะมีค่าเท่ากับ
|
|
ตัวอย่างที่ 8.3
|
ตัวอย่างที่ 8.4
|
ตัวอย่างที่ 8.5
|
8.2.4 K-map ชนิด 4 ตัวแปร
K-map ชนิด 4 ตัวแปรจะประกอบด้วยจำนวน Cell เท่ากับ
|
|
ตารางความจริงในรูปที่ 8.16 เป็นการแสดงสภาวะของตัวแปร A, B, C และ D มีการกำหนด ค่าเอาต์พุต F เพื่อใช้ประกอบการ
ทำความเข้าใจการลดรูปฟังก์ชันด้วยตาราง K-map ชนิด 4 ตัวแปร เมื่อเราได้ใส่ค่า Minterm ที่เป็น “1” ลงในตาราง K-map
เรียบร้อยแล้ว ขั้นตอนต่อไปเป็นการวงรอบ Minterm ที่เป็น ”1”
|
วงรอบครั้งที่ 1
ที่เราทำการวงรอบ เป็นการวงรอบ Minterm “1” จำนวน 4 ตัวแปรด้วยกัน ผลลัพธ์ที่ได้จากการวงรอบแรกนี้ คือ CD
จากผลลัพธ์เราจะสังเกตเห็นว่า ค่ากำกับตำแหน่งของตัวแปร A มีค่าไม่เท่ากัน ส่วนค่ากำกับตำแหน่งของตัวแปร B ก็มีค่า
ไม่เท่ากันเช่นกันเป็นผลทำให้เราต้องตัดตัวแปร A และ B ทิ้งไป สำหรับผลลัพธ์จะไม่มีการ Complement เพราะค่ากำกับ
ตำแหน่งของตัวแปร C และ D มีค่าเป็น “1” ทั้งคู่ แสดงดังรูปที่ 8.16 (ค)
|
วงรอบครั้งที่ 2
เราสามารถทำการวงรอบ Minterm “1” ได้ 4 ตัวด้วยกัน เมื่อพิจารณาวงรอบเราจะสังเกตเห็นว่า ค่ากำกับตำแหน่งของตัวแปร
A มีค่าเท่ากัน จึงยังคงตัวแปร A เอาไว้ ส่วนค่ากำกับตำแหน่งของตัวแปร B มีค่าไม่เท่ากัน จึงตัดตัวแปร B ทิ้งไป ต่อไปให้มา
พิจารณาคู่ตัวแปร CD จะเห็นว่าค่ากำกับตำแหน่งของตัวแปร C มีค่าเท่ากัน เราจึงยังคงตัวแปร C เอาไว้ ส่วนตัวแปรD จะมีค่า
กำกับตำแหน่งไม่เท่ากัน เป็นผลให้ต้องตัดตัวแปร D ทิ้งไป ผลลัพธ์ของการลดรูปในวงรอบนี้ จะได้เท่ากับ AC แสดงดังรูปที่ 8.16 (ง)
|
วงรอบครั้งที่ 3
จะเป็นการวงรอบ Minterm เพียงจำนวน 2 ตัว ซึ่งอยู่ใน Cell 1 เนื่องจาก Minterm จำนวน 2 ตัวนี้ ไม่สามารถทำการวงรอบร่วมกับ
Minterm อื่นได้ จึงจำเป็นที่จะต้องทำการวงรอบ Minterm แค่ 2 ตัวเท่านั้น ผลลัพธ์ที่ได้จากการวงรอบ คือ
|
|
เมื่อเราได้ทำการวงรอบ Minterm ครบทุกตัว ต่อไปเป็นการพิจารณาผลลัพธ์ของการลดรูปของฟังก์ชันนี้ หรือการนำผลลัพธ์ จากการวงรอบในแต่ละครั้ง มาบวกกันตามรูปแบบ Canonical SOP ซึ่งเราจะได้ |
ตัวอย่างที่ 8.6
|
ตัวอย่างที่ 8.7 |
ตัวอย่างที่ 8.8
|
8.2.5 K-map ชนิด 5 ตัวแปร K-map ชนิด 5 ตัวแปรจะประกอบด้วยจำนวน Cell เท่ากับ |
|
สมการข้างบนเป็นอีกสมการหนึ่งที่สามารถชี้ชัดได้ว่า การลดรูปฟังก์ชันที่มีความสำคัญอย่างยิ่งเพราะว่าเป็นฟังก์ชันที่ยาวและมี
ตัวแปรมากการพิจารณาการลดรูปฟังก์ชันโดยอาศัยตาราง K-map ชนิด 5 ตัวแปร สามารถดำเนินการลดรูปตามขั้นตอนการลดรูปที่ได้
กล่าวมาแล้ว ซึ่งขั้นแรกสุดเราจะต้องนำค่า Minterm ที่เป็น “1” ใส่ลงในตาราง K-map แสดงดังรูปที่ 8.18
|
|
การวงรอบ Minterm ที่เป็น “1” ภายในตาราง K-map ให้พิจารณาแยกระหว่างวงรอบแต่ละ K-map โดยการคำนึงถึงลักษณะ
การวงรอบที่เหมือนกัน แสดงดังรูปที่ 8.19
|
|
ขั้นตอนต่อไปให้พิจารณาเปรียบเทียบตำแหน่งของวงริบทั้ง 2 K-map โดยการปิดค่ากำกับตำแหน่งของตัวแปร A เอาไว้ ถ้าวงรอบใดอยู่
ในตำแหน่ง เดียวกันก็สามารถทำการลดรูปร่วมกันได้ วงรอบแรกอยู่ใน Cell 2, Cell 10, Cell 18 และ Cell 26 ทำให้ได้ผลการลดรูปเท่ากับ
|
|
วงรอบต่อไปก็จะอาศัยหลักการพิจารณาเช่นเดียวกับการลดรูปในวงรอบแรก โดยการพิจารณาค่ากำกับตำแหน่งระหว่าง K-map
ทั้งสอง โดยการปิดค่ากำกับตำแหน่งของตัวแปร A เอาไว้ ผลการลดรูปในวงรอบที่ประกอบด้วย Minterm ใน Cell 7, Cell 15, Cell 23
และ Cell 31 คือ CDE แสดงดังรูปที่ 8.21
|
|
วงรอบ Minterm ใน Cell 0 และ Cell 1 ไม่สามารถวงรอบร่วมกับ Minterm ในตาราง K-map ทางขวามือ เพราะว่าใน Cell 16
และ Cell 17ไม่ม ี Minterm ที่เป็น “1” (Minterm เป็น “0”) เพราะฉะนั้นจึงดำเนินการลดรูปฟังก์ชัน เฉพาะภายในตาราง K-map
ทางซ้ายมือ ซึ่งผลการลดรูปเท่ากับ
|
ผลลัพธ์จากการลดรูปฟังก์ชันทั้ง 4 วงรอบที่ผ่านมา เราจะได้ผลลัพธ์ของการลดรูป คือ
|
ตัวอย่างที่ 8.9
|
ตัวอย่างที่ 8.10
|
ข้อควรระวัง จากตัวอย่างที่ 8.10 ลักษณะการวงรอบที่ผิด แสดงดังรูปที่ 8.23 กล่าวคือลักษณะการวงรอบร่วมทั้ง 2 วงรอบ
ไม่ได้อยู่ในตำแหน่งเดียวกันหรือวงรอบทั้งสอง ไม่เป็น Logic Adjacent กัน จึงไม่สามารถทำการวงรอบร่วมกันได้
|
|
ตัวอย่างที่ 8.11
|
8.3 เทอมไม่สนใจ (Don’t Care term)
การออกแบบวงจรดิจิตอลในบางสภาวะ เราไม่มีความจำเป็นที่จะต้องกำหนดค่าเอาต์พุตให้กับสภาวะนั้นเป็น “1” หรือ “0”
นั่นก็หมายถึงว่าในสภาวะนั้นสามารถมีค่าเอาต์พุตเป็น “1” หรือ “0” ก็ได้ เพราะฉะนั้นแล้ว เราจะแทนลักษณะเหตุการณ์เช่น
นี้ด้วยเงื่อนไข Don’t Care เพื่อเป็นประโยชน์ต่อการลดรูปฟังก์ชัน เราอาจจะกำหนด Don’t Care ให้ใช้สัญลักษณ์แทนได้
หลายอย่าง เช่น d แต่ในกรณีนี้เราจะใช้สัญลักษณ์
|
ตัวอย่างที่ 8.12
|
ในตัวอย่างที่ 8.12
|
8.4 K-map ชนิด 6 ตัวแปร และ n ตัวแปร
จากการลดรูปฟังก์ชันโดยใช้ตาราง K-map ที่ผ่านมาทั้งหมดตั้งแต่ 1 ตัวแปรถึง 5 ตัวแปร การลดรูปฟังก์ชันโดยใช้ตาราง
K-map อยู่บนพื้นฐานของการลดรูปฟังก์ชัน โดยใช้ทฤษฎีของบูลีน ในลักษณะของการแยกตัวประกอบร่วมทั้งสิ้น การจัดรูปแบบ
ของตาราง K-map โดยอาศัยความเป็น Logic Adjacent กันของแต่ละ Cell ที่อยู่ใกล้กัน เพื่อให้เกิดความง่ายต่อการลดรูป
ฟังก์ชัน เราจะสังเกตเห็นได้ว่า ค่ากำกับตำแหน่งทั้งแนวนอนและแนวตั้ง ได้มาจากการประยุกต์ รหัสเกรย์ (Gray Code) ด้วยกัน
ทั้งสิ้น เราจะนำเอาตารางของรหัสเกรย์ มาทำความเข้าใจต่อการลดรูปฟังก์ชันที่มีจำนวนตัวแปรมากขึ้นจนถึง n ตัวแปร
(n คือจำนวนเต็มบวกใดๆ)
|
|
จากตารางในรูปที่ 8.24 ค่าลำดับที่แสดงให้เห็นในตารางทั้ง 2 ได้มาจากการพิจารณา
|
|
ให้เราพิจารณาตาราง K-map จำนวน 6 ตัวแปร ดังแสดงในรูปที่ 8.25 และ 8.26 จะเห็นว่ามันได้ขยายมาจากตาราง K-map
จำนวน 2 ตัวแปร และการวงรอบเพื่อการลดรูปฟังก์ชัน ให้เราทำความเข้าใจให้จงหนักว่า จะต้องเป็น Cell ที่เป็น Logic Adjacent
กันเท่านั้น เราจะทำความเข้าใจการลดรูปฟังก์ชันในตัวอย่างที่ 8.13
|
ตัวอย่างที่ 8.13 เราจะดำเนินการลดรูปฟังก์ชันต่อไปนี้
|
วิธีทำ
จากตัวอย่างแรกของการลดรูปฟังก์ชัน นอกเหนือจากการพิจารณาความเป็น Logic Adjacent ของค่า “1”
ในแต่ละ Cell แล้ว เพื่อรักษาผลประโยชน์ของการวงรอบที่สูงสุด ในขั้นต้นเราควรพิจารณา “1” ของทั้ง 4 ส่วน
ของตาราง K-map ตัวอย่างเช่น การวงรอบ “1” ใน Cell 2, 3, 6, 7, 1011, 14, 15, 34, 35, 38, 39, 42, 43,
46, 47 เพื่อให้เหลือตัวแปรน้อยที่สุด โดยจำเป็นที่เราจะต้องกำหนดให้
|
ข้อที่ 1 ขั้นตอนที่ 1
|
ข้อที่ 3 ของตัวอย่างที่ 8.13 เป็นฟังก์ชันจำนวน 7 ตัวแปร เพราะฉะนั้นเราจะเลือกแบ่งจำนวนตัวแปรทางแนวตั้งเป็นจำนวน
4 ตัวแปร และในแนวนอนจำนวน 3 ตัวแปร ดังแสดงให้เห็นในขั้นตอนการลดรูปฟังก์ชัน การพิจารณาวงรอบ “1” ในขั้นต้น เราควร
พิจารณาร่วมกันทั้ง 8 ส่วนของตาราง K-map และ 4, 2, 1 ตามลำดับ
เมื่อเราได้ทราบถึงโครงสร้างและที่มาของตาราง K-map ตลอดจนข้อกำหนดของการวงรอบ “1” เพื่อลดรูปฟังก์ชัน คงจะ
ไม่เป็นเรื่องยากอีกแล้วสำหรับการลดรูปด้วยตาราง K-map ที่มีจำนวนตัวแปรมากๆ แต่ถึงแม้ว่าเราจะมีความเข้าใจและสามารถลดรูป
ฟังก์ชันที่มีจำนวนตัวแปรมากๆ ได้แล้วการจะนำไปสู่ประสิทธิผลอันสูงสุดของการออกแบบ มันไม่เป็นเช่นนั้น ระบบดิจิตอลมีข้อจำกัด
หลายอย่าง ที่ทำให้ตัวมันไม่สามารถเป็นระบบใหญ่ได้ ถ้าหากเราต้องการออกแบบระบบดิจิตอลที่มีความซับซ้อน และมีการจัดการด้าน
ข้อมูลจำนวนมาก คงเป็นเรื่องที่ไม่ดีแน่ ถ้าเราจะต้องใช้ระบบดิจิตอล (ระดับความเหมาะสม ไม่มีเกณฑ์ตัดสินที่ตายตัว ขึ้นอยู่กับความ
ต้องการของผู้ออกแบบ โดยอาศัยปัจจัยต่างๆ ตัดสิน เช่น ความสะดวกในการออกแบบงบประมาณ ความง่ายต่อการใช้งาน เป็นต้น
สิ่งเหล่านี้ล้วนเป็นเงื่อนไขทางการตลาดทั้งสิ้น) เราควรจะหันไปให้ความสนใจกับไมโครโปรเซสเซอร์ หรือ ไมโครคอนโทรลเลอร์
หรือ ไมโครคอมพิวเตอร์ต่อไป
|
้ ข้อที่ 2 ขั้นตอนที่ 1 ขั้นตอนที่ 2
|
ไม่มีความคิดเห็น:
แสดงความคิดเห็น