38
Chapitre 3 : Les FPGA 1 1. Introduction : la dernière décade, les Field-programmable Gate Arrays (FPGAs) sont devenue une clé véritable de l'implémentation des circuits numérique .le crucial part de sa création et de son architecture donnera la nature de son programmable fonctions et son programmable interconnexion L’architecture de l'FPGA a un effet dramatique sur la qualité final de performance de matériel, efficacité de la place, et la consommation d'énergie.

PFE VHDL FPGA

Embed Size (px)

Citation preview

Page 1: PFE VHDL FPGA

Ch

apit

re 3

: Le

s FP

GA

1

1. Introduction :

la dernière décade, les Field-programmable Gate Arrays (FPGAs)

sont devenue une clé véritable de l'implémentation des circuits numérique

.le crucial part de sa création et de son architecture donnera la nature de son

programmable fonctions et son programmable interconnexion

L’architecture de l'FPGA a un effet dramatique sur la qualité final de

performance de matériel, efficacité de la place, et la consommation

d'énergie.

Page 2: PFE VHDL FPGA

Ch

apit

re 3

: Le

s FP

GA

2

2. Définition :

Les FPGA (Field Programmable GateArrays ou "réseaux logiques programmables") sont des

composants VLSI pré reconfigurables ce qui permet de les reprogrammer afin d'accélérer

notablement certaines phases de calculs.

L'avantage de ce genre de circuit est sa grande souplesse qui permet de les réutiliser dans des

algorithmes différents en un temps très court.

Le progrès de ces technologies permet de faire des composants toujours plus rapides et à plus

haute intégration, ce qui permet de programmer des applications importantes.

3. Historique

Les origines des FPGA est liée au développement des circuits intégrer au 1960s Après que les

appareils programmable employant des architecture régulier et des fonctions flexibles. Voici quelque

principales étapes qui ont archivée l’histoire des FPGA :

L’apparition des premières matrices bidimensionnelles des simples cellules logiques,

1960 la programmation sur place ou « Field-programmable », le pouvoir de changer la

fonction logique d'un circuit après sa fabrication, étais archivée par l'introduction des matrices

cellulaire a ‘point de rupture’ l'optimisation du réseau a permis à la simplification de la

fabrication des matrices et à élargement de ses utilisations

en 1970, des séries de mémoire a lecture seul (ROM)-basée programmables appareilles était

introduits et fournira une nouvelle méthode pour implémenter les fonctions logiques,

La premier (SRAM-basée FPGA) a étais proposé par Wallström en 1967 cette architecture a

permis a la configuration de la logique des interconnections par utilisation des flots des bits

configurables,

La modern FPGA a été introduite par "Xlinx" en 1984, il contient 64 bloc logique et 58 entrer

et 49 sortie, dès cette premier FPGA.,il ont grandis énormément en complexion ,les modern

FPGAs peuvent contenir 330.000 des bloc programmables et approximativement 1100 inputs

and outputs cette augmentation massive des capacité des FPGA a été accompagné d’un

changement signifiant de leurs architectures .

4. Fpga altéra cyclone II

4.1 Architecture

L'architecture, retenue par Altera, se présente sous forme de deux couches :

une couche appelée circuit configurable,

une couche réseau mémoire SRAM.

La couche dite 'circuit configurable' est constituée d'une matrice de blocs logiques

configurables CLB permettant de réaliser des fonctions combinatoires et des fonctions

séquentielles. Tout autour de ces blocs logiques configurables, nous trouvons des blocs

entrées/sorties IOB dont le rôle est de gérer les entrées-sorties réalisant l'interface avec les

Page 3: PFE VHDL FPGA

Ch

apit

re 3

: Le

s FP

GA

3

modules extérieurs La programmation du circuit FPGA appelé aussi LCA (logic cells arrays)

consistera par le biais de l'application d'un potentiel adéquat sur la grille de certains transistors

à effet de champ à interconnecter les éléments des CLB et des IOB afin de réaliser les

fonctions souhaitées et d'assurer la propagation des signaux. Ces potentiels sont tout

simplement mémorisés dans le réseau mémoire SRAM.

Figure 1 : Architecture interne d'un FPGA.

Les circuits FPGA du fabricant Altera utilisent deux types de cellules de base :

les cellules d'entrées/sorties appelés IOB (input output bloc),

les cellules logiques appelées CLB (configurable logic bloc). Ces différentes cellules

sont reliées entre elles par un réseau d'interconnexions configurable.

4.1.1 Les CLB (configurable logic bloc)

Les blocs logiques configurables sont les éléments déterminants des performances du FPGA.

Chaque bloc est composé d'un bloc de logique combinatoire composé de deux générateurs de

fonctions à quatre entrées et d'un bloc de mémorisation synchronisation composé de deux

Page 4: PFE VHDL FPGA

Ch

apit

re 3

: Le

s FP

GA

4

bascules D. Quatre autres entrées permettent d'effectuer les connexions internes entre les

différents éléments du CLB. La figure ci-dessous, nous montre le schéma d'un CLB.

Figure 2 : Cellule logique (CLB).

4.1.2 Les IOB (input output bloc):

La figure présente la structure de ce bloc. Ces blocs entrée/sortie permettent l'interface entre

les broches du composant FPGA et la logique interne développée à l'intérieur du composant.

Ils 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é (haute impédance).

Page 5: PFE VHDL FPGA

Ch

apit

re 3

: Le

s FP

GA

5

Figure 3: Input Output Block (IOB).

4.1.3 Configuration en entrée:

Premièrement, le signal d'entrée traverse un buffer qui peut détecter les seuils TTL 5V Il

peut être routé directement sur une entrée directe de la logique du circuit FPGA ou sur une

