INF3500 - Conception et réalisation de systèmes numériques

Automne 2022 - horaire détaillé



Semaine
du
Thème et matière de la semaine Période de cours
M-1410
Vendredi, 14h45, 15h45, 16h45
Période de travaux pratiques
L-3714
Mardi, 8h30, 9h30, 10h30
Objectifs spécifiques de la semaine
29 aout - 2 sep.

0. Rappels

Matière :[Youtube][mp4Moodle][diapos]
  • 0001 Rappel : logique numérique combinatoire
  • Présentation du plan de cours
  • Présentation de la méthode d'enseignement en classe inversée
  • Exercices: analyse et synthèse de fonctions combinatoires
  • Installation des outils
  • Mise en oeuvre de la planchette

5 - 9 sep.

1. Introduction

Matière: [Youtube][mp4Moodle][diapos]
  • 0101 Vue d'ensemble des systèmes numériques
  • 0102 Options d’implémentation des solutions matérielles
  • 0103 Flot de conception de circuits numériques
  • 0104 Introduction à VHDL
  • Remise, puis revue du devoir #1
  • Réponses aux questions
  • Exercices #1
  • Exemples supplémentaires
Labo 1 : Flot de conception de circuits numériques (Groupe B2) L'étudiant(e) devrait être capable de:
  • Présenter une vue d’ensemble des systèmes numériques: leurs applications, niveaux d’abstraction et considérations d’implémentation. (B3)
  • Analyser et évaluer différentes options d’implémentation et les comparer entermes de coût, effort de design et performance. (B4)
  • Étant donné des requis de performance, et des spécifications de débit et de parallélisme de dispositifs, choisir la meilleure solution. (B3)
  • Appliquer le flot de conception de circuits numériques. (B3)
  • Écrire le code VHDL pour un module combinatoire simple. (B3)
12 - 16 sep.

3. Modélisation et vérification de circuits combinatoires

Matière: [Youtube][mp4Moodle][diapos]
  • 0301 Description d'un circuit combinatoire en VHDL
  • 0302 Concepts intermédiaires de VHDL
  • 0303 Banc d'essai pour un circuit combinatoire
  • 0304 Synthèse d’un circuit combinatoire à partir de sa description en VHDL
  • Remise, puis revue du devoir #3
  • Réponses aux questions
  • Exercices #3
  • Exemples supplémentaires
  • Évaluation formative du cours
Labo 1 : Flot de conception de circuits numériques (Groupe B1) L'étudiant(e) devrait être capable de:
  • Donner le modèle VHDL d’un circuit combinatoire complexe à partir de sa spécification,en choisissant le style de description, les types et les structures du langage appropriées. (B5)
  • Donner le code VHDL d’un banc d’essai pour stimuler et vérifier un circuit combinatoire de façon exhaustive ou avec des vecteurs de test spécifiés. (B5)
  • Analyser le modèle VHDL d’un circuit combinatoire complexe, en donner le circuit correspondant, et en effectuer la synthèse pour l’implémenter dans un FPGA. (B4, B5)
19 - 23 sep.

2. Technologies de logique programmable

Matière: [Youtube][mp4Moodle][diapos]
  • 0201 Circuits intégrés numériques
  • 0202 Mémoires PROM
  • 0203 PLA, PAL, GAL et CPLD
  • 0204 Les FPGA: structure, fonctionnement et utilisation
  • Remise, puis revue du devoir #2
  • Réponses aux questions
  • Exercices #2
  • Exemples supplémentaires
  • Retour sur l'évaluation formative du cours
Labo 2 : Modules combinatoires, bancs d'essai et ressources du FPGA (Groupe B2) L'étudiant(e) devrait être capable de:
  • Expliquer l’historique du développement de la logique programmable, des portes logiques aux FPGA. (B2)
  • Expliquer la structure des types de dispositifs de logique programmable. (B2)
  • Décrire les technologies de programmation des dispositifs de logique programmable. (B2)
  • Montrer comment programmer les ROM, PLA, PAL pour implémenter un circuit combinatoire. (B3)
26 - 30 sep.

4. Modélisation et vérification de circuits séquentiels

