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?
Quartus Prime Version 18.0.0 Standard Edition doesn't support this VHDL 2008 feature.
please refer the Table available at page no.7 from below link,
Let me know if this has helped resolve the issue you are facing or if you need any further assistance.
(This message was posted on behalf of Intel Corporation)
You may consider using Quartus Prime Pro if your target device is Cyclone 10 GX(Quartus Prime Pro without License ) or Stratix10/ Arria10 (Need to purchase License.)
There is an easy workaround for this (that works in '93):
-- If you know the array always contains index 0 (or some other fixed number): i_RegReadData(i_DAC_CodeWordMaskReg(0)'RANGE) -- You dont know the indeces i_RegReadData(i_DAC_CodeWordMaskReg(i_DAC_CodeWordMaskReg'low)'RANGE)
Thanks for the reply @Vicky . I am a bit puzzled though. According to the list on page 7 of the document you mention only the Pro Edition supports synthesis for VHDL-2008. In the standard edition I am using it is however possible to select VHDL-2008 in the "VHDL Input" section of the "Compiler Settings" in the settings window. I also think it a bit strange that VHDL-2008 is only supported for designs with the series 10 devices. Since our design is based on an Arria V this would convict me to not using VHDL-2008 😒 .
Luckily @Tricky pointed my to the document https://www.intel.com/content/www/us/en/programmable/quartushelp/current/index.htm#hdl/vhdl/vhdl_lis...
which is the document that is opened when I select "Help topics" in the help of my Quartus Prime Standard Edition. The document however is about the Pro Edition. In the paragraph about HL Language support there is a section about VHDL-2008 support
unfortunately is states there that section 16 "Predefined language environment" which holds the predefined attributes of types and objects isn't supported 😥 .
Question still is whether this paragraph is also valid for the Standard Edition? Why is it possible to select VHDL-2008 in the Standard Edition I use while the list on page 7 indicates that VHDL-2008 is only supported on the Pro Edition? Why do I get the Pro help when I select "Help topics" in the Standard Edition? It would be nice to have some clarification on this so I won't run into more unexpected limitations.
Jacob de Sterke
Quartus has supported some basic VHDL 2008 since Q10 or 11 (I cant rememember, but before it was separated into Prime and Pro) but support has been limited to those listed on the page you linked to since then. So you can select 2008 because of this history. The page also clearly states the list is for Quartus Prime, and not Prime Pro.
With the intel transition everything has become rather confused. It is very difficult to find documentation about the standard Prime software, as everything appears to go via the Pro version. This is likely because all of the Prime software and supported devices were not part of the Intel/Altera merger, and intel are focusing on their new products, while neglecting the past.
Let me answer few of your questions.
Hope this clarifies.
@Tricky I am sorry for the inconvenience, you can navigate to Quartus Prime Standard Documentation at the link below. Type "quartus prime standard" in search box you should be able to get Quartus Prime Handbooks.
hope this helps.
@MUsman As per the quartus prime handbook:
The Intel® Quartus® Prime software contains support for VHDL 2008 with constructs defined in the IEEE Standard 1076-2008 version of the IEEE Standard VHDL Language Reference Manual.
Intel® Quartus® Prime Support for VHDL 2008
(the related information links to the Prime Pro Handbook, but lists the supported features for Prime standard, which is where @JDe S4 is getting confused)
Hi @Tricky ,
Thanks for the information and the suggested workaround. I should have thought of it myself (embarrassed). I implemented the workaround and everything compiles without errors. Like the VHDL-2008 way though.
Thanks for pointing out where and how to find the Quartus Prime Standard handbooks. I downloaded the pdf's right away. If I read paragraph 22.214.171.124 VHDL-2008 Support of Volume 1 Design and Synthesis correctly The Intel Quartus Prime software contains support for VHDL 2008 (as @Tricky pointed out). So the question stays: should I trust the handbook or the table on page 7 of the document @Vicky referred to?
Okie I have checked, this seems to be a discrepancy in document "https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/br/br-quartus-prime-softwar..." I will share this to our internal team.
Quartus Standard has a very limited support for VHDL2008, and hence it is recommended to switch to Quartus Pro for enhanced VHDL2008 support.
@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.