基于VHDL红绿灯的设计(最好原创不要百度)

2019-03-25 09:22发布

               谢谢各位帮忙!加急 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
ws131d
2019-03-26 04:34
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity xiaoba10 is
port(
    clk:in std_logic;
--    co  :out std_logic;
    led7s1 : out std_logic_vector(7 downto 0);
    led7s2 : out std_logic_vector(7 downto 0);
    led7s3 : out std_logic_vector(7 downto 0)
    );
end xiaoba10;
architecture a of xiaoba10 is
signal m : std_logic_vector(3 downto 0);
signal n : std_logic_vector(3 downto 0);
signal b : std_logic_vector(24 downto 0);
--signal led:std_logic_vector(15 downto 0);
begin
process(clk)
begin
if clk' event and clk='1' then
b<=b+1;
if b>="1001100010010110100000000" then
   b<="0000000000000000000000000";
   m<=m-1;
--  co<='0';
--elsif clk'event and clk='1' then
--  co<='1';
   
if m<="0000" then
   m<="1001";
   n<=n+1;
--   co<='1';
end if;
end if;
end if;
end process;

process(m)
begin
case m is
when "0000"=>led7s3<="00000000";
when "0001"=>led7s3<="00000110";
when "0010"=>led7s3<="01011011";
when "0011"=>led7s3<="01001111";
when "0100"=>led7s3<="01100110";
when "0101"=>led7s3<="01101101";
when "0110"=>led7s3<="01111101";
when "0111"=>led7s3<="00000111";
when "1000"=>led7s3<="01111111";
when "1001"=>led7s3<="01101111";

when others=>null;
end case;
end process;
process(n)
begin
case n is
when "0000"=>led7s1<="00000110";led7s2<="00000110";
when "0001"=>led7s1<="00110000";led7s2<="00110000";
when "0010"=>led7s1<="00001000";led7s2<="00001000";
when "0011"=>led7s1<="01000000";led7s2<="01000000";
when "0100"=>led7s1<="00000001";led7s2<="00000001";
when "0101"=>led7s1<="01011100";led7s2<="01011100";
when "0110"=>led7s1<="01100011";led7s2<="01100011";--
when "0111"=>led7s1<="00000110";led7s2<="00000110";
when "1000"=>led7s1<="00110000";led7s2<="00110000";
when "1001"=>led7s1<="00001000";led7s2<="00001000";
when "1010"=>led7s1<="01000000";led7s2<="01000000";
when "1011"=>led7s1<="00000001";led7s2<="00000001";
when "1100"=>led7s1<="01011100";led7s2<="01011100";
when "1101"=>led7s1<="01100011";led7s2<="01100011";
when "1110"=>led7s1<="01111111";led7s2<="01111111";
when "1111"=>led7s1<="01100011";led7s2<="00000000";

when others=>null;
end case;
end process;
end a;

一周热门 更多>