Implementierung 2bit Zähler in einem FPGA

OP #4992625
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:
Gast
Benedikt H. schrieb:
> Was ich nicht verstehe, warum wird das nicht so synthetisiert?
Es gibt oft mehrere Möglichkeiten für die Synthese eine Beschreibung 
umzusetzen.

Wenn Du die von Dir skizzierte Variante haben möchtest, solltest Du das 
genau so hinschreiben.

Duke
Moderator (Firma: Titel) Persönliche Seite
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?
OP
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
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

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.