Forum Discussion

JDe_S4's avatar
JDe_S4
Icon for New Contributor rankNew Contributor
7 years ago

Does Quartus 18.0 support the VHDL 2008 'ELEMENT attribute?

I am using the VHDL 'ELEMENT attribute to determine the range of an element in an array.

   ReadRegisterData: process (REG_CLK) is
   begin
      if (rising_edge(REG_CLK)) then
         i_RegReadData <= (others => '0');
         if (REG_RDEN = '1') then
            case? i_RegSelect is
               when "1---" => i_RegReadData(0) <= i_InterfaceSelect;
               when "0100" => i_RegReadData(i_DAC_CodeWordMaskReg'ELEMENT'RANGE) <= i_DAC_CodeWordMaskReg(0);
               when "0101" => i_RegReadData(i_DAC_CodeWordMaskReg'ELEMENT'RANGE) <= i_DAC_CodeWordMaskReg(1);
               when "0110" => i_RegReadData(i_DAC_CodeWordMaskReg'ELEMENT'RANGE) <= i_DAC_CodeWordMaskReg(2);
               when "0111" => i_RegReadData(i_DAC_CodeWordMaskReg'ELEMENT'RANGE) <= i_DAC_CodeWordMaskReg(3);
               when others => null;
            end case?;
         end if;
      end if;
   end process ReadRegisterData;

Quartus reports the following error:

Error (10482): VHDL error at <file>.vhd(176): object "ELEMENT" is used but not declared

followed by the error message:

Error (10406): VHDL attribute error at <file>.vhd(176): object with attribute "range" must have scalar or array type

Does this mean that Quartus Prime Version 18.0.0 Standard Edition doesn't support this VHDL 2008 feature?

12 Replies