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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.