entrée synchronisée. Cette synchronisation est réalisée à l'aide d'une bascule de type D, le

changement d'état peut se faire sur un front montant ou descendant. De plus, cette entrée peut

être retardée de quelques nanosecondes pour compenser le retard pris par le signal d'horloge

lors de son passage par l'amplificateur. Le choix de la configuration de l'entrée s'effectue

grâce à un multiplexeur (program controlled multiplexer). Un bit positionné dans une case

mémoire commande ce dernier.

4.1.4 Configuration en sortie:

Nous distinguons les possibilités suivantes :

o inversion ou non du signal avant son application à l'IOB,

o synchronisation du signal sur des fronts montants ou descendants d'horloge,

o mise en place d'un " pull-up " ou " pull-down " dans le but de limiter la consommation

des entrées sorties inutilisées,

o signaux en logique trois états ou deux états. Le contrôle de mise en haute impédance et

la réalisation des lignes bidirectionnelles sont commandés par le signal de commande

Out Enable lequel peut être inversé ou non. Chaque sortie peut délivrer un courant de

12mA. Ainsi toutes ces possibilités permettent au concepteur de connecter au mieux

une architecture avec les périphériques extérieurs.

4.1.5 Les différents types d'interconnexions:

Page 6: PFE VHDL FPGA

Ch

apit

re 3

: Le

s FP

GA

6

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,

Altéra propose trois sortes d'interconnexions selon la longueur et la destination des liaisons.

Nous disposons :

o d'interconnexions à usage général,

o d'interconnexions directes,

o de longues lignes

A) LES INTERCONNEXIONS A USAGE GENERALE

Ce système fonctionne en une grille de cinq segments métalliques verticaux et quatre

segments horizontaux positionnés entre les rangées et les colonnes de CLB et de l'IOB.

Figure 4 : Connexions à usage général et détail d'une matrice de commutation.

Des aiguilleurs appelés aussi matrices de commutation sont situés à chaque intersection. Leur

rôle est de raccorder les segments entre eux selon diverses configurations, ils assurent ainsi la

communication des signaux d'une voie sur l'autre. Ces interconnexions sont utilisées pour

relier un CLB à n'importe quel autre. Pour éviter que les signaux traversant les grandes lignes

ne soient affaiblis, nous trouvons généralement des buffers implantés en haut et à droite de

chaque matrice de commutation.

B) LES INTERCONNECTIONS DIRECT:

Ces interconnexions permettent l'établissement de liaisons entre les CLB et les IOB avec un

maximum d'efficacité en terme de vitesse et d'occupation du circuit. De plus, il est possible de

connecter directement certaines entrées d'un CLB aux sorties d'un autre.

Page 7: PFE VHDL FPGA

Ch

apit

re 3

: Le

s FP

GA

7

Figure 15: Les interconnexions directes.

C) LES LONGES LIGNES :

Les longues lignes sont de longs segments métallisés parcourant toute la longueur et la largeur

du composant, elles permettent éventuellement de transmettre avec un minimum de retard les

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.

Figure 6: Les longues lignes.

D) PERFORMANCES DES INTERCONNEXIONS

Les performances des interconnexions dépendent du type de connexions utilisées. Pour les

interconnexions à usage général, les délais générés dépendent du nombre de segments et de la

quantité d'aiguilleurs employés. Le délai de propagation de signaux utilisant les connexions

directes est minimum pour une connectique de bloc à bloc. Quant aux segments utilisés pour

les longues lignes, ils possèdent une faible résistance mais une capacité importante. De plus,

si on utilise un aiguilleur, sa résistance s'ajoute à celle existante.

Page 8: PFE VHDL FPGA

Ch

apit

re 3

: Le

s FP

GA

8

4.1.6 L'oscillateur à quartz:

Placé dans un angle de la puce, il peut être activé lors de la phase de programmation pour

réaliser un oscillateur. Il utilise deux IOB voisins, pour réaliser l'oscillateur dont le schéma est

présenté ci-dessous. Cette oscillateur ne peut être réalisé que dans un angle de la puce où se

trouve l'amplificateur prévu à cet effet. Il est évident que si l'oscillateur n'est pas utilisé, les

deux IOB sont utilisables au même titre que les autres IOB

5. Présentation de la carte de développement

5.1 Introduction

La carte de développement Cyclone II FPGA Starter ou II’ EP2C20’ (figure 1-1) est une FPGA de

chez Altera Comme elle est décrite dans son référence la cyclone II fournit des fonctions intégrées qui

permettent aux utilisateurs de développer et de tester les désignes qui peuvent varier de simples

circuits au multiple multimédia projets, tout sans le besoin d'implémenter des interfaces de

programmation complexes (APIs), sans programmes de contrôle et sans des contrôleurs mémoires

SRAM/SDRAM/FLASH.

Cette partie décrit les caractéristiques de la Catre FPGA cyclone II, ses méthodes de configuration et

de programmation ainsi que ses composants

Figure 7 : carte de développement II EP2C20

Page 9: PFE VHDL FPGA

Ch

apit

re 3

: Le

s FP

GA

9

3.1 Caractéristiques matérielles

3.2 Diagramme-bloc de la carte de développement :

Figure 8 : diagramme bloc de la carte de développement

7. Programmation et configuration :

la carte de développement cyclone II a intégrer les circuit de programmation de la FPGA :le USB-

Blaster et aussi la carte EEPROM qui enregistre les donnes de configuration de FPGA . ses

données de configurations se chargent automatiquement de EEPROM a FPGA chaque fois la carte

est mise sous tension

7.1 Flot de conception

■ Altera Cyclone® II EP2C20 FPGA

■ Altera EPCS4 Configuration serie

■ USB-Blaster puce contrôleur fixé pour

