Forum: FPGA, VHDL & Co. Multi-Cylcle Contraints ein paar Fragen


von egon (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich befasse mich gerade wie der Titel schon sagt mit Multi-Cylcle 
Contraints und dazu habe ich ein paar Fragen.
Vorweg ich hab zwar schon ein wenig was mit Verilog gemacht aber auf 
keinen Fall ein Experte. Vorallem nicht mit Timing Contraints bisher hab 
ich nur eine Clock Contraint angegeben mit dem Rest stehe ich noch ein 
wenig auf Kriegsfuß ;)


Ich hab ein Beispiel mit Ise (Xilinx) fuer dem XC95288xl in Verilog 
erstellt (siehe Attachment).
Nicht abschrecken lassen wegen Verilog. Es ist einfach nur ein Counter 
der der hochzählt, ein Vergleich und das Ergebnis wird dann aus dem 
Modul gegeben. Das mit dem Counter und Vergleich ist nur ein Beispiel es 
geht nicht um den Sinn usw.

Da das ganze bei 100Mhz laufen soll ist es zu langsam für ein Cycle... 
daher meine Versuche mit Multi-Cylcle Contraints usw.


Die Fragen:

1) Ich Verstehe es so, dass ich im Source für das Clock Enable selbst 
sorgen muss und nur der ISE sagen muss wie lang der Path braucht via 
Contraint. Ist das so korrekt?

Irgendwie wenn ich die RTL Schematic ansehe sieht das ziemlich kaputt 
aus.
Anscheinend hat der RTL Schematic Viewer der ISE hat ein Problem mit 
Addern ? Alle Anschlüsse zum Adder fehlen irgendwie (siehe Attachment).


2) In meinem ucf-file habe ich folgendes angegeben:

NET "clk" TNM_NET = clk;
TIMESPEC TS_clk = PERIOD "clk" 10 ns HIGH 50%;

NET "ce"  TNM_NET = "TNM_CE";
TIMESPEC TS_MCP_CE = FROM "TNM_CE" TO "TNM_CE" TS_clk * 2;


die Zeile:
TIMESPEC TS_MCP_CE = FROM "TNM_CE" TO "TNM_CE" TS_clk * 2;

habe ich mit dem Contraints-Editor eingeben.
Wenn ich das Top-Modul implementiere bekomme ich in der Console 
folgendes:

WARNING:Cpld:999 - Syntax error in timing constraint 'TS_clk*2', this 
constraint is ignored.

Wenn ich folgendes via Contraints-Editor eingebe:
TIMESPEC TS_MCP_CE = FROM "TNM_CE" TO "TNM_CE" 20 ns;

funktioniert es keine Warnung. Warum kommmt dort ein Syntax Error ? 
Verstehe ich nicht!


3) Wenn ich den Timing Report ansehe:

Summary
Performance Summary
Min. Clock Period 11.000 ns.
Max. Clock Frequency (fSYSTEM) 90.909 MHz.
Limited by Cycle Time for clk
Clock to Setup (tCYC) 11.000 ns.
Clock Pad to Output Pad Delay (tCO) 5.800 ns.



Timing Constraints
Constraint Name Requirement (ns) Delay (ns) Paths Paths Failing
TS_clk 10.0 0.0 0 0
TS_MCP_CE 20.0 11.0 395 0
/../

Ist das korrekt so ? Also er meckert zwar nicht mehr nur die Max. Clock 
Frequency ist noch immer bei 90.909 Mhz.
Da haette ich eigentlich 100Mhz erwartet?

LG ;)

von egon (Gast)


Lesenswert?

ops da ist wohl beim Copy und Paste reichlich was schiefgegangen...
Multi Cycle Constraint mein ich ;)

von Duke Scarring (Gast)


Lesenswert?

egon schrieb:
> ich befasse mich gerade wie der Titel schon sagt mit Multi-Cylcle
> Contraints und dazu habe ich ein paar Fragen.
Als Einstieg in die Welt der programmierbaren Logik sind 
Multi-Cycle-Constaints nicht unbedingt geeignet...


> Ich hab ein Beispiel mit Ise (Xilinx) fuer dem XC95288xl in Verilog
> erstellt (siehe Attachment).
> Nicht abschrecken lassen wegen Verilog. Es ist einfach nur ein Counter
> der der hochzählt, ein Vergleich und das Ergebnis wird dann aus dem
> Modul gegeben. Das mit dem Counter und Vergleich ist nur ein Beispiel es
> geht nicht um den Sinn usw.
>
> Da das ganze bei 100Mhz laufen soll ist es zu langsam für ein Cycle...
> daher meine Versuche mit Multi-Cylcle Contraints usw.
Es ist ein schlechtes Beispiel. Wenn Dein Counter laufen soll, hast Du 
mehrere Möglichkeiten:
1. runtertakten
2. einen schnelleren Chip verwenden (z.B. Speedgrade -7)
3. das Design vereinfachen -> wenn Du den Counter ohne Reset und 
Vergleich einfach durchlaufen lässt, wird Dein Design schneller


> 1) Ich Verstehe es so, dass ich im Source für das Clock Enable selbst
> sorgen muss und nur der ISE sagen muss wie lang der Path braucht via
> Contraint. Ist das so korrekt?
Jein. Ob ein CE notwendig ist oder nicht, hängt von Deiner konkreten 
Aufgabenstellung ab. ISE sagt Dir dann, wann und wie lange das 
Eingangssignal (bezogen auf den Takt) gültig sein muß. Oder Du gibst 
Deinen Wunsch per Constraint an und ISE prüft, ob Dein Wunsch erfüllt 
wird (= Constrain eingehalten).

> Irgendwie wenn ich die RTL Schematic ansehe sieht das ziemlich kaputt
> aus.
> Anscheinend hat der RTL Schematic Viewer der ISE hat ein Problem mit
> Addern ? Alle Anschlüsse zum Adder fehlen irgendwie (siehe Attachment).
Ja, der RTL-View ist oft unvollständig. In älteren ISE-Versionen ging 
das mal.


> habe ich mit dem Contraints-Editor eingeben.
> Wenn ich das Top-Modul implementiere bekomme ich in der Console
> folgendes:
>
> WARNING:Cpld:999 - Syntax error in timing constraint 'TS_clk*2', this
> constraint is ignored.
[...]
> funktioniert es keine Warnung. Warum kommmt dort ein Syntax Error ?
> Verstehe ich nicht!
Offensichtlich ist der Constraints-Editor auf die FPGA-Toolchain 
abgestimmt.


Duke

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.