System on Chip (SoC) integrates processor, memory and other components onto a single chip. Advances in VLSI technology allow millions of transistors to be placed on a single die, enabling entire systems to be implemented as SoCs. This provides benefits like lower cost, power consumption and size compared to discrete components. However, designing highly complex SoCs presents challenges related to design time, verification and complexity. Reusing pre-designed and verified intellectual property (IP) cores is a solution that helps manage this complexity.