Knowledge Center
Knowledge Center

hardware/software co-design

Optimizing the design by using a single language to describe hardware and software.


Hardware/software co-design is when the software and hardware are developed simultaneously, bringing the software and hardware teams together to optimize a design.

The initial idea behind co-design was that a single language could be used to describe hardware and software. With a single description, it would be possible to optimize the implementation, partitioning off pieces of functionality that would go into accelerators, pieces that would be implemented in custom hardware and pieces that would run as software on the processor—all at the touch of a button.

Although the concept failed for a few reasons, several technologies did come out of the co-design efforts, including virtual prototypes, co-verification, high-level synthesis (HLS) and software synthesis, although this last technology was not developed within the traditional EDA companies.