EDA按键控制一盏灯闪烁和常亮

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL ;
USE IEEE.STD_LOGIC_UNSIGNED.ALL ;
ENTITY debounce IS
PORT(CLK, reset : IN STD_LOGIC; --200Hz
din : IN STD_LOGIC; --按键输入
DOUT : OUT STD_LOGIC
); --键盘数据输出
END ENTITY debounce;
ARCHITECTURE RTL OF debounce IS
type state is (s0,s1,s2);
SIGNAL pre_s, next_s: state;
BEGIN
P0:PROCESS( reset, clk )
BEGIN
if reset = '1' then
pre_s<= s0;
elsifclk'event and clk='1' then
pre_s<= next_s;
end if;
END PROCESS P0;
P1:PROCESS( pre_s, next_s, din )
BEGIN
casepre_s is
when s0 =>dout<= '1';
if din = '1' then
next_s<= s0;
else
next_s<= s1;
end if;
when s1 =>dout<= '1';
if din = '1' then
next_s<= s0;
else
next_s<= s2;
end if;
when s2 =>dout<= '0';
if din = '1' then
next_s<= s0;
else
next_s<= s2;
end case;
END PROCESS P1;
END RTL;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; entity led is
port(
key,ret,cp:instd_logic;
led1:outstd_logic
);
end led;
ARCHITECTURE or1 OF led IS
type state is (s0,s1);
signalpre,nex:state;
signal clk1:std_logic;
begin
clk1<=key;
process (clk1,ret)
begin
if(ret='1')then
pre<=s0;
elsif(clk1'event and clk1= '1')then pre<=nex;
end if;
end process;
process(pre,cp)
begin
case pre is
when s0=>led1<='0';
nex<=s1;
when s1=>led1<=cp;
nex<=s0;
end case;
end process;
end or1;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; entity dc is
clk,ret,key:instd_logic;
ledout:outstd_logic
);
end entity;
architecture or1 of dc is
componentfpq
PORT(clk_in:IN STD_LOGIC;
clk200hz:OUT STD_LOGIC;
clk1s: OUT STD_LOGIC);
end component;
component debounce
PORT(CLK, reset : IN STD_LOGIC;
din : IN STD_LOGIC;
DOUT : OUT STD_LOGIC
);
end component;
component led
port(
key,ret,cp:instd_logic;
led1:outstd_logic
);
end component;
signal hz2,hz:std_logic;
signalrett:std_logic;
signalselt:STD_LOGIC;
begin
U1:fpq port map (clk,hz2,hz);
U2:debounce port map(hz2,ret,key,selt);
U3:led port map(selt,ret,hz,ledout);
end or1;。

相关文档
最新文档