设计一个循环灯控制器,该控制器控制红、绿、黄三个发光管循环发亮。要求红发光管亮2秒,绿发光管亮3秒,黄发光管亮1秒。(假设外部提供频率为1MHz的方波信号)
library ieee;
use ieee.std_logic_1164.all;
entity loopled_tb_vhd is
end loopled_tb_vhd;
architecture rtl of loopled_tb_vhd is
component loopled
port(
CLK,CLR:IN STD_LOGIC;
Red,Green,Yellow:OUT STD_LOGIC
);
end component;
signal clr :std_logic:='0';
signal clk :std_logic:='0';
signal Red :std_logic;
signal Green :std_logic;
signal Yellow :std_logic;
begin
uut:loopled port map
(
clk=>clk,clr=>clr,Red=>Red,Green=>Green,Yellow=>Yellow
);
--clk_gen:process
--begin
-- clk <= '1' AFTER 0 ns;
clr <='1' AFTER 0 ns,
'0' AFTER 2 ns;
tb:PROCESS
BEGIN
clk<='0';
LOOP
clk<='1','0' AFTER 1 ns;
wait for 2 ns;
END LOOP;
END PROCESS;
end rtl;