ipbus/ipbb

Add native support for VHDL-2008 features

Opened this issue · 2 comments

When attempting to build a design with the IEEE.FIXED_PKG package in vivado, the following errors are thrown:

chk-syn | CRITICAL WARNING: [HDL 9-3134] 'fixed_pkg' is not compiled in library 'ieee' [/builds/cms-tracker-phase2-data-processing/BE_firmware/mprocessor/ci/builds/work/src/mprocessor/top/firmware/hdl/TrackReconstructor.vhd:4]
chk-syn | INFO: [HDL 9-3642] library 'ieee' is mapped to '/opt/Xilinx/Vivado/2020.2/data/precomp_hsv/vhdl/ieee_2008' [/builds/cms-tracker-phase2-data-processing/BE_firmware/mprocessor/ci/builds/work/src/mprocessor/top/firmware/hdl/TrackReconstructor.vhd:4]
chk-syn | ERROR: [HDL 9-3136] 'sfixed' is not declared [/builds/cms-tracker-phase2-data-processing/BE_firmware/mprocessor/ci/builds/work/src/mprocessor/top/firmware/hdl/TrackReconstructor.vhd:27]

This is due to 2008 features not being compiled by default by into the ieee library. The Vivado User Guide recognises this and suggests the following solution (p 219):
First, 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.
This package is not precompiled in Vivado, so you must compile the file in your design.
To compile the file using Tcl commands, type the following on the Tcl Console:

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]
read_vhdl -vhdl2008 ./my_design.vhd
launch_runs synth_1 -jobs 4
wait_on_run synth_1
open_run synth_1 -name synth_1

Could the relevant lines be added to the Generate Project command within ipbb? Having native support would ensure portability of code compared to adding these lines into a .tcl file which is then called by ipbb. If this is not possible, how would you suggest that this issue is best fixed?

Hi David,

Hm, this looks like an interesting Vivado/Xilinx library "feature" (lack of support native support for fixed_pkg).
I'm not sure thou what the relevant lines are. The snippet you've posted does a number of things.
Are you referring to the capability to associate a source file to a library?

Alessandro

@DavidMonk00 can you give some more details?