La liste de sensibilité est plus une doc qu'autre chose
Il faut utiliser des process synchrones, même si ils sont combinatoires (synchrone === clock et reset uniquement comme déclencheurs)
En fait, avec des process synchrones, le synthétiseur est capable de déterminer les temps de propagation des signaux et donc la tenue en fréquence du système. Sans ça, il faut calculer le déphasage de chaque combinatoire pour déterminer la stabilité du système. Le synchrone, quand c'est possible, c'est le Bien. Quand c'est pas possible... ca me semble dépasser le niveau du SdZ.
Oui, clairement. Le truc, c'est que là au moins tu maîtrise la fréquence des calculs qui s'ensuivent : si tu es OK pour calculer à 10MHz, tu échantillonne à 10MHz et c'est bon. En revanche, imagine que ton calcul aie un temps effectif tel que le process ne peut se faire que 10 fois par seconde : ton signal si il se produit trop souvent va potentiellement foutre un bazar pas possible... Séquencer le signal permet de maîtriser la fréquence de calcul.
Le seul cas où c'est pertinent, sur un FPGA, c'est quand tu ne peux pas échantillonner le signal, comme tu l'as bien dit, mais soyons sérieux : un FPGA assez basique peut échantillonner un signal carré à 100MHz, ce qui est le maximum que peut acquérir un oscilloscope milieu de gamme. Tu vas souvent au delà de ça toi ?
Si ton entrée est plus rapide que ton horloge, tu accélères ton horloge. Si tu ne peux pas, c'est que ta combinatoire se stabilise moins vite que ton signal n'évolue. Dans ce cas, tu ne peux plus faire de numérique.
Et si tu ne connais pas ton signal d'entrée, mets un filtre anti-repliement avant ton FPGA. Sans ça, tu ne sais pas si ton système est capable de traiter ton signal.
Bonjour, je serai aussi partant pour un tuto sur le VHDL.
Pour ceux que ça intéresse, un prof de Telecom Paris à mis sur son site un cours très complet sur le VHDL : http://comelec.enst.fr/hdl/vhdl_structurel.html
Je réveille peut-être un mort mais j'aimerais savoir si la rédaction de ce cours est toujours en cours ou bien si c'est complètement arrêté. D'après ce que j'ai compris, bourgneuf a pas mal avancé, donc même si le tuto n'est pas complet, je trouverais ça bien de le mettre en ligne, au moins pour avoir une introduction, quitte à ce qu'il soit complété par la suite. Je trouve que cela serait dommage que le boulot qui a été fait soit mis de côté. J'aimerais vraiment pouvoir avoir accès à un tel tuto, c'est un sujet qui m'intéresse.
Merci pour ce déterrage car je suis vraiment très très intéressé. Je suis partant pour t'aider. J'ai je penses de bonnes connaissances sur le sujet puisque que je travaille avec le VHDL presque tous les jours.
Si tu veux me contacter par MP pour organiser cela je suis plus que partant.
J'y ai un peu réfléchi et faire un cours sur le langage VHDL en tant que tel n'a pas grand intérêt. Ce qui peut être intéressant c'est un cours le desgin numérique, qui s'appuierait pourquoi pas sur le VHDL. Mais ce n'est même pas la peine de parler de ça si on ne connait pas les bases de l’électronique numérique et, par régression vers le plus petit dénominateur commun (on est sur le sdz hein), on se rends compte qu'il va falloir commencer le cours par l'algèbre de bool.... C'est un travail titanesque.
Autre point qui me semble délicat : ce qui fait que les cours d'informatique du sdz on si bien marché, c'est que pour les consulter il faut avoir un ordinateur donc on a déjà l'outil de travail. Pour l’électronique (même numérique), c'est plus compliqué.
Ces difficultés ne sont pas insurmontable mais il est clair que de se lancer bille en tête dans un cours qui ânonne les différentes instructions et leur syntaxe (souvent affreuse d'ailleurs) ce n'est pas une bonne idée.
Je suis totalement d'accord avec toi pour le fait que faire un cours sur le VHDL comme ça sortie de nul part n'est pas le top du top car il faut des connaissances préalables.
Mais il pourra toujours servir à une personne devant/voulant se consacrer à un projet sur FPGA et ayant déjà des bases en électronique numérique.
Au delà de ça si j'ai fait cette proposition c'est surtout car j'ai rejoint il y a peu le groupe rédigeant le tuto sur l'électronique de zéro. Nous sommes en train de voir pour changer la structure du cours afin d'avoir quelque chose de compet. Dans cette optique il y aurait une partie sur la logique de base conduisant aux base de l'électronique numérique. Il semble que du coup le cours sur le VHDL ne soit pas si hors de propos que cela.
Et si cela se fait il peut être intéressant de voir ce qui a déjà été fait plutôt que de partir totalement de zéro.
Mais il pourra toujours servir à une personne devant/voulant se consacrer à un projet sur FPGA et ayant déjà des bases en électronique numérique.
Certes mais ce n'est pas la philosophie du site.
Et si cela se fait il peut être intéressant de voir ce qui a déjà été fait plutôt que de partir totalement de zéro.
Si on peut dire aux zéros de commencer par la lecture de tel tuto avant, c'est clair qu'il faut en profiter. Je tenais juste à rappeler qu'il faut déjà avoir une bonne base en numérique avant d'aborder le langage, sinon on se retrouve avec des débutants qui ne comprenne pas qu'ils ont affaire à des portes et des bascules et qui feront du VHDL comme on ferait de l'Ada.
Je reste très content que ce genre de projet voit le jour sur ce site, je ne sais pas si j'ai le sens pédagogique pour rédiger mais vous pouvez toujours compter sur moi pour de la relecture.
Je ne connais pas du tout l'Ada mais j'imagine ce que tu veux dire. J'ai déjà expérimenter la lecture de code VHDL mais fait comme si c'était du C.
Je suis d'accord qu'il faut un minimum de connaissance en numérique afin de comprendre ce que l'on fait, ce sur quoi on travaille. Mais il n'y a pas besoin non plus d'être un expert. Du moment que l'idée du design et son architecture son bien précisé il est tout à fait de s'en sortir.
Pour en revenir au lien avec le cours je pensais justement présenter les différentes manières de coder les éléments de base de l'électronique numérique présenter dans le cours. De cette manière cela pourra lier cour et pratique.
Polinichon a écrit:
>Je ne connais pas du tout l'Ada mais j'imagine ce que tu veux dire.
C'est un langage impératif, sa syntaxe est très proche du VHDL (en fait ce serait plutôt le contraire mais bon).
>Je suis d'accord qu'il faut un minimum de connaissance en numérique afin de comprendre ce que l'on fait, ce sur quoi on travaille. Mais il n'y a pas besoin non plus d'être un expert. Du moment que l'idée du design et son architecture son bien précisé il est tout à fait de s'en sortir.
Être expert non (d'ailleurs personne n'est expert ici), mais je pense qu'on n'est pas d'accord avec le minimum requis . Mais peut être que ne suis simplement pas assez bon. C'est toujours plus facile d'expliquer quelque chose avec lesquels on a du recul. Si tu arrive à rendre tes explications limpides même pour un néophyte alors bravo.
Pour en revenir au lien avec le cours je pensais justement présenter les différentes manières de coder les éléments de base de l'électronique numérique présenter dans le cours. De cette manière cela pourra lier cour et pratique.
Oui c'est évident comme approche, de toute façon faut en bouffer de la bascule D avant de comprendre le design synchrone.
C'est justement sur ce point que nos avis diffère.
Je ne pense pas que la connaissance de la bascule D (bien que ça soit assez simple) soit impérative lorsque tu veux créer un design. Pour ma part lorque je fait un design j'en décrit le comportement de la manière la plus clair possible. En aucun cas je fais référence à des bascules ou autres composant de base de l'électronique numérique. Je laisse ça au compilateur/synthétiseur.
Après c'est mon point de vue et peut être que en réalité si je les utilise mais sans m'en rendre compte. Si c'est le cas alors je pense que j'ai pas fini d'en chier pour le cours
Justement, on ne peut pas concevoir un système numérique sans comprendre ce qui se passe en dessous, la notion de logique synchrone, des bascules, des boucles logiques, du chemin minimum...
Après c'est mon point de vue et peut être que en réalité si je les utilise mais sans m'en rendre compte. Si c'est le cas alors je pense que j'ai pas fini d'en chier pour le cours
Si tu fais des choses toujours sur le front montant d'une horloge, par exemple comme ceci :
process(clk)
if rising_edge(clk) then
-- blabla
end if;
end process;
Alors oui tu as forcément de la bascule D la dessous. Et je ne conçois pas qu'on puisse ne pas comprendre ça et faire un design correct.
Tu entends quoi toi par le minimum requis ?
Eh bien pour moi un cours partant de connaissances de lycéen devrait d'une manière ou d'une autre aborder les points suivants :
Logique combinatoire
algèbre de bool
porte logique
Circuit de base (mux, additionneur, ...)
Logique séquentiel
horloge
bascule D
Circuit de base (registre à décalage, compteur)
Machine d'état
Design Synchrone
analyse top-down
conception bottom-up
Le VHDL
langage de description matériel
instruction concurrente
instruction sequentiel
instruction structurel
banc de test, simulation
Synthèse sur composant programmable
Une cible et donc un constructeur et son flot de conception associé
Généralités translate/map/Place and route
Contrainte de timing, métastabilité
Ce n'est pas une proposition de plan de cours mais juste ce qui me semble nécessaire de savoir ou au moins connaitre pour faire du design numérique sur FPGA ou CPLD. Après, comment (sous quel forme et dans quel ordre) présenter tous ces points dans un/des cours ludiques et intéressants c'est tout le travail du pédagogue. Et c'est loin d'être facile...
Edit : J'ai dit VHDL parce que c'est le sujet mais en fait n'importe quel HDL ferait l'affaire, je pense en particulier au Verilog, mais il y en a d'autre.
Je suis assez d'accord avec ton plan de cours ça me parrait logique.
VHDL ça me convient très bien comme je ne connais pas du tout le Verilog.
Pour le coup du process synchrone je suis totalement d'accord avec toi qu'il y a de la bascule D en dessous. Mais je ne pense pas la connaissance de la bascule soit indispensable. Par contre la compréhension du fonctionnement d'un système système synchrone me parrait en effet indispensable.
EDIT: Après petite réflexion je me rends compte que tu as raison. En me remémorant comment j'ai apris le fonctionnement des circuits synchrones c'est vrai qu'il a fallu passé pas la bascule D. C'est juste que j'ai tellement l'habitude que je n'y prête plus attention je penses.
Je suis assez d'accord avec ton plan de cours ça me parrait logique.
Ce n'est pas un plan de cours. Un cours avec les choses présentés dans cet ordre serait horrible à suivre et presque impossible à assimiler, imagine on ne commencerait la pratique qu'à la 4ième partie ! N'oublie pas que les zéro n'ont ni de labo d’électronique, ni de TD, ni d'assistants pour les aider au fur et à mesure. Non non, c'est juste un récapitulatif des points par catégorie, faire un bon tuto à partir de ça demande de faire un gros travail pédagogique, pas simplement remplir les trous.
Oui oui je suis d'accord j'ai dit plan comme ça. J'aurais tout autant pu dire contenu.
De toute façon on y pas encore à faire ce cours. On serait surement 2 à le reprendre pour essayer de l'inclure du mieux possbile dans le cours général sur l'électronique.
Le gros problème avec la pratique du VHDL c'est que le matériel est un peu plus cher que pour un simple arduino. Mais en contre-partie seule la carte de dev est nécéssaire (à condition de prendre une carte avec ce qu'il faut dessus comme afficheur, bouton, switch) pour débuter. Ca sera l'occasion aussi de m'en acheter une pour moi ! Depuis le temps que je dis qu'il faut que j'en achète une.
Une cible et donc un constructeur et son flot de conception associé
Généralités translate/map/Place and route
Contrainte de timing, métastabilité
Merci pour ça, c'est vraiment très bon à savoir. Le jour où j'aurai le temps de m'y mettre, je ne manquerai pas de revenir voir cette belle petite liste. Merci simbilou
Je trouve cela dommage, il y en a qui disent que c'est vraiment trop dur pour faire un tuto là-dessus, mais quand je vois qu'il existe sur ce site un tuto sur la mécanique quantique...
Je ne sais ps si il y a une section électronique numérique ? Je suis un peu perdu avec la nouvelle interface mais si ça n'existe pas, je pense commencer par faire un tuto la dessus.
Je ne sais ps si il y a une section électronique numérique ?
Non mais il y a déjà des tutos électroniques dans la section science. Et puis le numérique c’est beaucoup de programmation donc ça a tout à fait sa place sur le sdz. Il n’y a pas, pour le moment, d’outils de rédaction de tuto sur le site mais rien ne t’empêche de commencer ton cours avec ton éditeur de texte préféré. Le travail qu’un tel tuto suppose est je pense suffisamment important pour pouvoir reléguer à plus tard des questions de mise en page.
Non mais il y a déjà des tutos électroniques dans la section science. Et puis le numérique c’est beaucoup de programmation donc ça a tout à fait sa place sur le sdz.
En fait l'électronique numérique et analogique sont deux choses assez différentes. Je ne parle pas ici de microcontroleur du genre PIC ou AVR mais plutôt de logique combinatoire. En fait il s'agit de partir d'un peu plus loin, au niveau portes logiques. L'idée est de faire le lien entre les deux mondes en partant de la base.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.