Forum: FPGA, VHDL & Co. Bus treiben mit/ohne zusätzlichen Bustreiber IC


von stiller Leser (Gast)


Lesenswert?

Hallo zusammen,


ich habe einen Intel MAX10 FPGA, an den ich externen Sram anschließen 
möchte. Dazu wurde mir in einem anderen Thread schon gut geholfen, aber 
jetzt geht es in die Richtung elektrischen Anschluss.

Für mein Projekt habe ich mir einge IDT71V256SA Ram-Bausteine besorgt. 
https://www.idt.com/eu/en/document/dst/71v256sa-datasheet

Frage die mich quält ist, ob ich die einfach so an das FPGA anschließen 
sollte, oder zusätzlich Bustriber vorsehen sollte.
Ich hab mir die Finger über den MAX10 blutig getippt, aber in den online 
Dokumentationen nicht gefunden, wo steht, wie viel Kapazität ich an die 
I/Os anschließen kann. Eingangskapazität der Pins gefunden, vielleicht 
einfach überlesen? Weiß da jemand etwas?


Also meine Frage(n)

Weil ich eben nichts gefunden habe, versuchte ich einfach zu schätzen. 
Darf ich das so machen:
Im Datenblatt des Rams steht, dass Cin 6pF ist, eine Risetime von 3 ns 
soll es sein. Ich habe angenommen, dass ein FPGA-Pin 30 mA treibt. Für 3 
V wären dann (dt*I)/3V = C, also (3 ns*30mA)/3V = 30 pF. 4 Speicherchips 
a 6 pF könnten dann reichen und darüber ist ein Bustreiber nötig?


Bustreiber allgemein: Ich kenne einen 74HC245 als Bustreiber, aber bei 
einem recht schnellen ram wie meinem wäre der doch etwas langsam. Kann 
mir jemand etwas empfehlen, was als Bustreiber für meine Anwendung 
sinniger wäre?


Ich danke euch vielmals!

: Verschoben durch Moderator
von Gustl B. (gustl_b)


Lesenswert?

Direkt anschließen.

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


Lesenswert?

stiller Leser schrieb:
> Ich habe angenommen, dass ein FPGA-Pin 30 mA treibt.
Lässt sich dieser Wert durch das Datenblatt belegen?

von stiller Leser (Gast)


Lesenswert?

Nein der Wert ist einfach fiktiv, weil das in Verbindung mit 3V, 3 ns 
leicht überschlagbar war. Wenn es jetzt 10 mA sind, dann ist das 
natürlich weniger, aber so um etwa abschätzen zu können wo ich liege 
habe ich das so angenommen. Hoffe ist jetzt klar geworden. Sozusagen, um 
zu erkennen, dass ein oder zwei Ram-Chips schon zu viel wären.


Lothar, kannst du mir denn einen Tip geben?

von Quartermaster (Gast)


Lesenswert?

Bei 3V3 eher 2 bis 8 mA
https://www.altera.com › pdfsPDF
MAX 10 General Purpose I/O User Guide

von Gustl B. (gustl_b)


Lesenswert?

stiller Leser schrieb:
> Im Datenblatt des Rams steht, dass Cin 6pF ist, eine Risetime von 3 ns
> soll es sein. Ich habe angenommen, dass ein FPGA-Pin 30 mA treibt. Für 3
> V wären dann (dt*I)/3V = C, also (3 ns*30mA)/3V = 30 pF. 4 Speicherchips
> a 6 pF könnten dann reichen und darüber ist ein Bustreiber nötig?

Was hast du denn da gerechnet und was bedeutet es?

Nun, du hast ausgerechnet wie groß das C ist wenn du mit 30 mA 3 ns 
erreichen willst.
Und bekommst 30 pF raus.

Das bedeutet also, dass wenn ein FPGA IO 30 mA treiben könnte, dann darf 
der RAM IO maximal 30 pF haben um die 3 ns zu erfüllen.

Aber der RAM IO hat nur 6 pF. Das ist ein Fünftel.
Allerdings kann der FPGA auch nur 2 bis 8 mA treiben. Das kann man 
vermutlich am FPGA einstellen. Wenn du da auch 6 mA oder sogar 8 mA 
einstellt, dann sollte das für die 3 ns genügen. 6 mA wäre ja auch hier 
der Faktor 5, 8 mA etwas weniger.

von stiller Leser (Gast)


Lesenswert?

Ich habe mir meinen Eingangspost noch mal druchgelesen und bin 
eigentlich immer noch der Ansicht, dass klar wird, was ich eigentlich 
frage. Aber zur Sicherstellung noch mal in Kürze.

