XC9572XL & Counter

Gast #928513
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ß
Gast #928570
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...???
Gast #928583
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
Gast #929494
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
Gast #929769
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
Gast #929796
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren