Vous êtes sur la page 1sur 19

lments

d'analyses et de synthses
en
lectronique numrique

Patrick COHEN

Page 2

Sommaire

FONCTIONS COMBINATOIRES .................................................................................................................................... 5


1.1
1.2
1.3
1.4

EXEMPLE ........................................................................................................................................................................ 5
EQUATIONS ..................................................................................................................................................................... 6
LA SYNTHSE CLASSIQUE ......................................................................................................................................... 6
DESCRIPTION LAIDE DU LANGAGE VHDL .................................................................................................................. 6

LES FONCTIONS SQUENTIELLES............................................................................................................................. 7


2.1
LES MACHINES SYNCHRONES NOMBRE FINIS DTATS ................................................................................................. 7
2.1.1
Horloge, registre dtat et transitions.................................................................................................................... 7
2.1.1.1
2.1.1.2

2.1.2
3

Les diffrentes architectures .................................................................................................................................. 7

OUTILS DE DESCRIPTION ............................................................................................................................................. 8


3.1
3.2
3.3

Le registre dtat ...................................................................................................................................................................7


Lhorloge ..............................................................................................................................................................................7

LE DIAGRAMME DE TRANSITION ..................................................................................................................................... 8


DU DIAGRAMME AUX QUATIONS ................................................................................................................................... 8
DESCRIPTION VHDL ...................................................................................................................................................... 9

EXEMPLES ......................................................................................................................................................................... 9
4.1
SYNTHSE DUN SQUENCEUR ........................................................................................................................................ 9
4.1.1
Analyse du cahier des charges............................................................................................................................... 9
4.1.2
Trac des chronogrammes ................................................................................................................................... 10
4.1.3
Reprsentation du diagramme de transition. ....................................................................................................... 10
4.1.4
Description en VHDL........................................................................................................................................... 11
4.2
ANALYSE DUN FICHIER DE DESCRIPTION VHDL.......................................................................................................... 11

SYNTAXE DU LANGAGE VHDL .................................................................................................................................. 12

STRUCTURE GNRALE DUN FICHIER DE DESCRIPTION.............................................................................. 12


6.1
LES OBJETS ET LEURS TYPES. LES ATTRIBUTS ............................................................................................................... 13
6.1.1
Les objets ............................................................................................................................................................. 13
6.1.2
Les signaux .......................................................................................................................................................... 13
6.1.3
Les variables ........................................................................................................................................................ 13
6.1.4
Les constantes ...................................................................................................................................................... 13
6.1.5
Les types............................................................................................................................................................... 13
6.1.5.1
6.1.5.2
6.1.5.3

Entier ..................................................................................................................................................................................13
Bits......................................................................................................................................................................................13
Les tableaux ........................................................................................................................................................................13

6.1.6
Les attributs ......................................................................................................................................................... 13
6.2
LES INSTRUCTIONS CONCURRENTES ............................................................................................................................. 14
6.2.1.1
Affectations concurrentes de signaux .................................................................................................................................14
6.2.1.1.1
Affectation simple ........................................................................................................................................................14
6.2.1.1.2
Affectation conditionnelle............................................................................................................................................14
6.2.1.1.3
Affectation slective.....................................................................................................................................................14
6.2.1.2
Instanciation de composants ...............................................................................................................................................14
6.2.1.3
Process ................................................................................................................................................................................14

6.3

LES INSTRUCTIONS SQUENTIELLES .............................................................................................................................. 15


6.3.1.1
Affectation squentielle ......................................................................................................................................................15
6.3.1.2
Affectation de variable........................................................................................................................................................15
6.3.1.2.1
Le test if then elsif else end if ;.................................................................................................................15
6.3.1.2.2
Le test case when end case ; ...............................................................................................................................15
6.3.1.2.3
La boucle for ................................................................................................................................................................15
6.3.1.2.4
La boucle while ............................................................................................................................................................16

INTGRATION DANS UN CPLD. ................................................................................................................................. 16


IUFM de Toulouse - Lyce Technique d'Agen
(3699)

