Vous êtes sur la page 1sur 26

Modlisation structurelle

VHDL

98
MODLISATION STRUCTURELLE

Description modulaire des conceptions complexes

Structure hirarchique

Crer des modules pour les fonctions de bas niveau


Utiliser un module autant de fois que ncessaire dans une
seule conception

Attacher les diffrents modules lmentaires pour crer la


conception globale plus complexe

Simplifier et clarifier le code source VHDL

VHDL Data Flow + Behavioral + Structural


99
MODLISATION STRUCTURELLE : COMPONENT

La modlisation structurelle est base sur le concept


du composant (Component)

Pour lutiliser, il faut :


1. Dcrire les entres/sorties du module en question (entity)

2. Dcrire le fonctionnement interne du module (Architecture)

3. Importer le composant dans votre code VHDL (dclarer)

4. Crer une ou plusieurs instances (copie) dans votre code


VHDL (instanciation ou le mapping)

100
MODLISATION STRUCTURELLE : COMPONENT

Prenant un exemple,

Dcrire le comparateur 3 bit

suivant, en utilisant une description structurelle

Cette description sera base de limplmentation


suivante,

Lide est de dcrire chaque

porte comme un composant

Le principe sera le mme, si le

composant contient une simple


101
porte logique ou un circuit plus complexe
MODLISATION STRUCTURELLE : COMPONENT

Ce schma doit tre bien examine:


1. Les lignes en pointills dlimitent le module du haut niveau
(parent)
Les signaux qui traversent ces lignes doivent tres mentionnes dans
lentit

2. Les signaux internes ont tous des noms


Cela est une ncessiter dans la description structurelle, vue que ces
vont tres affects aux diffrents sous-modules (enfants)

102
MODLISATION STRUCTURELLE : COMPONENT

On commence par dcrire les diffrents sous-modules


distincts existants dans la conception

On ne va pas sintresser au nombre utilis de chaque


porte, donc il faut une seule description VHDL pour :
1. Porte XNOR deux entres (malgr la prsence de 3 portes)

2. Porte AND trois entres

103
MODLISATION STRUCTURELLE : COMPONENT

Le code VHDL suivant contient la description de nos


deux portes:

104
MODLISATION STRUCTURELLE : COMPONENT

Une fois que toutes les sous-modules sont dcrient, on


procde la description de la conception globale
(module parent)

Rsume en quatre tapes:


1. Etablir lentit de la conception globale (module parent)

2. Dclarer (importer) les sou-modules (module enfant)


utiliser (prsent dans la conception globale)

3. Dclarer les signaux internes qui relient les diffrent sou-


modules

4. Crer autant dinstances que ncessaire pour les diffrents


sou-modules prsent dans la conception globale 105
ETAPE 1 (CRATION DU SOU-MODULE)

La premire tape concerne la description des


entres/sorties de la conception globale

Donc tablir lentit de la conception

106
ETAPE 2 (DCLARATION / IMPORTATION)

Dans la deuxime tape, on doit importer (dclarer) les


sou-modules quon va utiliser

Le faite de dclarer un ou plusieurs sou-modules,


lapproche hirarchique sera explicitement adopt

On a un module parent (conception globale) qui


contient des enfants (sou-modules)

Pour notre conception, on doit dclarer (importer)


deux composants (sou-modules):
1. Le module porte XNOR dj dcrit prcdemment

2. Le module porte AND trois entres prcdemment dcrit


107
ETAPE 2 (DCLARATION / IMPORTATION)

Pour importer un composant (sou-module), deux chose


sont importantes considrer:
1. Le comment, et

2. Lemplacement

108
ETAPE 2 (DCLARATION / IMPORTATION)

1. Pour le comment, la syntaxe de limportation dun


composant peut tre considrer comme une
modification de lentit du composant en question,
Donc copier le code de lentit en entier:
Remplacer le mot cl entity par le mot cl component

remplacer aussi le nom de lentit dans la dernire ligne de lentit


end nom_entit; par end component;

109
ETAPE 2 (DCLARATION / IMPORTATION)

1. Pour lemplacement, la syntaxe de limportation doit


tre place dans le corps de larchitecture, avant son
begin
Donc, la partie entit et la dclaration des composants (sou-
modules) de la conception globale se fait par le code source
suivant:

