Introduction to hardware/software codesign. A general overview
Introduction à la conception conjointe matériel/logiciel- Une vision générale
Résumé
This paper presents an introduction to hardware/software codesign for system-on-chip. It exposes general principles and concepts that enable to describe, evaluate/analyze and implement these systems. For that purpose, it relies on key design steps, found in usual codesign approaches, including specification and modeling of system characteristics (requirements, fonctionalities, etc.), partitioning into hardware and software components which is central here, synthesis and verification for infering an implementation of both components while guaranteeing that system requirements are met. The crucial methodological question for the designer is also addressed. Finally, an open discussion about possible impact of emerging technologies (non volatile memories, etc.) and new computing paradigms (neuro-inspired, quantum computing, etc.) on system codesign is proposed.
Cet article présente une introduction à la conception conjointe matériel/logiciel des systèmes intégrés sur puce. Il expose des principes et concepts généraux servant à décrire, à évaluer/analyser et à mettre en œuvre ces systèmes. Pour cela, il s’appuie sur les étapes clés que l’on retrouve dans les approches classiques en conception conjointe, à savoir la spécification et la modélisation des caractéristiques d’un système (exigences, fonctionnalités, etc.), le partitionnement en parties matérielle et logicielle qui est central, la synthèse et la vérification qui permettent d’inférer des mises-en-œuvre des deux parties et de garantir qu’elles répondent aux exigences des systèmes. La question méthodologique cruciale pour le concepteur est également abordée. Enfin, une réflexion ouverte est abordée sur un possible impact des technologies émergentes (mémoires non volatiles, etc.) et des nouveaux paradigmes de calcul (neuro-inspiré, quantique, etc.) sur la conception conjointe.