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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.