www.mikrocontroller.net

Forum: FPGA, VHDL & Co. XC9572XL & Counter


Autor: Uwe M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute

mache grade meine ersten Versuche mit HDL Abel und wollte grad mal mit 
dem XC9572XL nen 4-Bit Counter entwerfen. Die Zustände der einzelnen FF 
sollen mir zur Kontrolle noch über 4LEDs angezeigt werden. Ganz einfach 
also.

Takteingang: Pin 5
LEDs: Pin 35-38

hier der Code:

MODULE test

    CLK pin 5;
    ![L0..L3] pin 35, 36, 37, 38;
    [Q3..Q0] node istype 'reg';

    Counter = [Q3..Q0];

  EQUATIONS

    Counter.CLK = CLK;
    Counter := Counter + 1;

    [L0..L3] = [Q3..Q0];

END

Ergebnis ist: nach dem übertragen macht der XC9572XL zwar irgendwas d.h 
die LEDs wechseln und blinken wie wild im Takt, aber eben nicht schön
(dez)1->2->3->4->5 usw, sondern völlig durcheinander und das auch noch 
bei steigender und mal bei fallender Flanke (3xso und 1xso dann 2xso 
usw).....also völliger murx!!!

Zudem gibt mir der Compiler folgende freundliche Warnung(!) aus:

Synthesizing Unit <Counter>.
    Related source file is "E:/Xilinx/Projekte/Counter/Counter.vhf".
WARNING:Xst:1780 - Signal <Q0_xcQ> is never used or assigned.
WARNING:Xst:1780 - Signal <Q1_xcQ> is never used or assigned.
WARNING:Xst:1780 - Signal <Q2_xcQ> is never used or assigned.
WARNING:Xst:1780 - Signal <Q3_xcQ> is never used or assigned.
Unit <Counter> synthesized

kann mir jemand erklären was ich falsch mache, oder wo der Fehler 
liegt...
???

Gruß

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo kommt dein Taktsignal her? Die CPLD sind exterm empfindlich wenn
die Flanken nicht sehr steil sind oder du da eine Reflexion drauf hast.

Olaf

Autor: Uwe M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab mir den nächst besten Tiny2313 (Atmel) geschnappt, und einfach nen 
pin jede Sekunde toggeln lassen.
Könnte da etwa schon n Draht von 10cm Länge ohne Abblockkondensator dran 
schuld sein?
Wie könnt ich denn sonst die Flankensteilheit noch erhöhen...???

Autor: Uwe M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
....neeee oder????? hab grad den besagten Draht gekürzt + 100nF Kondi 
und siehe da, jetzt läuft alles wie gewollt...


Ist die Warnung nun eigentlich von Bedeutung?

WARNING:Xst:1780 - Signal <Q0_xcQ> is never used or assigned.

Besten Dank...

Uwe

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Uwe,

wo hast Du den besagten 100nF jetzt angeschlossen ?
Ich hoffe an der Betriebsspannung. Wie kann man eigentlich auf die
Idee kommen, so ein CPLD ohne Abblock-C zu betreiben ? ;-)

Gruß

Autor: Uwe M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja war etwas unglücklich formuliert, die 100nF zwischen VCC und GND 
direkt am CPLD. An clk wäre er nicht wirklich dienlich, zwecks 
Flankensteilheit...:)

Hab da noch ne Frage: wie kann ich jetzt eigentlich den Zähler reseten?

Uwe

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> An clk wäre er nicht wirklich dienlich, zwecks
> Flankensteilheit...:)

Da waer aber 100R+100pF und besser noch nen Schmitt-Trigger ganz gut 
wenn
dein Clock etwas lahm ist.
Ich hab hier gerade nen I2C-Slave in einem XC9636 laufen und kann dir 
sagen die Dinger sind verdammt schnell. 15cm Kabel munter ueber die 
Platine und du hast bereits Probleme mit der Flanke wenn man da keinen 
Aufwand treibt.

Olaf

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Hab da noch ne Frage: wie kann ich jetzt eigentlich den Zähler reseten?

z.B. so:

angenommen ein High an Pin 33 soll den Zähler resetten:


MODULE test

my_reset pin 33;

bei EQUATIONS kannst dann den counter zurücksetzen

counter.ar=my_reset; // .ar steht für asynchrones Reset

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.