la programmation et utilisation de l'API

de contrôle il support à la fois les

modes de programmation JTAG et le

mode de série active (AS) . ■ SRAM de 512-KByte

■ SDRAM de 8-MByte

■ Mémoire Flash de4-MByte

■ carte prise de SD Flash

■ 4 Boutons poussoirs

■ 10 Interrupteurs à bascule

■ 10 LEDs rouges

■ 8 LEDs verts

■ Oscillateurs pour les sources d'horloge

de 50 MHz, 27 MHz, et 24 MHz

■ CAD VGA (réseau de résistances 4-

bits) avec connecteur sortie VGA

■ RS-232 émetteur-récepteur et à 9

broches

■ connecteur PS / 2 souris / clavier ■ Deux têtes d'extension à 40 broches avec

résistance de la protection

■ 7.5V DC adaptateur ou un câble

Page 10: PFE VHDL FPGA

Ch

apit

re 3

: C

on

clu

sio

n

10

Figure 9 : schéma représentant le flot de conception du programme

Les sections suivantes décrivent les deux modes de programmer la FPGA, programmation

JTAG et la programmation série active (AS) programmation :

7.2 Programmation JTAG

Dans cette méthode de programmation, nommé d'après des normes IEEE les téléchargements de

configuration de flux de bitsse fait directement dans leCyclone II FPGA à travers le circuit USB-

Blaster. La FPGA conserve cette configuration aussi longtemps que la tension est appliquée à la carte,

la FPGA perd la configuration lorsque l'alimentation est coupée.

7.3 Programmation AS

Dans le procédé de programmation série active, le train de bits de configuration se charge dans la

EEPROM de la FPGA La mémoire EEPROM fournit une mémoire non volatile en conservant les

informations même lorsque l'alimentation à l'Cyclone II FPGA Starter est éteint, Lorsque la carte de

développement est mise sous tension, les données de configuration de EPCS4 se chargent

automatiquement sur le FPGA Cyclone II.

8. Conclusion Dans ce chapitre on a cité quelque principale connaissances de bases sur les FPGA, ainsi on a

essaie de résumer les caractéristiques de la FPGA Altéra cyclone II qui sera utilisée dans notre

projet.

Compil

VHDL Synthèse

Pin

assign Config

Lib

VHDL

lib

FPGA

Page 11: PFE VHDL FPGA

Ch

apit

re 3

: P

RO

CES

SUS:

11

1. Introduction :

ual Conveyor Plc Workcell 34-120, est une machine

complet fabriquée par feedback Inc. 2010

Page 12: PFE VHDL FPGA

Ch

apit

re 3

: P

RO

CES

SUS:

12

2. Description du system

2.1 Présentation du Bank de trie

« Dual Conveyor Plc Workcell 34-120 » : Bank de trie avec double convoyeurs, est un

système complet qui peut être utilisée pour développer la tache de tri des pièces, dans un

premier temps les Composants plastiques et métalliques sont choisis par taille puis ils sont

amenés sur les goulottes de distribution en une tâche d'assemblage finale où ils sont combinés

avec un second composant. Le produit fini peut ensuite être triés par sa taille, sa nature ou son

type.

2.2 structure générale du système

Figure 1: schéma descriptif de fonctionnement général du système

2.3 Blocs fonctionnelles

2.3.1 ALIMENTATION ET INTERFACE

Les alimentations des convoyeurs, des capteurs et actionneurs sont logés dans la section à l'arrière de

la base, sous le convoyeur supérieur. L’interconnexion supérieure entre La FPGA et les capteurs sur

la cellule de travail nécessite des circuits d'interface. Ces se trouvent sur la carte de circuit imprimé

(PCB) à la gauche du convoyeur supérieur.

La machine requit une source d’alimentation alternative (220v 50/60 Hz)

2.3.2 PIECES POUR L’ASSEMBLAGE

Les composants à utiliser dans les tâches de trie sont de deux types: une "base" et une rondelle les

deux peuvent être assemblé.

La "rondelle" peut être soit en métal ou en plastique et peut avoir des hauteurs différentes (épaisseur)

Les tâches associées au système sont de sélectionné le type requis et la taille de la "rondelle" et de

l'assembler correctement sur une "base".

Carte

interface et

d’isolement

Carte FPGA

ALTERA

CYCLONE II

Bank de

Trie des pièces

Page 13: PFE VHDL FPGA

Ch

apit

re 3

: P

RO

CES

SUS:

13

Figure 2 : les pièces pour triage et assemblage (rondelle et base)

Le tableau ci-dessous donne les tailles des pièces fournies

pièces (rondelle) hauteur (épaisseur)

standard, correcte 8mm

mauvaise hauteur 7mm et 9 mm

Figure 3 tailles accepté /non acceptés par la jauge de la hauteur

2.3.3 CONVOYEURS

Le système contienne deux convoyeurs utilisés pour le déplacement des pièces. Ces convoyeurs.

Contiennent des moteurs à courant continu Les, moteurs sont sous le contrôle de l'FPGA, via le circuit

d'interface.

Le convoyeur supérieur peut être considéré comme un convoyeur Signale avec ses différentes

opérations qui peuvent être explorées pour effectuer l'ensemble des taches de dimensionnement, la

détection matérielle, le tri des composants avant l’assemblage par le transporteur inférieur.

Le convoyeur supérieur dispose d'un réglage de contrôle de vitesse par un ajustement de RV1 situé

sur le coin en haut à gauche sur la carte de circuit imprimé. Cela est réglé en usine, mais elle peut

varier si l'alimentation principale en courant alternatif de l'unité différer de celle de l'usine

Figure 4 : convoyeur

2.3.4 DISTRIBUTEURS DES PIECES

