Hallo Leute! Habe grad mal die neue Xilinx-ISE-Umgebung 8.1 installiert. Vorher hatte ich die 7.1 Version. Für das Auge wurde viel getan. Endlich funktioniert nun auch das Programmiergerät so wie es soll und benötigt für einmal runterspielen statt 30 Minuten nur noch 46 Sekunden. Ich habe ein kleines VHDL-Design entworfen, mit dem ich Impulse zähle. Mit diesem Design wird die Hardware konfiguiert. Das Eingangssignal, welches gezählt wird, heisst clk. Mit Version 7.1 funktionierte alles hervorragend, nur jetzt bei 8.1 schreibt mir der PC bei Place&Route folgenden Fehler heraus: Place:645- A clock IOB clock component is not placed at an optimal clock IOB site. The clock IOB component <clk> is placed at site AF18. The clock IO site can use the fast path between the IO and the clock buffer/GCLK if the IOB is placed in the master Clock IOB Site. If this sub optimal condition is acceptable for this design you may set the environment variable XIL_PLACE_ALLOW_LOCAL_BUFG_ROUTING to demote this message to a WARNING and allow your design to continue. Als nun bitte meine Fragen: Stört es das Werkzeug, dass ich diesen AF18-PIN ausgewählt habe und wenn ja, warum? Ich versehe die Meldung nicht ganz - Ich weiß nicht was hier gemeint ist und warum dieser Pin böse sein soll? Und wie kann ich die environment variable XIL_PLACE_ALLOW_LOCAL_BUFG_ROUTING setzen, damit aus der ERROR-Message eine WARNING-Message wird? Danke für eure Antworten. Bin leider noch ziemlich am Anfang. Tschüss, Martin
>Stört es das Werkzeug, dass ich diesen AF18-PIN ausgewählt habe und >wenn ja, warum? Du hast ein Taktsignal auf einen Pin gelegt, der nicht für Taktsignale gedacht ist. Ein FPGA hat nur ein paar Pins, die speziell für Takteingänge vorgesehen sind, siehe jeweiliges Datenblatt. Diese Pins gehen intern auf ein Taktnetz, das so mit den internen Flip-Flops verschalten ist, dass das Taktsignal jedes Flip-Flop mit möglichst geringer Verzögerung ("Skew" auf englisch) erreicht.
Ich habe zwar das Signal clk benannt, aber der Pin sollte eigentlich Impulse zählen, die ab und zu mal daherkommen können. @Ein FPGA hat nur ein paar Pins, die speziell für Takteingänge vorgesehen sind, siehe jeweiliges Datenblatt. Aber warum hat es in der vorhergehenden Version funktioniert? Ich verstehe hier den Unterschied der Pins nicht ganz (z.B. Clock oder normaler Pin). Handelt es sich bei der internen Verschaltung dieser unterschiedlichen Pins um eine unterschiedliche Geschwindigkeit der Flip-Flops? Gruß, Martin
> Ich verstehe hier den Unterschied der Pins nicht ganz (z.B. Clock > oder normaler Pin). Handelt es sich bei der internen Verschaltung > dieser unterschiedlichen Pins um eine unterschiedliche > Geschwindigkeit der Flip-Flops? Xenu: >> Ein FPGA hat nur ein paar Pins, die speziell für >> Takteingänge vorgesehen sind, siehe jeweiliges Datenblatt. >> Diese Pins gehen intern auf ein Taktnetz, das so mit den internen >> Flip-Flops verschalten ist, dass das Taktsignal jedes Flip-Flop mit >> möglichst geringer Verzögerung ("Skew" auf englisch) erreicht. sprich: Special Wires im FPGA, da an special Pins am FPGA angepinnt sind. > Aber warum hat es in der vorhergehenden Version funktioniert? Das weiss wohl nur xilinx alleine ;-) Evtl. wurde in der Version nicht nach solchen Fehlern gesucht. Ich schätze, und nachdem was ich gelesen habe, hatte die 7.1 viele Fehler und es war für Xilinx einfacher alles neu zu machen um somit auch solche Fehler zu finden (genaueres sollte in den Changelog stehen). Das alles Neu nicht auch besser/bug freier ist zeigt wohl das neue SP1 für 8.1. Viele Grüße Olaf
wenn Du auf der XILINX-Homepage XIL_PLACE_ALLOW_LOCAL_BUFG_ROUTING als Suchbegriff eingibst und dem Englischen mächtig bist, dann ist die 2. Antwort für Dich die Lösung (hier allerding für Virtex) alternativ geht auch "Place:645" als Suchbegriff, das ist schon gut, wenn die Fehler durchnummeriert sind
>>Aber warum hat es in der vorhergehenden Version funktioniert? >Das weiss wohl nur xilinx alleine ;-) Evtl. wurde in der Version nicht >nach solchen Fehlern gesucht. Ich glaube da wurde schon 'ne Warnung ausgespuckt. Mit der neuen Methode wollen sie die Leute wohl zwingen, die Designs vernünftiger zu programmieren.
Hallo! Das Dumme ist, wenn ich diesen Suchbegriff eingebe und die Antwort 2 auswähle, dann wieder nur erklärt wird, dass die XIL_PLACE_ALLOW_LOCAL_BUFG_ROUTING - Variable aktiviert werden muss. Es steht nicht dabei wie!?! Gruß, Martin
Es ist eine stinknormale Enviromentvariable, wie PATH, XILINX etc.. Wenn du unter windoews arbeitest, Dann z.b. Arbeitsplatz (Maus) -> Eigenschaften , dort den reiter Erweitert auswählen, den button ungebungsvariablen klicken und in der Hälfte "Benutzervariablen" neu auswählen und die Varibale samt Wert eintragen.
Hat's geklappt mit der Variable? Am besten du machst gleich richtig. also wenn slow_sig des zu zählende eingang ist und der FPGA den Takt main_clk bekommt dann: process(main_clk) begin if rising_edge(main_clk) then if reset ='0' then count_q <= (others => '0'); sync_q <= (others => '0'); else sync(0) <= slow_sig; sync(3 downto 1) <= sync(2 downto 0); --synchronisier if sync_q(3 downto 2) = "01" then count <= count+1; end if; end if; end if; end process; So geht das Pin nicht auf ein Taktnetzwerk und wird ordentlich eingetaktet. Das rücksetzen des counters und die deklarationen überlasse ich Dir.
Hallo! Ich habe das leider mit der Variable nicht hinbekommen. Ich weiß nicht, wie du das meinst oder wo ich das umstellen kann. Tut mir leid. Vielleicht hast du noch einen Tipp. Tschüss Martin
OK, Du musst eine Variable in WINDOWS setzen, nicht ISE oder so. XILINX beschreibt das in der UG109 wie folgt: 1. Right-click on the My Computer icon and select Properties. 2. In the Systems Properties window, select the Advance tab. 3. Click on the Environment Variables button. 4. Under System variables, click on the New button. 5. Enter the variable name: XIL_PLACE_ALLOW_LOCAL_BUFG_ROUTING. 6. Enter the variable value: TRUE. 7. Click OK on each of the three open windows. Auf Deutsch (obacht, ich habe kein windows zur Hand um das auszuprobieren, ich kann mich also mit dem Maustasten und deutschen Texten irren): Auf dem Desktop gibts ein ICON "Mein Computer" mit Mauszeiger drüber fahren und rechte Maustaste drücken. In dem erscheinenden Menü "Eigenschaften" anklicken Neues Fenster klappt auf, dort klickst du auf das Wort erweitert. Jetzt klappt wieder was auf, dort klickst du auf das wort Umgebungsvaraiblen Was jetzt aufklappt hat eine obere und eine untere Hälfte. Xilinx schreibt nun das Du in der unteren (?) Hälfte, die Systemvariablen genannt wird, auf das Wörtchen Neu klickst. Wiedermal klappt was auf, diemal mit zwei Eingabe-Zeilen, in der oberen (Variablen Name) tippst du: XIL_PLACE_ALLOW_LOCAL_BUFG_ROUTING in die untere (Wert) TRUE Jetzt klickst Du bei allen fenster die geöffnet worden OK. Schliesse die ISE und starte Sie neu. Wenn das nicht klappt, starte den Rechner neu (Hat sich bei systemvariablen manchmal happig) und starte die ISE.
Hallo FPGAküchle! Ich möchte mich recht herzlich bei dir bedanden. Jetzt habe ich es geschafft. Es funktioniert. Tschüss, Martin
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.