Conception numérique (CNUM) - KAIE9M16

Informations générales

  • Volumes horaires

    • CM 16.0
    • Projet -
    • TD 12.0
    • Stage -
    • TP -
    • DS 2.0

    Crédits ECTS

    Crédits ECTS 0.5

Objectif(s)

L'objectif de la partie conception avancée est d'étudier les méthodes et algorithmes de base des outils de synthèse automatique de circuits. On étudiera en particulier les méthodes d'optimisations booléennes, la synthèse logique, la décomposition d'un système en partie contrôle - partie opérative, et la synthèse d'architectures.

La partie prototypage FPGA repose essentiellement sur la réalisation d'un système embarqué complet à base d'un processeur RISC (RISC-V) capable d'exécuter une partie ou l'intégralité du jeu d'instructions.

A l'issu du cours, l'étudiant sera capable de :

  • Concevoir des circuits numériques étant donnés une spécification de fonctionnalités et un ensemble de composants de base
  • Maîtriser l'architecture d'un processeur RISC 32-bits (RISC-V)
  • Comprendre les principes de l'affichage sur un écran VGA
  • Simuler et synthétiser l'architecture du système embarqué complet à l'aide des outils Xilinx Vivado

Contenu(s)

1. Conception logique :

  • Rappel d'algèbre de bool
  • Optimisation et factorisation des fonctions logiques (algorithme de Quine - Mc Kluskey)
  • Synthèse logique
  • Décomposition d'un circuit en PC-PO
  • Synthèse de la PC
  • Synthèse d'architecture

2. Introduction aux circuits programmables FPGA :

  • Exemple d'une architecture FPGA
  • Flot de conception FPGA

3. Projet intégrateur :

  • Mise en oeuvre des instructions 32 bits du processeur (RISC-V)
  • Validation des instructions par simulation et test sur la carte de prototypage
  • Écriture, simulation et synthèse de programmes de test : compteur sur led, chenillard minimaliste sur led, chenillard à rotation de motif
  • Pilotage d'un afficheur 7 segments
  • Applications logicielles de jeux sur le processeur RISC-V : invaders, pong, brick, snake

Prérequis

  • Notions sur les systèmes électroniques numériques
  • Notions de circuits combinatoires et séquentiels
  • Module « Algorithmique et programmation » (IESE3 - semestre 5 et 6)
  • Module « Microcontrôleurs » (IESE3 - semestre 6)
  • Module « VHDL » (IESE4 - semestre 8)
  • Module « Architecture de processeurs » (IESE5 - semestre 9)

Contrôle des connaissances

40% contrôle continu :

  • Préparation et rendu GIT de 6 séances de projet (travaux pratiques)
    60% examen terminal :
  • 1 épreuve écrite – 2h
  • En cas de tiers-temps : sujet adapté
    En cas de non validation d’une UE, le jury peut autoriser l’élève ingénieur à passer des épreuves complémentaires pour la valider.

Calendrier

Le cours est programmé dans ces filières :

  • Formations d'ingénieur - IESE - Semestre 9

Informations complémentaires

Code de l'enseignement : KAIE9M16
Langue(s) d'enseignement : FR

Vous pouvez retrouver ce cours dans la liste de tous les cours.

Bibliographie

Conception avancée:

  • The Synthesis Approach to Digital System Design, P. Michel et al., Kluwer Academic Publishers, 1992
  • Behavioral Synthesis and Component Reuse with VHDL, A. A. Jerraya et al., Kluwer Academic Publishers, 1997
  • Conception Logique et Physique des Systèmes Monopuces, A. Jerraya et al., Hermes, 2002 (in French)
  • Conception de Haut Niveau des Systèmes Monopuces, A. Jerraya et al., Hermes, 2002 (in French)
  • Algorithms for VLSI Design Automation, S. Gerez, Wiley, 1999
  • Architectures Logicielles et Matérielles, P. Amblard et al., Dunod, 2000 (in French)

Prototypage:

  • "1076-2008 - IEEE Standard VHDL Language Reference Manual" par IEEE
  • "VHDL : Programming by Example" 4th Edition, par Douglas L. Perry
  • "Computer Organization and Design - The Hardware/Software Interface" (RISC-V Edition), par David A. Patterson et John L. Hennessy
  • The RISC-V Reader: An Open Architecture Atlas, David Patterson and Andrew Waterman, 2017