User defined attributes for component instances

Hi there!

attribute CLKOUT_PHASE_SHIFT of DCM_GCLK : label is "FIXED";

I got an error for lines like this saying that declaration os DCM_GCLK could not be fount. It's in the architecture body since it is a component instance. I don't know if it is standard or not but xilinx tools use this. Am i missing something here?

Thank you!

Used before declaration?

Hi Bagoj,

What is DCM_GCLK? And where is its declaration? I assume it is after the attribute declaration.

I did some research and experimentation, and you probably discovered a bug in our analyzer. VHDL allows to declare attributes of 'items' (labels, ...) before they are declared. E.g.:

ENTITY my_entity IS END;
 
ARCHITECTURE my_arch OF my_entity IS
   COMPONENT my_comp end component;
   ATTRIBUTE my_atribute OF my_label : LABEL IS "true"; -- my_label is used here
BEGIN
   my_label : my_comp; -- my_label is declared here
END my_arch;

I have logged this as ticket:655

Yes, that's what i'm talking

Yes, that's what i'm talking about. DCM_GCLK is a Xilinx DCM_SP primitive. The component is declared before the attribute declaration but the attribute refers to the instance DCM_GCLK what is located in the architecture body. Not a big deal i can ignore those errors untill you fix this.
Thank you.

Similar/Related

I found a similar/related problem:

 
   ...
   );
END syspllreconfig;
 
 
ARCHITECTURE RTL OF syspllreconfig IS
 
	ATTRIBUTE synthesis_clearbox: natural;
	ATTRIBUTE synthesis_clearbox OF RTL: ARCHITECTURE IS 2;
...

Here Hdt complains : Declaration of RTL could not be found
This is an Altera MegaWizard generated file, so I should not edit it. Of course I will ignore that error for now.

Best regards.

In the latest release this

In the latest release this incorrect error message is gone.

Post new comment

The content of this field is kept private and will not be shown publicly.
By submitting this form, you accept the Mollom privacy policy.