Hallo Zusammen,
ich beschäftige mich zurzeit Hobbytechnisch mit nem FPGA evalboard und
programmierung in VHDL unter ISE Design Suite. Bin also absoluter
Newbie.
Habe mir ein Buch gekauft und auch schon ein bischen was gemacht.
Als erstes habe ich nen par LED's blinken lassen, soweit OK,
funktioniert alles.
Als nächstes Projekt hab ich mir gleich was komplexeres vorgenommen.
Ich habe also ein UART mit empfangs und sende Buffer in VHDL
geschrieben.
Als nächstes habe ich mir die Schaltung generiert und die Schaltung
Simuliert (Testbench geschrieben). Alles Super.
Nun wolte ich die ganze Schaltung Synthetisieren und auf mein Bord
bringen, dabei bricht er jedoch bei dem Schritt "Map" mit folgender
Meldung ab:
1 | ERROR:Place:1108 - A clock IOB / BUFGMUX clock component pair have been found
|
2 | that are not placed at an optimal clock IOB / BUFGMUX site pair. The clock
|
3 | IOB component <RX> is placed at site <A16>. The corresponding BUFG component
|
4 | <RX_IBUF_BUFG> is placed at site <BUFGMUX_X3Y7>. There is only a select set
|
5 | of IOBs that can use the fast path to the Clocker buffer, and they are not
|
6 | being used. You may want to analyze why this problem exists and correct it.
|
7 | If this sub optimal condition is acceptable for this design, you may use the
|
8 | CLOCK_DEDICATED_ROUTE constraint in the .ucf file to demote this message to a
|
9 | WARNING and allow your design to continue. However, the use of this override
|
10 | is highly discouraged as it may lead to very poor timing results. It is
|
11 | recommended that this error condition be corrected in the design. A list of
|
12 | all the COMP.PINs used in this clock placement rule is listed below. These
|
13 | examples can be used directly in the .ucf file to override this clock rule.
|
14 | < NET "RX" CLOCK_DEDICATED_ROUTE = FALSE; >
|
Nun ist mein Englisch auch nicht das Beste aber was ich verstehe ist:
Irgendwas ist nicht optimal Plaziert? Da haben wir schon meine erste
Frage -> was ist IOB und was ist BUFGMUX?
Ich habe Irgendwo gelesen das BUFG irgendwas ist, das ein Clocksignal in
der weise vergüted, dass aus einem Theoretischem Rechtecksignal, aber
praktisch Trapezförmigem, dem Theoretischem Rechtecksignal näher kommt.
Habe ich das richtig verstanden?
Des weiteren steht da, dass mein Anschluss 'RX' mit pin A16 des FPGAs
verbunden ist und das nur bestimmte Anschlüße mit Clock Buffer verbunden
werden können, diese jedoch schon belegt sind.
Nun frage ich mich: Das Synthese tool scheint ja zu glauben RX sei ein
Clocksignal! Oder werden diese Buffer auch für was anderes verwendet?
Wonach geht das Synthese tool, wenn er glaubt es sei ne clock? geht er
danach ob das signal ein den clk anschluss eines D-Flipflops geht?
RX ist bei mir die Empfangsleitung die auf eine Seriell zu Parallel
wandler geht, und von dort auf nen Buffer. Getacktet wird mit einem 100
MHz tackt, der über einen Counter, der bis zu einer gewisse Zahl zählt,
und somit die Clock um diese Zahl runter teilt (je nach baudrate). Nun
wird jedesmal bei einer Flanke an RX der Counter resetet, somit
syncronisiere ich meine Clock mit dem RX. Vieleicht interpretiert
deshalb das Synthese tool RX als Clock?
Nun ist die Frage: Wie kann ich (vorrausgesetzt meine genanten Annahmen
sind alle richtig) verhindern, das dieser Clock Buffer zwischen meinem
RX signal gesetzt wird?
Vielen Dank für Hilfe!