IP cores are pre-designed, pre-tested, integrated circuits (ICs) or printed circuit boards (PCBs) with industry-standard functions that can be easily used in embedded applications. Generally, IP cores are treated as intellectual property (IP) and licensed to original equipment manufacturers (OEM). Companies that supply IP cores are located across North America and around the world.
IP cores are designed to be reusable hardware components, similar to the way that object-oriented software programming allows for the reuse of modular software components. This enables application-specific integrated circuit (ASIC) designs to be built more quickly and at a lower cost - ensuring a better opportunity to make it to the marketplace. IP cores for integration with new circuit designs are purchased from established vendors. For some small businesses, proprietary IP cores can be prohibitively expensive. Consequently, some hardware open source organizations are banding together to offer free core designs in the same way the open source software community shares programming knowledge and code. Open source IP cores are a way for teams to integrate hardware cores into a developing project without purchasing expensive proprietary IP cores. The purpose of the open source IP core project is also to help develop standards and practices for creating IP cores and platforms and to encourage documentation of procedures.
IP cores are typically comprised of application-specific integrated circuits (ASIC) or field programmable gate arrays (FPGA). An FPGA is a semiconductor device that also contains programmable logic components which may be programmed after the manufacturing process. IP cores include hardware for central processing units (CPUs), digital signal processors (DSPs), interface controllers, encryption and decryption, visualizations, and storage controllers. IP cores may also control networking and connectivity features of a computer or network.
IP cores are developed and tested using a variety of tools. IP core development tools include electronic design automation (EDA) tools such as simulators and data bus width and pipeline generators.