형들 vhdl을 이용해서 segment 로 학번출력해야대는데 좀와주세요!
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
USE IEEE.std_logic_arith.all;
USE IEEE.std_logic_unsigned.all;
ENTITY test1029 IS
port(
clk, clear : in std_logic;
--data_in : in std_logic_vector( 3 downto 0 );
seg_data_out: out std_logic_vector ( 6 downto 0));
end test1029;
architecture main of test1029 is
signal data_in : std_logic_vector( 3 downto 0 );
begin
process (clear, clk)
variable cnt : std_logic_vector( 3 downto 0 );
begin
if clear = '1' then
cnt := "0000";
elsif clk'event and clk = '1' then
cnt := cnt + '1';
end if;
data_in <= cnt;
end process;
process(data_in)
begin
if data_in = "0000" then --0
seg_data_out <= "1111110";
elsif data_in = "0001" then --1
seg_data_out <= "0110000";
elsif data_in = "0010" then --2
seg_data_out <= "1101101";
elsif data_in = "0011" then --3
seg_data_out <= "1111001";
elsif data_in = "0100" then --4
seg_data_out <= "0110011";
elsif data_in = "0101" then --5
seg_data_out <= "1011011";
elsif data_in = "0110" then --6
seg_data_out <= "1011111";
elsif data_in = "0111" then --7
seg_data_out <= "1110000";
elsif data_in = "1000" then --8
seg_data_out <= "1111111";
elsif data_in = "1001" then --9
seg_data_out <= "1110011";
elsif data_in = "1010" then --A
seg_data_out <= "1110111";
elsif data_in = "1011" then --b
seg_data_out <= "0011111";
elsif data_in = "1100" then --C
seg_data_out <= "1001110";
elsif data_in = "1101" then --d
seg_data_out <= "0111101";
elsif data_in = "1110" then --E
seg_data_out <= "1001111";
elsif data_in = "1111" then --F
seg_data_out <= "1000111";
END IF;
END PROCESS;
END main;
이런 vhdl 소스가있는데 이소스 구동원리가 뭘나태는지도 해석해줄수잇나요
대충 이런식의 코드를 이용해서 학번을 나타내는거같은데 진수표현으로따지면 3이면 0011 일거고
좀 귀찮으시더라도 요거 이용해서 segment 활용해서 학번이 나올수있게 출력하는방법좀 도와주세요 부탁드립니다.
tkdwns3133@naver.com 요기로 완성하신소스코드좀 보내주세요 저진짜 절실해요..이거 이번주에 과제거든요..
힘드시면소스만 보내주셔도 대고 시간되시면 위에파일 소스를 해석하는법?이라도 알려주세요..
vhdl 어렵지.. 지금은 기억도 잘 안나서 도와줄껀 없네
IO 맵핑도 못할 견적이군