开发环境libero8.0
开发语言:VHDL
在综合是出现了如下错误:
Multiple non-tristate drivers for net AD_I in J_shi
源代码:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity J_shi is
port ( clk_J_shi : in std_logic;
flag_J_shi_srart : in std_logic; -- 电压过零时
flag_J_shi_stop : in std_logic; -- 电流过零时
AD_U : out std_logic; -- 电压结束转换标志
AD_I : out std_logic; -- 电流转换结束标志
Time : out std_logic_vector(11 downto 0)
);
end J_shi;
architecture behavioral of J_shi is
signal js_flag : std_logic;
begin
U1: process(flag_J_shi_srart) -- 电压过零
begin
if flag_J_shi_srart'event and flag_J_shi_srart='1' then AD_U<='0'; -- 关闭电压转换
AD_I<='1'; -- 打开电流转换
end if;
end process;
U2: process(flag_J_shi_stop) -- 电流过零
begin
if rising_edge(flag_J_shi_stop) then AD_U<='0'; -- 关闭电压转换
AD_I<='0'; --关闭电流转换
end if;
end process;
end behavioral;
错误的原因是不是AD_U和AD_I可能在同一时刻被赋不同的值呢?
在实际中,他们是不能在同一时刻被赋不同的值的。
那么怎么改程序可以综合通过呢?
文章评论(0条评论)
登录后参与讨论