Vous êtes sur la page 1sur 128

‫بسم هللا الرحمان الرحيم‬

U n ive rs i t é Fe r h a t A b b a s – S é t i f
Département d’électronique

Thème de Magister:

Présenté par : MEZZAH Ibrahim


2008
INTRODUCTION

TECHNIQUES DE CONCEPTION

OBJECTIF

ARCHITECTURE DU MCIP

CONCEPTION DU MCIP

SYSTEME D’INJECTION DE FAUTES

VALIDATION ET APPLICATION

CONCLUSION
INTRODUCTION

Augmentation de la
capacité d’intégration
INTRODUCTION

Augmentation de la
capacité d’intégration

Système électronique
INTRODUCTION

Augmentation de la
capacité d’intégration

Système électronique
INTRODUCTION

Augmentation de la
capacité d’intégration

System on Chip
TECHNIQUES DE CONCEPTION

Evolution du marché des systèmes électroniques


TECHNIQUES DE CONCEPTION

Développement d’un système électronique


TECHNIQUES DE CONCEPTION

Développement d’un système électronique


TECHNIQUES DE CONCEPTION

Développement d’un système électronique

Le développement doit être effectuer en un délai


très court
TECHNIQUES DE CONCEPTION

Développement d’un système électronique


Réutilisation des éléments
Comment concevoir rapidement un
circuit complexe?
TECHNIQUES DE CONCEPTION

Développement d’un système électronique


Réutilisation des éléments
TECHNIQUES DE CONCEPTION

La notion IP

Ces modules réutilisés sont


des modules pré-validés qui
sont appelés IP (Intellectual
Property), on trouve
plusieurs IP disponibles en
vente chez des concepteurs
et vendeurs spécialisés
TECHNIQUES DE CONCEPTION

Large choix des IP disponibles chez les vendeurs dédiés

Microprocesseurs, Microcontrôleurs, DSP


UART, USB, I2C, Ethernet,
PCI, PCI express,
Compresseurs JPEG, Vidéo,
VGA,
TECHNIQUES DE CONCEPTION

Types des IP (Intellectual Property)

Un bloc physiquement implanté,


très optimisé en performance
et spécifique à une technologie donnée.
TECHNIQUES DE CONCEPTION

Types des IP (Intellectual Property)

Un bloc décrit en langage de description matériel


de haut niveau (VHDL, Verilog …etc.),
indépendant de la technologie d’implantation
et souvent paramétrable.
TECHNIQUES DE CONCEPTION

Caractéristiques des IP
TECHNIQUES DE CONCEPTION

Flot de conception des SoC


OBJECTIF

Conception en langage VHDL d’un Microcontrôleur IP


Utilisation dans le développement des SoC

Un SoC
ARCHITECTURE DU MCIP

Choix de l’architecture du MCIP

Architecture
du MCIP
ARCHITECTURE DU MCIP

Choix de l’architecture du MCIP

Architecture
du MCIP
ARCHITECTURE DU MCIP

Architecture du PIC18
• MCU 8bit
• Architecture Harvard
• Pipeline d’instruction
• Jeux d’instructions 76 ins.
• Instruction sur 16bit
• Jusqu’à 2Mo de taille de programme
• Jusqu’à 4Ko de taille de mémoire données
• Multiplicateur matériel
• Communication UART, I2C, USB …etc
• Convertisseurs A/N
• …etc.
ARCHITECTURE DU MCIP

Choix du microcontrôleur PIC18

Inexistence d’un MCU compatible avec le PIC18 chez les vendeurs de IP


par contre, il existe plusieurs IP compatible avec les PIC16 et autres
architectures existantes
ARCHITECTURE DU MCIP

Choix du microcontrôleur PIC18

Inexistence d’un MCU compatible avec le PIC18 chez les vendeurs de IP


par contre, il existe plusieurs IP compatible avec les PIC16 et autres
architectures existantes
ARCHITECTURE DU MCIP