Matière: [Youtube][mp4Moodle][diapos]
  • 0401 Composantes séquentielles pour circuits numériques
  • 0402 VHDL pour circuits séquentiels
  • 0403 Synthèse d'un circuit séquentiel à partir de sa description en VHDL
  • 0404 Modélisation de machines à états
  • 0405 Analyse de machines à états et description en VHDL
  • 0406 Banc d'essai pour un circuit séquentiel
  • Contrôle #1 portant sur la matière des semaines 1, 2 et 3
  • Remise, puis revue du devoir #4
  • Réponses aux questions
  • Exercices #4
  • Exemples supplémentaires
Labo 2 : Modules combinatoires, bancs d'essai et ressources du FPGA (Groupe B1) L'étudiant(e) devrait être capable de:
  • Analyser le schéma, le diagramme d’états ou le code VHDL d’un circuit séquentiel, en donner les deux autres représentations, et montrer son comportement dans le temps à l’aide d’un chronogramme. (B4)
  • Concevoir un circuit séquentiel à partir d’une spécification. Donner un diagramme d’état, le code VHDL, le schéma du circuit et son implémentation résultante sur un FPGA. (B5)
  • Composer un banc d’essai pour stimuler un modèle VHDL d’un circuit séquentiel. Donner le chronogramme résultant de l’exécution d’un banc d’essai. (B4,B5)
3 - 7 oct.

5. Conception de chemins des données

Matière: [Youtube][mp4Moodle][diapos]
  • 0501 Processeurs et chemins de données
  • 0502 Modélisation VHDL d'un chemin des données
  • 0503 Représentation binaire de nombres entiers et opérations arithmétiques de base
  • 0504 Arithmétique entière en VHDL
  • 0505 Décodeurs et encodeurs
  • Remise, puis revue du devoir #5
  • Réponses aux questions
  • Exercices #5
  • Exemples supplémentaires
Pas de labo cette semaine L'étudiant(e) devrait être capable de :
  • Concevoir et modéliser en VHDL un chemin de données qui réalise des fonctions arithmétiques et logiques complexes au niveau de transfert entre registres (Register Transfer Level – RTL). (B5)
10 - 14 oct.
relâche
17 - 21 oct.

6. Conception et implémentation de fonctions arithmétiques sur FPGA

Matière: [Youtube][mp4 Moodle][diapos]
  • 0601 Synthèse et implémentation de circuits arithmétiques sur FPGA
  • 0602 Représentation et opérations sur les nombres binaires fractionnaires à virgule fixe
  • 0604 Représentation et opérations sur des nombres décimaux à virgule fixe
  • 0605 Implémentation de la division sur FPGA
  • 0610 Exemple: l'algorithme CORDIC
  • Remise, puis revue du devoir #6
  • Réponses aux questions
  • Exercices #6
  • Exemples supplémentaires
Labo 3 : Circuits séquentiels (Groupe B2) L'étudiant(e) devrait être capable de :
  • Analyser un modèle VHDL de fonctions arithmétiques afin d’estimer le nombre de ressources nécessaires pour l’implémenter.(B4)
  • Concevoir et modéliser en VHDL, en vue de son implémentation, un circuit qui effectue des calculs arithmétiques avec des nombres binaires ou décimaux à virgulefixe. (B5)
24 - 28 oct.

7. Vérification de systèmes numériques

Matière: [Youtube][mp4Moodle][diapos]
  • 0701 Principes généraux
  • 0702 Tests exhaustifs
  • 0703 Tests de boîte noire
  • 0704 Tests de boîte blanche
  • 0710 Entrées et sorties par fichiers
  • Remise, puis revue du devoir #7
  • Réponses aux questions
  • Exercices #7
  • Exemples supplémentaires
Labo 3 : Circuits séquentiels (Groupe B1) L'étudiant(e) devrait être capable de:
  • Énumérer et décrire les principes généraux de la vérification d'un système numérique ainsi que les qualités d’un ensemble de vecteurs de test.(B1, B2)
  • Appliquer les techniques de test de boîte noire et de boîte blanche à la vérification de circuits combinatoires et séquentiels. (B3)
  • Analyser la spécification d'un système numérique, concevoir un ensemble de vecteurs de tests pour en vérifier le fonctionnement, et coder un banc d’essai correspondant en VHDL. (B4,B5)
