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. (?)
Die Taktflanke, auf die die FF's triggern, ist halt programmierbar, wohl durch einen "dedicated" Inverter am Takteingang.
Den sehe ich aber nirgends in den Logikbeschreibungen von den Herstellern.
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."
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...
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...
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...
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.
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).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.