les distributeurs de pièces utilisent des actionneurs électromagnétiques et ont été conçus pour gérer les

deux types de composants utilisés dans la tâche d'assemblage.

Page 14: PFE VHDL FPGA

Ch

apit

re 3

: P

RO

CES

SUS:

14

il y a deux distributeurs : un pour la partie "base", l'autre pour la "rondelle". Les distributeurs sont sous

le contrôle de l'FPGA, via le circuit d'interface

Figure 5 distributeur des pièces

2.3.5 CAPTEURS

Le Bank de trie a un certain nombre des détecteurs pour détecter des composants à différentes parties

du système. Ces capteurs sont Photo-réfléchissants de type infrarouge. Le statut de chaque -détecteur

est indiqué par une LED intégrée monté sur le PCB de ce détecteur .Il est également équipé d'un

dispositif inductif qui est utilisé en conjonction avec un photo-capteur pour fournir un détecteur simple

pour détecter la différence entre le plastique et les composants métalliques .

Figure 6 capteurs photo-électriques de position

2.3.6 JAUGE DE LA HAUTEUR

Ce bloc utilise un moteur à courant continu pour déplacer la jauge de mesure de la hauteur, des

photo-détecteurs qui peuvent être ajustés pour donner une sortie quand un composant de taille correct

est détecté. En vertu, les composants surdimensionnés sont rejetés. L’état des détecteurs montés sur les

jauges de taille ont surveillés par des LED monté sur les unités..

Page 15: PFE VHDL FPGA

Ch

apit

re 3

: P

RO

CES

SUS:

15

Figure 7 Jauge de mesure de la hauteur

2.3.7 MANIPULATEURS DES PIECES

Le manipulateur des pièces ou flippers ont pour fonction de déplacer les pièces d'un convoyeur à

l'autre, ou de sélectionner certaines pièces sur le même convoyeur Ils fonctionnent à forcer un

composant qui se déplace sur le convoyeur, soit à être éjecté ou stockés dans un endroit Particulier.

Figure 8 : manipulateur des pièces

3. Analyse fonctionnelle du system

3.1 Analyse fonctionnelle externe

3.1.1 FORMULATION DU BESOIN

Page 16: PFE VHDL FPGA

Ch

apit

re 3

: P

RO

CES

SUS:

16

Pour répondre au besoin éprouvé, il faut répondre à trois questions, celles-ci sont généralement

regroupées dans un graphique appelé familièrement « bête à corne » .

Figure 9 Diagramme « bête à corne » du Bank de trie des pièces

3.1.2 DIAGRAMME PIEUVRE

Elle consiste à déterminer les relations du système étudié avec les milieux extérieurs

autrement dit trouver les fonctions de service. Les fonctions de service sont visualisées dans

un graphe appelé diagramme Pieuvre

FC4

FC2

FC5

BANK DE TRIE

DE PIECES

Opérateur

Isolation

HACCP

FPGA

Pieces d’essai

Bac

Energie

pneumaque

FP FC3

FC1

Environment

Sur quoi le système agit-il ?

Les pieces “rondelles”

A qui le système étudié

rend service ?

utilisateur

Système étudié ?

Bank de trie des pièces

Dans quel but ?

Trier les pièces

Page 17: PFE VHDL FPGA

Ch

apit

re 3

: P

RO

CES

SUS:

17

Figure 10 : le diagramme Pieuvre de du Bank de trie

Caractérisation des fonctions de service :

FP1 : Trier les pièces « rondelles « selon leurs tailles et natures (métallique/plastique).

FC1 : s’adapter Communiquer et avec l’FPGA.

FC2 : être isolé électriquement.

FC3 : Ranger les pièces surdimensionnés.

FC4 : S’adapter à l’éclairage du laboratoire.

FC5 : Alimenter en énergie les composants électriques en toute sécurité.

3.2 Analyse fonctionnelle interne

L’analyse fonctionnelle interne s’inscrit dans le cadre d’une démarche visant à identifier le processus

du système. Dans cette optique, l’analyse fonctionnelle interne sera limitée à la fonction principale

FP1. Vue la complexité de FP1, il s’avère primordial de la découper en sous fonctions principales.

Figure 11 : sous fonctions de la fonction principale

3.2.1 DIAGRAMME FAST DE LA FONCTION PRINCIPALE

A ce stade, l’identification des fonctions techniques de chaque sous fonctions est nécessaire.

Ainsi, nous avons réalisé l’analyse FAST pour toutes les sous fonctions déterminées dans le

FP1 : Faire distribuer les pièces

FP : trier et assembler les pièces

FP3: mesurer les tailles des pièces

production

FP2 : faire déplacer les pièces

FP5 : sélectionner / rejecter les pieces

FP4 : détecter la nature (métallique/ plastique)

.

FP5 : assemblé et ranger

Page 18: PFE VHDL FPGA

Ch

apit

re 3

: P

RO

CES

SUS:

18

paragraphe précédent. Ces diagrammes FAST sont regroupés en annexe A. Nous présentons

comme exemple l’analyse FAST de la sous fonction FP2 et FP3.

Sous fonction Solution technique Solution technologique

Figure 12 : Analyse FAST de FC3 et FC4

3.3 Modélisation avancée

Après l’analyse fonctionnelle du système il fallait le modéliser, il s’agissait de la définition d’un

modèle fonctionnelle de système, dans cette approche on va introduire des nouveaux concepts comme

l’analyse SADT, la décomposition des taches, et la définition des chaines d’actions et d’information

3.3.1 IDENTIFICATION DE SYSTEME

C’est un système automatique dont la partie commande est l’FPGA et la partie processus est le Bank

de trie, les deux sont liée au moyenne de l’interface.

L’FPGA envoie des commandes vers la partie opérative en fonction d’un processus préétablie, puis la

