0% ont trouvé ce document utile (0 vote)
41 vues6 pages

Etude 1:: Conception D'un Premier Circuit Logique À L'aide Du Logiciel Ise Et Son Implémentation Sur Fpga

Cette étude explore la conception et l'implémentation d'un circuit logique sur FPGA en utilisant le logiciel ISE de Xilinx, en abordant à la fois une approche schématique et une approche VHDL. Les résultats des simulations et des tests montrent que les deux méthodes produisent des résultats cohérents, bien que chaque approche ait ses avantages et inconvénients selon la complexité du circuit. La conclusion souligne l'importance de choisir la méthode de conception appropriée en fonction des besoins spécifiques du projet.

Transféré par

Vera Legba-Mony
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
41 vues6 pages

Etude 1:: Conception D'un Premier Circuit Logique À L'aide Du Logiciel Ise Et Son Implémentation Sur Fpga

Cette étude explore la conception et l'implémentation d'un circuit logique sur FPGA en utilisant le logiciel ISE de Xilinx, en abordant à la fois une approche schématique et une approche VHDL. Les résultats des simulations et des tests montrent que les deux méthodes produisent des résultats cohérents, bien que chaque approche ait ses avantages et inconvénients selon la complexité du circuit. La conclusion souligne l'importance de choisir la méthode de conception appropriée en fonction des besoins spécifiques du projet.

Transféré par

Vera Legba-Mony
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Nom : Addine Lina et Djae Khadidja 4A-GBM

ETUDE 1 :
Conception d’un premier circuit logique à l'aide du logiciel ise et son implémentation sur
FPGA

L’objectif de cette première étude est de se familiariser avec le logiciel ISE de Xilinx. Il s'agit de
réaliser un circuit numérique conçu pendant la préparation du TP sous forme de circuit logique
(approche schématique) et de code VHDL (approche conception par langage), de le simuler, de le
compiler, de le synthétiser, puis de l’implémenter.

Partie 1 :
CONCEPTION D’UN CIRCUIT SUR FPGA À PARTIR D’UNE DESCRIPTION
SCHÉMATIQUE

Après avoir créer nos sources : “toplevel.shc” et “aiguillage.sch” de type Schematic (=shc) nous avons
représenté le circuit de la préparation de TP dans la fenêtre “aiguillage.sch” :

[Figure 1] - Circuit logique d’un sélecteur

Pour plus de lisibilité nous avons rajouté des labels pour définir les entrées et sorties du circuit.
Contrairement à la prépa de TP, nous avons choisi une porte NAND avec un inverseur dans une de ses
entrées pour réduire le nombre de portes.

Afin de tester notre circuit, nous sommes passés en mode simulation.


Après avoir effectué plusieurs test nous avons déduit que :

Type d’état Couleurs du signal

Haute impédance ‘Z’ Bleu

Variable connu lors de l'exécution du programme (0 ou 1) Vert

Indique des erreurs ou des problèmes de conception. Niveau Rouge


inconnu, forçage fort ‘X’

Entrées/ Sorties de type U : undefined. La simulation est lancée sans Orange


connaître l'évolution des états.

1
Nous voyons d’autres signaux que ceux que nous avons fait apparaître nous même dans le circuit.
Comme “xlxn_1” et “xlxn_3”, ce sont des signaux internes de notre schéma qui apparaissent au
niveau des NET.

Pour s’assurer du bon fonctionnement nous avons testé manuellement toutes les combinaisons des
entrées a,b et sel. Il existe deux moyens :
- Tester les combinaison une par une : clic droit - > Force constante -> choisir la valeur de la
constante 1 ou 0
- Tester toutes les combinaisons : clic droit - > Force clock -> ou nous définissons un signal qui
correspond à un signal d’horloge pour les entrées. Ou les valeurs 0 et 1 se succèdent avec une
période imposée.

[Figure 2]: Simulation du circuit logique “aiguillage.shc”. Test de toutes les combinaisons.

Nous comparons le chronogramme avec la table de vérité ci-dessous établie lors de la préparation de
TP.
Nous avons bien lorsque sel = 0 la sortie S
copie la valeur a et lorsque sel = 1 la sortie S
Sel I S
copie la valeur de b conformément à
0 a 𝑠𝑒𝑙 a l’équation S = 𝑠𝑒𝑙 a + sel b .
1 b sel b

Pour cet exemple, la simulation manuelle n'est pas compliquée. Cependant, dans le cas d'un circuit
plus complexe, il devient plus difficile de vérifier le bon fonctionnement de notre circuit.
Un autre moyen de tester le bon fonctionnement du circuit est le TestBench, c’est un code VHDL
destiné à la vérification, par simulation, du fonctionnement système, lui-même décrit en VHDL

Nous avons créer une nouvelle source de type VHDL test bench nommé “test_aiguillage.vhd”
Le fichier contient du code VHDL complétée automatiquement par le logiciel. La première étape est
de comprendre le code généré.

Nous analysons la structure du code VHDL (nous avons cherché à comprendre en détail, de ce fait à
gauche de chaque section du code se trouve une boîte de simulation du testbench) :
❖ L’ajout des librairies dans le code VHDL permet d'accéder à des descriptions et des
fonctionnalités supplémentaires définies dans ces bibliothèques ("packages").
❖ L’entité déclaration de l'entité du test bench. L’entité est dénuée d’entrées/sorties (pour le
moment vide).

2
❖ L’architecture déclaration de l'architecture du test bench
➢ Déclaration du composant du système à tester (UUT : Unit Under Test). Nous faisons
référence au composant dont nous avons besoin avec ses entrées et sorties ici
“aiguillage".

