0% ont trouvé ce document utile (0 vote)
195 vues139 pages

Cours Conception D'Objets Connectés - (Co-Design)

Transféré par

hafidhoualimed7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
195 vues139 pages

Cours Conception D'Objets Connectés - (Co-Design)

Transféré par

hafidhoualimed7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ISIGK Département Informatique

Conception d’objets connectés


Co-design

A.U: 2024/2025
Objectif

Etudier et comprendre la méthodologie de conception conjointe des


composants Matériels et Logicielle: Co-design

Conception Matérielle/Logicielle 
Conception Hardware/Software  Co-design

.
1. Définition d’un système embarquée

Un système embarqué (Embedded system) est un système électronique et


informatique autonome dédié à une tâche bien précise.
 Ne possède pas des entrées/sorties comme un clavier standard ou un
écran d’ordinateur
 Le matériel et l'application sont étroitement intégrés, rendant difficile de
les distinguer, contrairement à un PC où ils sont séparés
 U n système embarqué n’est pas un PC
I l contient au mois un microprocesseur (ou un microcontrôleur)
combiné avec d’autres matériel et logiciel (dédié à sa gestion) pour
résoudre un problème spécifique.
2. Domaine
d’application
Transport: avionique, espace, automobile, ferroviaire,

Contrôle des processus industriels: chaine de production, process


chimique, process nucleaire
Télécommunication: Sattelites, GPS, téléphonie mobile

Appareils électriques et électroniques:


appareils photo, jouets, électroménager, systèmes audio,
téléphones portables,

Traitement du signal :
Radar, compression vidéo.
3. Exemples de systèmes embarquée
Systèmes de chauffage central

Les systèmes embarqués dans le domaine du chauffage central se


retrouvent dans plusieurs structures qui nécessitent un contrôle de la
température (Immeubles de bureaux, Usines, Épiceries, Maisons, Écoles,
Hôpitaux,…)
Systèmes GPS

GPS: système de navigation qui utilise des satellites et des récepteurs pour synchroniser
les données relatives à la localisation, au temps et à la vitesse.

Le récepteur ou le dispositif qui reçoit les données est doté d'un système intégré pour
faciliter l'application d'un système de positionnement global (Voitures, Dispositifs
mobiles)
Systèmes automobiles

Parmi les principaux exemples un systèmes de sécurité: le contrôle adaptatif de la


vitesse, l'alerte en cas de panne, la reconnaissance des piétons, etc..

Exemples de systèmes embarqués pour l'automobile :


- Système de navigation automobile
- Système de freinage antiblocage
Robots d'usine

• Les robots d'usine sont conçus pour effectuer des tâches de haute précision dans des
conditions de travail dangereuses.
• Ils disposent d'un système intégré embarqué pour connecter différents sous-systèmes.
• Aujourd'hui, comme Industrie 4.0, ces systèmes intègrent l'intelligence artificielle et
l'apprentissage automatique pour rendre les équipements plus intelligents, plus sûrs et
plus efficaces, par exemple en permettant aux machines d'identifier des défauts que
l'œil humain ne verrait pas et de les retirer de la production.
• Exemple d’application des robots:
Ligne d'assemblage, Suivi de la qualité, Soudage, Peinture…
4. Caractéristiques d’un système embarqué

Les système embarqués fonctionnent généralement en Temps Réel (TR) :


Les opérations de calcul sont alors faites en réponse à un événement extérieur (interruption
matérielle). La validité et la pertinence d'un résultat dépendent du moment où il est délivré.
Une échéance manquée induit une erreur de fonctionnement qui peut entraîner soit une
panne du système (plantage), soit une dégradation non dramatique de ses performances.
Fiabilité, sûreté et sécurité :

 Le système doit toujours fonctionner correctement:


sûreté à faible coût avec une redondance minimale.

Remarque: En ingénierie, la redondance est la duplication


de composants ou de fonctions critiques d'un système dans
le but d'augmenter la fiabilité du système,

 Sûreté de fonctionnement du logiciel:


système opérationnel même quand un composant électronique « lâche ».
6. Évolution technologique

Les systèmes embarqués évoluent au rythme de l’importance prise par les


microprocesseurs.

– 1971 : premier microprocesseur 4 bits 4004 d’Intel à 92,5 kHz vendu 200 $. Le
succès a été là tout de suite.
– Juin 1978 : premier processeur x86 8086 à 4,77 MHz (technologie 3 µm, 29000
transistors), bus d’adresse 20 bits à 9,1 Mo/s, bus de données 16 bits.
– Juin 1979 : 8088 intégré dans le premier IBM-PC en 1981.
– Motorola/Freescale, Zilog, TI ont emboîté le pas…

Le marché des microprocesseurs croît de façon exponentielle selon la loi de Moore


Loi de MOORE: pour une surface de silicium donné, on double
le nombre de transistors intégrés tous les 18 mois.
Grâce aux progrès de l’intégration sur silicium, on est passé
rapidement du processeur 4 bits au :

- processeur 8 bits

- processeurs 16 bits,

- processeurs 32 bits,

- processeurs 64 bits.
Classe (échelle) d'intégration:
L'échelle d'intégration définit le nombre de transistors par boîtier, dans
l’ordre chronologique, on distingue 4 classe d’intégration :

1 . L e s microcircuits SSI (Single Size Intégration ) :  100 transistors par cm2.


2 . L e s circuits intégrés MSI ( Médium Size Intégration ) :  1000
transistors/cm2.
3. Les circuits LSI (Large Size Intégration) :  10000 à 100000
transistors/cm2.
4. Les circuits VLSI (Very Large Size Intégration ) :  0.1 à 1 million
transistors/cm2
Développement d’un Système Embarqué
La difficulté est comment implémenter une fonctionnalité.
Exemple: un algorithme de compression vidéo :
– Plus rapide par hardware mais plus cher.
– Plus flexible par logiciel mais plus lent.
On doit être capable de jongler en plus avec les paramètres suivants:
– Coût.
– Rapidité.
– Robustesse.
Développement d’un Système Embarqué

