ISE 11.1 problem

Gast #1344020
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
#1345300
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren