HDLBits (76) — 四個變量
本題鏈接:
https://hdlbits.01xz.net/wiki/Kmap4
實現(xiàn)下面卡諾圖描述的電路。

在編碼之前,嘗試用和的乘積和乘積的形式盡量簡化卡諾圖。我們不能檢查出你已經(jīng)將卡諾圖的至最簡。但是我們可以檢查你的輸出結果是否正確,是否可以成功把一個卡諾圖轉換成一個電路。

題目
提示:
對于此函數(shù),更改任何一個輸入的值總是會反轉輸出。它是一個簡單的邏輯函數(shù),但不能很容易地用SOP或POS形式表示。

答案

輸出波形


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