Forum: FPGA, VHDL & Co. allgemeine Fragen zu FPGAs


von sim (Gast)


Lesenswert?

Hallo Forum.

Ich habe ein Eval Board mit einem Lattice XP2-8.

Da ich mich gerade mit FPGAs vertraut mache und mich einarbeite hätte 
ich einige grundlegende Fragen zur Nutzung. Im Datenblatt erschließt 
sich für mich leider nicht alles so genau und ich hoffe ihr können mir 
weiterhelfen und der Einsieg erleichtern.

Ich liste jetzt einfach mal die Unklarheiten auf und hoffe ihr könnt 
etwas Licht ins Dunkel bringen.

1) Wenn ich es im Datenblatt richtig verstanden habe gibt es festgelegte 
Pins die als Clockeingang und als Clockeingang für die PLL genutzt 
werden. Kann man ausschließlich die festgelegten Pins als Clockeingang 
verwenden? Wenn ja, warum?

2) Kann mir jemand kurz beschreiben worin der Unterschied zwischen einem 
Primary- und einem Secondary- Clock liegt, bzw. wo ich hierzu Unterlagen 
finden kann?


Gruß sim

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


Lesenswert?

sim schrieb:
> 1) Wenn ich es im Datenblatt richtig verstanden habe gibt es festgelegte
> Pins die als Clockeingang und als Clockeingang für die PLL genutzt
> werden. Kann man ausschließlich die festgelegten Pins als Clockeingang
> verwenden? Wenn ja, warum?
Weil es nur für diese Pins eine spezielle Verdrahtung gibt. Mann kann 
evtl.  irgendeinen Pin auf einen Taktmanager biegen, dann ist das Timing 
aber nicht mehr definiert und schlecht handhabbar.

> 2) Kann mir jemand kurz beschreiben worin der Unterschied zwischen einem
> Primary- und einem Secondary- Clock liegt,
Das ist eine Lattice Namensgebung für verschiedene Taktregionen und/oder 
Taktroutings...

> bzw. wo ich hierzu Unterlagen finden kann?
Bei Lattice: http://www.latticesemi.com/documents/TN1126.pdf

von sim (Gast)


Lesenswert?

Danke ersteinmal für die schnelle Antwort. Ich bin aber schon beim 
nächsten Problem angelangt. Ich kann meine Ausgangspins im Pullup oder 
Pulldown Modus konfigurieren. Ich weiß was Pullup und Pulldown bedeutet 
(-;.
Aber was macht für mich den Unterschied? Ich meine, ich setzt in meinem 
Programm einen Pin auf 1 dann ist er auf dem Board auf High. Was macht 
es da für mich für einen Unterschied ob er mittels einer Pullup oder 
-down Schaltung den High Zustand erreicht? Also wann sollte ich was 
nutzen?

Gruß sim

von Duke Scarring (Gast)


Lesenswert?

Was passiert denn, wenn Du Deinen Pin auf 'Z' setzt?

Duke

von Lattice User (Gast)


Lesenswert?

sim schrieb:
> Aber was macht für mich den Unterschied? Ich meine, ich setzt in meinem
> Programm einen Pin auf 1 dann ist er auf dem Board auf High. Was macht
> es da für mich für einen Unterschied ob er mittels einer Pullup oder
> -down Schaltung den High Zustand erreicht? Also wann sollte ich was
> nutzen?

Bei reinen Ausgangspins spielt es keine Rolle. Nützlich ist es für 
Eingangs- und Tristatepins.

von sim (Gast)


Lesenswert?

Mhh, das verwirrt mich jetzt komplett.
Stimmt, man hat ja tristate Ausgänge. Aber wie passt das denn jetzt mit 
Pullup/down zusammen... Ich glaube was ich jetzt gerade im Kopf hatte 
waren Open Collector mit Pulluo/down.
Jetzt versteh ich garnichts mehr.

von sim (Gast)


Lesenswert?

Soll das bedeuten dass wenn ich meinen Pins hochimpedant schalte es 
immernoch einen Pullup gibt der die Leitung hoch zieht? Dann ist doch 
der Einfluss des Pins auf den Bus nicht abgeschaltet, was ja eigentlich 
der Sinn eines Tristate Pins ist, oder?

von Lattice User (Gast)


Lesenswert?

Für die klassische Pullup/Down Anwendungen wie z.B. I2c ist die Funktion 
nicht brauchbar da die Pullups auf dem FPGA tasächlich Currentsources 
von 30-150 µA sind. Ihr Zweck ist nur bei einem Eingan/Tristate ohne 
aktiven Treiber einen definierten Zustand herzustellen 
(Pullup/Pulldown/Keep). Wenns stört kann man es auch abschalten.

von sim (Gast)


Lesenswert?

Lattice User schrieb:
> Für die klassische Pullup/Down Anwendungen wie z.B. I2c ist die Funktion
>
> nicht brauchbar da die Pullups auf dem FPGA tasächlich Currentsources
>
> von 30-150 µA sind. Ihr Zweck ist nur bei einem Eingan/Tristate ohne
>
> aktiven Treiber einen definierten Zustand herzustellen
>
> (Pullup/Pulldown/Keep). Wenns stört kann man es auch abschalten.



Vielen Dank für die schnelle Antwort. Also fasse ich das nochmal 
zusammen. Die Pullups bei einem Tristate Ausgang sind lediglich dazu da 
einen Hochimpedanten Eingan in einen definierten Zustand zu versetzen 
wenn kein anderer Treiber auf dem Bus arbeitet. Also damit er nicht 
"herumwabert". Stimmt das so?

Aber beeinflusst das nicht den Bus? Eigentlich sollte ein Eingang doch 
ím Zustand "Z" keinen Einfluss auf den Bus haben.

Und was ist der Modus "keep"?

Vielen Dank schonmal an alle die hier immer so schnelle Hilfe leisten!!! 
Echt ein klasse Forum!

von Lattice User (Gast)


Lesenswert?

sim schrieb:
> Die Pullups bei einem Tristate Ausgang sind lediglich dazu da
> einen Hochimpedanten Eingan in einen definierten Zustand zu versetzen
> wenn kein anderer Treiber auf dem Bus arbeitet. Also damit er nicht
> "herumwabert". Stimmt das so?

Im wesentlichen. Man kann es aber z.B. auch dazu benutzen um z.B. 
Konfigurationspins nur mit Jumper statt Jumper+Widerstand zu 
realisieren.

>
> Aber beeinflusst das nicht den Bus? Eigentlich sollte ein Eingang doch
> ím Zustand "Z" keinen Einfluss auf den Bus haben.
>

Kein Einfluss hat ein Eingang sowieso nie, da ist immer ein Leckstrom.
Ob die Pullup/Down Funktion sinnvoll ist hängt von der Buspezifikation 
und Anwendung ab.

> Und was ist der Modus "keep"?

Bei Tristate den letzten aktiven Level zu halten.

von sim (Gast)


Lesenswert?

Jetzt noch eine Frage, dann bin ich fertig für Heute (-:

Ich kann Eingänge als LVTTL und als LVCMOS33 deklarieren. Aber was ist 
der Unterschied? Haben doch die gleichen Pegel. Also klar das eine wird 
mit FETs gemacht das andere bipolar, aber wann nutze ich was?

Danke!

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


Lesenswert?

> > Die Pullups bei einem Tristate Ausgang...
Vergiss Pullups/-downs auf Ausgänge sofort wieder. Diese Bauteile 
machen nur bei Eingängen Sinn (und sind idR. auch nur dort anwendbar). 
Bei einem Ausgang ist "hochohmig" sehr definiert: beide Transistoren 
sind ausgeschaltet.
Bei Eingängen führt ein 'Z' am eingang dagegen zu einem Pegel, bei dem 
die Eingangsstufentransistoren jeweils so halb leiten können. Das ist 
nicht gut für die... :-o

Denn wenn du einen Ausgang auf 'Z' setzt, dann soll er ja ausdrücklich 
hochohmig sein! Sonst gäbe es ja die VHDL std_logic Typen 'L' und 'H' 
auch noch...

sim schrieb:
> Ich kann Eingänge als LVTTL und als LVCMOS33 deklarieren. Aber was ist
> der Unterschied? Haben doch die gleichen Pegel.
Sieh ins Datenblatt: die Schaltpegel für high und low sind deutlich 
anders.

von sim (Gast)


Lesenswert?

Lothar Miller schrieb:
> Sieh ins Datenblatt: die Schaltpegel für high und low sind deutlich
> anders.

Laut Datenblatt sind LVCMOS33 UND LVTTL beides 3,3V = High. Daher frage 
ich ja.

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


Lesenswert?

sim schrieb:
> Laut Datenblatt sind LVCMOS33 UND LVTTL beides 3,3V = High. Daher frage
> ich ja.
Nochmal genauer nachschauen:
Was ist z.B. bei einer Eingangsspannung von 1,8V oder 1,4V?
Zu finden unter den DC-Input Characteristics...

von Lattice User (Gast)


Lesenswert?

sim schrieb:
> Laut Datenblatt sind LVCMOS33 UND LVTTL beides 3,3V = High. Daher frage
> ich ja.

Im Lattice Datenblatt (ECP3) sind beide Typen tatsächlich gleich 
definiert.
Max Input Low = 0.8 V, Min Input High = 2.0 V. Über die Schaltschwelle 
lässt es sich nicht aus. Bei LVCMOS33 sollte sie 1.65 V sein, bei LVTTL 
1.2-1.4 V (AFAIR)
In der Praxis dürfte der Unterschied keine Rolle spielen.

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


Lesenswert?

Lattice User schrieb:
> Im Lattice Datenblatt sind beide Typen tatsächlich gleich definiert.
So kommt man schnell auf mehrere IO-Standards... ;-)

von Lattice User (Gast)


Lesenswert?

Lothar Miller schrieb:
>> Im Lattice Datenblatt sind beide Typen tatsächlich gleich definiert.
> So kommt man schnell auf mehrere IO-Standards... ;-)

Ist übrigens im Spartan-6 Datasheet auch der Fall, mit genau den 
gleichen Werten ;-)

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


Lesenswert?

Na, dann ist das ja fast so eine Art Industriestandard... ;-)

von sim (Gast)


Lesenswert?

Also ist es im Prinzip egal?

von Lattice User (Gast)


Lesenswert?

sim schrieb:
> Also ist es im Prinzip egal?

Ja,
ich würde aber LVCMOS33 nehmen, LVTTL33 ist legacy

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.