110
ETAPE 2 (DCLARATION / IMPORTATION)

La dclaration standard

de lentit du module parent

La dclaration/importation

du composant big_xnor

La dclaration/importation

du composant big_and3

Toutes ces dclaration se

font dans le corps de larchitecture, avant le mot cl begin


111
ETAPE 3 SIGNAUX INTERNES

Dans la troisime tape, on doit dclarer et identifier


toutes les signaux internes de la conception globale
(module pre)

Toutes les signaux qui relient les diffrents composants


(sou-modules) constituants le module pre,

Daprs la figure du dessous, on trouve trois tels


signaux: p1_out, p2_out et p3_out

Ces signaux doivent tres

dclars comme signaux

intermdiaires dans le corps


112

de larchitecture du module pre


ETAPE 3 SIGNAUX INTERNES

Le code VHDL rsultant est le suivant,

113
ETAPE 4 INSTANCES / MAPPING

Dans la quatrime tape, on doit instancier autant de


copies de chaque composant dclar quon a besoin

et de faire le mapping (connexions) entres toutes ces


composants

Les signaux utiliss pour les connexions sont soit :


1. ceux du module pre, dclars dans lentit de la
conception globale

2. ou les signaux intermdiaires (internes) dclars dans


larchitecture de la conception globale

Cette procdure se fait lintrieur du corps de


larchitecture mais aprs le mot cl begin et non 114
pas
avant
ETAPE 4 INSTANCES / MAPPING

Lors de linstanciation/mapping des composants,


chaque instance aura son propre et distincte nom

linstanciation/mapping se fait laide des mots cls


port map

Le code source VHDL qui dcrit compltement le


comparateur trois bits est le suivant:

115
RSULTAT FINAL

116
Cette forme dinstanciation est appel le mapping directe
une autre forme plus simple existe,
MAPPING IMPLICITE

Cette approche est appele le mapping implicite

Lordre des signaux utilis lors de la dclaration


(importation) du composant

Sera utilis lors du mapping

117
COMPONENET

Le code source suivant peut souvent tre rencontr lors


de linstanciation/mapping dun composant donn

Il ny a pas de problme avec cette criture

Le CLK et CS gauche du signe => corresponds aux


signaux de lentit

donc ils ne vont pas tres confondus avec les signaux


internes larchitecture du haut niveau (parent)

Le CLK et CS droite du signe => corresponds aux


118
signaux interne larchitecture
PROGRAMMATION GNRIQUE
Imaginons la situation suivante,
Lors de la ralisation dune conception, on sest aperu quon
a besoin de trois comparateurs:

1. Comparateur 8 bits
2. Comparateur 12 bits
3. Comparateur 35 bits
On peut approcher ce problme par deux voies:
1. On doit construire les trois comparateurs un par un

2. Construire un comparateur gnrique, dont le nombre de bit des


mots est paramtrable

et par la suite instancier les trois comparateurs avec des tailles


diffrentes
119
On prfre raliser des composants gnriques
paramtrables lors de linstanciation
PROGRAMMATION GNRIQUE : EXEMPLE 1

Ralisons un circuit qui vrifie la parit dun mot


binaire

La fonction de parit est intgre dans un sou-module

La taille du mot binaire doit tre paramtrable

La fonction gale 1 si le nombre de 1 logique dans le


mot binaire est impaire

La fonction gale 0 si le nombre de 1 logique dans le


mot binaire est paire

120
SOLUTION EXEMPLE 1

Donc, nous commenons par le code source du


composant du bas niveau (sou-module)

Pour ne pas fixer la taille du mot binaire, on a


introduit le mot cl generic dans lentit

generic est lquivalent d une constante dans le C

dfinition de la constante n

On a dfini la taille du mot

binaire x en fonction de n

Dans lentit
121
La boucle dpend aussi de

La taille n du mot binaire


SOLUTION EXEMPLE 1

Pour complter limplmentation, il faut maintenant


importer le composant ralis (module bas niveau)
dans la conception parent (module haut niveau)

Instancier le composant avec la taille du mot binaire


en cours dutilisation

Le code source VHDL de limplmentation est le


suivant,

122
SOLUTION EXEMPLE 1

Dclaration du composant

Avec une entre generic

Instanciation/ mapping du composant 123

Spcification de la taille actuelle des mots binaires