Forum: FPGA, VHDL & Co. Clockpin Spartan6


von G.A. (Gast)


Lesenswert?

Hi Leute,

ich hab mal eine kurze Frage vielleicht hat ja jmd von euch Erfahrung 
damit.

Ich verwende in einem meiner Projekte einen Spartan Lx75 mit 95% 
Pinauslastung. Aufgrund der hohen Auslastung musste ich eine Quasiclock 
auf einen normalen IO-Pin legen und konnte keinen speziellen 
Globalclockpin verwenden. Diese Quasiclock muss etwa 5 Register in der 
Größe von 8 - 16 Bit und einen 8x2048 Fifo-core von xilinx treiben. Und 
das ganze mit einem Takt von 125 Mhz. Mit dem Ucf-Eintrag "not dedicated 
Clockroute" komm ich auch durch die Synthese und Place&Route, hab bzw. 
kann das ganze aber noch nicht praktisch testen, da die Platine noch 
nicht gefertig wurde. Nun meine Frage hat jmd mit solche Konstrukten 
Erfahrung, was kann ich machen falls es nicht funktioniert... gibts da 
irgendwelche Tricks?? Die Pins anders zuweisen funktioniert leider nicht 
in der IO-Bank werden alle anderen ClockPins von nem MIG-Interface 
verwendet und können somit nicht umgelegt werden und die IO-Bank ist zu 
100% ausgelastet. Auch das ganze Modul einer anderen Bank zuweisen ist 
durch die 95 % nicht möglich (hab ich schon versucht). Bevor ich mich 
wenns nicht funktioniert an ein Redesign mit nem größeren Spartan mit 
mehr Pins setzte, wollte ich mal gucken ob es nicht andere Wege gibt.
Irgendwie sowas mit wesentlich schnellerem Takt vllt die Quasiclock 
abtasten und damit ne saubere Glock generieren...??

mfg

von Christian R. (supachris)


Lesenswert?

Prinzipiell geht das schon, erst recht wenn nur lokal Logik damit 
versorgt wird. Wie schnell ist denn der Takt? Hast du einen BUFG 
reingeschaltet?

von G.A. (Gast)


Lesenswert?

hi,

die Frequenz beträgt wie oben geschrieben 125 Mhz. BUFG is eingebaut, 
jedoch krieg ich trotzdem die Warnung von der Synthese :

Place:1109 - A clock IOB / BUFGMUX clock component pair have been found
   that are not placed at an optimal clock IOB / BUFGMUX site pair. The 
clock
   IOB component <PHY_GMII_RXCLK> is placed at site <T4>. The 
corresponding BUFG
   component <GBIT/GMII_ETH_RCV_STREAM/_i000001> is placed at site
   <BUFGMUX_X3Y14>. There is only a select set of IOBs that can use the 
fast
   path to the Clocker buffer, and they are not being used. You may want 
to
   analyze why this problem exists and correct it. This is normally an 
ERROR but
   the CLOCK_DEDICATED_ROUTE constraint was applied on COMP.PIN
   <PHY_GMII_RXCLK.PAD> allowing your design to continue. This 
constraint
   disables all clock placer rules related to the specified COMP.PIN. 
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.

und deshalb mach ich mir halt sorgen

mfg

von Isidor Calaghan (Gast)


Lesenswert?

Wenn es durch die Synthese kommt und die Timings passen, ist es kein 
Problem, weil er das ja checked. Er weisst Dich aber darauf hin, dass es 
ungünstig ist. Auf Deutsch: Mit besserer Verdrahtung hättest Du mehr 
Reserven und kämst viel leichter auf das timing und erreicsht auch ein 
höheres Timing.

Frage: Warum tastest Du den externen Takt nicht ein? Die 150MHz wären 
inklusive Jitter wie 160MHz, d.h. mit geschätzten 320MHz müsstest Du es 
eintakten können. Dann gehst Du einfach auf ein asynch FIFO. Wenn Du 
einen DDR-Takt hast, benutzt Du sicher irgendwas um die 300-400 MHz, 
oder?

von Christian R. (supachris)


Lesenswert?

125MHz ist schon für ein nicht-Clock Netz eine Herausforderung, aber 
wenn die Constraints erreicht werden (du hast doch hoffentlich welche?) 
dann ist es OK.

von G.A. (Gast)


Lesenswert?

Constraints speziell für das Signal sind drin und waren immer drin ;). 
Timingfehler wurden trotzdem nie angezeigt zumindest nicht für die 
"Leitung".
Falls es im praktischen Test Probleme geben sollte, werde ich das 
Clocksignal mit der 2.5 fach Frequenz samplen und probieren, damit ne 
saubere Clock hinzubekommen die sich auch über die richtigen Pfade 
routen lässt.

von Christian R. (supachris)


Lesenswert?

Hm, seltsamer Ansatz. Die Daten sind doch synchron zu dem Clock, oder? 
Da brauchst du doch keinen Takt einsampeln. Eher direkt mit BUFG 
verwenden und passende OFFSET IN Constrints setzen, dann wird dir das 
Tool schon sagen, ob es klappt.

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
Noch kein Account? Hier anmelden.