Академический Документы
Профессиональный Документы
Культура Документы
1
Objective
Introduction aux concepts essentiels de la spécification, de la
modélisation, et de la simulation d’un système logique en
VHDL.
Compréhension de la sémantique de simulation de VHDL.
Ecriture de modèles de niveau RTL vérifiables formellement
et synthétisable
…
Comprendre comment est fait un FPGA et comment il
fonctionne,
Vous familiariser avec les termes et expressions employées
dans le domaine,
Vous éclairer sur le flot de conception,
Vous montrer comment un FPGA s’intègre dans un système
numérique.
…
2
Introduction
3
Introduction: historique
1980: le département de défense américain lance un appel
d’offre pour un langage qui permettrait de décrire tous les
systèmes électroniques utilisés. Motivation affichée:
réutilisabilité et réduction des coûts de conception.
1983 trois compagnies (Intermetics, IBM, Texas
Instruments) commencent le développement.
1985: première version officielle de VHDL (version 7.2).
1986: VHDL est donné à IEEE pour en faire un standard.
1987: Standard IEEE 1076-1987.
1993: Standard IEEE 1076-1993.
1999: Standard IEEE 1076.6-1999
4
Introduction: motivations
Offre un cycle de conception plus court
Permet de créer des bibliothèques de composants
réutilisables
Chacun des composants peut être validé
indépendamment par simulation.
Une grande variété d’outils sont disponibles
Description portable sur différente plateforme
matérielle (carte FPGA, ASIC…)
5
Introduction : motivations
Deux familles de circuits programmables: les plus
célèbres sont:
Xilinx (XC4000, SPARTAN, VIRTEX, VIRTEXIII,
ZEDBOARD, Zybo, ZYNQ 702.)
Altera FLEX 8000, APEX 20K, Stratix, Stratix III)
Le progrès de ces technologies permet de faires des
composants toujours plus rapides et à plus hautes
intégration, ce qui permet de programmer des
applications importantes
6
Exemples des cartes FPGA
8
Introduction
VHDL : ne vise pas une exécution, il est utilisé pour :
la simulation
la synthèse
la spécification
la documentation
9
Entity/Architecture: syntaxe
10
Entité
L’entité décrit la connectique du composant avec son
environnement, au moyen de ports de
communication.
Les informations qu’elle fourni sont :
le nombre de ports,
leur nom,
leur type,
leur direction (entrée, sortie ou entrée-sortie),
et leur largeur.
Elle permet également de définir des constantes, ainsi
que des paramètres pour les modèles génériques
11
Entité
12
L’architecture
L’architecture décrit comment les sorties d’un
composant sont élaborées à partir de ses entrées.
Bien entendu, l’entité associée devra avoir été
préalablement définie.
13
Exemple
14
Le VHDL est un langage à instruction concurrente:
Les instructions sont évaluées en même temps
L’ordre dans lequel elles sont écrites n’a aucune
importance
• Le langage VHDL ne fait pas distinction entre
majuscules et minuscules
• En langage VHDL les commentaires sont précédés
par «--» et s’arrête au retour à la ligne.
15
Objets en VHDL
5 sortes d’objets
Les ports d’entrée/sortie (PORT)
Les signaux (SIGNAL)
Les constantes (CONSTANT)
Les variables (VARIABLE)
Les paramètres (GENERIC)
Les objets représentent une valeur
Ils doivent être typés
16
Types des objets en VHDL
Bit
Boolean
Integer
Std_logic dans la bibliothèque std_logic_1164
Std_logic_vector
Signed, Unsigned dans la bibliothèque numeric_std
Natural : sous type de integer limité aux nombres ≥ 0
Positif : sous type de integer limité aux nombres > 0
Character, string
…….
17
TYPES ENTIERS
Le type entier integer prédéfini dans le paquetage
standard STD permet de définir des nombres signés
sur 32 bits entre -2-31 et 231 - 1 .
Un sous type subtype permet de déclarer un type
héritant des propriétés du type père.
Il existe 2 "sous types" subtype associés à INTEGER :
les entiers naturels et les entiers positifs. Leur
déclaration dans le paquetage STD est la suivante :
18
TYPES ENUMERE
Un type énuméré est un type défini par une énumération exhaustive :
19
Type composite
Le type composite est utilisé pour définir des
collections de valeurs.
Le type est nommé "tableau" si les valeurs d’une
collection sont du même type, le type est nommé
"record" si les valeurs d’une collection sont de type
hétérogène.
Type tableau: exemple
type MY_WORD is array (0 to 31) of BIT ;
type MEMORY is array (INTEGER range <>) of
MY_WORD ;
20
Type composite
Type record :Exemple
type DATE is record
DAY: INTEGER range 1 to 31;
MONTH: MONTH_NAME;
YEAR: INTEGER range 0 to 4000;
end record;
21
Constant , Signal, Variable
Constant
Syntaxe:
constant NOM_des Objets:type:={valeur initiale};
Exemple:
constant PI:real:=3.1416;
constant Bits_Addr:integer:=12;
Signal
Syntaxe:
signal NOM_des Objets:type:={valeur initiale};
Exemple:
signal:bit_vector(7 downto 0):=‘‘00000000 ’’;
signal:compteur:integer:=0;
signal S,E1,E2:std_logic:=‘0’ 22
Constant , Signal, Variable
Variable
Syntaxe:
variable :NOM_des Objets:type:={valeur initiale};
Exemple:
variable :bit_vector(7 downto 0):=‘‘00000000 ’’;
variable :compteur:integer:=0;
variable S,E1,E2:std_logic;
Affectation :
S:=E1 and E2; (exemple avec des portes logiques).
23
Les identificateurs
Les objets manipulés par le langage doivent tous porter un
nom. Aussi, chacun possède un identificateur unique qui
permet de le désigner sans la moindre ambiguïté. Ce
dernier obéit à certaines règles :
Suite de lettres, chiffres et underscore "_«
Le premier caractère doit être une lettre
Il ne peut y avoir 2 « _ » de suite
L’identificateur ne peut se terminer par « _ »
Il ne doit pas dépasser la taille d’une ligne
Aucune distinction n’est faite entre les lettres majuscules et
les lettres minuscules.
Il doit être différent des mots réservés du langage.
24
Mots réservés
Un certain nombre de mots clés sont utilisés par VHDL
pour sa syntaxe propre . On dit que ces mots sont
réservés par le langage et ils ne peuvent pas être utilisés
pour autre chose.
Heureusement, la plupart des éditeurs de textes qui
supportent le VHDL identifient automatiquement les mots
clés et les affichent avec une couleur différente, ou en
caractères gras.
25
Priorité des opérateurs
26
27
Exemple d’application
30
Opérateurs
Opérateurs relationnels (sur types scalaires ou dérivés
(signed, unsigned))
31
Opérateurs
Opérateurs relationnels: exemples
32
Opérateurs
Opérateurs bits (sur vecteurs de bits et types numériques)
opérateur Description Résultat
& Concaténation Même type, plus large
Opérateurs arithmétiques (sur types numériques : entiers,
signés, non signés, flottant)
Opérateur Description
+ Addition
- Soustraction
abs Valeur absolue
*,** Multiplication,
puissance
/ Division
mod modulo
rem reste 33
Opérateurs
A mod B = A – B * N A rem B = A – (A/B) * B
7 mod 4 -- has value 3 .............................................
-7 mod 4 -- has value –3 .............................................
7 mod (-4) -- has value –1 .............................................
-7 mod (-4) -- has value –3
.............................................
............................................. .............................................
............................................. .............................................
............................................. .............................................
............................................. .............................................
34
Opérateurs
Opérateurs de décalage (sur tableaux de bits )
35
Opérateurs
“1100” sll 1 yields “1000” ……………………………………………
“1100” srl 2 yields “0011” …………………………………………
“1100” sla 1 yields “1000” …………………………………………
“1100” sra 2 yields “1111” …………………………………………
“1100” rol 1 yields “1001” …………………………………………
“1100” ror 2 yields “0011” …………………………………………
………………………………………… …………………………………………
………………………………………… …………………………………………
………………………………………… …………………………………………
………………………………………… …………………………………………
………………………………………… …………………………………………
………………………………………… …………………………………………
…………………………………………
36
Type std_logic_vector
L’accès aux éléments d’un vecteur de bits peut se faire
de différentes façons en VHDL :
Accès direct : a(7) <= b(2);
Accès par tranche : a(7 downto 5) <= b(2 downto 0);
Accès par agrégat :
Notation positionnelle :
a(1 to 3) <= (‘0’,’1’,’1’); b <=(‘1’,’1’,others=>’0’);
Notation avec nommage :
a(4 downto 0) <= (3=>’1’,1=>’1’,others=>’0’);
37
38
Simulation
39
Exemple 1: porte et
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
40
Exemple 2: demi_add
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
41
Descriptions possibles en VHDL
Flot de données : c’est-à-dire réalisée à partir d’équations
booléennes.
On fait complètement abstraction de la réalité physique du composant,
pour s’attacher à ses signaux d’entrée et aux transformations qu’elles
subissent en vue d’obtenir ses signaux de sortie.
Les opérations effectuées sont généralement construites à partir
d’opérateurs arithmétiques et logiques.
42
Descriptions possibles en VHDL
Structurelle: c’est-à-dire réalisée à partir de composants
prédéfinis.
43
Exemple de description Flot de données
44
Exemple de description Flot de données
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
……………………………………………………………………………
45
Exemple de description Flot de données
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
……………………………………………………………………………
46
Description Structurelle
La description structurelle d'un circuit complexe en vhdl
présente de nombreux avantages :
Une architecture hiérarchique compréhensible : il est plus
simple de séparer un circuit en un ensemble de blocs plus
petits, ayant des fonctions bien identifiées. Ces blocs
pourront alors être décrits sous forme comportementale,
ou bien à leur tour être séparés en blocs encore plus
simples.
Une synthèse logique efficace : la synthèse est un processus
lent (en terme de temps de calcul). Plus un bloc est gros et
complexe, plus sa synthèse prendra du temps. Il vaut donc
mieux travailler sur des blocs plus petits, plus simples à
synthétiser, et rassembler le tout à la fin.
47
Description Structurelle
Dans ce mode de description, le concepteur adopte une approche de type
assemblage : il assemble des sous-modules pour construire un nouveau
module. Les sous-composants doivent avoir déjà été décrits, puis compilés et
rangés dans une bibliothèque.
La netlist ainsi obtenue donne une vue proche de celle d’un schéma
électrique, avec des composants reliés par des signaux.
Déclaration d’un composant: syntaxe
Le mot clé component sert à déclarer le prototype d'interconnexion. La syntaxe
est presque identique à celle de l'entité :
48
Description Structurelle : exemple
Dans cet exemple, 2 instances de
composant "and2" sont appelées pour créer
une porte ET à 3 entrées.
49
Exemple de description structurelle
Utilisez une description de type structurelle pour réaliser
l’additionneur de 1 bit dont le schéma bloc est illustré par la
figure ci-dessous :
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
………………………………………………………………………….
50
Description comportementale
On s’attache à décrire le fonctionnement d’un module.
Le concepteur ne se préoccupe absolument pas de la réalisation
physique de son circuit. La description comportementale est plus
abstraite que la description structurelle et fait appel à des concepts
proches de la programmation informatique évoluée.
A ce titre, pour un circuit particulier, il peut exister un grand nombre
de descriptions comportementales (comportementale et séquentielle,
comportementale et concurrente)
51
Affectation conditionnelle
L’interconnexion est soumise à des conditions.
Syntaxe:
Exemple
52
Affectation Sélective
Suivant la valeur d’une expression , l’interconnexion sera effectué.
Syntaxe:
Exemple
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
…………………........................................................................................
53
Les instructions séquentielle
Elles sont utilisées dans les process ou les corps de sous-programmes
Elles permettent des descriptions comportementales
54
Process
Un process est une partie de la description d’un circuit
dans laquelle les instructions sont exécutées
séquentiellement c’est-à-dire les unes à la suite des
autres
Syntaxe:
55
Process
Un process est un bloc de commande dans un circuit
dans lequel les instructions sont exécutées
séquentiellement c’est-à-dire les unes à la suite des
autres.
L’exécution d’un process est déclenchée par un ou des
changements d’états de signaux logiques
Le nom de ces signaux est défini dans la liste de
sensibilité lors de la déclaration du process
Le nom de process (Label) est facultatif, mais il peut
être très utiles pour repérer un process parmi d’autres
lors de phases de simulations
56
Exemples de description comportementale
Utilisez une description de type comportementale et
concurrente pour réaliser l’additionneur 1 bit.
57
Exemples de description comportementale
Utilisez une description de type comportementale et
concurrente pour réaliser un multiplexeurs 4 vers 1.
58
Exemple: bascule D
59
Exemple : bascule D
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
………………………
60
Library
IEEE.STD_LOGIC_1164.all
Permet de définir les types, opérateurs et fonctions de
conversion de base
IEEE.numeric_std.all
Définit les types signed et unsigned. Un vecteur
représente un nombre signé ou non signé représenté en
C2
Permet d’utiliser les opérateurs arithmétiques + et * sur
des vecteurs de bits
61
Exemples des Conversions utilisant
le package Numeric_Std
https://www.nandland.com/vhdl/tips/tip-convert-numeric-std-logic-
vector-to-integer.html 62
exemple
Add 32 bit
……………….
63
64
La généricité
C’est un moyen de transmettre une information à un
bloc :
Vu de l’extérieur du bloc, la généricité == paramètre
Vu de l’intérieur du bloc, paramètres == constantes
Intérêts :
description de composants généraux :
additionneur à N entrées,
registre N bits
66
67
Exemple d’application
68
PARTIE B
69
Les machines à états finis
FSM : Finite State Machine
Outil pour représenter un système séquentiel
On définit différents états dans lesquels peut être le
système
Le passage d’un état à un autre s’effectue si une
condition sur les entrées est remplie
Les sorties du système dépendent de l’état
courant(machine de Moore) ou de l’état courant et
des entrées(machine de Mealy)
Dans le cas d’une FSM synchrone, la valeur des
entrées est analysée sur front d’horloge
70
Exemple Détecteur de séquences
71
Exemple Détecteur de séquences
72
Exemple Détecteur de séquences
73
Exemple Détecteur de séquences
74
Exemple Détecteur de séquences
75
Exemple Détecteur de séquences
76
Machine de Moore.
Les sorties d’une machine
de Moore dépendent de
l’état présent (synchrones,
elles changent sur un front
d’horloge).
L’état futur est calculé à
partir des entrées et de
l’état présent.
77
Machine de Mealy
L’état futur est calculé à partir des
entrées et de l’état présent.
Les sorties d’une machine de Mealy
dépendent de l’état présent et des
entrées.
Mémorisation synchrone des états
(c-à-d sur un front d’horloge).
La sortie dépend directement de
l’entrée et ceci indépendamment de
l’horloge (clk)
⇒ Sortie asynchrone.
Nombre d’états plus réduit que pour
une machine de Moore.
Il est possible de resynchroniser la
sortie au besoin en ajoutant des
bascules D.
78
Machine de Mealy
79
Machine de Mealy
80
Machine de Moore
81
Machine de Moore
82
Machine de Moore
83
Machine de Moore
Description avec 2 process
Les 2 process combinatoires possèdent des listes de
sensibilité « compatibles », ils peuvent donc être regroupés en
un seul process afin d’abréger l’écriture
⇒ 2 process = 1 process séquentiel + 1 process combinatoire
Description avec 1 process
Description la plus compacte en utilisant une variable pour
l’état (en lieu et place des 2 signaux).
Cependant perte de lisibilité lors de l’écriture. Alors que cette
description n’apporte rien en terme de résultat de synthèse
par rapport à une description 2 process.
⇒ À éviter (pt de vue personnel cependant …).
84
Exemple d’application 2
Identifier les variables d’états: les sorties des éléments
à mémoire;
Ecrire les équations d’états et les équations de sortie.
Dresser le tableau d’états
Dessiner le diagramme d’états
Faire la description VHDL
85
Exemple d’application 2
86
PARTIE C
87
Origine
En 1984, Xilinx tente d’apporter une réponse en
proposant le premier FPGA.
FPGA : Field Programmable Gate Array
Les premiers FPGA utilise une technologie CMOS et
des cellules à base de LUT (SRAM) disposées en
matrice.
Un design sera décomposé en cellules et placé sur la
matrice.
Cette structure simple est encore utilisée aujourd’hui.
88
Que sont les FPGA?
Field-Programmable Gate Array - réseau de portes
programmables
Ce sont des circuits intégrés programmables (ou plutôt
reconfigurables) plusieurs fois et de plus en plus
dynamiquement!
Ils permettent
Soit d’émuler un circuit afin de le valider avant la gravure
silicium
Soit d’implanter un système complet, System on Chip (SoC)
En utilisant la reconfiguration dynamique, ce système peut
devenir adaptatif en fonction des besoins (accélération de
fonctionnalités choisies).
89
Pourquoi sont-ils si intéressants?
Complexité
Les PLD sont programmables, mais trop simples.
Les ASIC sont très denses, mais figés.
Les FPGA sont un intermédiaire.
Programmation
Les CPU sont programmables, mais mal adaptés au
calcul répétitif sur de gros volumes de données.
Les ASIC sont adaptés à ce problème, mais non
programmables.
Les FPGA sont un intermédiaire.
90
A quoi peuvent-ils servir?
Utilisations
Milieu des années 80
Machines à états de complexité moyenne
Traitement de données simple
Début des années 90
Télécommunication
Réseaux
Fin des années 90
Applications industrielles (traitement d’image, robotique, contrôle,…)
Applications personnelles (multimédia, périphériques PC,…)
Applications automobiles (automotive)
Début des années 2000
DSP
Systèmes sur une puce programmables
91
Circuits intégrés :classification
Circuits standards
Exp: processeur, mémoire, oscillateur,
amplificateur ..
ASICs : Application-Specific Integrated Circuit
ASIC
94
ASIC Application Specific Integrated
PLD Programmable Logic Device
Circuits
96
Evolution des techniques de conception
97
4. Evolution des systèmes microélectroniques
Matériels standards ou spécifiques ??
98
5. ASIC : Application Specific Integrated Circuit
Comparaison des ASICs
Temps de conception
Circuits
Circuits Circuits Pré- Circuits sur
Programmable
Prédiffusés caractérisés mesure
s
99
FPGA :Time to market
Temps de mise sur le marché :
la technologie FPGA représente une solution souple
offrant des capacités de prototypage rapide. Ainsi, vous
pouvez tester une idée ou un concept, puis le vérifier
sur du matériel sans avoir à passer par le long
processus de fabrication d'un ASIC personnalisé.
vous pourrez apporter les éventuelles modifications
nécessaires à votre FPGA.
100
6. ASIC Semi Spécifique
6.1. circuits logiques programmables
Composants standards programmables une seule fois
(fusible) ou reprogrammables (reconfiguration).
Principe des architectures :
Réalisation de fonctions booléennes sous forme d’une
limitée de monômes
Exp:
- PAL (Programmable Array Logic, réseau logique programmable),
- PLD, (programmable logic device, circuit logique programmable)
- EPLD (erasable programmable logic device, circuit logique
programmable et effaçable)…
Réalisation d’un réseau de cellules
Exp: FPGA (field-programmable gate array, réseau de portes
programmables ) 101
6. ASIC Semi Spécifique
6.1. circuits logiques programmables
Technologies de programmation:
Fusibles en métal pour les premiers circuits
programmables réalisés avec des technologies
bipolaires,
Anti-fusibles (capacité MOS),
Transistors MOS à grille flottante (EPLD),
Mémoire RAM statique (FPGA-SRAM ou flash),
Outils de conception:
programmation automatique à partir d’un schéma
programmation automatique à partir d’un fichier de
description,
102
ASIC Semi Spécifique: technologie de conception
UVPROM « Ultra
PAL « programmable
Violet Programmable SRAM
array logic »
Read Only Memory »
Flash
103
ASIC Semi Spécifique: Les principaux fabricants
104
LES FPGA
Un circuit logique programmable est un circuit intégré
comportant un très grand nombre de ressources logiques
(des fonctions élémentaires combinatoires et
séquentielles) dont la plupart des interconnexions sont
laissées ouvertes
Le concepteur conçoit la fonction globale du circuit à
l’aide d’un langage de haut niveau (HDL : Hardware
Description Langage).
Un outil de synthèse convertit le code HDL en description
normalisée de blocs logiques et d’interconnexions
107
les cellules logiques de Xilinx
108
les cellules logiques de Xilinx
Quatre slices forment un CLB (Configurable Logic
Block).
110
Mémoire intégrée (embedded RAM).
111
LUT (look up table)
La LUT peut être programmée pour réaliser n’importe qu’elle fonction
logique à 3 entrées.
Le verrou/bascule peut être programmé pour réaliser n’importe quel
latch (verrou) ou flip-flop (bascule), avec ou sans
set ou reset
enable ou disable
Le multiplexeur permet de stocker la sortie de la LUT ou une entrée du
PLB.
112
LUT (look up table)
113
LUT (look up table)
Les LUT sont passées à 6 entrées. On peut les utiliser
en une fonction combinatoire à 6 entrées ou en 2
fonctions combinatoires indépendantes à 5 entrées.
114
Technologie à LUT
Technologie à masques
Technologie à PROM
Technologie à EPROM (UV-EPROM)
Technologie à EEPROM
Technologie à FLASH
Technologie à SRAM
115
Ressources d’horloges
Il y a beaucoup plus de ressources d’horloge dans le FPGA avec des horloges
globales et régionales. Il n’y a quasiment plus de restriction sur le nombre
d’horloges.
Des MMCM (Mixed-Mode Clock Manager) : les
MMCM permettent la génération de signaux d’horloge.
Un seul oscillateur génère plusieurs signaux avec des
fréquences multiples ou sous multiples de la fréquence
d’entrée
Les Phase Locked Loop (PLL) sont conçues pour
travailler avec les IO phaser pour contrôler
de la mémoire.
Clock wizard
Par programmation
...
116
Input/Ouput block (IOB)
Les IOB peuvent être de deux
types :
Les IOB « high range »
supportent des tensions jusqu’à
3.3 V
Les IOB « high performance »
supportent les standards jusqu’à
1.8 V
Les broches ont des ressources
spécifiques (IO PLL et IO
phaser shift) pour s’interfacer
avec des mémoires de type
DDR3
117
Bloc DSP
Pour accélérer les applications de traitement du signal,
certains FPGA embarquent des blocs DSP, également
appelés cellules MAC (Multiply Accumulate).
Ils contiennent des opérateurs arithmétiques et
séquentiels (addition, soustraction, multiplication,
registre, …) câblés donc plus rapide que s’ils étaient
programmés dans des cellules du FPGA.
118
Flot de conception
119
Flot de conception
120
Synthèse Netlist
121
Assignement des pins
122
Mapping
123
Placement/Routage
124
Programmation
125
Programmation conjointe: le
codesign
HW exécute les algorithmes les plus compliqués / longs
Bénéficie des avantages de parallélisme HW
Maintient une haute fréquence de traitement
SW contrôle et met à jour les éléments de ces algorithmes
Facilité de gérer les entrées compliquées (multiples variables, accès
mémoires)
Nécessitant une fréquence moins importante que le HW
126
Notion d’IP (Intellectual Property)
Hard Ip
Notion d’IP (Intellectual Property)
Hard IP exemples : multimédias
http://www.design-reuse.com/sip/multimedia-video-image-
audio-c-12/
camerIC™ 2MP-18MP - Camera Processor IP Core up to
18 Megapixels pour telephonie, laptop, apparels photo
..etc
Page 128
Notion d’IP (Intellectual Property)
Soft IP , exemples:
AES Cryptography algorithms, optimized for ARM platforms:
http://www.design-reuse.com/hds/
Autres :
Digital Signal Processing
Communications and Networking
High Speed Interfaces
Mixed Signal
RF
Multimedia
Page 129
Notion d’IP (Intellectual Property)
Amelioration de la productivité des Ips,
IP plus flexibles et mieux optimisables => conversion des IP hard
to IP soft + former une base de donnés IP importantes..
=> TSMC Soft-IP Alliance Program
Sources:
http://www.semiwiki.com/forum/showwiki.php?title=TSMC:IP+Alliance+Wiki
http://www.tsmc.com/
Notion d’IP (Intellectual Property)
On a pu, par conséquence, rapidement développer des
bibliothèques de fonctionnalités comme une interface USB,
un contrôleur MAC Ethernet que l'on appelle blocs IP
(Intellectual Property).
Page 131
mustapha.hamdi@insat.rnu.tn
L’architecture de Zynq-7020
132
Architecture de AP SoC Zynq-7000
133
Les éléments logiques constitutifs
de la carte Z-7020
134
Choix optimal de la stratégie
mul −processeurs
135