filière 1 uv-4 conception de systèmes numériques le codesign jego christophe, ed. 2006

84
Filière 1 Filière 1 UV-4 UV-4 Conception de Conception de systèmes numériques systèmes numériques le CoDesign le CoDesign JEGO CHRISTOPHE, Ed. 2006

Upload: emilien-lecoq

Post on 04-Apr-2015

110 views

Category:

Documents


3 download

TRANSCRIPT

Filière 1Filière 1UV-4 UV-4 Conception de Conception de

systèmes numériques systèmes numériques le CoDesignle CoDesign

JEGO CHRISTOPHE, Ed. 2006

- 2 -

Plan

• 1 Introduction

• 2 Méthodologie de conception

• 3 Le flot de conception CoDesign

• 4 Un langage de conception de niveau système

• 5 Des outils de CoDesign

- 3 -

Plan

• 1 Introduction• 1 Prévision d’évolution technologique • 2 Perspective d’intégration • 3 Implications de l’évolution technologique

• 2 Méthodologie de conception

• 3 Le flot de conception CoDesign

• 4 Un langage de conception de niveau système

• 5 Des outils de CoDesign

- 4 -

Introduction : Prévision d’évolution technologique

2005 2008 2011 2014 2017 2020

Technologie (m) 90 65 45 30 20 15

Taille des puces P & ASIC (mm2)

246 246 246 246 246 246

Densité d’intégration P & ASIC (Mtr/cm2)

225 449 899 1 798 3 596 7 192

Fréquence d’horloge SOC (GHz)

5.2 11 17.6 28.3 45.5 73.1

Tension

d’alimentation (V)

0.9

1.1

0.8

1

0.7

1

0.6

0.9

0.5

0.7

0.5

0.7

Source : November 2005 ITRS Release Conference

http://public.itrs.net/

- 5 -

Introduction : Prévision d’évolution technologique

Source : 29 November 2001 ITRS Release Conference

http://public.itrs.net/

- 6 -

Introduction : Perspective d’intégration

Système sur puce

- 7 -

Introduction : Implications de l’évolution technologique

productivité vs complexité

0,001

0,01

0,1

1

10

100

1000

10000

1981

1983

1985

1987

1989

1991

1993

1995

1997

1999

2001

2003

2005

2007

2009

Nb

re d

e tr

an

sist

ors

pa

r ci

rcu

it (

M)

0,01

0,1

1

10

100

1000

10000

100000

pro

du

ctiv

ité

(K)

tra

nsi

sto

r/éq

uip

e-m

oiscomplexité d'intégration

productivité

complexité 58 %/an

productivité 21 %/an

[SIA99]

??

- 8 -

Favoriser la réutilisation de fonctions

Notion d’IP (Intellectual Property)– Réutiliser les blocs déjà conçus dans la société ;

– Utiliser les générateurs de macro-cellules (Ram, multiplieurs,…)

– Acheter des blocs conçus hors de l’entreprise.

Cœur

RISC

Cœur

DSP

MP

EG

Analog.Buff. E/S

Rom

Buff. E/S

Ram

Ram 25% de conception personnalisée

Introduction : Implications de l’évolution technologique

- 9 -

Introduction : Implications de l’évolution technologique

Favoriser la réutilisation de fonctions

- 10 -

Élever le niveau d’abstraction

Introduction : Implications de l’évolution technologique

- 11 -

Introduction : Implications de l’évolution technologique

Élever le niveau d’abstraction

- 12 -

Introduction : Implications de l’évolution technologique

Cœur

RISC

Cœur

DSP

MP

EG

Analog.Buff. E/S

Rom

Buff. E/S

Ram

Ram

des capacités technologiques

des orientations méthodologiques

un flot de conception traditionnel

Définition d’un flot Définition d’un flot de conception pour de conception pour

les Systèmes sur Puceles Systèmes sur Puce Cœur

RISC

Cœur

DSP

MP

EgG

Analog.Buff. E/S

Rom

Buff. E/S

Ram

Ram

- 13 -

Plan

• 1 Introduction

• 2 Méthodologie de conception• 1 Nécessité & Objectifs• 2 Niveaux d’abstraction• 3 Flot de conception• 4 Tendances

