Forum: FPGA, VHDL & Co. Fehlermeldung bei Synthese (Ausgabe 7 Segment)


von Siegfried (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich habe in VHDL eine Ausgabe Routine programmiert, die sich irgendwie 
nicht synthetisieren lasst. Mit der Fehlermeldung kann ich leider nichts 
anfangen. siehe Anhang
Danke für eure Hilfe!

p.s. Testen kann ich das Programm erst heute Abend zu Hause!
Gruß
Sigi

von Siegfried (Gast)


Angehängte Dateien:

Lesenswert?

Nachtrag:
Hier noch das Topmodul1

von Morin (Gast)


Lesenswert?

Poste bitte auch mal die anderen Module, ohne die lässt sich wenig dazu 
sagen.

von Siegfried (Gast)


Angehängte Dateien:

Lesenswert?

Ergänzung Programme zusammen gefasst
Danke!

Gruß

sigi

von Morin (Gast)


Lesenswert?

Nein sorry, ich kann nichts konkretes finden. Was du mal probieren 
kannst:
1
Clk='1' and Clk'event
könnte wenn das Tool sauschlecht ist, nicht erkannt werden. Versuchs 
mal mit
1
Clk'event and Clk='1'
Ich kann mir aber kaum vorstellen, dass sich jemand traut ein Tool mit 
einem solchen Fehler rauszugeben.

Ansonsten ist evtl. gemeint, dass die Set/Reset Signale asynchron 
arbeiten, was wenn möglich vermieden werden sollte und evtl. vom 
gewählen Device gar nicht unterstützt wird. Der Grund ist, dass ein 
beliebiges Timing des Reset-Signals im Vergleich zur Clock dazu führen 
kann, dass nach dem Loslassen des Reset sofort eine Taktflanke kommt und 
die Timing-Bedingungen der Register verletzt, und das System deshalb 
nach einem Reset in einen unerwarteten oder sogar Metastabilien Zustant 
kommen kann. Besser ist es deshalb, das Reset-Signal durch ein, zwei 
getaktete Register laufen zu lassen (Synchronizer) und danach als 
synchronen Reset zu verwenden, also statt
1
process (clk, reset) begin
2
  if reset='1' then
3
    ...
4
  else if clk'event and clk='1' then
5
    ...
6
  end if;
7
end process;
lieber
1
process (clk) begin
2
  if clk'event and clk='1' then
3
    if reset='1' then
4
      ...
5
    else
6
      ...
7
    end if;
8
  end if;
9
end process;
Ob das der Grund für die Fehlermeldung ist kann ich dir aber leider auch 
nicht sagen.

von Siegfried (Gast)


Lesenswert?

Danke Morin das Du dir die Arbeit gemacht hast und mein Programm 
durchgeschaut hast. Ist ja doch eine Menge Quellcode.
Ich werde es mal heute Abend aus probieren vielleicht läuft es ja dann.
Vielen Dank!

Bis dann Sigi!

von Klaus F. (kfalser)


Lesenswert?

Die Meldungen in der GIF Datei sind auch keine Fehlermeldungen, sondern 
Warnings.

Was in Deinem Code aber falsch oder nicht so schön ist, ist die 
Erzeugung von Clkint.
Man soll keinen Takt aus einem anderen durch Herunterteilen erzeugen, 
sonden mit Clock-Enable arbriten.
Alle Module sollen mit einem gemeinsamen Takt arbeiten, die langsamen 
Teile arbeiten wenn ein Clock-Enable aktiv ist.

von Siegfried (Gast)


Lesenswert?

Danke Klaus!

Werden ich heute Abend auch gleich mal ausprobieren.
Gruß

Sigi!

von Siegfried (Gast)


Lesenswert?

Danke nochmals für die Hilfe. Ich habe eure Vorschläge zu hause 
ausprobiert und es läuft jetzt. Es lag wirklich an der Synchronisierung.
Schöne Ostern und bis dann

Sigi!

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.