HDLBits (79) — 卡諾圖
本題鏈接:
https://hdlbits.01xz.net/wiki/Exams/2012_q1g
考慮下面卡諾圖中表示的函數(shù) f。實(shí)現(xiàn)這個(gè)功能。
(原試題要求函數(shù)的簡(jiǎn)化 SOP 和 POS 形式。)


題目
提示:
注意卡諾圖中x[4:1]輸入位的順序。

答案

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