1ère étape: Choix du matériel (composants électroniques, processeur…)


pour le système embarqué.

2ème étape: Donner le système conçu aux programmeurs . (Donner le système


élaboré aux programmeurs)
3ème étape: les programmeurs doivent développer un logiciel parfaitement
adapté au matériel sur lequel il sera exécuté.
Développement d’un Système Embarqué

Le système doit pouvoir être décomposer en sous-systèmes suivant une hiérarchie


logique (approche objet).

– Si le design change, on doit pouvoir en réutiliser une bonne partie

– Il ne faut pas jeter à la poubelle un précédent design et repartir


«from scratch » !
Conception d’un Système Embarqué

Concevoir un système embarqué demande au concepteur des compétences


multidisciplinaires :
–Compétences hardware et software : microprocesseur, microcontrôleur, DSP, FPGA, Co-design,
VDHL, assembleur, E/S, C, RTOS, réseau, Linux, Java...

– Connaissance des systèmes numériques.

– Savoir travailler en équipe avec des ingénieurs d’autres disciplines.

– Comprendre le besoin du client et savoir aussi l’identifier !


CO design et Conception d’un Système Embarqué

Définition:
 Le Co-design permet de concevoir en même temps à la fois le matériel et le logiciel pour une
fonctionnalité à implémenter. Cela est maintenant possible avec les niveaux d’intégration offerts
dans les circuits logiques programmables.

 Le Co-design permet de repousser, le plus loin possible dans la conception du système, les
choix matériels à faire, contrairement à l’approche classique où les choix matériels sont faits en premier
lieu !
Définition du Co-design

La conception des systèmes macro ou micro (System on Chip) qui intègrent à


la fois des processeurs généralistes capables d’exécuter des programmes
Logiciels et des IP (Intellectual Property) MATERIEL.

Equipements permanents
CPU microprocesseur + microcontrôleurs RAM:
mémoire centrale

Equipements supplémentaires
Disque dur Mémoire flash
Périphériques de communication tel que des ports d’éntrés-sorties des
interfaces série(UART, SPI,USB,…..)
Co-design hardware/software

Le Co-design constitue une méthodologie de conception d’un système


embarqué de tendance actuelle.

Le Co-design consiste à concevoir en même temps le matériel et le


logiciel pour une fonctionnalité à implémenter. (dès les premières phases)

La clé de cette conception est la spécification unique du système,


décrivant son architecture et son comportement, d'où l'on tient compte très
tôt de l'interaction entre la partie hardware et la partie software
Développement d’un Système Embarqué

 Les systèmes embarqués sont de plus en plus complexes.


 Il est de plus en plus difficile de penser à une solution globale optimisée du premier jet.

 Il est de plus en plus difficile de corriger les « bugs ».

 Il est de plus en plus difficile de maintenir le système au cours du temps .


 En conséquence, l ’approche traditionnelle de développement d ’un système
embarqué doit évoluer...
Conception et Co-design

Conception traditionnelle Co-design


Conception et Co-design
7. Objet connecté

Les systèmes embarqués sont aujourd'hui


fortement communicants grâce aux puissances
de calcul offertes par les processeurs pour
l'embarqué et grâce aussi à l'explosion de
l'usage de la connectivité Internet (connectivité
IP).

Un objet connecté est un objet contenant un système embarqué avec


une fonctionnalité supplémentaire : la possibilité de se connecter à
Internet.
L’ Internet permet ainsi de connecter différents types d’objets :
Chaudière, réfrigérateur, caméra….
Ces objets connectés à Internet forment l’Internet des objets.
Chapitre 2

Introduction aux architectures à


usage général et spécifique
1. Introduction
• Un processeur, ou Unité Centrale de Traitement (UCT), en anglais Central Processing Unit
(CPU), est le composant clé des systèmes numériques. Il traite des données en suivant une
suite d'étapes simples, pour accomplir des tâches plus complexes.
• U n processeur doit acquérir des données, les traiter, et produire un résultat.
Objectif :

 Exécuter des instructions d'un programme, en effectuant des opérations logiques et


arithmétiques.
 Coordonne les opérations des autres composants de l'ordinateur.

Rôle clé :
1.Acquisition des données : Le CPU récupère les instructions et données depuis la mémoire.
2.Traitement des données : Il effectue des calculs, comparaisons, ou exécute des opérations
logiques.
3.Production d’un résultat : Génère une sortie ou exécute des actions sur la base des instructions
traitées
1. Introduction
Cycle de fonctionnement du processeur :
Phase de récupération (Fetch) :
Le CPU récupère une instruction de la mémoire (généralement la mémoire RAM).
Phase de décodage (Decode) :
L’instruction récupérée est traduite en commandes exploitables. Le CPU décode ces bits pour
comprendre quelle opération il doit exécuter et quels éléments (nombres, adresses mémoire, etc.)
seront utilisés dans cette opération
Phase d'exécution (Execute) :
Le CPU exécute l'instruction, en effectuant des opérations (calculs, accès mémoire, etc.).
Phase d'écriture (Write-back) :
Les résultats sont stockés en mémoire ou utilisés pour d'autres opérations.
1. Introduction

• U n processeur (ou unité centrale de traitement, UCT


; en anglais central processing unit, CPU) est un type
de système numérique dont l’objectif est de traiter des
données en effectuant une suite d’étapes simples, pouvant
résulter en un traitement global complexe.

• U n processeur doit acquérir des données, les traiter,


et produire un résultat.
Un processeur est composé de deux parties:
1. Le chemin des données (Datapath) :
Rôle : Traiter les données en exécutant des opérations arithmétiques et logiques.
• Composants principaux :
 Registres : Petites mémoires rapides utilisées pour stocker temporairement des données
et des instructions pendant leur traitement.
 Unités fonctionnelles : Inclut des sous-composants comme l’Unité Arithmétique et