Page 3
7.1
LES COMPOSANTS ALTERA ........................................................................................................................................ 16
7.1.1
La famille MAX 7000S......................................................................................................................................... 16
7.1.2
Le composant EPM 7128S................................................................................................................................... 17
7.2
PROGRAMMATION MATRIELLE.................................................................................................................................... 18
7.3
ALGORITHME DE PROGRAMMATION ............................................................................................................................. 18
7.4
LE LOGICIEL MAXPLUS.............................................................................................................................................. 19

Patrick COHEN
(3699)

Page 4

IUFM de Toulouse - Lyce Technique d'Agen


(3699)

Page 5

On peut considrer quil existe en lectronique numrique, deux types de fonctions :


les fonctions combinatoires et les fonctions squentielles.

1 FONCTIONS COMBINATOIRES
Une fonction combinatoire peut tre reprsente par un systme dont les sorties
dpendent uniquement des entres. Le systme ci-contre est parfaitement dtermin par un
ensemble de p quations logiques
S0 = FC0(E0, , En) SP = FCp(E0, , En). Ces
quations font rfrence aux oprateurs logiques de base (ET, OU, NON).
E0

S0

FC

En

Sp

Loutil permettant la description exhaustive dun tel systme est la table de vrit. Des
mthodes mathmatiques ont t dveloppes afin de rduire ces quations, entre autres
les tableaux de Karnaugh. Ds que la complexit du systme devient importante (au-del de
quatre variables) il faut faire appel des outils informatiques.

1.1

EXEMPLE
On veut raliser un dispositif effectuant la conversion BCD vers 7-segments.
b3

b2

b1

b0

0
0
0
0
0
0
0
0
1
1

0
0
0
0
1
1
1
1
0
0

0
0
1
1
0
0
1
1
0
0

0
1
0
1
0
1
0
1
0
1

1
0
1
1
0
1
1
1
1
1

1
1
1
1
0
0
0
1
1
1

1
1
0
1
1
1
1
1
1
1

1
0
0
1
0
1
1
0
1
1

1
0
1
0
0
0
1
0
1
0

1
0
0
0
1
1
1
0
1
1

0
0
1
1
1
1
1
0
1
1

a
f

e
d

Patrick COHEN
(3699)

Page 6

1.2

EQUATIONS

b3.b2 .b1.b0

b3.b 2 .b1.b0

b3.b 2 .b1.b0

b3.b2 .b1.b0 etc...

...
g etc....

1.3

LA SYNTHSE CLASSIQUE
Les quations prcdentes sont labores laide de circuits lectroniques standard,
aprs avoir simplifi ces quations afin de rduire la complexit de la ralisation.

1.4

DESCRIPTION LAIDE DU LANGAGE VHDL

library ieee ;
use
ieee.std_logic_1164.ALL;
entity BCD_2_7SEG is
port (
BIN
SORTIE
);
end BCD_2_7SEG;

: in STD_LOGIC_VECTOR(3 downto 0) ;
: out STD_LOGIC_VECTOR(6 downto 0)

architecture COMPORTEMENT of BCD_2_7SEG is


begin
process(BIN)
-- Dcodeur Binaire 7 segments. Les sorties sont actives au niveau bas.
begin
-"abcdefg"
case BIN is
when 0 => SORTIE <= "0000001" ;
when 1 => SORTIE <= "1001111" ;
when 2 => SORTIE <= "0010010" ;
when 3 => SORTIE <= "0000110" ;
when 4 => SORTIE <= "1001100" ;
when 5 => SORTIE <= "0100100" ;
when 6 => SORTIE <= "0100000" ;
when 7 => SORTIE <= "0001111" ;
when 8 => SORTIE <= "0000000" ;
when 9 => SORTIE <= "0000100" ;
when others => SORTIE <= "01100000" ; -- E pour erreur
end case ;
end process ;
end COMPORTEMENT;
-------------------------------------------------

Dans ce cas le logiciel de synthse se chargera de la rduction des quations en


fonction de paramtres lis au type de circuit utilis.

IUFM de Toulouse - Lyce Technique d'Agen


(3699)

Page 7

2 LES FONCTIONS SQUENTIELLES


