8
Préambule : Les enjeux de la synthèse de haut niveau dans le domaine spatial… Préambule rédigé par Florent Manni CNES DCT/TV/IN La mise en place d’outils de synthèse de haut niveau (HLS) dans le spatial commence à prendre son envol, poussée notamment par les besoins d’intégration des applications de traitement du signal et de l’image. Par le passé, un algorithme de compression d’images était décrit et validé à différents niveaux d’abstraction : Matlab, C, C quantifié puis VHDL. Une modification de l’algorithme initial (liée par exemple à une infaisabilité en VHDL) nécessitait une réitération complète du processus de conception. Aujourd’hui, au moyen d’outils HLS, la modification au niveau de l’algorithme initial implique uniquement une réitération au premier niveau ; les étapes de raffinement amenant à la génération de l’architecture matérielle (VHDL) étant alors réalisées automatiquement. Tel était l’un des objectifs lors de la réalisation de l’étude R&T CNES portant sur un algorithme de détection de nuages. La conception de l’architecture, sous contrainte de performance, implantant cet algorithme fut développée en Matlab-Simulink et le VHDL obtenu automatiquement à l’aide d’outil de Conception Assistée par Ordinateur (CAO) : Simulink HDL Coder. Cette étude a permis d’évaluer les performances (débit et occupation en surface sur cible FPGA) de l’architecture matérielle implantant cet algorithme, dans un temps compatible du planning de l’étude R&T, tout en offrant en plus une souplesse au niveau de la modification de l’algorithme initial. L’outil HLS GAUT, développé par le laboratoire Lasticc, constitue une des briques de bases de l’atelier de codesign développé dans le cadre du projet SOCKET. Le logiciel GAUT est spécialisé dans la génération d’architectures matérielles (VHDL) pour les algorithmes de traitement avec comme point d’entrée un code algorithmique décrit en langage C. Cet outil permet, au sein de l’atelier, d’effectuer l’exploration des compromis lors de l’analyse de la répartition matérielle/logicielle (codesign) d’un algorithme complexe. Les industriels ont déjà anticipé ces changements, et certains d’entre eux ont déjà intégré des outils HLS (Mentor Catapult C Synthesis par exemple) dans leur processus de réalisation. Un tel logiciel permet, à partir d’un code embryonnaire développé en C, d’analyser, en un temps record, la faisabilité d’un algorithme voire même d’une unité de traitement entière. Ceci aidant grandement à la consolidation des réponses aux appels d’offres. La conception d’ASIC spatiaux a aussi bénéficié de ce type de logiciel, permettant un lien direct entre la fonctionnalité décrite et validée en C, et la description matérielle produite automatiquement en VHDL avec son testbench associé. Le VHDL généré devenant alors plus robuste car généré de manière automatique et fiable par le logiciel. Cela permet de limiter les risques d’une deuxième fonderie pouvant avoir des conséquences importantes sur un projet. Bien entendu, tout cela nécessite un investissement tant sur le plan humain (la maitrise de ce genre de concept et d’outils demande un long apprentissage) que financier (le prix d’une licence annuelle de Catapult C Synthesis se compte en centaines de kilos euros) ; mais l’augmentation des capacités de traitements et la complexité de ces traitements rendent désormais un tel investissement rentable voire nécessaire. 1. Introduction La complexité des applications de traitement du signal et de l’image (TDSI) en général et de télécommunication en particulier croît exponentiellement parallèlement à la complexité d’intégration des circuits. Tous les acteurs s’accordent à souligner le point d’achoppement que forment les outils d’aide à la conception (Conception Assistée par Ordinateur, CAO). La complexité 4 Actualité Composants du CNES n° 36 La synthèse de haut-niveau, un atout indéniable pour la construction de systèmes complexes ? Bertrand LE GAL, Aurélien RIBON Christophe JEGO et Dominique DALLET Laboratoire IMS - UMR 5218, Talence. [email protected] CCT 36 - rédac 7/06/11 9:12 Page 4

La synthèse de haut-niveau, un atout indéniable pour la ...legal.vvv.enseirb.fr/download/PUBS/2011-article-cnes.pdf · Préambule : Les enjeux de la synthèse de haut niveau dans

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: La synthèse de haut-niveau, un atout indéniable pour la ...legal.vvv.enseirb.fr/download/PUBS/2011-article-cnes.pdf · Préambule : Les enjeux de la synthèse de haut niveau dans

Préambule : Les enjeux de la synthèse de haut niveau dans le domaine spatial…

Préambule rédigé par Florent Manni CNES DCT/TV/IN

