EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
原代码如下: LIBRARY IEEE;0 D& r2 X5 \8 D7 a4 Q6 l: R1 L
USE IEEE.STD_LOGIC_1164.ALL;1 B1 J( \# ^2 F( O$ I/ |
ENTITY bio_buffer IS
8 B8 w: z$ l; I& p4 V2 CPORT(a,b:INOUT STD_LOGIC;* D4 L$ r. y U% l5 _, @- L% I2 z
en,dr :IN STD_LOGIC
7 N4 G9 [" H7 o+ b! I" V% h ); END ENTITY; ARCHITECTURE behaver OF bio_buffer IS
. P P( M$ J) PSIGNAL aout: STD_LOGIC;# t" n* L! P, D' E
SIGNAL bout: STD_LOGIC;+ i+ I- v4 q* ]$ b0 A) ~' O
BEGIN* v4 l; w! I8 W$ w9 z$ }' x7 J
PROCESS(a,dr,en) $ l+ }1 F( u+ M9 F
BEGIN
$ o$ o- \/ g' y( p2 V7 l0 s& ^ IF((en='0')AND(dr='1')) THEN bout<=a;* S6 _# f5 E0 _- t+ h
ELSE bout<='Z';
1 w0 z' N9 S0 o8 {( t K0 J6 q END IF;
! h- [ T3 v: L b<=bout;
$ n; x% Q b% f END PROCESS;. {% T) r _; w* r
PROCESS(b,dr,en) " a$ g8 b* T7 P o1 l
BEGIN+ P; |& T+ O5 W- j& t; {8 H
IF((en='0')AND(dr='0'))THEN aout<=b;( L6 @; Z. t. l9 T- c6 q/ Q
ELSE aout<='Z';
+ x' W1 Y" c& F; m3 H END IF;
* E9 J9 _. \7 k2 j! Q4 a5 l a<=aout;) e/ T& h- l: \0 P* `
END PROCESS;& \8 ^3 T& P; }
END ARCHITECTURE;9 l0 Z. J; d2 E0 ?9 Z6 f
仿真结果如下: 可以看到在输入信号a改变后,用以接手输入信号值的bout赋值正确,同时也有写b<=bout这条语句,为什么b信号始终为高阻状态,求大神解答。
1 x. ^# @' l: y- F( ] |