DFFs vor IP Core Konfigurationsvektor

Gast #6965818
Lesenswert?
• ▲
▼
Hallo guten Tag,

 ich habe hier ein Design, wo man einem IP Core einen 
Konfigurationsvektor übergeben kann.


Was ich seltsam finde ist, dass dort drei D FF davor sind.


Warum wird das dem Baustein nicht direkt übermittelt xD
Angehängte Dateien:
#6965921
Lesenswert?
• ▲
▼
So kann man Synthesetools, die Register Retiming beherrschen, erklären, 
dass es nix macht, wenn's schnell geht: die Tools können die 
"überzähligen" FF's im Timing-Pfad verschieben, um das Timing zu 
optimieren.

Dafür hat man natürlich - wie immer beim Pipelining - zusätzliche 
Latenz.
#6968564
Lesenswert?
• ▲
▼
Sicher. Für die reine Logik sind die erst mal unerheblich (allerdings 
schaden sie auch nicht).

Wenn Du hinterher aber doch Register Retiming brauchst, weil Du dein 
gesetztes Fmax nicht erreichst, dürfte es allerdings deutlich 
schwieriger und fehlerträchtiger sein, die Latency nachträglich ins 
Design reinzufummeln als sie gleich von Beginn an zu berücksichtigen. 
Ich nehme an, es gibt einen guten Grund, daß die da sind.

Sagt die Core-Dokumentation nichts darüber?

[edit: dein zuletzt gepostetes Bild zeigt, dass da auch weitere Signale 
direkt (ohne die Pipeline-FF's) in das Design reingehen. Der Umstand ist 
sicher im Core berücksichtigt. Du kannst die FF's also 
höchstwahrscheinlich doch nicht weglassen, ohne die Funktionalität zu 
(zer)stören.]
Gast #6969572
Lesenswert?
• ▲
▼
Markus F. schrieb:
> Du kannst die FF's also
> höchstwahrscheinlich doch nicht weglassen, ohne die Funktionalität zu
> (zer)stören.]

Vielen Dank^^
Ja ich finde es nur schwer einzuschätzen was die genau machen.
Aber wenn es mindestens schaffe an bereits beschriebene Stellen solche 
FFs setzen zu lassen wäre das schon mal gut.


Dann muss ich aber noch schauen ob an andere Stellen meines Entwurfs 
solche FFs eingesetzt werden müssen^^
So ist meine Vermutung.
Gast #6969833
Lesenswert?
• ▲
▼
Naja, ist halt eine undokumentiert Lösung für ein Problem, das nicht 
formuliert wurde (jedenfalls ist es nicht aus dem Eingangspost 
ersichtlich)

Und das Gezeigte muss nicht die optimale Lösung sein. Wenn es nur um 
clk-verzögerung geht, hätt man das auch mit einen CE D-FF lösen können. 
Oder mit einem Shiftregister-Makro. Oder vielleicht soll einfach nur die 
STA ausgetrickst werden.

Einsynchronisation wäre auch so eine Überlegung, aber das löst man für 
parallel Busse nicht auf diese Weise.

Vielleicht wurde bei der Core-Generierung auch ein Haken/Parameter 
suboptimal gesetzt, mal 'Optimize for size statt for speed ausprobieren.
Vielleicht hat es auch was mit Bustiming zu tun: damit der Bus schnell 
freigegeben wird, werden die daten busnah weggespeichert um in 
sfolgenden Takten zum Modul physisch 'fern' vom Bus, durchgereicht zu 
werden.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.