Choix du microcontrôleur PIC18

Le PIC18 dispose une architecture


performante et très riche en modules

Il est le plus performant parmi les MCU 8bit


commercialisés par Microchip.

Il dispose un environnement riche (MPLAB)


qui permet la bon vérification du notre IP

Il dispose de plusieurs compilateurs C, et


autre langage, ce qui luit rend très utile

Inexistence d’un MCU compatible avec le PIC18 chez les vendeurs de IP


par contre, il existe plusieurs IP compatible avec les PIC16 et autres
architectures existantes
ARCHITECTURE DU MCIP

Architecture du MCIP (8bit MCU)


• Architecture Harvard
• Bus d’instruction de 16bit
• Bus de donnée de 8bit
• Pipeline
• Jeux d’instructions 72 inst.
• ALU 8bit
• Multiplicateur matériel 8x8
• Taille maximale de mémoire programme 2Mo
• Taille maximal de mémoire données 4Ko
• Watchdog et Mode en veille
• 5 sources d’interruption avec priorité
• 2 Timers configurables 8/16bit
• 4 Ports d’E/S 8bit …etc.
CONCEPTION DU MCIP

Flot de conception
CONCEPTION DU MCIP

Outils de développement
CONCEPTION DU MCIP

Outils de développement

Elaboration du modèle VHDL du MCIP


et synthèse, création des testbenchs,
implantation du projet sur FPGA …etc.
CONCEPTION DU MCIP

Outils de développement

Simulation par exécution des


testbenchs et comparaison des
résultats.
CONCEPTION DU MCIP

Outils de développement

Ecriture des programmes de test,


simulation et comparaison des
résultats avec ceux obtenus par
ModelSim.
CONCEPTION DU MCIP

Méthodologie de conception
Subdivision du MCIP en modules simple à programmer
CONCEPTION DU MCIP

Méthodologie de conception
Subdivision du MCIP en modules simple à programmer
CONCEPTION DU MCIP

Méthodologie de conception
Spécifier l’entité du module (tous les entrées et sorties)
CONCEPTION DU MCIP

Méthodologie de conception
Spécifier l’entité du module (tous les entrées et sorties)
CONCEPTION DU MCIP

Méthodologie de conception
Concevoir un schéma structurel si c’est nécessaire pour faciliter la programmation VHDL
CONCEPTION DU MCIP

Méthodologie de conception
Concevoir un schéma structurel si c’est nécessaire pour faciliter la programmation VHDL
CONCEPTION DU MCIP

Méthodologie de conception
Programmation VHDL du module spécifié et création de testbenchs dédiés sous Xilinx ISE

Déclaration de
l’entité

Code VHDL de
l’architecture
CONCEPTION DU MCIP

Méthodologie de conception
Programmation VHDL du module spécifié et création de testbenchs dédiés sous Xilinx ISE
CONCEPTION DU MCIP

Méthodologie de conception
Lancement de la simulation dans ModelSim, analisation des résultats et effectuation de
corrections au module si les résultats ne sont pas bons
CONCEPTION DU MCIP

Hiérarchie du modèle VHDL de MCIP


CONCEPTION DU MCIP

Hiérarchie du modèle VHDL de MCIP


CONCEPTION DU MCIP

Conception, développement et validation des modules

Module de génération des signaux de synchronisations: Q1, Q2, Q3 et Q4

Signaux générés par la PLL

L’entité du module
CONCEPTION DU MCIP

Conception, développement et validation des modules

Le mode en veille est appliqué par ce module par l’arrêt des signaux Qi

Ce module est développé en 71 lignes du


code VHDL

Il est validé par un testbench (simulation


avant et après placement et routage)
CONCEPTION DU MCIP

Conception, développement et validation des modules

Résultats de simulation (simulation à l’échelle comportemental)


CONCEPTION DU MCIP

Conception, développement et validation des modules

Résultats de simulation (simulation après placement et routage)


CONCEPTION DU MCIP