31 oct. - 4 nov.

8. Simulation, synthèse et implémentation

Matière: [Youtube][mp4Moodle][diapos]
  • 0801 Simulation d'un modèle VHDL
  • 0802 Signaux, variables et leurs valeurs dans le temps
  • 0803 Synthèse d'un modèle VHDL
  • 0804 Implémentation d'un modèle VHDL

  • Contrôle #2 portant sur la matière des semaines 4, 5, 6 et 7
  • Remise, puis revue du devoir #8
  • Réponses aux questions
  • Exercices #8
  • Exemples supplémentaires
Labo 4 : Conception de chemins des données (Groupe B2) L'étudiant(e) devrait être capable de:
  • Appliquer les principes de la simulation d’évènements concurrents à un modèle VHDL. (B3)
  • Expliquer le processus de synthèse d’un modèle VHDL, expliquer pourquoi certaines structures de code ne sont pas synthétisables, et écrire du code synthétisable. (B2, B3)
  • Proposer un placement et un routage pour un module VHDL maximisant des métriques de performance. (B5)
7 - 11 nov.

9. Conception de processeurs à usage général

Matière: [Youtube][mp4Moodle][diapos]
  • 0901 Principes généraux
  • 0902 Chemin des données
  • 0903 Modélisation VHDL du chemin des données
  • 0904 Encodage du jeu d'instructions
  • 0905 Modélisation VHDL de l'unité de contrôle
  • Remise, puis revue du devoir #9
  • Réponses aux questions
  • Exercices #9
  • Exemples supplémentaires
Labo 4 : Conception de chemins des données (Groupe B1) L'étudiant(e) devrait être capable de:
  • Analyser le chemin des données d’un processeur à usage général afin d’estimer les ressources requises, déterminer les limites opérationnelles du processeur, proposer des changements architecturaux pour implémenter de nouvelles opérations, et donner le code VHDL modifié. (B5)
  • Proposer des modifications à l’unité de contrôle et à l’encodage des instructions pour ajouter de nouvelles instructions à un processeur à usage général, et donner le code VHDL modifié. (B5)
14 - 18 nov.

10. Performance: le temps

Matière: [Youtube][mp4Moodle][diapos]
  • 1001 Le facteur temps, introduction
  • 1002 Temps de propagation des signaux dans un circuit
  • 1003 Chemin critique et fréquence maximale d'horloge
  • 1004 Le problème du déphasage d'horloge
  • 1005 Synchronisation
  • Remise, puis revue du devoir #10
  • Réponses aux questions
  • Exercices #10
  • Exemples supplémentaires
Labo 5 : Communications (Groupe B2) L'étudiant(e) devrait être capable de:
  • Analyser un système numérique pour identifier le chemin critique et en donner la fréquence maximale d’horloge. (B4)
  • Dans le processus de conception d'un circuit, adopter de bonnes pratiques pour atteindre les spécifications temporelles et éviter des problèmes de synchronisation. (B5)
21 - 25 nov.

11. Performance: latence, débit et surface

Matière: [Youtube][mp4Moodle][diapos]
  • 1101 Latence, débit et surface : introduction
  • 1102 Augmenter le débit
  • 1103 La technique du pipeline
  • 1104 Analyse détaillée du pipeline
  • 1105 Exemple du filtre audio: trois versions
  • 1106 Bonnes pratiques de conception FPGA
  • Remise, puis revue du devoir #11
  • Réponses aux questions
  • Exercices #11
  • Exemples supplémentaires
Labo 5 : Communications (Groupe B1) L'étudiant(e) devrait être capable de:
  • Analyser un circuit numérique pour en mesurer ou en estimer le débit, la latence, et la surface. (B4)
  • Modifier un circuit existant, ou en concevoir un nouveau, en optimisant la latence, le débit, et/ou la surface.(B5)
28 nov. - 2 dec.

12. Revue générale

  • Évaluation finale du cours
  • Contrôle #3 formatif portant sur la matière des semaines 8, 9, 10 et 11
  • Préparation à l'examen final
Labo 6 : Processeurs à usage général (Groupe B2)

5 dec. - 9 dec. Pas de classe cette semaine Labo 6 : Processeurs à usage général (Groupe B1) - Mercredi 7 décembre