組合邏輯電路的設(shè)計(jì)任務(wù)是根據(jù)給定的邏輯功能,求出可實(shí)現(xiàn)該邏輯功能的最合理組 合電路。理解組合邏輯電路的設(shè)計(jì)概念應(yīng)該分兩個(gè)層次:(1)設(shè)計(jì)的電路在功能上是完整的,能夠滿足所有設(shè)計(jì)要求;(2)考慮到成本和設(shè)計(jì)復(fù)雜度,設(shè)計(jì)的電路應(yīng)該是最簡單的,設(shè)計(jì)最優(yōu)化是設(shè)計(jì)人員必須努力達(dá)到的目標(biāo)。
在設(shè)計(jì)組合邏輯電路時(shí),首先需要對實(shí)際問題進(jìn)行邏輯抽象,列出真值表,建立起邏輯模型;然后利用代數(shù)法或卡諾圖法簡化邏輯函數(shù),找到最簡或最合理的函數(shù)表達(dá)式;根據(jù)簡化的邏輯函數(shù)畫出邏輯圖,并驗(yàn)證電路的功能完整性。設(shè)計(jì)過程中還應(yīng)該考慮到一些實(shí)際的工程問題,如被選門電路的驅(qū)動(dòng)能力、扇出系數(shù)是否足夠,信號傳遞延時(shí)是否合乎要求等。組合電路的基本設(shè)計(jì)步驟可用圖來表示。
組合邏輯電路的特點(diǎn)及設(shè)計(jì)時(shí)的注意事項(xiàng)
①組合邏輯電路的輸出具有立即性,即輸入發(fā)生變化時(shí),輸出立即變化。(實(shí)際電路中還要考慮器件和導(dǎo)線產(chǎn)生的延時(shí))。
②組合邏輯電路設(shè)計(jì)時(shí)應(yīng)盡量避免直接或間接的反饋,以免出現(xiàn)不確定的狀態(tài)或形成振蕩。如右圖設(shè)計(jì)的基本觸發(fā)器,當(dāng)輸入~s、~r從“00”變?yōu)椤?1”時(shí),無法確定q和~q的值。
③組合邏輯電路容易出現(xiàn)“毛刺”,這是由于電路“競爭-冒險(xiǎn)”產(chǎn)生的。如圖所示,圖中與門的兩個(gè)輸入分別由信號 a 經(jīng)過不同路徑傳遞而來。按照理想情況分 析,電路輸出端應(yīng)該始終為 l=a ·~a =0。考慮到信號在邏輯門中的傳輸延遲,~a 到達(dá)與門輸入端的時(shí)間始終落后于 a。圖(b)的波形顯示,信號 a的四次變化都產(chǎn)生了競爭。但這四次競爭引起的結(jié)果是不一樣的。第一次和第三次競爭造 成輸出錯(cuò)誤,第二次和第四次競爭則沒有造成輸出錯(cuò)誤。換言之,只有第一次和第三次競爭引起了冒險(xiǎn),產(chǎn)生了尖峰干擾。
由于“毛刺”的影響,應(yīng)避免使用組合邏輯電路直接產(chǎn)生時(shí)鐘信號,也應(yīng)避免將組合邏輯電路的輸出作為另一個(gè)電路的異步控制信號。如右圖,本意是設(shè)計(jì)一個(gè)計(jì)數(shù)范圍為“0~5”的六進(jìn)制計(jì)數(shù)器,即輸出qd、qc、qb、qa從5“0101”變到6“0110”時(shí),與門輸出“1”,控制“clr”異步復(fù)位到“0000”,但是由于輸出從3“0011”變到4“0100”時(shí),qc先于qb從“0”變到“1”,導(dǎo)致短暫的“0111”出現(xiàn),使與門輸出“1”,引起復(fù)位,從而使實(shí)際的電路計(jì)數(shù)范圍為“0~3”,與設(shè)計(jì)的初衷相悖。
④用vhdl描述組合邏輯電路時(shí),所有的輸入信號都應(yīng)放在敏感信號表中。
⑤用if語句和case語句描述電路分支時(shí),一定要列舉出所有輸入狀態(tài)(一般在最后加上“else”或“when others”分支),否則在綜合時(shí)將引入latch,使電路輸出出現(xiàn)延時(shí)。