Vous êtes sur la page 1sur 29

Majeure « Du semiconducteur au

système informatique »

CIRCUITS LOGIQUES
PROGRAMMABLES

Emilie Hérault emilie.herault@polytechnique.edu

Jean-Yves Parey jean-yves.parey@polytechnique.edu

Oumkelthoum Moustapha oumkelthoum.moustapha@polytechnique.edu

26 Septembre 2007
TREX1
Plan
• 1. Introduction
– Objectifs
– Utilisations et technologies
• 2. Circuits logiques synchrones
– Modèle
– Langages de description
• 3. Environnement de développement
– Circuits reconfigurables
– Carte DE2
– Périphériques
– Outils logiciels
• 4. Sujets proposés
– Exemples : microprocesseur, calculatrice, synthèse sonore
Diapositive 2

TREX1 Administrateur; 03/05/2007


Agenda
• 9 séances du 26-09-07 au 05-12-07
• 26-09-07
– 13h15-15h Présentation générale
– 15h15-17h30 Prise en main des outils
• 03-10-07
– 13h30-15h Présentation VHDL
– 15h15-18h Détermination finale des projets
• 10-12-07 au 14-12-07 Oraux
PIECE 01-2004 LABO E
BUTS ET OBJECTIFS
- APPREHENDER LA CONCEPTION D’UN CIRCUIT
LOGIQUE SPECIALISE
- REALISER UN CIRCUIT OPERATIONNEL
Implantation des algorithmes
Logicielle ld In, x0 • Matérielle
xor x0, r2, x1
– In Out
ld Gate, x2
and x1, x2, x1 – Gate
xor x1, r0, x2 • Performance
mov x1, r0
... • Temps-réel
• Interfaçage
Matérielle physique
Gate
• Coût
• Encombrement
• ...
In Out
Modèles de réalisation
• Circuits à façon (full-custom) : dessin de transistors
(gravure de rectangles).
• Circuits prédiffusés (gate array) : connexion de portes
logiques élémentaires (ex. NOR).
• Circuits logiques programmables (PROM, PAL, EPLD) :
réalisation d’un petit nombre d’équations booléennes.
Généralement programmable une seule fois.
• Prédiffusés programmables (FPGA) : connexion de
fonctions booléennes programmables et de registres
synchrones.
Programmable une fois ou indéfiniment reprogrammable.
Circuits logiques synchrones
x • x = (xt)t≥0 ∈BN

x • F : BN → BN
y r
z F(x, y, z) = (f(x0, y0, z0), f(x1, y1, z1), …)

x y • reg : BN → BN
reg(x0, x1, …) = (0, x0, x1, …)
Règles à respecter
• Les signaux peuvent être
– Les Signaux événementiels (définissent des instants)
– Les signaux de valeur (véhiculent des valeurs logiques)
• Ne pas mélanger les deux
• L’état ne sera examiné qu’aux instants de
chargement des registres

valeur Circuit
combinatoire
événementiel τc τc < T
(horloge)
T
Registre synchrone
Communication Bi-directionnelle
Structure d’un cyclone II
Tableau logique
Élément logique
Plate-forme matérielle (1)
• PC (Windows XP)
• Carte “DE2” (Altera)
– 1 Cyclone II EP2C35F672C6
• 33 216 éléments logiques
• 33 216 registres
• 475 ports d’entrée-sortie
– 105 modules de mémoire de 4 kbits
– 2 Horloges (27 MHz et 50 MHz)
– Périphériques internes (Boutons, interrupteurs, LEDs,
7 segments, LCD,…)
– Périphériques externes (écran VGA, …)
Plate-forme matérielle (2)
Architecture DE2
EXERCICE
Réalisation d’un dé électronique
– un bouton poussoir
– un afficheur 7 segments

?
Langages de description (1)
• Schémas :

Count Cnt3 Dec7s seg[0..6]


R
Langages de description (2)
• Synthèse logique : VHDL.
– process begin
wait until CLK’event and CLK = ’1’;
if SECS = 59 then
SECS <= 0;
if MINUTES = 59 then
MINUTES <= 0;
else
MINUTES <= MINUTES + 1;
end if;
else
SECS <= SECS + 1;
end if;
end process;
Outils logiciels (1)
• Description des circuits
– Schémas
– Équations booléennes
– VHDL
– Générateur de modules paramétrables
• Compilation
– Mise à plat du circuit
– Traduction des fichiers sources en portes logiques
– Fabrication de tables à 4 entrées
– Placement et routage
– Génération du binaire de configuration
Outils logiciels (2)
• Exécution
– Initialisation des RAMs
– Configuration du circuit
– Protocole d’entrées-sorties

• Mise au point
– Simulation
– Oscilloscope
Projets microprocesseurs
• Votre propre jeu d’instructions
• RISC
• Microprocesseur classique : PDP8, PDP11, 6502
– Possibilité de trouver specifications, compilateurs, code sur
le web
– http://www.spies.com/~dgc/pdp8x
• Microprocesseur + périphériques
• Carte graphique
Autres projets (1)
• Calculatrice
– Calculatrice à pile simple
– Calculatrice programmable
• Automates spécialisés
– Date de Pâques, calendrier perpétuel. . .
– Montre numérique
– Contrôleur d’ascenseur
– Voltmètre numérique
– Oscilloscope numérique
• Codes
– Codes cryptographiques
– Codes correcteurs d’erreur
Autres projets (2)
• Pilotage d’écran graphique
– Terminal alphanumérique
– Jeu vidéo, animations
• Audio numérique
– Synthèse additive
– Filtrage
– Analyse fréquentielle temps-réel
• Acquisition vidéo
– Banc-titre
– Suivi de pointeur laser
– Caméra numérique
• Autres. . .
Exemple : calculatrice
• Type “polonaise inverse” (HP)
• Version minimale
– Hexadécimale
– 8 bits
– Addition – soustraction
• Extensions
– 12 ou 16 bits
– BCD
– Multiplication
– Sous-programmes en ROM
Exemple : synthétiseur sonore
• Version minimale
– Synthèse d’ échantillons sonores en temps réel
– Forme(s) d’onde en RAM
– Partitions en RAM (fréquence/durée)
• Extensions
– Enveloppes
– Voies multiples