La mise en place d’outils de synthèse de haut niveau (HLS) dans le spatial commence à prendre son envol, poussée notammentpar les besoins d’intégration des applications de traitement du signal et de l’image.Par le passé, un algorithme de compression d’images était décrit et validé à différents niveaux d’abstraction : Matlab, C, Cquantifié puis VHDL. Une modification de l’algorithme initial (liée par exemple à une infaisabilité en VHDL) nécessitait uneréitération complète du processus de conception.Aujourd’hui, au moyen d’outils HLS, la modification au niveau de l’algorithme initial implique uniquement une réitération aupremier niveau ; les étapes de raffinement amenant à la génération de l’architecture matérielle (VHDL) étant alors réaliséesautomatiquement.Tel était l’un des objectifs lors de la réalisation de l’étude R&T CNES portant sur un algorithme de détection de nuages. Laconception de l’architecture, sous contrainte de performance, implantant cet algorithme fut développée en Matlab-Simulink etle VHDL obtenu automatiquement à l’aide d’outil de Conception Assistée par Ordinateur (CAO) : Simulink HDL Coder. Cetteétude a permis d’évaluer les performances (débit et occupation en surface sur cible FPGA) de l’architecture matérielleimplantant cet algorithme, dans un temps compatible du planning de l’étude R&T, tout en offrant en plus une souplesse auniveau de la modification de l’algorithme initial.L’outil HLS GAUT, développé par le laboratoire Lasticc, constitue une des briques de bases de l’atelier de codesign développédans le cadre du projet SOCKET. Le logiciel GAUT est spécialisé dans la génération d’architectures matérielles (VHDL) pourles algorithmes de traitement avec comme point d’entrée un code algorithmique décrit en langage C. Cet outil permet, au seinde l’atelier, d’effectuer l’exploration des compromis lors de l’analyse de la répartition matérielle/logicielle (codesign) d’unalgorithme complexe.Les industriels ont déjà anticipé ces changements, et certains d’entre eux ont déjà intégré des outils HLS (Mentor Catapult CSynthesis par exemple) dans leur processus de réalisation. Un tel logiciel permet, à partir d’un code embryonnaire développéen C, d’analyser, en un temps record, la faisabilité d’un algorithme voire même d’une unité de traitement entière. Ceci aidantgrandement à la consolidation des réponses aux appels d’offres.La conception d’ASIC spatiaux a aussi bénéficié de ce type de logiciel, permettant un lien direct entre la fonctionnalité décriteet validée en C, et la description matérielle produite automatiquement en VHDL avec son testbench associé. Le VHDL générédevenant alors plus robuste car généré de manière automatique et fiable par le logiciel. Cela permet de limiter les risques d’unedeuxième fonderie pouvant avoir des conséquences importantes sur un projet.Bien entendu, tout cela nécessite un investissement tant sur le plan humain (la maitrise de ce genre de concept et d’outilsdemande un long apprentissage) que financier (le prix d’une licence annuelle de Catapult C Synthesis se compte en centainesde kilos euros) ; mais l’augmentation des capacités de traitements et la complexité de ces traitements rendent désormais un telinvestissement rentable voire nécessaire.

1. Introduction

La complexité des applications de traitement du signal et de l’image (TDSI) en général et de télécommunication en particuliercroît exponentiellement parallèlement à la complexité d’intégration des circuits. Tous les acteurs s’accordent à souligner lepoint d’achoppement que forment les outils d’aide à la conception (Conception Assistée par Ordinateur, CAO). La complexité

4 Actualité Composants du CNES n° 36

La synthèse de haut-niveau,un atout indéniable pour la construction de systèmes complexes ?

Bertrand LE GAL, Aurélien RIBONChristophe JEGO et Dominique DALLETLaboratoire IMS - UMR 5218, Talence.

[email protected]

CCT 36 - rédac 7/06/11 9:12 Page 4

Page 2: La synthèse de haut-niveau, un atout indéniable pour la ...legal.vvv.enseirb.fr/download/PUBS/2011-article-cnes.pdf · Préambule : Les enjeux de la synthèse de haut niveau dans

5

des applications oblige à fractionner les conceptions pour des équipes de spécialistes. À ce stade, la réutilisation est un facteurd’économie de temps fondamental. Toutefois, la discontinuité du flot de conception entre la description algorithmique del’application et la spécification de l’architecture matérielle induit la nécessaire vérification du comportement de l’architecture.Cette étape introduit un délai supplémentaire dans le flot de conception.

Afin de pallier à cette discontinuité dans les flots de conception, des méthodes automatisées ont été proposées et intégrées dansdes outils de CAO. Cette étape est connue sous les termes synthèse de haut niveau ou synthèse d’architectures (et en langueanglaise High-Level Synthesis – HLS).

La synthèse d’architectures [1, 2] est un processus automatisé de conception qui interprète une description algorithmique d’uneapplication et génère l’architecture matérielle, au niveau transfert de registres (Register Transfer Level, RTL), qui implante cecomportement. Les outils de synthèse d’architectures font partie intégrante des flots de synthèse comportementale quipromettent une élévation du niveau d’abstraction d’un flot de conception. Cette élévation du niveau d’abstraction favorise laproductivité et prémunie contre les erreurs de conception.

Le domaine d’application de ces outils de synthèse ne couvre pas l’ensemble des besoins en terme de conception. Comme lemontre la Figure 1, l’espace de conception couvert par de tels outils se situe essentiellement entre les architectures deprocesseurs avec jeu d’instructions (cœur de processeur généraliste ou spécialisé) et les architectures dédiées.

L’espace d’exploration architecturale résulte de compromis entre implantations parallèles et séquentielles, difficile à investiguerlors de conceptions manuelles. Cette difficulté s’explique par le nombre important de paramètres à gérer simultanément par leconcepteur : le nombre et le type de ressources de calcul (pipeline, multicycles, etc.), l’ordonnancement temporel desopérations, les interconnexions et la structure de l’unité de contrôle. Les outils de synthèse de haut niveau proposent uneautomatisation du flot permettant de réaliser ces différentes étapes sous contrainte.

Figure 1. - Le champ d’application de la synthèse de haut niveau.

À partir d’une description algorithmique d’une application exprimée dans un langage de haut niveau tel que le langage C ouSystemC, les outils de synthèse de haut niveau génèrent automatiquement une description architecturale de niveau RTL(Figure 2). Cette description de niveau RTL peut être ensuite exploitée par les outils de synthèse logique du marché (tels DesignCompiler ou RTL Precision) afin de générer une architecture au niveau portes logiques (Netlist).

Figure 2. - Exemple d’architecture de niveau RTL obtenue à partir d’une description algorithmique.

Actualité Composants du CNES n° 36

Architecturesséquentielles

Architecturesparallèles

Débit théorique

Coût

en

surfa

ce

Architectures issues de flotsde synthèses d’architectures

CCT 36 - rédac 7/06/11 9:12 Page 5

Page 3: La synthèse de haut-niveau, un atout indéniable pour la ...legal.vvv.enseirb.fr/download/PUBS/2011-article-cnes.pdf · Préambule : Les enjeux de la synthèse de haut niveau dans

L’utilisation d’outils de synthèse d’architecture permet auconcepteur de se focaliser sur la fonctionnalité d’un moduleà concevoir ainsi que sur ses interfaces de communication.Pour ce faire, la définition de l’architecture d’implantation etl’ordonnancement des opérations cycle par cycle sontproposés lors de la synthèse.

Afin d’aboutir à une solution architecturale exploitable dansun système réel, les outils supportent différentes contraintes:

- La contrainte matérielle – dans ce cas de figure, leconcepteur spécifie à l’outil l’ensemble des ressourcesmatérielles que ce dernier peut utiliser pour la définition del’architecture. Généralement, cette spécification se limiteaux éléments de la partie opérative. À l’aide de cetteinformation, l’outil produit une architecture possédant laplus faible latence possible.

- La contrainte temporelle – dans ce second cas, leconcepteur va fournir à l’outil le débit sous forme decadence que doit respecter l’architecture. À partir de cetteinformation, l’outil de HLS va concevoir une architecturerespectant cette contrainte tout en minimisant le nombre deressources matérielles.

Toutefois, ces deux contraintes sont insuffisantes pourspécifier finement le comportement attendu. Afin d’obtenirun résultat exploitable dans un système complexe, leconcepteur peut spécifier d’autres contraintes d’intégrationcomme :

- La latence - qui permet de spécifier le nombre maximumde cycles d’horloge entre le début et la fin de l’exécution dela description algorithmique.

- Le protocole de communication – afin d’interconnectersimplement l’architecture générée avec les autres élémentsdu système, il est important de décrire le protocole decommunication.

- Le type et la dynamique des données. L’étude de ladynamique des données est généralement à la charge duconcepteur. Toutefois, des méthodes automatiques [3, 4, 5]ont été proposées et intégrées au sein de certains outils deHLS. Elles permettent par exemple de dimensionnerautomatiquement les opérateurs en fonction des données etde déterminer le codage en virgule fixe (et les opérationsassociées) en fonction d’une contrainte de rapport signalsur bruit de quantification.

À partir de l’ensemble de ces contraintes, l’outil de HLS estcapable de synthétiser une architecture matérielle répondantaux besoins fonctionnels et non fonctionnels du concepteur.Ainsi le processus de synthèse permet de générer unearchitecture matérielle dédiée pour chaque couple(application, contraintes de synthèse). Pour une mêmedescription algorithmique de l’application, différentesarchitectures peuvent être obtenues en modifiant lescontraintes de synthèse.

De nombreux articles scientifiques [1, 2, 6] proposantdifférentes contributions à cette problématique ont étépubliés durant les deux dernières décennies. De manièreanalogue, un nombre important de cas d’étude et de résultatsd’implantation ont été détaillés [7, 8, 9, 10]. L’analyse de ces

études montre que concevoir à partir d’un haut niveaud’abstraction à l’aide d’outils de synthèse de haut niveaupermet de réduire de 2/3 le nombre des lignes de codeécrites. Par ailleurs, les utilisateurs de telles méthodologiesestiment que l’effort de conception est réduit d’au moins50%.

2. Le processus de synthèse de haut niveau

Le processus de synthèse comprend plusieurs étapes clefs [1,2]. Le nombre et l’ordre d’exécution de ces étapes varient enfonction des méthodologies. Toutefois nous allons dans cettepartie détailler un flot standard. L’ensemble des étapes deraffinement automatique est présenté dans la figure 4.

Figure 3. - Flot de conception standard employé dans les outils de synthèse d’architectures.

Afin de permettre à l’outil de synthèse de construire unearchitecture matérielle, le concepteur doit fournir en entréedu flot : la description algorithmique de l’application, un jeude contraintes et une bibliothèque de ressources matériellesdétaillant les caractéristiques de la technologie ciblée. Àpartir de ces différentes informations, l’outil de synthèse vaenchainer différentes étapes afin d’aboutir à la générationd’une l’architecture matérielle au niveau RTL.

L’étape de « Compilation »

Le point d’entrée du flot de synthèse est une descriptionalgorithmique de la fonctionnalité à implanter. Cecomportement est décrit dans un langage de haut niveau(Matlab, SystemC, C, etc.). La première étape du flot desynthèse est l’étape de compilation. Cette étape réalise lavérification syntaxique et sémantique de la descriptionalgorithmique et la traduit en un format intermédiaire propreà l’environnement de synthèse. Ce modèle interne décritl’application ainsi que l’ordre d’exécution des opérations enfonction des dépendances de données. À ce stade, aucuneinformation temporelle n’est associée au modèle.

6 Actualité Composants du CNES n° 36

CCT 36 - rédac 7/06/11 9:12 Page 6

Page 4: La synthèse de haut-niveau, un atout indéniable pour la ...legal.vvv.enseirb.fr/download/PUBS/2011-article-cnes.pdf · Préambule : Les enjeux de la synthèse de haut niveau dans

L’étape « d’Optimisation du modèle interne »

Une étape d’optimisation peut être ensuite appliquée aumodèle de représentation interne. Les techniques employéessont communes à celles employées dans les étapes decompilation logicielle : propagation des expressionsconstantes, élimination des sous expressions communes,élimination du code mort, suppression des invariants deboucles, etc.

L’étape « d’analyse de la bibliothèque matérielle »

L’architecture matérielle générée par l’outil de synthèsedépend des ressources disponibles pour la technologie cible(ASIC ou FPGA) et de leurs caractéristiques. Afin derenseigner l’outil sur ce point, une bibliothèque regroupantces différentes informations est nécessaire. La lecture decette bibliothèque permet d’identifier les ressourcesmatérielles disponibles ainsi que leurs caractéristiquespropres (surface, temps de propagation, consommationd’énergie, utilisation de structure pipeline, etc.). La qualitéde l’exploration architecturale pour l’application augmenteraparallèlement à la richesse de la bibliothèque matérielle(nombre d’opérateurs de caractéristiques différentes réalisantune même fonction).

L’étape « de Sélection et d’Allocation » des ressources

L’étape d’allocation a pour objectif de déterminer l’ensembledes ressources matérielles nécessaires à l’implantation del’application sous contrainte (nombre et nature desressources). Il s’agira dans le cadre d’une synthèse souscontrainte de débit ou latence de déterminer le nombre deressources de chaque type à mettre en œuvre afin derespecter la contrainte fixée et de minimiser la complexité del’architecture. Dans le cadre d’une synthèse sous contraintematérielle, il s’agit pour le concepteur de fournir à l’outil laliste des ressources matérielles que ce dernier peut utiliser.Le nombre et le type des ressources peuvent toutefois êtreremis en cause durant les étapes suivantes (ordonnancementet assignation).

L’étape « d’Ordonnancement » des opérations

L’étape d’ordonnancement des opérations est à l’origine del’introduction de la notion de temps. L’objectif est d’associerà chaque opération de la description une date d’exécution.Cette étape primordiale se base sur les dépendances existantentre les données ainsi que sur le nombre et le type desressources de calcul afin d’assigner chaque opération à uncycle de calcul. En fonction des contraintes imposées par leconcepteur et des critères d’optimisation, le résultat del’ordonnancement peut varier mais il assure toutefois lerespect des contraintes imposées. Dans certains flots il estpossible de réaliser cette étape en amont de la phase desélection et allocation des ressources.

L’étape « d’Assignation »

Suite aux étapes de sélection, d’allocation etd’ordonnancement, il est nécessaire d’associer les opérationsaux unités fonctionnelles retenues. Par ailleurs, les donnéesproduites et consommées par les unités fonctionnellesnécessitent la mise en œuvre d’éléments de mémorisation

(mémoires et registres). Une analyse de la durée de vie desdonnées permet de déterminer celles qui peuvent partager unmême élément de mémorisation afin de minimiser le nombrede ressources à allouer. Suite à cette analyse, les ressourcesde mémorisation nécessaires sont instanciées et les variablesleurs sont assignées. Finalement, les ressourcesd’interconnexions (multiplexeurs, tri-states) permettant delier les unités fonctionnelles aux éléments de mémorisationsont allouées. À la fin de cette étape, l’architecture matérielledu chemin de données (partie opérative) est intégralementdéfinie et la machine d’états (FSM) de la partie contrôle peutêtre construite.

L’étape de « Génération » de l’architecture

Le chemin de données de la partie opérative et la machined’états de la partie contrôle résultant des étapes précédentessont décrits sous forme de code source de niveau RTL dansun ou plusieurs fichiers. Cette description RTL peut êtrestructurée de différentes manières afin par exempled’optimiser le processus de synthèse logique venant ensuitedans le flot de conception. Lors de la générationd’architectures plus complexes, incluant de forts besoins enterme de mémorisation ou la définition de protocoles decommunication avec le reste du système, des étapessupplémentaires peuvent être nécessaires [11].

3. Exemple d’illustration

Pour illustrer le processus mis en œuvre, nous allonsconsidérer un cas d’étude spécifié en langage C (Figure 4).Nous prenons pour hypothèse que l’ensemble des entrées dece calcul sont des entiers relatifs codés sur 8 bits.

Figure 4. - Description de niveau algorithmique de l’architecture à concevoir.

Afin de définir l’architecture matérielle capable de réaliser cecalcul, il faut classiquement prendre en considération leprotocole de communication pour les entrées et les sorties.Toutefois dans le cadre de cet exemple, nous masqueronsvolontairement cette contrainte afin de nous focaliser sur leprocessus de synthèse de haut niveau proprement dit.

La phase de génération du modèle interne de calcul (graphede type Control/Dataflow) produit un modèle comparable àcelui présenté dans la Figure 5.

7Actualité Composants du CNES n° 36

CCT 36 - rédac 7/06/11 9:12 Page 7

Page 5: La synthèse de haut-niveau, un atout indéniable pour la ...legal.vvv.enseirb.fr/download/PUBS/2011-article-cnes.pdf · Préambule : Les enjeux de la synthèse de haut niveau dans

8

Figure 5. - Représentation de l’application sous forme de graphe (modèle de calcul interne à l’outil).

Nous supposerons que la bibliothèque matérielle associée à la cible technologique visée dispose des unités fonctionnellessuivantes :- Multiplieur 8b x 8b ==> Surface = 2862 Nand & Chemin critique = 2.18 nsi- Multiplieur 16b x 16b ==> Surface = 11694 Nand & Chemin critique = 4.53 ns- Additionneur 16b + 16b ==> Surface = 127.3 Nand & Chemin critique = 1.14 ns- Additionneur 32b + 17b ==> Surface = 386.3 Nand & Chemin critique = 2.73 ns

De plus, la contrainte de synthèse retenue est une contrainte temporelle. Dans ce cas, le nombre de cycles d’horloge accordé àl’exécution d’une itération de l’algorithme est fixé à 6 cycles. Nous pouvons donc commencer la phase de synthèse enconsidérant la sélection suivante :- Un multiplieur (8b x 8b => 16b)- Un multiplieur (16b x 16b => 32b)- Un additionneur (16b + 16b => 17b)- Un additionneur (17b + 32b => 33b)

