Wie ordnet man Xilinx ISE Verilog-Modulen physikalische Pins des FPGA zu?

Vor kurzem habe ich angefangen, FPGA-Programmierung zu lernen. Ich habe das „Verilog QuickStart-Buch“ und Xilinx ISE Webpack v14 heruntergeladen und eine Reihe von YouTube-Videos angesehen. In diesem Moment kann ich meine Schaltungen bauen und sie mit dem eingebauten Simulator testen, aber ich weiß nicht, wie ich die physischen Pins des FPGA (die E / A-Puffer) zuweisen soll.

Nehmen wir zum Beispiel an, wir haben ein sehr einfaches Design: nur ein UND-Gatter (Modulports umfassen IN1, IN2 und OUT). Es ist einfach, die Schaltung in der Software zu erstellen, aber angenommen, ich möchte die IC-E / A-Pin-Nummer 7 als IN1, Pin 9 als N2 und Pin 11 als OUT zuweisen (alle E / A-Ports ohne VREF). Nirgendwo in der Software (sowie im Buch) habe ich gesehen, wie man diese Aufgabe erledigt. Kann mir bitte jemand dabei helfen?

Jede Hilfe im Voraus geschätzt.

Dafür ist die "User Constraints File" ( .ucfErweiterung) da. Schlagen Sie es in der Dokumentation nach.
@DaveTweed Danke! Diese Anleitung war wirklich hilfreich. Ich habe meine Antwort in der ISE-Schnellstartanleitung (Abschnitt Implementierung) gefunden. Bitte fügen Sie diesen Kommentar als Antwort hinzu, damit ich ihn als die richtige Antwort markieren kann (Übrigens, ich habe Ihren Lebenslauf gesehen, bitte lassen Sie mich Ihnen "Herzlichen Glückwunsch" sagen, dass Sie so ein Super-Super sind geniale Person!): xilinx.com

Antworten (2)

Xilinx verwendet (Benutzereinschränkungsdatei) UCF, um die physischen Pin-Verbindungen zu TOP-Signalen zu überbrücken. Diese Datei wird einem Xilinx-Projekt hinzugefügt

das Format sieht so aus:

NET "CLK_40Mhz" TNM_NET = CLK_40Mhz;
TIMESPEC TS_CLK_40Mhz = PERIOD "CLK_40Mhz" 25 ns;
########################################################
#8+2 LED's for indication
########################################################
NET "FPGA_LED<0>" LOC = B21 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<1>" LOC = B22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<2>" LOC = C21 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<3>" LOC = C22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<4>" LOC = D21 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<5>" LOC = D22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<6>" LOC = E22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<7>" LOC = F21 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<8>" LOC = F22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<9>" LOC = G22 | IOSTANDARD = "LVCMOS33";
#######################################################
#6 FET/IGBT gate-drive FET-outputs
#######################################################
NET "FPGA_Gate1" LOC = V22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_Gate2" LOC = W22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_Gate3" LOC = W21 | IOSTANDARD = "LVCMOS33";
NET "FPGA_Gate4" LOC = Y22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_Gate5" LOC = Y21 | IOSTANDARD = "LVCMOS33";
NET "FPGA_Gate6" LOC = AA22 | IOSTANDARD = "LVCMOS33";

NET "CLK_40Mhz" TNM_NET = CLK_40Mhz;
TIMESPEC TS_CLK_40Mhz = PERIOD "CLK_40Mhz" 25 ns;

Dies ist ein Schnappschuss von einem meiner UCFs

Ich habe die ISE Webpack-Schnellstartanleitung für die UCF-Datei überprüft. Hast du diese Datei damit erstellt? Ist die ISE-Webpack-Implementierungsoption die beste Software für diesen Zweck oder sollte ich andere Software verwenden? Übrigens ist das eine nette Antwort.
Ehrlich gesagt verwende ich selten eine der ISE (sei es Libero für Actel FPGAs oder Xilinx) zum Schreiben von Code. Ich verwende im Allgemeinen den Editor meiner Wahl (gvim) und verwende solche Pakete nur für den endgültigen Synthesizer
UCF ist nur eine Textdatei, Sie können entweder den internen Editor verwenden, um die Pins zuzuweisen, oder sie selbst bearbeiten (was ich normalerweise mache).
Sie können PlanAhead (Teil von ISE) verwenden, um eine UCF-Datei mit der "ersten Bash-Pinbelegung" zu generieren
  1. Vergewissern Sie sich, dass Ihr Projekt im Quellfenster ausgewählt ist
  2. Doppelklicken Sie auf den Prozess „Floorplan Area/IO/Logic – Post Synthesis“, der sich in der Prozessgruppe „User Constraints“ befindet.

Geben Sie hier die Bildbeschreibung ein

  1. Sie müssen einige Zeit warten, bis ein Programm namens Plan Ahead geöffnet wird.

Geben Sie hier die Bildbeschreibung ein

  1. Wenn Sie rechts keine Registerkarte namens Paket sehen, gehen Sie zu Window->Package . Von dort aus sollten Sie so etwas wie eine Karte der Pins Ihres ausgewählten FPGA haben.
  2. Auf der Registerkarte „E/A-Ports“ sollten Sie die Ports Ihres Projekts haben und Sie können diese Ports entweder per Drag & Drop auf den gewünschten Pin auf der „Package“-Karte ziehen oder den Pin auswählen, wie im folgenden Bild gezeigt:

Geben Sie hier die Bildbeschreibung ein

Ich hoffe, es hat das Problem gelöst. Dies wurde auf der virtuellen Appliance ISE 14.7 getestet (die auf einer virtuellen Maschine unter Windows 10 ausgeführt wird).