Logique (ALU), qui réalise des opérations mathématiques (addition, soustraction) et
logiques (comparaison, ET/OU).
 Mécanismes de commutation : Un ensemble de circuits qui transfèrent les données entre
les registres, l'ALU, et d'autres parties du processeur.
Un processeur est composé de deux parties:
2. L'unité de contrôle (Control Unit)
L'unité de contrôle (Control Unit) est une composante essentielle du processeur, responsable
de la gestion et de la coordination de toutes les opérations qui se déroulent au sein du CPU.
Elle orchestre le fonctionnement des autres unités comme le chemin des données (Datapath),
les registres, l’Unité Arithmétique et Logique (ALU), et la mémoire.
• Rôle : Dirige et coordonne les opérations du processeur en envoyant des signaux aux
différentes parties du chemin des données.
• Fonctionnement : Séquençage : Elle détermine l’ordre des opérations à exécuter en
fonction du programme en cours.
• Interprétation des entrées : Elle réagit aux instructions du programme et aux résultats des
opérations pour décider quelle étape suivante sera exécutée.
• Coordination : Elle synchronise les actions entre les registres, l’ALU, et le reste du
processeur en gérant le flux de données et les signaux de contrôle.
Un processeur est composé de deux parties:
 Le chemin des données (datapath): traite les données. Il inclut:
des registres; des unités fonctionnelles (comme une unité arithmétique et
logique) et un mécanisme de commutation pour transférer et manipuler les
données.
 L’unité de contrôle (control unit) est responsable du séquençage des
opérations à exécuter par le chemin de données selon des entrées
externes et le résultat des opérations.
Machine distributrice
Le processeur (CPU) est comme la
machine distributrice qui reçoit des
commandes et effectue des actions. Machine distributrice
L'unité de contrôle (Control Unit) est le
mécanisme qui décode les instructions et
coordonne les actions (comme
comprendre quel produit a été choisi).
Le chemin des données (Datapath)
inclut les éléments qui traitent les données
(comme le bras qui pousse le produit).
Les registres sont des espaces de
stockage temporaire, comme les
emplacements où les produits sont
stockés.
L'Unité Arithmétique et Logique (ALU)
vérifie et calcule les informations, comme
vérifier la monnaie et rendre la monnaie.
Les bus de données transportent les
informations, comme les fils reliant les
boutons à la machine.
2. Types de processeurs
2.1 Processeur à usage général

Caractéristiques :
Un processeur à usage général est capable d’exécuter une variété de tâches en fonction du
programme qui lui est fourni. Il est conçu pour être polyvalent et peut être programmé pour
réaliser différentes opérations. Il utilise un jeu d’instructions (ensemble de commandes de base)
que le processeur peut comprendre et exécuter. Le programme qui guide les opérations du
processeur est stocké en mémoire sous forme d’une liste d’instructions. Ces instructions sont
ensuite récupérées, décodées, et exécutées par le processeur.
Microprocesseur et microcontrôleur :
Le terme microprocesseur est souvent utilisé pour désigner un processeur à usage général. Il est
utilisé dans des systèmes comme les ordinateurs, les smartphones, et d’autres appareils
polyvalents. Un microcontrôleur est un cas particulier d’un processeur à usage général.
Contrairement au microprocesseur, il inclut souvent des composants supplémentaires comme de
la mémoire, des périphériques d'entrée/sortie et d'autres dispositifs intégrés dans un seul
composant. Il est largement utilisé dans les systèmes embarqués (électroménagers, automobiles,
etc.).
 Les processeurs à usage général sont habituellement
fabriqués à très grande échelle.

Le développement de chaque nouvelle génération de


processeur se fait à l’aide de stations de travail équipées de
processeurs de la génération précédente.
Sans la puissance de calcul des processeurs d’aujourd’hui,
on serait incapable de concevoir les processeurs de demain.
D’autres processeurs,
Certains processeurs à comme les ARM,
usage général, comme MIPS, Intel 8051 et
les processeurs Core de TMS320 sont moins
Intel et les processeurs connus mais sont
FX8000 de AMD, sont fréquemment utilisés
destinés principalement dans des applications
au marché des stations embarquées comme
de travail et des les dispositifs mobiles
ordinateurs portables. et le domaine de
l’automobile.
2.2 Processeur à usage spécifique

Les processeurs à usage spécifique Ils sont plus simples et plus efficaces
sont des processeurs non que les processeurs à usage général. Ils
programmables qui sont conçus dans ne peuvent pas en général être
le but de répondre à un besoin facilement reprogrammés.
unique.

Ils sont moins complexes Leur conception


et plus efficaces que les Changer leur fonction
processeurs à usage demande souvent implique changer leur
général. beaucoup d’efforts structure.
Comment passer • Pour modifier la tâche d’un processeur
d’un processeur à usage spécifique, il faut ajouter
à usage des registres et des structures de
Spécifique au calculs nécessaires à son chemin des
données.
Processeur à
usage général • Changer la machine à états de son unité
de contrôle.
• Changer les signaux de contrôle entre le
chemin des données et l’unité
de contrôle.
3. Classification des processeurs
ASIC : Application-Specific Integrated Circuit
ASSP : Application-Specific Standard Product
FPGA : Field Programmable Gate Array
Il existe deux architectures de processeurs à usage générale:
RISC et CISC.

Leur conception architecturale depend du jeu d’instructions


envisagé. (ISA = Instruction Set Architecture)
Qu’est-ce q’un jeu d’instructions

• L e jeu d'instructions d'un processeur représente l'ensemble


