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

  • @MUsman, I can confirm that @Tricky is correct because I'm actually using VHDL 2008 in Quartus Prime Standard 18.0.

    Your recommendation to switch to Quartus Pro has a problem; Quartus Pro only supports a limited number of high end chips (Stratix 10, Arria 10, Cyclone 10 GX)! We're using Cyclone V and are forced to use Quartus Standard.

    I found a note in the Quartus Primt Std User Guide that seems inconsistent with this not to mention the body of the guide itself. Hopefully, this is not yet another indication that Intel intends to abandon lower end markets.