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 ?
>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
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.
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
>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
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
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 :-)
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.