แผนผังคาร์นอจ์และวงจรคอมบิเนชั่น
ในการลดรูปสมการบูลีนด้วยทฤษฎีบทต่าง ๆ นั้น ในสมการบางสมการเราสามารถลดรูปได้อย่างไม่ยากเย็นนัก แต่ในสมการบางลักษณะจำเป็นต้องใช้ประสบการณ์ในการมองสมการเนื่องจากอาจจะต้องมีการใช้เทอมต่าง ๆ ร่วมกัน หรืออาจต้องสร้างเทอมขึ้นมาเพิ่มเติม จึงจะลอรูปสมการให้สั้นที่สุดได้ จึงมีผู้คิดค้นวิธีการลดรูปสมการโดยการปรับปรุงตารางความจริงเป็นตารางลักษณะเฉพาะของตนขึ้นมาใหม่ ซึ่งผู้คิดค้นคนแรกคือ วิทช์ (Veitch) และถูกดัดแปลงโดยคาร์นอจ์ (Karnaugh) ซึ่งเรียกวิธีการนี้ว่า แผนภาพวิทช์ (Veitch diagram) หรือนิยมเรียกกันว่า คาร์นอจ์แม็พ (Karnaugh map)
คาร์นอจ์แม็พ (Karnaugh map)
แผนผังคาร์นอจ์ จะเป็นรูปแบบหนึ่งของตารางความจริง โดยจะมีลักษณะของพื้นผิวลักษณะเป็นทรงกลม แต่ในการเขียนจะเขียนเป็นแผนภาพที่ประกอบด้วยสี่เหลี่ยมจัตุรัสหลาย ๆ ช่อง โดยมีจำนวนช่องเท่ากับ 2n ช่อง โดย n คือจำนวนตัวแปรในฟังก์ชั่น สี่เหลี่ยมแต่ละช่องจะแทนตารางความจริงในหนึ่งแถว ซึ่งอาจจะเป็น mimterm หรือmaxterm หนึ่งเทอมก็ได้ แล้วแต่การพิจารณาของเรา ซึ่งค่าที่จะปรากฏอยู่ในช่องสี่เหลี่ยมต่าง ๆ ก็คือ ส่วนที่เป็น output ของวงจรลอจิกที่ต้องการนั่นเอง โดยมีการกำหนดค่า input ของตัวแปรในแนวต่าง ๆ บริเวณนอกตาราง
คาร์นอจ์แม็พ 2 ตัวแปร
คาร์นอจ์แม็พ 2 ตัวแปร จะประกอบด้วยช่องของสี่เหลี่ยมจัตุรัสต่าง ๆ จำนวน 22 ช่อง หรือ 4 ช่อง แต่ละช่องจะแทนเทอมต่าง ๆ ในรูปแบบของ minterm หรือ maxterm ซึ่งมีลักษณะของแผนภาพดังที่แสดงในรูปที่ 5.1 ซึ่งจะเห็นว่า แผนภาพคาร์นอจ์นั้น ในแนวคอลัมน์ (column) จะกำหนดค่าตัวแปร input ของ A ส่วนในแนวของแถว(row) จะกำหนดค่าตัวแปร input ของ B โดยในรูปที่ 5.2 จะแสดงการแทนค่าของตัวแปรในรูปแบบของ minterm และ maxterm
รูปที่ 5.1 คาร์นอจ์แม็พ 2 ตัวแปร
รูปที่ 5.2 แสดงค่าของตัวแปรในคาร์นอจ์แม็พ
คาร์นอจ์แม็พ 3 ตัวแปร
คาร์นอจ์แม็พ 3 ตัวแปร จะประกอบด้วยช่องของสี่เหลี่ยมจัตุรัสต่าง ๆ จำนวน 23 ช่อง หรือ 8 ช่อง แต่ละช่องจะแทนเทอมต่าง ๆ ในรูปแบบของ minterm หรือ maxterm เช่นกัน ซึ่งมีลักษณะของแผนภาพดังที่แสดงในรูปที่ 5.3 แต่จะในส่วนของการกำหนดค่าตัวแปรในแนวคอลัมน์หรือแนวแถว จะมีหนึ่งแนวที่จะต้องแทนค่าของตัวแปรมากกว่า 1 ตัวแปร ซึ่งจะสังเกตเห็นว่าแนวที่มีการแทนตัวแปรมากกว่า 1 ตัวแปรจะมีการเรียงค่าที่ไม่เป็นไปตามเลขฐานสอง แต่จะเป็นการเรียงค่าในลักษณะของรหัสเกรย์ คือ 00, 01, 11, 10
รูปที่ 5.3 คาร์นอจ์แม็พ 3 ตัวแปร
คาร์นอจ์แม็พ 4 ตัวแปร
คาร์นอจ์แม็พ 4 ตัวแปร จะประกอบด้วยช่องของสี่เหลี่ยมจัตุรัสต่าง ๆ จำนวน 24 ช่อง หรือ 16 ช่อง แต่ละช่องจะแทนเทอมต่าง ๆ ในรูปแบบของ minterm หรือ maxterm เช่นกัน ซึ่งมีลักษณะของแผนภาพดังที่แสดงในรูปที่ 5.4 ซึ่งในส่วนของการกำหนดค่าตัวแปรในแนวคอลัมน์หรือแนวแถว จะต้องแทนค่าของตัวแปรมากกว่า 1 ตัวแปร โดยจะมีการเรียงค่าของตัวแปรในแนวต่าง ๆ ตามลักษณะของรหัสเกรย์ คือ 00, 01, 11, 10 เช่นกัน
รูปที่ 5.4 คาร์นอจ์แม็พ 4 ตัวแปร
การใช้คาร์นอจ์แม็พในการลดรูปสมการบูลีน
การใช้คาร์นอจ์แม็พในการลดรูปสมการบูลีนนั้น มีหลักสำคัญดังนี้
1) เขียนตารางของคาร์นอจ์แม็พตามจำนวนของตัวแปร
2) ตัดสินใจเลือกว่าจะใช้เทอมในลักษณะของ minterm หรือ maxterm
3) ใส่ค่าของ output ลงในช่องต่าง ๆ ของคาร์นอจ์แม็พ โดยถ้าต้องการพิจารณาแบบ minterm ให้ใส่เฉพาะช่องที่เป็น 1 แต่ถ้าต้องการพิจารณาแบบ maxterm ให้ใส่เฉพาะช่องที่เป็น 0
4) จับกลุ่มช่องที่อยู่ติดกันในลักษณะประชิด (Looping) เฉพาะช่องที่เราสนใจ โดยในแต่ละกลุ่มจะต้องมีสมาชิกในกลุ่มที่ติดกันจำนวน 2 n ช่อง คือ 1 , 2 , 4 , 8 , 16 ช่อง โดยพยายามให้ในแต่ละกลุ่มมีสมาชิกมากที่สุด สมาชิกของช่องใดที่เข้ากลุ่มแล้วสามารถเป็นสมาชิกของกลุ่มอื่นได้อีก
5) ดำเนินการหาผลลัพธ์ของในแต่ละกลุ่ม โดยในกลุ่มให้พิจารณาตัวแปรของแต่ละช่องของสมาชิกว่ามีตัวแปรซ้ำกันทุกช่องหรือไม่ ตัวแปรใดที่มีซ้ำกันทุกช่องก็จะเป็นคำตอบของกลุ่มนั้น ๆ โดยกลุ่มยิ่งใหญ่จะเหลือตัวแปรน้อยกว่า นั่นคือ กลุ่มที่มีสมาชิกจำนวน 2n ช่อง ตัวแปรจะถูกตัดไป n ตัว
ตัวอย่างที่ 1 จงลดรูปสมการต่อไปนี้
ก)
ข)
วิธีทำ
ก)
\
ข)
\
Don’t care term
ในการออกแบบวงจรลอจิกจากตารางความจริงที่ต้องการในบางครั้ง อาจจะมีการใช้อินพุตไม่ครบทุกแถวของตารางความจริง เช่นในกรณีที่อินพุตเป็นรหัส BCD ที่ใช้แทนเลขฐานสิบ จะเห็นง่าจำเป็นต้องใช้อินพุตจำนวน 4 บิต ซึ่งสามารถแทนจำนวนแถวทั้งหมดได้ 16 แถว แต่ในกรณีนี้เป็นรหัส BCD จะต้องการอินพุตที่เป็นได้เพียง 10แถวนั่นเอง ฉะนั้นอินพุตอื่น ๆ ที่ไม่เป็นรหัส BCD จะต้องควบคุมไม่ให้เกิดขึ้นซึ่งจะได้ศึกษากันต่อไป ส่วนเอาท์พุตของสถานะอินพุตที่ไม่ต้องการให้เกิดขึ้น เราสามารถนำมาใช้ช่วยในการลดรูปสมการบูลีนได้ โดยจะช่วยในการจับกลุ่มของสมาชิกในลูปต่าง ๆ ของคาร์นอจ์แม็พให้ใหญ่ขึ้นได้ เนื่องจากเอาท์พุตต่าง ๆ เหล่านี้ จะให้เป็นลอจิก “0”หรือ “1” ก็ได้ไม่มีผลต่อภาพโดยรวมซึ่งเป็นงานที่ต้องการ ซึ่งเอาท์พุตที่เป็นเอาท์พุตในลักษณะนี้เราเรียกว่า Don’t care term ซึ่งสามารถเขียนแทนด้วย d หรือ x
ตัวอย่างที่ 5.2 จงเขียน Logic Diagram จาก Truth table ต่อไปนี้
INPUT
BCD-8421
|
OUTPUT
| |||
A
|
B
|
C
|
D
|
F
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
0
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
1
|
วิธีทำ
นำค่าต่าง ๆ จากตารางความจริงมาเขียนแผนผังคาร์นอจ์ได้ดังนี้
วงจรลอจิกหลายเอาต์พุต
ในการออกแบบวงจรลอจิกในบางกรณีจำเป็นที่ต้องการเอาต์พุตมากกว่าหนึ่งเอาต์พุตแต่ใช้ตัวแปรที่เป็นอินพุตชุดเดียวกัน ตัวอย่างของวงจรในลักษณะนี้ที่เห็นได้ชัดเจนที่สุดได้แก่ วงจรลอจิกที่ทำหน้าที่เปลี่ยนรหัสต่าง ๆ จากรหัสชนิดหนึ่งเป็นรหัสอีกชนิดหนึ่ง ซึ่งในการออกแบบให้แยกคิดทีละเอาต์พุต ซึ่งจะได้สมการบูลีนตามจำนวนของเอาต์พุต จากนั้นนำสมการบูลีนที่ได้ของแต่ละเอาต์พุตมาเขียนเป็น Logic Diagram ซึ่งต่อเข้ากับอินพุตชุดเดียวกัน
BY
http://kampol.htc.ac.th/web1/subject/digital_tech/sheet/digit5.htm
ไม่มีความคิดเห็น:
แสดงความคิดเห็น