У меня есть простой VHDL-код с оператором «GENERATE», но когда я выполняю симуляцию, что-то не работает должным образом. У меня есть 2 входных сигнала, когда немного из них изменяется, выходной сигнал "num_type", созданный внутри GENERATE, также должен измениться. Но это случается несколько раз, тогда это больше не происходит. Вы можете увидеть кадр симуляции ниже.
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
ENTITY precomputation_conv IS
GENERIC( N : NATURAL:=25); -- CONSTANT number of elements to evaluate
PORT( in_1, in_2 : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0); -- in_1 = ingresso, in_2 = peso
EN : IN STD_LOGIC;
EN_OP : OUT STD_LOGIC);
END precomputation_conv;
ARCHITECTURE behavior OF precomputation_conv IS
------------ SIGNALS -----------------
TYPE array_of_2 IS ARRAY(N-1 DOWNTO 0) OF STD_LOGIC_VECTOR(1 DOWNTO 0);
SIGNAL num_type : array_of_2;
BEGIN
circuit_gen: FOR i IN 0 TO N-1 GENERATE
num_type(i) <= NOT(in_2(i)) & (in_1(i) XOR in_2(i));
END GENERATE circuit_gen;
END behavior;
Выходы num_type не меняются, когда входы имеют ту же конфигурацию, что и в начальной точке.
Вот снимок экрана симуляции: кадр моделирования