Quartus FPGA-Migrationsprobleme

Ich habe ein FPGA-Design Quartus, das für einen Zyklon IV EP4CE15F17C8 (42 % verwendet) kompiliert und korrekt funktioniert.

Ich versuche, dasselbe Design auf ein kleineres FPGA EP4CE10F17C8 zu migrieren, aber wenn ich das FPGA-Gerät ändere, erhalte ich Kompilierungsfehler im Zusammenhang mit einer PLL-Megafunktion, die ich habe:

Fehler (176554): PLL "top_level_d9620:top_level_d9620_comp|pll25MHZ_b:G5|altpll:altpll_component|pll25MHZ_b_altpll:auto_generated|pll1" kann nicht platziert werden -- I/O-Pin-Uhr (Porttyp INCLK der PLL) ist einem Ort zugewiesen, der nicht mit dem Porttyp INCLK einer PLL auf dem Gerät verbunden ist

Ich weiß nicht, wie ich diesen Fehler vermeiden kann. Gibt es dafür eine Problemumgehung? Selbst wenn ich die PLL entferne, erhalte ich viele Fehler wie diese:

Fehler (176337): Zelle top_laser:top_laser_comp|gene_freq_dpi1:U35|retard_t40[0] gespeist von 5 nicht-globalen Steuersignalen – nur 4 Steuersignale dürfen nicht-global sein

Irgendwelche Ideen?

Es hört sich so an, als hätten Sie ein FPGA ausgewählt, das nicht über die erforderlichen Ressourcen verfügt.
EP4CE15F17C8 hat 4 PLL & EP4CE10F17C8 hat 2 PLL :: Warum kann ich keine dieser 2 verfügbaren PLL verwenden?
Es geht nicht nur um die Anzahl der PLLs; Es geht auch um die verfügbaren globalen/lokalen Routing-Ressourcen und die Pins, die Sie ausgewählt haben, um Uhren in den Chip zu bringen.

Antworten (2)

Sieht so aus, als würden Sie möglicherweise einen Eingangspin für die Uhr verwenden, der kein taktfähiger Pin ist. Werfen Sie einen Blick auf das Datenblatt und vergewissern Sie sich, dass Sie einen gültigen Uhr-Pin verwenden. Dies ist eines der wenigen Dinge bei einem FPGA, bei denen Sie wirklich genau darauf achten müssen, welchen Pin Sie verwenden. Andere Signale können grundsätzlich dort platziert werden, wo es am bequemsten ist, aber Uhren müssen mit Pins verbunden werden, die in der Lage sind, die Uhrennetzwerke und PLLs zu treiben.

Beim zweiten Fehler bin ich mir aber nicht sicher. Siehe: http://quartushelp.altera.com/13.0/mergedProjects/msgs/msgs/efsac_fsac_too_many_non_global_control_signals_for_lcell_ff.htm . Könnte ein Clock-Routing-Problem sein, wenn die Uhr nicht über das richtige Clock-Netzwerk geht.

Ihr erster Fehler wurde bereits von Alex und Dave behoben. Die Erklärung für den zweiten Fehler ist etwas subtiler.

Jeder Logic Array Block (LAB) hat eine bestimmte Anzahl von "Steuersignalen" - am häufigsten Takte, aber auch Resets und Clears. Diese Signale werden üblicherweise über die "globalen" Routing-Ressourcen (manchmal als "Clock"-Routing-Ressourcen bezeichnet) verteilt, und daher sind die LABs so optimiert, dass sie alle Steuersignale, die sie benötigen, von den globalen Routing-Ressourcen einbringen.

Sie können Steuersignale auch über lokales Routing einspeisen - aber nur bis zu vier davon pro LAB. So ist die Hardware aufgebaut.

Der Grund, warum Sie diesen Fehler sehen, wenn Sie die PLL entfernen, liegt höchstwahrscheinlich darin, dass Sie im Wesentlichen die Steuersignale von globalen Signalen (PLLs können nur globale Signale speisen) in lokale Signale umwandeln. Wenn Sie einen besseren Platz für die PLLs finden, sollte der Fehler verschwinden.