본문내용
fter 100 ns;
X <= "000",
"000" after 100 ns,
"001" after 200 ns,
"010" after 300 ns,
"011" after 400 ns,
"100" after 500 ns,
"101" after 600 ns,
"110" after 700 ns,
"111" after 800 ns;
end tb_behave;
Data flow Modeling 파형
83 Encoder
Behavioral modeling
Library IEEE;
use IEEE.std_logic_1164.all;
entity en_83 is
port(
EN : in std_logic;
D : in std_logic_vector(7 downto 0);
X : out std_logic_vector(2 downto 0)
);
end en_83;
architecture behave_en of en_83 is
begin
process(EN, D)
begin
if EN = '0' then
X <= "000";
else
case D is
when "00000001" =>
X <= "000";
when "00000010" =>
X <= "001";
when "00000100" =>
X <= "010";
when "00001000" =>
X <= "011";
when "00010000" =>
X <= "100";
when "00100000" =>
X <= "101";
when "01000000" =>
X <= "110";
when "10000000" =>
X <= "111";
when others =>
X <= "000";
end case;
end if;
end process;
end behave_en;
Behavioral modeling Test Bench
Library IEEE;
use IEEE.std_logic_1164.all;
entity tb_de_38d is
end tb_de_38d;
architecture tb_behave of tb_de_38d is
signal EN : std_logic;
signal X : std_logic_vector(2 downto 0);
signal D : std_logic_vector(7 downto 0);
component de_38d
port(
EN : in std_logic;
X : in std_logic_vector(2 downto 0);
D : out std_logic_vector(7 downto 0)
);
end component;
begin
u0 : de_38d
port map(EN, X, D);
EN <= '0', '1' after 100 ns;
X <= "000",
"000" after 100 ns,
"001" after 200 ns,
"010" after 300 ns,
"011" after 400 ns,
"100" after 500 ns,
"101" after 600 ns,
"110" after 700 ns,
"111" after 800 ns;
end tb_behave;
Encoder 파형
《38 Decoder》
- Behavioral modeling 구현 시 case문에서 when others 반드시 사용 (문법미숙)
- Behavioral modeling Test Bench에서 signal 변수와 component문의 port 변수의 순서 가 달라 오류 발생
- Data flow Modeling, Behavioral modeling과 마찬가지로 입력 X 3bit 출력 D 8bit를 사용해 변수(자릿수)를 이용해 구현
《83 Encoder》
- Decoder와 반대 개념으로 입ㆍ출력을 바꾸어 구현
X <= "000",
"000" after 100 ns,
"001" after 200 ns,
"010" after 300 ns,
"011" after 400 ns,
"100" after 500 ns,
"101" after 600 ns,
"110" after 700 ns,
"111" after 800 ns;
end tb_behave;
Data flow Modeling 파형
83 Encoder
Behavioral modeling
Library IEEE;
use IEEE.std_logic_1164.all;
entity en_83 is
port(
EN : in std_logic;
D : in std_logic_vector(7 downto 0);
X : out std_logic_vector(2 downto 0)
);
end en_83;
architecture behave_en of en_83 is
begin
process(EN, D)
begin
if EN = '0' then
X <= "000";
else
case D is
when "00000001" =>
X <= "000";
when "00000010" =>
X <= "001";
when "00000100" =>
X <= "010";
when "00001000" =>
X <= "011";
when "00010000" =>
X <= "100";
when "00100000" =>
X <= "101";
when "01000000" =>
X <= "110";
when "10000000" =>
X <= "111";
when others =>
X <= "000";
end case;
end if;
end process;
end behave_en;
Behavioral modeling Test Bench
Library IEEE;
use IEEE.std_logic_1164.all;
entity tb_de_38d is
end tb_de_38d;
architecture tb_behave of tb_de_38d is
signal EN : std_logic;
signal X : std_logic_vector(2 downto 0);
signal D : std_logic_vector(7 downto 0);
component de_38d
port(
EN : in std_logic;
X : in std_logic_vector(2 downto 0);
D : out std_logic_vector(7 downto 0)
);
end component;
begin
u0 : de_38d
port map(EN, X, D);
EN <= '0', '1' after 100 ns;
X <= "000",
"000" after 100 ns,
"001" after 200 ns,
"010" after 300 ns,
"011" after 400 ns,
"100" after 500 ns,
"101" after 600 ns,
"110" after 700 ns,
"111" after 800 ns;
end tb_behave;
Encoder 파형
《38 Decoder》
- Behavioral modeling 구현 시 case문에서 when others 반드시 사용 (문법미숙)
- Behavioral modeling Test Bench에서 signal 변수와 component문의 port 변수의 순서 가 달라 오류 발생
- Data flow Modeling, Behavioral modeling과 마찬가지로 입력 X 3bit 출력 D 8bit를 사용해 변수(자릿수)를 이용해 구현
《83 Encoder》
- Decoder와 반대 개념으로 입ㆍ출력을 바꾸어 구현
추천자료
초3수학지도안-8.길이와 시간(약안)
연습문제 1,2장 and 3*8 디코더 구현하기
ARENA를 이용한 시뮬레이션(4장연습문제,4-3,5,8,9,17)
3학년-수학-8.길이와시간)문제해결학습
프로그래밍 실습 8.3
초등1) <수학과 교수·학습 과정안 {세안} (26~27쪽/ 익힘 28쪽 : 3/8)> 2. 9까지의 수 - 9까...
초등1) <(수학)과 교수-학습 과정안 {중안} (82~83쪽 (3/8)차시)> 5. 비교하기
초등6) <(과학)과 교수-학습 과정안 {중안} 과학 p.80-81, 실관 p.58 ( 3/8 )차시> 7. 전자석...
물리실험예비보고서3-8