La diffrence essentielle entre une fonction combinatoire et une fonction squentielle
rside dans la capacit de cette dernire de se souvenir des vnements antrieurs : une
mme combinaison des entres, un certain instant, pourra avoir des effets diffrents
suivant les valeurs des combinaisons prcdentes de ces mmes entres.
Pour traduire cet effet de mmoire on introduit la notion dtat interne de la fonction,
laction des entres est alors de provoquer dventuels changements dtat, la situation qui
suit le changement de lune des entres dpend de ltat prcdent. Si le nouvel tat est
diffrent du prcdent on dit quil y a eu une transition.

2.1

LES MACHINES SYNCHRONES NOMBRE FINIS DTATS


Horloge
p
Entres

Fonction
Combinatoire

n
n

Calcul
de ltat
futur

Etat futur

Registre
dtat

Fonction
Combinatoire
q
Calcul
des sorties

Sorties

Etat actuel

Une machine tats (M.A.E.) en anglais Finite State Machine (F.S.M.) est un systme
dynamique, qui peut se trouver, chaque instant, dans une position parmi un nombre fini de
positions possibles. Elle parcourt des cycles, en changeant ventuellement dtat lors des
transitions actives de lhorloge. Larchitecture gnrale dune machine tat est prsente
ci-dessous.
2.1.1

HORLOGE, REGISTRE DTAT ET TRANSITIONS


Le registre dtat, pilot par son horloge, constitue le cur dune machine tats. Les
autres blocs fonctionnels sont son service.

2.1.1.1 LE REGISTRE DTAT


Il est constitu de n bascules synchrones. Son contenu reprsente ltat actuel de la
machine. Il sagit dun nombre cod en binaire sur n bits. Lentre du registre dtat constitue
ltat futur, celui qui sera charg lors de la prochaine transition active de lhorloge. Le
registre dtat est la mmoire de la machine.
La taille du registre dtat fixe le nombre dtats accessibles. Si n est le nombre de
bascules, le nombre dtats N = 2n .
2.1.1.2 LHORLOGE
Le rle de lhorloge est de fixer les instants o les transitions entre tats sont prises en
compte. Entre deux fronts conscutifs de lhorloge, la machine est fige en position mmoire.
2.1.2

LES DIFFRENTES ARCHITECTURES


La figure 2 prsente larchitecture gnrale dune machine tats. Suivant la faon
dont les sorties dpendent des tats et des commandes, on distingue deux types de

Patrick COHEN
(3699)

Page 8

machines tats : les machines de Moore et les machines de Mealy. Dans les premires
les sorties ne dpendent que de ltat actuel (la liaison en trait interrompue est absente),
pour les secondes les sorties dpendent de ltat actuel et des entres (la liaison en trait
interrompu est prsente).

3 OUTILS DE DESCRIPTION
Si loutil danalyse et de synthse des fonctions combinatoires est la table de vrit, le
diagramme de transition constitue loutil privilgi pour lanalyse et la synthse des fonctions
squentielles.

3.1

LE DIAGRAMME DE TRANSITION
On associe chaque valeur possible du registre dtat, une case.
Lvolution du systme est reprsente par des flches reprsentant les
transitions.
Pour quune transition soit active il faut que les trois conditions suivantes
soient vrifies :
1. Le systme se trouve dans ltat source considr
2. La condition de ralisation sur les entres est vraie
3. Un front actif de lhorloge survient
Pour les machines de Moore les sorties voluent aprs lactivation de la transition.
Les valeurs des sorties seront reprsentes dans les cases du diagramme.
E=0

E=0

S0=1
S1=1

Etat 0
S0=1
S1=0

Etat 0
E=1

Etat 1
S0=1
S1=1

E=1

E=1

E=1

Etat 2

Etat 1
S0=1
S1=0

S0=1
S1=0
E=0

S0=0
S1=0

Etat 2

E=0
S0=0
S1=0

E=0

E=0
S0=0
S1=0

Pour les machines de Mealy les sorties voluent aprs lvolution des entres. Les
valeurs des sorties seront reprsentes sur les flches du diagramme.

3.2

DU DIAGRAMME AUX QUATIONS


Le passage du diagramme de transition aux quations est indispensable si on veut
synthtiser la machine tats avec des circuits standards. Loutil permettant le passage
exhaustif du diagramme aux quations est la table de transitions et dtats.
Cest une table de vrit constitue :
en entre

de ltat actuel du registre dtat


IUFM de Toulouse - Lyce Technique d'Agen
(3699)

Page 9

