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 ;)
ops da ist wohl beim Copy und Paste reichlich was schiefgegangen... Multi Cycle Constraint mein ich ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.