2011-10-17 33 views
4

如何思考如何以抽象的方式設計數字邏輯芯片?如何思考數字電路設計

我目前正在研究「計算系統的元素」我在第一章中,我從Nand開始實現了以下大門。

而且

或者

異或

複用器

DMUX

16位不

16位和

16位或者

16位複用

8路或者

現在我卡試圖實現16位四路複用。

我試過把真值表轉換成規範的表示法,但是我最終得到了一個巨大的混亂。使用規範表示對「較小」芯片運行良好,但現在非常複雜。我怎麼能考慮把一個「複雜」的芯片放在一起,而不是僅僅把隨機芯片混合在一起?

編輯:

我真的不困惑的複用四路的16位部分。我計劃在一個數組中使用一堆四路Mux。 4路複用器是我卡住的部分。

回答

4

讓我們從兩個輸入多路複用器開始。

兩個輸入A & B和一個選擇線S.當A或B爲'1'且選擇線選擇該輸入時輸出爲'1',否則爲'0'。因此,要麼:

A=1 and S=0 
B=1 and S=1 

編寫了這一點蓋茨:

(A and (not S)) or (B and S) 

展開多達4路(S現在是2位):

A = 1 and S=0 
B = 1 and S=1 
C = 1 and S=2 
D = 1 and S=3 

(A and (not S1) and (not S0)) or 
(B and (not S1) and ( S0)) or 
(C and ( S1) and (not S0)) or 
(D and ( S1) and ( S0)) 

我們可以看到一個模式正在出現的是,每個輸入都與一些「使能術語」進行AND(與),從而將輸入切換爲開或關。由於啓用條款是獨佔的(只有一條在任何時候都可以),所以效果是將輸出切換到所需的輸入。

這可以擴展到任何尺寸的MUX。

+0

甜!這正是我所期待的。 –

2

我讚賞你的「從底部開始並着手」方法,它將幫助你理解隨着時間的推移,越來越複雜的電路所涉及的內容。

也許值得指出的是,一旦你在更大的範圍內來到designing digital logic chips,它通常在更高的水平上完成這些天。通常使用硬件描述語言(通常是Verilog或VHDL),或者甚至在某些領域使用C來部分芯片。

一旦您在該級別工作,您很少會爲MUX編寫代碼,但是在您編寫文本描述時要知道您要求綜合工具爲您生成一個文本描述非常有用,而且你可以掌握它很可能是「大」(大門)的方式。另一點需要注意的是,如果您轉向使用FPGA進行設計,您的基本構建模塊不是NAND門,而是4或6個輸入查詢表(帶有其他各種輔助模塊)。這改變了你的觀點,因爲的任何功能的4(或6)輸入成本相同...

+0

謝謝,我不久前完成了SICP。第5章似乎掩蓋了一些較低層次的細節,所以我拿起了另一本書來幫助理解這一切。 –