mikrocontroller.net

Forum: FPGA, VHDL & Co. Clock für Spartan 3 - wie?


Autor: Tobi A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

ich hab mit mit ISE 8.1 einen timer zusammengezimemrt und will nun ganz 
simpel den clock (50MHz) der an Pin 124 meines XC3S200-144TQ geht damit 
runterteilen und mit dem COE output ne LED an und ausschalten.

Frage ist warum geht das nicht?

Erster Versuch war P124 einfach auf einen IO Marker zu klemmen und den 
direkt in den clock reinzufüttern - ging nicht.

Dann mal in der Artikelsammlung nachgelesen unter UCF files und das hier

NET CLOCK        LOC = AA12;
NET CLOCK        TNM_NET = "CLOCK_50";
TIMESPEC         TS_CLOCK_50 = PERIOD CLOCK_50 50 MHz HIGH 50 %;

gefunden

also - IO marker vom Clock eingang des counters abgerissen - die wire 
die in den clockeingang des "clock" genannt und dann mein ucf file so 
geschrieben

NET clock        LOC = P124;
NET clock        TNM_NET = "clock_50";
TIMESPEC         TS_clock_50 = PERIOD clock_50 50 MHz HIGH 50 %;
NET ledout     LOC = P97 ;

erfog - nix passiert led bleibt dunkel und compiler meckert 
"WARNING:DesignEntry:216 - Net "clock" is connected to load pins and/or 
I/O"

Wie mache ich das denn nun richtig?

Danke im Voraus

Tobi

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TIMESPEC TS_clock_50 = PERIOD "clock_50" 20 ns HIGH 50 %;

evtl. die Anfuehrungszeichen?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TIMESPEC "TS_clock_50" = PERIOD "clock_50" 20 ns HIGH 50 %;

zweimal

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
NET "clock"        LOC = "P124";
NET "clock"        TNM_NET = "clock_50";
TIMESPEC "TS_clock_50" = PERIOD "clock_50" 50 MHz HIGH 50 %;

oder noch mehr ;-)

Autor: Tobi A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
???
verstehe ich grad nicht - sorry
abgesehen von dem hier

NET clock        LOC = P124;

bzw der zuweisung für die LED hab ich keine ahnung was die 2 anderen 
Zeilen machen bzw wofür sie gut sind.

Ich brauch einfach nur was was meine counter zählen lässt - timings und 
so sind mir ziemlich egal.

Tobi

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Tobi A. (Gast)

>Ich brauch einfach nur was was meine counter zählen lässt - timings und
>so sind mir ziemlich egal.

Dann musst du nur die Pins richtig zuweisen. Das hast du scheinbar 
nicht, denn dein Takt geht auch direkt auf IOs. Prüfe das nochmal GENAU!

MFG
Falk

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuche die Anfuehrungszeichen zu setzen wie beschrieben.

Die erste Zeile weist deinen clock-Anschluss einem Pin zu (der clock 
muss natuerlich auch so heissen).

Die Zeile
TIMESPEC "TS_clock_50" = PERIOD "clock_50" 20 ns HIGH 50 %;
setzt einen Timing-Parameter, naemlich Periode von 20 ns (also 50 MHz) 
wobei davon jeweils die Haelfte high ist.

Die Zeile dazwischen wendet diesen Timing-Parameter auf deinen konkreten 
clock an.

Autor: Tobi A. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Es geht immer noch nicht.

Ich hab den ganzen kram mal zusammengepackt und hochgeladen. Wäre cool 
wenn sich das wer mit Ahnung mal angucken könnte.

1000 Dank

 Tobi

Autor: Tobi A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mir ging da grad im wahrsten sinne des wortes ein Lich auf..

kaum hatte ich es hochgeladen ging die LED an.

Kurz auf den Taschenrechner geguckt und festgestllt das ich zwar 
oderentlich

50E6/2^32 geteilt hatte und auf 11.irgendwas E-3 gekommen bin das dann 
aber als milisekunden gelsen habe.. na ja dann noch der andere macht es 
schlimmer.. weil das sind HZ.. das ding zählt anscheinend einfach nur zu 
langsam.

Versuche das grad mal zu fixen :-D

Tobi

Autor: Tobi A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok
ist geklärt.. war das timing.. schön blöd wenn man mal "eben" was in den 
taschenrechenr eintipp...


Tobi

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eieiei. Lern VHDL oder verilog. Der schematic-Editor ist was für Leute, 
die auf Schmerz stehen.

Vielleicht machst Du einfach ein Bild von Deiner Zeichnung. Das wäre 
einfacher.

Rick

Autor: Nat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es wenn du einen Frequenzteiler schreibst? Ich habe das so 
gemacht.
Du nimmst die Frequenz, die du brauchst und teilst die 50 MHz durch 
diese Frequenz, es muss eine ganze Zahl rauskommen, dann teilst du die 
Zahl durch 2  und mit einem Zähler zählst hoch bis die Zahl erreicht 
ist. Dann definierst du ein Signal und sagst einfach wenn die Zahl 
erreicht ist Signal <= not Signal. Dieses Signal kannst du dann einfach 
an die LED führen. Die blinkt dann in dem Takt der gewünschten Frequenz.

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.