Xilinx ISE Pinzuordnung an Sparten 3E

Gast #2897694
Lesenswert?

Hallo,

Versuche grade mein erstes FPGA-Projekt zum laufen zu bringen.

Habe das Xilinx ISE Web pack (14.2), ein Digilent-Basys board mit 
Sparten 3E.
Zunächst soll wenn ein Schalter Eingschaltet wird eine LED Leuchten.
Der Code sieht so aus:

entity Laden3 is
    Port ( Switch5 : in  BIT;
           LED7 : out  BIT);
end Laden3;

architecture Behavioral of Laden3 is
begin
LED7<=Switch5;
end Behavioral;


Dieser Code Lasst sich Synthetisieren.
Das UCF-File ist oberhalb des Codes eingebunden und enthält:
NET LED7       LOC = IO_L05N_3;
NET Switch5    LOC = IO_L04P_3;

Nun bekomme ich die 2 Fehler:
ERROR:MapLib:
30 - LOC constraint IO_L05N_3 on LED7 is invalid: No such site on
the device. To bypass this error set the environment variable
'XIL_MAP_LOCWARN'.
ERROR:MapLib:
30 - LOC constraint IO_L04P_3 on Switch5 is invalid: No such site
on the device. To bypass this error set the environment variable
'XIL_MAP_LOCWARN'.

No such site on the device?
Meint das Tool es kennt keinen Pin am Chip der so heist?
Wie kann ich das ändern?
Gast #2897739
Lesenswert?

Mit den "kurzen" Namen hab ichs auch schon versucht, dann würde es 
heisen:
NET LED7       LOC = G1;
NET Switch5    LOC = F3;

Die Fehlermeldung ist jedoch identisch:
ERROR:MapLib:
30 - LOC constraint G1 on LED7 is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:MapLib:
30 - LOC constraint F3 on Switch5 is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.

Scheinbar kennt er die Pinbezeichnungen nicht.
Gast #2897802
Lesenswert?

Nun habe ich:
NET LED7       LOC = G1;
NET LED7       LOC = g1;
NET LED7       LOC = "G1";
NET LED7       LOC = "g1";
NET "LED7"     LOC = "g1";
NET "LED7"     LOC = "G1";

Die Fehlermeldung ist immer die gleiche, mit grossem G geschrieben.
Gross oder Kleinschreibung scheint ihn nicht zu interessieren.
Die "XX" ebensowenig.

Bin ratlos.
Gibt es noch andere Möglichkeiten die Pins zuzuseisen?
Gast #2897882
Lesenswert?

Ist echt gut das es ein UCF-File von Digilent gibt aber wenn ich es 
einbinde gibts über 130 Fehler.
So wie es aussieht hann er mit keiner einzigen Zuweisung was anfangen.
Dort wird so zugewiesen:

NET "led<0>" LOC = "M5" ;  # Bank = 2, Signal name = LD0

Im Programm hab ich nun jeweils:
led<0>
led0
LD0
Ausprobiert, immer mit dieser Fehlermeldung:

ERROR:ConstraintSystem:59 - Constraint <NET "led<0>" LOC = "M5" ;>
[Basys2_100_250General.ucf(2)]: NET "led<0>" not found.  Please verify 
that:
   1. The specified design element actually exists in the original 
design.
   2. The specified object is spelled correctly in the constraint source 
file.

Als Package hab ich TQ144 ausgewählt.
Gast #2897901
Lesenswert?

Das sind ja jetzt vollkommen andere Fehlermeldungen!
Zuvor hat er sich an der Location aufgehängt, nun am Netznamen.

Da geht vorher schon was schief; verschluckt sich die Synthese eventuell 
schon? Xilinx empfiehlt, STD_LOGIC zu verwenden, mach das doch auch mal, 
anstelle von BIT.
#2897906
Lesenswert?

Ja richtig, alles was du nicht verwendest aus der .ucf kommentierst du 
einfach aus mit # am Zeilenanfang. Du lässt also nur die wirklich 
benötigten Zeilen stehen ohne # am Anfang.

