When I synthesize my design, all of the IP cores are added to the IP cache apart from one or two (for example, a 10G Ethernet IP core).
Why are these IP cores not cached when all of the others are?
An IP will not be cached if Vivado does not find the required license for the IP core.
In Vivado 2017.3, an IP will not be cached if any of the possible required features for the IP are not licensed, regardless of whether the specific feature is required for the IP core being used.
For Example: If you have a 10G Ethernet IP core that uses the baser but not the basekr feature, you would only need the baser feature licensed in order to generate the IP and implement a design using this IP core (No basekr license would be required).
However, unless Vivado finds a full license (bought) for both the baser and the baskr features, the IP core will not be cached.
In Vivado 2017.3 this affects the following IP:
To get a complete list of IP that might use more than one license feature run the following Tcl command in the Tcl console.
Having a Design linking (Simulation) or hardware evaluation license will not be sufficient to enable caching of an IP.
This issue is fixed in Vivado 2017.4.