Я хочу реализовать алгоритм K & R для расчета веса помех для 256-битного вектора. Я написал свой код в VHDL как:Превышен предел нестатического контура
entity counter_loop is
Port (dataIn : in STD_LOGIC_VECTOR (255 downto 0);
dataOut : out STD_LOGIC_VECTOR (8 downto 0);
threshold : in STD_LOGIC_VECTOR (8 downto 0);
clk : in STD_LOGIC;
flag : out STD_LOGIC);
end counter_loop;
architecture Behavioral of counter_loop is
signal val : STD_LOGIC_VECTOR (255 downto 0) := X"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
begin
process (clk)
variable count : STD_LOGIC_VECTOR (8 downto 0):= "000000000";
begin
flag <= '0';
val <= dataIn;
--if(clk'event and clk = '1') then
while (val > 0) loop
count := count+1;
val <= (val and (val-1));
if (count > threshold) then
flag <= '1';
end if;
end loop;
dataOut <= count;
--end if;
end process;
end Behavioral;
Но, в то время как его синтеза с использованием Xilinx, ошибка появляется как
Line 53: Non-статический предел цикла превышено
Любые подсказки пожалуйста?
P.S: Линия 53 - в то время как (значение> 0) петля
Не значит «конец цикла»; вместо «end for»,? –
@ LuísMarques: Ты прав. Благодарю. –