Und wenn es dann immer noch nicht klappt vermute ich stark, dass du in 
den Projekteinstellungen einen anderen FPGA/Package gewählt hast.

-gb-
Gast #2897931
Lesenswert?

Die Synthese verschluckt sich nicht,
"completed successfully" sollte in ordnung sein.

Code:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity Laden3 is
    Port ( SW0 : in  STD_LOGIC;
           LD0 : out  STD_LOGIC);
end Laden3;

architecture Behavioral of Laden3 is
begin
LD0<=SW0; --led0 / led<0>
end Behavioral;

UCF:
NET "led<0>" LOC = "M5" ;  # Bank = 2, Signal name = LD0
NET "sw<0>" LOC = "P11";  # Bank = 2, Signal name = SW0

Habe alle anderen auskommentiert.
Eingestellt ist der XC3S250E im TQ144 Package, er ist überall 
eingestellt.
(Projekt, Chipsymbol, 3-Faches Chip-Symbol, UCF)
Kann man Chip/Package sonst noch irgendwo einstellen?

Fehlermeldung:
ERROR:
ConstraintSystem:59 - Constraint <NET "led<0>" LOC = "M5" ;>
[Basys2_100_250General.ucf(2)]: NET "led<0>" not found.  Please verify 
that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source 
file.

WARNING:
ConstraintSystem - A target design object for the Locate constraint
'<NET "led<0>" LOC = "M5" ;> [Basys2_100_250General.ucf(2)]' could not 
be
found and so the Locate constraint will be removed.
Gast #2897943
Lesenswert?

Matze schrieb:
> Code:
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3

4
entity Laden3 is
5
    Port ( SW0 : in  STD_LOGIC;
6
           LD0 : out  STD_LOGIC);
7
end Laden3;
8

9
architecture Behavioral of Laden3 is
10
begin
11
LD0<=SW0; --led0 / led<0>
12
end Behavioral;

Das verlangt im UCF nach 'LD0' und 'SW0'. Also so:
1
NET "LD0" LOC = "M5" ;  # Bank = 2, Signal name = LD0
2
NET "SW0" LOC = "P11";  # Bank = 2, Signal name = SW0
#2897954
Lesenswert?

Seltsam, aber ja:

Also wenn man in vhdl nur schreibt

entity LED is
    Port ( sw0 : in  STD_LOGIC;
           led0 : out  STD_LOGIC);
end LED;

und

NET "Led<0>" LOC = "M5" ;  # Bank = 2, Signal name = LD0
NET "sw<0>" LOC = "P11";  # Bank = 2, Signal name = SW0

geht es nicht, aber es geht wenn man alle LEDs nimmt. Also:

entity LED is
    Port ( sw : in  STD_LOGIC_VECTOR(7 downto 0);
           led : out  STD_LOGIC_VECTOR(7 downto 0));
end LED;

und dann natürlich:

led(0)<=sw(0);
Gast #2897959
Lesenswert?

Sven P. schrieb
> Das verlangt im UCF nach 'LD0' und 'SW0'. Also so:
> NET "LD0" LOC = "M5" ;  # Bank = 2, Signal name = LD0
> NET "SW0" LOC = "P11";  # Bank = 2, Signal name = SW0

Dann sind wir wider am Anfang, er kennt P11 und M5 nicht.

ERROR:
MapLib:30 - LOC constraint M5 on LD0 is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.

Durch Scheiben in 'XX' gehts auch nicht.
Moderator (Firma: Titel) Persönliche Seite #2897994
Lesenswert?

Matze schrieb:
> NET "led<0>" LOC = "M5" ;  # Bank = 2, Signal name = LD0
> NET "sw<0>" LOC = "P11";  # Bank = 2, Signal name = SW0
Matze schrieb:
> Eingestellt ist der XC3S250E im TQ144 Package, er ist überall
> eingestellt.
An einem TQ144 Gehäuse findest du keinen M5 und keinen P11...  :-o
Matze schrieb:
> ein Digilent-Basys board mit Sparten 3E.
Welcher Chip ist denn auf dem Board tatsächlich drauf?
Und welches ucf-File verwendest du dafür?
Gast #2898018
Lesenswert?

