Forum: Mikrocontroller und Digitale Elektronik Zähler 16Bit zählt falsch?


von Udo (Gast)


Lesenswert?

Hallo bin etwas verwirrt:

Nutze im Xilinx ISE 9.1 einen 16Bit Zähler der zählt einfache Pulse.
Soweit so gut. Jetzt möchte ich den Ausgang Q2 nutzen um etwas zu 
schalten. Dieser sollte doch beim 4. gezählten Puls seinen Pegel von low 
auf high wechseln. --> Macht er aber nicht. Erst beim 5.
Oder liegt der Fehler an einer anderen Stelle. Habe diesen mit den 
negierten Bedingungen der Ausgänge Q0,Q1,Q3,Q4,Q5,Q6 UND verschaltet um 
mehrfach schelten zu vermeiden.

Andere ich es so dass er beim 2. schalten sollte schaltet er beim 3.?

von Der M. (steinadler)


Lesenswert?

Bist du sicher, dass die Werte die du einstellst, auch von 1 beginnen 
und nicht von 0?
Das würde das Verhalten erklären.

von Udo (Gast)


Lesenswert?

Hallo Micha,

ja ist folgendermaßen:

Q0 über negierung auf und
Q1 über negierung auf und
Q2 direkt         auf und
Q3 über negierung auf und --> auf eine Flankenerkennung (steigend)
Q4 über negierung auf und
Q5 über negierung auf und
Q6 über negierung auf und


so und damit schalte ich ein Latch.

von Der M. (steinadler)


Lesenswert?

Ich muss mal dumm fragen, was sind denn Q0-Q6??
Einfache Ausgänge?

Also ich geh einfach mal davon aus, dass Q0-Q6 den Zählerstand binär 
ausgeben.
Dann wäre bei Zählerstand
0 :: der Q6-Q0 = 0b000000
1 :: 0b000001
2 :: 0b000010
3 :: 0b000011
4 :: 0b000100  -> und hier wäre dein Ausgang aktiv.

Das sind insgesamt fünf Pulse.

von Udo (Gast)


Lesenswert?

Ja sind direkt die Ausgänge des Zählers fängt beo Q0 an und geht Bis Q15 
alsoalle zusammen ergeben Binär die gezählte Zahhl. So sollte es 
zumindest sein.

von Der M. (steinadler)


Lesenswert?

habe meinen letzten Post editiert.

von Udo (Gast)


Lesenswert?

0 :: 0b000000 - kein Puls alle Ausgänge low
1 :: 0b000001 - 1.Puls nur Ausgang Q0 high
2 :: 0b000010 - 2.Puls nur Ausgang Q1 high
3 :: 0b000011 - 3.Puls Ausgang Q0 und Q1 high
4 :: 0b000100 - 4.Puls nur Ausgang Q2 high

so interpretieri ich die Ausgänge oder liege ich falsch?

von Karl H. (kbuchegg)


Lesenswert?

Wie resettest du den Counter?

von Udo (Gast)


Angehängte Dateien:

Lesenswert?

So habe mal nen simplen 16Bit Zähler simuliert, das Ergebnis ist im 
Anhang zu finden. Denke ist selbsterklärend.

Aber warum wird der erste Impuls nicht gezählt?

von Udo (Gast)


Lesenswert?

Reset erfolgt im Augenblick noch nicht. Bin ja noch in der einfachen 
Simulationsstufe.

von Der M. (steinadler)


Lesenswert?

Wie hast du denn deinen Zähler aufgebaut?
Zählt er von 0 bis 4 oder zählt er von 65531 bis 65535?

Zeig doch mal den Code.

von Udo (Gast)


Lesenswert?

Code habe ich leider nicht, Arbeite mit der grafischen Oberfläche von 
Xilinx und demnach auch mit deren standard Bauelementen aus deren 
Bibliothek. Der Zähler cb16ce ist aber aus mehreren FTCE FlipFlops 
aufgebaut.

von Der M. (steinadler)


Lesenswert?

kannst du irgendwie nen Startwert für den Timer angeben? Sieht aus als 
stände der nicht auf null

von Udo (Gast)


Lesenswert?

@ Micha R.
Laut meiner Simulation hat er aber den Startwert 0. Mann kann auch 
keinen vorgeben.
Versuche gerade die interne Verschaltung zu verstehen, diese FTCE sind 
Toggle Flip Flops  mal sehen.

von Der M. (steinadler)


Lesenswert?

Hast du Clear auf GND liegen?

von Falk (Gast)


Lesenswert?

@ Udo (Gast)

>Q0 über negierung auf und
>Q1 über negierung auf und
>Q2 direkt         auf und
>Q3 über negierung auf und --> auf eine Flankenerkennung (steigend)
>Q4 über negierung auf und
>Q5 über negierung auf und
>Q6 über negierung auf und

>so und damit schalte ich ein Latch.

>Code habe ich leider nicht, Arbeite mit der grafischen Oberfläche von
>Xilinx und demnach auch mit deren standard Bauelementen aus deren
>Bibliothek. Der Zähler cb16ce ist aber aus mehreren FTCE FlipFlops
>aufgebaut.

Ja und? Wo ist das Problem? Fertigen Zähler nehmen und gut. Kann es ein, 
dass du was wildes Asynchrones augebaut hast?

MFg
Falk

von Udo (Gast)


Lesenswert?

@ Micha R.
Ja clr ist auf GND.

@Falk
Ja habe doch den fertigen Zähler der Bibliothek  CB16CE von Xilinx 
genommen. Aber der schaltet so wie in dem Bild meiner Simmulation oben.

von Udo (Gast)


Angehängte Dateien:

Lesenswert?

Der Aufbau des Zählers in der 8Bit Version:

von Udo (Gast)


Lesenswert?

Alos ich verstehe den Zähleraufbau so, dass jeder Puls auch der 1. 
gezählt wird.

von Falk (Gast)


Lesenswert?

@ Udo (Gast)

>@Falk
>Ja habe doch den fertigen Zähler der Bibliothek  CB16CE von Xilinx
>genommen. Aber der schaltet so wie in dem Bild meiner Simmulation oben.

Ahhhh, jetzt seh ich es erst. Sag mal, denkst du nicht, dass auch im 
DSL-Zeitalter 1.6 MB für so ein Bild ein wenig zuviel sind? Solche 
Sachen immer als PNG speichern und hier anhängen! Als PNG sind das 
gerade mal 13kB! Das ist ein Faktor von 123!

Mfg
Falk

von Uwe (Gast)


Lesenswert?

FULL ACK!

Das Problem wäre erledigt, wenn die Foren-Software BMP-Anhänge einfach 
abweisen würde.

von Udo (Gast)


Lesenswert?

sorry war so im Eifer des Gefechts nächstes mal wird der Anhang kleiner.
Vergebt mir.

von Udo (Gast)


Lesenswert?

So das Problem hat sich geklärt:
Es ist so, dass die Simulation des Xilinx Prog. eine Art. delaytime hat 
setzt man die zu zählenden Pulse ab 400ns werden auch alle gezählt.

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.