멀티플렉서
• 멀티플렉서 (MUX : multiplexer) – 228page
– 복수개의 입력 선으로부터 필요한 데이터를 선택하여 하나의 출력선으로 내
보내는 회로
(b) 진리표 0 0 0 1 1 0 1 1 입력 출력 s 1 s0 F I 0 I 1 I 2 I 3 (a) 회로도 s1 s0 F I0 I1 I2 I3 (c) 논리식 3 0 1 2 0 1 1 0 1 0 0 1s
I
s
s
I
s
s
I
s
s
I
s
F
entity mux4_1 is Port ( i0 : in std_logic; i1 : in std_logic; i2 : in std_logic; i3 : in std_logic; sel : in std_logic_vector(1 downto 0); y : out std_logic); end mux4_1;architecture Behavioral of mux4_1 is begin
process (sel, i0, i1, i2, i3) begin
case sel is
when "00" => y <= i0; when "01" => y <= i1; when "10" => y <= i2; when others => y <= i3; end case;
end process; end Behavioral;
디멀티플렉서
• 디멀티플렉서 (demultiplexer)
-233 page
– 하나의 입력을 통해 들어오는 신호를 선택신호의 제어에 따라 복수개의 출력
중 하나로 내보내는 회로
(b) 진리표 0 0 0 1 1 0 1 1 입력 출력 s1 s0 D0 D1 D2 D3 I I I I 0 0 0 0 0 0 0 0 0 0 0 0 (a) 회로도s
1s
0I
D
0D
1D
2D
3 (c) 논리식I
s
s
D
I
s
s
D
I
s
s
D
I
s
s
D
0 1 3 0 1 2 0 1 1 0 1 0
entity demux1_4 isPort ( in1 : in std_logic;
sel : in std_logic_vector(1 downto 0);
d : out std_logic_vector(3 downto 0));
end demux1_4;
architecture Behavioral of demux1_4 is
begin
process (in1, sel) begin d <= "0000"; case sel is when "00" => d(0) <= in1; when "01" => d(1) <= in1; when "10" => d(2) <= in1; when others => d(3) <= in1; end case; end process; end Behavioral;