Gustl Buheitel schrieb
> geht es nicht, aber es geht wenn man alle LEDs nimmt. Also:
>
> entity LED is
>     Port ( sw : in  STD_LOGIC_VECTOR(7 downto 0);
>            led : out  STD_LOGIC_VECTOR(7 downto 0));
> end LED;
>
> und dann natürlich:
>
> led(0)<=sw(0);

Mein Programm nun:
entity Laden3 is
    Port ( sw : STD_LOGIC_VECTOR(7 downto 0);
           Led : out  STD_LOGIC_VECTOR(7 downto 0));
end Laden3;

architecture Behavioral of Laden3 is
begin
Led(0)<=sw(0);
end Behavioral;

Leider gehts bei mir nicht, bekomm wenn ich um UCF alle 8SW/LEDs NICHT 
Auskommentiere:

ERROR:MapLib:30 - LOC constraint M5 on Led<0> is invalid: No such site 
on the device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:
MapLib:30 - LOC constraint P11 on sw<0> is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:
MapLib:30 - LOC constraint G1 on Led<7> is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:
MapLib:30 - LOC constraint N4 on Led<5> is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:
MapLib:30 - LOC constraint N5 on Led<4> is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:
MapLib:30 - LOC constraint M11 on Led<1> is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:
MapLib:30 - LOC constraint N3 on sw<7> is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:
MapLib:30 - LOC constraint E2 on sw<6> is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:
MapLib:30 - LOC constraint F3 on sw<5> is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:
MapLib:30 - LOC constraint G3 on sw<4> is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:
MapLib:30 - LOC constraint B4 on sw<3> is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:
MapLib:30 - LOC constraint K3 on sw<2> is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.
ERROR:
MapLib:30 - LOC constraint L3 on sw<1> is invalid: No such site on the
device. To bypass this error set the environment variable 
'XIL_MAP_LOCWARN'.

Er Meckert also über sw0 bis sw7 (Alle)
Aber bei den LEDs fällt auf, er meckert nur über 0,1,4,5,6,7.
Er meckert nicht über LED2 und LED3!
Hab keine Ahnung warum grade über die 2 nicht.

Wenn ich im UCF alle bis auf die genutzten sw0 und led1 auskommentiere 
findet er auch diese nicht.
#2898034
Lesenswert?

Echt? Hier (ok ist ein Basys) steht immer:

LOC = "Pxx" also immer P wie "Pin". Aber ok es ist noch was:

Wenn du nur led(0) und sw(0) verwendest, dann dürfen auch nur diese in 
der ucf stehen, also ohne #. Sonst geht zwar alles, aber es wird kein 
Bitstream gebaut.

Du kannst natürlich in vhdl alle leds und sw oben bei port 
reinschreiben, aber in der ucf sollen nur die auftauchen die du auch 
wirklich verwendest.
#2898080
Lesenswert?

Also: Das Basys2 hat ein BGA also ist der TQ144 in den 
Projekteinstellungen falsch.

led0 hängt an M5 und sw0 an P11 das stimmt.

In den Projekteinstellungen den richtigen Spartan wählen oder einfach 
ein Beispielprojekt öffnen und gucken was da wo eingestellt ist.

In einem Beispielprojekt das ich jetzt mal geöffnet habe ist

Spartan 3E
XC3S100E
CP123
-5

eingestellt.

-gb-
Moderator (Firma: Titel) Persönliche Seite #2898189
Lesenswert?

Es ist einfach so, dass man nur mal den AUFDRUCK auf dem FPGA anschauen 
muss, dann weiss man was man hat. Und das gehört dann in die 
Projekteinstellungen, und das UCF File muss die entsprechenden Pinnamen 
verwenden, die im Datenblatt stehen...

Ich halte die Fehlermeldungen eigentlich für sehr aussagekräftig: det 
Planer kann den gewünschten Pin bei diesem Gehäuse nicht finden.

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