Very often, the functionality of these systems is determined by the embedded software. This evolution in ASIC design has forced changes in design methodologies to address system design, analysis, and verification. Systems designers now leverage previously designed circuits including controllers, interfaces, memory arrays, DSPs, or virtually any other type of functions. Soft cores are defined in synthesizable RTL or a netlist of library elements. The systems designer is responsible for synthesizing to gates, and optimizing the design all the way through layout.
Soft cores are the most flexible and portable, but they are also the least predictable.
The final core parameters such as performance, area, and power depend on the system designer's skill, the flow, and tools used in the design process. Firm cores are structurally optimized for performance and area using a list of process technologies. They are more predictable than soft cores but not tied to a specific process. They are also more flexible and portable than hard cores, but they do not guarantee the same level of performance. In contrast, hard cores come as a layout for a specific process technology optimized for performance, power, and area.