2011-10-17 36 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章似乎掩盖了一些较低层次的细节,所以我拿起了另一本书来帮助理解这一切。 –