Hallo, habe bis jetzt nur grundlegendes gefunden. Ich will ein Display mit LVDS-Interface (je 6 Bit pro Farbe) per FPGA ( Spartan 6) ansteuern. Google sagt folgendes: http://www.helmholtz-berlin.de/media/media/spezial/events/sei/FZJ09/kreidl_fzj09_web.pdf http://www.xilinx.com/support/documentation/user_guides/ug381.pdf Hat jemand Erfahrungswerte?
Nachtrag: sorry Jungs, dass "je 6 Bit pro Farbe" habe ich vom derzeitigen RGB-Display. LVDS ist noch nichts bekannt / festgelegt. Hätte das nur vorab schon gern auf meinem Board berücksichtigt, falls es später dank EMV, etc. dann doch in Richtung LVDS läuft.
DS90C365A funktioniert gut an Displays mit LVDS Eingang. gibt auch Receiver um dann wieder TTL/CMOS Displays anzuschliessen.
da hab ich wohl zu weit / falsch gedacht. Also doch so wie hier: Beitrag "TFT Display ansteuern" Den Treiber "DS90C365A" im FPGA abbilden / einsparen geht nicht? Sprich ich gebe die "Differential pairs" direkt raus und ab aufs Display.
Warum einen externen Transmitter? Das machen doch die OSERDES Schaltungen im Spartan 6. Schau dir mal die XAPP1064 an.
dass echt n tolles Teil: http://www.xilinx.com/support/documentation/application_notes/xapp1064.pdf aber um da rein zu kommen braucht man ne Weile. Habt jemand noch einen Literatur Tipp? Die Datenblätter, AppNotes sind nicht so leicht zu lesen, wenn man keine Ahnung hat und davon ziemlich viel :-)
Geht auch mit dem Core Generator zu erstellen, das ist dann noch einfacher. SelectIO heißt der Core.
Das ist der User Guide. Der ist ziemlich umfangreich und an manchen Stellen falsch. Siehe Xilinx User Forum. Ich meine den Core Generator der ja bei ISE dabei ist. Mit dem kannst du dir alles erzeugen lassen, da musst du nur angeben wieviel Bits rein, wieviel Bits raus und dann macht der das.
Mit dem Coregen hatte ich aber schon Probleme beim SERDES. Es konnten keine Bits > 4 instanziiert werden, weil die Master/Slave Konfiguration, die der CoreGen entwarf nicht synthetisierte. (Virtex6) Er hatte immer einen buffer zuviel oder einen zu wenig.
Hi, ich habe vor einer Weile ein altes Laptop-TFT mit einem Spartan angesteuert. Dazu hab ich eine extrem abgespeckte Version des XAPP1064 benutzt. Ich schau mal ob ich den Code wieder finde... Sebastian
So, habe den Code gefunden. Das ganze ist für das Digilent Atlys Board. Ein Paar Infos zum Datenformat des verwendeten Displays finden sich hier: http://www.ags.tu-bs.de/?id=e.lab:projekte:atlys Das Projekt ist aus verschiedenen Beispielprojekten von Xilinx und Digilent zusammengebastelt. Rechte sind also vorsichtig ausgedrückt "ungeklärt". Viel Spass damit Sebastian
Ja, die XAPP1064 ist sehr generisch. Wenn man mit dem Core Generator den Code erzeugt, ist er übersichtlicher. Da kann man die ganzen IDELAY weglassen. Ich hab damit für den Spartan 6 den Empfänger für einen Kanal des LTM9011-14 erstellt und das lief auf Anhieb sauber und fehlerfrei bei 1GBit/s (Mit 2x BUFIO für DDR 8 Bit pro Lane, 500MHz Clock bei 125MS/s) auf dem SP605. Der Core Generator spuckt auch lesbaren VHDL Code aus, also kein Black-Box Modul.
fpga schrieb: > dass echt n tolles Teil: > http://www.xilinx.com/support/documentation/application_notes/xapp1064.pdf > > aber um da rein zu kommen braucht man ne Weile. > > Habt jemand noch einen Literatur Tipp? > Die Datenblätter, AppNotes sind nicht so leicht zu lesen, > wenn man keine Ahnung hat und davon ziemlich viel :-) In dem Buch Pedroni "Circuit Design and Simulation with VHDL" werden auch verschiedene Ansteuerungen von Grafikschnittstellen erklärt. so VGA, DVI und FPD,
Hi, Ich habe die Artikel mit Spannung gelesen und am Ende bleiben mir noch ein paar Fragen. Für den Anfang reduziere ich es auf wenige :) Ich habe mit FPGAs noch nicht viel Erfahrung, daher kann ich nicht einschätzen, welcher meine Anforderungen erfüllen kann. Und zwar will ich ein LVDS Signal mit 28 Bits, die auf einem Kanal sind, empfangen und später auch senden. Die Bitclock ist 42MHz, das LVDS Signal hat also 1,176GHz. Nur TX+ und TX-. Der FPGA muss also die Clock und die Daten aus diesem Signal gewinnen. Welcher FPGA kann das leisten? Sind generell Xilinx oder Altera besser geeignet? Wo gibt es bessere Tools oder App Notes, Beispiele etc. für die ersten Schritte? Danke :)
Hm, das geht eigentlich wenn überhaupt dann nur mit den Multi Gigabit Transceivern. Da bräuchtest du einen FPGA, der die in Hardware schon drin hat. Allerdings ist es fraglich, ob der entsprechende Sender alle Voraussetzungen mitbringt, um so ein Signal passend für den FPGA rauszugeben. Denn wenn kein CLK mit kommt, muss man eine Art Clock Correction haben, die den Phasenunterschied zwischen Sender und Empfänger dauernd ausgleicht. Eventuell brauchst du dann doch einen ensprechenden Serdes für genau diesen Anwendungsfall. Ich bin mir nicht sicher, ob das mit FPGAs ohne extra Serdes machbar ist. Was genau ist das für ein Sender und wie sind die Daten kodiert? 8B/10B dürfte ja klar sein bei asynchron, aber wo ist der Start eines Frames? Was für ein Signal genau ist das? Was standardisiertes?
Hi, Danke für Deine Antwort. Das Signal heisst FPD-Link II.
Florian Micro schrieb: > Das Signal heisst FPD-Link II. Nach allem was mir da Google ausgeworfen hat, würde ich sagen da hast du Pech. Ohne externen Desrializer geht da nichts.
Lattice User schrieb: > Florian Micro schrieb: >> Das Signal heisst FPD-Link II. > > Nach allem was mir da Google ausgeworfen hat, würde ich sagen da hast du > Pech. Ohne externen Desrializer geht da nichts. Weil der FPGA zu langsam ist? Die hier verkaufen IP Cores für etwas ähnliches: http://www.mixel.com/FeaturedProducts/LVDS_SR_SerDes.php Wo liegt denn die Grenze von FPGAs?
Das liegt eher daran, dass es dafür keine geeigneten Transceiver in den FPGAs gibt. Den IP-Core für "sowas ähnliches" brauchst du nichtmal, wäre beim SPartan 6 schon drin, das machen die ISERDES und OSERDES Elemente. Aber da ist ja auch ein CLK dabei. Das FPD-II "Protokoll" ist schon etwas dusselig, kein Clock, keine 8b/10B Kodierung und keine Clock Correction. Da brauchts dann schon spezielle Hardware um das zu dekodieren. Mit einem FPGA wird das nix, du müsstest da überabtasten um das zu erkennen, aber bei 1,17GHz wird das auch nix.
Florian Micro schrieb: > Weil der FPGA zu langsam ist? Jein > Die hier verkaufen IP Cores für etwas ähnliches: > http://www.mixel.com/FeaturedProducts/LVDS_SR_SerDes.php Diese IP-Cores sind erstens für 10b8b codierung, und zweitens für ASICs. FPGAs haben so was schon als HW Block. > > Wo liegt denn die Grenze von FPGAs? Mit Virtex 7 bei > 10 GBit/s, vorrausgesetzt du verwendest eine Codierung die von den Transceivern im FPGA unterstüzt wird, so dass die CDR (Clock Data Recevory) im Transceiver gemacht werden kann. Für die kapute FPD Link II Codierung (eine Clockflanke pro 28 bit!) müsste man die CDR in der normalen Logik realisieren, und dafür sind 1 GBit/s etwas viel. Ich bezweifle auch, dass die PLLs dafür stabil genug sind so dass nur, wie Chris geschrieben hat, Überabtastung bleibt.
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.