Vous êtes sur la page 1sur 53

Faculté des Sciences de Bizerte Département Informatique

Université de Carthage SEIoT3

Conception d’objets connectés


le CoDesign

Emna Ben Salem


emna.bensalem@fsb.u-carthage.tn

AU 2021/2022
Plan

Chapitre 1 : Introduction aux architectures à usage


général et spécifiques

Chapitre 2 : Flots de conception pour les systèmes


embarqués

Chapitre 3 : Implémentation des IoT sur les FPGA

-2 -
Chapitre 1

Introduction aux architectures à


usage général et spécifiques

-3 -
Evolution technologique
Progrès réalisés en technologie d’intégration

 SSI : Small Scale Integration (dizaine de transistors)

 MSI : Meduim Scale Integration (centaine de transistors)

 LSI : Large Scale Integration (Milliers de transistors)


 Besoin d’outils de conception + automatisation : Outils CAD

 VLSI : Very Large Scale Integration (Centaine de milliers de


transistors)
 Outils CAD indispensables pour gérer la complexité de la
conception et de la fabrication du Circuit Intégré (CI).

4
Evolution technologique
2005 2008 2011 2014 2017 2020

Technologie (mm) 90 65 45 30 20 15

Taille des puces (mm2) 246 246 246 246 246 246

Densité d’intégration 225 449 899 1 798 3 596 7 192


(Mtr/cm2)

Fréquence d’horloge 5.2 11 17.6 28.3 45.5 73.1


SOC (GHz)

Tension 0.9 0.8 0.7 0.6 0.5 0.5


d’alimentation (V) 1.1 1 1 0.9 0.7 0.7

Source : November 2005 ITRS Release Conference http://public.itrs.net/


-5 -
Processeurs embarqués
Un processeur embarqué: c’est une combinaison de matériels et
logiciels permettant de remplir une ou plusieurs fonctions
spécifiques avec des contraintes plus ou moins sévères

Ces systèmes impliquent des contraintes :


 Produits largement diffusés : coûts réduits
 Contraintes temporelles strictes
 Sûreté de fonctionnement (aéronautique)
 Taille, poids
 Consommation d’énergie
 Puissance de calcul limité

Mais il faut aussi privilégier :


 La réutilisation
 La flexibilité : modifications tardives, correction d’erreurs

6
Processeurs embarqués
o En 1999, une vente de processeurs embarqués de
 1,3 milliards de processeurs 4 bits
 1,4 milliards de processeurs 8 bits
 375 millions de processeurs 16 bits
 127 millions de processeurs 32 bits
 3,2 millions de processeurs 64 bits.

o Il a été vendu 108 millions de processeurs pour le marché


du PC

o En 2004:
 14 milliards de processeurs pour l’embarqué
(microprocesseur, microcontrôleur, DSP, etc.)
 260 millions de processeurs PC.
 Moins de 5% des processeurs vendu sont pour les PC,
95% pour l’embarqué
 Prix moyen d’un processeur 6$ alors qu’un processeur PC
coute 300$.
7
Processeurs embarqués
Processeurs embarqués

personnalisés Programmables
généralistes

Circuits Circuits Circuits Circuits


Processeurs Microcontrôleurs
RISC et sur mesure précaractérisés prédiffusés configurables
et DSP
CISC

ASIC ASSP Sea of Gate


PLD CPLD FPGA
gate array

RISC : Reduced Instruction Set Computer


CISC : Complex Instruction Set Computer
DSP : Digital Signal Processor
ASIC : Application Specific Integrated Circuit
ASSP : Application Specific Standard Product
FPGA : Field Programmable Gate Array (Composants à technologie RAM)
CPLD : Complex Programmable Logic Device
PAL : Programmable Array Logic (composants à technologie fusible)
8
Processeurs CISC et RISC
Processeurs CISC
 Classe de jeu d’instructions où une instruction peut designer
plusieurs opérations élémentaires.
- Ex: un load, une opération arithmétique et un store.
 Grandes variations de taille et de temps d’exécution pour les
instructions.
 Résulte en un code compact mais complexe à générer.
 Motorola 68000, Intel x86/Pentium...

Processeurs RISC
 Petites instructions simples, toutes de même taille, ayant toutes le
