Showing posts with label 3. Карногийн тор. Show all posts
Showing posts with label 3. Карногийн тор. Show all posts

3.6. Олон гаралттай функц

Өмнөх бүх жишээ нь нэг гаралттай олон оролттой функцийг Карногийн тор ашиглан хялбарчлах тухай байсан. Тэгвэл олон гаралттай тохиолдолд хэрхэн хялбарчлах тухай авч үзье.
Жишээ нь a, b, c гэсэн 3 оролттой f, g гэсэн 2 гаралттай функцийг авч үзье. Ингээд гаралт тус бүрийн хувьд оролтын боломжит утгуудыг Карногийн тор дээр буулгая. 
Торон дээрээс f ба g фунцкуудын хувьд ab гэсэн бүлэг давхцаж байгаа харж болох ба үүнийг зурагт улаанаар, давхцахгүй байгаа бүлгийг ногооноор тэмдэглэв. f ба g функцийн хувьд давхцсан бүлэг олдож байгаа нь энд ашиглагдах 1 ширхэг AND гейтийг хэмнэх боломжийг олгож байна. Үүнийг ойлгохын тулд давхцсан бүлэг бүхий f ба g функцуудын логик хэлхээг зурахад харагдана.
Иймээс олон гаралттай фунцуудын хувьд давхцсан бүлгийг олох нь илүү чухал байна. Доорх жишээнд g функцийн улаанаар тэмдэглэгдсэн 1-ийг хажуу талын нэгтэй бүлэглэж болох ч энэ нь f функцийн 1-тэй давхцаж байгаа тул бүлэглэхгүй байх нь 1 гейтээр багасгагдсан логик хэлхээг байгуулах боломжийг олгоно.
Иймд бүлэглэх дүрмээс илүү олон гаралттай функцуудын хувьд давхцсан 1-үүдийг олох нь илүү чухал болохыг доорх жишээнээс харж болно. Доорх жишээнд улаанаар тэмдэглэгдсэн 1-үүдийг хажуу 1-тэй бүлэглэж болох ч 2 функцэд зэрэг давхцаж байгаа тул бүлэглэхгүй орхих нь илүү ашигтай байна.
Үүнийг 4 оролттой функцийн хувьд ч мөн хэрэглэж болно. Доорх жишээнд улаанаар тэмдэглэгдсэн бүлэг нь бүлэглэх дүрмийг хэдийгээр зөрчиж байгаа ч ингэж бүлэглэснээр 1 гейтийг хэмнэж байгаа тулд илүү ашигтай гэж үзнэ.
Доорх жишээнд хэдийгээр бүлгийн дүрмийг зөрчиж байгаа ч 2 гейтийг хэмнэсэн бүлэглэх аргыг үзүүлэв.
Гэхдээ 2 функцийн хувьд давхцсан 1-үүдийг олох нь зарим тохиолдолд тийм ч оновчтой бус байдгийг дараах жишээнээс харж болно. Эхний удаад бүлэглэхдээ дээр дурдсан дүрмийн дагуу бүлэглэсэн болно.

Гэвч дараах байдлаар бүлэглэхэд гейтийн тоо нэмэгдээгүй төдийгүй оролтын тоо багасаж байгаагаараа дээрх бүлгээс давуу болсон гэж үзнэ.
Одоо 4 оролттой, 3 гаралттай фунцкийг авч үзье. Энэ тохиолдолд ч гэсэн гаралт тус бүрийн хувьд байгуулсан Карногийн торон дээрээс давхацсан 1-үүдийг олж бүлэглэх нь бүлэглэх дүрмийг ашигласнаас илүү оновчтой болсныг харж болно.
Доорх жишээнд мөн 3 гаралттай функцийн хувьд хэрхэн оновчтой бүлэглэсэн байдлыг харууллаа.
don't care гаралтыг ч гэсэн тооцож давхцсан 1-үүдийг бүлэглэж болохыг доорх жишээнд мөн харуулав.

3.5. 5 ба 6 хувьсагчтай Карногийн тор

5 хувьсагчтай функцийг Карногийн 4х4 хэмжээстэй 2 торон дээр дараах байдлаар буулгана.
Жишээ нь доорх зурагт үзүүлсэн торны хувьд 2 торон дээр давхацсан 1-үүдийг хооронд нь бүлэглэж болно.
2 торон дээрх хоорондоо давхацаагүй 1-үүдийг ердийн бүлэглэх дүрмээр бүлэглэх бөгөөд 2 торон дээр давхацсан 1-үүдийг хооронд нь хэрхэн бүлэглэхийг доорх жишээнд харуулав.
Доорх жишээнд улаан ба шараар 2 торон дээр давхацсан бүлгүүдийг, ногооноор 2 торон дээр давхацаагүй бүлгүүдийг үзүүлэв.
5-аас дээш хувьсагчтай фунцкийг Карногийн торон дээр буулгаж бүлэглэхдээ олон хувьсагчтай тул don't care-ийг ашиглах нь илүү тохиромжтой. Доорх жишээнд ногооноор тор тус бүр дээрх давхацаагүй 1-үүдийг бүлэглэж харуулав.
Үүний дараа don't care-ийг ашиглаж дээрх бүлэглэгдсэн 1-үүдийг тэмдэглэж Карногийн торон дээрх тэмдэглэгээг дахин шинээр буулгавал үлдсэн 1-үүдийг бүлэглэхэд илүү хялбар болно.

Өмнөх жишээтэй адилхан don't care-ийг ашиглаж бүлэглэх жишээг ахин авч үзье. Эхлээд шууд илэрхий бүлэглэж болох 1-үүдийг бүлэглээд дараа эдгээр 1-үүдийг don't care-аар тэмдэглэж Карногийн торыг шинээр ахиж байгуулна.
Дараа нь үлдсэн 1-үүдийг don't care-тай хамтруулж бүлэглэнэ.
6 хувьсагчтай функцийг Карногийн 4х4 хэмжээстэй 4 торон дээр дараах байдлаар буулгана.
Жишээ нь доорх жишээнд 4 торон дээр давхацсан 1-үүдийг хооронд нь бүлэглэнэ.
Нэгэнт бүлэглэгдсэн 1-үүдийг don't care-аар сольж шинээр торон дээр буулгана. Ингээд үлдсэн 1-үүдийг хооронд дахин бүлэглэх замаар бүлгүүдийг үүсгэнэ.

3.4. Product of sum буюу макстерм илэрхийллийг олох

Бидний өмнөх үзсэн жишээнүүд нь sum of product буюу Булийн минтерм илэрхийллийг олох тухай үзлээ. Булийн минтерм илэрхийллийг ашиглан AND-OR хэлхээг байгуулж болдог ба AND-OR логик хэлхээг универсаль NAND логик хэлхээгээр сольж болдог тухай өмнө үзсэн.
Харин Булийн макстерм илэрхийллийг ашиглан OR-AND логик хэлхээг байгуулдаг ба OR-AND логик хэлхээг универсаль NOR логик хэлхээгээр сольж болдог.
Тэгвэл Карногийн торыг ашиглан хэрхэн Булийн макстерм илэрхийллийг олох тухай үзье.
Эхлээд f функцийн минтерм илэрхийлэл болох f=a'c'+ab'c+acd' функц өгөгдсөн байг. Үүнийг 4 хэмжээст Карногийн тор дээр дүрсэлье. Үүний дараа f-ийн гүйцээлт болох f' фунцкийг Карногийн торон дээр дүрсэлж f' фунцкийн минтерм илэрхийллийг олно. дараа нь f'-ийн гүйцээлтийг Де-Морганы теорем ашиглан олсноор f функцийн макстерм илэрхийллийг олно.


Булийн минтерм илэрхийлэлд don't care орсон тохиолдолд макстерм илэрхийллийг олох жишээг дараагийн жишээнд авч үзлээ.

3.3. Don't care-ийг ашиглах

Үнэмшлийн хүснэгтэнд don't care буюу 0 ба 1-ийн алин ч боломжтой болохыг тэмдэглэсэн х тэмдэглэгээг ашигладаг. Тэгвэл don't care-ийг Карногийн тор дээр хэрхэн буулгах болон бүлэглэх дүрмэнд don't care-ийг хэрхэн ашиглах талаар үзье.
Ингээд эхний жишээнд 3 don't care оролттой торыг авч үзье. Бүлэглэх үед don't care-ийг оруулж ч болно, шаардлагагүй бол оруулахгүй байж болно. Жишээ нь don't care-ийг ашиглан голын 4-ийг бүлэглэх боломжтой тул үүнийг ашиглана. Мөн зүүн захын 1-ийг бүлэглэхэд хажууд нь байгаа don't care оролттой хосоор нь бүлэглэх болмжтой тул ашиглана. Харин баруун дээд булангийн don't care-ийг доод 1-тэй бүлэглэж болох боловч 1 нь нэгэнт бүлэгт орсон байгаа тул шаардлагагүй.
Үүний дараагийн жишээнд don't care-ийг ашиглан хэрхэн бүлэглэж болох хувилбаруудыг харуулав. Зүүн доод булангийн don't care-ийг ашиглан 4 don't care-ийг бүлэглэж болох ч шаардлагагүй тул ашиглаагүй болно.
Дараагийн жишээнд босоо ба хэвтээ 4-ийн бүлгийг үүсгэж болно. Харин бусдыг нь бүлэглэх боломжуудыг утс тусад нь зургаар харуулав.
don't care-ийг арай өөр хэлбэрээр ашиглаж болно. Жишээ нь доорх жишээнд босоо ба хэвтээ 4-ийн бүлгийг үүсгэж болох шууд харагдаж байна.

Эдгээр 4-ийн бүлгийг don't care оролт гэж тооцоод үлдэх 1-үүдийг бүлэглэх нь бүлэглэлтийг илүү ойлгомжтой хялбар болгож өгнө.
Дээрхтэй төсөөтэй ахиад нэг жишээг үзье. Энд 4-ийн 2 бүлгийг үүсгэж болох нь шууд харагдаж байна.
Н:эгэнт бүлэглэгдсэн 1-үүдийг don't care оролт гэж үзээд үлдэх 3 нэгийг бүлэглэнэ.

