Vous êtes sur la page 1sur 20

[Titre du

document]
[Date]

[Sous-titre du document]

SALIMI
[NOM DE LA SOCIÉTÉ]
Remerciements :
Au nom d’ALLAH le tout puissant, le très miséricordieux, Ce travail,
ainsi accompli, n’aurait point pu arriver à terme, sans l’aide et le soutien et tout
le guidage d’ALLAH, louange au Seigneur de l’univers.
Nous présentons nos sincères remerciements à nos professeurs : Monsieur
Ahmed BOUZIANE et Monsieur Abdessamad KLILOU qui se sont toujours
montré à l'écoute et très disponibles tout au long de la réalisation de ce projet,
ainsi pour l'inspiration, l'aide et le temps qu'ils ont bien voulu nous consacrer et
sans qui ce projet n'aurait jamais vu le jour.
Nous tenons également à exprimer nos respects et nos remerciements à
Mlle. Weam (doctorante au labo d’automatique à la FST BM) pour son aide et
qui n’a épargné aucun moyen pour améliorer la qualité de notre travail, et aussi
pour ses conseils précieux.
Nous ne terminerons pas nos remerciements sans avoir une pensée
sympathique pour tous ceux qui ont contribué de prêt ou de loin pour entamer ce
rapport.
Ainsi nous souhaitons présenter nos remerciements Tout le Corps
professoral et administratif de la Faculté des Sciences et Techniques Béni Mellal
(FST BM).
Avant-propos :
La Faculté des Sciences et Techniques de Béni Mellal (FST Béni
Mellal), est un établissement universitaire à caractère scientifique et technique.
La FST est destinée à s’intégrer dans le pôle technologique et industriel de la
région pour être une pépinière de techniciens et des cadres de haut niveau
capables de servir de courroie de transmission entre le technicien supérieur et
l’ingénieur concepteur.
La Faculté des Sciences et Techniques de Béni Mellal est un
établissement d’enseignement supérieur public scientifique et technique, à accès
limité. Elle est créée en 1994, elle a pour vocation :
• La formation à la FST Beni Mellal des lauréats dans les domaines les mieux
adaptés aux besoins et à l’évolution technologique de la région Béni Mellal-
Khenifra ;
• La contribution au développement économique et social de la région par le
biais de la recherche et de la formation continue pour les cadres scientifiques et
techniques des industries régionales et nationales ;
• L’acquisition aux bacheliers d’une formation de base à la fois scientifique et
technique suivi d’une formation spécialisée et adaptée aux besoins réels du
marché de l’emploi et de la recherche scientifique et technique ;
• Développer une culture d’entreprise à travers les stages et l’implication des
professionnels dans la formation
Sommaire :
Introduction générale :
Ce projet a été réalisé dans le cadre de la formation d’ingénieurs en
génie électrique, option électrotechnique et électronique industrielle, au sein de
la faculté des sciences et techniques Béni Mellal, l'objectif de ce projet est la
commande d’un moteur à courant continu via une carte FPGA.
Les moteurs et les générateurs (dynamos) à courant continu furent les
premières machines électriques utilisées par les ingénieurs au milieu du
19ièmesiècle pour produire de la puissance motrice particulièrement dans le
transport ferroviaire (tramways, TGV), et maintenant restent très utilisés dans le
domaine de l’automobile (ventilateurs, lève-vitre, etc.).
Les FPGAs, Field Programmable Gate Array ou 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
d’émuler un circuit afin de le valider avant la gravure silicium.
Ce rapport présente notre projet qui consiste à commander un moteur
à courant continu par un signal modulé en largeur d’impulsion (MLI). La
commande a été programmée en langage VHDL en utilisant une carte FPGA
(SPARTAN 3E basys1).
Ce rapport est divisé en trois chapitres, organisés comme suit:
 Dans le premier chapitre nous avons présentés des notions générales sur
les FPGAs, son langage de programmation VHDL.
 Dans le deuxième chapitre nous avons présenté une étude théorique du
moteur à courant continu et aussi des convertisseurs continu/continu ou
bien les Hacheurs.
 Dans le troisième chapitre, nous avons présenté notre application
concernant la commande d’un moteur à courant continu via une carte
FPGA. Une description des parties matérielles et logicielles de
l’application a été donnée, ainsi qu’aux différents résultats pratiques
obtenus par la carte FPGA.
 Enfin, dans la dernière partie, nous terminons par une conclusion générale
sur cette étude ainsi que les perspectives envisageables pour un travail
futur.
Chapitre I :
Généralités sur les FPGAs et son langage de
description Verilog
Introduction :
La densité croissante des circuits programmables actuels, notamment des FPGAs
(Field Programmable Gate Array), permet le prototypage rapide des circuits numériques à
grande complexité. Aussi, il est possible de tester rapidement la validité de concepts
architecturaux nouveaux: l'implémentation complète d'un processeur sur des circuits FPGAs
est aujourd'hui à notre portée, entraînant ainsi plus de possibilités d'évaluation que celles
offertes par des simulateurs logiciels.
La part de marché des FPGAs dans le marché globale des circuits matériels pour
l’électronique numérique ne cesse d’augmenter. Les évolutions technologiques et
architecturales qui ont eu successivement lieu depuis le début des années 2000 ont fait de ces
circuits de réels et rentables alternatives aux classiques ASIC. Avec ces évolutions c’est tout
un nouveau domaine de l’électronique numérique qui s’est ouvert. Aujourd’hui les FPGAs
sont utilisés dans tous les domaines, des systèmes embarqués aux systèmes de
communications, ils sont au cœur d’un important champ de recherche académique et
industrielle.
I. Les FPGAs :
1. Définition :
FPGA : Field-Programmable Gate Array,( réseau de portes programmables), est un
circuit intégré composé d’un grand nombre d’éléments logiques programmables reliés entre
eux grâce à une matrice de routage elle aussi programmable. Cette structure permet au FPGA
d’émuler n’importe quel circuit, à la seule condition que celui-ci ne soit pas trop gros pour ne
pas épuiser les ressources logiques du FPGA.
2. Historique :
En 1984 la société américaine Xilinx fut le premier inventeur du domaine en lançant
le premier circuit FPGA commercial, le XC2000. Ce composant avait une capacité maximum
de 1500 portes logiques. La technologie utilisée était alors une technologie aluminium à 2µm
avec 2 niveaux de métallisation. Xilinx sera suivi un peu plus tard, et jamais lâché, par son
plus sérieux concurrent Altera qui lança en 1992 la famille de FPGA FLEX 8000 dont la
capacité maximum atteignait 15000 portes logiques.
En 2000 et 2001, les deux concurrents Xilinx et Altera ont franchi une nouvelle
étape au niveau de la densité d’intégration en proposant respectivement leurs circuits Virtex et
Apex-II dont les capacités maximums avoisinaient les 4 millions de portes logiques
équivalentes avec de plus l’introduction de larges bancs de mémoires embarquées.
Aujourd’hui, les fréquences de fonctionnement de ces circuits sont de l’ordre de quelques
centaines de Méga Hertz (ces dernières sont en réalité très dépendantes de l’application). Bien
que ces valeurs soient relativement réduites par rapport aux ASICs, elles sont suffisantes pour
une très large majorité d’applications actuelles.
À partir des années 2000, les capacités des FPGA ont permis d’offrir aux
concepteurs une solution supplémentaire de réalisation pour une majorité d’applications. De
plus, les outils de mise en œuvre des FPGA ont évolué, ils permettent la réalisation rapide
d’applications complexes.
3. Les principaux fabricants :
Les fabricants des FPGA ne cessent pas d’améliorer leurs produits par l’efficacité et la
puissance. Les fabricants qui conçoivent ce type de circuits sont : Actel, Altera, Atmel
Cypress, Latice, Minc, QuicLOgic, Xilinx et autres.
Mais les principaux fabricants qui tiennent une place importante sur le marché sont :
 Altera
 Xilinx
Constructeur Part du marché
Xilinx 35,5%
Altera 32,7%
Lattice 16,1%
Actel 6,7%
Lucent Technologie 4,3%
Autres 4,7%
Tableau 1: Répartition du marché des FPGA