• 3 Le flot de conception CoDesign

• 4 Un langage de conception de niveau système

• 5 Des outils de CoDesign

- 14 -

Méthodologie de conception : Nécessité & Objectifs

Nécessité d’une méthodologie Systèmes de grande complexité à intégrer Capacité d’intégration croissante Espace de recherche de solutions extrêmement vaste Temps de conception de plus en plus court (Pb de Time-

to-Market)

Objectifs Favoriser l’exploration de l’espace architectural Limiter les erreurs de conception (sûreté de

fonctionnement) Utiliser les outils de CAO pour les tâches répétitives et

laborieuses Rester indépendant le plus longtemps possible vis à vis

de la technologie Prendre en compte les contraintes matérielles au plus tôt

- 15 -

Méthodologie de conception : Niveaux d’abstraction

• Conception d’un circuit ou d’un système : passer d’un cahier des charges à une réalisation

• Quatre grands niveaux de conception : • Niveau Spécification (ou système) : définition du problème• Niveau Architectural : agencement général de la réalisation• Niveau Logique (ou logiciel) : conception détaillée• Niveau Implantation : réalisation physique

• La réalisation peut être matérielle, logicielle ou conjointe

- 16 -

Méthodologie de conception : Niveaux d’abstraction

Diagramme en Y : " The basic idea underlying the Y-chart is that each element of an electronic system can be described within three different domain [Gajski83] " 

A l’intérieur de chaque domaine, les éléments peuvent être décrit à différents niveaux d’abstraction. Les transitions à l’intérieur du diagramme en Y entre les domaines définissent les

étapes de conception.

- 17 -

Méthodologie de conception : Niveaux d’abstraction

Type Eléments de base Conception

Composants discrets

Conception électrique

Optimisation des caractéristiques électriques

SSI

Small Scale Integration

Conception logique

Optimisation des équations logiques

MSI

Middle Scale Integration

Conception numérique

Optimisation des traitements

LSI

Large Scale Integration

Conception architecturale

Choix des fonctionnalités

VLSI

Very Large Scale

Integration

Conception fonctionnelle

Optimisation des implémentations

matérielles et logicielles

ULSI

Ultra Large Scale

Integration

Conception système

Optimisation conjointe des implémentations

matérielles et logicielles

1 2

1 2

12

31

2

31

2

3

PE/S FpgaE S AsicE S

Cœur RISC

Cœur DSP

Analog.Buff. E/S

Buff. E/S

Ram

Rom

MPEG

UAL Séquenceur

Registre Mux Full Adder

- 18 -

Méthodologie de conception : Flot de conception

Démarche de conceptionDémarche de conception

Spécification

Conception Architecturale

Conception Logique

Placement/Routage

Silicium

Top-Down Design Bottom-Up Design

Démarche

descendante

Démarche

ascendante

Raffinement

de chaque constituant

Abstraction sur un ensemble de constituants

- 19 -

Méthodologie de conception : Flot de conception

Niveau technologique(portes logiques)

Niveau logique(équations logiques)

Niveau architectural(description structurelle)

Niveau système(description comportementale)

Boites à outil pour le concepteur du niveau supérieur

Physique du composants

Dimensionnement des transistors

Simplifications logiques

Equations booléennes

Ordonnancement

Sélection de composants

Machine d’états

Algorithmie

Traitement du signal et de l’image

Domaine de travailDomaine de travailDémarche ascendanteDémarche ascendante

- 20 -

Méthodologie de conception : Flot de conception

• Caractéristiques d’une démarche ascendante:• La conception débute par une phase d’optimisation électrique.• Une bibliothèque d’éléments optimisés est construite à chaque niveau

(utilisée au niveau d’abstraction supérieur).• A chaque composant d’un niveau considéré, est associé une phase

d’abstraction (délimitation du composant auquel est associé une fonction au niveau supérieur).

• Contraintes de la démarche ascendante:• Nécessite une étude au niveau électrique longue et coûteuse qui ne

peut être justifiée que pour des réalisations à grande diffusion.• Implique des contraintes de conception système difficiles à

appréhender car on commence par la spécification de sous-ensembles en espérant progresser vers une solution architecturale pour le système global.

- 21 -

Méthodologie de conception : Flot de conception Z

