Hardware/Software Co-design
Résumé
Co-design is an important step during rapid system prototyping. Starting from a system-level specification, Co-design produces a heterogeneous architecture composed of software, hardware, and communication modules. This paper gives a taxonomy of co-design starting from a system-level specification and producing a heterogeneous architecture including the descriptions of hardware and software. Co-design is generally decomposed into four refinement steps: system-level specification, system-level partitioning, communication synthesis, and architecture generation. However, the co-design process depends on the kind of input language (synchronous/asynchronous, single thread/multi-thread) and the target architecture (mono-processor/multi-processor). The main co-design concepts are also detailed through the presentation of a co-design tool called COSMOS.