Guest
I have encountered the following mysterious error with ispLever,
Synplify, ModelSim and Quartus II.
It does not appear in any Aldec tools (or Xilinx tool as far as I
remember).
Assume I have some component
---
entity comp1 is
port (
....
);
end entity;
---
And I want to instanciate it with the newer VHDL syntax:
---
architecture behav of comp2 is
....
comp1inst: entity work.comp1
port map (
...
);
end behav;
---
this would sometimes, for some component and tool COMBINATIONS
consistently generates the following error:
---
-- Analyzing VHDL file comp1.vhd
-- Analyzing VHDL file comp2.vhd
comp2.vhd(147): ERROR: illegal selected name prefix
comp2.vhd(345): ERROR: unit behav ignored due to previous errors
---
(this particular error dump was produced by ispLever 7.1 project
navigator)
Now, if I use the old-school instaciation, everything will work just
fine:
---
architecture behav of comp2 is
component comp1 is
port (
....
);
end component;
....
begin
comp1inst: comp1
port map (
...
);
end behav;
---
I assume the most obvious answer would be that I have not included
comp1.vhd or it was read after comp2.vhd. But as you can see in the
error message earlier, this was not the case. Futhermore, the code
works with some tools and not with others. Evern worse, the tools may
accept my VHDL'93 style instances in other locations but reject these
ones for some reason I cant figure out
Can anyone please explain to me why this is happening? Am I
overlooking something terribly basic here?
Synplify, ModelSim and Quartus II.
It does not appear in any Aldec tools (or Xilinx tool as far as I
remember).
Assume I have some component
---
entity comp1 is
port (
....
);
end entity;
---
And I want to instanciate it with the newer VHDL syntax:
---
architecture behav of comp2 is
....
comp1inst: entity work.comp1
port map (
...
);
end behav;
---
this would sometimes, for some component and tool COMBINATIONS
consistently generates the following error:
---
-- Analyzing VHDL file comp1.vhd
-- Analyzing VHDL file comp2.vhd
comp2.vhd(147): ERROR: illegal selected name prefix
comp2.vhd(345): ERROR: unit behav ignored due to previous errors
---
(this particular error dump was produced by ispLever 7.1 project
navigator)
Now, if I use the old-school instaciation, everything will work just
fine:
---
architecture behav of comp2 is
component comp1 is
port (
....
);
end component;
....
begin
comp1inst: comp1
port map (
...
);
end behav;
---
I assume the most obvious answer would be that I have not included
comp1.vhd or it was read after comp2.vhd. But as you can see in the
error message earlier, this was not the case. Futhermore, the code
works with some tools and not with others. Evern worse, the tools may
accept my VHDL'93 style instances in other locations but reject these
ones for some reason I cant figure out
Can anyone please explain to me why this is happening? Am I
overlooking something terribly basic here?