DDéémmaarrcchhee ddeesscceennddaannttee

Conception fonctionnelle

Conception architecturale

Cahier des charges

Elaboration Spécification

Définition de la

réalisation

Production solution

CONTRAINTES

Spécifications fonctionnelles

Spécifications temporelles

Spécifications électriques

Spécifications technologiques

Modèle de spécification

Modèle fonctionnel

Modèle architectural

Modèle de réalisation

Modèle technologique

- 22 -

Méthodologie de conception : Flot de conception

• Caractéristiques d’une démarche descendante:• Spécification : définition des différentes tâches fonctionnelles

et des contraintes de conception (débit, surface, consommation…)

• Conception fonctionnelle : détermination des fonctions internes, des protocoles et des échanges entre fonctions

• Conception architecturale : détermination des opérateurs, gestion des chemins de données et du contrôle

• Conception détaillée : transformation de la solution architecturale en circuit. Optimisation des caractéristiques temporelles

• Réalisation : optimisation de l’implémentation au niveau des performances électriques et structurelles

- 23 -

Méthodologie de conception : Flot de conception

Synthèse Architecturale

Synthèse Système

Niveau fonctionnel

Niveau architectural

Niveau logique

Niveau électrique et physique

HDL

Schéma

Diagramme d’états

HDL

Schéma

Diagramme d’états

HDL

Schéma / Netlist

Equation logique

Equation différentielle

Modèle électrique

Modèle physique

- 24 -

Méthodologie de conception : Flot de conception

Méthode globaleMéthode globale Optimisations: gain dominant au niveau système

• transformations algorithmiques • choix des fonctions• organisation des données

Exploration de l’espace architectural• éviter les remises en cause des décisions (rebouclage)• ordonner les prises de décision => heuristique de réduction du tps de conception• limiter l’espace de recherche des différents niveaux

Affinement progressif du circuit• flot continu du niveau système au circuit • combler le fossé entre les concepteurs de système et les concepteurs de circuit• définition de modèles globaux qui peuvent être affinés

MAIS• Rebouclage complet du flot => processus long et coûteux donc à proscrire• Flot descendant sans feedback => illusoire

Solution : optimisations locales et rebouclages partielsSolution : optimisations locales et rebouclages partiels

- 25 -

Méthodologie de conception : Flot de conception

Méthode globaleMéthode globale

Conception fonctionnelle

Synthèse architecturale

Spécificationsystème

Synthèse logique

PlacementRoutage

Vérification des spécifications

Découpage en fonctions

Simulation fonctionnelle

Choix de l’algorithmeLibrairie de composants (tps/surf/cons)

Estimation grossière

Simulation fonctionnelle et structurelle

Choix de composants et ordonnancement

ProcessCircuit

CONTRAINTES

Précision des estimations

Librairie de portes

Estimation fine

Simulation au niveau logique

Paramètres connus (…)

Estimation exacte

Simulation électrique

Tests

(vecteurs de test)

- 26 -

Méthodologie de conception : Tendance

- 27 -

Méthodologie de conception : Tendance

Mise en place d’un flot de conception continu des spécifications systèmes à l’implantation électrique

Systèmes embarqués

(gestion de la consommation et de la mémorisation)

Définir des stratégies pour concevoir des circuits en technologies sub-microniques

Conception d’ASIP (Application Specific Instruction set Processor ) et de leur compilateur associé

Hardware/Software CoDesign

- 28 -

Plan• 1 Introduction

• 2 Méthodologie de conception

• 3 Le flot de conception CoDesign• 1 présentation générale• 2 les différentes étapes

• Spécification• Partitionnement• Synthèse logicielle & matérielle• Co-Simulation

• 4 Un langage de conception de niveau système

• 5 Des outils de CoDesign

- 29 -

Le CoDesign logiciel/matériel propose une approche structurée pour la conception d’une classe de systèmes numériques les systèmes

dédiées

Quatre grands étapes sont distinguées dans l’approche CoDesign :

1-) Spécification

2-) Partitionnement

3-) Synthèse logicielle & matérielle

4-) Co-simulation

La réalisation finale est une réalisation conjointe matérielle/logicielle

Le flot de conception CoDesign : Présentation générale

