Hallo, Ich habe folgendes Problem. Ich habe einen 16Bit Binär Counter Implementiert, und dann die Werte auf einen Outputpin gelegt. In Pace dann den Clock Eingang auf die interne Clock (P38 | IO_GCK2) und den 0'te Bit auf einen Ausgang (P119) gelegt. Leider kommt auf dem Ausgang kein Signal an, wenn ich diesen mit einem Oszi abgreife. Eigentlich sollte dort ja die Halbe Tacktfrequenz anliegen. Das Problem tritt typischerweise auch an allen andern Bitstellen auf. Hauptproblem dabei ist aber, dass er intern (auf dem CPLD) wohl nicht zählt. In der Simulation funktioniert alles einwandfrei. Am Ausgang selber liegt es wohl nicht, wenn ich den Tackt über einen obuf direkt wieder ausgebe, kann ich den 1zu1 abgreifen. Hoffe jemand hat eine Idee. MFG Christian Noch ein paar Angaben: "programmieren" tu ich mit Xilinx ISE 10.1.03 programmieren in " da ich fast ausschließlich in Schematic arbeite. Zum CPLD: Xilinx Coolrunner-II Xc2c256-TQ144 (kein X-Board)
> Tackt
Der Tackt ist eigentlich ein Takt ;-)
Woher hast du den Counter?
Wie ist der Reset beschaltet?
Mit dem Takt haste wohl recht ;-). Den Counter hab ich aus der Symboldantenbank von ISE. Genau genommen ist es der CB16CE. Der CLR ist in diesem Fall direkt auf GND weil ich erstmal gucken wollte ob er überhaupt was ausgiebt. Eigentlich müsste er dann doch direkt wieder bei 0 anfange, oder nicht? MFG
- Schau die den Fitter Report an. Dort siehst Du genau, was erzeugt wurde und auf welche Pins gelegt wurde. - Zum Überprüfen, ob richtig Programmiert wurde, kannst Du die Signatur zurücklesen.
Hm, Also ich hab mir den Fitterbericht angeguckt und musste festellen, dass die Ausgänge nicht auf den Pinnen ausgegeben werden wie ich sie in PACE eingestellt habe. Zu dem werden selbst die Ausgänge "gefittet" ( ich nenn das mal so), denen ich geigentlich garkein Pin zugewiesen habe. In PACE ist alles, selbst nachdem ich die ise, ucf und ngd Datein neu einlese, so wie ich es eingestellt habe. Woran kann es liegen, dass ISE mir die Pins verstellt, zumal es in andern Projekten mit der selben ISE version am selben Rechner und dem selben CPLD schon mal funktioniert hat. MFG Christian
Woran es liegt kann ich auch nicht sagen, aber Du kannst die ucf Datei auch manuell ändern und richtigstellen. Mit PACE stehe ich immer auf Kriegsfuß, habe eigenlich noch nie verstanden wie es funktioniert.
Was steht im UCF File?
> selbst nachdem ich die ise, ucf und ngd Datein neu einlese
Mach mal "Cleanup Project Files". Das hilft immer ;-)
Leider hat der Cleanup nicht geholfen. Hier mal die UCF datei. Diese ist nun von einem ander Projekt. Das Problem ist dasselbe.
1 | #PACE: Start of Constraints generated by PACE |
2 | |
3 | #PACE: Start of PACE I/O Pin Assignments |
4 | NET "DataOut_clk" LOC = "P102" ; |
5 | NET "DataOut_Sync" LOC = "P104" ; |
6 | NET "Intern_clk" LOC = "P38" ; |
7 | |
8 | #PACE: Start of PACE Area Constraints |
9 | |
10 | #PACE: Start of PACE Prohibit Constraints |
11 | |
12 | #PACE: End of Constraints generated by PACE |
Die Pinbelegungen stimmen laut UCF file. Hier mal die ersten 5 Zeilen der Pinliste des Fitterreports.
1 | Pin List |
2 | Pin Num Pin Type Assigned Signal Bank I/O Standard |
3 | 1 VCC VCC |
4 | 2 I/O/GTS2 DataOut_clk 2 LVCMOS18 |
5 | 3 I/O/GTS3 DataOut_clk_LED 2 LVCMOS18 |
6 | 4 I/O DataOut_Sync 2 LVCMOS18 |
7 | 5 I/O/GTS0 DataOut_Sync_LED 2 LVCMOS18 |
Was auffällt ist halt, dass die Pinnummer nicht mit denen aus dem UCF file übereinstimmen und, dass den _LED Signalen auch Pins zugewiesen sind obwohl laut UCF keine Einstellunge vorgenommen wurden. MfG
Alle Signale aus dem Top Level Modul werden immer an Pins geführt, unabhängig davon ob sie im UCF File zugewiesen wurden. Wenn keine Vorgabe gemacht wird, dann werden sie irgendwie plaziert, wo es dem Fitter günstig erscheint.
> Alle Signale aus dem Top Level Modul werden immer an Pins geführt,
Korrektur : Alle Ports aus dem Top-Level Modul
Gut zu wissen. Nur leider wurden ja auch die im UCF File vorgegebene Einstellungen nicht übernommen. Hast du da eine Idee zu.
> Nur leider wurden ja auch die im UCF File > vorgegebene Einstellungen nicht übernommen Im UCF steht nichts von einem P119 ... :-o (da fehlen auch die Signale DataOut_clk_LED und DataOut_Sync_LED)
Ist die Fitting Option "Use Location Constraints" auch auf "Always" gesetzt ?
Jap, hat zwar etwa gedauert bis ich die Option gefunden habe, aber der Wert steht auf Always.
Ist das UCF-File unter den Projekt-Sources Fenster aufgelistet? Wenn Du auf das UCF File doppelklickst, dann öffnet sich der Timing Constraints Editor. Links kann man den Punkt Ports auswählen, dann bekommst Du eine Liste der Signale. Was steht dort ?
@ Lothar Miller Das Missverständniss mit der Pinbelegung P119, resultiert daraus, dass ich nun die UCF und den Fitterreport von dem eigentlichen Projekt gepostet habe. Die Angaben die ich in meinem ersten Post gemacht habe, bezogen sich auf ein neues Projekt, welches ich nur zu Testzwecken gemacht habe um zu sehen woran es liegen könnte. Der Stand des Problems: Nach dem ich heute Morgen wieder an meinem Rechner gegangen bin, und Implement Design noch mal neu gestartet habe, musste ich zu meiner Verwunderung festellen, dass die Pins nun so gelegt sind wie ich es geplant habe. Das Taktsignal kann ich nun auch abgreifen. Auch unter Ports scheint nun alles zu stimmen. Ich befürchte das ISE da ein Problem hatte. Was genau kann ich nicht sagen und hoffe das es nich mehr auftritt. Leider ist das Signal was durch den Zähler generiert wird nicht an dem Angegebene Pin abgreifbar, obwohl die Simulation mir zeigt, dass dort ein Signal anliegen sollte. Ich werd noch mal ein wenig rumprobieren. Wenn ich das Problem weiter eingrenzen kann werd ich mich nochmal melden. Danke schon mal bis hierhin für die Hilfe. MfG
So jetzt auch registriert ;-). Das Problem scheint jetzt soweit behoben. Gelegen hat es an der fehlenden Zuordnung der Pins. Die Ursache ist im nachhinein recht einfach, aber wohl ein Schwachstelle von ISE. Teilweise hat ISE, nachdem ich die Pins in PACE zugeordnet habe das UCF file nicht in das Projekt mit eingebunden. Nachdem ich das per addSource manuel gemacht habe funktionierte das dann auch. Leider hab ich die Erfahrung gemacht, das ISE zwischenzeitig die UCF trotzdem noch ignoriert. Zum beispiel, wenn schon einmal eine UCF im Prjekt vorhanden war, oder man ein andere Schematik als Toplevel Modul gesetzt hat. Hier half eigentlich nur ein Cleanup, teilweise war auch neustart von ISE von nöten. Naja hinteher ist man dann immer schlauer und ich weis wonach ich gucken muss, wenn wieder mal was nicht funktioniert. Danke nochmal für die Hilfe MfG Christian
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.