VHDL
조합회로 - Multiplexer(Mux) 4x1,8x1
전자자연인
2021. 6. 8. 21:56
반응형
▶Multiplexer - 멀티플렉서(MUX)란 n bit개의 선택선의 조합에 의해 2^n개의 입력선 중에서
하나를 선택하여 출력선에 연결시켜주는 회로이다.

▶4x1 VHDL 동작적모델링 IF문사용

4x1 mux - 동작적모델링(behavioral)으로 if문 사용하여 서술한 VHDL
▶4x1 Mux - dataflow VHDL

dataflow - 논리식을 그대로 대입 (편함)

dataflow - when~else 구문 사용 ( 병행기술문으로 process밖에서 사용 ↔ case~when문은 동작적 모델링으로 process내에서 사용

● dataflow 선택문은 기타조건에서 when others문대신 "11"을 사용해도 되지만, 합성기에 따라 다를 수 있으므로, '-'(don't care)나 null문 사용하면 논리 최적화에 유리하게 만들어주면 좋음!
▶4x1 mux 결과 시뮬레이션



8x1 mux
▶8x1 mux dataflow vhdl
ibrary ieee;
use ieee.std_logic_1164.all;
entity eightMux is -- eightMux에 대한 포트 설정
Port ( I : in std_logic_vector(7 downto 0); -- I는 8비트의 입력로직벡터이나 7부터 0으로 내림차순으로 정렬 I7 I6 I5 I4 I3 I2 I1 I0
S : in std_logic_vector( 2 downto 0); --S는 3비트의 입력로직벡터이나 2부터 0으로 내림차순으로 정렬 S2 S1 S0
Y : out std_logic); -- Y는 출력로직
end eightMux;
architecture Dataflow of eightMux is --eightMux에대한 자료흐름적 구조
begin
Y <= I(7) when S = "111" else
I(6) when S = "110" else
I(5) when S = "101" else
I(4) when S = "100" else
I(3) when S = "011" else
I(2) when S = "010" else
I(1) when S = "001" else
I(0);
end Dataflow;
▶8x1 mux 시뮬레이션

반응형