- 30 -

Spécification

Synthèse logicielle Synthèse Interfaces Synthèse matérielle

Proc / DSP ASIC / FPGA

Estimations

Modèles

Partitionnement HW/SW

Optimisations

Co-Simulation

Le flot de conception CoDesign : Présentation générale

- 31 -

Domaines relevant du CoDesignDomaines relevant du CoDesign

Le flot de conception CoDesign : Présentation générale

- 32 -

Le flot de conception CoDesign : Présentation générale

- 33 -

Le flot de conception CoDesign : Présentation générale

Solutions architecturales

Circuitsprécaractérisés

Circuitsprédiffusés

Circuitssur mesure

Sea of gates

ASIC(Application Specific Integrated

Circuit)

Circuitprogrammable

ASIP(Application Specific Instruction

set Processor)

Machineprogrammable

FPGA EPLD PLA CustomSemi-

Custom

Gate array

DSP C

Processeursgénéraux

DSP C

Processeursmultimédias

Full Custom

Standart cellVLIW RISC

- 34 -

Le flot de conception CoDesign : Présentation générale

Compromis performance/flexibilité

- 35 -

Le flot de conception CoDesign : Les différentes étapes

SpécificationSpécification

Evaluation d’un cahier des chargesAspects techniques

• Evaluation de la complexité (nbre de portes, nbre E/S, …)• Performances électriques recherchées (surface, consommation,

alimentation…)• Types de fonction à développer (numérique, analogique, RF)• Encapsulation : type de boîtier• …..

Aspects économiques• Délais de conception et de fabrication• Marché => Quantité de pièces prévues• Budget• ….

Choix de la cible matérielleUne technologieUn type de circuit (FPGA, ASIC, DSP, Processeurs…) Un flot de développement (outils CAO)

- 36 -

Le flot de conception CoDesign : Les différentes étapes

PartitionnementPartitionnement

Objectif

L’objectif du partitionnement est de regrouper les variables et les comportements fortement dépendants, puis de décider pour chaque regroupement d’une réalisation logicielle ou matérielle.

Problèmatique

Les performances réelles de la réalisation ne peuvent être connues qu’après l’étape de co-simulation.

Approche

Afin de permettre le partitionnement, des estimateurs de performance rapides et précis doivent prédire les performances et le coût d’une réalisation architecturale.

- 37 -

Le flot de conception CoDesign : Les différentes étapes

PartitionnementPartitionnement

- 38 -

Le flot de conception CoDesign : Les différentes étapes

PartitionnementPartitionnement

Comparaison de quelques techniques automatiques

- 39 -

Le flot de conception CoDesign : les différentes étapes

PartitionnementPartitionnement

- 40 -

Le flot de conception CoDesign : Les différentes étapes

SynthèseSynthèseCette étape regroupe les synthèses de la partie logicielle, de la partie matérielle et des interfaces et protocoles de communication.

Synthèse logicielle : correspond à la conversion d’une description décrite dans un langage fonctionnel en un code exécutable par un processeur.

Synthèse matérielle : correspond à la conversion d’une description décrite dans un langage fonctionnel en un ensemble d’équations différentielles décrivant la structure d’un layout.

Synthèse des communications : étape essentielle, elle doit garantir les transferts de données entre les différents blocs matériels et logiciels. Les protocoles et les modes de communication sont définis durant cette étape.

- 41 -

Le flot de conception CoDesign : Les différentes étapes

Synthèse logicielleSynthèse logicielle

Compiler

Linker

C File C File Asm. File

Binary File Binary File Binary File

Exec. File

Assembler

Library

Phase de développement

Debugger

Profiler

Phase de vérification

- 42 -

Outils de mesure

Le flot de conception CoDesign : Les différentes étapes

Synthèse logicielleSynthèse logicielle

Phase de développement

Phase de vérification

Phase de vérification

Emulator

Debugger

Programmer

Development processor

Phase de développement

- 43 -

Le flot de conception CoDesign : Les différentes étapes

Synthèse matérielleSynthèse matérielle

comportementaleDescription

Description RTL

Description logique(portes)

GAUTCatapult-C

Synthèse architecturale

Synthèse logique

physiqueSynthèse

Layout

