Forum: FPGA, VHDL & Co. Eingangsbuffer reduziert IOBs?


von Filiz (Gast)


Lesenswert?

Hallo,

Kennt jemand Eingangsbuffer(IBUF)? Kann man IBUF ausnutzen um IOBs zu 
reduzieren? Gib's vielleicht Beispiel?

Danke sehr!!

von Christian R. (supachris)


Lesenswert?

Es gibt an einem physikalisch am FPGA vorhandenen Pin/Ball die 
Möglichkeit, das Eingangssignal entweder durch den IOB zu leiten, oder 
durch den IBUF. Mehr Anschlüsse bekommt das FPGA dadurch nicht, und die 
freiwerdenden IOBs kann man eigentlich für nix anderes nehmen. Ein IOB 
besteht aus ein paar FlipFlops, die fest dem jeweiligen FPGA-Anschluss 
zugeordnet sind. Wenn du einen IBUF nimmst, umgehst du den Eingangszweig 
des IOB und der liegt dann brach.
Bist du der gleiche wie "Di" mit dem Thema "zu viele IOBs"?

von Filiz (Gast)


Lesenswert?

Danke dir! Aber wie wird IBUF verwendet,also wie kann man ein paar 
Eingangssignale als durch IBUF definieren? Kann mir einen Beispiel 
geben?
Vielen Danke.

von Christian R. (supachris)


Lesenswert?

Da musst du nix extra definieren. Jedes Signal, was nicht über einen IOB 
geht, geht automatisch über einen IBUF. Wenn du ein Signal direkt hinter 
dem Eingang in ein FlipFlop übernimmst, kann dieses FlipFlop in einen 
IOB gepackt werden. Entweder durch die Option im Sythesizer für alle, 
oder mit einem Attribut für das einzelne Signal. Aber wenn du das 
weglässt, oder das Signal zwischen dem Eingang und dem ersten FlipFlop 
irgendwie kombinatorisch verknüpst, wird es automatisch ein IBUF.
Nur, wenn du differenzielle Eingänge (LVDS) benutzen willst, musst du 
das durch die Instanziierung eines IBUFDS extra angeben.

von Filiz (Gast)


Lesenswert?

alles klar! Ich probier mal.
Vielen Danke!

von Filiz (Gast)


Lesenswert?

Christian R. schrieb:
>  Entweder durch die Option im Sythesizer für alle,
> oder mit einem Attribut für das einzelne Signal. Aber wenn du das
> weglässt, oder das Signal zwischen dem Eingang und dem ersten FlipFlop
> irgendwie kombinatorisch verknüpst, wird es automatisch ein IBUF.

hi,Christian, ich hab mal probiert, aber die IOBs Zahl bleibt nach dem 
Synthese nicht verändert.
Du meintest ,es wird automatisch ein IBUF, wenn ich die Signale nicht 
mit  Attribut (in) definiere,oder?
Ich hab wie folgend einen Port definieren:
          port (
    clk        : in  STD_LOGIC;
    a          :     STD_LOGIC_VECTOR(6 downto 0);
    b          : in  STD_LOGIC_VECTOR(6 downto 0);
    a_out      : out STD_LOGIC_VECTOR(6 downto 0);
    b_out      : out STD_LOGIC_VECTOR(6 downto 0)
    );
aber die Synthese ergebnisse nicht verändert.
Vielleicht hab ich noch nicht gut verstanden. Kann vielleicht mir noch 
helfen? Danke!

von Christian R. (supachris)


Lesenswert?

Natürlich bleibt die Anzahl der IOB gleich. Es sind ja genauso viele 
Anschlüsse die von außen kommen, wie vorher. Nicht, das Attribut in, 
sondern das Attribut IOB.
Mir scheint, du hast da ein grundsätzliches Verständnis-Problem. Dein 
Design hat genau so viele Eingänge, wie du in der Entity definierst, 
nicht mehr und nicht weniger. Da hilfts auch nichts, wenn du statt eines 
IOB einen IBUF hast. Mit dem IOB Attribut kann man Signale explizit als 
IOB ausführen, wenn man die Synthese bzw. den Mapper dazu zwingen will. 
Die IOBs, die im Synthesereport ausgegeben werden, bleiben von der 
Anzahl her gleich.

von Martin G. (Firma: Leckermittag.de) (morin)


Lesenswert?

> Kann man IBUF ausnutzen um IOBs zu reduzieren?

Mach dir erst einmal klar, warum du die Anzahl der IOBs reduzieren 
willst. Hat dein Design mehr Ports als das FPGA Datenpins hat? Das wird 
sich durch IBUFs nicht ändern. Da wirst du stattdessen mehrere Daten 
nacheinander auf ein und demselben Pin übertragen müssen, oder auf ein 
größeres FPGA wechseln.

von Christian R. (supachris)


Lesenswert?

Sag ich ja. Irgendwie kommt mir das bekannt vor: 
Beitrag "so viele IOBs"

von Fpgakuechle K. (Gast)


Lesenswert?

Anbei ein Beispiel wie man viele Datenbits an einen FPGA anschliesst:

http://www.analog.com/static/imported-files/eval_boards/265181843HSC_ADC_EVALC.pdf

Das Evalboard besteht aus einem 8fachen 14 bit Wander AD9252 (112 Bits) 
die serial per LVDS an einen Virtex-4 gesendet werden. Die Rückgewinnung 
der 14 bit breiten Worte macht man in einem Virtex-6 anders 
(SERDES-Primitiv), aber das Prinzip würfte klar werden.

MfG,

von Fpgakuechle K. (Gast)


Lesenswert?

Filiz schrieb:
> Hallo,
>
> Kennt jemand Eingangsbuffer(IBUF)? Kann man IBUF ausnutzen um IOBs zu
> reduzieren? Gib's vielleicht Beispiel?
>
> Danke sehr!!

ISERDES könnte dir weiterhelfen, hier ein beispiel wie die im V4 
aussehen:
http://www.xilinx.com/itp/xilinx7/books/data/docs/v4ldl/v4ldl0050_42.html

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.