Difference between revisions of "Formation::FPGA"
Raoullevert (Talk | contribs) (→Objectifs) (Tag: visualeditor) |
|||
Line 6: | Line 6: | ||
= '''Plan''' = | = '''Plan''' = | ||
# '''Introduction à l'électronique numérique''' | # '''Introduction à l'électronique numérique''' | ||
− | + | En electronique numérique, par opposition à l'analogique, les signaux ne peuvent prendre qu'un nombre restreint de valeur (typiquement [0;1]). Afin d'augmenter la plage des valeurs représentables, on utilise plusieur signaux que l'ont groupe sous forme de bus. L'electronique numérique utilise une série d'opérateurs qui forment la logique de bool (booléenne). | |
− | + | # Logiques combinatoire et séquentielle | |
− | + | Une fonctione logique -- ou porte logique -- est représentée par une boite noire comprennant un certain nombre d'entrée et sorties. En logique combinatoire, la valeur de chaque sortie est directement reliable aux valeurs des entrées. En logique séquentielle par contre, les sorties sont fonction non seulement des entrées, mais également de l'état antérieur de la porte logique. La logique séquentielle permet donc d'implementer des mémoires. | |
− | + | ||
− | + | Pour représenter chaque sortie en fonction des entrées, on utlise une table de vérité : un simple tableau. | |
− | + | ||
− | + | Par exemple un fonction ET (AND) à deux entrées (a et b) et une sortie (s) aura comme table de vérité : | |
− | + | ||
+ | | a | b | s | | ||
+ | |||
+ | | 0 0 0 | | ||
+ | |||
+ | | 0 1 0 | | ||
+ | |||
+ | | 1 1 1 | | ||
+ | # Fonctions combinatoires élémentaires | ||
+ | NON (NOT) : inverse l'entrée. | ||
+ | |||
+ | ET (AND) | ||
+ | |||
+ | OR (OU) | ||
+ | |||
+ | NON-ET (NAND) | ||
+ | |||
+ | NON-OU (NOR) | ||
+ | |||
+ | OU-EXCLUSIF (XOR) | ||
+ | # Bascules | ||
+ | # Automates | ||
+ | ## Compteurs | ||
+ | ## Vecteur d'état | ||
+ | ## Automates programmables | ||
+ | # Conclusion | ||
+ | |||
# '''Présentation des composants programmables''' | # '''Présentation des composants programmables''' | ||
## Intégration | ## Intégration |
Revision as of 22:26, 7 June 2014
(page en cours de rédaction et qui me sert également de brouillon pour le support de formation)
Objectifs
Permettre à chacun (y compris ceux qui n'y connaissent rien) de mettre en oeuvre un composant logique programmable (PLD, CPLD, FPGA) soit sur une carte de développement soit dans un montage perso
Plan
- Introduction à l'électronique numérique
En electronique numérique, par opposition à l'analogique, les signaux ne peuvent prendre qu'un nombre restreint de valeur (typiquement [0;1]). Afin d'augmenter la plage des valeurs représentables, on utilise plusieur signaux que l'ont groupe sous forme de bus. L'electronique numérique utilise une série d'opérateurs qui forment la logique de bool (booléenne).
- Logiques combinatoire et séquentielle
Une fonctione logique -- ou porte logique -- est représentée par une boite noire comprennant un certain nombre d'entrée et sorties. En logique combinatoire, la valeur de chaque sortie est directement reliable aux valeurs des entrées. En logique séquentielle par contre, les sorties sont fonction non seulement des entrées, mais également de l'état antérieur de la porte logique. La logique séquentielle permet donc d'implementer des mémoires.
Pour représenter chaque sortie en fonction des entrées, on utlise une table de vérité : un simple tableau.
Par exemple un fonction ET (AND) à deux entrées (a et b) et une sortie (s) aura comme table de vérité :
| a | b | s |
| 0 0 0 |
| 0 1 0 |
| 1 1 1 |
- Fonctions combinatoires élémentaires
NON (NOT) : inverse l'entrée.
ET (AND)
OR (OU)
NON-ET (NAND)
NON-OU (NOR)
OU-EXCLUSIF (XOR)
- Bascules
- Automates
- Compteurs
- Vecteur d'état
- Automates programmables
- Conclusion
- Présentation des composants programmables
- Intégration
- Technologies
- FPGA et ASIC
- Comparaison
- Implications vis à vis de la conception
- Présentation des langages de description matérielle
- Limites de la saisie de schéma
- Notion de concurrence
- Simulation
- Conception
- Introduction au VHDL
- Bref historique
- Concepts de base
- Unités de conception
- Paire paquetage/corps de paquetage
- Paire entité/architecture
- Bibliothèques de conception
- Bibliothèques prédéfinies
- Bibliothèques standards
- Objets et types
- Typage fort
- Classes d'objets
- Instructions concurrentes et séquentielles. Processus
- Description hiérarchique
- Unités de conception
- Exemples pratiques
- Porte NON-ET (NAND)
- Processus combinatoire
- Porte OU-EX (XOR)
- Instantiation
- Additionneur simple
- Additionneur complet
- Instruction generate
- Boucle for...generate
- Condition if...generate
- Bascule D
- Processus synchrone
- Conditions
- Compteur
- Porte NON-ET (NAND)
- Niveaux d'abstraction
- Types numériques
- Paquetage numeric_std
- Types énumérés
- Fonctions et procédures
- Simulation : testbenches
- Génération de signaux
- Horloges
- Reset
- Vérification : assertions
- Scripts
- Génération de signaux
- Du VHDL au FPGA
- Synthèse logique
- VHDL synthétisable
- Placement-routage
- Contraintes physiques
- Fréquence de fonctionnement
- Brochage
- Contraintes physiques
- Règles de codage
- Fichiers sources
- Indentation
- Nommage des objets
- Synthèse logique
- Simulation
- Pourquoi simuler
- Vérification syntaxique
- Validation fonctionnelle
- Testbench
- Stimuli
- VHDL non-synthétisable
- Délais
- Fichiers
- Pointeurs
- Pourquoi simuler
Matériel
J'avais dans l'idée de réaliser quelques exemplaires de cette carte pour faire tourner en vrai au lieu de simplement simuler