Un opérateur de chaque type est alors alloué. À partir de cette allocation, en supposant que chaque opération nécessite un seulcycle d’horloge, nous obtenons l’ordonnancement suivant.

Figure 6. - Diagramme de Gantt obtenu après l’étape d’ordonnancement en considérant l’assignation initiale.

Dans ce cas, le nombre de ressources matérielles est important et leur taux respectif d’utilisation est très faible. Afin deminimiser la complexité matérielle du circuit, cet ordonnancement / assignation basique doit être amélioré en partageant plusefficacement les ressources matérielles. Par exemple, le multiplieur 32 bits peut réaliser les opérations de dynamique inférieure.Une minimisation des ressources matérielles aboutit au résultat d’ordonnancement/assignation présenté dans la Figure 7.

Figure 7. - Diagramme de Gantt obtenu après l’étape d’optimisation du nombre des ressources matérielles.

Actualité Composants du CNES n° 36

CCT 36 - rédac 7/06/11 9:12 Page 8

Page 6: La synthèse de haut-niveau, un atout indéniable pour la ...legal.vvv.enseirb.fr/download/PUBS/2011-article-cnes.pdf · Préambule : Les enjeux de la synthèse de haut niveau dans

9

Dans un second temps, nous souhaitons implanter cette application pour une contrainte de débit plus élevée. Le nombre deressources matérielles à mettre en œuvre (automatiquement calculé par l’outil) va alors croitre. Imaginons que la contrainte delatence soit maintenant fixée à 5 puis 4 cycles. Les ordonnancements obtenus sont respectivement présentés dans les Figures8a et 8b.

(a) (b)Figure 8. - Diagrammes de Gantt obtenus pour des contraintes de latence de 5 et 4 cycles d’horloge.

À l’issu de l’ordonnancement, l’outil de synthèse doit réaliser l’étape d’assignation. Pour chaque opération ordonnancée, il doitdéterminer sa projection au sein de l’unité opérative en répondant à la problématique : parmi les n ressources matériellesdisponibles pour la fonction f, laquelle doit réaliser l’opération o de type f au cycle d’horloge t. A la fin de cette étape (ou enparallèle), l’outil construit les chemins des données d’interconnexion entre les opérateurs matériels ainsi que les files deregistres nécessaires à la mémorisation des résultats de calcul.Par exemple le résultat obtenu pour l’ordonnancement présenté dans la Figure 8a est fourni dans la Figure 9. Par souci delisibilité, seuls les opérateurs et les chemins de données sont représentés.

Figure 9. - Architecture matérielle (opérateurs et multiplexeurs) issus de l’ordonnancement fourni en Figure 8a.

4. Application à un filtre à réponse impulsionnelle finie (FIR)

L’automatisation de la phase de génération des architectures matérielles permet rapidement au concepteur d’explorer l’espacedes solutions architecturales. Cette exploration est réalisée en modifiant les contraintes imposées à l’outil de synthèse. La figure10a présente des résultats obtenus lors de la synthèse d’un filtre de type de type FIR 64 points pour une technologie ASIC 65nm.Les données manipulées par ce filtre sont de type flottant codées sur 32 bits (norme IEEE-754).Les résultats présentés dans la Figure 10a ont été obtenus en spécifiant différentes contraintes de débit pour une mêmeapplication. L’ensemble des architectures générées a été obtenu en moins d’une minute. Une étude comparative desperformances d’implantation a été réalisée sur un FPGA (Xilinx Virtex-4). Les résultats sont présentés dans la Figure 10b.L’unique modification réalisée par le concepteur afin d’effectuer cette comparaison provient du changement dans le choixbibliothèque technologique. Cependant, malgré les différences technologiques, dans ces deux cas d’étude, le coût matériel del’architecture croît avec l’augmentation de la contrainte de débit : l’outil de HLS augmente le nombre d’opérateurs matérielsafin de satisfaire la contrainte imposée. L’augmentation du coût en surface s’effectue sous forme de paliers car afin de supporterdes débits supérieurs, il n’est pas toujours nécessaire d’allouer de nouvelles ressources (augmentation du taux d’utilisation decertaines ressources sous-exploitées précédemment). Cet exemple basé sur une application « simple » démontre qu’en un tempsrestreint, il devient possible d’explorer l’espace des solutions architecturales sur une ou plusieurs technologies cibles.

(a) (b)Figure 10. - Résultats (surface) obtenus lors de la synthèse d’un filtre RIF avec différentes contraintes de débit.