Conception, développement et validation des modules

Module de génération de reset global du système

Le reset global est activé suite à la présence d’un:


• Reset externe
• Reset par une instruction
• Dépassement de la pile
• Dépassement du Watchdog

L’entité du module
CONCEPTION DU MCIP

Conception, développement et validation des modules

Module de génération de reset global du système

Schéma RTL généré

L’entité du module
CONCEPTION DU MCIP

Conception, développement et validation des modules

Un mécanisme de surveillance du bon déroulement du programme

Architecture

Entité
CONCEPTION DU MCIP

Conception, développement et validation des modules

Résultats de simulation
CONCEPTION DU MCIP

Conception, développement et validation des modules

Regroupement des trois modules en une seule entité

Entité
CONCEPTION DU MCIP

Conception, développement et validation des modules

Résultats de simulation
CONCEPTION DU MCIP

Conception, développement et validation des modules

Un groupement de 4 Ports d’E/S de 8bit

Process de modélisation de Port d’E/S

Entité
CONCEPTION DU MCIP

Conception, développement et validation des modules

Résultats de simulation
CONCEPTION DU MCIP

Conception, développement et validation des modules

Configurables en 8 ou 16bit, intégration d’un pré-diviseur

Structure d’un Timer


CONCEPTION DU MCIP

Conception, développement et validation des modules

Résultats de simulation
CONCEPTION DU MCIP

Conception, développement et validation des modules

Réalise le transfert de données de la mémoire de programme vers la RAM

Structure de la ‘Table Read’


CONCEPTION DU MCIP

Conception, développement et validation des modules

La pile du compteur de programme: 21bit x 31 étage

Organisation de la Pile
CONCEPTION DU MCIP

Conception, développement et validation des modules

Le développement de ce module a nécessité la mise au point d’une


structure très réfléchie

Structure du ‘Program Counter’


CONCEPTION DU MCIP

Conception, développement et validation des modules

D’après la structure, on tire les vecteurs de commande du PC (de taille 7bit)

Vecteurs de commande
du ‘Program Counter’

Un test minutieux est mené à ce module


pour valider son bon fonctionnement
CONCEPTION DU MCIP

Conception, développement et validation des modules

Ce module fournit l'adresse de donnée selon la description de l'instruction ;


l’adressage indirecte est ainsi géré par ce module

Structure du ‘Address Provider’

Entité
CONCEPTION DU MCIP

Conception, développement et validation des modules

Un simple multiplicateur 8x8bit, modélisation VHDL régulière et simple

Entité du ‘Multiplier’
CONCEPTION DU MCIP

Conception, développement et validation des modules

Représente une tranche de 1bit de l’ALU

Schéma logique

Opération arithmétiques et logiques possibles


CONCEPTION DU MCIP

Conception, développement et validation des modules

Modélisation VHDL très simple

Schéma logique

Code d’une tranche ALU


CONCEPTION DU MCIP

Conception, développement et validation des modules

Englobe 8 tranche d’ALU 1bit et autre logique additif pour effectuer toutes
les opérations

8 tranche
d’ALU de 1bit
CONCEPTION DU MCIP

Conception, développement et validation des modules

On déduit 28 vecteurs de commande de 14bit

Vecteurs de commande
CONCEPTION DU MCIP

Conception, développement et validation des modules

Le testbench développé pour cette ALU est chargé de comparer les


résultats de simulations et génère des message de signalisation d’erreurs

Vecteurs de test dans le testbench


CONCEPTION DU MCIP

Conception, développement et validation des modules

Le testbench développé pour cette ALU est chargé de comparer les


résultats de simulations et génère des message de signalisation d’erreurs

Signalisation des erreurs par le testbench


CONCEPTION DU MCIP

Conception, développement et validation des modules

Résultats de simulations
CONCEPTION DU MCIP

Conception, développement et validation des modules

Contient L’ALU, le multiplicateur et d’autres registres SFR

