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
Poste bitte auch mal die anderen Module, ohne die lässt sich wenig dazu sagen.
Ergänzung Programme zusammen gefasst Danke! Gruß sigi
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.
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!
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.
Danke Klaus! Werden ich heute Abend auch gleich mal ausprobieren. Gruß Sigi!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.