Obstacles à détruire :
1) développer le JS de l'interface
2) créer des fils entre plusieurs points d'accroche en JS
-> Regarder ygwm.html puis ygwm.demo.js.
-> ygwm.html inclut des fichiers .js de ygwm qui n'ont pas besoin d'être modifiés, puisque ce sont des librairies.
3) éditer dynamiquement du VHDL sur un serveur
4) faire tourner GHDL sur un serveur et l'automatiser
__________________________________________
Idée de base : Tout est VHDL
INTERPRETATION ET DESCRIPTION :
A) DESCRIPTION :
Tous les composants utilisés en simulation seront des composants VHDL, c'est à dire des unités réutilisables à l'infini :
- certains seront figés (les plus simples, par exemple les leds, les switchs)
- d'autres seront éditables, par un simple click sur le composant, faisant apparaitre une fenêtre ygwm d'édition (par exemple : puces complexes)
Pour chaque composant a créer, il faudra donc :
- une image,
- une map avec la position des bornes du composants (points d'entrées et de sorties),
- une description en VHDL du composant (unité de conception : entité, architecture)
Il faudra aussi ajouter du code JS pour l'interaction / l'action en fonction de la souris et de la simulation.
La totalité de la simulation sera un fichier VHDL édité dynamiquement au fur et à mesure du placement des composants. Ce fichier sera compilé via ghdl installé sur le serveur et géré de façon automatique. Il pourra être enregistré en local, chargé, rechargé...
Voici une liste des principaux composants :
- alimentation
- LEDS/Afficheurs
- boutons poussoirs/switch
- horloges
- oscilloscope virtuel ? (pouvoir sonder l'état d'un fil serait un plus)
- puces avec un nombre de broches standard (16/64/125/256).
Cette liste est très largement extensible, notamment à tous les composants numériques, c'est à dire au comportement prévisible et descriptible.
B) INTERPRETATION :
La totalité des composants et de la simulation sera donc interprété par JS+CSS+HTML dans un environnement inspiré d'YGWM (une surcouche graphique de qualitay quoi).
Les fils entre les composants seront la seule réelle difficulté à résoudre d'un point de vue JS, mais je sais que c'est faisable car ça as déjà été fait par le passé. Il faudra évidemment qu'ils soient VHDL eux aussi : il s'agira tout bêtement des signaux et variables du code.
Quand on estimera que la simulation est prête à se dérouler, il n'y aura qu'à compiler et exécuter le fichier de simulation global. En fonction des données circulant dans les fils (appuie sur un bouton poussoir), il y aura réaction, ou pas ;) On pourra aussi arrêter la simulation à tout moment.
Un simple bouton play-pause en fait.
L'intérêt numéro 2 (juste après le fait de pouvoir créer facilement des composants) c'est qu'il sera possible d'accéder à la liste des composants et des signaux sans grande difficulté :
il suffira d'apprendre à javascript à décrypter le fichier VHDL de simulation : la liste des signaux est dans l'entité et pour les composants, ce n'est pas beaucoup plus dur, il y a un mot clé.
Il faudra par contre pouvoir créer du VHDL de façon automatisée, mais je ne désespère pas.
Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer