意义
多路复用器将接收的复合数据流,依照信道分离数据,并将它们送到对应的输出线上,故称为解多路复用器。
实际生活中,使用多路复用器可使多路数据信息共享一路信道,能充分地利用通信信道的容量,大大降低系统的成本。
举个例子:对于一对电话线来说,它的通信频带一般在100kHz以上,而每一路电话信号的频带一般限制在4kHz以下。此时,信道的容量远大于一路电话的信息传送量。
逻辑电路原理
多路复用器能将 N 个输入通道的数据复用到一个输出通道上。以4选 1 多路复用器为例。
结构与真值表
通过改变A与B的值,就能输出端F到底输出D1,D2,D3,D4中的哪个值。
逻辑电路
实现代码
4 选1 多路复用器的实现代码
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity MUX4_1 is
Port ( c0 : in STD_LOGIC;
c1 : in STD_LOGIC;
c2 : in STD_LOGIC;
c3 : in STD_LOGIC;
s : in STD_LOGIC_VECTOR (1 downto 0);
z : out STD_LOGIC);
end MUX4_1;
architecture Behavioral of MUX4_1 is
begin
process(s) --if 语句描述
begin
if(s="00") then z<=c0;
elsif(s="01") then z<=c1;
elsif(s="10") then z<=c2;
else z<=c3;
end if;
end process;
--process(s) --case 语句描述
--begin
-- case s is
-- when "00" =>z<=c0;
-- when "01" =>z<=c1;
-- when "10" =>z<=c2;
-- when others =>z<=c3;
-- end case;
--end process;
end Behavioral;
参考资料
https://wiki.dzsc.com/4133.html