mikrocontroller.net

Forum: FPGA, VHDL & Co. Problem | Ausgabe Counterwerte beim CPLD


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Tackt
Der Tackt ist eigentlich ein Takt ;-)

Woher hast du den Counter?
Wie ist der Reset beschaltet?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- 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.

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was steht im UCF File?

> selbst nachdem ich die ise, ucf und ngd  Datein neu einlese
Mach mal "Cleanup Project Files". Das hilft immer ;-)

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider hat der Cleanup nicht geholfen.

Hier mal die UCF datei. Diese ist nun von einem ander Projekt. Das 
Problem ist dasselbe.
#PACE: Start of Constraints generated by PACE

#PACE: Start of PACE I/O Pin Assignments
NET "DataOut_clk"  LOC = "P102"  ; 
NET "DataOut_Sync"  LOC = "P104"  ; 
NET "Intern_clk"  LOC = "P38"  ; 

#PACE: Start of PACE Area Constraints

#PACE: Start of PACE Prohibit Constraints

#PACE: End of Constraints generated by PACE
Die Pinbelegungen stimmen laut UCF file.

Hier mal die ersten 5 Zeilen der Pinliste des Fitterreports.
Pin List
Pin Num   Pin Type   Assigned Signal   Bank   I/O Standard
1           VCC         VCC        
2         I/O/GTS2   DataOut_clk        2      LVCMOS18
3         I/O/GTS3   DataOut_clk_LED    2      LVCMOS18
4           I/O      DataOut_Sync       2      LVCMOS18
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

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Alle Signale aus dem Top Level Modul werden immer an Pins geführt,
Korrektur : Alle Ports aus dem Top-Level Modul

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut zu wissen. Nur leider wurden ja auch die im UCF File vorgegebene 
Einstellungen nicht übernommen. Hast du da eine Idee zu.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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)

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist die Fitting Option "Use Location Constraints" auch auf "Always" 
gesetzt ?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jap, hat zwar etwa gedauert bis ich die Option gefunden habe, aber der 
Wert steht auf Always.

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Christian D. (cdrueke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.