0% ont trouvé ce document utile (0 vote)
208 vues135 pages

Cours Codesign 11122023-1-135

Transféré par

laamirihana014
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)
208 vues135 pages

Cours Codesign 11122023-1-135

Transféré par

laamirihana014
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
Vous êtes sur la page 1/ 135

Faculté des Sciences de Bizerte Département Informatique

Université de Carthage SEIoT3

Conception d’objets connectés


Co-design

Souhir Bousselmi
[email protected]

A.U: 2022/2023
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

.
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)

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


son architecture et son comportement: d’où en on tient compte très tôt de
l’interaction entre la partie hardware et la partie software.
PLAN

Chapitre 1: Introduction aux systèmes embarqué et objet


connecté

Chapitre 2: Introduction aux architectures à usage général et


spécifique

Chapitre 3: Flots de conception pour les systèmes embarqués

Chapitre 4: Implémentation IOT sur FPGA


Chapitre 1

Introduction aux systèmes embarqués et


objets connectés
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 système matériel et l’application sont intimement liés et noyés dans le
matériel et ne sont pas facilement discernables comme dans le cas d’un PC
Un système embarqué n’est pas un PC
Il 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 nucléaire,
auomates, système de navigation aérien.
 Télécommunication: Sattelites, GPS, téléphonie mobile

 Appareils électriques et électroniques:


appareils photo, jouets, postes de télévision,
é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

Les systèmes embarqués automobiles sont conçus et installés dans le but d’améliorer
la sécurité en utilisant des systèmes et des capteurs de technologie avancée qui n'est
possible qu’avec des systèmes embarqués.

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


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

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


- Système de navigation automobile
- Système de freinage antiblocage
- Système de divertissement pour véhicules
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.

 Faible consommation :
✓ Batterie de 8 heures et plus (PC portable : 2 heures).
✓ Une consommation excessive augmente le prix de revient du système embarqué car il
faut alors des batteries de plus forte capacité.
• Faible encombrement, faible poids :
Les système embarqués requièrent souvent un faible encombrement (faible
poids), leur technologie fait alors appel à une électronique compacte

✓ Electronique compacte: applications portables où l'on doit minimiser


aussi bien l'encombrement que la consommation électrique.

✓ Difficulté pour réaliser le packaging:


La réalisation du packaging afin de faire cohabiter sur une faible surface
de l'électronique analogique, de l'électronique numérique, des
composantes RF (Radiofréquence) sans interférences est une tâche
difficile.
 Environnement :

Du fait de leur portabilité et de la mobilité des produits dans lesquels ils sont incorporés,
les systèmes embarqués évoluent généralement dans des conditions environnementales non
déterministes et souvent non maîtrisées.

Ils sont exposés à des variations et autres contraintes environnementales susceptibles


d'induire des défaillances : vibrations, chocs, variation de température, variations
d'alimentation, interférences RadioFréquence, corrosion, humidité, radiations….

D'où la nécessité de prendre en compte des évolutions des caractéristiques des composants
en fonction des conditions environnementales.
 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 ».
5. Architecture d’un système embarqué
✓ On trouve en entrée des capteurs
généralement analogiques couplés à des
convertisseurs A/N.

✓ On retrouve en sortie des actionneurs


généralement analogiques couplés à des
convertisseurs N/A.

✓ Au milieu, on trouve le calculateur


mettant en œuvre, un processeur
embarqué et ses périphériques d'E/S

✓ L'environnement dans lequel opère le


système embarqué n'est pas contrôlable.
Il faut prendre en compte ce paramètre
lors de sa conception: On doit prendre
en compte les évolutions des
caractéristiques électriques des
composants en fonction de la
température, des radiations, ...
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.
L’évolution des microprocesseurs
selon la loi de Moore
Le nombre de transistors est passé de 2300
sur le Intel 4004, à plusieurs dizaines de
millions de transistors pour les
microprocesseurs modernes.
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 :

Les microcircuits SSI (Single Size Intégration ) :  100 transistors par cm2.
Les circuits intégrés MSI ( Médium Size Intégration ) :  1000 transistors/cm2.
 Les circuits LSI (Large Size Intégration) :  10000 à 100000 transistors/cm2.
 Les circuits VLSI (Very Large Size Intégration ) :  0.1 à 1 million
transistors/cm2
Processeur marque Cerebras : le plus grand
processeur au monde.

Dimension 46 225 mm² et embarquant 1 200


milliards de transistors.

destiné spécifiquement au deep learning et à


l'IA.
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 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.

Un processeur doit acquérir des données, les traiter, et


produire un résultat.
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
2. Types de processeurs
2.1 Processeur à usage général

Les processeurs à usage général sont caractérisé par un jeu


d’instruction et peuvent être programmés.
 Le programme exécuté par un processeur est gardé en mémoire
sous la forme d’une liste d’instructions.
 On réfère souvent à ce type de processeur par le nom de
« microprocesseur ».
 Un microcontrôleur constitue un cas particulier d’un processeur
à usage général.
Un processeur spécialisé est un processeur à usage général auquel
on a ajouté des instructions spéciales.
❖ Un processeur à usage général doit effectuer n’importe
quelle tâche qu’un processeur à usage spécifique, mais avec:
- Un chemin des données fixe.
- Une unité de contrôle fixe.
- Des signaux de contrôle fixes.

❖ Un processeur à usage général doit être programmé sans


changer sa structure ni ses interconnexions.
❖ 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.
Exemple: Blackfin, un processeur à usage générale spécialisé pour
le traitement du signal et de l’image
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 Changer leur fonction


et plus efficaces que les demande souvent implique changer leur
processeurs à usage
beaucoup d’efforts structure.
général.
Comment passer  Pour modifier la tâche d’un processeur
d’un processeur à usage spécifique, il faut ajouter des
à usage registres et des structures de calculs
spécifique au nécessaires à son chemin des données.
processeur à  Changer la machine à états de son unité
usage général 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

Le jeu d'instructions d'un processeur représente l'ensemble des


opérations qu'un processeur peut effectuer. Ce sont les
opérations qui sont codées dans le processeur au niveau
matériel.
Un processeur ne peut effectuer aucune opération en dehors de
son jeu d'instructions, car il n'a pas le matériel pour cela.
Un jeu d'instructions contient toutes les opérations qu’un
processeur prend en charge au niveau matériel.
Ce jeu peut contenir de quelques à des milliers d'instructions,
selon la conception du processeur.
3.1 Processeur RISC

Un 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.
Vu que l’architecture RISC utilise des instructions simples, le
processeur n'a pas besoin d'avoir des circuits complexes pour
exécuter ces instructions.
Les 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
Un 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 le
précaractérisé
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
File
Binary
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