des entres de la machine tats


en sortie

de ltat futur du registre dtat


des sorties de la machine tats

Les quations des sorties du registre dtat sont ensuite adaptes au type de bascules
utilises.
Comme pour les fonctions combinatoires la complexit du problme croit de faon
exponentielle avec le nombre dtats et le nombre dentres.

3.3

DESCRIPTION VHDL
Le langage VHDL offre de multiples possibilits pour traduire le fonctionnement dune
machine tats. Nous ne nous intresserons qu la description comportementale. Dune
faon gnrale seules seront envisages les fonctions squentielles synchrones.
Le processus qui dcrit le fonctionnement dune machine tats comporte deux
structures imbriques : le traitement des commandes et le traitement de ltat de dpart de
chaque transitions.
Les commandes se prtent bien une modlisation par des structures
hirarchiques if elsif else end if.
Les tats se prtent bien une modlisation en terme daiguillage par les
structures case when when others end case.
Le registre dtat est matrialis par deux lments :
1) Un signal interne de type bit_vector ou integer dclar de faon tre
cod sur n chiffres binaires.
2) Un processus, activ par le seul signal dhorloge qui est lunique endroit
o le signal dtat subit une affectation.

4 EXEMPLES
4.1

SYNTHSE DUN SQUENCEUR

Plan de ltude :
a)
b)
c)
d)
4.1.1

Analyse du cahier des charges


Trac des chronogrammes.
Reprsentation du diagramme de transition.
Description en VHDL

ANALYSE DU CAHIER DES CHARGES


HOR
RAZ

Q_F2

On dsire raliser une fonction dont la sortie S recopie ltat logique prsent sur son
entre E si celle-ci est reste stable aprs 2 coups dhorloge successifs.

Patrick COHEN
(3699)

Page 10

Lentre RAZ a t rajoute afin que ltat initial du systme soit dfini. De faon plus
gnrale, un systme squentiel doit toujours tre initialis, de plus cette initialisation doit
tre asynchrone.
4.1.2

TRAC DES CHRONOGRAMMES

HOR
t

4.1.3

REPRSENTATION DU DIAGRAMME DE TRANSITION.

E=0

RST=0
Etat 0
S=0

E=0

E=1

E=0
Etat 5
S=1

Etat 1
S=0
E=1

E=0
E=1

E=0
Etat 4
S=1

E=0

E=1

Etat 2
S=0
Etat 3
S=1

E=1
E=1

IUFM de Toulouse - Lyce Technique d'Agen


(3699)

Page 11

4.1.4

DESCRIPTION EN VHDL

library ieee ;
use ieee.std_logic_1164.ALL;
entity MAE is
--MAE = Machine A Etat
port ( E,RST,HOR
: in STD_LOGIC ;
S
: out STD_LOGIC );
end MAE;
architecture COMPORTEMENT of MAE is
signal REG_ETAT
: STD_LOGIC_VECTOR(2 downto 0);
process (HOR,RST)
begin
if RST='0' then REG_ETAT <= "000";
elsif (HORevent and HOR='1') then
case REG_ETAT is
when "000" => S = '0' ;
if E = '1' then REG_ETAT <= "001";
else REG_ETAT <= "000";
end if ;
when "001" => S = '0' ;
if E = '1' then REG_ETAT <= "010";
else REG_ETAT <= "000";
end if ;
when "010" => S = '0' ;
if E = '1' then REG_ETAT <= "011";
else REG_ETAT <= "000";
end if ;
when "011" => S = '1' ;
if E = '1' then REG_ETAT <= "011";
else REG_ETAT <= "100";
end if ;
when "100" => S = '1' ;
if E = '1' then REG_ETAT <= "011";
else REG_ETAT <= "101";
end if ;
when "101" => S = '0' ;
if E = '1' then REG_ETAT <= "011";
else REG_ETAT <= "000";
end if ;
when others => REG_ETAT <= "00";
end case ;
end if ;
end process ;
end COMPORTEMENT ;

4.2

ANALYSE DUN FICHIER DE DESCRIPTION VHDL


