|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
程序一:
8 _* h2 P" A0 s, Wentity latch is* e) n: G n3 F/ s$ `/ F
Port ( D : in STD_LOGIC;7 _: g1 T8 Z! s1 v j& Q
ENA : in STD_LOGIC;' y# i& m" {, k1 @) E* l4 a
Q : out STD_LOGIC);3 h9 g% b& j u( i; h
end latch;5 `+ \7 \6 f* B4 v
architecture Behavioral of latch is
! e! v2 T7 p7 z SIGNAL sig_save :STD_LOGIC;/ y: Q% [7 R7 {
begin% H5 W- O, W. r3 A, a! _
PROCESS(D,ENA)
# R4 I) ], x4 ]6 g begin( Z$ D1 a7 |# P/ J: M& }$ r
IF(ENA='1') THEN: o) L! h5 R, }
SIG_SAVE<=d;, O, d* C& G4 L8 Q4 ?$ o7 N
END IF; & A2 M( A5 K0 z: j, v1 A
Q<=SIG_SAVE;0 o8 ?% |9 ^. J3 V% M* Y
! j7 {: T0 E# |$ ?) d END PROCESS;
9 K# I `' x" [, m% C. V- w3 A: t4 B8 k4 Q) w! P b5 P
end Behavioral;" p V, v+ D1 J9 X; w
程序二:
7 ~! c6 J) \! ~8 v2 B( X: e4 ` sentity latch is H5 e) J7 S; U( C$ \! X3 K
Port ( D : in STD_LOGIC;! v* |* B4 k# t0 k
ENA : in STD_LOGIC;2 Q% ~' L% r) X) c$ P: `
Q : out STD_LOGIC);
2 f8 @ m ^7 _, |, ^# |! T) Lend latch;) S' B3 g9 l& l! p8 {$ c" |6 b
architecture Behavioral of latch is" b7 t+ m: J+ S6 Z, q' f8 t
--SIGNAL sig_save :STD_LOGIC;
g1 b3 s* _+ F4 z1 n% o begin
7 k5 a! s% u4 }" n# o8 ?0 W' V! s PROCESS(D,ENA)/ ]8 H4 D* h3 x1 O
begin/ X( J: A3 w$ R2 F4 L, h
IF(ENA='1') THEN
6 r2 \2 j$ X% q4 r. \ Q<=D;1 Z) e4 y$ n4 n/ k7 |
-- SIG_SAVE<=d;5 O7 x% I( Z1 c4 E6 Z& N
END IF;
[+ b) _4 l8 x* Z, i* m1 M --Q<=SIG_SAVE;/ U5 w0 Z7 l. N V7 y
) {2 q3 b* T0 s
END PROCESS;
; W$ Z! N& ], h8 a. O; e8 v# B* r9 \6 U3 }$ D$ n
end Behavioral;( a! f" L1 g2 M& _% H3 ]
两个程序变动很少,第一个程序,Q与D的前一个状态一致,即锁存D的前一个状态,而程序二Q与D的当前值一致,为什么?? |
|