首页 > 解决方案 > VHDL 中的信号用于 .. 生成范围

问题描述

linting 工具不喜欢下面的代码块,因为它认为在 for..generate 范围内声明的信号有多个驱动程序。直观地说,我希望对于每个信号声明,循环的每次迭代都会存在一个信号实例。

是 linter 坏了,还是 VHDL 语言坏了?

library IEEE;
use IEEE.std_logic_1164.all;

entity demo is
end demo;

architecture rtl of demo is
  type i_arr_t is array(integer range <>) of integer;
  signal results: i_arr_t(0 to 1);
  signal dot : integer;
begin
  g_gen : for ii in 0 to 1 generate
    signal sig : integer;
  begin
    sig <= ii * 2;
    results(ii) <= sig;
  end generate;

  dot <= results(0) + results(1);
end rtl;

错误信息:Non-resolved signal 'sig' has multiple drivers

标签: scopevhdl

解决方案


推荐阅读