Structure générale de ‘Process Unit’


CONCEPTION DU MCIP

Conception, développement et validation des modules

Purement combinatoire, permet de sélectionner le bloc dont le registre est


concerné par l'opération d'écriture ou de lecture

Entité
CONCEPTION DU MCIP

Conception, développement et validation des modules

Génère les signaux d’interruption globales de priorité faible et élevé ainsi


le signal ‘wake up’ qui fait sortir le système du mode en veille

Schéma logique
CONCEPTION DU MCIP

Conception, développement et validation des modules

Ce module a pour fonction le chargement de l'instruction à exécuter dans


le registre d'instruction

Fonctionnement

L’instruction chargée dans le registre IR par ce bloc est une


• Instruction recherchée
• Instruction d’appel à l’adresse 00008h
• Instruction d’appel à l’adresse 00018h
• Instruction NOP
CONCEPTION DU MCIP

Conception, développement et validation des modules

Ce module est responsable de gérer les interruptions

Entité
CONCEPTION DU MCIP

Conception, développement et validation des modules

Résultat de simulation
CONCEPTION DU MCIP

Conception, développement et validation des modules

Ce module, de structure combinatoire, décode l’instruction chargée dans le


registre IR et génère les signaux de contrôle du système

Entité

55 signal de commande est de contrôle


sont générés par ce module
CONCEPTION DU MCIP

Conception, développement et validation des modules

La modélisation VHDL est réalisé avec des ‘case’ imbriqués

Les instructions sont classés


en 16 groupes selon leurs
code opération

Pour chaque instruction


décodée, le Decoder génère
les signaux de commande et
de contrôle nécessaires au
fonctionnement du système

2458 ligne du code VHDL


étaient nécessaire pour la
mise au point de ce module

La structure du code VHDL


CONCEPTION DU MCIP

Conception, développement et validation des modules

Ce module est développé en dernier après détermination de tous les


signaux nécessaires pour les différents blocs du système

Structure
CONCEPTION DU MCIP

Conception, développement et validation des modules

Ce module est développé en dernier après détermination de tous les


signaux nécessaires pour les différents blocs du système

Le ‘Instruction Decoder & Control’ est le module


le plus complexe dans cette architecture

Il contient les 4 blocs : Select Bloc, Interrupt


Bloc, Instruction Control et Decoder

Vue à sa complexité qu’il est subdivisé en ces


modules

Il génère 90 signal pour contrôler et


commander le microcontrôleur
CONCEPTION DU MCIP

Conception, développement et validation des modules

Ce module est regroupement par instanciation simple des blocs :

• Adress Provider
• Process Unit
• Instruction Decoder & Control
• Program Counter
• Table Read
CONCEPTION DU MCIP

Conception, développement et validation des modules

Constitue le IP développé, il regroupe la CPU et tous les périphériques et


n’integre pas les 2 mémoire de donnée et de programme

titre
CONCEPTION DU MCIP

Conception, développement et validation des modules

Constitue le IP développé, il regroupe la CPU et tous les périphériques et


n’integre pas les 2 mémoire de donnée et de programme

Signaux d’Entrée/Sortie de MCIP


CONCEPTION DU MCIP

Conception, développement et validation des modules

De taille générique jusqu’à 4Ko

Code VHDL de la mémoire de données


CONCEPTION DU MCIP

Conception, développement et validation des modules

De taille générique jusqu’à 2Mo

Insertion du code
programme

Code VHDL de la mémoire de programme


CONCEPTION DU MCIP

Conception, développement et validation des modules

Représente le regroupement par instanciation des 3 blocs :

• IP Basic Core
• Data Memory
• Programme Memory
CONCEPTION DU MCIP

Conception, développement et validation des modules

