Multiplexer 설계
Contents Library 함수를 이용한 Adder & comparator Decoder : 복호기 Encoder : 부호기 Multiplexer(2x1) : 다중화기 CASE문 사용 If-then-else문 사용 실습내용 8x1 Multiplexer
Library 함수를 이용한 Adder & comparator library IEEE; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_signed.all; entity lib_add_cmp is port( x, y : in std_logic_vector( 3 downto 0 ); sum : out std_logic_vector( 3 downto 0 ); cmp : out std_logic ); end entity lib_add_cmp; architecture Behavioral of lib_add_cmp is signal in_cmp : std_logic; begin sum <= x + y; cmp <= in_cmp; process( x, y ) if( x > y ) then in_cmp <= '1'; else in_cmp <= '0'; end if; end process; end architecture Behavioral;
Library 함수를 이용한 Adder & comparator
Decoder 부호화된 정보를 복호화하는 데 사용 N bit 2진 code => 2n개 서로 다른 정보 입력이 3개인 신호에 따라서 0,1,2,3,4,5,6,7이라는 8개의 출력이 있으며,1개만 활성화가 된다.
Encoder Decoder의 역(inverse) 산술을 수행. 2n개 이하의 입력선과 n개의 출력선. 입력신호를 특정한 코드로 변환하는 회로.
멀티플렉서(Multiplexer) 소수의 채널 또는 선로에 다수의 정보단위를 전송하고자 할 때 이용 멀티플렉서의 크기는 입력선의 수 2n과 단일 출력선에 의해 규정 n개의 선택선을 포함 1 2 3 4 4(22)개의 디지털 입력신호 한 선의 출력 2개의 선택선이 필요
Technology-mapped netlist (0.35um) 멀티플렉서(Multiplexer) Block Diagram과 Truth Table I0 I1 O S 2x1 MUX 입력 출력 2(21)개의 입력이 있으므로 1개의 선택선 필요 선택 출력 S0 O I0 1 I1 Technology-mapped netlist (0.35um)
멀티플렉서(Multiplexer) Module Simulation entity mux2 is port( i : in std_logic_vector( 1 downto 0 ); s : in std_logic; o : out std_logic ); end entity mux2; architecture Behavioral of mux2 is begin o <= i( 0 ) when s = '0' else i( 1 ); end architecture Behavioral;
Case 구문 vs. if-then-else 구분 process( sel, i0, i1, i2, i3 ) begin if( sel = “00” ) then o <= i0; elsif( sel = “01” ) then o <= i1; eslif( sel = “10” ) then o <= i2; else o <= i3; end if; end process; I3 I2 I1 I0 O sel sel=“10” sel=“01” sel=“00”
Case 구문 vs. if-then-else 구분 process( sel, i0, i1, i2, i3 ) begin case sel is when “00” => o <= i0; when “01” => o <= i1; when “10” => o <= i2; when others => o <= i3; end case; end process; I0 sel I1 I2 I3 2 o
멀티플렉서(Multiplexer) 실습내용 2-x1 MUX 7개를 사용하여 8x1 MUX설계 선택 출력 S2S1S0 O 000 001 I1 010 I2 011 I3 100 I4 101 I5 110 I6 111 I7
멀티플렉서(Multiplexer) Entity entity mux8 is 2x1 mux를 사용하여 8x1 mux를 구성할 것 Component/port map 구문 사용 entity mux8 is port( i : in std_logic_vector( 7 downto 0 ); s : in std_logic_vector( 2 downto 0 ); o : out std_logic ); end entity mux8;
멀티플렉서(Multiplexer) Simulation 결과