partie opérative assure l’assemblage et le tri des pièces et envoie un compte rendue sur l’état à

l’FPGA.

3.3.2 DIAGRAMME SADT

Le diagramme SADT représente le système comme une boite fermé, ayons pour entres la matière

première, les ordres de réglage, l’énergie..., et comme sortie le produit finale

Faire déplacer

les pièces

Créer un

mouvement

Transmettre

le mouvement

Mesurer la

taille

Déplacer la jauge de la

hauteur

Détecter la taille

Détecter la position

maximale de la jauge

Détecter la position finale

de la jauge

Moteur cc

Photo-détecteur de position

Photo-détecteur de position

Photo-détecteur de position

Mouteur CC

Conoyeur

Page 19: PFE VHDL FPGA

Ch

apit

re 3

: P

RO

CES

SUS:

19

Figure 13: le modèle SADT du système de trie des pièces

3.3.3 TACHES ET SOUS-ENSEMBLES FONCTIONNELLE

D’après l’analyse de système on distingue deux principales sous ensemble fonctionnelles

Sous ensemble de détection (phase du premier convoyeur)

Ce sous ensemble regroupe les taches de mesure de la hauteur, l’identification des nature des

pièces et de sélection des chutes .il correspond au premier cycle.

Sous ensemble d’assemblage (phase de deuxième convoyeur)

Le sous ensemble d’assemblage correspond au cycle du deuxième convoyeur et regroupe les

taches d’assemblage et de déclassement.

Ses taches fonctionnelles seront décrites dans la partie décrivant le processus de fonctionnement

3.3.4 CHAINES D’INFORMATION

C’est la partie du système qui capte l'information et qui la traite. On peut découper cette chaîne en

trois blocs fonctionnels : acquérir, traiter et communiquer

Trier selon les tailles et la

nature

énergie capteurs

Arret/ marche

Déscription VHDL

Système de trie des pièces

Rondelles métalique et

plastique de diffirentes

tailles +

Bases des pièces

Pièces triée et

assembler

+piéces non

conforme

Page 20: PFE VHDL FPGA

Ch

apit

re 3

: P

RO

CES

SUS:

20

Figure 14 : chaine d’information du système de trie des pièces

3.3.5 CHAINES D’ENERGIE

C’est L’ensemble des procédés qui vont réaliser une action

Figure 15 : chaine d’énergie du système de trie des pièces

1. fonctionnement du Processus

1.1 Mesure de la hauteur

La séquence d'opérations qui peuvent être exécutées par le système sont les suivante :

Premièrement la bande transporteuse est démarrée.

Suivant, le composant rondelle est distribué sur le convoyeur par l'actionnement du solénoïde

premier distributeur

la rondelle se déplace ensuite à une courte distance le long de la courroie jusqu'à ce que sa

présence est détectée par le premier capteur optique.

après une période de temps le convoyeur est arrêté avec la rondelle sous la jauge du hauteur.

la jauge de hauteur détermine maintenant si la rondelle est dans la hauteur prescrite (épaisseur)

des limites.

le convoyeur est redémarré, ce qui provoque le déplacement la rondelle

Acquérir Traiter Communiquer Présence

d’une pièce

Ordres au :

convoyeurs

flippers,

distributeurs …

Carte

d’interface

FPGA

Détecteur photo-électrique

Capteur inductif

Moteur CC

Transistors

+relais

Prise secteur +

interface 220 AC -> 24 DC

Alimenter Distribuer Convertir Alimentation

220v

Ordres au :

convoyeurs

flippers,

distributeurs

Convertir

Bande

transporteuse +

roues tournantes

Page 21: PFE VHDL FPGA

Ch

apit

re 3

: P

RO

CES

SUS:

21

4. 3 Détection de la nature des pièces

Le processus se poursuit maintenant vers le détecteur inductif. L’objective de ce capteur consiste à

déterminer si la rondelle est en métal ou en plastique. le processus se poursuit comme suit:

la présence d'une pièce devant le détecteur inductif est déterminée par le second capteur

optique. lorsque cela se produit le convoyeur est arrêté.

le capteur inductif est activé afin de déterminer si la pièce est en métal ou en plastique

le convoyeur est redémarré et la pièce se déplace

4.4 Sélection et chutes

Après le détecteur inductif il y a deux chemins. L’un des pièces qui ont été déterminé métallique,

l'autre si la pièce était déterminée plastique. Toutefois, cela ne devrait se produire que si la pièce a

passé le premier test du hauteur.si la rondelle a échoué à l'initiale essai de hauteur, aucun flipper ne

devrais fonctionner, et la pièce continue à la fin de convoyeur et ranger dans le bac extrémité.

Lorsque l'un des flippers est commandé la pièce est forcée hors du convoyeur à la goulotte du chut est

maintenu prêt pour la phase d'assemblage du processus.

4.5 Phase de trie

Il utilise le convoyeur inférieur du Bank, Le processus se poursuit comme suit :

Premièrement, la bande transporteuse inférieure est démarrée.

lorsqu'une rondelle est disposée le composant de base est distribué sur le convoyeur par

l'actionnement du solénoïde second distributeur.

la partie de base se déplace le long du convoyeur, ramasse la rondelle disponible, qui est

ensuite assemblé sur la base.

les mouvements de montage résultant vers l'extrémité du convoyeur, lorsque le dernier opto-

détecteur détermine les sorties du guide d’assemblage un pour les pièces métalliques, l'autre

pour les plastiques.

4.6 Arrêter le système

à tout moment pendant le fonctionnement du système Lorsque le bouton "stop" du PCB

est utilisé, il devrait immédiatement arrêter le système l de telle sorte que pousser le vert

bouton "START" débutera le processus une fois de plus.

