Forum: FPGA, VHDL & Co. ISE 11.1 problem


von gast (Gast)


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

von Flo _. (mcolf)


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;

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.