MENTOR GRAPHICSCADENCESYNOPSYS…

MENTOR GRAPHICSCADENCE…

comportementaleSpécification

Librairie de portes

Librairie de composants

Librairie de transistors

Niveau d’abstractionNiveau d’abstraction

Fiabilité des Fiabilité des prédictionsprédictionsCAOCAO

- 44 -

Le flot de conception CoDesign : Les différentes étapes

Synthèse matérielleSynthèse matérielle

SUM :=

A1+B1

Algorithme

Circuit

- 45 -

Le flot de conception CoDesign : Les différentes étapes

Synthèse des communicationsSynthèse des communications

- 46 -

Le flot de conception CoDesign : Les différentes étapes

Synthèse des communicationsSynthèse des communicationsPartitionnement Logiciel/Matériel

Spécification des communications

Sélection des protocoles

Génération des interfaces

Vérification et/ou correction du partitionnement

Coûts de synthèse ?Caractéristiques temporelles des transferts ?

Choix des modèles et des langages

Estimation des performances

Synthèse des bus Synthèse des interfaces matérielle et logicielle

Bibliothèque de protocoles

Logiciel Matériel

Interfaces

- 47 -

Le flot de conception CoDesign : Les différentes étapes

Co-simulationCo-simulation Une nécessité !!Une nécessité !!

- 48 -

Co-Simulation

Le flot de conception CoDesign : Les différentes étapes

Co-simulationCo-simulation

- 49 -

ExempleExemple

PrincipePrincipe

Le flot de conception CoDesign : Les différentes étapes

Co-simulationCo-simulation

- 50 -

Plan

• 1 Introduction

• 2 Méthodologie de conception

• 3 Le flot de CoDesign

• 4 Un langage de conception de niveau système• 1 Intérêt & état de l’art• 2 SpecC• 3 SystemC• 4 SystemVerilog (A system-level language war ???)

• 5 Des outils de CoDesign

- 51 -

Un langage de conception système : Pourquoi

L’utilisation d’un langage de conception au niveau système devient indispensable.

Quatre grandes raisons peuvent être énoncées :

Les systèmes sont une combinaison de blocs matériel(s) et logiciel(s). les langages de conception sont dédiés à la partie matérielle uniquement.

Les systèmes comprennent des blocs IPs de sources différentes. ces différentes sources doivent avoir un langage de description système commun

pour modéliser l’ensemble de l’application. La simulation au niveau RTL devient trop complexe

une simulation à un haut niveau d’abstraction pour des systèmes complexes permet un gain de temps important.

La modélisation au niveau système doit être exploitable lors des synthèses logicielles et matérielles

un prototype virtuel de la partie matérielle doit être disponible pour le développement de la partie logicielle

- 52 -

Rosetta Université du Kansas http://www.sldl.org/

Superlog CoDesign Automation http://www.superlog.org/

Cynlib Forte Design Systems (CynApps) http://www.forteds.com/

SpecC CECS Université de Californie Irvine http://www.SpecC.gr.jp/eng/

SystemC OSCI (Synopsys & Coware) http://www.systemc.org/

SystemVerilog Accellera http://www.systemverilog.org/

Et d’autres SDL, Esterel, StateChart, Signal, HardwareC, VHDL+,

Polis, OpenJ, Javatime, SPI, Okapi….

SpecC CECS Université de Californie Irvine http://www.SpecC.gr.jp/eng/

SystemC OSCI (Synopsys & Coware) http://www.systemc.org/

SystemVerilog Accellera http://www.systemverilog.org/

Un langage de conception système : Etat de l’art

La définition d’un langage de niveau système a fait l’objet de nombreux travaux de recherche d’où la proposition de nombreux langages

- 53 -

Un langage de conception système : SpecC

SpecC est un environnement pour la conception au niveau système. Cet environnement se compose de 3 éléments:

la méthodologie SpecC : méthodologie de CoDesign basée sur la notion d’IPs pour la spécification, la modélisation et la conception de systèmes embarqués au niveau système.

le langage SpecC : langage construit à partir du langage ANSI-C avec des extensions dédiées à la conception.

les outils de CAO SpecC : environnement de CAO comprenant des outils de compilation, de simulation, d’estimation et de synthèse.

