Forum: FPGA, VHDL & Co. Variable vergleichen und Hysterese


von Mike (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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
von Michael W. (Gast)


Lesenswert?

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.

von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

Alles Gute alles Liebe.

von Falk B. (falk)


Lesenswert?

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 . . .

von Gustl B. (gustl_b)


Lesenswert?

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.

von Duke Scarring (Gast)


Lesenswert?

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

von Mike (Gast)


Lesenswert?

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!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

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
von Michael W. (Gast)


Lesenswert?

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.

von chris_ (Gast)


Lesenswert?

>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?

von Gustl B. (gustl_b)


Lesenswert?

Jetzt schlagen hier die Leute auf die nicht mal richtig zitieren können. 
Weia.

von Tobias (. (Gast)


Lesenswert?

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.

von Duke Scarring (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.