UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 22916

XST - "ERROR:HDLParsers:810 - .vhd Line <#> = has two possible definitions in the scope"

Description

The HDL Parser in XST 8.1i fails when synthesizing the following:

With the following library declarations:

use ieee.std_logic_signed.all

use ieee.std_logic_unsigned.all

...

When using the following construct::

case MODE is

when "0001" =>

if ( DIN(2 downto 0)= "011" ) then

SIG_EN <= '1';

else

SIG_EN <= '0';

end if;

...

end case;

The HDL Parser reports the following error message:

"ERROR:HDLParsers:810 - "<file_name>" Line <#>. = has two possible definitions in this scope."

Synthesis succeeded in ISE 6.3.03i and 7.1.04i.

Solution

This is a valid error. The IEEE library std_logic_signed has functions that are also referenced in the std_logic_unsigned. This is why declaring these two libraries in the same scope is not allowed. It is always recommended in VHDL coding to use only one of these libraries at a time and not both.

This worked in the older versions of XST because XST was not performing this syntax check correctly.

AR# 22916
Date Created 09/04/2007
Last Updated 12/15/2012
Status Active
Type General Article