Implementierung 2bit Zähler in einem FPGA

#4992625
Lesenswert?

Ich habe eine Frage zur Implementierung von Zählern in einem FPGA, 
Google weiß da auch nicht weiter.
Folgendes: Ich habe einen 2bit-Zähler, synthetisiere den in Vivado, 
schau mir den Verdrahtungsplan auf dem Chip an und erkenne, dass mein 
Zähler als "Zustandsautomat" realisiert wurde. Sprich, 2 FF's, deren 
Ausgänge gehen auf 2LUT's die jeweils den folge-Zählwert ermitteln und 
an die FF's zurückgeben. Diese übernehmen den Wert dann zur nächsten 
Taktflanke. Soweit so gut.

Aber: Es wäre doch auch möglich jeweils mit dem invertierten Ausgang den 
Enable Pin des folgenden FF's anzusteuern. Das sieht dann quasi so aus, 
wie bei einem asynchronen Zähler (siehe Foto) läuft aber natürlich 
synchron und braucht auch viel weniger Logikelemente/Gatterdurchlaufzeit 
und arbeitet damit schneller.

Was ich nicht verstehe, warum wird das nicht so synthetisiert?

Vielen Dank und viele Grüße,
Benedikt
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #4993095
Lesenswert?

Benedikt H. schrieb:
> Aber: Es wäre doch auch möglich jeweils mit dem invertierten Ausgang den
> Enable Pin des folgenden FF's anzusteuern. Das sieht dann quasi so aus,
> wie bei einem asynchronen Zähler (siehe Foto) läuft aber natürlich
> synchron und braucht auch viel weniger Logikelemente/Gatterdurchlaufzeit
> und arbeitet damit schneller.
Es bringt nichts,  die LUT vor dem Flipflop einzusparen,  denn die ist 
sowieso da und muss durchlaufen werden, weil das FPGA so aufgebaut 
ist. Wozu also noch mehr optimieren?
#4993162
Lesenswert?

Ja okay, ich habe mir den Verdrahtungsplan in Vivado noch einmal genauer 
angesehen. Die einzigen Signale, welche am LUT vorbeigeschleift werden, 
sind tatsächlich das CLK- und Reset-Signal. Somit ist die Variante als 
Zustandsautomat wirklich die effizienteste Möglichkeit (und einzig 
sinnvolle).

Vielen Dank für die Antworten und schönes Wochenende!
Moderator (Firma: Titel) Persönliche Seite #4994699
Lesenswert?

Jeder Zähler ist sicher eine FSM, weil es eine endliche Anzahl Zustände 
gibt, die in definierter Reihenfolge durchlaufen werden.

Aber nicht jede FSM kann (aufgrund möglicher Verzweigungen und 
"Abkürzungen") auch sinnigerweise als Zähler bezeichnet werden, denn am 
jeweiligen Zustand kann nicht sicher erkannt werden, wie viele Takte 
vergangen sind.

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