VHDL

MetaFor, plan d'attaque

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.

MetaFor, enfin une simulation en ligne dynamique et complète pour le VHDL

Une preview possible (le graphisme va être amélioré /o\) :

Alors voilà le topo : il faut simuler l'intégralité du code VHDL de ma montre (A)
pour pouvoir (B) faire la carte électronique
pour pouvoir (C) l'intégrer dans le bracelet qui sera fini entre temps.

Donc, le travail majeur du moment c'est la simulation, et pour ça, il faut un environnement de simulation qui ne soit pas dépendant de l'OS, ce qui parait à priori impossible.

Mais grâce à l'efficacité et à l'intelligence (je dirai bien le génie, mais il prétend ne pas en être un) de Whygee, ça devient possible, utile et stimulant même pour d'autres projets, et je l'espère bien (c'est mon second objectif) pour tous le monde, vous y compris. Pour tous ceux qui veulent simuler du code VHDL ou simplement simuler de l'électronique sans avoir à faire la chasse au logiciel pro semi payant sous Licence commerciale...

Voici le plan :

1) Utiliser le support de YASEP et de YGWM pour l'interface utilisateur, donc pour enregistrer et utiliser des fichiers externes, créer du code VHDL de simulation de façon automatisée, faire un bel (et simple) environnement de simulation, tout ce qui demande de la flexibilité, YASEP peut le faire :) (et Whygee aussi)

2) Le logiciel doit avoir deux fonctions :

- premièrement il faut pouvoir afficher et exploiter la liste des entrée-sorties du code VHDL

=> faire entrer du code VHDL dans l'environnement

- deuxièmement, il faut pouvoir assembler des éléments de simulation (LEDs, boutons divers, bus de données, horloge, etc) pour produire une interface efficace et pratique à modifier entre le code VHDL et la simulation (en offrant la possibilité d'enregistrer, et donc de réutiliser le code de simulation)

=> faire sortir du code VHDL de l'environnement

3) pour la simulation elle même, elle doit être graphique (sans forcer sur le trait, j'ai pas dis kikoolol) et il faut pouvoir interagir facilement avec les éléments "interactif", ça tombe plutôt bien, non ? Donc pouvoir mettre en "on" ou en "off" les boutons on-off par exemple, régler les boutons de réglage, enfin bref, une VRAI simulation qui va jusqu'au bout de l'idée.

création d'une montre en FPGA + VHDL : le point

L'objectif est de reproduire l'objet ci-dessus avec quelques modifications :

* pour la version 1 (vs Toshiko) :

* pour la version 2 (vs John):

* pour la version 3 (vs Jack):

Reste à faire :

* quelques articles,

* la simulation sous Linux, EN COURS

* Le bracelet : dessiner le patron et l'envoyer à YG,

* on a déjà :

- la puce, un FPGA d'Actel, l'igloo nano AGLN125, boitier VQ100, vendeur = mouser (http://fr.mouser.com/ProductDetail/Actel/AGLN125V5-ZVQG100/?qs=sGAEpiMZZ...),

- les LEDs "blanc froid", format 0603,

* reste à acheter :
- le quadruple bouton poussoir,
- les 2 boutons poussoirs,
- le boitier,
- les afficheurs :
- version john : 2*1,5 (H*L),
- version jack : 2,5*4 (H*L)

* l'électronique :

a) circuit électronique rigide, simple face,

b) V1 : circuit perso, sans CPU (celui décrit dans la série d'articles sur la montre),

c) V2 : YASEP16, collection de programmes en assembleur YASEP (on va bien s'amuser !),

d) protection extérieure : http://www.shapeways.com/ s'impose je crois, il faut juste réaliser le modèle 3D, mais y a plus dur.

Pour les intimes, voir la page du wiki de YGDES (wiki:montre_llo).

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer