Для проблемы петли в архитектуре - VHDL.Выполнение приращения цикла в архитектуре (не код tb) - PullRequest
0 голосов
/ 08 июня 2019

У меня проблема с приращением цикла в архитектуре, как я сказал нет в коде тестового стенда. Я хотел проверить любой из 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;

конец процесса;

...