même temps d’exécution.
 Accélération en pipelinant l’exécution (entre 3 et 7 étages de
pipeline pour une instruction).
 Code plus simple à générer, mais moins compact.
 Tous les microprocesseurs modernes sont de types RISC:
SPARC, MIPS, ARM, PowerPC...

9
Microcontrô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

10
Processeurs personnalisés : ASIC
 Un ASIC est un circuit intégré propre à une application.
 Il regroupe sur le même circuit un grand nombre de
fonctionnalités sur mesure (full custom): processeurs, mémoires
et interfaces.
 Caractéristiques : coûts de production réduit, contrôle total du
produit, un coût et délai de développement élevés.
 Jeu d’instruction et ensemble des ressources adaptés à
l’application
- Meilleurs rapports MIPS/mW et MIPS/mm2 que RISC et DSP
- Mais compilateur plus délicat, time-to-market plus long
qu’avec des processeurs standards
 Fabricants : Intel, STMicroelectronics, Honeywell, Microchip...

ASIC L9660 (STMicroelectronics) utilisé dans les


systèmes d'airbag dans les automobiles.
- Fréquence 5.5 Mhz
- 64 pins

11
Processeurs personnalisés : ASSP
 Composant complexe qui réalise une fonction spécifique
(compression vidéo, modem).
- Un ASSP pour le GSM issu d'un fabricant unique est utilisé comme circuit
de base par différents fabricants de téléphones portables.
 Un ASIC est conçu pour un besoin plus particulier qu'un ASSP.
 Caractéristiques :
- Utilise des librairies de cellules primitives : Portes AND, OR,
registres, SRAM, etc.
- Effort de conception réduit.

ASSP MC1496B : (Onsemi) Balanced Modulator


and Demodulator (Amplitude Modulation, FM,
Synchronisation, detection de phase)
- Fréquence 80 Mhz
- 14 pins

12
Circuits prédiffusés
Gate Array
 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.
Sea of Gates
 Circuit composé de blocs contigus de transistors
 Les connexions passent entre les blocs ou par-dessus

13
Circuits programmables
 Un circuit logique programmable 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.
 L'intérêt est qu'une même puce peut être utilisée dans de nombreux
systèmes électroniques différents.

 Plusieurs types de circuits programmables :


- FPGA (Field Programmable Gate Array, réseau de portes
programmables)
- PLD (programmable logic device, circuit logique
programmable)
- EPLD (erasable programmable logic device, circuit logique
programmable et effaçable)
- CPLD (complex programmable logic device, circuit logique
programmable complexe)
14
FPGA
 Circuit intégré contenant un très grand nombre de portes logiques
organisées en blocs logiques configurables et interconnectables.
 Les FPGA sont utilisés dans diverses applications nécessitant de
l'électronique numérique (télécommunications, aéronautique,
transports…).
 Les deux plus grands constructeurs de FPGA sont XILINX et
ALTERA.
 Les FPGA sont généralement plus lents, plus chers à l'unité et
consomment davantage d'énergie que leur équivalent en ASIC.
 Cependant, ils ont plusieurs avantages :
- Délai de mise sur le marché plus court, car ce sont des
composants standards
- Temps de conception plus court

15
Architecture des FPGA

Chip FPGA
Zone d’interconnexions
configurable
Bloc d’Entrée/Sortie (IOB)
Bloc logique
configurable (CLB)

Bitstream en série

16
Architecture des FPGA
 Blocs d ’entrées/sorties IOB configurables
• Entrée, sortie ou les deux, mémorisation dans une
bascule D
• niveaux logiques LVTTL, LVCMOS, … 3.3V, 2.5V,…
• pull-up ou pull-down interne sur les entrées

 Blocs logiques configurables CLB


• Blocs combinatoires 4 entrées une sortie (en général)
• Bascules D pour la mémorisation

 Lignes d’interconnexions configurables


• lignes courtes
• lignes longues

 Options : multiplicateurs , SRAM, etc…

17
FPGA : Bloc d’entrée/sortie (IOB)

IO driver
Bascules Multiplexeurs
Input Output Block

Les ports d’entrées/sortie des circuits FPGA sont totalement