Actualité Composants du CNES n° 36

CCT 36 - rédac 7/06/11 9:12 Page 9

Page 7: La synthèse de haut-niveau, un atout indéniable pour la ...legal.vvv.enseirb.fr/download/PUBS/2011-article-cnes.pdf · Préambule : Les enjeux de la synthèse de haut niveau dans

10

5. Les atouts de la synthèse d’architecture

Les premières recherches effectuées sur les outils de HLS datent du début des années 90 [10]. Les premiers outils industrielscommercialisés (Behavioral Compiler de Synopsys et Monet de Mentor Graphics) datent du début des années 2000. Toutefois,leur adoption dans les flots de conception industriels est assez récente. Ce décalage entre la mise à disposition des outilsindustriels et leurs utilisations dans les processus de production est dû à plusieurs causes :

- Tout d’abord, la production d’architectures efficaces à l’aide d’outils de HLS n’est pas une tache aussi aisée qu’il n’y parait.Afin de produire une architecture matérielle, il est indispensable de : (a) comprendre le fonctionnement des outils (b) maîtriserle langage de spécification. Même si la majorité des outils accepte le langage C en entrée du flot, seul un sous-ensemble dece langage est supporté par le processus de synthèse. Afin d’aider le concepteur, Mentor Graphics a publié un livre décrivantles règles d’écriture de la spécification algorithmique afin de comprendre son interprétation par Catapult-C [12]. Ce problèmeest analogue à ce que l’on observe (toujours) avec les outils de synthèse logique : en fonction de la qualité de la descriptionVHDL les circuits numériques obtenus diffèrent malgré le fait que les comportements exprimés soient identiques.

- Ensuite, les outils de HLS ne sont pas aptes à traiter des applications complexes dans leur globalité. Il a été démontré dansune étude [9] que pour produire une architecture efficace implantant une compression JPEG à l’aide d’un outil de HLS, il estnécessaire de décomposer manuellement l’application afin d’aider l’outil dans ses choix.

- Enfin le dernier point provient en partie de la démarche commerciale des fournisseurs d’outils de HLS : « la synthèse de hautniveau permet d’adresser de manière efficace tous types d’applications ». Cette affirmation est fausse. En effet, les processusde synthèse sont capables de générer un circuit à partir du moment où la description comportementale de l’application estpertinente. Toutefois, les architectures matérielles d’implantation efficaces varient avec le domaine d’application : les circuitsutilisés pour réaliser des traitements vidéo, des communications numériques ou de la cryptographie sont fondamentalementdifférents. Il est donc illusoire de penser qu’un outil peut adresser efficacement tous ces domaines : un outil doit êtreintrinsèquement spécialisé en fonction de l’architecture d’implantation qu’il cible.

Cependant les méthodologies à base d’outils de synthèse d’architectures possèdent des avantages indéniables vis-à-vis des flotstraditionnels :

- Tout d’abord, les flots de conception actuels, basés sur le commerce de composants virtuels (IP) qui ont permis de résoudreune partie des problématiques de conception tout au long des années 2000 ne sont plus suffisants. En effet, la diversité desapplications (et leurs variantes) implique une redéfinition ou une adaptation fréquente d’architectures d’implantation (en casde changement du débit, de la dynamique des données, de la technologie cible, etc.). Ce besoin de flexibilité peut être facilitépar les outils de synthèse de haut niveau : une seule description algorithmique de l’application associée à des contraintes desynthèse est suffisante pour réaliser une exploration architecturale. De plus cette exploration architecturale peut être réaliséesur une ou plusieurs cibles technologies (ASIC/FPGA) en fonction des capacités de l’outil (bibliothèques matériellesdisponibles).

- Ensuite dans un nombre important de cas, la qualité des architectures obtenues aujourd’hui à l’aide d’outils de synthèse dehaut-niveau converge vers les résultats obtenus lors de conceptions manuelles [13, 14, 15]. Le différentiel est souvent minimeet négligeable vis à vis des gains obtenus en terme de temps de conception (time to market).

- Enfin l’automatisation de l’étape de conception de l’architecture matérielle à partir de sa description algorithmique et d’un jeude contraintes permet de minimiser le temps de vérification. En effet, la vérification et la validation d’une architecturedéveloppée manuellement sont complexes et énergivores. L’utilisation d’outil permet de réduire la durée de ces étapes car (1),la phase de synthèse réalisée par l’outil est fiable (2) les outils permettent de faciliter les procédures de vérificationfonctionnelle. Par exemple, l’outil Catapult-C génère les bancs de test permettant de vérifier au bit près que l’architecturematérielle respecte le modèle algorithmique d’entrée.

