I have never come across this problem before when uses black-boxes inside custom IP. Usually I instantiate and add the custom IP to the project, and then instantiate and add the black box IP modules (the black boxes are inside the custom IP) to the project.
For some reason now I am getting the classic
[Project 1-486] Could not resolve non-primitive black box cell 'FX_Thomas_Core_0FX_Thomas_Core_0FX_Thomas_Core_0Thomas_Sub' instantiated as 'Subtractor' ["c:/Users/Sam/Documents/Zynq7020/FX_Parallel_Thomas_Solver/FX_Parallel_Thomas_Solver.srcs/sources_1/ip/FX_Thomas_Core_0/work/FXThomasCore.srcs/sources_1/imports/sources_1/imports/Sam/Documents/Zynq7020/Thomas_Solver_1.1/mult_sub_core.vhd":109]
Here you can see I am trying to use a black box subtractor inside the custom IP, as described above, I have created and added the subtractor ip (with the correct name) to my project yet it fails to compile this into the black box during implementation.
Am I missing a project setting so it picks up and replaces this black box with the project IP?
Just to add clarity to the question:
Project
-> AXI_Perph
-> My_IP(Imported from IP Catalog)
-> Subtractor Black Box
The subtractor is left as a black box in My_IP so in projects I have the flexibility to change the algorithms used by adding the subtractor IP to the project (correctly named and pins matching those of the black box).
Yet I have tried everything I can think of (even turning off the black boxes and repacking My_IP) but for some reason, vivado is being stuborn and not finding it!
Sam