des des opérations qu’un processeur peut effectuer. Ce sont
les opérations qui sont codées dans le processeur au niveau
matériel
• U n processeur ne peut effectuer aucune opération en dehors
de son jeu d'instructions, car il n'a pas le matériel pour cela.
• U n jeu d'instructions contient toutes les opérations qu’un
processeur prend en charge au niveau matériel.
• C e jeu peut contenir de quelques à des milliers d'instructions,
selon la conception du processeur.
3.1 Processeur RISC
• U n processeur basé sur l’architecture RISC (Reduced
Instruction Set Computer) dispose d’un ensemble simplifié
d'opérations pour atteindre des objectifs simples: jeu
d’instruction réduit.
• Instructions simples, toutes de même taille, ayant un même
temps d’exécution, utilisant un seul cycle d’horloge.
• V u que l’architecture RISC utilise des instructions simples,
le processeur n'a pas besoin d'avoir des circuits complexes
pour exécuter ces instructions.
• L e s conceptions RISC sont, du point de vue matériel,
moins chères à implémenter.
Les processeurs RISC n'effectuent des opérations que sur les
données stockées dans des registres. En effet, pourvu l'énorme
décalage entre la vitesse du processeur et la vitesse de la mémoire
principale. La mémoire principale super lente comparée à un
processeur. Processus de traitement lent

Les registres sont beaucoup plus proches de la vitesse du


processeur : Données sont chargées et stockées dans les
registres du processeur
Les processeurs de conceptions RISC prennent en charge le
pipeline pour exécuter des parties de plusieurs instructions en
même temps.

Les processeurs de conception RISC ont des vitesses d'horloge


plus élevées, ils sont exceptionnellement rapides. En effet il y’aura
Accélération en pipelinant l’exécution (entre 3 et 7 étages de
pipeline pour une instruction).
Pipeline RISC

Un pipeline (ou chaîne de traitement1), est l'élément d'un processeur


dans lequel l'exécution des instructions est découpée en plusieurs étapes.
Chacune des étapes d’un pipeline est appelé étage. Le nombre d'étages
d'un pipeline est appelé sa profondeur.
1- IF (Instruction Fetch) charge l'instruction à exécuter dans le pipeline.
2 ID (Instruction Decode) décode l'instruction et adresse les registres.
3 EX (Execute) exécute l'instruction (par la ou les unités arithmétiques
et logiques).
4 MEM (Memory), dénote un transfert depuis un registre vers la
mémoire dans le cas d'une instruction du type STORE (accès en
écriture) et de la mémoire vers un registre dans le cas d'un LOAD (accès
en lecture).
5 WB (Write Back) stocke le résultat dans un registre.

Séquençage des instructions dans un


processeur doté d'un pipeline à 5 étages.
Les processeurs RISC ont des instructions simples, des
vitesses d'horloge plus élevées, une structure de pipeline
efficace, une opération de stockage sur les registres et
peuvent exécuter des instructions en un seul cycle.

Code plus simple à générer, mais moins compact.

Tous les microprocesseurs modernes sont de types RISC:


SPARC, MIPS, ARM, PowerPC...
3.2 Processeur CISC (Complex Instruction Set Computer) :

Pour augmenter les performances des processeurs augmente la


complexité des instructions (réduire nombre d’instruction, réduire la
taille du code.

Jeu d'instructions complexes (une instruction = plusieurs opérations


élémentaires), Ex: un load, une opération arithmétique et un store.

- Code compact.
- temps de décodage et d'exécution des instructions trop long
2 à 15 cycles
Motorola 68000, Intel x86/Pentium...
3.3 Comparaison RISC/CISC

Avantages CISC
 Moins d’instructions pour une fonction
 Possibilité de micro-programmation (correction du jeu
d’instructions )
 Permet d’utiliser des instructions très complexes et très rapides

Avantage RISC
 Architecture globalement moins complexe
 Consommation faible d’énergie
 Interruptions plus rapides
 Compilateur plus simple et efficace
Inconvénient CISC
 Surface importante de silicium
 Consommation importante
 Difficulté à réaliser des compilateurs gérant des instructions
complexes
 Temps de développement et de validation importants

Inconvénient RISC
 Taille du programme plus important(20% à 50%)
 Instruction à taille fixe pas toujours optimisée
 Traitement avec accès multiples à la mémoire
Micro-contrôleurs
🠶 U n microcontrôleur est un circuit intégré qui rassemble
le processeur, les mémoires, les temporisateurs, les
convertisseurs CAN et les interfaces d’entrées/sorties.
🠶 Caractéristiques: haut
degré d'intégration, faible
consommation électrique, une
vitesse de fonctionnement plus
faible et un coût réduit par
rapport aux processeurs à usage
général.
🠶 Exemples de microcontrôleurs
: Intel 8085, ARM Cortex,
Atmel, MSP430, PIC, STM32…
Microcontrôleurs PIC16F
- Fréquence 20 Mhz
- 14,3 Ko de ROM,
- 368 octets de RAM,
- 256 octets d’EEPROM,
- 33 entrées sorties,
- Un CAN,
- Trois timers,
- 15 sources d’interruptions
- Une USART et deux comparateurs
DSP: Digital Signal Processing
Un DSP est un type particulier de microprocesseur intégrant un
ensemble de fonctions spéciales destinées au traitement
numérique du signal: Filtrage, extraction des signaux,
reconnaissance de la parole, codage/compression…

Architecture Havard: la plus utilisé


dans DSP
2 mémoires accessibles simultanément
⇒ moins de manipulations de
données.
Fabricants
Il existe différents fabricants de DSP sur le marché :
Analog Devices propose entre autres des DSP incorporant comme
périphériques des ADC et des DAC
Freescale ;
Qualcomm, pour les DSP de téléphones mobiles
Lucent
Microchip propose deux familles dénommées Digital Signal
Controler (dsPIC30F et dsPIC33F), qui sont des microcontrôleurs avec des
capacités de calcul renforcées et des périphériques de conversion
analogique-numérique ;
Texas Instruments a une gamme étendue, comportant en particulier les
familles C6000, C5000 et C2000 ;
STMicroelectronics. STM32F7 Series, STM32L4 Series, STM32F4 Series,
Exemple de DSP: ADSP BF561
Caractéristique carte de développement

 Fréquence d’horloge du cœur : 600MHz.


 Interface USB pour le déboguage
 Mémoire
32 MB de SDRAM (16M x 16 bits)
2 MB de mémoire Flash (2 block de (512k x 16 bits))
 Codeur audio AD1836 connecté au port série SPORT 0 (6 out / 4 in
RCA)
 Décodeur vidéo ADV7183 connecté au port parallèle (3 in RCA)
 Codeur vidéo ADV7171 connecté au port parallèle (3 out RCA)
 Connecteur JTAG de 14-Pin pour l’émulation
 4 boutons poussoirs et 6 LED.
 Interface d’extension.
Processeurs personnalisés : ASIC

🠶 ASIC (Application Specific


Integrated Circuit) ou un circuit
intégré propre à une application (en
français).
🠶 ASIC exclusivement dédié à
la réalisation d’une tache spécifique. (il
est configuré pour gérer une seule
tache bien précise).
🠶 Trois types d’ASIC: le full-custum
ou sur mesure, le prédiffusé et
Les circuits semi-personnalisés: sont des réseaux prédéfinis de
transistors ou de fonctions logiques qui nécessitent une
personnalisation de l'utilisateur pour réaliser la fonction désirée.
Cette famille comprend :
- les réseaux logiques programmables,
- les réseaux prédiffusés.

Les circuits personnalisés: Ce sont des circuits non


préfabriqués. Pour chaque application on optimise le circuit
intégré, ce qui conduit à la création de son propre composant.
Cette famille comprend :
- les circuits à la demande
- les circuits précaractérisés
Full custum ou sur-mesure

Ces circuits ne contiennent pas de fonctions de base, mais


uniquement des composants standards: diodes, résistances,
transistors...
Effort de conception important.
Surface réduite, haute performances.
Avantage des circuits sur-mesure

- Performances élevées
- Haute densité d’intégration

Inconvénients des circuits sur-mesure


- Temps de conception élévé
- Grande complexité
- Fort investissement CAO (éditeur de schéma, simulateur électrique,
règle de dessin
- Coût de fonderie élevé (processus de gravure et de fabrication)
Les circuits précaractérisés

Les circuits "précaractérisés" utilisent des cellules de bibliothèques


intégrées.
Effort de conception réduit,
Performance proche du full custum
 Concept très semblable à celui des
circuits à la demande.
 La seule différence réside dans la
réalisation du schéma puisque l'on
accède à une bibliothèque de cellules
prédéfinies générant de très
nombreuses fonctions élémentaires
ou élaborées.
 Il existe trois types de cellules :
- Cellules standards (standard cells)
correspondent à la logique classique,
Pour la réalisation de circuits -Mégacellules (megacells) peuvent être
précaractérisés on dispose des blocs de type microprocesseur,
d'une bibliothèque de circuits périphérique.
qu’on les associe pour obtenir - Cellules compilées (compilable cells)
le circuit à la demande. dont les blocs RAM ou ROM.
Avantage des circuits précaractérisés

- Rapidité de conception
- Rapidité d’obtention de prototypes
- Pas de perte de Silicium
- Investissement CAO modéré (éditeur de schémas, simulateur
logique.

Inconvénients des circuits précaractérisés

- Choix limité des cellules


- Complexité moyenne
Circuit prédiffusés

Les prédiffusés: sont des circuits partiellement préfabriqués.


L'ensemble des éléments (transistors, diodes, résistances,
capacités, etc.) est déjà implanté sur le circuit mais ne sont pas
connectés entre eux.
Réseaux de transistors déjà implantés dans le silicium, mais non interconnectés.

C’est l’interconnexion des transistors qui personnalise le circuit en fonction de


l’application visée.
La réalisation des connexions dans le but de définir la fonction
souhaitée est la tâche du concepteur, pour cela il dispose de
bibliothèques de macrocellules et d'outils logiciels d'aide à la
conception.

Cette technique présente l'inconvénient de ne pas permettre une


optimisation en terme de densité de composants. En effet, des
éléments de base sont préimplantés et pas forcément utilisés.
Gate arry

Approche de conception et de fabrication


de circuits intégrés spécifiques à une
application (ASIC) en utilisant une puce
préfabriquée avec des composants qui sont
ensuite interconnectés dans des dispositifs
logiques (par exemple, des portes NAND,
des bascules, etc.)
Sea of Gate

Circuit composé de blocs


contigus de transistors.
Les connexions passent entre les
blocs ou par-dessus.
Conception d’un circuit prédiffusé
Avantage des circuits prédiffusés
- Rapidité de conception
- Rapidité d’obtention de prototypes
- Faible coût de fonderie.
- Faible investissement CAO
Inconvénients des circuits prédiffusés
- Choix limité des cellules
- Faible densité d’intégration (vu le faible taux de remplissage)
- Faible complexité
- Faible vitesse ( due aux capacités d’interconnections)

De moins en moins utilisés, ils sont remplacés par Les FPGA


Processeurs personnalisés : ASSP

 Le circuit ASSP (Application-specific standard parts) est un


Composant complexe qui réalise une fonction spécifique
(compression vidéo, modem). Ils sont conçues et mises en œuvre
exactement de la même manière que les ASIC.
 Un ASIC est conçu pour un besoin plus particulier qu'un ASSP.
 La seule différence est qu'un ASSP est un dispositif plus général
destiné à être utilisé par plusieurs sociétés de conception de
systèmes.
Exemple, une puce d'interface USB autonome serait classée
comme ASSP.
Le MC1496B a été conçu pour être
utilisé lorsque la tension de sortie est
le produit d'une tension d'entrée
(signal) et d'une fonction de
commutation (porteuse).
Les applications typiques incluent la
porteuse la modulation d'amplitude,
la détection synchrone, la détection
FM, la détection de phase.
Circuit configurable
Un circuit logique programmable (reconfigurable) PLD
(programmable logic device) est un circuit intégré logique qui peut
être reprogrammé après sa fabrication.
La programmation du circuit définit les connexions faites entre
portes logiques.
Intérêt: utilisation d’une puce pour différents systèmes
électroniques.
Remarque: il est impropre de parler de programmation au sens
logiciel, on parle plutôt de « reconfiguration » (on modifie des
connexions ou le comportement du composant, on connecte des
portes logiques entre elles, etc.).
Le verbe programmer est toutefois le plus fréquent, mais au sens
de personnaliser.
Types de circuits programmables

PAL (Programmable Array Logic): Ce sont les circuits logiques


programmables les plus anciens.
Les PAL sont programmés par destruction de fusibles. Ils ne sont donc
programmables qu’une fois.
Huit fusibles (F1 à F8)
permettent de réaliser
diverses fonctions logiques.
La programmation consiste à
faire sauter les fusibles
nécessaires afin de réaliser la
fonction voulue.
GAL: (Generic array logic) Les GAL sont des PAL effaçables
électriquement.
EPLD (erasable programmable logic
device, circuit logique programmable
et effaçable):
Ces circuits ont une capacité en
nombre de portes et en possibilités
de configuration supérieure à celle
des GAL
CPLD (complex programmable logic device, circuit logique
programmable complexe)

CPLD max 9000


Altera MAX 7000 CPLD-EPM7128SLC84
Carte de développement
FPGA (Field Programmable Gate Array, réseau de portes
programmables): Circuit intégré contenant un très grand nombre
de portes logiques organisées en blocs logiques configurables et
interconnectables.

Les cartes FPGA sont destinés au prototypage de systèmes


numériques complexes. Ils sont une bonne alternative aux circuits
spécifiques, les ASIC.

Les FPGA sont utilisés dans diverses applications nécessitant de


l'électronique numérique (télécommunications, aéronautique,
transports…).
Il existe plusieurs grands fabricants : ALTERA, ACTEL
(composants spécialisés) et XILINX.
Exemple: carte FPGA DE2-70
Avantages des FPGA

 Implantation d’architectures numériques conséquentes