1) Ich frage mich ob generell über den Ausgangsstrom Strom so gerechnet 
werden sollte, weil ich in den PDF die ich fand nichts über eine 
kapazitive Belastung fand. ( da wäre ein Hinweis auch schön, wenn ich 
einfach blind war)
30 mA oder 3 mA kann ja konkret im Datenblatt nachgeschaut bzw gesucht 
werden, was Lothar wohl meinte.
Die Frage ist, in der Lage zu sein bei so was abzuschätzen, ab wie viel 
Speicherchips ein zusätzlicher Treiber nötig ist.
Das ist also mehr eine generelle Frage.

2)Als konkrete Frage wäre ein Konkreter Feld-Wald-Wiesen Bustreiber der 
schneller ist als der o.g. 74HC245

3) Eure Erfahrung damit wären natürlich willkommen gewesen. Wenn jemand 
wie Lothar M., als Moderator hat er sicher Erfahrung, gesagt hätte: 
Kannst du so rechnen, aber 30 mA erscheint mir -konkret- viel zu hoch zu 
sein, da musst du was sinnvolles nehmen; Ab 2 oder 3 Chips würde ich da 
Probleme erwarten. Das wäre hilfreich gewesen. Zu sagen, nee so simpel 
darf man das nicht betrachten weil.... Auch hilf- und lehrreich.
Ein Rat was für Treiber ich z.B. bei reichelt mal anschauen kann, wäre 
sehr nett gewesen.

Ich kann auch noch neuem Lesen nicht genau sagen, was mir gesagt werden 
soll, weil das ja mit der generalisierten Frage nicht zu tun hat. 
Andererseits so knapp und in gewisser Weise provokativ rüberkommt, dass 
ich zuerst an eine Überlegenheitsgeste gedacht habe - aber das passt 
wieder nicht zu einer Moderatoren Antwort über die man ja i.d.R. froh 
ist in Foren.

Ich wüsste auch nicht, dass ich etwas grob falsch gefragt habe oder wie 
ich anders hätte formulieren sollen. Wenn doch tut's mir leid.

von Kurz Knackig (Gast)


Lesenswert?

Wenn Dir keiner die Frage beantworten kann, musst Du dir halt ein 
Experimenr überlegen. Alternativ eine (SPICE) Simulation aufsetzen und 
mit exemplarischen Meßunen verifizieren.

von S. R. (svenska)


Lesenswert?

stiller Leser schrieb:
> Ich kenne einen 74HC245 als Bustreiber, aber bei
> einem recht schnellen ram wie meinem wäre der doch etwas langsam.

Wie wäre 74ALS245 oder sowas?
Bedenke, dass der Datenbus bidirektional ist.

Ansonsten würd ich Gustls Rat befolgen, und wenn sich rausstellt, dass 
dir das zu langsam ist, nochmal neu designen. Du kannst ja den 
Bustreiber vorsehen ("geht nicht - Leiterbahnen durchkratzen und 
Bustreiber auf fertigen Footprint drauflösten").

: Bearbeitet durch User
von Gustl B. (-gb-)


Lesenswert?

Gut, vermutlich habe ich die Frage falsch verstanden. Um was geht es 
dir?

1. Geht es dir um diesen vor dir genannten RAM Baustein an dem von dir 
genannten FPGA?

Verbinde das direkt ohne Treiber.

2. Geht es dir eher generell um SRAM an diesem FPGA?

Typischerweise wird (S)RAM direkt angeschlossen.

3. Geht es dir allgemein darum wie man den nötigen Strom für eine 
bestimmte Risetime berechnet?

Da sieht deine Formel gut aus, aber da bin ich kein Experte, vielleicht 
ist das zu einfach gedacht.

von Markus F. (mfro)


Lesenswert?

Gustl B. schrieb:
> Das kann man vermutlich am FPGA einstellen.

Man kann. Beim MAX10 und LVTTL maximal 8mA drive strength.

von Christoph Z. (christophz)


Lesenswert?

Gustl B. schrieb:
> 3. Geht es dir allgemein darum wie man den nötigen Strom für eine
> bestimmte Risetime berechnet?

IBIS Modelle vom FPGA uns SRAM suchen und in eine Simulation stopfen.

Ausser in Altium Designer habe ich bisher noch nicht mit IBIS Modellen 
gearbeitet (ging ziemlich gut, entsprach erfreulich gut den späteren 
Messungen), kann daher keine Empfehlung für einen Simulator abgeben.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Um Platz zu sparen gibt es den xx245 auch als 16 Bit Version, z.B. 
SN74LVC16245:
http://www.ti.com/lit/ds/sces062q/sces062q.pdf
der ist auch 5V-tolerant, verträgt bei 3,3V Versorgung auch 5V-Signals 
an den Eingängen.

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.