Pour ce faire, les étapes suivantes doivent être effectuées:

Arrêtez les convoyeurs du haut et du bas

Arrêtez le moteur en hauteur

Réinitialiser le distributeur des pièces

Réinitialiser les flippers

Page 22: PFE VHDL FPGA

Ch

apit

re 3

: P

RO

CES

SUS:

22

4.7 Graphe d’états du système

Le graphe d’états du système regroupe les différentes états que le processus va atteindre en fonction des variables d’entrées du système et du temps , ce graphe sera utilisée autrement pour développer la description VHDL du processus . Voir l’annexe A

5 Conclusion

Apres l’analyse complète de ce système on a arrivé à le modéliser, et à construire une idée claire sur

les étapes de son cycle fonctionnement.,

Page 23: PFE VHDL FPGA

Ch

apit

re 3

: V

HD

L

23

2. DÉFINITION Le VHIC Hardware Description Langage (VHIC = Very High Speed Integrated Circuit) :

est un langage de description destiné à représenter le comportement et l’architecture de circuits numér

1. INTRODUCTION

Lorsqu’ un circuit est disponible, il passe du monde des concepteurs de circuits

intégrés (concevaient les puces qui seraient intégrées sur des cartes) à celui des

concepteurs d’applications (étudier l’architecture de ses puces). La culture de ces

derniers n’a jamais vraiment englobé la simulation, mais plutôt poussé très loin

l’expérimentation : prendre des composants, composer une maquette, la tester,

l’adapter, la tester à nouveau, etc.

L’arrivée de VHDL va révolutionner ce secteur. Les descriptions VHDL des

composants d’une carte permettent de faire une simulation complète de

l’application à un niveau d’abstraction élevé. Et surtout, elles permettent de le

faire même si tous les boitiers n’existent pas (encore).

Page 24: PFE VHDL FPGA

Ch

apit

re 3

: V

HD

L: P

rin

cip

es g

énér

aux

24

iques. Une spécification décrite en VHDL peut être simulée ou synthétisée sur un circuit programma

ble. Un langage de description, contrairement à un langage de programmation informatique, sert à dé

crire du matériel avec pour objectifs : la spécification, la modélisation, la simulation et la documentati

on.

Figure 1 : vue physique du VHDL

3. VHDL: PRINCIPES GENERAUX

3.1 Description descendante « TOP DOWN DESIGN »

Une application un tant soit peu complexe est découpée en sous-ensembles qui échangent des

informations suivant un protocole bien défini. Chaque sous-ensemble est, à son tour, subdivisé, et ainsi

de suite jusqu’aux opérateurs élémentaires.

Un système est construit comme une hiérarchie d’objets. Les détails de réalisation se précisant au fur

et à mesure que l’on descend dans cette hiérarchie.

3.2 L’extérieur de la boite noire une « ENTITE » :

Une fonction logique est vue,, comme un assemblage de « boites noires », dont, syntaxiquement

parlant, seules les modes d’accès sont nécessaires à l’utilisateur. La construction qui décrit l’extérieur

d’une fonction est l’entité (entity). La déclaration correspondante lui donne un nom et précise la liste

des signaux d’entrée et de sortie :

Circuit

entré 1 sortie 1

entré 2 sortie 2

entré 3 sortie 3

entré N sortie N

Page 25: PFE VHDL FPGA

Ch

apit

re 3

: El

émen

ts d

e V

HD

L :

25

Figure 2 : schéma représentent une entité

3.3 Le fonctionnement interne une « ARCHITECTURE » :

L’architecture décrit le fonctionnement interne d’un circuit auquel est attachée une entité. Ce

fonctionnement peut être décrit de différentes façons :

Description comportementale

Description par un flot de données :

Description structurelle :

3.4 Algorithmes séquentiels décrivant un câblage parallèle les «PROCESSUS »

Un processus est une instruction concurrente qui définit un comportement qui doit avoir lieu quand ce

processus devient actif. Le comportement est spécifié par une suite d’instructions séquentielles

exécutées dans le processus.

Syntaxe générale :

3.5 Programmation modulaire

« Small is beautyfull », un gros programme ne peut être écrit, compris, testable et testé que s’il est

subdivisé en petits modules que l’on met au point indépendamment les uns des autres et rassemblés

ensuite. VHDL offre, bien évidement cette possibilité

4. ELÉMENTS DE VHDL :

4.1 signaux, variables et constants :

Signaux : les signaux représentent les données physiques entre blocs logiques d’un

circuit. chacun d’entre eux sera matérialisé dans le schéma final par une séquentielle

Page 26: PFE VHDL FPGA

Ch

apit

re 3

: P

arti

e m

ater

iel

26

Variables : les variables sont des objets qui servent à stocker un résultat

intermédiaire pour facilité la construction d’un algorithme séquentiel.

Constantes : les constantes sont des objets dont la valeur est fixée une fois pour toute.

4.2 Types adaptés à l’électronique numérique :

Les entiers : VHDL manipule des valeurs entières qui correspondent à des mots de

32bits.

Les bits : un objet de type bit peut prendre deux valeurs : “0“ et “1“.

Les booléens : le types booléen peut prendre deux valeurs : “vrai “ et “faux“.

Les tableaux : à partir de chaque type de base on peut créer des tableaux, collection

d’objets du même type.

4.3 Fonctions :

Une fonctions retourne au programme appelant une valeur unique, elle a donc un type . elle peut

recevoir des arguments, exclusivement des signaux ou des constantes, dont les valeurs lui sont

transmises lors de l’appel. Une fonction ne peut en aucun cas modifier les valeurs de ses arguments

d’appel.

4.4 Les librairies :

Une librairie est une collection de modules VHDL qui ont déjà été compilés. Ces modules peuvent

