Salü Zusammen Ich bin einigermaßen verwirrt, wie die für das Nexys 4 Board zur Verfügung gestellten Constraint Files (Master.xdc). Wenn ich die Ports als: led : ledSTD_LOGIC_VECTOR (15 downto 0); Verwende, funktioniert alles Problemlos. Versuche ich aber ein Port als: led[0] : STD_LOGIC; zu deklariere, kann der Code nicht mehr compiliert werden und landet im Syntax Error Folder. Ich würde mich sehr freuen, wenn mir jemand auf die Sprünge helfen könnte! Danke und Gruess Andresa
Das ist doch VHDL Port Deklaration, das gehört keinesfalls in das XDC File. Dort kommen nur die Sachen rein, die die physikalischen Anschlüsse am FPGA kennzeichnen, also Location, IO-Spannung, Timing-Constraints usw. Und selbst wenn du das im VHDL Quellcode stehen hast, ergibt das keinen Sinn, denn ein Vektor kann nur aus gleichen Elementen bestehen, also kannst du nicht ein Element einzeln deklarieren.
Andreas Kellermann schrieb: > landet im Syntax Error Folder. Und zwar steht dort dann genau WAS? Christian R. schrieb: > Das ist doch VHDL Port Deklaration Das ist gar nichts. Ich sehe nur Zeilen, die für sich allein jedes Mal einen Fehler geben müssen. Das Problem ist also wie so oft ausserhalb des geposteten Codes.
Lothar Miller schrieb: > Das ist gar nichts. Ich sehe nur Zeilen, die für sich allein jedes Mal > einen Fehler geben müssen. Naja, den Typo in der ersten Zeile hab ich mal ignoriert, die zweite Zeile ist kompletter Blödsinn.
Salü Christian und Lothar Danke für eure Antworten, ihr habt ja recht, dass ganze ist etwas aus dem Kontext herausgerissen. Also was ich meine ist, dass ein Code mit Vektoren funktioniert. Bsp:
1 | library IEEE; |
2 | use IEEE.STD_LOGIC_1164.ALL; |
3 | |
4 | entity blink_test is |
5 | Port |
6 | ( |
7 | led : out STD_LOGIC_VECTOR (1 downto 0) |
8 | ); |
9 | end blink_test; |
10 | |
11 | architecture Behavioral of blink_test is |
12 | |
13 | begin |
14 | led (1 downto 0) <= "11"; |
15 | end Behavioral; |
Das Selbe mit einzeln definierten led[] Ports zu versuchen, ist hoffnungslos. Bsp:
1 | library IEEE; |
2 | use IEEE.STD_LOGIC_1164.ALL; |
3 | |
4 | entity blink_test is |
5 | Port |
6 | ( |
7 | led[0] : out STD_LOGIC |
8 | ); |
9 | end blink_test; |
10 | |
11 | architecture Behavioral of blink_test is |
12 | |
13 | begin |
14 | led[0] <= '1'; |
15 | end Behavioral; |
Das .xdc ist direkt von Digilent und die betreffenden Ports werden dort auch als led[0], led[1],... etc. beschrieben (siehe Anhang). Ist es einfach nicht möglich die led's hier als einzelne Ausgänge aufzurufen oder wo genau liegt das Problem hier? Ehrlich gesagt habe ich mit Quartus und Blockschaltbildern angefangen, "[]" Port Definitionen haben dort gut funktioniert... Vielen Dank für eure Hilfe und Gruess
Das zweite Beispiel ist auch Quatsch und funktioniert nicht. Endweder Vektor oderr haltz kein Vektzor. Ein Mischmasch geht nicht. Nimm das richtige Beispiel und gut ist. Eckige Klammern haben dort nichts zu suchen, lass dann halt einfach das [0] ganz weg.
:
Bearbeitet durch User
Andreas Kellermann schrieb: >
1 | > library IEEE; |
2 | > use IEEE.STD_LOGIC_1164.ALL; |
3 | >
|
4 | > entity blink_test is |
5 | > Port |
6 | > ( |
7 | > led[0] : out STD_LOGIC |
8 | > ); |
9 | > end blink_test; |
10 | >
|
11 | > architecture Behavioral of blink_test is |
12 | >
|
13 | > begin |
14 | > led[0] <= '1'; |
15 | > end Behavioral; |
16 | >
|
> > Das .xdc ist direkt von Digilent und die betreffenden Ports werden dort > auch als led[0], led[1],... etc. beschrieben (siehe Anhang). > Ist es einfach nicht möglich die led's hier als einzelne Ausgänge > aufzurufen oder wo genau liegt das Problem hier? > Ehrlich gesagt habe ich mit Quartus und Blockschaltbildern angefangen, > "[]" Port Definitionen haben dort gut funktioniert... > > Vielen Dank für eure Hilfe und Gruess In AHDL steht der Index zwischen eckigen Klammern, in VHDL in runden. MfG,
Ja, ich habe auch einfach mit std_logic_vector und der Port Deklaration einzelner Pins mit, zB. "led (0), led (1) etc. weitergemacht. Hat mich halt nur interessiert wieso sie das so machen. Vielen Dank nochmals!
Naja im xdc geht das, man kann da z.B. einen Vektor über verschiedene IO Bänke verteilen und die einzelnen Elemente des Vektors auch mit verschieden IO Spannungen laufen lassen.
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.