3.2. Бүлэглэх дүрэм

2-оор бүлэглэх боломжтой үед бүлэглэхгүй байж болохгүй.
 Гэхдээ 2 өөр бүлэглэлд багтсан 1-үүдийг ахин бүлэглэх шаардлагагүй.
Өөрөөр хэлбэл бүлэглэж болох нөхцөлд заавал бүлэглэх боловч нэгэнт бүлэглэж байгаа 1-үүд бүгд өөр бүлэглэлд орсон тохиолдолд тэдгээрийг ахин бүлэглэх шаардлагагүй.
Дараах жишээнүүдэд улаанаар тэмдэглэгдсэн бүлгүүдийг үүсгэж болох ч тэдгээрт орсон 1-үүд нь нэгэнт өөр бүлгүүдэд багтаж байгаа тул шаардлагагүй.

Бүлэглэхдээ 4-өөр бүлэглэх боломжтой бол заавал 4-өөр бүлэглэнэ.
Доорх жишээнд хэдийгээр голын 4-ийг 4-өөр бүлэглэх боломж байгаа ч үлдсэн 1-үүдийг хосоор нь бүлэглэхэд голын 4-ийн бүлгийн бүх гишүүд дахин бүлэглэгдэж байгаа тул голын 4-ийг бүлэглэх боломжгүй байх тохиолдлыг үзүүлэв.
Харин доорх жишээнд 4-ийн 2 бүлгийг үүсгээд үлдэх 1 тус бүрийг 2 хувилбараар бүлэглэж болох хувилбаруудыг үзүүлэв.
Доорх жишээний эхний 4 хос бүлэглэл нь зайлшгүй бөгөөд үлдэх 3 нэгийг бүлэглэж болох хувилбаруудыг үзүүлэв.

Мөн жишээнд голын ба 4 булангийн 1-үүдийг 4-өөр бүлэглэх боломжтой ба үлдэх нэгүүдийг бүлэглэж болох хувилбаруудыг харууллаа.
Өөрөөр бүлэглэх боломж байгаа хэдий ч шинээр үүсгэсэн бүлэглэлд орсон нэгүүд нь өөр бүлэгт орохоор бол оновчтой нэг л байдлаар бүлэглэж болохыг доорх жишээгээр харууллаа.
Доорх жишээнд ногооноор үзүүлсэн бүлэг нь тогтвортой ба үлдэх өнгийн бүлэглэлүүд нь хувилбарууд ба хоосон байгаа 1-ийг 2 янзаар 2-ын бүлэгт багтааж болохыг харуулав.
Энэ жишээнд бүх 1-үүдийг нэг бол ногооноор эсвэл улаанаар 2 янзаар бүгдийг нь бүлэглэж болохыг харууллаа.
Сүүлийн жишээнд улаан ба ногооноор 2 янзаар үндсэн бүлэглэлийг үүсгэх бөгөөд үлдэх 1-ийг 3 хэлбэрээр 4-ийн бүлэгт хамруулж болохыг харуулсан болно.

3.1. K-map бюу Карногийн тор

Карногийн тор буюу K-map-ийг ашиглан 2-оос 6 хүртэл хувьсагчтай функцийг хялбарчилна.
2 хувьсагчтай функцийг Карногийн тор дээр буулгах

 З хувьсагчтай функцийг Карногийн тор дээр буулгахдаа 4х2 хэмжээстэй торыг ашиглаж буулгана.

З хувьсагчтай функцийг хосоор нь бүлэглэхдээ зэргэлдээ байгаа хосыг болон захын 2 хосыг бүлэглэнэ.

3 хувьсагчтай функцийг Карногийн торон дээр буулгахдаа 00, 01, 11, 10 гэсэн дарааллаар торыг дугаарлана. Хэрэв 00, 01, 10, 11 гэсэн дарааллаар торыг дугаарлавал хосоор бүлэглэх дүрмийг зөрчинө.
3 хувьсагчтай функцийг 2х4 хэмжээстэй босоо торон дээр буулгаж болно. Босоо торон дээр буулгасан тохиолдолд хосоор бүлэглэх дүрмийг ашиглан зэргэлдээ ба захын хосуудыг бүлэглэнэ.
4 хувьсагчтай функцийг Карногийн тор дээр буулгахдаа 4х4 хэмжээстэй торыг ашиглах ба бүлэглэх дүрмийг зөрчихгүйн тулд 00, 01, 11, 10 дарааллаар торыг дугаарлана.
4 хувьсагчтай Карно тор дээр зэргэлдээ ба захын хосыг бүлэглэж болно.
Үүнээс гадна босоо, хэвтээ, зэргэлдээ, захын 4-үүдийг бүлэглэж болно.
Зэргэлдээ ба захын 8-ыг мөн бүлэглэж болно.