1

このループ (プロセス外) で変数を回避するにはどうすればよいですか?

variable var1 : std_logic_vector (ADRESS_WIDTH-1 downto 0) := (others => '0');

        for i in 0 to ADRESS_WIDTH-2 loop
            var1 := var1 + '1';
            with r_addr select
             fifo_data_out <= array_reg(i) when var1,
        end loop;
        array_reg(ADRESS_WIDTH-1) when others;

このバージョン (進行中) も正しくありません - 構文エラー

process (r_addr, r_addr1, fifo_data_out, array_reg, r_data1)
variable var1 : std_logic_vector (ADRESS_WIDTH-1 downto 0) := (others => '0');

begin

case r_addr is
    when "0000000000" => fifo_data_out <= array_reg(0);
        for i in 1 to ADRESS_WIDTH-2 loop
            when var1 => fifo_data_out <= array_reg(i);
            var1 := var1 + '1';
        end loop;
     when others => fifo_data_out <= array_reg(ADRESS_WIDTH-1);
end case;
4

1 に答える 1