Ces avantages que procurent les flots de conception basés sur les outils de HLS répondent parfaitement aux problématiques deconception actuelles. L’adoption de ces méthodologies dans le milieu industriel a augmenté ces dernières années et cettetendance devrait s’accélérer.

6. Conclusion

Malgré leurs lacunes, les outils de synthèse de haut niveau répondent à un besoin industriel réel. Durant ces dernières années,ils ont prouvé leur pertinence lors de la réalisation de conceptions industrielles. C’est la raison pour laquelle ces outils s’insèrentactuellement dans les flots de conception. Toutefois, malgré le nombre important de travaux scientifiques réalisés, ils ne serontjamais la solution universelle à tous les problèmes de conception de circuits dédiés.

Les outils de synthèse de haut niveau ne resteront à l’avenir que des outils et la valeur ajoutée se situera toujours au niveau duconcepteur qui devra être compétent dans le domaine.

Actualité Composants du CNES n° 36

CCT 36 - rédac 7/06/11 9:12 Page 10

Page 8: La synthèse de haut-niveau, un atout indéniable pour la ...legal.vvv.enseirb.fr/download/PUBS/2011-article-cnes.pdf · Préambule : Les enjeux de la synthèse de haut niveau dans

11

Références

[1] J. P. ELLIOTT, « Understanding Behavioral Synthesis ». A Practical Guide to High-Level Design, Kluwer Academic Publishers, 2000.

[2] « High-Level Synthesis: From Algorithm to Digital Circuit », P. COUSSY, A. MORAWIEC, (Eds), Springer, 2008.

[3] D.-U. LEE and J. VILLASENOR, « A bit-width optimization methodology for polynomial-based function evaluation »,IEEE Transactions on Computers, vol. 56, 2007, pp. 567–571.

[4] C-S. BOUGANIS, G. A. CONSTANTINIDES, "Synthesis of DSP Algorithms from Infinite Precision Specifications", in High-Level Synthesis, From Algorithm to Digital Circuit, Edited by P. Coussy and A. Morawiec, Springer Publishers, August 2008.

[5] Y. PANG, O. SARBISHEI, K. RADECKA and Z. ZILIC,"Challenges in Verifying and Optimizing Fixed-point Arithmetic-intensive Designs", Proceedings of IEEE International AQTR Conference, May. 2010.

[6] Special issue on High-Level Synthesis, P. COUSSY and A. TAKACHEd., IEEE Design & Test of Computers, vol. 26, issue 4, 2009

[7] E. CASSEAU, B. LE GAL, C. JÉGO, N. LE HÉNO, and E. MARTIN. “Reed-solomon behavioral virtual component for communication systems”. In Proceedings of the IEEE InternationalSymposium on Circuits and Systems (ISCAS’04), Vancouver, Canada, 21-23 May 2004.

[8] E. CASSEAU, B. LE GAL, S. HUET, P. BOMEL, C. JEGO, and E. MARTIN, “C-based rapid prototyping for digital signal processing,” in the 13th European Signal Processing Conference, Antalya, Turkey, 2005.

[9] P. D. ROY, S. ARORA, R. K. GUPTA, A. KAMBOJ, "High Level Synthesis of JPEG Application Engine", D&R article, April 7, 2008 (http://www.design-reuse.com/articles/17954/jpeg-application-engine.html)

[10] Grant MARTIN and Gary SMITH, "High-Level Synthesis: Past, Present, and Future", IEEE Transactions on Design & Test of Comupters, v.26 n.4, p.18-25, July 2009.

[11] G. CORRE, P. COUSSY, P. BOMEL, E. SENN and E. MARTIN, "Synthèse Comportementale Sous Contraintes de Communication et de Placement Mémoire pour les composants duTDSI", Dans les actes du 20ème Colloque sur le traitement du signal et des images (GRETSI), p. 823-826, 2005.

[12] Michael FINGEROFF, "High-Level Synthesis Blue Book", Xlibris Corporation, 332 pages, ISBN-10: 1450097243, May 2010.

[13] "An Independent Evaluation of: High-Level Synthesis Tools for Xilinx FPGAs". By the staff of Berkeley Design Technology (http://www.BDTI.com), 2010.

[14] "Synphony C Compiler for Video Applications", Synopsys Inc, 2010.

[15] A. K. CHATTERJEE R. KULKARNI and V. TYAGI, "A high-level synthesis methodology for complex FPGA", EE Times Asia, June 2010.

Actualité Composants du CNES n° 36

CCT 36 - rédac 7/06/11 9:12 Page 11