Vivado-Syntheseergebnis zu langsam für ARM-Zugriffe!

Gast #4504117
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?
Persönliche Seite #4506199
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.
#4506318
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren