if-while abfrage

Gast #2086100
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
Gast #2086184
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.
Moderator (Firma: Titel) Persönliche Seite #2086377
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.