问题描述
在针对Virtex-6 / Spartan-6器件时,我在XST中收到以下错误,但是当我定位旧器件时没有任何问题。为什么?
错误:HDLCompiler:637 – “<file> .vhd”行xx:净状态[7]不断从多个地方驱动
错误:HDLCompiler:208 – “<file> .vhd”行yy:来自这里的另一个驱动程序
示例代码:
库;
使用ieee.std_logic_1164.all;
使用ieee.std_logic_unsigned.all;
使用ieee.std_logic_arith.all;
实体ex_0008是
port(clk,reset:in std_logic;
输出:输出std_logic_vector(7 downto 0)
);
结束ex_0008;
ex_0008的架构bhv是
信号状态:std_logic_vector(7 downto 0);
开始
进程(重置,clk)
开始
if(reset =’1’)然后
输出<=“00000000”;
州 <=“00000000”;
elsif(clk’event和clk =’1’)然后
案件状态是
当“00000000”=>输出<=“00000001”;州<=“00000001”;
当“00000001”=>输出<=“00000010”;州<=“00000010”;
当“00000010”=>输出<=“00000011”;州<=“00000011”;
当其他人=>输出<=“00000100”;州<=“00000000”;
结束案例;
万一;
结束过程;
州 <=不是州;
结束;
解决/修复方法
在上面的示例中,信号状态在过程内部和外部分配。该描述不能在FPGA中实现。
解决此问题的唯一方法是不在进程外分配状态。
11.2 XST为Virtex-6和Spartan-6系列引入了新的VHDL / Verilog解析器。有关此更改的更多信息,请参阅(Xilinx答复32927)
没有回复内容