(plusieurs millions de portes logiques)
 Délai de mise sur le marché plus court
 Temps de conception plus court
 Ils disposent de la plupart des contrôleurs de périphériques
courants (VGA, UART, CNA/CAN, …)
 configurer des processeurs Nios II, Microblaze, etc

Avantages des FPGA

Les FPGA sont généralement plus lents, plus chers à l'unité et


consomment davantage d'énergie que leur équivalent en ASIC.
Architecture des FPGA

Les FPGA sont un rassemblement et une


combinaison de différents blocs :
d’entrées/sorties (IOB - Input Output
Blocks), de routage (PSM - Programmable
Switch Matrix), de logique programmable
(CLB - Configurable Logic Blocks) et
d’autres blocs plus spécifiques.
Les différentes méthodes d’interconnexions

Trois type d’interconnections entre les différents blocs des circuits FPGA
 Interconnexion directe entre les différents blocs logiques.
 Interconnexions par le biais d’une matrice.
 Interconnexion par les grandes lignes relient tous les CLB dans les extrémités des
circuits FPGA.
FPGA : Bloc d’entrée/sortie (IOB)
Les ports d’entrées/sortie des circuits FPGA sont totalement
programmables :
Le slew-rate est programmable (La vitesse de balayage ou slew rate
représente la vitesse maximale de changement de tension de sortie par unité
de temps (la vitesse de variation maximale que peut reproduire un circuit
logique).
Le buffer de sortie est programmable en haute impédance
Les entrées et sorties sont directes ou mémorisées
Le driver de sortie est aussi programmable.
Structure des IOB SPARTAN
Structure des CLB CONFIGURABLE LOGIC BLOCS)

Tables de transcodage combinatoire (LUT): Les fonctions combinatoires sont


implantées sur des mémoires SRAM (LUT = Look-Up Table). La table de vérité
est alors chargée dans ces LUT. En général, les FPGA sont équipés de LUT à 4 ou
6 entrées.
Cellules séquentielles (bascules D): Les éléments séquentiels (synchrones sur front
ou niveau) sont implantés sur des bascules (D le plus fréquemment),
Multiplexeurs de configuration
Exemple d’un CLB SPARTRAN
Chapitre 3

Flots de conception pour les


systèmes embarqués
Conception d’un Système numérique

Pour concevoir un système on part d’un cahier des charges à une réalisation:
 On débute par une description comportementale
 Puis, suite à des simulations et de mesures de performances, on identifie les
grands blocs.
La description devient alors mixte : une partie structurelle donnant la liste des
blocs et la façon dont ils sont interconnectés entre eux. Les blocs eux sont
encore représentés sous forme comportementale.
 On réapplique ensuite ce procédé récursivement à chaque bloc (décomposition
en sous-blocs, sous-sous-blocs), jusqu’à l’obtention d’une description presque
totalement structurelle à base de bascules D et de fonctions logiques simples.
 Des outils se chargent alors de traduire tout ça automatiquement en portes
logiques qui enfin seront réalisés physiquement.
Conception classique des systèmes
embarquées
Conception traditionnelle des systèmes embarqués

Un système embarqué est souvent formé par une collection de circuits


(ASIC, IP, ADC, mémoires…) et de logiciels (code exécutable : taches,
Objets…) en étroite interaction.

Approche logicielle Approche matérielle

Intégration Intégration
Test Test
Validation Validation
Systèmes
Embarqué SoC
Approche traditionnelle

1. Choix du matériel (composants électroniques, processeur…) pour


le système embarqué.
2. Donner le système ainsi conçu aux programmeurs.
3. Les programmeurs doivent réaliser un logiciel qui « colle » au
matériel.
Problèmes
Complexité croissante des systèmes embarqués
Les systèmes embarqués sont de plus en plus complexes:
Il est de plus en plus difficile d’obtenir une solution globale
optimisée au premier coup.
Il est de plus en plus difficile de corriger les erreurs.
Il est de plus en plus difficile de maintenir le système au cours
du temps (obsolescence des composants…).

En conséquence, l’approche traditionnelle de développement


d’un système embarqué doit évoluer...
Conception conjointe : co-design
hardware/software
Co-design hardware/software