La dmarche danalyse est analogue la dmarche expose pour la synthse. Elle
consiste aller du gnral vers le particulier, de lentity vers larchitecture.
On identifie la nature des entres et sorties de la fonction dcrite en VHDL.
On identifie les blocs fonctionnels et les instructions concurrentes de larchitecture.
On analyse chacun des process en les identifiant laide dalgorithme,
dorganigramme ou de diagramme de transition.

Patrick COHEN
(3699)

Page 12

5 SYNTAXE DU LANGAGE VHDL


Le langage VHDL (Very High level Description Language) est, comme son nom
lindique, un langage de description matriel. Il ressemble fortement un langage
informatique (PASCAL, C). Il faut toutefois garder lesprit que lobjectif de la description est
la synthse de fonctions numrique laide de circuit PLD, FPGA ou ASIC. Pour cela il est
important de connatre le circuit cible si on veut mener bien cette synthse.
La diffrence essentielle avec un langage informatique est la simultanit des actions
dcrites. Pour cela il faudra se familiariser avec la notion dinstruction concurrente
(simultane) et dinstruction squentielle. Par dfaut toutes les instructions sont
concurrentes, pour quelles soient squentielles il faut quelles apparaissent dans un
process.

6 STRUCTURE GNRALE DUN FICHIER DE DESCRIPTION


library NOM_DE_LA_LIBRAIRIE ;
use ELEMENT_DE_LA_LIBRAIRIE ;
entity NOM_DE_LENTITY
is
port ( A, B : in type des objets ;
S
: out type de lobjet
);
end NOM_DE_LENTITY ;
architecture NATURE_ DE_LARCHITECTURE of NOM_DE_LENTITY is
zone de dclarations des objets internes
begin
ensemble dinstructions concurrentes
end NATURE_ DE_LARCHITECTURE ;

Les librairies pr dfinies sont fournies par le fabricant du logiciel ou du circuit cible.
Elles peuvent aussi tre constitues par lutilisateur.

A
B

NOM_DE_
LENTITY

Lentity reprsente le bloc fonctionnel avec ces entres et sorties. Le nom des entres
et sorties est introduit par le mot cl port.
Larchitecture reprsente la description interne de la fonction. Cette description nest
pas unique. On dira quelle est de nature :
comportementale (behavioral) lorsquelle dcrit la fonction sans rfrence la
structure ou aux quations.
structurelle (structural) lorsquelle dcrit la fonction partir de composants pr
dfinis.
IUFM de Toulouse - Lyce Technique d'Agen
(3699)

Page 13

flot de donnes lorsquelle dcrit la fonction par des quations boolennes.


Comme dans les langages informatiques nous trouverons les concepts de visibilit de
variables, de passages de paramtres, de sous programmes ou de fonctions.

6.1

LES OBJETS ET LEURS TYPES. LES ATTRIBUTS


Il existe trois familles dobjets : les constantes, les signaux et les variables. Chaque
objet est repr par un identificateur.

6.1.1

LES OBJETS

6.1.2

LES SIGNAUX
Un signal est synthtis par une quipotentielle et ventuellement une bascule sil faut
conserver sa valeur. Un signal ne peut tre dclar que dans une architecture.

6.1.3

LES VARIABLES
Une variable peut stocker un rsultat intermdiaire. Elle ne peut tre dclare que
dans un process, une procedure ou une function.

6.1.4

LES CONSTANTES
Une constante a une valeur fixe une fois pour toutes. Elle peut apparatre dans toute
unit VHDL. Elle est synthtise comme des pull up ou pull down.

6.1.5

LES TYPES

6.1.5.1 ENTIER
signal

NOM_DU_SIGNAL : integer ;

(ou variable)

On dclare un nombre entier qui pourra tre compris entre 232 et +232-1, et qui sera
synthtis par 32 quipotentielles ou 32 bascules suivant son utilisation.
signal

NOM_DU_SIGNAL : integer range 0 to 127;

On limite ainsi la taille du signal synthtis.


6.1.5.2 BITS
Un bit peut prendre deux valeurs 0 ou 1.
variable NOM_DE_LA_VARIABLE : bit ;

(ou signal)

Avec la librairie ieee.std_logic_1164 on peut avoir accs entre autres aux valeurs X
pour inconnu et Z pour haute impdance, pour le type std_logic.
6.1.5.3 LES TABLEAUX
signal NOM_DU_TABLEAU : bit_vector(0 to 4) ; ( ou 4 down 0)
On dfinit ainsi cinq signaux NOM_DU_TABLEAU (0) NOM_DU_TABLEAU (4).
6.1.6

