Forum: FPGA, VHDL & Co. XC9572XL & Counter


von Uwe M (Gast)


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ß

von Olaf (Gast)


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

von Uwe M (Gast)


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...???

von Uwe M (Gast)


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

von Mark (Gast)


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ß

von Uwe M (Gast)


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

von Olaf (Gast)


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

von Volker (Gast)


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

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
Noch kein Account? Hier anmelden.