Timing Summary: Minimum Period!

#3665501
Lesenswert?

Hallo,

ich habe folgendes Verständnisproblem:
In meinem Design speise ich 40 MHz extern ein und erhöhe dann mit dem 
PLL die Frequenz auf 400 MHz.

Wenn ich nun nach Place& Route in den Timing Report schaue bekomme ich 
folgendes heraus:
1
Timing Summary
2
-------------------
3
Design statistics:
4
   Minimum period:  10.000ns{1}   (Maximum frequency: 100.000MHz)
5
   Maximum path delay from/to any node:   1.741ns

Ich habe für den externen Takt den ich einspeise ganz normal ein 
Constraint gesetzt:
1
TIMESPEC TS_CLK_IN1 = PERIOD "CLK_IN1" 25 ns HIGH 50 %;

Ich kann mit weiteren Timing Constraints mein Design optimieren aber in 
dem Timing Summary ändert sich die 'Minimum Period' nicht.
Nehme ich das Constraint für die Clock die ich einspeise aber raus.
Dann sehe ich folgendes in der Timing Summary:
1
Timing Summary
2
-------------------
3
Design statistics:
4
   Minimum period:   1.741ns{1}   (Maximum frequency: 574.383MHz)
5
   Maximum path delay from/to any node:   1.741ns

Kann es sein das bei den Auswertungen erst eine Clock ab 100MHz genutzt 
wird? Wenn man also nun weniger einspeist sagt es eben das man 
mindestens 100 MHz einspeisen muss?!

P.S. Ich nutze übrigens den Spartan 6 und Xilinx ISE Webpack.
Gast #3665546
Lesenswert?

Alex P. schrieb:
> Ich kann mit weiteren Timing Constraints mein Design optimieren aber in
Was verstehst Du unter optimieren?

Normalerweise wird - wie Du es schon getan hast - der Eingangstakt 
'constraint'. Abgeleitete Takte (via DCM oder PLL) werden üblicherweise 
automatisch erkannt und auch automatisch 'constraint'.


> Kann es sein das bei den Auswertungen erst eine Clock ab 100MHz genutzt
> wird?
Nein.

> Wenn man also nun weniger einspeist sagt es eben das man
> mindestens 100 MHz einspeisen muss?!
Die PLL im FPGA kann nicht mit beliebigen Eingangstakten gefüttert 
werden. Es gibt eine untere und eine obere Begrenzung.


Duke
#3665602
Lesenswert?

Duke Scarring schrieb:

> Was verstehst Du unter optimieren?

Das ich mit den Timing Constraints die Wege besser gesagt die 'Delays' 
zwischen zwei Elementen definieren kann. Oder sehe ich da was falsch?


>> Kann es sein das bei den Auswertungen erst eine Clock ab 100MHz genutzt
>> wird?
> Nein.

Warum passiert aber nichts wenn ich das Constraint für den Eingangstakt 
'CLK_IN1' drin habe jedoch, wenn ich es raus nehme dann zeigt es mir auf 
einmal etwas in der Timing Summary an?!

> Die PLL im FPGA kann nicht mit beliebigen Eingangstakten gefüttert
> werden. Es gibt eine untere und eine obere Begrenzung.

Ja.
Gast #3665795
Lesenswert?

hmm, hast du in deiner .ucf die clock entsprechend eingetragen?

Und sind deine Angaben aus dem 'Place and Route' report? Ich habe so den 
Verdacht, dass du uns hier nur die Timing-Angaben der 'geschaetzten' 
Synthese ansagst...
Im 'Place and Route' report sagt dir die Toolchain ganz genau, welche 
Clock jetzt zum berechnen des Timings verwendet wird...
#3665811
Lesenswert?

berndl schrieb:
> hmm, hast du in deiner .ucf die clock entsprechend eingetragen?

Ja also die CLK habe ich entsprechnd eingetragen und auch mit dem 
Constraint angegeben welche Frequenz in das System eingespeist wird.

> Und sind deine Angaben aus dem 'Place and Route' report? Ich habe so den
> Verdacht, dass du uns hier nur die Timing-Angaben der 'geschaetzten'
> Synthese ansagst...

Die Timing Summary ist die des Post - PAR Static Timing Report.


> Im 'Place and Route' report sagt dir die Toolchain ganz genau, welche
> Clock jetzt zum berechnen des Timings verwendet wird...

Ich weiß und ich habe auch noch mehr constraints eingetragen um zum 
Beispiel eben die Laufzeiten zwischen den FF zu optimieren. Das passt 
auch alles und es gibt auch keine Fehler.
Es wundert mich aber eben einfach nur, dass wen ich das Constraint für 
die Eingangsclock also CLK_IN1 setze das mir dann ganz am Ende des Post 
- PAR Static Timing Report eine Timing Summary angezeigt wird mit MIn. 
Period von 100 MHz. Nehme ich dieses Constraints aber raus dann wird mir 
eine Min. Period von 574 MHz angezeigt. Wenn ich da dann an den 
Constraints etwas ändere, also zum Beispiel Laufzeiten zwischen dem FF, 
dann ändert sich auch die Min. Periode. Anders wenn ich das Constraints 
mit der CLK_IN1 wieder herein nehme, dann sehe ich die ganze Zeit nur 
100 MHz bei der Min. Period.
Gast #3666584
Lesenswert?

Lass mal auch PAR durchlaufen und schaus dir dann nochmal an. Ich hab 
hier ein Design, da sagt die erste Schätzung eine etwa 15% zu geringe 
Taktrate vorraus. Danach könnte es eigentlich nicht umgesetzt werden.
Wenn man es dann aber mal GANZ durchlaufen lässt, dann klappts plötzlich 
doch - denn dann stehen die Timings genau fest.
#3668326
Lesenswert?

Jetzt funktioniert es!

Ich habe erst folgendes im Constraint stehen gehabt
1
NET "CLK_IN1" TNM_NET = "CLK_IN1";
2
TIMESPEC TS_CLK_IN1 = PERIOD "CLK_IN1" 25 ns HIGH 50 %;

nun aber habe ich es in,
1
NET "CLK_IN1" TNM = "CLK_IN1";
2
TIMESPEC TS_CLK_IN1 = PERIOD "CLK_IN1" 25 ns HIGH 50 %;

geändert.

Einzig allein von TNM_NET zu TNM. Wann genau nutze ich TNM_NET? Ich 
dachte genau das nehme ich wenn ich ein Input Constraint definiere?!

Alter Hase schrieb:

>Ich hab mal gelernt die Angabe zum minimalen timing komplett zu
>ignorieren.

Aber wieso das gibt mir doch eigentlich den schlechtesten Pfad im System 
an, mit der minimalen Taktfrequenz?!

berndl schrieb:

> Und du bist dir damit ganz sicher?

Ich denke schon. Du kannst mich gern eines besseren belehren. Ich habe 
zum Beispiel einen einfachen 4 Bit Zähler und definiere mit INST nun die 
FF's und erstelle dann mit [ FROM ...TO... VALUE ns ] das Delay welches 
ich dazwischen haben möchte.
Gast #3668472
Lesenswert?

Alex P. schrieb:
> Aber wieso das gibt mir doch eigentlich den schlechtesten Pfad im System
> an, mit der minimalen Taktfrequenz?!

Die Optimierung bei Place & Route orientiert sich an den Constraints. Es 
wird nur so lange optimiert, bis die erfüllt sind. Je nachdem ändert 
sich dann auch der kritische Pfad komplett. Es ist nicht möglich in 
einem Durchlauf Synthese und Implementierung so etwas wie die maximale 
Taktfrequenz herauszufinden oder Ähnliches.

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