L’environnement SpecC est issu des travaux de l’équipe du professeur Gajski du CECS (Center for Embedded Computer Systems) de

l’Université de Californie, Irvine

- 54 -

Un langage de conception système : SpecC

- 55 -

Un langage de conception système : SpecC

•Langage SpecC:• extension du langage de programmation ANSI-C (enrichissement avec des concepts matériels et logiciels).• première version du langage SpecC développée par l’équipe de Gajski en 1997.• éléments ajoutés dans le langage SpecC:

Hiérarchie structurelle : notion de canal (ensemble de variables et de fonctions définissant le protocole de communication) et notion d’interface (ensemble de fonctions de communication spécifiées au sein du canal).

Hiérarchie comportementale : trois modèles d’exécution (séquentiel, concurrent et pipeline)

Synchronisation : le type prédéfini event est l’élément de base de la synchronisation (argument des fonctions wait et notify)

Délai temporel : différentiation entre l’intervalle de temps (niveau fonctionnel) et l’instant précis d’exécution (niveau architectural)

Gestion d’exceptions : deux types d’exception sont supportés : abortion & interrupt

Types de données : deux nouveaux types : booléen (bool) et bit-vecteur (bit[;])

Réutilisation et IP : le langage SpecC favorise la réutilisation et l’intégration d’IPs (Wrapper)

- 56 -

Un langage de conception système : SpecC

Légende

Wrapper :

séparation des communications du comportement

- 57 -

Un langage de conception système : SystemC

SystemC

• un sous-ensemble du langage ANSI-C++ combiné à un ensemble de librairies favorisant la spécification, la simulation et la synthèse de systèmes numériques complexes.

• initialement dédié à la simulation au niveau architectural mais ce langage s’enrichit de bibliothèques pour pouvoir répondre à toutes les caractéristiques d’un langage système.

Sys

tem

RT

LP

hys

ical

HWImplementation

Verification &Analysis

SystemLevel IP

SWImplementation

C-Compiler

Soft IP

Hard IP

- 58 -

Un langage de conception système : SystemC

Origines du langage

- 59 -

Version 2.1

Spécification de l’ensemble du système

Octobre 2004

Conception de l’architectureExploration de l’espace architecturale

Février 2002

Version 2

Synthèse logique Simulation matérielle

Avril 2000

Version 1

Norme IEEE 1666

Décembre 2005PISCATAWAY, N.J., USA, 12 December 2005 The IEEE has approved a

new electronic design standard for the SystemC 2.1 language. The standard, IEEE 1666(TM), “Standard SystemC Language Reference Manual,”

addresses the increasing complexity of system-on-chip (SoC) design at the systems level, where the most substantial performance and productivity

gains in semiconductors can be made.

Un langage de conception système : SystemC

- 60 -

Un langage de conception système : SystemC

- 61 -

Un langage de conception système : SystemC

La structure du langage SystemC repose sur 5 éléments : le module : un modèle SystemC est construit à partir d’une hiérarchie de modules qui peuvent eux-mêmes contenir des modules et des processus (similaire en VHDL et Verilog). Les modules et les processus communiquent à travers des signaux par l’intermédiaire de ports (in, out, in/out) associés aux modules.

le processus : il existe 3 types de processus SC_METHOD : s’exécute directement (pas d’attente ou de boucle infinie) SC_THREAD : s’exécute séquentiellement grâce à l’instruction Wait (ex: FSM) SC_CTHREAD : cas particulier du précédent, une horloge est associée à ce type deprocessus. Les signaux de sortie sont alors disponibles sur des fronts de l’horloge

la synchronisation : l’attente (waiting) fin du cycle ou événement

l’observation (watching) globale ou locale

le canal*:ensemble de variables et de fonctions définissant le protocole de

communication

l’interface*: ensemble de fonctions de communication spécifiées au sein du canal

(*) concept de SpecC

- 62 -

Un langage de conception système : SystemVerilog

- 63 -

Un langage de conception système : SystemVerilog

Structure de SystemVerilog 3.1

- 64 -

Plan

• 1 Introduction

• 2 Méthodologie de conception

• 3 Le flot de CoDesign

• 4 Un langage de conception de niveau système