être, des entités ou des architectures.

5 CONCLUSION

L’utilisation du langage VHDL dans notre projet nous a permis de découvrir sa puissance et ses larges

utilisations, on notera qu’on a utilisé que des principes de base pendant la conception de notre code

1. PARTIE MATERIEL

1.2 Problématique

Page 27: PFE VHDL FPGA

Ch

apit

re 3

: P

arti

e m

ater

iel

27

L’interface I/O de l’FPGA est normalisée pour fonctionner aux niveaux de tension de la technologie

TTL (0 v-5v), mais la carte d’interface du processus est n’est pas adapter a fonctionner aux même

conditions. Le bank étant désigné pour être commander avec un automate (0v 24v) D’où la nécessité

d’adapter cette différence entre les deux côtés : commande et (FPGA) et l’interface du

processus(PCB).

Figure 1 : schéma décrivent le problème du liaison

1.3 Solution

Afin d’isoler la carte FPGA du Bank de trie et d’adapter leurs niveau de tension, on a proposé de

réaliser une carte électronique a base des photo-coupeurs et des transistors, ces derniers jouent le rôle

d’adaptation, les photo-coupleurs vont s’engager à l’isolation du système .cette carte devait isoler et

adapter en tension la différente les pins du (PCB) et ceux de la FPGA.

Figure 2: schéma décrivent le fonctionnement de la carte d’adaptation

1.4 Etude théorique

A l’état bas :

FPGA

Carte

d’interface et

d’isolation

PCB du Bank

de trie

3 ,3V 24 V

3 ,3V 24 V

FPGA

Carte

d’interface et

d’isolation

Page 28: PFE VHDL FPGA

Ch

apit

re 3

: P

arti

e m

ater

iel

28

La sortie de la FPGA est à 0 V donc aucun courant ne travers la LED du photo-coupleur, alors

son le transistor est bloqué et par conséquence il donne un courant nulle à sa sortie qui ne

peut pas saturer le transistor de la commande donc à l’entrée du processus on a :

IE= 0 A VE=0 v.

A l’état haut :

La sortie de la FPGA est à 3.3 V donc un courant de

travers la LED du photo-

coupleur, alors son le transistor sera saturé et par conséquence il donne un courant à sa

sortie qui va saturer le transistor de la commande qui va a son tour d’attaque l’entrée du

processus , l’émetteur de ce dernier est relié à une alimentation de 24 v. et son collecteur est

relié a la masse par une résistance pour assurer sa saturation et d’éviter un court-circuit

Donc a l’entrée du processus IE=11,2 A (mesuré avec un ampèremètre) et VE=24 v.

D’après le document du fabriquant le courant maximal qui peut supporter la LED est de

IF=27mA donc pour ne pas le dépasser on a branché avec une résistance de 217 ohm.

1.5 Conception sur ordinateur

1.5.1 PRÉSENTATION DU LOGICIELLE ISIS

L’ISIS est un logiciel professionnel, utilisé dans l'électronique pour simuler des circuits et créer des

typons. Il est également capable de simuler le fonctionnement du PIC avec tous les périphériques de la

carte de commande.

L’utilisation du logiciel « ISIS » permet de mieux visualiser le bon déroulement du système ainsi que

d’avoir une idée claire sur la partie matérielle et la conception des circuits imprimés.

Il nous permet de limiter les essais réels.

1.5.2 SCHEMA ISIS DE CIRCUIT

Sortie FPGA Entrée processus

Sortie processus Entrée FPGA

Page 29: PFE VHDL FPGA

Ch

apit

re 3

: P

arti

e m

ater

iel

29

Figure3 : schéma ISIS du circuit d’ataptation

1.5.1 GÉNERALISATION DE CIRCUIT

Cette schéma est réalisé pour adapter et isoler un seul pin, pour adapter tous les entrées/sorties il faut

réutiliser au nombre de ces entrée sortie

1.6 Routage

i. PRESENTATION ARES

C’est un logiciel permettant le routage des cartes électroniques en mode automatique ou manuel. Il est

possible d’utiliser ARES sans avoir créé au préalable un schéma dans ISIS.

Cette fonctionnalité permet de réaliser des circuits de faible complexité en plaçant les composants et

en traçant les pistes directement sur ARES. Une fois les connections établies, il est possible

d’effectuer un routage automatique des pistes.

i. TYPON DE LA CARTE

Figure 4: typon ARES de la carte d‘adaptation et d’isolation

Page 30: PFE VHDL FPGA

Ch

apit

re 3

: P

arti

e m

ater

iel

30

Composantes de la cartes

22 Résistance 3.3K ,22 résistance 216 ohm

4 photo-coupleurs TLP521 16 branches,

1 photo-coupleurs TLP521 8 branches

connecteur DB 25 ,1 connecteur 40

22 transistors 2N 1893

1.7 Mode opératoire

Après la conception sur l’ordinateur on passe à la réalisation de la carte, cela passe par les étapes

suivantes :

Insolation:

On découpe la plaque à la taille du typon en laissant une marge de 1 cm au moins.

On Positionne le typon dans le bon sens sur la vitre de l'insoleuse.

On Retire la pellicule protectrice de la plaque

On Pose cette plaque avec le coté vert sur le typon dans l'insoleuse et on ferme le

capot.

Figure 5 : la machine d’insolation

REVELATION

On verse le révélateur dans une cuvette en plastique.

On plonger la plaque qui vient d'être insolé.

On Rince soigneusement la plaque sous le robinet en frottant avec les doigts jusqu'à ce

qu'elle ne soit plus 'grasse' au toucher.

Page 31: PFE VHDL FPGA

Ch

apit

re 3

: P

arti

e m

ater

iel

31

Figure 6 : insolation de la carte

GRAVURE

On utilise règle la vitesse a 5 on lance le bouton marche du convoyeur de la

graveuse.

Lorsque tout le cuivre à disparu, on sorte le circuit et on le rince le sous l'eau.

On Frotte les pistes avec de l'acétone ou de l'alcool à brûler pour retirer la

résine et ainsi apparaît les pistes de cuivres.

Figure 7: la machine de gravure

Figure 7 : gravure de la carte

Page 32: PFE VHDL FPGA

Ch

apit

re 3

: C

on

cep

tio

n d

u c

od

e V

HD

L e

t P

rogr

amm

atio

n d

e la

FP

GA

32

Après on passe au PERÇAGE et au Soudage

b. Conclusion

Nous avons étudié la conception détaillée de notre carte avec la bonne solution qui répond à la

spécification de notre étude théorique, nous passons maintenant à la conception du programme

2 Conception du code VHDL et Programmation de la FPGA

a. Introduction

La réalisation de la commande était le but principal de notre projet, avant que le problème d’adaptation

qui apparait pendant l’analyse du système, dans cette partie on va citer les étapes principales de la

conception de la commande.

L'écriture du programme ainsi que sa mise au point doivent suivre le diagramme suivant :

Assemblage ou

synthétisation

Simulation

Programmation

Essai

Saisie du programme en langage VHDL

Traduction du langage VHDL (entité / architectures) en circuit

numérique et définition des interconnections

Vérification du fonctionnement du programme avec :

- soit un logiciel simulant l’FPGA (ex MODELSIM)

- soit par la carte de développement

- soit une carte électronique, connectée à un PC et pilotée par

un logiciel, fonctionnant comme le microcontrôleur Enregistrement de l’architecture sur la mémoire EEPROM en

mode AS ou programmation direct en mode JTAG .

Vérification réelle du fonctionnement

Edition

Page 33: PFE VHDL FPGA

Ch

apit

re 3

: C

on

cep

tio

n d

u c

od

e V

HD

L e

t P

rogr

amm

atio

n d

e la

FP

GA

33

Page 34: PFE VHDL FPGA

Ch

apit

re 3

: C

on

cep

tio

n d

u c

od

e V

HD

L e

t P

rogr

amm

atio

n d

e la

FP

GA

34

b) Graphe d’états du banc de trie

Trié métal

Trié plastique

Arrêt

Initialisation

Détection de

la nature

Mesure de la

hauteur

Rejection

Assemblage

Stop start

htdc htdc

hbdc

hbdc

hgth

hbdc

hgth

ind

ind

Chut1

Chut2

T<6s

T>6s

Opt6

Opt5

T<3s

Page 35: PFE VHDL FPGA

Ch

apit

re 1

: Co

nce

pti

on

du

co

de

VH

DL

et

Pro

gram

mat

ion

de

la F

PG

A

35

1.5 Description VHDL

On a implémenté la description VHDL issu du graphe d’état, on a aussi essayé de commenter ce code de

façon pour qu’il soit suffisamment lisible. Le code est décrit dans l’ANNEXE 4.

1.6 Simulation

1.6.1 PRESENTATION DU LOGICIEL MODELSIM

Modelsim est un logiciel de simulation dédiée à la conception de FPGA. Il permet la simulation

temporelle au niveau RT (transfert de registre) ou au niveau porte, à partir des langages VHDL

1.6.2 SIMULATION ET VERIFICATION

Les étapes qu’on a suivi pour la simulation notre code sont les suivantes :

Création des fichiers

Il contienne deux fichiers un fichier code « workcell_system « qui sera utiliser pour programmer

la FPGA, le deuxième est un test-bench qui sera utiliser pour la vérification du code

Compilation

On a effectué sur toutes les unités de compilation (entité, architecture) et sur tous

les composants du modèle (description-test bench).

Lancement de la simulation Après le lancement simulation on a obtenu le chronogramme suivant :

Voir ANNEXE 2

Page 36: PFE VHDL FPGA

Ch

apit

re 1

: Co

nce

pti

on

du

co

de

VH

DL

et

Pro

gram

mat

ion

de

la F

PG

A

36

1.7 PROGRAMMATION

1.7.1 ENVIRONNEMENT DE DEVELOPPEMENT QUARTUS

Quartus est un environnement de développement et de conception des FPGA altera, il contienne a la fois

l’editeur de code ,le compilateur ,le simulateur et le programateur .Par utilisation de Quartus il est

possible de reprogrammer la FPGA a n'importe qu’il temps , et il est également possible de modifier

les données non-volatiles stockées dans le puce EEPROM

1.7.2 ETAPES DE PROGRAMMATION :

Pour configurer la FPGA on a suivis les étapes suivantes :

1. On a Créé un projet sous Quartus avec

L’assistant de création de projet

2. on Crée les fichiers décrivant le

projet

3. on a Choisis le dispositif FPGA

« EP2C20F484C7»

et le mode de programmation JTAG

Page 37: PFE VHDL FPGA

Ch

apit

re 1

: Co

nce

pti

on

du

co

de

VH

DL

et

Pro

gram

mat

ion

de

la F

PG

A

37

4. On choisit l’assignement des pins

5. On Compile le programme Programmer à l’aide du programmateur

1.5 Conclusion

La réalisation de la commande, la partie la plus importante de notre projet a été archivée, pendant cette

partie, on a utilisé une diversité de matériels et logiciels que nous ont été utile pour notre projet ainsi que

pour l’approfondissement de nos connaissances.

Page 38: PFE VHDL FPGA

Ch

apit

re 1

: Co

nce

pti

on

du

co

de

VH

DL

et

Pro

gram

mat

ion

de

la F

PG

A

38