Comparer
Ecrire
Exporter
Convertir
Insérer
Lancer un
la
lele
programme
simulation
le
programme
les
programme
fichier
résultats
HEX
etde
converti
obtenus
voir
en
en
test
fichier
fichier
comment
endans
avec
assembleur
VHDL
format
la
ceux
lemémoire
en
MCIP
HEX
attendus
exécutant
enaciblant
exécuté
de programme
etun
effectuer
une
le
programme
programme
fonction
les
du MCIP
de
donnée en
développé
test
corrections nécessaire
C pour effectuer
dans le code
cetteVHDL
opération
du MCIP si les résultats ne sont
pas bons
CONCEPTION DU MCIP

Conception, développement et validation des modules

5 programmes de test ont été développés en assembleur pour le :

Test de la lecture et l’écriture des différent registres SFR

Test de toutes les instructions de branchement et d’appel

Test de toutes les opérations arithmétiques et logiques

Test de déroulement des différentes interruptions

Test du fonctionnalité des timers et Watchdog

Ces programmes ont permiens le débogage du MCIP


et d’élimination des erreurs existantes
CONCEPTION DU MCIP

Conception, développement et validation des modules

Test des SFR


CONCEPTION DU MCIP

Conception, développement et validation des modules

Test des interruptions


CONCEPTION DU MCIP

Implantation du MCIP sur FPGA

Charger le MCIP d’exécuter un


programme qui défile un message sur le
LCD de la carte
CONCEPTION DU MCIP

Implantation du MCIP sur FPGA

Ecriture d’un programme qui défile un


message sur le LCD
Transfer de programme écrit dans le
mémoire de programme du MCIP
Synthèse, placement et routage du
système complet
Vérification par simulation

Vérification réel par implantation sur la


carte de développement
CONCEPTION DU MCIP

Implantation du MCIP sur FPGA

Mémoire de
Programme 4 Ko IP Basic Core

Mémoire
de données
256 octet
Schéma RTL
CONCEPTION DU MCIP

Implantation du MCIP sur FPGA

Nombre de Slices utilisés :


2188 Slice (46%)

Fréquence maximale :
56 MHz

Placement de MCIP sur FPGA (Spartan-3E)


CONCEPTION DU MCIP

Implantation du MCIP sur FPGA

Résultats de simulation après placement et routage


CONCEPTION DU MCIP

Implantation du MCIP sur FPGA

Connexion

Chargement de la configuration du FPGA (le MCIP) à travers le câble


USB à partir du PC
CONCEPTION DU MCIP

Implantation du MCIP sur FPGA

Le texte à afficher a défilé


correctement sur le LCD de la carte
exploitant la fréquence de 50MHz
SYSTEME D’INJECTION DE FAUTES

Système d’injection de fautes au niveau VHDL

Simple ou multiple

Permanente ou transitoire

De collage (à1 ou à0) ou d’inversion

Schéma bloc du système d’injection


de fautes
SYSTEME D’INJECTION DE FAUTES

Injection de faute transitoire

Pourcentage d'injection de fautes


en fonction de Ctrl

Flot d'injection de fautes transitoires


SYSTEME D’INJECTION DE FAUTES

Injection de faute permanente

Ctrl = 0000 : la logique d'insertion de fautes injecte un collage à '1' (StackAtValues = '1')
ou à '0' (StackAtValues = '0') dans les bits sélectionnés

Exemple
SYSTEME D’INJECTION DE FAUTES

Exemple d’injection de fautes

Simulation d’injection de fautes dans le MCIP


VALIDATION ET APPLICATION

Philosophie

Quel est le degré d’assurance de bon


fonctionnement de notre IP?

Est-ce que l’application est


suffisant?
VALIDATION ET APPLICATION

Philosophie

Quel est le degré d’assurance de bon


fonctionnement de notre IP?
Test
Valider  tester

Comment tester?

Tes fonctionnel : application


VALIDATION ET APPLICATION

Application : Système d’affichage des horaires de prière

Réaliser avec la carte de développement un système


qui calcule et affiche les horaires de prière

Ce système est appelé : APTD (Automatic Prayer Time Display)


VALIDATION ET APPLICATION

