|
Key function
" P( \! t; k+ u按鍵開關 第一次 on時,開始計時。6 G2 ]2 l8 e9 s
第二次 on時,停止計時。: y, N6 b/ N6 M% A7 {" a# {
第三次 on時,開始計時。
$ r" D1 i/ |1 J5 g2 z未 synthesis,請自行 debug........
9 }, L. u, M: L: y( s* S3 }
' p2 C3 L# _/ p6 z4 }( B8 m0 [LIBRARY ieee;
3 f6 y. {. U/ o# Y7 s( Q/ E' G" JUSE ieee.std_logic_1164.all;8 F `1 Q9 R. Y2 g1 J1 l2 U
USE ieee.std_logic_unsigned.all;& Y. a: k- Y5 o0 z C- {
ENTITY KeyFunction IS
0 a) |4 x8 u0 l: G0 [- T% Q# s PORT(CLK,
+ p& x8 |1 v F3 L PB,; ^( {; e- s* p& h: q& y! D
RSTn : IN STD_LOGIC;$ v& v$ U |" [6 I+ q8 j
START_COUNT,4 [4 B( N4 ?3 c8 b; M
PAUSE
, ?, d, L0 O% f : OUT STD_LOGIC
& b) \# N2 \6 {$ b* ?! L7 t );
1 }( f; H3 e, I2 g2 C0 K2 _; j' CEND KeyFunction;
4 |- j, L2 M* w2 o+ m9 RARCHITECTURE arc OF debounce_v IS
4 X( J, v$ \% W( aSIGNAL currently_state : STD_LOGIC_VECTOR(2 downto 0);% D, a* R$ v2 v* p% m
signal pb_reg,debounce_counting,debounce_end : std_logic;1 \+ N! S9 Q4 {$ Y
signal debounce_counter : STD_LOGIC_VECTOR(15 downto 0);! D6 E" [ C1 Y `9 d
# x! {) j9 R" J: Mconstant debounce_time : STD_LOGIC_VECTOR(15 downto 0):= "0000000000000000";
7 v5 P8 _& y+ h& ]6 ?$ `% ?BEGIN: _( D6 y3 c$ q* z$ K
9 u$ r" z) s7 M6 t$ a3 @--============================================================
) }' u* g0 r4 \6 D: v-- get key push state. ( active high)
7 F, H$ n# { k, @! l$ F# d3 O- y--============================================================
; H* p4 j2 s* ?8 h/ r- d; a PROCESS (CLK,RSTn,PB,pb_reg,debounce_counting,debounce_end)+ k1 j2 j4 B9 I% u$ {
BEGIN- ^ u% N9 K# X: `8 U% i& g
if( RSTn = '0') then$ z/ p" X( m# Q0 _6 @2 J
pb_reg <= 1;' A2 v; f0 @/ e' I0 P+ s
elsif( CLK 'event and CLK ='1')then
3 f8 c$ _9 d$ A0 I( c/ f) j) H if( PB='1' and pb_reg ='0')then% I5 n7 U: g$ k3 T; b- {
debounce_counting <= '1';$ M I8 v( R8 B6 _3 N
elsif( debounce_end = '1')then0 q0 `9 M. U: m2 }# o. ^
debounce_counting <= '0'; / \( K) r" N' N$ {. h
else
1 I' B1 |. b! G debounce_counting <= debounce_counting;
! ^* E* G' C6 W2 k9 Y5 X( a end if;
( q5 G5 o/ M, q. `/ C1 R pb_reg <= PB; # V' t9 y* C4 ?+ q
end if; |
|