Chaque leçon repose sur une première mi-temps de 2 heures d'apprentissage des connaissances. Elles seront mises en pratique sur la carte Basys3 pendant la seconde mi-temps. Les deux parties seront à valider auprès de votre enseignant : pour les réponses aux questions, pour la simulation et validation expérimentale sur la carte.
Séances de TP de licences :
Pour ceux qui ne les ont pas suivies il y a deux ans, ou qui ont besoin d'un rafraîchissement mémoire, voici les 12 leçons sur carte Nexys3 qui construisent le processeur S3. Néanmoins cette année on utilisera VIVADO au lieu de ISE!
Documentions supplémentaires recommandées
Tutoriaux Xilinx recommandés :
De plus, le site web de la compagnie Xilinx regorge d’informations et d’exemples sur le matériel utilisé dans ce cours. Le site comporte aussi un FAQ et une banque de problèmes résolus. N’hésitez pas à le consulter.
Cette première leçon vous fera découvrir l’intérêt croissant des FPGA dans le monde des calculateurs embarqués et Hautes Performances.
Une présentation du marché, des fonctionnements internes et des outils de synthèse vous permettront d'aborder en pratique la carte Nexys3 pour une première expérience simple.
Le langage VHDL est utilisé pour la conception de systèmes matériels, son concurrent est Verilog. Petit frère d'ADA, il est assez simple à apprendre pour des informaticiens. Il faudra quand même penser architecture et non algorithme, signaux et non structures de données, horloge et FSM plutôt que rendez-vous et tâche. VHDL sera utilisé lors de toutes les prochaines séances de TP.
La logique séquentielle est caractérisée par un calcul au sens large de l'état futur d'un système en fonction de l'état présent, tout cela au rythme de fronts d'horloges qui cadence le circuit électronique. Nous allons dans un premier temps aborder la construction des éléments de base en VHDL ( instruction conditionnelle, process)
Synchronisation, horloge et éléments de base d'un circuit synchrone
Les circuits logiques combinatoires ne suffisent pas à eux seuls à la manipulation de l’information Les circuits séquentiels permettent la mise au point de systèmes dont le fonctionnement dépend non plus seulement des entrées reçues, mais également des informations traitées précédemment dans le cours de leur fonctionnement. Une forme de mémoire est mise en œuvre, cette mémoire permet au circuit de se souvenir du passé. Dans cette leçon, nous allons définir les outils de bases nous permettant de construire des circuits séquentiels plus complexes.
Un automate fini ou automate avec un nombre fini d'états (en anglais finite-state automaton ou finite state machine) est un modèle mathématique de calcul, utilisé dans de nombreuses circonstances, allant de la conception de programmes informatiques et de circuits en logique séquentielle aux applications dans des protocoles de communication, le contrôle des processus...Les Machines à états fnis (FSM en anglais) sont utlisées pour décrire des comportements séquentels liés au contrôle des partes opératves Cet aspect séquentel fait intervenir la noton d’état interne implémentés dans les circuits sous forme de registres
Accélérateur matériel IP - intégrateur HoMade
Les FPGA permettent de concevoir des "accélérateurs matériels": un circuit dédié, instancié sur le FPGA qui utilise au mieux les ressources matérielles offertes. Certains softcores ( un cœur de processeur instanciable sur FPGA comme HoMade) proposent des facilitées pour connecter ces IPs " Intellectual Properties" associées à des spécialisations du langage machine et donc du softcore. HoMade sur cette idée va plus loin en généralisant la notion d'IP: tout calcul est réalisé par un IP ou accélérateur matériel. HoMade est un cœur d'intégration d'IPs. Sans IP il ne peut rien faire!
Fini la programmation en binaire, vive l’assembleur Hasm. C'est un assembleur pour HoMade qui permet la définition de nouveaux IP et la manipulation de tous ces IPs dans une démarche programmation structurée.
Développez un programme est assez facile pour un informaticien, mais développer du hard vaut souvent le coup en terme de performance. Tout est question de compromis entre temps de développement et performances espérées. Vous allez transformer étape par étape une version fortement logicielle en version fortement matérielle, ici HoMade permet cette cohabitation et mieux encore il en tire partie en amenant performance et facilité de développement.
Hardware complexe dans un software simple
Pour être capable d’ intégrer un système, il faut: Réutiliser les blocs déjà conçus (Design Reuse), Acheter ou trouver des blocs génériques chez des fournisseurs extérieurs; Les IP sont des blocs de propriété intellectuelle encore appelés: IP, IP blocks, cores, system-level blocks (SLB), macros, system level macros (SLMs), or Virtual Components (VCs).
HoMade permettra de les intégrer dans un système programmable
Introduction au parallémise sur HoMade
Le parallélisme consiste à mettre en œuvre des architectures d'électronique numérique permettant de traiter des informations de manière simultanée, ainsi que les algorithmes spécialisés pour celles-ci. Ces techniques ont pour but de réaliser le plus grand nombre d'opérations en un temps le plus petit possible.
HoMade est cosntruit pour suppurter le mode de d'exécution SPMD sur un modèle maître esclaves.