Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Initiation au
Quartus 2 (Projet
de conception
schmatique)
Exercice 1 :
2_lquation de la sortie :
X = [(a.b)+(c.d)]+e+f
Nombre de CLB= 7
= a.b(d+/d)+d/c
=ab+/c.d
Exercice 2:
Sorties : X =a.b+/a.c+b.c
Y=(a+b+c).(a+/b+c).(/c+d).(a+d)
1_Ralisation le circuit du montage
a b c d X Y
0 0 0 0 0 0
0 0 0 1 0 0
0 0 1 0 1 0
0 0 1 1 1 1
0 1 0 0 0 0
0 1 0 1 0 0
0 1 1 0 1 0
0 1 1 1 1 1
1 0 0 0 0 1
1 0 0 1 0 1
1 0 1 0 0 0
1 0 1 1 0 1
1 1 0 0 1 1
1 1 0 1 1 1
1 1 1 0 1 0
1 1 1 1 1 1
TP 2: Les circuits
Logique
combinatoire
(Description
Schmatique)
Exercice 1:
2_codage:
3-circuit du montage:
Exercice 2:
*Demi-Additionneur:
A Hadder d
B C
1_table de vrit:
3_circuit du montage:
*Additionneur 1 Bit:
1_table de vrit:
s= CoutAB+CoutAB+CoutAB+CoutAB=AB+Cout (A+B)
3_circuit du montage:
*Additionneur 4 Bits:
A R
Adder 4
B Cout
1_circuit du montage:
TP 3: Les circuits
Logique
combinatoire
(Description
VHDL)
Exercice 1:
1_code en vhdl :
Dclaration des
Bibliothques:
library ieee;
use ieee.std_logic_1164.all;
Dclaration de l'entit:
Entity Trans is
END Trans ;
begin
"1001111" ;
END transcodeur ;
Exercice 2:
1_Multiplexeur2vers1:
Cs A B Sel S
1 X X X X
0 0 X 0 0
0 1 X 0 1
0 X 0 1 0
0 X 1 1 1
library ieee;
use ieee.std_logic_1164.all;
Dclaration de l'entit:
entity mux is
port (a ,b ,sel :in std_logic ; s : out std_logic )
end mux ;
begin
b when others ;
end archmux ;
2_ Multiplexeur4vers1
Cs A B C D Sel S
1 X X X X X X
0 0 X X X 00 0
0 1 X X X 00 1
0 X 0 X X 01 0
0 X 1 X X 01 1
0 X X 0 X 10 0
0 X X 1 X 10 1
0 X X X 0 11 0
0 X X X 1 11 1
table de vrit de circuit
use ieee.std_logic_1164.all;
Dclaration de l'entit:
entity muxx is
s : out std_logic );
end muxx ;
begin
b when "01",
c when "10",
d when others ;
end archmuxx ;
Exercice 3:
1_comparateur 1 bit:
library ieee;
use ieee.std_logic_1164.all;
Dclaration de l'entit:
entity comp is
end comp ;
begin
end arch_comp;
2_ comparateur 4 Bits:
library ieee;
use ieee.std_logic_1164.all;
Dclaration de l'entit:
entity compa is
begin
end arch_compa;
TP 4: Les circuits
Logique
combinatoire(Description
VHDL)
Exercice 1:
1.1Bascule D:
D Q
DFF
CLK Qb
Rle :
Cest une bascule D synchronise sur le front montant. La caractristique de cette bascule rside dans
le fait quelle ne charge et ne conserve que la valeur d prsente au moment de lactivation du signal
de synchronisation.
Entres:
CLK | Horloge de synchronisation (sur le front montant).
D | Entre de donne sur 1 bit
Sorties :
library ieee ;
use ieee.std_logic_1164.all;
entity bd is
port(d,h:in std_logic;
q,qb:out std_logic);
end bd;
Dclaration de larchitecture :
architecture basculeD of bd is
signal x:std_logic;
begin
process(h)
begin
x<=d;
else x<=x;
end if;
end process;
q<=x;
qb<=not x;
end basculeD;
D Q
DFF-R
CLK Qb
RA
Rle :
Cest une bascule D synchronise sur le front montant avec deux entres de forage 1et 0.
Entres:
CLK | Horloge de synchronisation (sur le front montant).
D | Entre de donne sur 1 bit
RA0 | Entre de forage un active au niveau bas(Q=1 si RA1=0)
RA1 | Entre de forage zro active au niveau bas(Q=1 si RA1=0)
Sorties :
library ieee ;
use ieee.std_logic_1164.all;
entity bdf is
port(d,h,ra0,ra1:in std_logic;
q,qb:out std_logic);
end bdf;
Dclaration de larchitecture :
signal x:std_logic;
begin
process(h,ra0,ra1)
begin
x<=d;
else x<=x;
end if;
end if;
end process;
q<=x;
qb<=not x;
end basculeD;
1.3Bascule JK:
k Q
JKFF
CLK Qb
Rle :
Cest une bascule JK synchronise sur le front montant
Entres:
CLK | Horloge de synchronisation (sur le front montant).
J,K | Entre de bascule chacune sur 1 bit
Sorties :
CLK J K Qt+1
1 0 0
1 0 1
1 1 0
1 1 1
library ieee ;
use ieee.std_logic_1164.all;
Dclaration des de lentit:
entity bdj is
port(j,k,h:in std_logic;
q,qb:out std_logic);
end bdj;
Dclaration de larchitecture:
signal x:std_logic;
begin
process(h)
begin
end if;
end if;
end process;
q<=x;
qb<=not x;
end basculeD;
j
Q
K
JKFF-R
Qb
CLK
Sorties :
library ieee ;
use ieee.std_logic_1164.all;
entity jkf is
port(j,k,h,ra0,ra1:in std_logic;
q,qb:out std_logic);
end jkf;
Dclaration de larchitecture :
signal x:std_logic;
begin
process(h,ra0 ,ra1)
begin
end if;
end if;
end if;
end process;
q<=x;
Partie recherche
Utilisation du Logiciel
QUARTUS
2 -Description Schmatique
3 -Description VHDL
5 - Simulation du Projet
6 -Implantation du Projet
ANNEXE :
Ouvrir le logiciel QUARTUS II et crer un nouveau projet ( "FILE" "NEW PROJECT WIZARD").
Cliquez sur "Next" l'apparition de la premire fentre.
Dfinir le rpertoire de travail (crez, sur votre cl USB ou votre disque rseau, un dossier pour chaque
L'assistant de cration de projet attribue par dfaut le nom du projet l'entit "top-level". Garder ce nom.
cliquer sur "NEXT".
La fentre suivante nous propose d'inclure des fichiers dj cres au projet. Passez cette
tape. La fentre de choix du composant apparat alors :
(Slectionnez les options CYCLONE II pour la famille de composants et 672 pour le nombre de broches comme sur
l'image ci-dessous afin de trouver la rfrence plus rapidement :)
remarque : on pourra toujours modifier ce choix par la suite, si les ressources du composant ne permettent pas
l'implantation du design (nombre insuffisant de portes) ou au contraire si un composant moins cher serait suffisant,
ou encore si les performances dynamiques (temps de propagation) sont insuffisantes.
Il est galement possible de ne pas choisir de composant en cochant la case " AUTO DEVICE SELECTED BY THE FITTER ", ce qui
signifie que la cible optimale sera choisie par le logiciel une fois le design saisi.
Ce paragraphe indique la marche suivre pour dcrire sous forme de schma ( logigramme ) la fonction
logique que l'on souhaite implanter dans le composant.
S = E1.E2 + E3
Crer un nouveau fichier dans votre projet ("FILE"" NEW") et slectionner le type "BLOCK DIAGRAM, SCHEMATIC
FILE". Sauver ce fichier en gardant le nom par dfaut (celui de votre projet).
Placer les blocs logiques : cliquez sur l'icne , dveloppez le rpertoire "LIBRAIRIES" "PRIMITIVE""LOGIC"
et chercher les portes souhaites (and2 et or2).
Ajouter les broches d'entres (INPUT) et de sorties (OUTPUT) : , puis "LIBRAIRIES" "PRIMITIVE""PIN" et
nommez les en double cliquant dessus.
Interconnecter les portes et les E/S en cliquant sur puis en glissant d'un point un autre avec la souris en
maintenant le bouton gauche enfonc.
Remarque : A tout moment vous pouvez passez en plein cran en cliquant sur .
Il reste alors associer les signaux E1, E2, E3 et S 4 des broches du composant utilis. Pour cela :
Cliquez sur (si l'icne n'est pas directement accessible : "PROCESSSING""ANALYSE & SYNTHSE" , afin que le
logiciel prenne en compte les diffrents signaux du schma et vrifie des ventuelles erreurs de connexion.
Ensuite, slectionner dans la partie suprieure de l'cran : "ASSIGNEMENTS""PINS" :
L'cran montre une vue du composant cible, avec ses diffrentes broches ainsi que leur fonction. Le tableau dans
la partie infrieure de l'cran fait apparatre les diffrents signaux du schma.
Il suffit de cliquer dans la colonne location en face du signal que l'on souhaite assigner et de
slectionner dans la liste droulante la broche dsire.
Par exemple, pour faire correspondre les signaux d'entre E1, E2 et E3 respectivement aux interrupteurs
( switches ) SW0, SW1 et SW2 de la maquette et la sortie S la LED verte 0 (LEDG0) de la maquette, on
affectera les N de broche suivants :
E1 => N25
E2 => N26
E3 => P25
S => AE22
Une fois l'ensemble de ces oprations effectues, il faut compiler le projet en cliquant sur dans la barre de menu
suprieure (si l'icne n'est pas directement accessible : "PROCESSSING""COMPILE" ). Cette opration sert gnrer les
fichiers ncessaires la simulation et la programmation du composant.
3 - Description VHDL
Il est galement possible de programmer une fonction en saisissant sa description VHDL. Nous allons, pour illustrer
cette mthode, implanter une fonction logique reprsente par la table de vrit suivante :
A B C x
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
Compltez ce fichier en crivant l'entit et l'architecture correspondant la table de vrit prsente ci-
dessus (le nom de l'entit doit tre le mme que celui du fichier VHDL):
Crez un symbole associ votre description VHDL : menu FICHIER CREATE SYMBOL FOR CURRENT FILE
Vous pouvez maintenant retourner sur votre fichier schmatique et aller chercher le symbole qui vient d'tre cr
comme n'importe quel autre composant. Il se trouve dans le rpertoire de votre projet
Placez-le sur votre schma et connectez les broches d'E/S aux entres et sorties de la fonction table_verite :
La suite des oprations (placement des broches d'E/S, affectation des n de broches, compilation) est identique
celle dcrite au chapitre 2.
4 - Utilisation des megafonctions
L'objectif de cette partie est de mettre en uvre les "megafonctions" offertes par le logiciel.
Il s'agit d'une bibliothque de fonctions prdfinies (on y trouve des fonctions logiques
combinatoires complexes (dcodeurs, multiplexeurs...) , des fonctions arithmtiques
(additions, multiplications...), des fonctions squentielles etc...).
Toutes ces fonctions sont entirement paramtrables par l'utilisateur, qui peut ainsi en
quelques clics de souris crer des fonctions complexes adaptes ses besoin.
Nous allons dans cet exemple crer un multiplexeur 8 vers 1 (8 entres, 1 sortie) :
Il suffit de slectionner les options dsires pour le multiplexeur dans les menus droulants,
savoir 8 pour le nombre d'entres et 1 pour le nombre de sorties.
Cliquer sur Finish , le multiplexeur est cre et peut tre plac sur le schma.
La suite des oprations (placement des broches d'E/S, affectation des n de broches,
compilation) est identique celle dcrite au chapitre 2.
5 - Simulation du Projet
La simulation du projet permet de visualiser l'cran le comportement de la fonction cre avant de programmer le
composant. Il faut, pour pouvoir effectuer cette opration, que le projet ait auparavant t compil.
Cette visualisation se fait sous forme de chronogramme reprsentant l'volution des entres et sorties de la fonction
logique simule.
Pour fonctionner, la simulation ncessite que l'utilisateur dfinisse l'allure des signaux d'entre de la fonction, le
simulateur se charge quant lui de calculer l'volution des signaux de sortie correspondants.
La premire tape consiste dfinir les signaux appliquer sur les entres du circuit...
Ajouter au fichier les entres du design. Pour cela, faire un clic droit comme indiqu ci-dessous :
slectionner "INSERT NODE OR BUS" puis cliquer sur "NODE FINDER". Dans "FILTER" slectionner "PINS : INPUT". Cliquer
sur "LIST". La liste des entres apparat :Cliquez sur pour ajouter toutes les entres au fichier puis "OK" et
encore "OK".
Slection des signaux d'entre pour la simulation (ici E1, E2 et E3)
On peut choisir la dure de la simulation (taille des chronogrammes) : EDIT "END TIME" . Choisir par exemple
10ms.
Pour dfinir l'tat des entres, il suffit de slectionner une portion du chronogramme (un ou plusieurs signaux
la fois) puis de cliquer sur pour mettre '0' ou sur pour mettre '1'.
On peut galement dfinir l'volution des signaux de faon automatique, en faisant varier une entre de faon
priodique ('CLOCK VALUE' : ) ou encore en groupant les signaux en un bus ( slectionner les lignes E1, E2 et
E3, clic droit 'GROUPER' , radix binary, puis 'COUNT VALUE'. Dans l'onglet 'I=TIMING', choisir 'COUNT EVRY 1MS'.
On obtient le chronogramme suivant :
Sauvegarder le fichier (l'extension .wvf waveform vector file est automatiquement ajoute).
Lancer la simulation en cliquant sur : . Vrifier les rsultats obtenus pour les signaux de sortie :
Rsultat de la simulation.
6 - Implantation du Projet
La dernire tape consiste programmer le composant, c'est dire implanter la description dans la cible matrielle
(FPGA dans notre cas). Il faut pour cela que le projet ait auparavant t compil.
Cette opration se fait dans notre cas via un des port USB du PC connect au port BLASTER de la carte DE2.
Un cran apparat, avec un fichier d'extension .pof list. Il s'agit du fichier de programmation final :
fentre de programmation.
Si aucun matriel de programmation n'est dfini (inscription 'NO HARDWARE'), cliquez alors sur 'HARDWARE SETUP' et
slectionnez 'USB BLASTER'.
Cocher les cases "PROGRAM/CONFIGURE" et "VERIFY" et lancer la programmation en cliquant sur START
Switches :
Keys :
LEDs :
Afficheurs 7