In information technology, design reuse is the inclusion of previously designed components (blocks of logic or data) in software and hardware. The term is more frequently used in hardware development. Design reuse makes it faster and cheaper to design and build a new product, since the reused components will not only be already designed but also tested for reliability. Developers can reuse a component in both similar and completely different applications: for example, a component used as part of a central processing unit ( CPU ) for a PC could be reused in a handheld device or a set-top box. In hardware development, components in design reuse are called IP cores (intellectual property cores).
Design reuse is a somewhat controversial issue within the electronic design automation ( EDA ) industry for a number of reasons, including the desire of many engineers to design the complete product, and - according to some - the conservative nature of engineers as a group. A number of organizations, such as the Free-IP Project and OpenCores, have formed to promote design reuse.