Flot de validation
VALIDATION ET APPLICATION

Diagrammes de l’application
VALIDATION ET APPLICATION

Méthode de calcul des horaires de prière

Procédure de calcul des heures de prières


VALIDATION ET APPLICATION

Equations de la méthode de calcul

 0,3090 - (sin  sin x) 


acos  
 cos  cos x 
Fadjr  Dhohr 
15

 0,3090 - (sin  sin x) 


acos  
 cos  cos x 
Icha  Dhohr 
15

 (90 - atan(1  tan(x -  ))) - (sin  sin x) 


acos  
 cos  cos x 
Asr  Dhohr 
15

 0,0144 - (sin  sin x) 


acos  
 cos  cos x 
Chourouk  Dhohr 
15

 0,0144 - (sin  sin x) 


acos  
 cos  cos x 
Maghreb  Dhohr 
15
VALIDATION ET APPLICATION

Programmation et vérification de la méthode


Programmation de la méthode en langage C et sa vérification sous l’environnement
Visual C++

Programme de
calcul des horaires
VALIDATION ET APPLICATION

Programmation de l’application
Programmation de l’application en langage C sous l’environnement MPLAB

Programme de
calcul des horaires
VALIDATION ET APPLICATION

Programmation de l’application
Programmation de l’application en langage C sous l’environnement MPLAB

Programme de
calcul des horaires
Programme de
calcul des horaires
VALIDATION ET APPLICATION

Conversion et incorporation du fichier au MCIP


Incorporation du programme au mémoire du programme du MCIP

Programme de
calcul des horaires
Programme de
calcul des horaires
VALIDATION ET APPLICATION

Conversion et incorporation du fichier au MCIP


Incorporation du programme au mémoire du programme du MCIP

Programme de Programme de
calcul des horaires calcul des horaires
VALIDATION ET APPLICATION

Simulation et débogage
Lacement de la simulation et effectuation du débogage du MCIP

Programme de Programme de
calcul des horaires calcul des horaires
VALIDATION ET APPLICATION

Simulation et débogage
Lacement de la simulation et effectuation du débogage du MCIP
VALIDATION ET APPLICATION

Comparaison des résultats


Résultats finals de simulation : mémoires de données
VALIDATION ET APPLICATION

Comparaison des résultats


Résultats finals de simulation : exécution du programme
VALIDATION ET APPLICATION

Comparaison des résultats


Résultats finals de simulation : exécution du programme
VALIDATION ET APPLICATION

Valeurs démonstratives

Les résultats de simulation sont obtenus après 268 727 cycles


d’exécution de la routine de calcule des horaires

Le MCIP a effectué :
•11 187 opérations de ‘Call-Return’
•Plus de 82 737 adressages indirectes
•2 619 opérations de multiplication
•Atteinte du 8e étage de la pile …etc.
La taille du programme de l’application (généré par le
compilateur C) est de 24 Ko

La taille du Mémoire de donnés est de 2 Ko


VALIDATION ET APPLICATION

Implantation sur la carte


Etape finale : chargement du système APTD dans le FPGA de la carte à travers le
câble USB
VALIDATION ET APPLICATION

Implantation sur la carte


Etape finale : chargement du système APTD dans le FPGA de la carte à travers le
câble USB

Le système à implanté sur la carte


VALIDATION ET APPLICATION

Résultats
Affichage du message d’accueil
VALIDATION ET APPLICATION

Résultats
Affichage des horaires pour différentes prières
VALIDATION ET APPLICATION

Résultats
Affichage des horaires pour différentes régions

Affichage des horaires pour différentes dates


VALIDATION ET APPLICATION

Publication du MCIP
Réalisation du Datasheet du MCIP
VALIDATION ET APPLICATION

Publication du MCIP
Réalisation du Datasheet du MCIP
VALIDATION ET APPLICATION

Publication du MCIP
Création du site web du MCIP
CONCLUSION
CONCLUSION

Perspective