www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Takt, Global Clock Network und Routing Delays


Autor: FPGA-User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mein Vorhaben: ein Spartan-3 soll als video-verarbeitende Einheit
dienen. Auf der Eingangsseite bekommt der FPGA Daten von einem LVDS
21:3 Deserializer UND Daten von einem Video Prozessor. Alle
Eingangsdaten kommen mit einem hohen Bit-Count rein.
Auf der Ausgangsseite werden die verarbeitenden Signale über einen
LVDS-Serializer auf ein Display gegeben.

Mein Frage:

Es ist bestimmt sinnvoll die alle Daten des Video Prozessors an die I/O
der gleichen FPGA-Bank zu legen und das gleiche beim LVDS, um Routing
Delays so gering wie möglich zu halten. Wenn man das nicht machen
würde, wie kritisch wären die Delays ?

Ein weitere Frage:

Müssen Clock-Signale, wie z.B. Pixelclock immer über die bestimmten
Pins auf die Global Clock Networks gelegt werden. Welchen Folgen hat
es, wenn man die Clock Signale auf einfache I/O-Pins legt ? Was genau
ist das Global Clock Network bzw. welche Aufgaben erfüllt es ? Wie
kritisch ist es z.B. einen I2C-Takt nicht auf ein Global Clock Network
zu legen ?

weitere Frage:

Der FPGA wird mit 50 MHz betrieben. Kann man, um einen Pixeltakt auf
der Ausgangsseite zu generieren, mittel DCM die 50MHz mittels eines
gewissen Teilerverhältnis herunterteilen ? Wie führt man den
generierten Takt dann nach außen (über normale I/O-Pins)?

weitere Frage:

Wie erzeuge ich einen Takt, der größer wie meine 50Mhz ist mit der der
FPGA betrieben wird (z.B. 100Mhz) ? Wie funktioniert das ?





Danke für Eure Hilfe ?

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie erzeuge ich einen Takt, der größer wie meine 50Mhz ist mit der
> der FPGA betrieben wird (z.B. 100Mhz) ? Wie funktioniert das ?

Das habe ich schon gemacht, deshalb beantworte ich mal nur diese
Frage.

Am einfachsten fand ich folgenden Weg: Du öffnest den Schematic Editor
und fügst einen DCM ein, stellst per rechten Mausklick deine
Eigenschaften ein. Dann erzeugst du per Export ein VHDL daraus und
kopierst das nach Bedarf in deinen VHDL Source. Wichtig ist das du dir
aber vorher die AN's zu DCM's runterlädst und am besten das dortige
Beispiel zur Verwendung der DCM's als Schematik nachbaust. Die haben
nämlich noch einige IBuf's (oder OBuf's ??) verwendetet um
sicherzustellen das es keinen Skew gibt.
Mit zwei solcher kaskadeirter DCM's konnte ich so 4 verschiedene Takte
erzeugen. Auf Grund der Buffer werden diese Clocks intern global als
Clocksignale geroutet.

Gruß Hagen

Autor: FPGA-User (der andere) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du machst mir Spass, woher soll man wissen ob irgendwas
kritisch ist, wenn man die Eingangsfrequenz nicht kennt.
Gib doch mal genauere Infos über Taktraten (wie hoch,
wie viele verschiedene Takte gibt es usw.)

Mit einer DCM kann der Takt höher oder niedriger gelegt
werden, also z.B. 25 MHz oder 300 MHz - das dürfte das geringste
Problem bei Deinem Projekt sein.

Ein Blockschaltbild würde für die Beantwortung der restl.
Fragen viel helfen.

Autor: Hagen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das kam bei dem Experiment heraus.

Der verwendete Buffer der DLL war ein BUFG, nicht IBUF oder OBUF,
sorry. Das Shiftregister im Design stellt sicher das die Clock's erst
aktiv werden wenn die DLL sich gelockt hat, sprich synchronisert hat.
Über das Signal LOCKED = '1' kannst du abfragen ob die DLL's sich
synchronisert haben.

Gruß Hagen

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>du machst mir Spass, woher soll man wissen ob irgendwas
>kritisch ist, wenn man die Eingangsfrequenz nicht kennt.
>Gib doch mal genauere Infos über Taktraten (wie hoch,
>wie viele verschiedene Takte gibt es usw.)

;) danke das ich dir helfen durfte und gleich einen Anschiss bekomme
;)

Schau dir die DLL's an

      CLK0: out std_logic;
      CLK180: out std_logic;
      CLK270: out std_logic;
      CLK2X: out std_logic;
      CLK90: out std_logic;
      CLKDV: out std_logic;

CLK0 ist die Eingangsclock 1 zu 1 durchgereicht aber mit korregiertem
Dutycycle von 50%. CLK180,CLK270,CLK90 die gleiche Clock aber mit
andere Phase in Grad, logisch oder.
CLK2X der doppelt Takt.
CLKDV ist deine benutzerdefinierte Clock je nach Multiplikationsfaktor
/ Divisionsfaktor.

Im Obigen Beispiel werden 2 DLL's benutzt. 3 stehen glaube ich zur
Verfügung.

Bleibt nur noch die Frage offen ob ich damals das Ding für einen
Spartan-3 entwickelt hatte oder ein anderes Teil, auf alle Fälle
Xilinx.

Ich warte nun auf den nächsten Anschiss, bitte gibs mir dolle !

Gruß Hagen

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Häää, gibts hier zwei User namens FPGA-User ?? Das ist doch schei.e und
muß ja zu Verweschlungen führen.

@FPGA-User (der andere): sorry ich hatte dich verwechselt.

Gruß Hagen

Autor: FPGA-User (der andere) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genau, es gibt jetzt offenbar 2 davon, ich grübel schon
an einem neuen Namen....
also ich bin der, der die Einsen mitgezählt hat :-)

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, das ist eben der nachteil eines Forums ohne Anmeldung. Ich für
meinen Teil hätte als Neuankömmling zumindestens mal gesucht ob mein
Name schon benutzt wird und dann einen anderen gewählt.
Ich weiß aber das Du -> FPGA-User (ein anderer) schon länger anwesend
hier bist. Man könnte den Verdacht aussprechen das FPGA-User
absichtlich seinen Namen so gewählt haben könnte.

Gruß hagen

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.