Difference between revisions of "Formation::FPGA"

From Electrolab
Jump to: navigation, search
(Plan)
 
(14 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
(page en cours de rédaction et qui me sert également de brouillon pour le support de formation)
 
(page en cours de rédaction et qui me sert également de brouillon pour le support de formation)
 +
Peut etre qu'il faut réarticuler ce plan de formation avec la formation: [[Formations:FPGA:Initiation]]:
 +
* initiation pour intro élec numérique+composants programmables
 +
* cette formation commencerait donc à langages HDL... food for thoughts!
  
 
= '''Objectifs''' =
 
= '''Objectifs''' =
Line 22: Line 25:
 
# '''Présentation des langages de description matérielle'''
 
# '''Présentation des langages de description matérielle'''
 
## Limites de la saisie de schéma
 
## Limites de la saisie de schéma
 +
## Notion de concurrence
 
## Simulation
 
## Simulation
 
## Conception
 
## Conception
Line 27: Line 31:
 
## Bref historique
 
## Bref historique
 
## Concepts de base
 
## 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
 +
## 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
 +
## 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
 
# '''Du VHDL au FPGA'''
 
# '''Du VHDL au FPGA'''
 +
## Synthèse logique
 +
### VHDL synthétisable
 +
## Placement-routage
 +
### Contraintes physiques
 +
#### Fréquence de fonctionnement
 +
#### Brochage
 +
## Règles de codage
 +
### Fichiers sources
 +
### Indentation
 +
### Nommage des objets
 +
# '''Simulation'''
 +
## Pourquoi simuler
 +
### Vérification syntaxique
 +
### Validation fonctionnelle
 +
## Testbench
 +
### Stimuli
 +
### VHDL non-synthétisable
 +
#### Délais
 +
#### Fichiers
 +
#### Pointeurs
 +
# '''projet pratique proposé (papy F1CHF)'''
 +
## le but est de diviser un signal de 10 Mhz par 10 millions
 +
## et ensuite d'avoir un comparateur de phase (equivalent au CD4046)
 +
# '''projet pratique proposé (Marc aka f6itu)'''
 +
## Décortiquer un [https://github.com/softerhardware/Hermes-Lite/tree/master/rtl '''''projet existant'''''] afin de le comprendre et accessoirement de le "reverser"
 +
 +
= '''Matériel''' =
 +
J'avais dans l'idée de réaliser quelques exemplaires de [[Projets:Perso:2013:Carte_MAX7000|cette carte]] pour faire tourner en vrai au lieu de simplement simuler.
 +
 +
Le lab dispose par ailleurs de 8 cartes Arrow Bemicro max 10, qui contient un petit FPGA Altera+le minimum vital (alim, flashs, reprog) et plusieurs périphériques marrants (leds, boutons, accéléro, capteur de lumière, température, SDRAM, flash...).

Latest revision as of 09:58, 28 July 2016

(page en cours de rédaction et qui me sert également de brouillon pour le support de formation) Peut etre qu'il faut réarticuler ce plan de formation avec la formation: Formations:FPGA:Initiation:

  • initiation pour intro élec numérique+composants programmables
  • cette formation commencerait donc à langages HDL... food for thoughts!

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

  1. Introduction à l'électronique numérique
    1. Logiques combinatoire et séquentielle
      1. Fonctions combinatoires élémentaires
      2. Bascules
    2. Automates
      1. Compteurs
      2. Vecteur d'état
      3. Automates programmables
    3. Conclusion
  2. Présentation des composants programmables
    1. Intégration
    2. Technologies
    3. FPGA et ASIC
      1. Comparaison
      2. Implications vis à vis de la conception
  3. Présentation des langages de description matérielle
    1. Limites de la saisie de schéma
    2. Notion de concurrence
    3. Simulation
    4. Conception
  4. Introduction au VHDL
    1. Bref historique
    2. Concepts de base
      1. Unités de conception
        1. Paire paquetage/corps de paquetage
        2. Paire entité/architecture
      2. Bibliothèques de conception
        1. Bibliothèques prédéfinies
        2. Bibliothèques standards
      3. Objets et types
        1. Typage fort
        2. Classes d'objets
      4. Instructions concurrentes et séquentielles. Processus
      5. Description hiérarchique
    3. Exemples pratiques
      1. Porte NON-ET (NAND)
        1. Processus combinatoire
      2. Porte OU-EX (XOR)
        1. Instantiation
      3. Additionneur simple
      4. Additionneur complet
        1. Instruction generate
        2. Boucle for...generate
        3. Condition if...generate
      5. Bascule D
        1. Processus synchrone
        2. Conditions
      6. Compteur
    4. Niveaux d'abstraction
      1. Types numériques
      2. Paquetage numeric_std
      3. Types énumérés
      4. Fonctions et procédures
    5. Simulation : testbenches
      1. Génération de signaux
        1. Horloges
        2. Reset
      2. Vérification : assertions
      3. Scripts
  5. Du VHDL au FPGA
    1. Synthèse logique
      1. VHDL synthétisable
    2. Placement-routage
      1. Contraintes physiques
        1. Fréquence de fonctionnement
        2. Brochage
    3. Règles de codage
      1. Fichiers sources
      2. Indentation
      3. Nommage des objets
  6. Simulation
    1. Pourquoi simuler
      1. Vérification syntaxique
      2. Validation fonctionnelle
    2. Testbench
      1. Stimuli
      2. VHDL non-synthétisable
        1. Délais
        2. Fichiers
        3. Pointeurs
  7. projet pratique proposé (papy F1CHF)
    1. le but est de diviser un signal de 10 Mhz par 10 millions
    2. et ensuite d'avoir un comparateur de phase (equivalent au CD4046)
  8. projet pratique proposé (Marc aka f6itu)
    1. Décortiquer un projet existant afin de le comprendre et accessoirement de le "reverser"

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.

Le lab dispose par ailleurs de 8 cartes Arrow Bemicro max 10, qui contient un petit FPGA Altera+le minimum vital (alim, flashs, reprog) et plusieurs périphériques marrants (leds, boutons, accéléro, capteur de lumière, température, SDRAM, flash...).