Nexys 4 Constraints

Gast #3895392
Lesenswert?

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
#3895493
Lesenswert?

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.
Gast #3895837
Lesenswert?

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
Angehängte Dateien:
Gast #3896094
Lesenswert?

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,
Gast #3896506
Lesenswert?

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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren