Forum: FPGA, VHDL & Co. physikalische Realisation des falling_edge Konstrukts


von Oli (Gast)


Lesenswert?

In VHDL kann man bekanntlich auch auf die fallende Flanke eines Signals 
triggern - in der Simulation sowieso und auch in der Synthese geht es. 
Meine Frage dazu ist, wie das physikalisch realisiert wird?

Ich denke nicht, dass die flankengesteuerten FFs zwei Eingänge haben 
oder überall DDR-Zellen herumliegen. Eher schon kann ich mir vorstellen, 
dass Clock-Regionen partiell mit einem invertierten Takt versorgt werden 
und die dann invertiert funktionieren.

Die sich anschliessende Frage ist, ob ein solches Design überhaupt 
zweckmässig ist und ob man nicht gleich auf der doppelten Frequenz 
arbeitet. Da Taktnetze aber auch ohne grosse FF-Belastung schon ziemlich 
Strom ziehen, kann ich mir vorstellen, dass man strommässig hierbei 
schlechter fährt - während es für das design und die Synthese einfacher 
werden sollte.

Mal generell gesprochen sollte es für sowas ja wenige Anwendungen geben, 
für die es dann wiederum erlaubt sein könnte, einen kleinen Teil des 
Design zu auf falling zu bauen.

Beim Schreiben fällt mir jetzt gerade ein, dass ich früher mal gelernt 
habe, dass die CLK-Verdrahtung baumartig gespreizt erfolgt und alle 
halbe Nase lang eine Taktauffrischung erfolgen muss. Der Takttreiber 
würde ja im einfachsten Fall invertieren. Damit läge dann der negierte 
Takt doch überall rum. (?)

von Strickwettbewerbgewinner (Gast)


Lesenswert?

Die Taktflanke, auf die die FF's triggern, ist halt programmierbar, wohl 
durch einen "dedicated" Inverter am Takteingang.

von Oli (Gast)


Lesenswert?

Den sehe ich aber nirgends in den Logikbeschreibungen von den 
Herstellern.

von Georg A. (georga)


Lesenswert?

Nicht sehen, lesen ;)

zB. Xilinx Spartan3E beim SLICEM-Bildchen:

"Options to invert signal polarity as well as other options that enable 
lines for various functions are not shown."

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Oli schrieb:
> Meine Frage dazu ist, wie das physikalisch realisiert wird?
Man muss nur den Takt invertieren. Ein Inverter mit passendem 
Multiplexer könnte das, oder ein XOR, oder eine trickreiche interne 
Beschaltung des Flipflops. Du wirst den exakten Aufbau, die genauen 
Hintergründe, Spartricks und Optimierungen (ein Transistor weniger pro 
FF sind ein paar tausend Transistoren pro FPGA) nicht so ohne weiteres 
erfahren...

> Die sich anschliessende Frage ist, ob ein solches Design überhaupt
> zweckmässig ist und ob man nicht gleich auf der doppelten Frequenz
> arbeitet.
Den Schuh tut sich keiner an! Denn wenn es so wäre, dann könnte ich mir 
noch einige bisher nicht realisierbare Schaltungstricks vorstellen, oder 
das gesamte Design gleich doppelt so schnell takten...

von Vanilla (Gast)


Lesenswert?

Georg A. schrieb:
> Nicht sehen, lesen ;)
>
> zB. Xilinx Spartan3E beim SLICEM-Bildchen:
>
> "Options to invert signal polarity as well as other options that enable
> lines for various functions are not shown."

Hallo Georg,

eine Eigenart des Spartan3 (ich weiss jetzt nicht inwieweit das ach auf 
den 3E trifft, war dass er nicht wie andere Familien neben statische "0" 
auch "1" bereitstellte.

Das hatte dann zur Folge das Du in Spartan3 Designs ein "1" Netz mit 
einem riesigen Fanout vorfindest, welches die ISE Synthese nutzt um ale 
SLICE / BRAM und DSP Sliceanschlüsse versorgt welche mit einem logischen 
"1" Pegel versorgt werden wollen.

Ich habe in keinem Fall gesehen, dass ISE dann die Eingangspolarität 
selbst umgedreht hätte um eben nicht dieses unsägliche "1" Netz 
anzuschliessen, sondern das an fast allen Stellen verfügbare "0" Netz.

Lange Rede kurzer Sinn, die Polarity Optionen mögen da sein, ob die 
Synthesetools dies von sich aus nutzen steht auf einem ganz anderen 
Blatt...

von Vanilla (Gast)


Lesenswert?

Oli schrieb:
> Die sich anschliessende Frage ist, ob ein solches Design überhaupt
> zweckmässig ist und ob man nicht gleich auf der doppelten Frequenz
> arbeitet.

Doppelte Taktfrequenz bedeutet aber auch, dass Du deinem Synthesetool da 
Leben deutlich erschwerst oder gar unmögklich machst, da sich die 
durchlaufzeiten durch Slices, Multiplexer und Verdrahtung konstant 
bleiben...

von Bobbi (Gast)


Lesenswert?

Vanilla schrieb:
> Doppelte Taktfrequenz bedeutet aber auch, dass Du deinem Synthesetool da
> Leben deutlich erschwerst
tut man das nicht auch schon dadurch, dass man mit doppelten Takten 
baut? Auch dann hat man ja weniger, als die halbe Zeit.

von Sigi (Gast)


Lesenswert?

Falls man sich anschauen möchte, wie es bei Xilinx ie gelöst wird:
Einfach das Design mit dem FPGA-Editor anschauen. Im Slice wird
z.B. beim Takt ganz am Anfang ein MUX mit Clk/!CLK als angezeigt,
das gleiche bei BRAMs und bei IOs.
Allerdings ist das auch nur eine logische Sicht, über die physikalische
Sicht wird man keine Infos finden (jedenfalls nicht von den 
Herstellern).

von K. L. (Gast)


Lesenswert?

Sigi schrieb:
> Allerdings ist das auch nur eine logische Sicht, über die physikalische
> Sicht wird man keine Infos finden (jedenfalls nicht von den
> Herstellern).

Genau die würde mich interessieren!
Beitrag "was baut die Synthese bei "falling_edge()""

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.