Hallo VHDL - Experten, ich habe nachfolgendes Problem (bzw. stehe absolut auf dem Schlauch) bei der Umsetzung in VHDL. Evtl. kann mir hier jemand mit seiner Expertise eine Hilfestellung geben ;) - Ich habe eine Variable 1 (Spannungswert aus ADC) - Diese möchte ich mit einer Variable 2 (oberes Spannungslimit) vergleichen - Sobald Variable 2 überschritten ist, möchte ich dies an einem Portpin (P1) anzeigen (Portpin 1 soll von high nach low) - Dieser Portpin (P1) soll erst wieder nach high gehen, wenn Variable 2 abzüglich einer Hysterese (HysVariable 3) unterschritten wird. Im Voraus schon mal vielen Dank für eure Hilfe. Beste Grüße Mike
Wo liegt das Problem? Die Bedingungen für Setzen und Löschen des Ausgangs sind doch klar, die kann man einfach so hinschreiben. Wenn keine der beiden zutrifft, ändert sich nix. Das kriegt der VHDL-Compiler schon hin.
Mike schrieb: > - Ich habe eine Variable 1 (Spannungswert aus ADC) > - Diese möchte ich mit einer Variable 2 (oberes Spannungslimit) vergleichen Ich bin mir nicht sicher, ob du verstanden hast, was Variablen ind VHDL sind. Evtl. solltest du in deinem Text besser den Begriff "Wert" statt "Variable" verwenden. Dann ist der Begriff Variable wieder für das frei, was er in VHDL bedeutet. Sieh mal den Beitrag "Variable vs Signal" an und denk so lange drüber nach, bis du ihn verstanden hast. > Evtl. kann mir hier jemand mit seiner Expertise eine Hilfestellung geben 1. Wie würdest du diese "Schaltung" in Hardware aufbauen? Zeichen eine Skizze davon, so mit Komparator usw... 2. Wenn du davon ein Bild hast (wenigstens im Kopf), dann beschreibe dieses mit der HardwareBESCHREIBUNGSsprache VHDL. 3. Verwende Signale. Du brauchst keine Variablen für diese Aufgabe. > bei der Umsetzung in VHDL. Fang doch einfach mal oben mit dem üblichen "libraries ieee;" an. Und dann kommen die verwendeten Bibliotheken (die std_logic_1164 und die numeric_std reichen hier). Dann die Entity mit der Portliste, dann die Architecture. Und dort rein kommen ein paar Zeilen Code und fertig. Dann das Ganze in den Simulator zum Überprüfen.
:
Bearbeitet durch Moderator
Mir graust es vor diesem Neu-FPGA-Programmierern. Das hat doch mit VHDL nichts zu tun. Das ist pure Denke. Hätten die (wie wir) mit OPVs und Komparatoren angefangen, wüssten sie, wie das zu bauen ist.
Gustl B. schrieb: > Alles Gute alles Liebe. Schon wieder? Und was lernt der Fragesteller dadurch? Vor allem zum Thema Eigeninitiative? Mal ganz davon abgesehen, daß dein Komparator nur in der Theorie bzw. Testbench sauber läuft. In einer REALEN Schaltung fängst du dir mit reiner Kombinatorik hier schöne Probleme ein, denn deine Komparatoren erzeugen in der REALEN Welt schöne Glitches. Ich bin mir im Moment auch nicht ganz sicher, ob hier wirklich ein RS-FlipFlop synthetisiert wird, bin schon lange aus VHDL raus . . . Die Namensgebung deiner EingangsSIGNALE ist maximal ungünstig! Denn wie Lothar schon bemerkte, sollte, nein MUSS der Fragesteller sich mal dringend den Unterschied zwischen einem Signal und einer Variable in VHDL klar machen. Außerdem, was soll die doppelt gemoppelte Abfrage der unteren Schaltschwelle? Noch so eine pädagogische Glanzleistung . . .
Falk B. schrieb: > Schon wieder? Und was lernt der Fragesteller dadurch? Vor allem zum > Thema Eigeninitiative? Mihi Pulpo, ich kann es einfach nicht lassen. Falk B. schrieb: > denn deine Komparatoren erzeugen in der REALEN Welt schöne Glitches. Möglich. Kann auch sein, dass die egal sind. Mit Takt ist schöner aber davon schrieb der TO nichts. Falk B. schrieb: > doppelt gemoppelte Abfrage Nein, das stimmt nicht. Falk B. schrieb: > pädagogische Glanzleistung Kann man finden wie man will. Der TO sieht jetzt wie es grob funktioniert, sein Lehrer wird mit dieser Lösung aber nicht zufrieden sein. Der TO muss also nochmal ran und das umbauen.
Markus W. schrieb: > Hätten die (wie wir) mit OPVs und > Komparatoren angefangen, wüssten sie, wie das zu bauen ist. Ich habe auch nicht mit OPV und Komparatoren angefangen... Ich denke es gibt viele Weg um zu guten FPGA-Designs zu kommen. Duke
Hallo zusammen, vielen Dank an lkmiller, -gb- für die Hilfestellung und Ratschläge. Ich habe mich nochmal genauer informiert und einiges nochmal nachgelesen und es dann auch mit einer 2fachen if - Abfrage und Vergleich hinbekommen ;) Es war nach nochmaliger, sauberer Vorüberlegung dann doch nicht so schwer ;) Wie gesagt ich bin recht neu auf dem Gebiet und möchte erste Schritte starten und mir das Ganze langsam aneignen (ich stamme aus dem Themengebiet der analogen Schaltungsentwicklung.... OPV's etc. sind mir daher mehr als geläufig ;) Aber schon iwie krass, wie unfreundlich und persönlich hier manche gleich werden..... ist wohl wie überall heutzutage..... im anonymen Internetbashing sind viele recht groß und stark. Schade. Allen anderen nochmal vielen Dank für die Hilfe und ein schönes Wochenende!
Mike schrieb: > Aber schon iwie krass, wie unfreundlich und persönlich hier manche > gleich werden. Da war doch nichts persönlich (eher nur resigniert) und keiner hat dein Auto zerkratzt. Du solltest dir da unbedingt eine dickere Haut zulegen, sonst regst du dich nur unnötig über Nebenschauplätze auf. > Es war nach nochmaliger, sauberer Vorüberlegung dann doch nicht so schwer Sag ich ja. > und es dann auch mit einer 2fachen if - Abfrage und Vergleich hinbekommen Und jetzt musst du dich unbedingt über das bereits erwähnte Thema "Glitches" aufschlauen. Denn das wird mit Sicherheit dafür sorgen, dass dieses Design gar nicht oder wenigstens nicht zuverlässig funktioniert. Und ein Tipp: sieh dir nach der Synthese den RTL-Schaltplan deiner Beschreibung an. Dann kannst du auch gleich sehen, ob der Synthesizer mit deiner Beschreibung klar kommt und erkannt hat, welche Schaltung du damit gemeint hast.
Gustl B. schrieb: > Falk B. schrieb: >> doppelt gemoppelte Abfrage > > Nein, das stimmt nicht. OK, mein Fehler, du prüfst gegen Unterlauf. Im Prinzip richtig, praktisch wird das ein Heidenaufwand mit 3 echten Komparatoren und einem Subtrahierer, der dann praktisch viel Spaß bereitet ;-) Einer der vielen Gründe, warum man hier besser einfach 2 Schaltschwellen von außen vorgibt. Das spart deutlich Aufwand.
:
Bearbeitet durch User
Duke Scarring schrieb: > Markus W. schrieb: >> Hätten die (wie wir) mit OPVs und >> Komparatoren angefangen, wüssten sie, wie das zu bauen ist. > Ich habe auch nicht mit OPV und Komparatoren angefangen... > Ich denke es gibt viele Weg um zu guten FPGA-Designs zu kommen. Es geht hier aber doch nicht um gutes FPGA-Design sondern eher darum, wie das überhaupt gelöst wird und da bin ich nach wie vor der Ansicht, dass das Verständnis für Hardware / Logik nötig ist. Wenn das aber vorhanden ist, ist die Formulierung in VHDL ein Klacks. Das sehe ich bei allen älteren Ingenieuren, die Elektronik gelernt haben und dann zum PLD gekommen sind. Die "Neuen" die direkt in Software anfangen, haben überhaupt keinen Plan, was in der Elektronik passieren muss und lösen das rein abstrakt. Und: Zum "guten FPGA" gehört, daß das FPGA-spezifische- nämlich die digitale Taktung mit einbezogen wird in die Lösung, weil es sich sonst auch mit einem DIFF-Input-Buffer machen ließe, d.j. die super simple Mathe muss getaktet und in eine Elektronik verwandelt werden, damit die Aufgabe gelöst ist. Das ist aber nicht der Fall. Es wurde nur die Mathe hingeschrieben und dies auch nicht vom TE, obwohl die Trivial ist .. ... jedenfalls, wenn man Komparatoren gebaut hat und sie verstanden hat. Daran hapert es. Das ist dann aber die Sorte, die einem im Job begegnet und sich rühmt, "auch mal was mit FPGAs gemacht zu haben" dann den Projektleiter macht und einfache Lösungen hinterfragt, weil sie sie nicht verstehen und deshalb lieber einen teuren Core einkaufen. Falk B. schrieb: > Einer der vielen Gründe, warum man hier besser einfach 2 Schaltschwellen > von außen vorgibt. Das spart deutlich Aufwand. In dem Punkt muss ich widersprechen: Es gibt einen Grund, warum solche Vergleiche im FPGA laufen sollen und nicht im UC, wo die Schaltschwellen ja auch auch berechnet werden müssten. Der Grund ist offensichtlich "Tempo" für Schnellabschaltung etc. Und dann lässt man alle Rechnungen lieber im FPGA machen und gibt bandbreitenfreundlich möglichst wenige Parameter mit. Da die Hystere meistens vom Rauschen abhängt, wird die einmal ins Register geschrieben und ab dann nur noch die Schaltschwelle nachgeführt.
>Gustl B. schrieb: >> Alles Gute alles Liebe. >Schon wieder? Und was lernt der Fragesteller dadurch? Wo genau siehst du in der Fragestellung einen Hinweis darauf, dass er etwas lernen wollte?
Jetzt schlagen hier die Leute auf die nicht mal richtig zitieren können. Weia.
Mike schrieb: > bei > der Umsetzung in VHDL. Ich rate dazu, sich erst einmal ein gutes Buch zu kaufen und das durchzuarbeiten. Meistens wissen die Autoren um die vielen Fallstricke einer neuen Sprache und bringen genug Beispiele. Dabei sind die ganzen grundlegendene Bausteine wie solche Vergleiche, alle erdenklichen Formen von Schleifen und andere Probleme ausreichend vielfältig behandelt und die Lernenden sind auf einem Minimalstand. Sich selber solche Dinge beizubringen ist für weniger Begabte eine Ochsentour.
Markus W. schrieb: > Das sehe ich bei > allen älteren Ingenieuren, die Elektronik gelernt haben und dann zum PLD > gekommen sind. Bei diesen Ingenieuren sehe ich häufig den heftigen Einsatz von Schaltplänen mit hunderten Leitungen auf den kümmerlichen Tools der Hersteller, wo es fünf Zeilen VHDL auch getan hätten. Duke
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.