www.mikrocontroller.net

Forum: FPGA, VHDL & Co. if-while abfrage


Autor: TT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche eine Ampelsteuerung zu programmieren.
Bei der beschreibung soll ja der Zustandsautomat durchlaufen bei 
betätigung der Fussgänger Ampel. Es soll auch einen Knopf geben bei dem 
man ein störsignal beim der Ampel anzeigt.(Gelb blinken).

Ich dachte an sowas


case vState is
 when 0 =>
  ao_led(5 downto 0) <="001100";--Leds entsprechend leuchten

  if cBTN0= '1' then --wenn btn0 getrückt wird
  vState:=vState+1;
  elsif  cBTN2= '1' then  -- wenn btn1 gedrückt wird
  while (cBTN3 != 1 ) loop

-- solange durchlaufen bis btn3 gedrückt wird

  ao_led(10)<= Q(24); -- led blinken lassen
  end loop;
  end if;
 when 1 => .....


ich kriege aber diesen error für while schleife
Line 146. parse error, unexpected EQ

Autor: Falk Brummer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
While schleifen werden während der Synthese abgerollt und jeder 
durchlauf wird in Slices abgebildet. Deshalb ist eine schleife mit 
unbekannter anzahl Durchläufen generell nicht synthesefähig. Deine 
Denkweise zeigt, dass du den grundlegenden FPGA aufbau noch nicht 
verinnerlicht hast.
Ausserdem scheint mir eine Ampelsteuerung wohl kaum die richtige Aufgabe 
für einen FPGA zu sein.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TT schrieb:
> ich versuche eine Ampelsteuerung zu programmieren.
> Ich dachte an sowas
Vergiss diese "Programmier"-Denkweise.
FPGAs werden nicht programmiert, sondern Hardware beschrieben, die 
darauf abgebildet werden soll. Und da gibt es nur Logik und Flipflops. 
Sowas wie du da beschrieben hast, kann nicht abgebildet werden...

Leih dir mal ein Buch zum Thema VHDL-Synthese aus (Reichardt/Schwarz). 
Dann könnte dir einiges klar werden.

Autor: TT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar, danke für die tips.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.