cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer
Observer
5,955 Views
Registered: ‎11-21-2007

VIVADO 2016.3 float_pkg is not correctly compiled in ieee library?

Jump to solution

Hello.

 

in the scope of float/fixed types and VHDL2008 support,

I am still trying to move from 'ieee_proposed' to 'ieee',

using VIVADO 2016.3.

 

That seems to work for 'fixed_pkg' (my yesterday post):

https://forums.xilinx.com/t5/Synthesis/How-to-remap-the-VHDL-library-ieee-proposed-to-ieee/

 

However similar design using 'float_pkg' fails with the error:

INFO: [Synth 8-3491] module 'ycop_float32' declared at '/mntdirect/_users/herve/maio/yam/pepu/yam_imram/src/yam/ycop/ycop_float32.vhd:50' bound to instance 'float0' of component 'ycop_float32' [/mntdirect/_users/herve/maio/yam/pepu/yam_imram/src/yamtst.vhd:434]
WARNING: [Synth 8-3819] Generic 'fixed_pkg' not present in instantiated entity will be ignored [/mntdirect/_users/herve/maio/yam/pepu/yam_imram/syn/vhdl_packages/2008/src/float_pkg.vhdl:57]
INFO: [Synth 8-638] synthesizing module 'ycop_float32' [/mntdirect/_users/herve/maio/yam/pepu/yam_imram/src/yam/ycop/ycop_float32.vhd:82]
    Parameter COP_ID bound to: 3'b000
    Parameter IEEE754 bound to: 1 - type: bool
    Parameter FP32_LEVEL bound to: 1 - type: integer
ERROR: [Synth 8-274] error: bad type reference [/mntdirect/_users/herve/maio/yam/pepu/yam_imram/src/yam/ycop/ycop_float32.vhd:48]
ERROR: [Synth 8-285] failed synthesizing module 'ycop_float32' [/mntdirect/_users/herve/maio/yam/pepu/yam_imram/src/yam/ycop/ycop_float32.vhd:82]

 

The source:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use work.yam_pkg.all;

use ieee.fixed_float_types.all;
--use ieee.fixed_pkg.all;
use ieee.float_pkg.all;  -- <<<<<<<<<<<<< this is line 48

 

The TCL command file:

...

read_vhdl -vhdl2008  ../src/yam/ycop/ycop_float32.vhd

...

 

Would you help me?

 

 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Scholar
Scholar
9,935 Views
Registered: ‎04-26-2012

Re: VIVADO 2016.3 float_pkg is not correctly compiled in ieee library?

Jump to solution

@florentw "That is the reason why Xilinx is doing step by step"

What you've described is more a hack than a "step-by-step" process towards VHDL-2008 support.

The fixed and floating point packages are now *PART OF* the VHDL-2008 specification[1].

But the Vivado 2016.3 synthesizer seems incapable of correctly compiling the actual library files from the standard.

Given this, it is therefore completely inaccurate for Xilinx to be claiming 2016.3 now "supports" the VHDL-2008 fixed_pkg, hence my objections.


---------------------------------------
If Xilinx wants to offer users a modified package as a temporary workaround to be compiled into a different library, until such time as Vivado Synthesis supports VHDL-2008 package generics, I would have no complaints with that approach.

But it should be based on the final VHDL-2008 fixed and float packages, not the earlier VHDL-1993 compatibility versions thereof.

Xilinx has already supplied such a file for fixed_pkg, fixed_generic_pkg_mod.vhdl , in an post by @balkris last August:
  https://forums.xilinx.com/t5/Synthesis/Cannot-find-fixed-pkg-in-IEEE-or-IEEE-PROPOSED/m-p/718293#M19228

The fixed_generic_pkg_mod.vhdl file from that post is a concatenation of the VHDL-2008 standard library files { fixed_generic_pkg.vhdl, fixed_generic_pkg-body.vhdl }, with the package generics commented out.

If it works in 2016.3 (I haven't checked this myself), that would be a much better approach than the ./scripts/rt/data/fixed_pkg_2008.vhd file currently shipping with Vivado 2016.3.

-Brian

[1] link to the VHDL-2008 library files:  
  http://standards.ieee.org/downloads/1076/1076-2008/1076-2008_machine-readable.zip

View solution in original post

0 Kudos
5 Replies
Highlighted
Moderator
Moderator
5,951 Views
Registered: ‎11-09-2015

Re: VIVADO 2016.3 float_pkg is not correctly compiled in ieee library?

Jump to solution

Hi @herve,

 

The support for fixed_pkg has been added for 2016.3 but the float_pkg is not supported by Vivado yet (v2016.3)

 

Regards,

 

Florent


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Highlighted
Moderator
Moderator
5,948 Views
Registered: ‎11-09-2015

Re: VIVADO 2016.3 float_pkg is not correctly compiled in ieee library?

Jump to solution

Hi @herve,

 

Also for the fixed_pkg, you need first to compile the Fixed Package in the IEEE library. This package is available in the file: fixed_pkg_2008.vhd, in the scripts/rt/data/ directory in your Vivado install.

To compile it, use the fillowing command:

add_files –norecurse <path to package file>/fixed_pkg_2008.vhd
set_property library ieee [get_files <path to package file>/fixed_pkg_2008.vhd]

 

Regards,

 

Florent


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Highlighted
Scholar
Scholar
5,909 Views
Registered: ‎04-26-2012

Re: VIVADO 2016.3 float_pkg is not correctly compiled in ieee library?

Jump to solution

@florentw "for the fixed_pkg, you need first to compile the Fixed Package in the IEEE library. This package is available in the file: fixed_pkg_2008.vhd, in the scripts/rt/data/ directory in your Vivado install."

 

Is this Xilinx's idea of a bad joke ???

 

So Xilinx's 'support' for fixed_pkg in 2016.3 consists of overriding the actual library files of the IEEE-2008 standard, already known to the synthesizer, with a localized hack job that Xilinx has performed on the older interim non-2008 file fixed_pkg_c.vhd so as to compile with the half-baked Vivado VHDL-2008 implementation that you are now 'shipping' to customers ???

 

Perhaps this has been done so your marketeers can trumpet VHDL-2008 in their latest marketing fluff ???

 

It certainly is of little use to your customers actually wanting to use VHDL-2008.

 

-Brian

 

    http://www.xilinx.com/support/documentation/white_papers/wp483-spartan-7-intro.pdf

xilinx_fluff.jpg 

 

--
-- snippet of C:\Xilinx\Vivado\2016.3\scripts\rt\data\fixed_pkg_2008.vhd
--
-- - package generics are commented out since 2016.3 doesn't support them (???)
--
-- - file body is greatly different from the real VHDL-2008 package, located
-- in C:\Xilinx\Vivado\2016.3\data\vhdl\src\ieee_2008\fixed_generic_pkg-body.vhdl --
package fixed_pkg is --%%% Uncomment the Generics -- new work.fixed_generic_pkg -- generic map ( -- fixed_round_style => true; -- fixed_round -- fixed_overflow_style => true; -- fixed_saturate -- fixed_guard_bits => 3; -- number of guard bits -- no_warning => false -- show warnings -- ); --%%% REMOVE THE REST OF THIS FILE.

 

0 Kudos
Highlighted
Moderator
Moderator
5,898 Views
Registered: ‎11-09-2015

Re: VIVADO 2016.3 float_pkg is not correctly compiled in ieee library?

Jump to solution

Hi @brimdavis,

 

New features are not always easy to integrate with the existing one. That is the reason why Xilinx is doing step by step and usually add a switch or some steps to enable the new features.

 

Regards,

 

Florent


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Highlighted
Scholar
Scholar
9,936 Views
Registered: ‎04-26-2012

Re: VIVADO 2016.3 float_pkg is not correctly compiled in ieee library?

Jump to solution

@florentw "That is the reason why Xilinx is doing step by step"

What you've described is more a hack than a "step-by-step" process towards VHDL-2008 support.

The fixed and floating point packages are now *PART OF* the VHDL-2008 specification[1].

But the Vivado 2016.3 synthesizer seems incapable of correctly compiling the actual library files from the standard.

Given this, it is therefore completely inaccurate for Xilinx to be claiming 2016.3 now "supports" the VHDL-2008 fixed_pkg, hence my objections.


---------------------------------------
If Xilinx wants to offer users a modified package as a temporary workaround to be compiled into a different library, until such time as Vivado Synthesis supports VHDL-2008 package generics, I would have no complaints with that approach.

But it should be based on the final VHDL-2008 fixed and float packages, not the earlier VHDL-1993 compatibility versions thereof.

Xilinx has already supplied such a file for fixed_pkg, fixed_generic_pkg_mod.vhdl , in an post by @balkris last August:
  https://forums.xilinx.com/t5/Synthesis/Cannot-find-fixed-pkg-in-IEEE-or-IEEE-PROPOSED/m-p/718293#M19228

The fixed_generic_pkg_mod.vhdl file from that post is a concatenation of the VHDL-2008 standard library files { fixed_generic_pkg.vhdl, fixed_generic_pkg-body.vhdl }, with the package generics commented out.

If it works in 2016.3 (I haven't checked this myself), that would be a much better approach than the ./scripts/rt/data/fixed_pkg_2008.vhd file currently shipping with Vivado 2016.3.

-Brian

[1] link to the VHDL-2008 library files:  
  http://standards.ieee.org/downloads/1076/1076-2008/1076-2008_machine-readable.zip

View solution in original post

0 Kudos