Le Co-design constitue une méthodologie de conception d’un


système embarqué de tendance actuelle.

Le Co-design consiste à concevoir en même temps le matériel et le


logiciel pour une fonctionnalité à implémenter. (dès les premières
phases)

Le clé de cette conception est la spécification unique du système


décrivant son architecture et son comportement: d’où on tient
compte très tôt de l’interaction entre la partie hardware et la partie
software. La séparation se fera le plus tard possible.
Le co-design permet de repousser le plus loin possible dans la
conception du système les choix matériels à faire contrairement
à l’approche classique où les choix matériels sont faits en
premier lieu !
Conception et co-design
Objectif du co-design

Flexibilité de conception
Possibilité d’effectuer des modifications lors de la phase de conception
en raison du changement d’orientation du systèmes ou des contraintes.
Limitation des erreurs de conception
Le codesign évite les mauvaises surprises lors de la phase d’intégration
des différents sous systèmes et les tests du système global.
Solutions moins couteuses et plus performantes
Phase d’intégration et de test réduites
Délai de mise sur le marché réduit (restreint)
Avantages du codesign

Le co-design est intéressant dans la conception des systèmes


embarqués :
- Amélioration des performances: parallélisme (matériel bien adapté
au logiciel) , architecture spécialisée…
- Reconfiguration statique ou dynamique en cours de
fonctionnement.
- Indépendance vis à vis des évolutions technologiques des circuits
logiques programmables.
- Profiter des améliorations des outils de conception fournis par les
fabricants de circuits logiques programmables: synthèse plus
efficace, performances accrues.
Flot de conception co-design
Présentation générale

 Le Co-Design logiciel/matériel propose une approche structurée pour


la conception d’une classe de systèmes numériques.
 On distingue quatre grands étapes dans l’approche Co-Design :
1-) Spécification et modélisation:
- description des fonctionnalités du système de façon abstraite.
- conceptualisation et affinement des spécifications produisant un
modèle du matériel et du logiciel.
2-) Partitionnement matériel & logiciel.
3-) Synthèse et optimisation logicielle & matérielle: synthèse matériel et
compilation logicielle
4-) Co-simulation (validation, intégration et test d’intégration)
La réalisation finale est une réalisation conjointe matérielle/logicielle
Approche co-design
Spécification (1/1)

Evaluation d’un cahier des charges


 Aspects 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
Spécification (1/2)

Choix de la cible matérielle


- Une technologie
- Un type de circuit (FPGA, ASIC, DSP, Processeurs…)
Partitionnement

Objectif du partitionnement
Regrouper les variables et les comportements fortement
dépendants, puis de décider pour chaque regroupement le type de
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.
o Choix du modèle de spécification en fonction du type de l'application

o Classiquement les concepteurs considèrent qu'un système est dominé:


 Par le contrôle: Contrôle/commande de processus
– Systèmes à événements discrets
– Systèmes réactifs synchrones
– Machine d'états finis
– Réseaux de Petri
– Graphe de tâches
 Par les données : Les sorties sont fonctionnellement dépendantes
des entrées, Les occurrences des valeurs sur les entrées sont
périodiques
– Dataflow, Process Networks
Synthèse matérielle et logicielle

Cette é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 (motif, plannification).

 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.
Synthèse logicielle

Phase de développement

Phase de vérification

C File C File As. File

conversion en un Compiler Assembler


code exécutable
par un processeur. Binary Binary Binary
File File File

Debugger
Linker
Library
Profiler
Exec. File
Synthèse matérielle

Niveau
Spécification d’abstraction
 Synthèse architecturale : comportementale
catapullt C: vérification et Description
comportementale
synthèse haute niveau Synthèse
architecturale

Description RTL
Synthèse
(register transfer level)
logique

Description logique
Synthèse (portes)
physique
 Outils de synthèse logique : Fiabilité des
VHDL. Layout prédictions
Catapult est la principale solution HLS (High-Level Synthesis) pour ASIC
et FPGA, il supporte le C++/SystemC
Co-simulation
Machine à état fini

 Une machine à états finis (FSM Finite State Machine) est un


modèle mathématique de calcul utilisé dans de nombreux
domaines: conception de programmes informatiques,
protocoles de communication, contrôle des processus, ...

 Une FSM est définie par des états et des transitions (conditions)

 L’état où il se trouve est appelé l’ état courant. Le passage d’un


état à un autre est dirigé par un évènement (ou une condition)
appelé une transition.
Exemple d’utilisation des machines à états finis (FSM)

Feux de circulation

Digicodes

Ascenseur
 Un état est la description de la configuration d’un système en attente
d’exécuter une transition.
 Une transition est un ensemble d’actions à exécuter lorsqu’une
condition est remplie ou lorsqu’un évènement est reçu.

 Dans certaines représentations de machines à état finies, il est


possible d’associer des actions à un état :
– action d’entrée : réalisée lorsque l’on entre dans l’état.
– action de sortie : réalisée lorsque l’on « quitte » l’état.
– action de transition : réalisée lors d’une transition
Exemple: machine à états finis d’un portillon d’accès

Un portillon, utilisé dans certains métros ou dans d’autres établissements


à accès contrôlés est une barrière avec trois bras rotatifs à hauteur de la
taille.
Un portillon peut être vu comme un automate fini à deux états : verrouillé
(locked) et déverrouillé (unlocked).

Deux "entrées" peuvent modifier l’état : la première si l’on insère un jeton


dans la fente (entrée jeton) et la deuxième si l’on pousse le bras (entrée
pousser).
Dans l’état verrouillé, l’action de pousser n’a aucun effet et si on insère un
jeton on passe de l’état verrouillé à l’état déverrouillé.

Dans l’état déverrouillé, ajouter des jetons supplémentaires n’a pas d’effet.
Mais dès qu’un usager tourne le bras du portillon, donc fournit un
pousser, la machine retourne à l’état verrouillé.
Représentation de la machine à état par un graphe orienté

• Chaque état est représenté par un sommet