4. Différents types de circuits FPGA


On peut classer les FPGA, suivant leurs technologies de programmation, en effet, pour
franchir les inconvénients des mémoires, et dans le but de faire un ensemble de technologies
complémentaires adaptable suivant l’environnement des cahiers des charges, il existe trois
types d’FPGA reprogrammables suivant la technologie de mémorisation pour répondre aux
différentes applications. Ces trois principales technologies d’FPGA sont :

 Technologie à base de RAM (Les fabricants sont XILINX et ALTERA) : cette


technologie permet d’avoir une reconfiguration rapide des FPGA. Les connexions sont
des ensembles de transistors commandés. L’inconvénient majeur de cette technologie
c’est qu’elle nécessite beaucoup de place et il est nécessaire de sauvegarder le design
du FPGA dans une autre mémoire flash ;
 Technologie à base de EEPROM ou FLASH (Les fabricants sont LATTICE et
ACTEL), cette technologie garde sa configuration mais un nombre limité de
configuration avec une configuration plus lente par rapport à SRAM ;
 Technologie à base d’ANTI-FUSIBLE (Le fabricant est ACTEL) : Les points de
connexions sont du type ROM, c’est-à-dire que la modification du point est inversible.
Pour comprendre le mécanisme de connexion sans rentrer dans les détails des semi-
conducteurs, on considère que le point de connexion est le point de rencontre de deux
segments conducteurs ou lignes conductrices. Le non « anti-fusible » vient du fait que
l’état initial du fusible ou la couche isolant est présent et il n’y a pas de contact, pour
l’établir il faut détruire le fusible ce qui est contradictoire au fonctionnement habituel
d’un fusible. Des composants moins génériques mais plus petits et plus rapides ont été
développés.
5. Architecture du FPGA :
L’architecture interne des FPGA est différente d’un fondeur à un autre et même entre
la différente gamme du même constructeur mais rien n’empêche que leurs ressemblances
peuvent être rassemblées dans le schéma représentatif de la figure suivante :

Figure 1: Architecture interne du FPGA

En général, un FPGA est composé des blocs principaux électriquement configurables


suivants :
 Les blocs logiques configurables (CLB) ;
 Les blocs d’entrée-sortie (IOB) ;
 Les ressources d’interconnexion.
Illustration des blocs principaux :
a) Les blocs logiques configurables (CLB) :
Les blocs logiques configurables sont les principaux éléments d’un FPGA. Ils
peuvent avoir un ou plusieurs générateurs de fonctions réalisées avec des tables de
correspondance (LUT look-up tables) qui peuvent mettre en œuvre une logique arbitraire en
fonction de leur configuration.
Autour d’une LUT, il y a une logique d’interconnexion qui permet les liaisons à
destination et vers la LUT. Elle est mise en œuvre à l’aide de portes logiques et de
multiplexeurs. Pendant le processus de configurations d’un FPGA, les mémoires des LUT
sont écrites pour y implémenter une fonction, et la logique qui l’entoure est configurée pour
router correctement les signaux afin de construire un système complexe. Il existe différents
types de CLB en fonction du FPGA utilisé. L’architecture des FPGA peuvent être regroupées
en:
 Circuits FPGA à base de LUT (Look Up Tables) :
Les LUT ressemblent aux tables de vérité des fonctions logiques et réalisables par des
mémoires de type SRAM. Aujourd’hui, la structure la plus utilisée est basée sur ce type
d’FPGA.
Les possibilités offertes par les circuits programmables FPGA a SRAM permettent par
ailleurs de mettre en œuvre le concept de prototypage(ou maquette) pour la vérification
fonctionnelle de systèmes sur puce pour certaines applications. La fonction de la LUT est de
stocker la table de vérité de la fonction combinatoire à implémenter sur des mémoires SRAM
(LUT = Look-Up Table).
 Les circuits FPGA à base de multiplexeurs « MUX » :
Les FPGA à base de multiplexeurs qui sont des microcellules à trois entrées capables
de réaliser par exemple la fonction suivante : F = (a and b) or (a and b).
b) Les blocs d’entrée-sortie (IOB) :
Les blocs d’entrée-sortie permettent l’interconnexion de la logique interne aux ports
d’entrées et de sorties du FPGA. Les IOB ont leur propre mémoire de configuration, elle
stocke les standards de tension et la direction des ports. Ces blocs sont présents sur toute la
périphérie du circuit FPGA. Chaque bloc IOB contrôle une broche du composant et il peut
être défini en entrée, en sortie, en signaux bidirectionnels ou être inutilisé.
c) Les ressources d’interconnexion :
Les ressources d’interconnexion au sein d’un FPGA permettent la connexion
arbitraire des CLB et des IOB. Les connexions internes dans les circuits FPGA sont
composées de segments métallisés. Parallèlement à ces lignes, nous trouvons des matrices
programmables réparties sur la totalité du circuit, horizontalement et verticalement entre les
divers CLB. Elles permettent les connexions entre les diverses lignes, celles-ci sont assurées
par des transistors MOS dont l’état est contrôlé par des cellules de mémoire vive ou RAM. Le
rôle de ces interconnexions est de relier avec un maximum d’efficacité les blocs logiques et
les entrées/sorties afin que le taux d’utilisation dans un circuit donné soit le plus élevé
possible.
Pour parvenir à cet objectif, Xilinx propose trois sortes d’interconnexions selon la
longueur et la destination des liaisons.
 Les interconnexions directes : Ces interconnexions permettent l’établissement des liaisons
entre les CLB et les IOB. Il est possible aussi de connecter directement certaines entrées d’un
CLB aux sorties d’un autre.
 Les longues lignes : Ce sont de longs segments métallisés parcourant toute la longueur et la
largeur du FPGA. Elles permettent éventuellement de transmettre avec un minimum de retard
des signaux, entre les différents éléments, dans le but d’assurer un synchronisme aussi parfait
que possible. De plus, ces longues lignes permettent d’éviter la multiplicité des points
d’interconnexion.
 Les matrices d’interconnexion : Ce sont des points situés à chaque intersection. Leur rôle est
de raccorder les longues lignes entre elles selon diverses configurations. Ces interconnexions
sont utilisées pour relier un CLB à n’importe quel autre CLB sur le FPGA. Ceci pour assurer
la communication des signaux. Pour éviter l’affaiblissement des signaux traversant les
longues lignes, des buffers sont implantés dans chaque matrice d’interconnexion. Les trois
blocs présentés jusqu’ici sont interconnectés ensemble dans le dispositif pour créer une
infrastructure de communication composée d’un réseau de communication d’IOB autour des
CLB. Des cellules de mémoire liées à chaque bloc détiennent les caractéristiques principales,
de telle sorte que les interconnexions entre l’infrastructure de communication, les normes de
tension des entrées-sorties d’un IOB, et les équations soient commandées par des valeurs
particulières stockées dans une mémoire. Toutes ces configurations sont stockées dans des
SRAM qui sont volatiles : lorsque le composant est mis sous tension, toute sa configuration
est perdue et il doit être redémarré avec une nouvelle configuration. Habituellement, des
dispositifs sur la carte de développement se charge de télécharger la configuration sur le
FPGA via une de ses interfaces de configuration, et envoie une commande de démarrage pour
signaler que la configuration a eu lieu. Certaines cartes ont une mémoire ROM d’intégrée.
Elle permet de stocker la configuration, de sorte qu’elle puisse ensuite être téléchargée sur le
FPGA. Dans ce cas, les données de configuration sont copiées sur la mémoire SRAM de
configuration du FPGA au démarrage de celui-ci.
6. Programmation du circuit FPGA :
Une première étape dans la programmation d’un circuit FPGA consiste à connecter
les blocs logiques entre eux et les entrées/sorties (routage du programme). Les circuits FPGA
disposent de plusieurs ressources de routage.
En général, les niveaux hiérarchiques disponibles sont :
 Connexions directes vers les voisins proches ;
 Connexions générales à travers des matrices de routages et des canaux disposés
suivant une topologie simple ;
 Connexions à longue distance ;
 Distribution d'horloge spécifique.
