256 비트 벡터의 해밍 웨이트 계산을 위해 K & R 알고리즘을 구현하고 싶습니다. 나뿐만 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;
그러나, 자일링스를 사용하여 합성하는 동안 오류가
라인으로 온다 53 : 비 정적 루프 제한
모든 단서하시기 바랍니다 초과?
P.S가 : 선 (53)이다 - 동안 (발> 0) 루프 그래서
당신은 의미하지 않는다 "최종 루프;" 대신에 "끝"; –
@ LuísMarques : 네 말이 맞아. 감사. –