Les circuits intégrés permettent l’intégration de fonctions logiques dans une puce de silicium, fonctions basées sur un élément unitaire qui est le transistor. La puissance de ces circuits augmente avec le nombre de transistors, mais une limitation apparaît. En effet, la dissipation thermique devient trop importante en présence d’un grand nombre de composants. Les architectures parallèles offrent une réponse intéressante à cette limitation, puisque la puissance dissipée ne varie plus exponentiellement avec la puissance de calcul comme dans une machine monoprocesseur, mais linéairement sur une machine multiprocesseur.
Par ailleurs, des évolutions importantes apparaissent également aux niveaux logiciel et applicatif. Au regard de tous ces changements, la méthodologie dite de conception-conjointe ou « co-conception » matériel/logiciel apporte une réponse intéressante pour une implantation efficace des systèmes intégrés sur puce.
Cet article offre un aperçu général des principes et concepts généraux relatifs à la conception conjointe matériel/logiciel. Cela est organisé autour des principales étapes d’un flot classique de conception : dans un premier temps, nous abordons la question de la spécification et de la modélisation ; ensuite, nous introduisons les enjeux du partitionnement matériel/logiciel, suivi d’une présentation générale concernant la synthèse et les techniques de vérification ; enfin, des aspects méthodologiques sont discutés au travers d’une illustration basée sur quelques environnements de conception conjointe basée sur des modèles. En guise de discussion ouverte sur une évolution possible des pratiques courantes en conception conjointe matériel/logiciel, nous proposons une brève réflexion concernant les technologies émergentes et les nouveaux paradigmes de calcul.