Ensuite, la seconde étape de programmation des circuits FPGA est la définition des
connexions entre les switchs et les blocs logiques. Cet outil de design traduit le langage
introduit par l’utilisateur (VHDL, Verilog).

7. Avantage de l’exploitation du circuit FPGA :


7.1. Par rapport aux processeurs :
a) Au niveau des performances :
Comme ils bénéficient du parallélisme matériel, les FPGA offrent une puissance de
calcul supérieure à celle des processeurs de signaux numériques (DSP), car ils s'affranchissent
du modèle d'exécution séquentielle et exécutent plus d'opérations par cycle d'horloge. BDTI,
une importante société d'analyse a publié des études montrant que les FPGA peuvent offrir
une puissance de traitement par dollar plusieurs fois supérieure à celle d'une solution DSP
dans certaines applications. Contrôler les entrées et sorties (E/S) au niveau matériel permet
d'obtenir des temps de réponse plus courts ainsi que des fonctionnalités spécifiques, qui
répondent mieux aux besoins de l'application.
Pour avoir une idée sur l’ordre de grandeur, on peut comparer la performance entre
les deux circuits intégrés par les chiffres suivants :
 Microprocesseur à 1 GHz : 1 000 000 000 opérations par seconde ;
 FPGA à 300 MHz avec 1000 multiplicateurs : 300 000 000 000 opérations par
seconde.
b) Fiabilité :
Tandis que les outils logiciels fournissent l'environnement de programmation, les
circuits FPGA sont une véritable implémentation matérielle de l'exécution logicielle. Les
systèmes basés sur processeur comprennent souvent plusieurs couches d'abstraction, pour
aider à la planification des tâches et à la répartition des ressources entre les différents
processus. La couche de driver contrôle les ressources matérielles et le système
d'exploitation gère la mémoire et la bande passante du processeur.
Sur chaque cœur de processeur, une seule instruction peut s'exécuter à la fois ;
c'est pourquoi les systèmes basés sur processeur risquent toujours de voir des tâches
prioritaires entrer en conflit. Les FPGA, qui n'utilisent pas de système d'exploitation,
minimisent les problèmes de fiabilité car ils assurent une exécution véritablement parallèle
et un matériel déterministe dédié à chaque tâche.
7.2. Par rapport aux autres circuits intégrés comme ASIC :
 Au niveau du temps de mise sur le marché :
Face à des préoccupations croissantes concernant les temps de mise sur le marché, la
technologie FPGA représente une solution souple offrant des capacités de prototypage rapide.
Ainsi, on peut 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é. Une fois le programme
validé cela ne prend que quelques minutes à l’implémenter. A titre de comparaison, la
fabrication d’un circuit ASIC peut prendre plusieurs semaines. Le matériel « sur étagère »
actuellement commercialisé propose également différents types d'E/S déjà connectées à un
circuit FPGA programmable par l'utilisateur. La multiplication des outils logiciels de haut
niveau disponibles sur le marché permet de réduire le temps d’exploitation. Ces outils
comprennent souvent des cœurs de propriété intellectuelle (fonctions précompilées) utiles
pour le contrôle avancé et le traitement de signaux.

 Au niveau de reprogrammation :
L’avantage du FPGA est de pouvoir être reprogrammable contrairement aux
circuits intégrés de type ASIC. Ce qui rend cette solution modulable et donne la possibilité de
modifier le programme générique de base afin de le rendre spécifique au circuit utilisé. Une
solution de validation utilisant le FPGA peut alors convenir à beaucoup de projets et donc
diffusée à plusieurs équipes.
 Au niveau de la durée d’investissement:
Cela est dû à sa reprogrammation, ce qui implique une réutilisation à destination
d’autres projets, malgré un prix à l’achat supérieur à un circuit ASIC.
 Au niveau du coût:
Les coûts des ASIC personnalisés sont bien supérieurs à ceux des solutions
matérielles basées sur du FPGA. L'important investissement de départ que requièrent les
ASIC se justifie largement pour les OEM, par exemple, qui peuvent livrer des circuits par
milliers chaque année. Cependant, la plupart des utilisateurs finaux ont besoin de matériels
personnalisés pour quelques dizaines ou quelques centaines de systèmes en développement.
Par nature, les circuits programmables n'impliquent ni un coût de fabrication, ni des
longs délais d'assemblage. Les besoins de la plupart des systèmes évoluent avec le temps ; or
la modification progressive d'un FPGA représente un coût négligeable comparé à la dépense
considérable qu'exige la reconception d'un ASIC.

II. Langage de description Verilog :


1. Objectifs :
Les langages de description de matériel (HDL = Hardware Description Langage)
font partie des outils de base pour la conception de systèmes logiques intégrés câblés, que le
produit final soit construit sur des composants électriquement configurables (FPGA = Field
Programmable Logic Array) ou des circuits intégrés spécifiques (ASIC = Application Specific
Integrated Circuit).
Ces langages doivent être utilisables pour :
 écrire la spécification d’un système (description comportementale ou fonctionnelle) ;
 le construire par interconnexion de cellules élémentaires (description structurelle ou
physique) ;
 gérer des descriptions hiérarchisées (dont la description structurelle est un cas
particulier) ;
 valider par simulation les différents types de description ;
 permettre l’utilisation de programmes de synthèse automatique.
De plus les descriptions comportementales doivent se faire dans deux modes :
 mode concurrent : les données se propagent dans des éléments dont le comportement
est décrit par des déclarations qui ont un effet permanent (comme dans les descriptions
structurelles) ;
 mode procédural : les données sont manipulées par des séquences d’instructions
(comme dans les programmes d’ordinateurs).
Dans le mode concurrent les données sont actives, on parle de “data flow”, alors que
dans le mode procédural c’est le programme qui contrôle les événements, on parle alors de
“program flow”. Il existe deux standards de langages de description de matériel :
• VHDL ;
• Verilog.
Leurs syntaxes sont assez différentes mais mettent en œuvre les mêmes concepts.
2. Les supports de données en Verilog :
Le langage Verilog utilise deux classes de supports de données distinctes pour les
modes concurrents et procéduraux.
 classe “net” dans le mode concurrent : un net est équivalent à un nœud d’un circuit
électrique, son état est contrôlé en permanence par les éléments aux sorties desquels il
est connecté.
 classe “reg” dans le mode procédural : un reg est équivalent à une variable d’un
programme informatique : il subit des affectations instantanées par instructions et
conserve son état jusqu’à la prochaine affectation.
Le bon usage des nets et regs est la seule réelle difficulté de Verilog.
3. Les déclarations en Verilog :
Le langage distingue les majuscules et minuscules, les regs et nets doivent être
déclarés à l'intérieur des modules, mais à l'extérieur des blocs procéduraux, la déclaration des
regs est toujours obligatoire.
La déclaration des nets est obligatoire sauf dans un cas : dans une représentation
structurelle, les nets internes du module qui apparaissent dans les instances sans avoir été
déclarés explicitement sont considérés comme déclarés implicitement (avec le type de net
"par défaut").
NB : il faut déclarer explicitement les nets vectoriels, car la déclaration implicite leur
donne une capacité de 1 bit seulement, sans avertissement.
Les ports du module sont des nets, et les déclarations de direction des ports (input,
output, inout) valent comme déclarations de nets.
Les types de regs sont les suivants :
• reg "simple" ou "scalaire" de 1 bit ;
• reg vecteur (nombre de bits arbitraire) (non-signé) ;
• table de regs vectoriels = "RAM" ;
• integer (reg de 32 bits, signé).
Il y a de nombreux types de nets, qui diffèrent principalement par la manière dont
sont résolus les conflits et les indéterminations. Le type de net le plus approprié pour les
circuits CMOS statiques est le wire, qui résout les conflits en fonction des forces des sources
en présence et prend l'état Z (haute impédance) lorsqu'aucune force ne détermine son état.
N.B : Le mot net n'est pas un nom de type, mais de "classe de types".
4. Les déclarations en Verilog :
Les règles de constructions des expressions sont similaires dans les mondes
concurrent et procédural. Elles sont fortement compatibles avec le langage C, En cas de doute
sur la priorité des opérateurs, on utilise des parenthèses.
4.1. Opérations logiques “verticales” ou “bitwise” :
Comme en C :
Opérateurs ~, &, |, ^ pour respectivement not, and, or, xor ;
exemple : c = a & b; d = ~c | ~( a ^ b );
Chaque bit de c sera le "et" du bit de même poids pris sur a et sur b. L'opérateur ~ est
prioritaire sur les autres.
4.2. Opérations logiques “horizontales” ou “unary” :
opérateurs &, |, ^ pour respectivement and, or, xor ;
exemple :
reg [7:0] b; reg azero;
azero = ~( | b );
azero est à 1 si et seulement si tous les 8 bits de b sont nuls.
4.3. Opérations arithmétiques et décalage :
comme en C :
opérateurs +, -, *, /, %, <>
NB: les opérateurs d'incrémentation et de décrémentation (++, --) n'existent pas en Verilog.
4.4. Opération booléennes :
Comme en C :
Opérateurs !, &&, || pour respectivement not, and, or ;
Étant entendu que la valeur zéro représente "false" et que toute valeur différente de zéro
représente "true".
4.5. Opérations relationnelles :
comme en C : opérateurs ==, !=, , <=, >= pour respectivement égal, différent, inférieur,
supérieur, inf. ou égal, sup. ou égal.
avec en plus : opérateurs ===, !== pour respectivement littéralement égal, littéralement
différent. (au sens de == et !=, l'état X implique un résultat de comparaison toujours égal à X,
alors que au sens de === et !==, X est égal à lui-même)
N.B : les comparaisons sont non signées, sauf pour le type integer ;
4.6. Vecteurs :
Les opérateurs {et} servent à former un vecteur par concaténation de bits ou de vecteurs
(msb=most significant bit en premier).
Exemple :
reg [8:0] resu; reg [2:0] rev_a; reg q0, q1, q2;
wire [7:0] sum; wire [2:0] a;
resu = { carry, sum[7:0] };
{ q2, q1, q0 } = a + b;
rev_a = { a[0], a[1], a[2] };
c = sum[ n - 1 ];
resu est un vecteur de 9 bits dont le msb est carry, q2, q1, q0 reçoivent séparément les 3 lsb de
la somme a + b, rev_a contient les trois lsb de a dans l'ordre inverse, c’est le n-ième bit de
sum (n étant un entier >= 1).
4.7. Constantes numériques :
Les constantes numériques sont décimales par défaut.
Les opérateurs 'b, 'h, 'o préfixent les constantes binaires, hexadécimales et octales.
(ces opérateurs peuvent être précédés d'un entier indiquant le nombre de digits)
Le caractère "_" ("souligné") peut être inséré librement pour rendre la constante plus lisible.
La déclaration parameter permet d'associer un symbole à une constante.
Exemples :
parameter msb8 = 'b1000_0000;
a = a + 'hFC0;
b = 'bz; // état haute impédance
4.8. Extension – troncature :
- si un élément d'une expression comporte plus de bits que la destination de cette expression,
cet élément va être tronqué "par la gauche", c'est à dire que ce sont les bits de faible poids qui
vont subsister.
- si un élément d'une expression comporte moins de bits que la destination de cette
expression, cet élément va être complété par des zéros "à gauche" (du côté des forts poids).
NB : ces opérations ne s'accompagnent d'aucun avertissement et peuvent dissimuler des
erreurs fatales.
Conclusion :
Dans ce chapitre, on a présenté en premier lieu des généralités sur les FPGA, ensuite
on a entamé le langage de description Verilog.
Le chapitre suivant traite les machines à courant continu ainsi que les différentes
structures des hacheurs.

Chapitre II :
Généralités sur les machines à courant
continu et les hacheurs
Introduction :
Les moteurs à courant continu sont très utilisés dans les systèmes automatiques, qui
nécessitent une régulation précise de la vitesse de rotation. Le principe de la régulation de
vitesse consiste à choisir le bon convertisseur, qui est un hacheur, avec sa commande
adéquate, la commande MLI.
Il y a plusieurs façons de précéder pour varier la vitesse d'un moteur à courant
continu. On peut la faire modifier en variant la tension d'alimentation à ses bornes mais dans
ce cas une partie importante de l'énergie est consommée par le dispositif d’alimentation. Pour
cette raison, on préfère l'alimenter de façon discontinue avec un hacheur et faire ainsi varier la
tension moyenne à ses bornes. On parle alors de Modulation par Largeur d'Impulsions (MLI),
très utilisée dans le domaine de la régulation de vitesse de rotation d’un moteur à courant
continu.

I. Les machines à courant continu :


1. Principales parties de la MCC :
La machine à courant continu est constituée de deux parties :
 Une partie fixe, le stator, qui crée le champ magnétique ; c'est l'inducteur. Cet
inducteur peut être constitué d'aimants permanents ou d'une bobine alimentée par un
courant continu.
 Une partie mobile, le rotor, qui est l'induit de la machine. Le rotor de la machine est
constitué de conducteur et lorsque le rotor tourne, il se crée aux bornes de l'ensemble
des conducteurs une tenson induite E.
Pour faire fonctionner une machine à courant continu, on peut brancher l'inducteur en
série avec l'induit : on parle alors de machine série. Si l'inducteur est alimenté de façon
séparée par rapport à l'induit, on parle de machine à excitation indépendante. La machine à
courant continu est une machine réversible. Elle peut fonctionner soit en génératrice, soit en
moteur.la figure suivante illustre les deux principales parties d’une MCC :

Figure 2: principales parties d'une MCC


2. La force électromotrice E :
Les conducteurs de l’induit du moteur en rotation coupent le flux inducteur et sont le siège
d’une f.c.e.m E’.
La f.c.e.m est proportionnelle :
- au nombre N de conducteurs actifs de l’induit
- à la fréquence de rotation n de l’induit
- au flux  dans l’entrefer

E’ = N n 
 E’ en volts et n en tr/s et  en webers

3. La modélisation de la MCC :
On peut modéliser la machine à courant continu comme suit :

Figure 3: modélisation de la MCC

 r : Résistance interne du moteur caractérisant la résistance du bobinage de l'induit.


 L : Inductance interne du moteur caractérisant l'inductance du bobinage de l'induit.
NB : En régime permanent le courant qui circule dans le moteur est constant donc la chute de
tension aux bornes de l'inductance interne du moteur est nulle. LdI/dt = 0 donc U = E + rI.
4. Bilan énergétique et rendement :

Figure 4: Bilan énergétique et rendement d'une MCC


II. Les hacheurs :
1. Définition :
Un hacheur permet d’obtenir une tension unidirectionnelle de valeur moyenne
réglable à partir d’une source de tension continue. C’est un convertisseur continu-continu dont
le symbole est :

Figure 5: Symbole d'un hacheur

Un hacheur peut être réalisé à l’aide d’interrupteurs électroniques commandables à


l’ouverture et à la fermeture tels que les thyristors GTO ou les transistors bipolaires ou à effet
de champ à grille isolée.
Principe de la commande MLI
Le Principe de base de la Modulation de la Largeur d’impulsion MLI est fondé sur le
découpage d’une pleine onde rectangulaire. Ainsi, la tension de sortie est formée par une
succession de créneau d’amplitude égale à la tension continue d’alimentation et de largeur
variable. La technique la plus répondue pour la production d’un signal MLI est de comparer
entre deux signaux :
 Le premier, appelé signal de référence, est un signal continu ;
 Le second, appelé signal de la porteuse, définit la cadence de la commutation des
interrupteurs statiques du convertisseur. C’est un signal de haute fréquence par rapport au
signal de référence ;
 L’intersection de ces signaux donne les instants de commutation des interrupteurs.

Figure 6: signal PWM (MLI)

Conclusion :

Nous avons présenté dans ce chapitre des généralités sur la machine à courant
continu, en même temps, on a parlé des convertisseurs continu/continu (les hacheurs) et ses
différentes types utilisés pour commander la vitesse de la MCC
A la fin nous avons vu aussi la stratégie de commande en utilisant la modulation à
largeur d'impulsion (MLI) ou Pulse Width Modulation (PWM).

Vous aimerez peut-être aussi