Seite 1 von 1

Frequenzzähler - BIT-Datei erzeugen

Verfasst: 28.04.2011, 21:36
von thomas lauer
Es gelingt mir nicht, das ISE-Projekt aus dem ct-Lab-Reposiotry: FPGA_ISE / ct-frequz.zip
zu "synthetisieren" (kompilieren?), d.h. die BIT-Datei main.bit selbst zu erzeugen.
(Die im Projekt vorgegebene Datei main.bit funktioniert im FPGA tadellos)

Ich habe die (kostenlose) XILINX ISE Design Suite 13.1 heruntergeladen und das Projekt durch Doppelklick auf main.xise geöffnet.

Nach dem Drücken des grünen Pfeils ("implement top module") erscheint folgende Fehlermeldung, die ich mangels Verständnis hier anfüge:

ERROR:Place:1018 - A clock IOB / clock component pair have been found that are not placed at an optimal clock IOB /
clock site pair. The clock component <XLXI_189/buffer_clkin1> is placed at site <BUFGMUX1>. The IO component
<FREQ_IN> is placed at site <PAD37>. This will not allow the use of the fast path between the IO and the Clock
buffer. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint
in the .ucf file to demote this message to a WARNING and allow your design to continue. However, the use of this
override is highly discouraged as it may lead to very poor timing results. It is recommended that this error
condition be corrected in the design. A list of all the COMP.PINs used in this clock placement rule is listed below.
These examples can be used directly in the .ucf file to override this clock rule.
< NET "FREQ_IN" CLOCK_DEDICATED_ROUTE = FALSE; >

Im Ordner source gibt es die Datei frequz.ucf ("user constraints file"?).
Dort habe ich versuchsweise die Zeile
NET "FREQ_IN" LOC = "P37" | IOSTANDARD = LVTTL | CLOCK_DEDICATED_ROUTE = FALSE;

nach mehreren ähnlich lautenden Zeilen eingefügt, was aber nicht bewirkt.
Ich kann auch nicht erkennen, ob diese Datei überhaupt Teil des Projekts ist, d.h. inhaltlich ausgewertet wird.

Im "Design-Overview" ist das Feld "timing constraints" leer bzw. links deaktiviert; ich kann dort nicht eintragen.

Wurde das Projekt vielleicht mit einer älteren Version erstellt?
Kann jemand ein Buch zu XILINX / ISE empfehlen?

Thomas.

Re: Frequenzzähler - BIT-Datei erzeugen

Verfasst: 28.04.2011, 22:55
von psclab38
thomas lauer hat geschrieben:Wurde das Projekt vielleicht mit einer älteren Version erstellt?
Hi Thomas,
ohne das Problem genauer analysiert zu haben: CM hat meines Wissens die ganzen Projekte mit der ISE 10.1 gemacht. Die "alten" Projekte sind leider teilweise nicht direkt kompatibel mit den neuen ISE Versionen.

Güße
Paul

Re: Frequenzzähler - BIT-Datei erzeugen

Verfasst: 03.05.2011, 21:01
von Klaus_Phi
Hallo Thomas,

ich habe gerade das frequz-Design mit der Version ISE Version 12.4 geladen und erfolgreich übersetzt.
Paul hat völlig richtig geantwortet, cm hat das Design mit ISE 10.1 erstellt.

Bevor ich ISE 13.1 installiere und sehr viel Arbeit damit habe, möchte ich Dich bitten, genau zu beschreiben, wie Du das ct-frequz Design in ISE 13.1 importiert hast. Es sollte eigentlich kein Problem sein. Aber wenn ich bei dem Problem helfen soll, benötige ich genaue Angaben um den Vorgang nachvollziehen zu können.

Falls alles nichts helfen sollte, erzeuge ein neues Design und importiere die frequz Dateien erneut.

Noch ein Hinweis zur Datei.ucf.

Wenn Du die ucf-Datei mit einem Doppel-Klick öffnest, bist Du mit der ISE-Wahrsagrein verbunden. Die Sache wird dann schwierig.

Besser ist es, die ucf-Datei anzuwählen und dann einen Doppelklick auf edit constraints. Dann erscheint die constraints-Datei in Textform. Damit lassen sich die Vorschläge des VHDL-Compilers auch einfacher einfügen. Die ucf-Datei läßt sich auch mit EDIT oder Wordpad öffnen.

Arbeite bitte weiter an dem Design, ich stehe Dir für weitere Hilfe jederzeit zur Verfügung.

