Forum: FPGA, VHDL & Co. Was sind Clock-Buffer bei FPGA Entwürfen


von Bueffelkenner (Gast)


Lesenswert?

Hallo,
wie findet man heraus wie ein X9444 General-Purpose Buffer logisch zu 
verstehen ist?

Warum wird das so etwas eingesetzt?
In meinem Design ist an einem CLK-Eingang IBUF und BUFG hintereinander 
geschaltet...

Werden die Ein- und Ausgänge nicht automatisch "gebuffert", bzw. so 
synthetisiert, dass es funktioniert?
Oder gibt es Zeitunterschiede bei Takteingängen, die nur über manuell 
festgelegte Verzögerungsbuffer gelöst werden können?
1
//xilinx schreibt
2
As described on UG471 for 7-Series devices, the Input/Output Buffer (IOB), also known as IBUF and OBUF, is the circuitry near each pin/pad of the FPGA that contains the SelectIO input, output, and 3-state drivers.  That is, when you specify a certain type of IO for your design (eg. LVCMOS33 or LVDS) then circuits in the IOB implement the IO type.

von Fpgakuechle K. (Gast)


Angehängte Dateien:

Lesenswert?

Globale Buffer BUFG genannt sind die Routing-Einstiegspunkte für ein 
globales (weitverzweigt, hohes Fanout, niedriges skew) Netzwerk. Von 
diesen Taktverteilungsnetzwerken, auch wegen der Struktur Clock-trees 
genannt, hat es nicht viele im FPGA, deshalb sollte man das mit bedacht 
wählen. Oft reichen sie auch nicht über die geseamte Fläche sondern nur 
über Regioen

https://www.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf 
(siehe Beispiel-Bilder)

Der User wählt nun mit seiner Configuration aus, wie die Multiplexer 
stehen damit das Signal vom IO-Pad über die PLLL (oder nicht) in die 
Region A (oder B oder C odsr ..) läuft. Oder lediglich zum lokalen 
Ein-/Aus-takten in den IO-Zellen benutzt wird (CCIO - Clock Capable IO) 
(bspw. bei DDR3-IF von relevanz)



Mit Series-/ ist das Taktnetzwerk komplexer geworden, neben BUFG gibt es 
da noch BUFR (Region) für Teilbereiche. Da sollte man ein Testdesign 
durch die Tools schicken bevor man das PCB-Layout finalisiert. Aber oft 
hilft es von man den Eingangsclock ohnehin erstmal über eine PLL/MMCM 
schickt und ab da verteilt.

von Bueffelkenner (Gast)


Lesenswert?

also ich verstehe dich zwar nicht, aber das Dokument auf das du verweist 
ist gut. :D

von Fpgakuechle K. (Gast)


Lesenswert?

Bueffelkenner schrieb:
> also ich verstehe dich zwar nicht,

Ja, das beruht auf Gegenseitigkeit. Mir ist nicht ganz klar, wonach du 
konkret fragen möchtest (X9444 General-Purpose Buffer gibt es nicht) 
also haste mal die Grundlagen-antwort zum Thema "Taktverteilung im FPGA" 
bekommen.

Vielleicht liegt ja das Problem darin, das du ein fertig konfigurirtes 
Takt system wie in µC u.ä. erwartest, was es in der Configuriebaren 
Logik prinzipiell nicht gibt.

von Bueffelkenner (Gast)


Lesenswert?

Fpgakuechle K. schrieb:
> "Taktverteilung im FPGA"

Ach so. Also es geht darum, dass der Takt/ die Takte im FPGA korrekt 
verteilt werden muss/ müssen.
Dafür sind zusätzliche Schaltungen nötig.
Z.B. Buffer.

Ja ich muss mir mal die Grundlagen der Taktverteilung anschauen.
Vlt. verstehe ich ja dann was diese Buffer sollen

https://www-wjp.cs.uni-saarland.de/lehre/hadeprak/block_ss11/lib.pdf
Da wird so ein Buffer mit der Unterschrift X9444 dargestellt.

von Christian R. (supachris)


Lesenswert?

Bei "normalen" Sachen werden die Buffer automatisch platziert. Wenn du 
z.B. vom Pin auf eine interne PLL gehst oder direkt auf die synchronen 
Elemente, dann werden die entsprechenden BUFG eingebaut ohne dass du das 
explizit machen musst.
Bei speziellen Sachen (Clock Muxer, mehrere PLLs/MMCMs hintereinander, 
SERDES, MGT...) musst man mitunter händisch die passenden Buffer 
einfügen, da gibts dann BUFR, BUFH, BUFIO usw. als spezielle Dinge. Aber 
da musst du dann immer im jeweiligen User Guide gucken und den für den 
Chip passenden Clocking user buide beachten, denn diese Ressourcen sind 
nicht immer in allen Typen gleich.

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.