Hi. In Zeile 127 frage ich einen integer ab, den ich in Zeile 76 mit signal offset : integer range 0 to 63; definiert habe. Sobald ich den offset in Zeile 127 auf =63 abfrage kommt folgender Fehler ERROR:Xst:1534 - Sequential logic for node <offset> appears to be controlled by multiple clocks. Stelle ich die Abfrage aber auf einen wert größer 63 Wird alles Systhetisiert. Nach meinem verständniss müsste dann doch da eine Fehlermelduing kommen, weil offset nur bis 63 geht. Im Selben Code kommt die Meldung: WARNING:Xst:1989 - Unit <pwm>: instances <pwm1>, <pwm2> of unit <pwm_sub> are equivalent, second instance is removed In RTL Schematic sind jedoch mehrere PWM enthalten, was hat diese Meldung zu sagen? Danke
Hmm, OK. den ersten Fehler hab ich gefunden. Muss integer immer mit "<grossere zahl> to <kleinere Zahl> definiert werden?
> Muss integer immer mit "<grossere zahl> to <kleinere Zahl> definiert > werden? Nein, eher andersrum... Aber ich glaube fast, das ist dein allerkleinstes Problem...
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
Das kannst du im besten Fall simulieren. Aber trotz der Leistungsfähigkeit heutiger Synthesetools wirst du es kaum auf Hardware abgebildet bekommen... Die Simulation wird allerdings nicht stimmen, denn offset und spi_en fehlen in der Sensitivliste. Sieh dir doch mal an, wie andere einen getakteten Prozess beschreiben (und vor allem, wieviele Takte in einem solchen Prozess auftauchen). BTW: Statt
1 | |
kannst du auch
1 | |
schreiben.
Lothar Miller schrieb: >> Muss integer immer mit "<grossere zahl> to <kleinere Zahl> definiert >> werden? > Nein, eher andersrum... Sicher? Mit signal offset : integer range 63 to 0; Klappt es wie erwartet. Fehlermeldung bei zugriff auf 64, und keine bei 63. Andersrum "0 to 63" kamen die (Meiner Meinung nach) unlogischen Fehler. > Das kannst du im besten Fall simulieren. Aber trotz der > Leistungsfähigkeit heutiger Synthesetools wirst du es kaum auf Hardware > abgebildet bekommen... > Echt, irgendwas klappt, aber nich so wie erwarted :D >Sieh dir doch mal an, wie andere einen getakteten Prozess beschreiben >(und vor allem, wieviele Takte in einem solchen Prozess auftauchen). Grr Hätte ich auch selbst draufkommen müssen. Danke
> Sicher? Mit > signal offset : integer range 63 to 0; > Klappt es wie erwartet. Ich bekomme da den Fehler
1 | |
Irgendwie auch logisch, wenn man sich ansieht, wie der Datentyp integer in VHDL definiert ist... > Klappt es wie erwartet. Welche Toolchain verwendest du? EDIT: Wobei auch 63 für deine Abfrage eindeutig zu klein ist:
1 | |
ISE Webpack 11.4. Ich stöbere grade duch Deine HP (wenn sie es denn ist, mit Deinem Namen). Mit den älteren hab ich irghendwie mehr Probleme auf meinem System, wobei die 11.4er einen Arschlahmen Editor hat.
Lothar Miller schrieb: >> Sicher? Mit >> signal offset : integer range 63 to 0; >> Klappt es wie erwartet. > Ich bekomme da den Fehler >
1 | |
2 | |
> Irgendwie auch logisch, wenn man sich ansieht, wie der Datentyp > integer in VHDL definiert ist... > Also entweder signal offset : integer range 0 to 63; oder signal offset : integer range 63 downto 0; Beides muß das selbe sein.
>Also entweder >signal offset : integer range 0 to 63; >oder >signal offset : integer range 63 downto 0; >Beides muß das selbe sein. Denk auch, die Fehlermeldung wird wohl noch in zusammenhang mit anderen Dingen aufgetreten sein.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.