Vivado component build broken by reference to ctu_can_fd_rtl library intead of work automatic selfreference.
The separation of libraries to ctu_can_fd_rtl and ctu_can_fd_tb
-Library work;
-use work.id_transfer.all;
...
+Library ctu_can_fd_rtl;
+use ctu_can_fd_rtl.id_transfer.all;
...
breaks Vivado build using based on CTU_CAN_FD_1_0 component.
ERROR: [Synth 8-4169] error in use clause: package 'id_transfer' not found in library 'ctu_can_fd_rtl' [/builds/canbus/zynq/zynq-can-sja1000-top/system/src/top/ipshared/d52f/bus
_sampling/bit_err_detector.vhd:59]
ERROR: [Synth 8-4169] error in use clause: package 'can_constants' not found in library 'ctu_can_fd_rtl' [/builds/canbus/zynq/zynq-can-sja1000-top/system/src/top/ipshared/d52f/b
us_sampling/bit_err_detector.vhd:60]
ERROR: [Synth 8-4169] error in use clause: package 'can_components' not found in library 'ctu_can_fd_rtl' [/builds/canbus/zynq/zynq-can-sja1000-top/system/src/top/ipshared/d52f/
bus_sampling/bit_err_detector.vhd:61]
ERROR: [Synth 8-4169] error in use clause: package 'can_types' not found in library 'ctu_can_fd_rtl' [/builds/canbus/zynq/zynq-can-sja1000-top/system/src/top/ipshared/d52f/bus_s
ampling/bit_err_detector.vhd:62]
ERROR: [Synth 8-4169] error in use clause: package 'cmn_lib' not found in library 'ctu_can_fd_rtl' [/builds/canbus/zynq/zynq-can-sja1000-top/system/src/top/ipshared/d52f/bus_sam
pling/bit_err_detector.vhd:63]
ERROR: [Synth 8-4169] error in use clause: package 'drv_stat_pkg' not found in library 'ctu_can_fd_rtl' [/builds/canbus/zynq/zynq-can-sja1000-top/system/src/top/ipshared/d52f/bu
s_sampling/bit_err_detector.vhd:64]
ERROR: [Synth 8-4169] error in use clause: package 'reduce_lib' not found in library 'ctu_can_fd_rtl' [/builds/canbus/zynq/zynq-can-sja1000-top/system/src/top/ipshared/d52f/bus_
sampling/bit_err_detector.vhd:65]
ERROR: [Synth 8-4169] error in use clause: package 'can_fd_register_map' not found in library 'ctu_can_fd_rtl' [/builds/canbus/zynq/zynq-can-sja1000-top/system/src/top/ipshared/
d52f/bus_sampling/bit_err_detector.vhd:67]
ERROR: [Synth 8-4169] error in use clause: package 'can_fd_frame_format' not found in library 'ctu_can_fd_rtl' [/builds/canbus/zynq/zynq-can-sja1000-top/system/src/top/ipshared/
d52f/bus_sampling/bit_err_detector.vhd:68]
I am not sure about the best solution. Inside library, the reference to itself can still use work, because work is a keyword. Some more discussion on a Vivado discussion pages
https://forums.xilinx.com/t5/Design-Entry/VHDL-Package-in-Vivado/td-p/835945
Other Vivado library discussion
https://forums.xilinx.com/t5/Synthesis/Using-libraries-in-Vivado/td-p/816436
Quartus/Intel FPGA tools build accepts library reference to its actual name without any issue.