mikrocontroller.net

Forum: FPGA, VHDL & Co. Simulationsstart - Debugging


Autor: Michaeli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
guten tag,

habe folgendes Problem: Mein simulator (Modelsim) stoppt bei 0ps mit 
einer fehlerrmeldung: iteration limit reached at time 0 ps

wie kann man sowas debuggen ? Modelsim ist in diesem fall etwas sparsam 
mit Ursachen-Angaben.


Danke,
Michaeli

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal bei der Synthese nach warnungen bezüglich kombinatorischer 
Schleifen und Latches. Vieleicht liegt es daran.
Vieleicht wurde aber auch das Kompilieren wegen irgeneinem Feler 
abgebrochen.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wie kann man sowas debuggen ?
Dein Code hat einen Fehler  :-/
Ich tippe auf eine kombinatorische Schleife.

Was steht da sonst noch bei der Meldung?
Bekommst du irgendwelche Warnungen beim Compilieren?

Autor: Michaeli (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du die Simulations-Auflösung auf 1ps gestellt?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;

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

architecture Behavioral of CombLoop is
signal c : unsigned (7 downto 0) := "00000000";
begin
   c   <= c+1 when en='1';
   cnt <= std_logic_vector(c);
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-Komb...

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

Autor: Thomas Reinemann (Firma: abaxor engineering) (abaxor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

u.U. hast du einen Prozess, in dem du weder auf eine Signaländerung noch 
auf den Ablauf einer Zeit wartest. Das passiert gern mal im Testbench.

Tom

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.