➢ Déclaration des signaux internes à l’intérieur de la structure de test (entrées et sorties


de l’UUT) pour pouvoir fixer les stimuli d’entrée, en utilisant les mêmes noms que
dans component (cf. aiguillage_aiguillage_sch_tb).

➢ Instruction d'instance de l’UUT. Dans notre architecture de test on ajoute l'élément à


tester (aiguillage UUT), qu’on relie aux signaux internes les entrées/sorties de
l’architecture de test. (port MAP)

➢ Instructions de génération de stimuli (entrées de l’UUT)

3
Cette partie est complétée par l’utilisateur afin de spécifier les tests à effectuer. Nous
avons reproduits combinaisons testé manuellement en début de TP.

tb : PROCESS
BEGIN
-- test 1 : sel = 0 , a = 0 , b = 1

wait for 500 ns ; -- will wait forever


IN_sel <= '0' ;
IN_a <= '0' ;
IN_b <= '1' ;

-- test 2 : sel = 1 , a = 0 , b = 1
wait for 1 us ;
IN_sel <= '1' ;

-- test 3 : sel = 1 , a = 1 , b = 0

wait for 1 us ;
IN_a <= '1' ;
IN_b <= '0' ;

-- test 4 : sel = 1 , a = 1 , b = 0
wait for 1 us ;
IN_sel <= '0' ;

wait;

END PROCESS;
-- *** End Test Bench - User Defined Section ***

Nous obtenons le même chronogramme que précédemment. Notre sortie est en adéquation avec les
entrées, notre Test bench est validé.

[Figure 3] : Simulation du Test bench aiguillage (approche description schématique)

Nous avons terminé la phase de simulation comportementale est terminée nous pouvons donc entamer
la partie implémentation.

Les étapes à suivre pour implémenter sont :


❖ Création d’un Symbole de Composant et l’ajouter dans le fichier toplevel. Pour chaque
entrée/sortie il faut placer des étiquettes (I/O Markers).

4
[Figure 4] : Symbole du composant aiguillage

Modifiez le fichier .ucf pour ne conserver que les trois interrupteurs et la LED. Les noms des
étiquettes doivent correspondre aux noms utilisés (SW1, SW2, SW3, LED) pour le
composant.
❖ Synthèse :
Les options par défaut sont : speed, optimization effort
La description de RTL ?
La description technologique

[Figure 5] : Description technologique toplevel


On retrouve notre circuit logique avec ces entrées et sorties, les connexions entre les portes
logiques et avec les switchs ON/OFF.
❖ Implémentation Translate - Map - Routage
❖ View Design Summary : Permets d’avoir un rapport complet des différentes étapes de
conception au fur et à mesure de l’avancement du projet. Nous avons accès à plusieurs
informations tels que les messages d’erreur et “warning”, les rapport détaillés de chaque étape
de conception.
Nous avons par la suite charger le code produit (fichier binaire) sur la carte connectée et allumée et
tester le bon fonctionnement du composant en vérifiant l’adéquation entre les entrées/sorties

L’avantage de la description schématique est qu’elle est intuitive, car nous sommes plus à l’aise avec
les symboles logiques (nous avons plus d’expérience). Les symboles sont déjà codés ; une fois le
schéma terminé, le code est généré. Il ne reste plus qu’à effectuer le banc d’essai pour vérifier.

5
Cependant, avoir le code généré n'est pas forcément avantageux, car si quelque chose ne fonctionne
pas, il faut analyser et comprendre le code, ce qui peut être gênant lorsqu'il ne s'agit pas du nôtre.
Écrire notre propre description VHDL permettrait sûrement d'être plus précis dans la description du
fonctionnement.

Partie 2 :
CONCEPTION D’UN CIRCUIT SUR FPGA À PARTIR D’UNE DESCRIPTION VHDL

Pour cette partie nous avons répété les mêmes étapes que précédemment mais cette fois si en partant
de la description VHDL de la prépa de TP.

Nous avons obtenu le chronogramme suivant (Testbench)

[Figure 6] Chronogramme testbench aiguillage (approche description vhdl)

Nous comparons les deux chronogrammes pour vérifier si le fonctionnement décrit est le même et
nous trouvons bien les valeurs de s comme décrit précédemment. Lors de l’implémentation sur la
carte.

L’avantage de la description par langage HDL est qu’elle est très flexible, car elle permet de coder des
comportements complexes (en décrivant précisément le fonctionnement du circuit). Cependant, bien
qu’elle ait des avantages pour les débutants, cette approche peut parfois être plus difficile à adopter.

Conclusion :

Ce TP nous a permis de nous familiariser avec le logiciel ISE de Xilinx et d'explorer deux approches
de conception de circuits logiques sur FPGA : l'approche schématique et l'approche par langage HDL.
Nous avons vu que chaque méthode présente des avantages et des inconvénients. Le plus important
est de choisir la méthode la plus adaptée en fonction de la complexité du circuit et des besoins
spécifiques du projet. En effet, les circuits peut complexes peuvent utiliser l’approche schématique à
l'inverse des plus complexes ou il est plus judicieux de se pencher vers une approche algorithmique.
Dans le cadre de ce TP, le sélecteur est assez simple, donc les résultats obtenus sont les mêmes.
Cependant, nous anticipons que la conception d'un diviseur de fréquence lors du prochain TP sera
bien plus complexe à réaliser avec une description schématique.

Vous aimerez peut-être aussi