Simulateur de réseaux simples avec un FPGA

=Objectif= Les FPGA sont des circuits logiques programmables. Grossièrement à partir d'un langage de description de circuit et à l'aide d'une chaîne de traitement logiciel, on obtient une image binaire à téléchargé sur le composant FPGA. Ce dernier réalisera alors les fonctions logigues combinatoire et séquentiel (mémoire et bascules) sur circuit souhaité.

Dans ce projet nous allons nous intéresser à réaliser un simulateur de réseau communication simple.

On peut considérer plusieurs modèles de réseaux dont: Nous allons a priori nous intéresser à la 2 éme approche utilisée notamment dans le simulateur SimGrid
 * 1) Les modèles au niveau des paquets: on simule l'évolution et le parcours de chaque paquets
 * 2) Les modèles au niveau des flux d'échange: on simule l'évolution des échanges comme un flux
 * https://simgrid.org/tutorials/surf-101.pdf page 10-17
 * https://tel.archives-ouvertes.fr/tel-01247932/document Chapter 11 / p115-128
 * http://simgrid.gforge.inria.fr/simgrid/3.20/doc/group__SURF__lmm.html
 * https://github.com/simgrid/simgrid/tree/master/src/kernel/lmm

Nous utiliserons pour décrire et simuler les circuits souhaitées le logiciel nmigen écrit en Python3.

= Choix technique = =Plan de travail=
 * Python 3
 * Nmigen https://github.com/m-labs/nmigen.
 * On procédera par preuves de concept
 * Prise en main de nmigen (exemples / tutoriaux)
 * Comprehension du modele flux / fluide (utilisé dans SimGrid)
 * Prototypage de petits exemples
 * Analyse de l'algorithme Linear MaxMin Solver (portage en Python)

=Prérequis=
 * Connaissance de Python
 * C'est un projet exploratoire / prospectif / recherche