仿真结果不对
本帖最后由 fpgaw 于 2010-7-6 05:41 编辑我的双向三态门,怎么仿真结果不对.是不是程序有问题
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
ENTITY BIDIR_BUFF8 IS
PORT
(
A,B : INOUT STD_LOGIC_VECTOR (7 DOWNTO 0);
EN : IN STD_LOGIC;
DIR : IN STD_LOGIC
);
END BIDIR_BUFF8;
ARCHITECTURE behave OF BIDIR_BUFF8 IS
SIGNAL A_TEMP,B_TEMP:STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
PROCESS(A,B,EN,DIR)
BEGIN
IF(EN='0')THEN
IF(DIR='1')THEN
B_TEMP<=A;
ELSE
A_TEMP<=B;
END IF;
ELSE
A_TEMP<=(OTHERS=>'Z');
B_TEMP<=(OTHERS=>'Z');
END IF;
END PROCESS;
B<=B_TEMP;
A<=A_TEMP;
END behave;Sample Text 没人回答我啊<br>
<br>
还是要靠自己呵 请热心网友帮忙! Sorry<br>
看不懂VHDL<br>
<br>
只会Verilog B<=B_TEMP;<br>
A<=A_TEMP;<br>
<br>
怎么都输出??俺也不懂vhdl,,但是总觉得这两句不行。。<br>
怎么让人感觉有锁存器阿!!谁综合没有。。 A_TEMP<=(OTHERS=>'Z');<br>
B_TEMP<=(OTHERS=>'Z');<br>
使用latch实现?<br>
<br>
为何不用双向传输门,然后AB后端加三态门实现? 当然有问题。<br>
A_TEMP以及B_TEMP锁存了。<br>
改为:<br>
if(DIR='1')then<br>
B_TEMP<=A;<br>
A_TEMP<=(OTHERS=>'Z');<br>
else then<br>
A_TEMP<=B;<br>
B_TEMP<=(OTHERS=>'Z');<br>
<br>
[ 本帖最后由 xiaoyanxue 于 2006-6-12 13:44 编辑 ] 看不懂VHDL<br>
<br>
只会Verilog
页:
[1]