阅读:2260回复:8
一个失败的例子,在此请教!
entity tr_i is
port(en :in std_logic; b :out std_logic); end tr_i; architecture behave of tr_i is begin Process(en) begin if(en =\'0\')then b <= \'1\'; else b <= \'Z\'; end if; end Process; end behave; 编译不能通过。出错: Else Clause following a Clock edge must hold the state of signal \"b\". |
|
沙发#
发布于:2003-04-23 16:44
你把process(en)改为process就可以了,不加敏感信号
|
|
板凳#
发布于:2003-04-24 23:01
b out std_logic
是一位二进制的,只能为0或1, 你却设为Z |
|
地板#
发布于:2003-04-25 17:56
entity tr_i is
port(clk : in std_logic; a : in std_logic; b : out std_logic); end tr_i; architecture behave of tr_i is begin Process(clk) begin if(clk\'event and clk =\'0\')then if(a=\'1\')then b <= \'1\'; else b <= \'Z\'; end if; end if; end Process; 那这样为什么又编译通不过呢呢?如果将Z改为0或1就可以, 出错为:\'473\'can only drive logic if connected a BIDIR pin. |
|
地下室#
发布于:2003-05-07 08:34
你的程序好象除了末尾少个end外,没有问题,我编译通过了:
library ieee; use ieee.std_logic_1164.all; entity tr_i is port( clk : in std_logic; a : in std_logic; b : out std_logic); end tr_i; architecture behave of tr_i is begin Process(clk) begin if(clk\'event and clk =\'0\')then if(a=\'1\')then b <= \'1\'; else b <= \'Z\'; end if; end if; end Process; end; |
|
|
5楼#
发布于:2003-05-08 21:09
我觉得最后一个END是多余的
|
|
6楼#
发布于:2003-06-10 19:35
为什么不加库文件呢?
除此之外,没有错误... |
|
|
7楼#
发布于:2004-12-20 11:48
我也遇到同样的问题,是不是maxplus的问题,楼主的问题解决了吗
|
|
8楼#
发布于:2004-12-24 10:34
程序改成如下旧可以了:
library ieee; use ieee.std_logic_1164.all; entity tr_i is port( a : in std_logic; en: in std_logic; b : inout std_logic ); end tr_i; architecture behave of tr_i is begin Process(en,a) begin if(en='1')then b <= a; else b <= 'Z'; end if; end Process; end; |
|