Forum: FPGA, VHDL & Co. ChipScope ila und das timing


von Hans-Georg L. (h-g-l)


Lesenswert?

Ich hatte mal Heute wieder Zeit mich mit meinem Zedboard zu beschäftigen 
und habe mal Chipscope als Hardware Logic Analyzer getestet.

Also einfach ein icon und ein ila instanziert und direkt auf die 
Eingangspins verdrahtet. Als Clock habe ich die 100Mhz des Board 
Oszillators benutzt.

Es läuft auch und ich kann die Signale im Chipscope sehen und auch 
triggern.

Soweit so gut.

Nur ist mir das Timing nicht so klar.

PlanAhead wirft dann in der Übersicht eine maximale Frequenz von 108 Mhz 
aus.

Dann habe ich noch einen clock_wiz instanziert und den clock für die ila 
auf 200Mhz verdoppelt.

Jetzt meint PlanAhead es gingen nur noch 98Mhz als max. Frequenz.

Die Laufzeit vom Portpin bis zum Speichern in das BRam hat sich dadurch 
doch nicht geändert.

Constraints habe ich keine angegeben.

Irgendwie blick ich da jetzt nicht mehr durch ;)

Was bedeutet diese maximale Frequenz ?
Auf was bezieht die sich ?

von J. S. (engineer) Benutzerseite


Lesenswert?

Hans-Georg Lehnard schrieb:
> Jetzt meint PlanAhead es gingen nur noch 98Mhz als max. Frequenz.
dies ist ein für Xilinx typisches Verhalten, das man auch dann beobachen 
kann, wenn man ein und dasselbe design mal mit constraints für einen 
etwas höheren Takt spezifiziert: Unverständlicherweise kommt die 
Erstschätzung dann zu einem pessimistischeren Ergebnis, statt zu exakt 
zu demselben.

Dass die Realität bei engeren Taktverhältnissen dann selbstredend die 
ist, dass es unwahrscheinlicher wird, dass das design passt, bzw. die 
Reserven sinken, ist zwar eine Tatsache, dürfte dabei jedoch keine Rolle 
spielen,

Praktisch laufen aber Schätzwert und Realwer wie ein Schere zusammen. 
Ich habe das vor Jahren schon bemängelt und auch beispielhaft untersucht 
- mich dann aber irgendwann dazu durchgerungen, dass nicht mehr zu 
hinterfragen. Entscheidend sind eh die letztlich realen Werte nach dem 
Platzieren.

Die Xilinx-toolchain scheint sich da aber ab und an zu verrennen und ich 
fürchte, dass die pessimistischen Prognosen während der Synthese gfs das 
Mapping und weitere Optimierungen beeinträchtigen können - jedenfalls 
ist es augenscheinlich, dass Xilinx seine tools nicht voll im Griff hat. 
So ist es z.B. zu erklären, dass man mit 3rd-Party tools bessere 
Routingergebnisse schafft, als mit XST. Aber sei es drum.

Wie auch immer, in Deinem Fall könnte es ungeachtet dessen so sein, dass 
durch das Hinzutreten der ChipScope-Funktionen bei der Schätzung etwas 
an Logik hinzumigriert wird, was den scheinbaren Pfad negativ 
beeinträchtigt. Ich würde mich wie schon angedeutet, darum nicht 
kümmern, sondern das desin bauen und schauen ob es geht.

Wichtig sind die TIG-constraints, die zwischen dem Design und dem 
ILA-Takt verwendet werden müssen, dann ist die sample -Frequenz an 
dieser Stelle kein Problem. Ich weiss nun nicht, ob Du da was 
unternommen hast. Ich baue so möglich, chipscope immer über den Core-Gen 
ein, weil das damit automatisch erledigt ist.

Ein Tipp: Du kannst zwischen Design und ILA noch eine Doppelsynchstufe 
einbauen, die linkseitig mit dem design-Takt und rechtsseitig mit dem 
ILA-Takt läuft. Du entkoppelst damit das design zusätlzich und erhälts 
nach meiner Beobachtung höhere Abtastfrequenzen für den ChipScopeCore.

von Hans-Georg L. (h-g-l)


Lesenswert?

Hallo Jürgen,

danke für deine Antwort.
Das der ila die Timings eines Designs beeinflusst ist mir klar. Ich habe 
in diesem Falle aber überhaupt kein Design, sondern einfach probiert den 
ila als externen Logic Analyzer zu missbrauchen. Also mein Design 
besteht aus Eingangspins und den dazugehörigen IBUF's.

Durch das Einfügen der PLL kann sich natürlich auch die Signallaufzeit 
verschieben und vielleicht den Unterschied zwischen 98 und 108Mhz 
erklären.

Im Datenblatt vom ila sind, abhängig von der Konfiguration, Sampleraten 
von > 250Mhz angegeben und das liegt aber weit weg von den 98/108Mhz.

In den Pfaden der Timinganalyse sind meine (Hardware) Eingangsports, und 
somit die Laufzeiten zum BRam, auch nicht zu finden.

Mir ist immer noch nicht klar was diese "maximale Frequenz" sein soll.

Ich habe 1 Clock Eingang mit 100Mhz und 16 Dateneingänge die an den ila 
durchgeschleift werden.

Auf welchen Eingang bezieht die sich ?

von Christian R. (supachris)


Lesenswert?

Die maximale Frequenz nach der Synthese sagt nicht viel aus. Setzt ein 
period Constraint auf den gewünschten Eingangstakt, noch FlipFlops vor 
die ILA Eingänge und dann sagt dir PAR am Ende, ob die Geschwindigkeit 
reicht.

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.