У меня проблема с приращением цикла в архитектуре, как я сказал нет в коде тестового стенда. Я хотел проверить любой из 48-битных vecotr, если это «1» или «0», а затем сделать что-то. Это не сработало, и я не знаю, что делать.
Мой код
wyswietl: process (clk, ZNAK_Z_ROM)
начать
еслиising_edge (clk), то
--------------------------------------------------------------------------
for i in 47 to 42 loop
if( ZNAK_Z_ROM(i) ='1' ) then
if flaga='1' then
flaga<='0';
vs<="1000000011";
hs<="0010010000"+conv_std_logic_vector((47-i+1)+(7*conv_integer(flag)),6);
else
vs<="1000000011";
hs<="0010010000"+conv_std_logic_vector((47-i)+(7*conv_integer(flag)),6);
end if;
elsif(ZNAK_Z_ROM(i) ='0') then
flaga<='1';
end if;
end loop;
--------------------------------------------------------------------------
for i in 41 to 36 loop
if( ZNAK_Z_ROM(i) ='1' ) then
if flaga='1' then
flaga<='0';
vs<="1000000100";
hs<="0010010000"+conv_std_logic_vector((41-i+1)+(7*conv_integer(flag)),6);
else
vs<="1000000100";
hs<="0010010000"+conv_std_logic_vector((41-i)+(7*conv_integer(flag)),6);
end if;
elsif(ZNAK_Z_ROM(i) ='0') then
flaga<='1';
end if;
end loop;
--------------------------------------------------------------------------
for i in 35 to 30 loop
if( ZNAK_Z_ROM(i) ='1' ) then
if flaga='1' then
flaga<='0';
vs<="1000000011";
hs<="0010010000"+conv_std_logic_vector((35-i+1)+(7*conv_integer(flag)),6);
else
vs<="1000000011";
hs<="0010010000"+conv_std_logic_vector((35-i)+(7*conv_integer(flag)),6);
end if;
elsif(ZNAK_Z_ROM(i) ='0') then
flaga<='1';
end if;
end loop;
--------------------------------------------------------------------------
for i in 29 to 24 loop
if( ZNAK_Z_ROM(i) ='1' ) then
if flaga='1' then
flaga<='0';
vs<="1000000010";
hs<="0010010000"+conv_std_logic_vector((29-i+1)+(7*conv_integer(flag)),6);
else
vs<="1000000010";
hs<="0010010000"+conv_std_logic_vector((29-i)+(7*conv_integer(flag)),6);
end if;
elsif(ZNAK_Z_ROM(i) ='0') then
flaga<='1';
end if;
end loop;
--------------------------------------------------------------------------
for i in 23 to 18 loop
if( ZNAK_Z_ROM(i) ='1' ) then
if flaga='1' then
flaga<='0';
vs<="1000000001";
hs<="0010010000"+conv_std_logic_vector((23-i+1)+(7*conv_integer(flag)),6);
else
vs<="1000000001";
hs<="0010010000"+conv_std_logic_vector((23-i)+(7*conv_integer(flag)),6);
end if;
elsif(ZNAK_Z_ROM(i) ='0') then
flaga<='1';
end if;
end loop;
-----------------------------------------------------------------------
for i in 17 to 12 loop
if( ZNAK_Z_ROM(i) ='1' ) then
if flaga='1' then
flaga<='0';
vs<="1000000000";
hs<="0010010000"+conv_std_logic_vector((17-i+1)+(7*conv_integer(flag)),6);
else
vs<="1000000000";
hs<="0010010000"+conv_std_logic_vector((17-i)+(7*conv_integer(flag)),6);
end if;
elsif(ZNAK_Z_ROM(i) ='0') then
flaga<='1';
end if;
end loop;
-----------------------------------------------------------------------
for i in 11 to 6 loop
if( ZNAK_Z_ROM(i) ='1' ) then
if flaga='1' then
flaga<='0';
vs<="0111111111";
hs<="0010010000"+conv_std_logic_vector((11-i+1)+(7*conv_integer(flag)),6);
else
vs<="0111111111";
hs<="0010010000"+conv_std_logic_vector((11-i)+(7*conv_integer(flag)),6);
end if;
elsif(ZNAK_Z_ROM(i) ='0') then
flaga<='1';
end if;
end loop;
-----------------------------------------------------------------------
for i in 5 to 0 loop
if( ZNAK_Z_ROM(i) ='1' ) then
if flaga='1' then
flaga<='0';
vs<="0111111110";
hs<="0010010000"+conv_std_logic_vector((5-i+1)+(7*conv_integer(flag)),6);
else
vs<="0111111110";
hs<="0010010000"+conv_std_logic_vector((5-i)+(7*conv_integer(flag)),6);
end if;
elsif(ZNAK_Z_ROM(i) ='0') then
flaga<='1';
end if;
end loop;
flag<=flag+"00001";
end if;
конец процесса;