mikrocontroller.net

Forum: FPGA, VHDL & Co. ISE 11.1 problem


Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe in VHDL ein case Anweisung geschrieben. Diese hat auch 
funktioniert (wurde synthetisiert). Nach dem ich etwas an der 
StateMachine geändert hab, kommt bei jedem bzw. zu jedem benutzten 
Signal in der StateMachine folgender Fehler.
Beispiel:
if(CLK'event and CLK='1')then
   case state is
      when 0 =>  RD_EN <= '0';
                 state <= 1;
      when 1 =>  if (ReadData_of_FIFO_IN >= b"100000") then
                    RD_EN <= '1';
                    state <= 100;
                 elsif (read_data = '1') then
                    state <= 300;
                 elsif (WriteData_to_FIFO_OUT = '1') then
                    state <= 400;
                 end if;
   end case;
end if;

ERROR:Xst:1706 - Unit <Top>: port <C> of FF/Latch 
<Inst_VideoBufFIFOs/RD_EN> has no source

ERROR:Xst:1706 - Unit <Top>: port <C> of FF/Latch 
<Inst_VideoBufFIFOs/state_FSM_FFd2> has no source

ERROR:Xst:1706 - Unit <Top>: port <C> of FF/Latch 
<Inst_VideoBufFIFOs/state_FSM_FFd3> has no source

ERROR:Xst:1847 - Design checking failed

Kommentiere ich im 2. state das RD_EN <= '1'; aus, wird es ohne Fehler 
synthetisiert??? kann mir einer sagen warum?

vielen dank für Hilfe

Autor: Flo __ (mcolf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

unter when 1 hast du falls die erste Bedingung nicht zutrifft keine 
Signalzuweisung für RD_EN.

Versuche es doch mal so:

if(CLK'event and CLK='1')then
   case state is
      when 0 =>  RD_EN <= '0';
                 state <= 1;
      when 1 =>  if (ReadData_of_FIFO_IN >= b"100000") then
                    RD_EN <= '1';
                    state <= 100;
                 else
                    RD_EN <= '0';
                    if (read_data = '1') then
                        state <= 300;
                    elsif (WriteData_to_FIFO_OUT = '1') then
                        state <= 400;
                    end if;
                 end if;
   end case;
end if;

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.