Forum: FPGA, VHDL & Co. Vivado-Syntheseergebnis zu langsam für ARM-Zugriffe!


von Hocko79 (Gast)


Lesenswert?

Hat jemand hier zufällig Erfahrung mit der Kopplung von ARM-uCs und 
FPGAs?

Ich arbeite an einem ehemaligen Spartan 6 System, welches aus einem FPGA 
und einem externen ARM5, sowie weiterer Peripherie besteht. Das System 
lief unter ISE 14.6 mit einem Spartan 6 sehr gut und ist im Einsatz. Es 
soll nun erweitert werden und wird dazu auf einen Artix portiert.

Dies wurde in der ISE 14.7 getan. Die Portierung ist formell gelungen, 
aber noch nicht getestet. Da aber ein kleiner FPGA verwendet werden 
soll, muss nun Vivado verwendet werden.

Dazu habe ich einige einfache Interfaceschaltungen mit ChipScope 
realisiert, die ich damals zum Testen der ARM-Zugriffe benutzt habe. ES 
ist ein kleines RAM und eine Registerbank mit Anschluss einer seriellen 
Verbindung. Dieses kleine design war seinerzeit in ISE recht zielsicher 
zu implementieren, in Vivado geht es nicht.

Der eigentlich schnellere!!! Artix ist nicht dazu zu bewegen, mit dem 
ARM zusammenzuarbeiten. Ich bekomme das Timing nicht hin. Unter ISE geht 
es scheinbar.

Ist da etwas bekannt, dass Vivado die Chips noch nicht vollständig 
bedient?

von J. S. (engineer) Benutzerseite


Lesenswert?

Hocko79 schrieb:
> Ist da etwas bekannt, dass Vivado die Chips noch nicht vollständig
> bedient?

Es könnte sein, dass die im tool bei neuen Chips hinterlegten Timing 
Werte noch etwas konservativ sind.

Ansonsten vermute ich eher ein Konfigurationsproblem bei Vivado. Das 
constraint-System ist ja nun (etwas mehr) den Synopsis Strategie 
angepast und das UCF wird in der Regel obsolet und muss neu definiert 
werden.

von Mh. M. (mhm)


Lesenswert?

Jürgen S. schrieb:
> Ansonsten vermute ich eher ein Konfigurationsproblem bei Vivado. Das
> constraint-System ist ja nun (etwas mehr) den Synopsis Strategie
> angepast und das UCF wird in der Regel obsolet und muss neu definiert
> werden.

Darauf tippe ich auch. Einfach mal versuchen, die Strategies für 
Synthese und Implementierung zu ändern und dann die Ergebnisse 
beobachten. Mit den richtigen Einstellungen an dieser Stelle kann man 
einen Tradeoff zwischen Compilezeit und Resultaten erreichen, sodass das 
Kompilat auf Timing ist.

Je nachdem, was für eine Buildmaschine zur Verfügung steht, kann man 
auch mehrere Implementationsets aufsetzen und für alle gleichzeitig den 
Build anstoßen. Vorallem bei Systemen mit hoher Anzahl an mittelmäßig 
leistungsfähigen Prozessorkernen erreicht man so recht kurze 
Compilezeiten für diese Evaluation.

Bewährt hat sich für die Implementierung zum Beispiel die Post-Route 
Physical Optimization. Hierbei geht Vivado nach dem Routen (wie der Name 
bereits impliziert) her, und versucht durch Optimierungen wie Verdoppeln 
von FlipFlops in Pipelinestufen, usw. das Design auf Timing zu bekommen. 
Treibt zwar mitunter die Compilezeit gehörig in die Höhe, da dafür 
mehrere Iterationen benötigt werden, ist aber evtl. die einzige Chance 
ein funktionsfähiges Kompilat zu erhalten.

von Hocko79 (Gast)


Lesenswert?

Die Constraints sind funktionell dieselben. Ich habe den Eindruck, dass 
der Baustein von den IOs irgendwie "langsamer" ist, als der Spartan. Ich 
bekomme sehr grosse Offsets reportiert.

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.