Tools

IP Core Library

Reuse known-good cores instead of asking for the same block to be written again.

The best RTL is often RTL you do not write. With the IP Core Library on, a run first checks a catalog of known-good cores and uses a match if there is one, rather than reinventing the block from your description.

How it works

The catalog holds core names and short descriptions. Before generation, your specification is compared against it; if something matches closely enough, that core informs the implementation instead of a fresh design. If nothing matches, the run proceeds exactly as it would have with the switch off.

The important part of that last sentence: turning this on never blocks a run. The worst case is that it finds nothing and costs a few seconds.

When it pays off

  • Standard peripherals. UARTs, SPI masters, I2C controllers, PWM generators; blocks with a settled, well-understood shape.
  • Bus infrastructure. Interconnect, bridges, register files.
  • Common datapath elements. FIFOs, CDC synchronisers, CRC units.

And when it does not:

  • Anything genuinely specific to your design; there is nothing in a catalog to match.
  • Blocks where you care more about matching your own conventions than about reuse.
  • VHDL output, where the switch is unavailable.

Reviewing a reused core

A reused core is still your responsibility. Read it the way you would read anything from an external source:

  • Check the reset style against the rest of your design.
  • Check the parameter defaults; a core built for 8 bits will happily be instantiated at 8 bits.
  • Run the testbench. Auto-Verify covers reused cores as well as generated ones.