• 5 Des outils de CoDesign• 1 SCE (SoC Environment)• 2 CoFluent Studio (CoFluent Design)• 3 ConvergenSC (CoWare)• 4 outils chez les leaders de la CAO Electronqiue

- 65 -

Des outils de CoDesign : SoC Environment

- 66 -

SoC Environment

- 67 -

SoC Environment

- 68 -

SoC Environment

- 69 -

SoC Environment

- 70 -

SoC Environment

- 71 -

SoC Environment

- 72 -

SoC Environment

Processus de modélisation

Processus de raffinement

Processus d’exploration Processus de synthèse

- 73 -

Des outils de CoDesign : CoFluent Studio

MCSE = Méthodologie de Conception des Systèmes Electroniques

MCSE est une démarche complète allant de l'analyse du problème jusqu'à la réalisation et qui préconise l'utilisation d'une approche descendante.

Elle recommande de procéder selon 4 étapes. A chaque étape sont associés un modèle en entrée et un modèle en sortie, et une procédure qui aide le concepteur à déterminer la solution appropriée respectant

le modèle.

La première étape concerne l'élaboration des spécifications. Il s'agit d'exprimer le QUOI de l'application en caractérisant le système à développer selon une vue purement externe.

La deuxième étape concerne l'élaboration d'un premier modèle de la solution interne. Le concepteur procède par raffinements successifs à partir des spécifications fonctionnelles, la solution devant être conforme au modèle fonctionnel.

La troisième étape concerne la détermination du support exécutif et de la configuration. L'architecture matérielle doit tenir compte des contraintes de répartition géographique et des interfaces nécessaire pour le couplage avec l'environnement.

La dernière étape concerne la réalisation. La solution est développée par des sous- ensembles qui sont ensuite intégrés, testés puis validés. La solution matérielle peut se développer séparément de la solution logicielle.

- 74 -

Des outils de CoDesign : CoFluent Studio

MCSE = Méthodologie de Conception des Systèmes Electroniques

- 75 -

CoFluent Studio covers 3 steps of the MCSE design flow (out of 5 steps): Functional design Architectural design, including executive structure design Prototyping

Des outils de CoDesign : CoFluent Studio

- 76 -

CoFluent Studio is a set of tools encapsulated into a common framework and presented to developers in a coherent and context-sensitive way that

strictly follows the recommended MCSE design flow.

www.cofluentdesign.com

Des outils de CoDesign : CoFluent Studio

- 77 -

Des outils de CoDesign : ConvergenSC

L’environnement ConvergenSC (ex : CoWare N2C) permet la modélisation de systèmes complexes à travers l’utilisation d’une représentation unifiée SystemC.

ConvergenSC System Designer permet la spécification de modules matériels (par exemple IPs) à deux niveaux d’abstraction principaux (fonctionnel et cycle). La

spécification peut être réalisée en C/C++ ou en SystemC.

ConvergenSC System Verifier permet grâce à la disponibilité de modèles de cœur de processeur et des interfaces correspondantes (SystemC) un prototypage

réaliste et par conséquent la co-simulation de l’ensemble du système.

Les communications entre la partie matérielle et la partie logicielle sont modélisées par l’environnement ConvergenSC à travers la gestion de l’interface.

Cette interface est soit fournie avec le cœur de processeur, soit générée par ConvergenSC.

- 78 -

Des outils de CoDesign : ConvergenSC

Behavioral C/C++ Behavioral C/C++ System DesignSystem Designand Partitioningand Partitioning

ExecutableExecutableImplementableImplementable

Refine

Refine

Interface SynthesisInterface Synthesis

Cycle-Accurate C/C++ Cycle-Accurate C/C++ HW-SW Co-designHW-SW Co-designand Multi-leveland Multi-levelCo-verificationCo-verification

Testb

ench

SW

Op

timiza

tion

In

terfa

ce

Sy

nth

es

isIn

terfa

ce

Sy

nth

es

is

Gen

erateH

DL

RTLCRTLC

HW

Desig

n

IP and Performance Models

Function

Algorithms, Control and Testbench

ANSI C/C++, SystemC

Architecture

"Traditional""Traditional"HW-SW Co-verificationHW-SW Co-verification

SW Image + RTL SW Image + RTL ImplementationImplementation

Environnement de modélisation,

de co-simulation et de gestion des

interfaces

- 79 -

Des outils de CoDesign : ConvergenSC

Matériel Logiciel

Niveau C

Niveau Assemblage

Pré RTL

Post RTL

Caractéristiques de Caractéristiques de l’outil ConvergenSCConvergenSC

- 80 -

Des outils de CoDesign : leaders de la CAO Electronique

Outil de Co-Simulation :

Seamless

Environnement niveau système :

SPWOutil de Co-Simulation

VCC

Environnement niveau système :

System Studio

- 81 -

Conclusion : Un flot de conception SOC

- 82 -

Conclusion : Evolution des systèmes microélectroniques

- 83 -

Bibliographie[Calvez93] J. P. Calvez, "Spécification et conception des ASICs", Ed. Masson, 1993.

[DeMicheli95] G. De Micheli, M. Sami, " Hardware/Software CoDesign", Ed. Kluwer Academic Publisher, 1995.

[Calvez96] J. P. Calvez, " A CoDesign Case Study with the MCSE Methodology, in the journal "Design Automation for Embedded Systems “ in the journal "Design Automation for Embedded Systems", Vol 1, Kluwer Academic Publishers, 1996, pp 183-212.

[Keating99] M. Keating, P Bricaud , " Reuse Methodology Manual for System-on-a-Chip Designs ", 2nde Edition, Ed. Kluwer Academic Publisher, 1999.

[Gajski00] D. D.Gajski, J.Zhu, R. Dömer, A. Gerstlauer, S. Zhao, " SpecC: SpecCification Language and Design Methodology " , Ed. Kluwer Academic Publisher, 2000.

[Edwards00] S. A. Edwards ," Languages for Digital Embedded Systems“ , Ed. Kluwer Academic Publisher, 2000.

[Tabbara00] B. Tabbara, A. Tabbara, A. Sangiovanni-Vincentelli, « Function/Architectural Optimization and Co-Design of Embedded Systems " , Ed. Kluwer Academic Publisher, 2000.

[Thoen00] F.Thoen, F. Catthoor, "Modeling Verification and Exploration of Task-Level Concurrency in Real-Time Embedded Systems", Ed. Kluwer Academic Publisher, 2000.

[Gerstlauer01] A. Gerstlauer, R. Dömer, J. Peng, D. D.Gajski, " System Design: A Practical Guide with SpecC" , Ed. Kluwer Academic Publisher, 2000.

[SIA01] Semiconductor Industry Association, "The National Technology Roadmap For Semiconductors", 2001.

[Vahid02] F. Vahid, T. D. Givargis," Embedded System Design: A Unified Hardware/Software Introduction" , Ed. John Wiley & Sons, 2002.

- 84 -

Bibliographie Equipes de recherche française

MCSE mcse.ireste.fr/ Nantes

SLS/TIMA tima.imag.fr/SLS/sls_v_francaise.htm Grenoble

LESTER lester.univ-ubs.fr:8080/ Lorient

LASTI archi.enssat.fr/ Lannion

COSI www.irisa.fr/cosi/ Rennes

I3S www.i3s.unice.fr/~kwiatkow/mosarts//presentationt.htm Nice

L3I servif5.insa-lyon.fr/l3i/ Lyon

CMoS www.lami.univ-evry.fr/cmos/index.htm Evry

LIP6 www-asim.lip6.fr Paris

LIRMM www.lirmm.fr Montpellier

Projets de recherche internationauxThe Chinook Project www.cs.washington.edu/research/projects/lis/chinook/ Washington

ESM Group www.cecs.uci.edu/~cad/projects.html Irvine

www.cecs.uci.edu/~SpecC/

DSCAD Group chronos.stanford.edu/users/cad/ Stanford

POLIS Project www-cad.eecs.berkeley.edu/~polis/ Berkeley

IMEC Lab www.imec.be/ Louvain

COBRA Project www.fzi.de/divisions/sim/projects/cobra.html Karlsruhe

C. E. Department www-ti.informatik.uni-tuebingen.de/ Tuebingen

COMITY Project www.it.uc3m.es/~comity/ Madrid

CIRCUS Project www.grm.polymtl.ca/circus/ Montréal