HDLBits (78) — 卡諾圖
本題鏈接:
https://hdlbits.01xz.net/wiki/Exams/m2014_q3
考慮下面卡諾圖中表示的函數(shù) f。

實現(xiàn)這個功能。d的取值無所謂,可以選擇任何你認(rèn)為方便的值。

題目

答案

在邏輯代數(shù)中,卡諾圖(Karnaugh map)是真值表的變形,它可以將有n個變量的邏輯函數(shù)的2的n次方個最小項組織在給定的長方形表格中,同時為相鄰最小項(相鄰與項)運用鄰接律化簡提供了直觀的圖形工具。但是,如果需要處理的邏輯函數(shù)的自變量較多(有五個或更多的時候,此時有些項就很難圈了),那么卡諾圖的行列數(shù)將迅速增加,使圖形更加復(fù)雜。
如果表達(dá)式為最小項表達(dá)式,則可直接填入卡諾圖
如表達(dá)式不是最小項表達(dá)式,但是“與—或表達(dá)式”,可將其先化成最小項表達(dá)式,再填入卡諾圖。也可直接填入。
合并相鄰的最小項,即根據(jù)下述原則畫圈
盡量畫大圈,但每個圈內(nèi)只能含有2的n次方(n=0,1,2,3……)個相鄰項。要特別注意對邊相鄰性和四角相鄰性。
圈的個數(shù)盡量少。
卡諾圖中所有取值為1的方格均要被圈過,即不能漏下取值為1的最小項。
在新畫的包圍圈中至少要含有1個未被圈過的1方格,否則該包圍圈是多余的。
寫出化簡后的表達(dá)式。每一個圈寫一個最簡與項,規(guī)則是,取值為l的變量用原變量表示,取值為0的變量用反變量表示,將這些變量相與。然后將所有與項進(jìn)行邏輯加,即得最簡與—或表達(dá)式。
在進(jìn)行化簡時,如果用圖中真值為0的項更方便,可以用他們來處理,方法和真值取1時一樣,只是結(jié)果要再做一次求反。
參考內(nèi)容:
卡諾圖?|?維基百科:
https://zh.m.wikipedia.org/zh-hans/%E5%8D%A1%E8%AF%BA%E5%9B%BE