Simulationsstart - Debugging

Gast #1442797
Lesenswert?

Hallo,

am synthese-fähigen Code liegt es wohl nicht, da ich den Code 
erfolgreich
durch die Synthese bekomme. Also bleibt der Testbench-Code übrig.
Und als Fehlermeldung steht da lediglich, dass das iteration limit 
erreicht wurde, sonst nichts.

Was kann man in Modelsim machen ?

Michaeli
Moderator (Firma: Titel) Persönliche Seite #1442860
Lesenswert?

> am synthese-fähigen Code liegt es wohl nicht, da ich den Code
> erfolgreich durch die Synthese bekomme.
Diese Behauptung ist etwas gewagt... :-/
Läuft der auch, und tut er was er soll?
Such mal den Synthesereport nach solchen Meldungen durch:
...combinatorial loop... ...latch...

Nehmen wir mal diese simple aber falsche Beschreibung eines Zählers mit 
Enable-Eingang:
1
library IEEE;
2
use IEEE.std_logic_1164.all;
3
use IEEE.numeric_std.all;
4

5
entity CombLoop is
6
    Port (en  : in STD_LOGIC;
7
         cnt : out  STD_LOGIC_VECTOR (7 downto 0));
8
end CombLoop;
9

10
architecture Behavioral of CombLoop is
11
signal c : unsigned (7 downto 0) := "00000000";
12
begin
13
   c   <= c+1 when en='1';
14
   cnt <= std_logic_vector(c);
15
end Behavioral;
Heraus kommt:
Process "Synthesize" completed successfully
Im Synthesereport steht aber auch:
Xst:737 - Found 8-bit latch for signal <c>.

Wenn en auf '1' ist, sagt der Simulator:
# ** Error: (vsim-3601) Iteration limit reached at time 0 ps.

QED.

Sieh dir zu dem Thema mal das an:
http://www.lothar-miller.de/s9y/categories/36-Kombinatorische-Schleife

Poste mal deinen VHDL-Code, wenn man diesen Fehler mal gemacht hat, 
erkennt man den blitzschnell.

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