Dès que l’on a un FPGA entre les mains, la première chose à laquelle on pense est d'y synthétiser un processeur. Il existe un certain nombre de processeurs qu'on appelle "softcore" sur lesquels des codes s'exécutent plus ou moins efficacement. Si on s'en limite à ce genre de développement, les FPGAs n'ont pas apportés grand-chose si ce n'est le fait que l'on peut choisir son processeur en fonction de son utilisation. Des solutions propriétaires comme picoblaze microblaze, Nios Nios II, des solutions open source Leon OpenRisc ou FC16, le choix est vaste et la liste loin d'être exhaustive. A l'extrême les FPGA permettent de concevoir des "accélérateurs matériels", un circuit dédié, instancié sur le FPGA qui utilise cette fois au mieux les ressources matérielles offertes. Entre ces deux approches, il existe un certains nombres de facilitées pour connecter des IP " Intellectual Properties" dans des softcores ou encore des spécialisations du langage machine et donc du softcore pour s'adapter aux caractéristiques de l'applicatif

Certaines familles de FPGA supportent une fonctionnalité de reconfiguration dynamique qui ouvre de nouvelles possibilités dans la mise en place de systèmes matériels. En effet lors de l'exécution, et non plus lors de la conception, on peut alors associer des tranches de silicium temporairement dédié à une partie du traitement de l’applicatif.

HOMADE est un processeur que vous allez vous fabriquer sur mesure. Il ne fera rien sans que vous ne lui en donnez les moyens par l'ajout statique ou dynamique d'IP interfacés à la pile de l'Homade.

Dernières nouvelles:


Mars 2015 : Le processeur HoMade passe aussi à la V6! La grande nouveauté  de cette version concerne la prise en compte des interruptions  par le maître . Un mode d'exécution kernel non préemptif est intégré. Il permet d'interrompre une exécution séquentielle , soit par interruption extérieure, soit par un IP utilsateur. Un arbitre  assure la priorité de 7 interruptions  en respect du protocole de handshaking

Février 2015 : L'assembleur  passe à une version plus ligth coté syntaxe!! Même code produit mais avec moins de contraintes syntaxiques. Des messages d'erreurs sont produits par le compilateur. L'assembleur V6.0 intègre des constructeurs pour la reconfiguration dynamique. Il propose aussi une gestion de la mémoire du maître  qui permet la mise en place de 7 programmes d'interruption. 


 HoMade poursuit son évolution : Release et diffusion de la V5 !!!

Une grille 2D torique de 12 x 12 HoMade avec un maître sur une VC707.... 145 cœurs sur le même FPGA!!!

prochain rendez-vous sur le V7 T2000!!!!! Objectif 512 HoMade!!! si vous avez une carte à me prêter  ;-)

Déjà ancien avec la V4,  une ML605, 32 processeurs en anneau plus connu sous le nom de dotriacontagone qui, sous le contrôle d'un maître, exécutent suivant une activité pilotée par le maître, chacun s'exécute à son propre rythme et son propre contexte . Un numéro est associé à chaque processeur dans l'anneau. Ensuite les données produites en mode SPMD sont rapatriée vers le maître pour affichage une à une via le processeur 0 après une barrière de synchronisation. Toujours faisable avec la V5!

Les versions précédentes ne sont plus maintenues!!!

Les versions HoMade

Homade Version 1.4

  • Versions Nexys2 et Nexys3 disponibles
  • Bibliothèque d'IP générique
  • Bibliothèques d'IP nexys2 (I/O) et Nexys 3
  • Un langage d'assemblage structuré
  • Un assembleur utilisant GForth
  • Des exemples de code

Homade Version 1.5

  • Versions  Nexys3 disponibles
  • Pré-chargement du code binaire sur la RAM de la carte
  • Changement de programme binaire en PROM sans devoir synthétiser
  • Correction de bug

Homade Version 2.2

  • Versions  Nexys3 disponibles
  • Pipe-line 3 étages : plus de 100Mhz en clock
  • Introduction de la réflexivité via l'instruction WIM
  • Assembleur introduit la notion de VC : Virtual Component
  • Nouveaux exemples
HoMade V4: 
  • ML605 V6 dispo
  • V7 Dispo
  • Une nouvelle gestion de la pile d'exécution plus économique
  • Un ensemble d'IP permettant d'établir un réseau d'esclaves HoMade  en anneau mono directionnel. Une communication série sur l'anneau ou parallèle 32 bits.
HoMade V5: 03/2014
  • nouvelle architecture pipeline - branchement conditionnel retardé par anticipation
  • nouvelle FSM unifiée : pipeline 2 étages
  • nouvelle numérotation de certains  IPs
  • nouvelle gestion de l'activité des Slaves en  1D/2D  avec vue globale onx, ony, onxy, all et un IP local  sleep qui retire le Slave du prochain appel SPMD
  • nouveau chargement des mémoires de programme  bit à bit,pour le master et  les slaves
  • nouveaux noms de certains composants.
  • nouvelles versions de pas mal d IPs (inside)
  • nouveau réseau de communication entre Slaves en 2D torique ou non avec un  IP  de broadcast et de communication torique en x ou en y
  • nouveau format de fichier hmd shmd en input (à respecter!!) 
  • nouveau test_bench à lecture rapide des fichiers d’instructions
  • nouveau  wrapper uart
  • nouvel assembleur hasm pour ceux qui ne parlent pas le binaire avec un émulateur en forth.
  • nouvelle IHM HoMade pour windows... 
  • version nexys3 ne supporte pas plus de 2x1 slaves mais Isim supporte beaucoup plus!!!
  • V6 V7 fonctionnelles jusque 12 x 12 esclaves soit 145 HoMade on Chip
HoMade V6: 03/2015
  • nouvelle entity du processeur maître qui incorpore
    •  3 fils de entrée pour les interruptions ( 000 = pas d interruption )
    • 1 fil en sortie pour le mode kernel
  • Intégration d'un arbitre  qui assure les priorités entre 7 interruptions  1..7 avec un protocole handshaking et non préemptif


Download

accès de la version V5 ou V6 sur Nexys3 avec quelques codes en assembleur: Contactez-moi!!
Plus de 200 chargements de la V5 en décembre 2014
plus de 100 chargements de la V4 en novembre 2013! 
plus de 100 beta-testeurs étudiants en M1 informatique de Lille 1 tous les ans

ancienne release dispo sur demande...
Plus de 100 chargement de la version 1.4 en 2012
3 projets de M1 sur Homade en 2013, 2 projets en 2014

Formation
  • Les TPS HoMade sur carte Nexys3 sont à jour ici
    • Vous pourrez charger une version spéciale Tri processeurs pour ces TPs dédiée à la Nexys3V5
  • Organisation de formation d'initiation à la carte Nexys3
  • Organisation de formations sur le processeur HoMade :
    • Programmation binaire
    • Programmation assembleur 
    • Approche réflexive monoprocesseur et multi SPMD
    • Calcul SPMD
    • Création d'IPs

  • Disponibilité de Janvier à Juin
  • Durée 3 à 5 jours
  • Prêt de cartes Nexys3 durant la formation
  • Contactez-moi

contact homade


Sous-pages (1) : HoMade