LES ATTRIBUTS
Les attributs sont des proprits attaches un objet. Nous ne considrerons que
lattribut event qui rend la valeur vrai si le signal auquel il est attach a chang de valeur.

Patrick COHEN
(3699)

Page 14

NOM_DU_SIGNALevent
Exemple :

if (HORevent and HOR=1) then

6.2

dtection dun front montant de HOR.

LES INSTRUCTIONS CONCURRENTES


Les instructions concurrentes se trouvent lintrieur dune architecture. En raison de
la simultanit de leur ralisation, elles peuvent tre crites dans nimporte lequel ordre.

6.2.1.1 AFFECTATIONS CONCURRENTES DE SIGNAUX


6.2.1.1.1 Affectation simple
Laffectation traduit une simple interconnexion entre deux quipotentielles. Loprateur
daffectation est le symbole : <=
NOM_DU_SIGNAL <= EXPRESSION

6.2.1.1.2 Affectation conditionnelle


Laffectation se fera en fonction du rsultat de tests logiques.
NOM_DU_SIGNAL <=

SOURCE_1 when CONDITION_1 else


SOURCE_2 when CONDITION_2 else
.
SOURCE_n ;

6.2.1.1.3 Affectation slective


Le choix de la valeur affecter un signal se fait partir des valeurs possibles dune
expression.
with EXPRESSION select
NOM_DU_SIGNAL <=
SOURCE_1 when VALEUR_1
SOURCE_2 when VALEUR_2
.
SOURCE_n when others;

6.2.1.2 INSTANCIATION DE COMPOSANTS


Cette opration consiste utiliser un sous-ensemble entity-architecture dans une
architecture plus vaste. On dcrit ainsi une architecture de nature structurelle.
6.2.1.3 PROCESS
Un process dfinit un comportement qui doit se drouler lorsque ce process devient
actif. Le comportement est dcrit par une suite dinstructions squentielles excutes dans le
process.
[ETIQUETTE :] process ( liste de sensibilit )
dclaration des objets utiliss dans le process
begin
suite dinstructions squentielles
end process [ETIQUETTE ] ;

La liste de sensibilit est lensemble des signaux qui dclencheront lexcution du


process.
IUFM de Toulouse - Lyce Technique d'Agen
(3699)

Page 15

Remarque : les expressions entre crochets sont facultatives.

6.3

LES INSTRUCTIONS SQUENTIELLES


Les instructions squentielles sont internes aux process, elles constituent les outils de
base des descriptions comportementales.

6.3.1.1 AFFECTATION SQUENTIELLE


Elle utilise le mme symbole <= que laffectation concurrente, elle a la mme syntaxe.
Seul la place quelle occupe ( lintrieur dun process) la diffrencie de laffectation
concurrente.
6.3.1.2 AFFECTATION DE VARIABLE
Elle utilise loprateur := ,cest toujours une instruction squentielle.
6.3.1.2.1 Le test if then elsif else end if ;
Son interprtation est la mme que dans les langages de programmation informatique
comme PASCAL ou C ;
if CONDITION_1 then
INSTRUCTIONS_SEQUENTIELLES ;
[elsif CONDITION_2 then]
INSTRUCTIONS_SEQUENTIELLES ;
[else]
INSTRUCTIONS_SEQUENTIELLES ;
end if ;

6.3.1.2.2 Le test case when end case ;


Il permet de slectionner une des instructions excuter en fonction des valeurs prises
par une expression. Toutes les valeurs doivent tre traites. Les choix doivent tre
mutuellement exclusifs.
Case EXPRESSION is
when CHOIX_1 => INSTRUCTIONS_SEQUENTIELLE ;
when CHOIX_1 => INSTRUCTIONS_SEQUENTIELLE ;
.
when others => INSTRUCTION 8SEQUENTIELLE ;
end case ;

Les boucles permettent de rpter des squences dinstructions, sans oublier que ces
instructions gnrent des structures matrielles.
6.3.1.2.3 La boucle for
[ETIQUETTE :] for PARAMETRE in DEBUT to FIN (ou FIN downto DEBUT) loop
INSTRUCTIONS_SEQUENTIELLE ;
end loop [ETIQUETTE] ;

