|
Key function
- ^1 N" B" X" F0 d2 J X0 E+ L按鍵開關 第一次 on時,開始計時。& e+ P5 S6 q$ q7 i
第二次 on時,停止計時。
6 D) G. `3 `+ ]& o2 E 第三次 on時,開始計時。
1 o* }7 R6 d7 Q5 Y0 @) M+ } ?, X. ~未 synthesis,請自行 debug........
) ]" P! i" L4 R8 n5 ]2 e: v! {
LIBRARY ieee; 3 g) E, [/ |" q; W5 m) t8 S$ o; U/ l
USE ieee.std_logic_1164.all;
4 B) {1 A; f& v- g' b& E( h ]USE ieee.std_logic_unsigned.all;* z2 p8 p# ]0 t( G5 J4 C
ENTITY KeyFunction IS
1 u8 C0 \# Z5 E7 G! Y3 O3 o% K PORT(CLK,
( T5 B2 n0 V1 x1 E* }* w+ M8 V' ` PB,: L, b# c6 {& _/ v" ^" e% l3 q
RSTn : IN STD_LOGIC;! H, _# h( B! j
START_COUNT,$ p, C, ^, O- L: I% }5 a& B& z- y
PAUSE- `, l8 n: ^$ F. \
: OUT STD_LOGIC
" U: m$ {+ T5 j5 r: f );
$ m+ v- H: k* a+ ]6 |/ l. E% @1 \. b. HEND KeyFunction;
* S5 Q# C# M1 ^- f. P0 ^# G0 RARCHITECTURE arc OF debounce_v IS
\& A/ `# ^- T: J7 C/ ZSIGNAL currently_state : STD_LOGIC_VECTOR(2 downto 0); L, A# t1 N5 }: ^4 r$ K/ E
signal pb_reg,debounce_counting,debounce_end : std_logic;
4 N! @" ^, j! P3 Ysignal debounce_counter : STD_LOGIC_VECTOR(15 downto 0);
% H; f$ p) a, X% F! X j) j V8 f: K6 t
constant debounce_time : STD_LOGIC_VECTOR(15 downto 0):= "0000000000000000";( k! w6 W' l6 m6 @; o4 `
BEGIN
5 n( s" n* X( _+ Z
& g: l. @( x% w--============================================================
7 ~) g! k& m. `1 n-- get key push state. ( active high)9 T1 i- ?8 W3 x: }- C! T
--============================================================0 ?% k7 l! c$ N* J8 }! ]! D
PROCESS (CLK,RSTn,PB,pb_reg,debounce_counting,debounce_end)
3 q1 z: d& @# \0 J BEGIN) q, w# g' P+ y$ S) a
if( RSTn = '0') then" {; `- d+ w0 `/ f% ~
pb_reg <= 1;7 l$ Z$ n2 {7 Q( B: x( {& N
elsif( CLK 'event and CLK ='1')then2 u& O0 E6 |4 M- u; l
if( PB='1' and pb_reg ='0')then5 [- ]3 K; m5 F3 D! o
debounce_counting <= '1';
( E1 d4 t; m: b) M3 N elsif( debounce_end = '1')then0 z3 P" m, k4 V9 m A0 Z
debounce_counting <= '0';
2 v: c& h- J$ j else) e" x" f! K- G9 a3 s$ j
debounce_counting <= debounce_counting;
4 k% r! ~" y$ x' Q6 `' W& f C$ x# o end if;
1 j, O7 v- J4 j% v7 m pb_reg <= PB;
2 C: U' p& l5 \ end if; |
|