|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
程序一:
" P# q- g# {0 @1 ~! uentity latch is
4 T) f; }9 v2 X% Y8 z1 u Port ( D : in STD_LOGIC;+ X8 f/ {( [/ u' a" h
ENA : in STD_LOGIC;
4 C; {2 E( I# }( z6 h. H Q : out STD_LOGIC);5 [! ^6 I( n6 t4 q7 S1 b4 g
end latch;
7 ?% E" R( t3 `9 P. \architecture Behavioral of latch is
/ ]; }4 B0 t4 _. w9 \* r SIGNAL sig_save :STD_LOGIC;6 [, w5 v( u7 L- Q
begin% K6 s! X o* x0 |1 ] O9 w% L
PROCESS(D,ENA)4 r6 M/ m4 }" S, F
begin
- \0 w( y2 F6 E1 _/ x IF(ENA='1') THEN
! H. T. y7 f" i$ S SIG_SAVE<=d;, e! Y G* K/ P: S6 m, c7 s
END IF; ! i* W: N: _) }
Q<=SIG_SAVE;9 ?. b% \2 n5 b5 N
' `* O# `) h" u! Z END PROCESS;
/ l* l3 A. k3 B5 ~) @1 [. j, l- D% g! P k& d. L
end Behavioral;# G5 r1 z4 [% G% v! F9 W" S
程序二:
! |6 `' q5 u( t5 ^0 {" p" eentity latch is
1 A( o; O/ i- b2 H$ o Port ( D : in STD_LOGIC;0 ^' }1 J5 `& h2 k+ S+ i
ENA : in STD_LOGIC;
+ X# k& N g, @8 g Q : out STD_LOGIC);
. R1 i2 n( F4 ?" I4 vend latch;' k: y+ B# M. o6 L, i
architecture Behavioral of latch is
* d9 l0 b4 v9 Z --SIGNAL sig_save :STD_LOGIC;
; C* Z) a* J- X7 J begin) M) C" c2 I" N5 H" W1 [4 I2 B
PROCESS(D,ENA)
) ^- ]9 D2 S; X. l1 h7 x3 W$ W$ } begin
: p5 ?$ H) s# g9 }; J3 I, v) g IF(ENA='1') THEN
) Z; H. q3 l" m/ V/ v Q<=D;
' r; S! O/ b" S! Z- J0 ~ -- SIG_SAVE<=d;
" q+ d, {; Q2 Q END IF; & i, X; ^- R3 O
--Q<=SIG_SAVE;6 m( h& h. k: [- ~4 Z. _
7 G5 U0 D y u& v( o END PROCESS;' D* S) _/ j& ^; A. O0 g
8 _+ R/ z6 i: n; \& yend Behavioral;
2 i& N* ~9 y+ Z5 l两个程序变动很少,第一个程序,Q与D的前一个状态一致,即锁存D的前一个状态,而程序二Q与D的当前值一致,为什么?? |
|