Exemple :
process (A)
begin Z <= "0000";
for I in 0 to 3 loop
if (A = I) then Z(I) <= '1'; end if;
end loop;
end process;

Patrick COHEN
(3699)

Page 16

6.3.1.2.4 La boucle while


[ETIQUETTE :] while CONDITION loop
INSTRUCTIONS_SEQUENTIELLE ;
end loop [ETIQUETTE] ;

7 INTGRATION DANS UN CPLD.


Nous allons nous intresser la structure des composants matriellement
programmables
du constructeur ALTERA, nous envisagerons ensuite la
programmation dun de ces composant avec le logiciel MAXPLUS fourni par ALTERA. La
dmarche propose pourra tre transfre dautres types de composants, provenant
dautres constructeurs.

7.1

LES COMPOSANTS ALTERA


Les composants programmables proposs par ALTERA sont de type EEPROM et
SRAM. Nous allons travailler sur un composant appartenant la famille MAX 7000S qui est
de type EEPROM. La configuration matrielle pourra donc tre modifie volont par
lutilisateur directement sur le circuit (I.S.P. : In Situ Programmable) sans avoir utiliser de
programmateur.

7.1.1

LA FAMILLE MAX 7000S


Cette famille comprend six types de composants diffrant par le nombre de
macrocellules. Chacun de ces types de composants est fabriqu avec des temps de
propagations diffrents. Le tableau ci-dessous prsente ces composants.
Le composant EPM 7128S comporte 128 macrocellules qui sont ralises par 2500
portes lmentaires (NAND ou NOR). Nous utiliserons ce composant pour intgrer notre
carillon.

IUFM de Toulouse - Lyce Technique d'Agen


(3699)

Page 17

7.1.2

LE COMPOSANT EPM 7128S


La macrocellule est llment de base de ce type de composant, cest un ensemble
de portes associes une bascule. Ces macrocellules sont runies par 16 dans un L.A.B.
(Logic Array Block).

Le composant EPM 7128S comporte donc 8 L.A.B. interconnects par un P.I.A.


(Programmable Interconnect Array). Ces blocks sont entours par de I/O Control Block
assurant le contrle des entres et sorties (entre ou sortie, sorties trois tats, temps de
mont, etc ).
Une macrocellule est constitue dun rseau de porte de type somme de produit (voir
les circuits P.A.L.) associ des slecteurs et une bascule.

Patrick COHEN
(3699)

Page 18

La connaissance de cette organisation est indispensable pour permettre le choix du


nombre de cellules (le prix crot avec le nombre de cellule).

7.2

PROGRAMMATION MATRIELLE
La programmation consiste, laide dun logiciel et du matriel de transfert,
positionner les slecteurs et organiser les connexions. du P.I.A. conformment au fichier
de description crit en VHDL.
Le logiciel MAXPLUS fourni par ALTERA permet de deffectuer lensemble des
oprations de programmation. Ce logiciel comporte de plus un simulateur permettant de
valider le fonctionnement du circuit.

7.3

ALGORITHME DE PROGRAMMATION
1) Ecriture du fichier VHDL
2) Compilation (analyse syntaxique)
Si il y a une erreur elle est indique et parfois explique.
Correction et compilation jusqu limination de toutes les erreurs
3) Simulation fonctionnelle
Si les signaux obtenus ne correspondent pas ceux esprs
Revoir lanalyse du problme
4) Choix du composant et affectation des broches
5) Compilation et fitter (le logiciel intgre le fichier compil dans le composant)
Si le fittage choue (composant trop petit , affectation des
broches trop contraignante)
Changer de composant. Revoir le fichier VHDL (analyse)
6) Simulation tenant compte des temps de propagation
Si les signaux obtenus ne correspondent pas ceux esprs
Changer de composant. Revoir le fichier VHDL (analyse)
7) Programmation du composant (transfre du fichier de configuration par un cble
entre le PC et la carte)

IUFM de Toulouse - Lyce Technique d'Agen


(3699)

Page 19

8) Test structurel

7.4

LE LOGICIEL MAXPLUS

Patrick COHEN
(3699)