原创 这个错误该怎么解决呢?(VHDL方面)

2009-2-19 15:42 5245 7 7 分类: FPGA/CPLD

开发环境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可能在同一时刻被赋不同的值呢?


在实际中,他们是不能在同一时刻被赋不同的值的。


那么怎么改程序可以综合通过呢?



PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条