programmables, et :
 Le slew-rate est programmable (La vitesse de balayage ou
slew rate représente 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.
18
FPGA : Bloc IOB du Spartan3
Autorisation de la sortie Driver de sortie à 3 états

Mémorisation
de la sortie

Mémorisation
de l ’entrée

Multiplexeurs positionnés Adaptation électrique des entrées par résistance


lors de la configuration
19
FPGA : Bloc Logique Configurable
(CLB)

Look Up Table Bascules Multiplexeurs


Logique de retenue
Cellule logique de base

Exemple: Utilisation
de la table LUT
comme additionneur
complet

20
FPGA : Principe de fonctionnement
d’une cellule logique de base

Bascule Mux
4 entrées LUT D Q

Ck Positionné lors
SRAM de 16 de la
bits (Look Up CE configuration
Table)
Mémorisation
du résultat
Fonctionnement purement combinatoire
Fonctionnement avec mémorisation du résultat

21
FPGA : Look Up Table (LUT)
0
1
0
4 entrées LUT 1 sortie Sortie
24 bits

SRAM 16*1 bits 1


(Look Up Table)
4 entrées

 Les 4 entrées permettent d’adresser 16 cellules mémoires


de 1 bit chacune (24)
 Le contenu de la table permet d ’obtenir n’importe quelle
fonction logique de 4 entrées binaires.

22
FPGA : Bloc CLB du Spartan3

Spartan3 XC3S200
23
MPSoC
 Demande croissante pour le calcul haute performance dans
plusieurs secteurs de marché tels que le multimédia, les
communications, l’aérospatiale, l’imagerie médicale et la robotique :
Intégration des MPSoC (Multi-Processors System-on-Chip).

Applications
MPSoC

- 24 -
MPSoC : Définitions
 Les MPSoC sont la dernière incarnation de la technologie
d'intégration à très grande échelle VLSI : Ce sont des systèmes
sur puce qui contiennent plusieurs processeurs.

 En pratique, la plupart des SoC sont des MPSoC car il est trop
difficile de concevoir un système sur puce complexe sans utiliser
plusieurs processeurs.

 MPSoC hétérogène : MPSoC avec des processeurs de différents


jeu d’instructions et architectures.

 Le fait qu'un MPSoC soit un multiprocesseur signifie que la


conception du logiciel fait partie intégrante de la conception
matérielle du système : le parallélisme est nécessaire pour
exploiter les ressources de calcul disponibles.

25
Exemples de MPSoC
 Emotion Engine (Sony Playstation 2)
- 3 processeurs : CPU avec 2 vector processing
units

 Processeur CELL (Sony, Toshiba, IBM pour


Playstation 3)
- 9 processeurs : general purpose CPU, 8
processing elements

 ST7200 (ST) pour DVD or HDTV


- 5 processors : general purpose CPU, 4 DSP

 DaVinci (Texas Instrument) pour les caméras


- 3 processors : general purpose CPU, 2 DSP

 Diopsis D940 (ATMEL) for Massive parallel


processor system (Petaflop)
- 3 processors : general purpose CPU, 1 DSP
VLIW, 1 network processor
26
Architecture générique des MPSoC
Le Hardware des MPSoC est composé de :
 Processeurs (CPU, DSP, GPU…) : Plusieurs familles comme
ARM, MIPS, SPARC, POWERPC, Intel, MOTOROLA, ST,
ATMEL, …
 Modules Mémoires : Local ou global, caches avec différentes
technologies ROM, DRAM, SRAM, SDRAM, Flash.
 Composants IP (Intellectuel Properties) : composants préconçus
et pré-vérifiés.
« Un composant IP est la spécification d’un composant
réalisant une fonction bien déterminée pouvant être synthétisée,
donc réutilisée, par un utilisateur n’ayant pas participé à la
spécification de ce composant »
 Réseau de Communication : NoC (Network on Chip)
interconnexion et routage entre les processeurs de la puce.
 Interface d’E/S : Contrôleurs I/O.
27
Exemples d’architecture MPSoC
Processeur Cell : IBM, Sony (Play Station 3)
 241 Millions de transistors, technologie 90 nm et 65 nm,
fréquence 3.2 GHz
 Composants : Un processeur PowerPC (PowerPC Processor
Element, or PPE) , 7 Syngergistic Processor Elements (SPE) et
un système de communication EIB (Element Interconnect Bus).

28
Exemples d’architecture MPSoC
Processeur Dual Core Diopsis 740
 Un processeur Core ARM7TDMI avec 32 Ko de mémoire SRAM
intégrée de fréquence 50 MHz.
 Un mAgic DSP pour les applications d’audio et de communication
de fréquence 100 MHz

29
Chapitre 3

Flots de conception pour les systèmes


embarqués

- 30 -
Introduction
 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 intéraction.

 Flots de conception traditionnel

Approche logicielle Approche matérielle

Intégration Intégration
Test Test
Validation Validation

Systèmes
Embarqué SoC

31
Propriétés d’un Système numérique
 Les propriétés d’un système peuvent être spécifiés selon trois domaines:
 Comportemental (Que fait il?): Information fonctionnel du système
 Structurel (Quels sont les différents sous-systèmes et comment sont-
ils liés?): Information schématique.
 Physique (Taille, forme et placement physique?) Information
géométrique du système .
 Pour chaque domaine il y a quatre niveaux d’abstraction
Spécification

Architecture
Structurel Comportemental
Logique

Circuit

Diagramme en Y : " The basic idea


underlying the Y-chart is that each
element of an electronic system can be
described within three different domain
[Gajski83] "
32
Physique
Conception d’un Système numérique
 Conception d’un circuit ou d’un système : c’est passer d’un
cahier des charges à une réalisation

 En pratique, on commence par une description comportementale

 Puis, à force de simulations et de mesures de performances, on


essaye d'identifier les grands blocs. La description devient alors
mixte : une partie structurelle donnant la liste des blocs et la façon
dont ils sont reliés entre eux, alors que 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'à obtenir
une description presque totalement structurelle à base de bascules
D et fonctions logiques simples.

 Des outils se chargent alors de traduire tout ça automatiquement en


portes logiques qui enfin seront réalisés physiquement.

33
Niveaux d’abstraction
 Abstraction
− Eliminer des détails, focaliser sur un point de vue du système
− Travailler à différentes échelles de complexité et de temps

 Quatre grands niveaux de conception :


− Niveau Spécification (ou système) : définition du problème
− Niveau Architectural : agencement général de la réalisation
− Niveau Logique ou Logiciel : conception détaillée
− Niveau Circuit : réalisation physique

 Utilisation de modèles et méthodes qui sont un ensemble de règles


bien définies conduisant à une solution correcte

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

34
Niveaux d’abstraction
Type Eléments de base Conception

1 2 Conception électrique
Composants
discrets Optimisation des caractéristiques électriques
1 2

Conception logique
SSI 2 2 2
1 1 1
Small Scale 3 3 3 Optimisation des équations logiques
Integration

Conception numérique
MSI Full
Registre Mux Optimisation des traitements
Middle Scale Adder
Integration

Conception architecturale
LSI UAL
Séquenceur
Large Scale Choix des fonctionnalités
Integration

Conception fonctionnelle
VLSI
Very Large E/S CPU E FPGA S E ASIC S Optimisation des implémentations
Scale matérielles et logicielles
Integration
Rom Buff. E/S Conception système
ULSI Cœur DSP MPEG
Cœur RISC Ram
Optimisation conjointe des implémentations
Ultra Large
Scale Buff. E/S Analog. matérielles et logicielles
Integration
- 35 -
Le Codesign
Nécessité d’une méthodologie de conception conjointe
 Systèmes de grande complexité à intégrer.
 Capacité d’intégration croissante.
 Temps de conception de plus en plus court (réduire le délai
de mise sur le marché Time-to-Market)

Objectifs
 Flexibilité de conception : apporter des modifications lors
de la conception en raison de contraintes ou changement
d’orientations.
 Limiter les 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.
 Utiliser les outils de CAO pour les tâches répétitives et
laborieuses : aboutir à des solutions moins couteuses et
plus performantes.
 Rester indépendant le plus longtemps possible vis à vis de
la technologie. 36
Le Codesign
 La tendance actuelle pour la conception des systèmes
hétérogènes est de considérer aussi bien la partie matérielle que
la partie logicielle dès les premières phases de conception.

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


décrivant son architecture et/ou son comportement, donc tenir
compte très tôt de l’intéraction qu’il y a entre la partie hardware et
la partie software. La séparation se fera le plus tard possible.

 Cette approche est nommée conception conjointe


Matérielle/Logicielle ou usuellement Codesign

 Le codesign traverse plusieurs champs de compétences :


- Spécification du SoC
- Modélisation
- Partitionnement
- Ordonnancement
- Co-vérification et Co-simulation
- Génération du code matériel et logiciel
37
- Interfaçage matériel/logiciel
Flot de conception Codesign
Flot de conception : Ensemble de compilateurs, outils de
développement logiciel, outils de conception assistée par ordinateur
(CAO), etc., permettant de:
 Aider à automatiser les étapes de la conception
 Garder trace de l’application de la méthodologie (gestion de
version, rapports, accélération des itérations).
Estimations et optimisation
Spécification
et Modèles

Partitionnement HW/SW

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

Proc / DSP Co-Simulation ASIC / FPGA - 38 -


Spécification et Modèles
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

Choix de la cible matérielle


 Le type de circuit (FPGA, ASIC, DSP, Processeurs…)
 Les outils de développement (outils CAO)

39
Spécification et Modèles
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: Réactions à des événements discrets,
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

40
Machine à états finis
 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.

 On trouve des machines à états finis dans :


− un distributeur automatique de boissons qui délivre l’article souhaité quand le
montant introduit est approprié,
− les ascenseurs qui savent combiner les appels successifs pour s’arrêter aux
étages intermédiaires,
− les feux de circulation capables de s’adapter aux voitures en attente,
− les digicodes qui analysent la bonne suite de chiffres,

41
Machine à états finis
 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.
 Exemple : une chaîne audio peut être dans l’état « CD » et recevoir
l’évènement « suivant ». Elle passe alors à la piste suivante du CD.

 Dans certaines représentations de machines 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

42
Machine à états finis
 Un exemple très simple d’un mécanisme que l’on
peut modéliser par une FSM est 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
lebras (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é.

43
Machine à états finis
É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

Représentation
d’une FSM 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. 44
Machine à états finis

45
Partitionnement
 L’objectif du partitionnement est de 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.
 Les performances réelles de la réalisation ne peuvent être
connues qu’après l’étape de co-simulation.
» 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.
 La répartition logiciel/matériel peut varier durant la vie de l’objet.

o Temps de marché
Solution logicielle
o Spécifications mouvante
o Contraintes de performances : taille, vitesse, prix, énergie Solution matérielle
o Spécifications encore incertaines avec FPGA
o Exigences de performances Solution matérielle
o Spécifications Figées avec ASIC
- 46 -
Synthèse
 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.

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

- 47 -
Synthèse logicielle
Phase de développement

Phase de vérification
Asm.
C File C File
File

Compiler Assembler

Binary Binary Binary


File File File

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

Niveau
d’abstraction
Spécification
comportementale
 Synthèse Description
architecturale : Synthèse
comportementale
catapullt C Librairie de composants
architecturale

 Outils de synthèse
logique : VHDL. Description RTL
Synthèse
logique Librairie de portes

Description logique
Synthèse (portes)
Librairie de transistors
physique
Fiabilité des
prédictions
- 49 -
Layout
Chapitre 3

Implémentation IoT sur FPGA

- 50 -
Processeurs FPGA
 Le processeur fourni par Altera s’appelle le NIOS et celui fourni
par Xilinx s’appelle le MicroBlaze.
 Les deux processeurs sont des softcores 32 bit à jeu
d’instructions réduit RISC.
 Architecture HARVARD, les instructions et les données stockées
dans la mémoire sur puce (on chip) du processeur sont
accessibles simultanément en un cycle d’horloge.
 Implantation softcore peut être reconfigurée contrairement à un
processeur dit hardcore qui ne peut être modifiée

Softcore MicroBlaze

51
Lire I2C
la température T
Capteur
HCT01
Lire I2C
L’humidité H

Comparer T
avec valeur seuil

Comparer H
avec valeur seuil

UART Module de
Envoyer Cloud
communications

Delay (1000)
52
Capteur
HCT01

Contrôleur Bus
Composant IP

Lire Lire
la température T L’humidité H
Mise à jour
possible de
l’algorithme
Comparer T Comparer H
avec valeur seuil avec valeur seuil

Module de
Envoyer Communications Cloud
Composant IP
FPGA 53

Vous aimerez peut-être aussi