任何参加数字设计课程的学生都将在早期学习多路复用器(muxes)。在华盛顿州立大学,学生在EE214学习mux。EE214是电气或计算机工程专业的学生通常在第一或第二学年学习的一门课程,内容包括入门级FPGA设计。
FPGA设计的一大部分是使用设计中的逻辑块。使用逻辑块,您可以将您的设计划分,而不是尝试在一次拍摄中实现所有内容。在没有较小块的情况下设计就像尝试设计没有像制动系统或发动机一样的子系统的汽车。大约一半的路程通过课程有一个项目涵盖各种基本逻辑块,包括Muxes和多路分解器(Demuxes)。mux是一个更识别的逻辑块之一,仅仅是因为其框图。
该框图允许用户使用多路复用器设计大型设计,而不必担心其内部的逻辑。他们只需要担心它的作用。那么它是做什么的呢?
考虑多路复用器最简单的方法是,它是一个输入选择器。基于您应用的S输入的选择代码,它将只将一个输入连接到输出。对于更正式的定义,我提供了一个真值表。真值表显示了电路中每一个可能的输入组合的所有可能的输出。
你也可以把多路复用器想象成一个总机。你是输出Y,而操作者是多路复用器。根据您给操作符的扩展(S输入),您将被连接到一个不同的人(I输入)。
对于那些有编码背景的人来说,在代码中可能会更好地理解它。多路复用器是由case语句构建的。在Verilog中,多路复用器是这样的:
那么什么是双人舞呢?你可以把demux看成是mux的对立面。它没有将四个输入中的一个路由到一个输出,而是接受一个输入并将其路由到四个输出中的一个。这是一个双人舞的框图。
信号EN是您试图传递的输入,I0和I1为您想要传递给它的输出创建选择代码。如果你想把1传递给Y1。然后你需要保持EN在1的高度,并传递一个0到I1,一个1到I0。在二进制中,01等于1,因此,如果您想选择一个输出,请将二进制值传递给I输入。
为了澄清一下,下面是deux的真值表:
如果你想看一个在行动的多聚体,你可以访问learn.blog.digilentinc.com然后尝试多路复用器的猜谜游戏(使用Uno32)和简单通信系统(使用FPGA)项目。
