mikrocontroller.net

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


Autor: sim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: sim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was passiert denn, wenn Du Deinen Pin auf 'Z' setzt?

Duke

Autor: Lattice User (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: sim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: sim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Lattice User (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: sim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Lattice User (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: sim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: sim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Lattice User (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Lattice User (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na, dann ist das ja fast so eine Art Industriestandard... ;-)

Autor: sim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ist es im Prinzip egal?

Autor: Lattice User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sim schrieb:
> Also ist es im Prinzip egal?

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.