(un cercle).
• Les arcs (des flèches) sont les transitions
d’un état à un autre.
• Chaque flèche porte une entrée qui
déclenche la transition.
• Un point noir sert à indiquer que c’est état
est l’état initial.
État courant Entrée État suivant Sortie
verrouillé jeton déverrouillé Déverrouille le portillon
verrouillé pousser verrouillé Rien
déverrouillé jeton déverrouillé Rien
déverrouillé pousser verrouillé Verrouille le portillon
Différents types de machines à états finis

 Il existe deux types principaux de machines à états finis, Mealy


et Moore.
 La différence fondamentale entre ces deux types réside dans la
gestion des sorties
 La sortie du Mealy dépend de l'état actuel et des entrées.
 Les sorties d'une machine de Moore ne dépendent que de l'état
actuel (et non des entrées).
Différence entre machine de Mealy et machine de More
La machine de Moore est préférable au machine de Mealy vu que
la sortie du Moore ne dépend que de l'état actuel de la machine:
 Aucune hypothèse ou contrôle sur les entrées ne doit être
effectué pour générer la sortie du FSM, de sorte que le
décodage de sortie est plus simple à gérer.
 De plus, si la sortie est combinatoire, le FSM Moore est plus
sûr que Mealy : le long chemin combinatoire entre l'entrée et la
sortie peut générer un problème sur la sortie de la machine ou
peut réduire considérablement les performances de
synchronisation de conception.
Les Processeurs Embarqués dans
les FPGA
Système sur puce (SoC - System on Chip)

 un système complet embarqué sur une seule


puce, c.-à-d. il intègre tous les éléments
fonctionnels d’un produit sur une même puce:
• des modules logiciels (DSP),
• des mémoires,
• des périphériques,
• des coprocesseurs matériels (FPGA ou ASIC)
• des modules analogiques ou optoélectroniques
 Objectif: diminuer au minimum le nombre de
composants sur une carte pour mettre tout sur
une seule puce.
Architecture moderne des FPGA: le concept SOPC

La tendance pour les circuits FPGA est la possibilité de réaliser des systèmes sur
puce (ou SoC) en utilisant des " composants virtuels" et de concevoir ainsi des blocs
de propriété intellectuelle IP qui sont par exemple des fonctions VHDL/Verilog
génériques réutilisables.
Processeur Softcore

Définition
Un processeur softcore est un processeur implémenté en langage de description
haut niveau (VHDL, Verilog, etc.) sur un réseau logique reprogrammable comme
un FPGA.

Pour quoi les softcores ?


Architecture flexible : Mise à jour
Le code source peut être librement distribué et implanté dans n’importe quel
circuit programmable FPGA
Portabilité vers n’importe quel circuit FPGA : indépendance vis-à-vis du choix
technologie
Il est privilégie pour bénéficier des évolutions apportées en refaisant une synthèse
Processeur hardcore

 Le processeur hardcore est implanté dans le circuit


électronique en « dur ».

 Le processeur de ce type est généralement plus performant


que le processeur du type précédent.

 Inconvénient: Cher , Solution propriétaire, Non portable (


impossible de changer de cible)
Le choix d'un processeur pour le SoPC peut se faire sur différents
critères :

– Processeur hardcore : pour ses performances au détriment de la


flexibilité.

– Processeur softcore : pour sa flexibilité de mise à jour au


détriment de performances moindres que le précédent.
Règles de conception des systèmes embarqués

Face à des contraintes, le concepteur adopte les règles suivants:


 Règles de bon sens:

 Faire simple
 Utiliser ce que l’on a déjà au fait par d’autre: Desing reuse
 Utiliser de nouvelles méthodes de conception : Codesing
(Couplage fort entre le matériel et logiciel)
 Utiliser des technologies éprouvées qui ont fait leur preuve
Phase de conception d’un système embarqué à base de Nios II

Partie I: Hardware
Dans cette partie, nous allons essayer de décrire étape par étape
l’implémentation d’un SoPC à base du processeur NIOS II:
 Processeur Softcore Nios II
 Mémoires : 32 Mo SDRAM; 8Mo de mémoire FLASH
 JTAG UART: Protocole récent très utilisé dans le monde des systèmes
embarqués. Il est surtout utilisé pour le débogage et le test
d’une carte numérique.
 PIO: Leds, boutons poussoirs, afficheur s 7 segments, afficheurs
 Bus Avalon
 Tiemers: Sont des compteurs qui permettent de mesurer le temps et de
compter des événements qui arrivent (sur un pin par exemple, etc.)
Caractéristique du Nios II

 C’est un microprocesseur 32 bits de type RISC (Remarque : Le NIOS I


étant 16 bits)
 Ces instructions machines sont de 32 bits
 Pouvant avoir de 1 à 6 étages de pipelining
 Pouvant travailler jusqu’à une fréquence de 200 MHz
 Possède 32 registres d’usage général et 6 registres d’usage particulier,
tous les registres sont 32 bits

L’ensemble consomme dans le FPGA en fonction des options choisi de


26.000 à 72.000 portes (le FPGA sur la carte DE2-70 contient 68416)
Les 3 versions du processeurs Nios II

Lors de la configuration du processeur Nios II avec l’outil SoPC


Builder, il est possible de choisir entre 3 versions du processeur II:
- Une première version Economy qui utilise moins de surface de
silicium du composant FPGA
- Une deuxième version Standard qui permet un compromis entre
surface et rapidité
- Enfin une dernière version Fast est la plus rapide des deux autres
versions
Etapes de conception d’un système embarqué à base de Nios II

La création d’une application SOPC comprend les étapes suivantes :


1) Création du composant matériel (processeur + périphériques)
dans l’environnement Qsys.
2) Téléchargement dans le composant FPGA (configuration)
(environnement Quartus II)
3) Création du logiciel dans l’environnement NIOS2IDE, sa
compilation puis son téléchargement dans
la mémoire du SoPC.

Vous aimerez peut-être aussi