Gruß

Klaus Philipp

Re: Frequenzzähler - BIT-Datei erzeugen

Verfasst: 05.05.2011, 19:32
von thomas lauer
Vielen Dank für Eure Hinweise.

Glücklicherweise stellt Xilinx auch die Version 10.1 noch kostenlos zur Verfügung.
Ich habe sie heruntergeladen und damit ließ sich die Frequenzzähler-Schaltung problemlos laden und eine Bit-Datei erzeugen,
die auch im FPGA funktioniert. Auch wenn längst nicht alle Fragen zu Xilinx geklärt sind, bin ich doch erst mal zufrieden.

Ich habe die Torzeit des Frequenzzählers auf 0.1 s herabgesetzt und erhalte so eine 10 Mal höhere Abtastrate mit 10 Mal geringerer Auflösung.
Den Frequenzzähler brauche ich, um die Impulse eines Durchluss-Sensors auszuwerten, d.h. eine Zuflussrate zu bekommen.
Diese soll so glatt verlaufen, dass man sie noch differenzieren kann (Schulzwecke).

Wenn ich Zeit finde, werde ich versuchen 10 statt 2 Zähler um 0.1 s verzögert zählen zu lassen, was ebenfalls die Latenz verringern würde,
aber die Genauigkeit bebehielte.

Als Einstieg in Xilinx war mir der Frequenzzähler zu komplex.
Die Suche nach Fachbüchern ergibt einige recht teure Treffer.
Gibt es Empfehlungen für Xilinx-Einsteiger?

MfG

Thomas.

Re: Frequenzzähler - BIT-Datei erzeugen

Verfasst: 08.05.2011, 23:47
von Klaus_Phi
Hallo Thomas,

das meiner Meinung nach beste Buch zu diesem Thema ist: "FPGA Prototyping by VHDL Examples" von Pong P. Chu.
Das Buch ist leider sehr teuer. Aber das Buch ist sein Geld wert und die Beispiele in VHDL sind sehr verständlich. Die habe sogar ich verstanden. Das Buch ist jedoch in "plattdeutscher Sprache" verfaßt.
Ein sehr gutes Buch auf deutsch hat den Titel: "VHDL-Synthese" von Jürgen Reichard und Bernd Schwarz.
Das ist das Standartwerk, mit dem an deutschen Universitäten Ingenieure in VHDL ausgebilded werden. Das Buch wurde zwar von Proffesoren geschrieben, aber ist sehr verständlich. Vermutlich ist es deshalb unwissenschaftlich. Wir sind ja schließlich in Deutschland. Aber das ist ein anderes Problem.

Wenn ich Dir irgendwie helfen kann, ich stehe jederzeit zur Verfügung.

Mit freundlichen Grüßen

Klaus

P.S.: Ich suche einfach einige VHDL Mitstreiter

Re: Frequenzzähler - BIT-Datei erzeugen

Verfasst: 11.10.2011, 16:19
von peter89073
Hallo,
nun komme ich endlich dazu mich dem c´t-FPGA zu widmen und stehe noch sehr am Anfang. Ich habe ISE 13.1 installiert und auch festgestellt, dass die Synthese nicht so ohne weiteres läuft und auch die Bedienung anders ist als bei ISE 10.1

Nach nun 2 langen Tagen habe ich die bin/bit-Files für LEDblink und den Frequenzzähler erzeugen können. Beim Frequenzzähler habe ich festgestellt, dass das constraint-File nicht automatisch mitgeladen wurde. Dadurch wurde eine "willkürliche" Pin-Belegung vom ISE gewählt. Ich habe das File ähnlich LEDblink selbst erzeugt und damit zumindest den Teil der Frequenzerzeugung zum Laufen bekommen. Die in diesem Beitrag beschriebene Fehlermeldung habe ich mit der zusätzlichen Zeile im constraint-File so gelöst, wie es in der Fehlermeldung vorgeschlagen wurde.

Warum der eigentliche Frequenzzähler mit meinem eigenen constraint-File nicht lief, habe ich noch nicht verstanden. Denn ich habe dann mein eigenes constraint-File gegen das in einem anderen Verzeichnis stehende File frequ.ucf getauscht und nun läuft alles, inklusive der Steuerung über LabVIEW.

Würde mich freuen, wenn es noch andere ISE13-Anwender gibt, die schon die Anfangsschwierigkeiten überwunden haben.

Viele Grüße
peter89073