Hallo jungs, ich will den USB 2.0 Function Core von OPENCORES verwenden. ich habe die Datei heruntergeladen: http://opencores.org/project,usb sind nur verilog Qua(e)lldateien, bis jetzt habe ich nur VHDL gehabt ich dachte ich kann es als Block wie ein PLL Block importieren und gut ist es! hat irgendjemand eine Anleitung oder ä.? bitte um Hilfe Danke
:
Bearbeitet durch User
Y. M. schrieb: > Hallo jungs, > > ich will den USB 2.0 Function Core von OPENCORES verwenden. ich habe die > Datei heruntergeladen: > http://opencores.org/project,usb > sind nur verilog Qua(e)lldateien, bis jetzt habe ich nur VHDL gehabt > ich dachte ich kann es als Block wie ein PLL Block importieren und gut > ist es! In Lattice Diamond ist es einfach: sowohl deine VHDL als auch die Verilog Dateien dem Projekt hinzufügen. Dann noch für den Verilog Toplevel eine Component Declaration in VHDL erstellen.
Du kannst Dir auch einfach eine VHDL Wrapper Component schreiben, die enthält im westlichen nur die PORT declaration...
Lattice User schrieb: hi danke für eure prompten Antworten > In Lattice Diamond ist es einfach: das ist sowas wie quartus oder ?! und wie lade ich dann das Programm im FPGA (Cyclone 3 bzw 5) > sowohl deine VHDL als auch die Verilog Dateien dem Projekt hinzufügen. > Dann noch für den Verilog Toplevel eine Component Declaration in VHDL > erstellen. und das wars !
Daniel K. schrieb: > Du kannst Dir auch einfach eine VHDL Wrapper Component schreiben, die > enthält im westlichen nur die PORT declaration... dh?! sorry ich bin kein Experte (grd 1 jahr VHDL erfahrung) :( kannste mir bitte mehr erklähren
Guckst du mal auch da: http://www.xilinx.com/itp/xilinx10/isehelp/ism_p_instantiating_verilog_module_mixedlang.htm Ist zwar von xilinx, geht aber auch bei allen anderen mir bekannten ISE's anderer Hersteller.
Daniel K. schrieb: > Guckst du mal auch da: > > http://www.xilinx.com/itp/xilinx10/isehelp/ism_p_instantiating_verilog_module_mixedlang.htm z.B. aus Verilog module usbf_crc5(crc_in, din, crc_out); in VHDL muss ich folgendes shcreiben: COMPONENT FD PORT ( Q : out STD_ULOGIC; D : in STD_ULOGIC; C : in STD_ULOGIC ); END COMPONENT; usbf_crc5: FD PORT MAP( Q => crc_out, D => din, C => crc_in); richtig?
:
Bearbeitet durch User
Y. M. schrieb: > Daniel K. schrieb: >> Guckst du mal auch da: >> >> > http://www.xilinx.com/itp/xilinx10/isehelp/ism_p_instantiating_verilog_module_mixedlang.htm > > z.B. aus Verilog > module usbf_crc5(crc_in, din, crc_out); > > in VHDL muss ich folgendes shcreiben: > COMPONENT FD PORT ( > Q : out STD_ULOGIC; > D : in STD_ULOGIC; > C : in STD_ULOGIC ); > END COMPONENT; > > usbf_crc5: FD PORT MAP( > Q => crc_out, > D => din, > C => crc_in); > > richtig? falsch. 1. Bei der älteren Verilog Syntax (1995) werden die Signale erst nach dem Module Declaration spezifiziert.
1 | module usbf_crc5(crc_in, din, crc_out); |
2 | input [4:0] crc_in; |
3 | input [10:0] din; |
4 | output [4:0] crc_out; |
2. Die Portnamen in der Component müssen mit den Portnamen des Verilog Modules übereinstimmen. Achtung: Verilog ist case sensitiv! In der Docu nachschauen wie das von Quartus erwartet wird!
1 | port ( |
2 | crc_in : in std_logic_vector(4 downto 0); |
3 | din : in std_logic_vector(10 downto 0); |
4 | crc_out : out std_logic_vector(4 downto 0); |
5 | );
|
kann die freie Version von Quartus überhaupt mixed Language?
Lattice User schrieb: Danke > kann die freie Version von Quartus überhaupt mixed Language? weiss ich es nicht, ich dachte wäre kein Problem
Y. M. schrieb: > Lattice User schrieb: > Danke > >> kann die freie Version von Quartus überhaupt mixed Language? > > weiss ich es nicht, ich dachte wäre kein Problem Quartus kann's schon länger, Modelsim-Altera Starter (kostenfreie Web-Edition) erst ab 15.0.
ganz ehrlich jungs, ich weiss nicht wie ich vorgehen soll :\ soll ich einfach ein Projekt erstellen (in Quartus), die ganzen Verilog Dateien importieren, noch ein VHDL als Wrapper Component (richtig?) erstellen, wo die ganzen verilog module instanziert werden, das ganze komplieren und gut ist es! deswegen würde ich gerne wissen, ob schon jemand Erfahrung mit dem USB2.0 IP Function von OpenCores hatte
:
Bearbeitet durch User
ebenfalls ganz ehrlich: du hast nicht ein problem mit dem USB2.0 IP Function von OpenCores, sondern ein generelles mit der HDL... sorry;
Y. M. schrieb: > ganz ehrlich jungs, > ich weiss nicht wie ich vorgehen soll :\ > soll ich einfach ein Projekt erstellen (in Quartus), die ganzen Verilog > Dateien importieren, Ja > noch ein VHDL als Wrapper Component (richtig?) > erstellen, wo die ganzen verilog module instanziert werden, das ganze > komplieren und gut ist es! Du brauchst nur Wrapper für die Verilog Module, die du in deinem VHDL teil instanzieren möchtest. Und das dürfte nur usbf_top sein. Das obige usbf_crc5 Beispiel gehöhrt da ganz sicher nicht dazu. > > deswegen würde ich gerne wissen, ob schon jemand Erfahrung mit dem > USB2.0 IP Function von OpenCores hatte Da kann ich dir nicht helfen.
Ganz allgmein, für USB 2.0 brauchst du externe Transceiver, was für einer ist auf deinem Board verbaut? Gängig sind heute ULPI Transceiver, die Opencore USB 2.0 Function hat aber einen UTMI Interface. Dafür braucht es dann noch einen UTMI -> ULPI Umsetzer. Ist allerdings nicht so aufwendig, ULPI ist im Prinzip eine low pin count Variante von UTMI.
Lattice User schrieb:
guten morgen,
ich will den TLK2501 Transceiver benutzen, weil ich die Daten optisch
übertragen will.
im USB2.0 projekt von Opencores sind es mindestens 10 VERILOG Dateien
leider ohne comments :\
Daniel K. schrieb: > ebenfalls ganz ehrlich: > > du hast nicht ein problem mit dem USB2.0 IP Function von OpenCores, > sondern ein generelles mit der HDL... sorry; ja deswegen frage ich hier! man kann nicht alles wissen, es fehlt jedem immer was
>ja deswegen frage ich hier! man kann nicht alles wissen, es fehlt jedem >immer was Wer nicht mal einen VERILOG core importieren kann der angeblich schon VHDL gemacht hat, der sollte lieber die Finger von FPGAs lassen.
Martin schrieb: >>ja deswegen frage ich hier! man kann nicht alles wissen, es fehlt jedem >>immer was > > Wer nicht mal einen VERILOG core importieren kann > der angeblich schon VHDL gemacht hat, der sollte lieber > die Finger von FPGAs lassen. du laberst aber nur misst, was willste daran nicht verstehen?! habe die Erfahrung nie gehabt, du musst mir auch nicht erklähren wie das geht wenn du schon so mkerst typisch Angeber, der alles Könner
:
Bearbeitet durch User
Y. M. schrieb: > ich will den TLK2501 Transceiver benutzen, weil ich die Daten optisch > übertragen will. Moment. was willst du eigentlich machen? Der TLK2501 hat mit USB nichts aber auch gar nichts zu tun. Der Core braucht einen externen UTMI Transceiver/Phy zum Anschluss an das USB Kabel. > im USB2.0 projekt von Opencores sind es mindestens 10 VERILOG Dateien > leider ohne comments :\ Und das hier ist nicht genug? http://opencores.org/websvn,filedetails?repname=usb&path=%2Fusb%2Ftrunk%2Fdoc%2Fusb_doc.pdf Ausserdem: http://www.usb.org/developers/docs/usb20_docs/
Lattice User schrieb: > Moment. was willst du eigentlich machen? Der TLK2501 hat mit USB nichts > aber auch gar nichts zu tun. Der Core braucht einen externen UTMI > Transceiver/Phy zum Anschluss an das USB Kabel. > ja eigentlich der TLK2501 brauche ich für was andres, soll die Anwendung mit USB erweitern. > http://opencores.org/websvn,filedetails?repname=usb&path=%2Fusb%2Ftrunk%2Fdoc%2Fusb_doc.pdf > > Ausserdem: > http://www.usb.org/developers/docs/usb20_docs/ die habe ich, gucke ich mir noch genauer an bin noch durcheinander sorrry! ich komme noch nicht klar damit, wie gesagt hatte bis jetzt nur kleine Projekte VHDL, ADC daten bearbeiten oder ein bild Generator, danke für euer Geduld
:
Bearbeitet durch User
Y. M. schrieb: >> > ja eigentlich der TLK2501 brauche ich für was andres, soll die Anwendung > mit USB erweitern. Du brauchst einen Transceiver wie diesen hier: http://www.ti.com/product/tusb1210 Allerdings wie schon erwähnt, der hat ein ULPI Interface, der Opencore Function Core setzt ein UTMI Interface vorraus. Sind verwand (siehe ULPI Spec) und ein Translationlayer sollte kein grosser Aufwand sein. > >> > http://opencores.org/websvn,filedetails?repname=usb&path=%2Fusb%2Ftrunk%2Fdoc%2Fusb_doc.pdf >> >> Ausserdem: >> http://www.usb.org/developers/docs/usb20_docs/ > die habe ich, gucke ich mir noch genauer an > > bin noch durcheinander sorrry! ich komme noch nicht klar damit, wie > gesagt hatte bis jetzt nur kleine Projekte VHDL, ADC daten bearbeiten > oder ein bild Generator, > danke für dein Geduld Der Core wird mit einem Wishbone interface gesteuert, da ist noch mehr Lesestoff. (Schreit nach einer Softcore CPU!)
Übrigens: Ein USB Controller wie der Cypress FX2 wird dich vermutlich schneller zum Ziel bringen.
Ich würde UTMI nach ULIP wrappen; da gibt es fertiges von mentor, altera, etc... andernfalls könnte auch FTDI intressant sein, die haben einfache USB fifo's;
Y. M. schrieb: > ich will den USB 2.0 Function Core von OPENCORES verwenden. Wofür? Was willst du mit dem "USB 2.0" machen? Welche Datenrate? > den USB 2.0 Function Core von OPENCORES verwenden. Du weißt schon, dass du sowieso noch einen externen Phy brauchst. Und wenn du shcon einen externen chip brauchst, dann kannst du gleich die erwähnte USB-Seriell-Bridge verwenden. Y. M. schrieb: > soll die Anwendung mit USB erweitern. Welche?
eigentlich brauche ich sowas, das verwende ich jetzt als aufsteckmodul in einem Gerät, ich soll jetzt was vergleichbares auf meine Hauptplatine packen, dann spare ich mir die ca. 200€ für sender und empfänger Module. http://www.icron.com/products/oem/usb-extenders/cat5/usb-2-0-rg2310A-core/
Y. M. schrieb: > eigentlich brauche ich sowas, das verwende ich jetzt als aufsteckmodul > in einem Gerät, ich soll jetzt was vergleichbares auf meine Hauptplatine > packen, dann spare ich mir die ca. 200€ für sender und empfänger > Module. > http://www.icron.com/products/oem/usb-extenders/cat5/usb-2-0-rg2310A-core/ Dafür taugt der Opencore USB 2.0 Function Core nicht.
Jo, Icron fummelt das ganze USB Protokoll auseinandet, das kannst du nicht einfach mit einem Device Controller nachbilden. Sonst wäre deren Asic nicht so teuer. Wir setzen die Dinger auch ein, seid lieber froh dass die euch die Core Module überhaupt verkaufen. Habt ihr so hohe Stückzahlen oder gute Beziehungen?
Y. M. schrieb: > eigentlich brauche ich sowas, das verwende ich jetzt als > aufsteckmodul > in einem Gerät, ich soll jetzt was vergleichbares auf meine Hauptplatine > packen, dann spare ich mir die ca. 200€ für sender und empfänger > Module. > http://www.icron.com/products/oem/usb-extenders/ca... Also ist die Idee den USB2.0 Range Extender nachzubauen? Vielleicht war deshalb auch der vorherige Post "Transceiver" mittels FPGA? Es ist einfacher einen USB3.0 Extender zu bauen als einen USB 2.0. Für USB2 muss man gewaltig in die Trickkiste greifen, um diesen driverless zu machen. Dass icron dies kompatibel schafft, ist schon eine hohe Leistung. Das Grundproblem sind die sehr knappen Antwortzeiten auf einem bidirektionalen Bus, weshalb hier noch unsichtbar in der Nähe des Devices die Befehle abgefangen werden und auf einem anderen Protokoll umgesetzt werden. Dies läuft auf höheren USB-Schichten. Christian R. schrieb: > Jo, Icron fummelt das ganze USB Protokoll auseinandet, das kannst > du > nicht einfach mit einem Device Controller nachbilden. Sonst wäre deren > Asic nicht so teuer. Wir setzen die Dinger auch ein, seid lieber froh > dass die euch die Core Module überhaupt verkaufen. Habt ihr so hohe > Stückzahlen oder gute Beziehungen? das ganze USB Protokoll auseinanderfummeln trifft es ganz gut.
Klakx schrieb: > Es ist einfacher einen USB3.0 Extender zu bauen als einen USB 2.0. Nee, denn für die Enumeration werden die 2.0 Leitungen benötigt, SuperSpeed wird erst nachher zugeschaltet. 3.0 geht aber mittlerweile sehr schick mit den Corning Active Optical Cables. Ich hab da eins da zum testen, klappt prima auch mit 2.0 Geräten.
Abhängig von der gewünschten Datenrate würde ich das so machen: <= 2MBit/s UART CP2102. Weil ist sehr billig aber zuverlässig. 2 bis 12 MBit/s FT2232H als UART als auch nur zweil Leitungen und sehr einfach. Ab 12 MBit/s FT2232H im FIFO Modus. Nicht ganz sooo einfach aber immer noch einfach. FT2232H Boards kosten so um die 20€, CP2102 so 1€.
Klakx schrieb: > Also ist die Idee den USB2.0 Range Extender nachzubauen? Vielleicht war > deshalb auch der vorherige Post "Transceiver" mittels FPGA? das war andere Baustelle, habe ich erst mal zur Seite geschoben, aber kommt noch > Es ist einfacher einen USB3.0 Extender zu bauen als einen USB 2.0. Für > USB2 muss man gewaltig in die Trickkiste greifen, um diesen driverless > zu machen. Dass icron dies kompatibel schafft, ist schon eine hohe > Leistung. habe ich auch irgendwo gelesen, wenn ich USB2 mittels Opencores Cores hinbekomme, dann wird USB3 nicht so schwer! > Das Grundproblem sind die sehr knappen Antwortzeiten auf einem > bidirektionalen Bus, weshalb hier noch unsichtbar in der Nähe des > Devices die Befehle abgefangen werden und auf einem anderen Protokoll > umgesetzt werden. Dies läuft auf höheren USB-Schichten. dafür ist doch der USB2.0 Cores von Opencores da > Christian R. schrieb: >> Jo, Icron fummelt das ganze USB Protokoll auseinandet, das kannst >> du >> nicht einfach mit einem Device Controller nachbilden. Sonst wäre deren >> Asic nicht so teuer. Wir setzen die Dinger auch ein, seid lieber froh >> dass die euch die Core Module überhaupt verkaufen. Habt ihr so hohe >> Stückzahlen oder gute Beziehungen? > heisst das ich habe nur was unmögliches vor :\ ?
Du bist immer noch unklar was das werden soll? Ein Ersatz für den Icron Extender? oder Ein USB Device mit einem eigen properitären Gegenstück (KEIN USB!) auf der anderen Seite des Links? Nur für den 2. Fall hilft dir der USB Core weiter. Aber wie schon mehrmals erwähnt du kommst schneller zum Ziel mit einem Cypress FX2 oder FT2332H. Man kann auch gleich einen USB3 fähigen Controller verwenden (z.B. Cypress FX3)
Y. M. schrieb: > habe ich auch irgendwo gelesen, wenn ich USB2 mittels Opencores Cores > hinbekomme, dann wird USB3 nicht so schwer! Klar, kriegt man alles hin. Aber seien wir ehrlich: Nicht mit deinem Kenntnisstand. Ich mach jetzt seit 8 Jahren FPGA Design, ich würde mir einen eigenen IP Core für USB 3.0 nicht zutrauen. Von den Kosten der Entwicklung mal ganz abgesehen. Der FX3 kostet um die 30€, da muss es schon 10.000er Stückzahlen gehen, wenn man das im FPGA unbedingt selber machen will. Außerdem brauchst du dafür einen FPGA, der min. 5GBit/s Transceiver hat. Es gibt ja USB 3.0 Cores bei PLD, NorthWest Logic....aber die kosten schon als Netzliste 5-stellige EURO Beträge, und den 2.0 Core sowie einen DMA Core musst du auch noch dazu kaufen.
Christian R. schrieb: > Klakx schrieb: > Es ist einfacher einen USB3.0 Extender zu bauen als einen USB 2.0. > > Nee, denn für die Enumeration werden die 2.0 Leitungen benötigt, > SuperSpeed wird erst nachher zugeschaltet. > 3.0 geht aber mittlerweile sehr schick mit den Corning Active Optical > Cables. Ich hab da eins da zum testen, klappt prima auch mit 2.0 > Geräten. Das bezweifle ich. Man kann usb3 mit durchgeschnittenen usb2 Leitungen betreiben.
Christian R. schrieb: > Klar, kriegt man alles hin. Aber seien wir ehrlich: Nicht mit deinem > Kenntnisstand stimmt aber wenn ich es nicht jetzt anfange wann denn?! ich meine mit Erfahrung sammeln ich muss selber die Aufgabe nachvollziehen, ich recherchiere noch!! das leben ist kein Ponyhof, sagen die liebe Deutschen muss leider irgendwie die Aufgabe hinkriegen. ich werde noch mit einem Kompel zsmsetzen, der sich mit USB gut auskennt und werde berichten, wie das zum Schluss aussehen soll
Klakx schrieb: > Christian R. schrieb: >> Klakx schrieb: >> Es ist einfacher einen USB3.0 Extender zu bauen als einen USB 2.0. >> >> Nee, denn für die Enumeration werden die 2.0 Leitungen benötigt, >> SuperSpeed wird erst nachher zugeschaltet. Klakx hat recht. In der "ECN 006 USB 3" sieht man, dass die USB 2.0 States übersprungen werden können wenn ein Superspeed Link detektiert (Far End Receivertermination) und aufgebaut werden kann. Das ist unabhängig davon, dass ein conformes USB 3 Device auch USB 2.0 können muss, zumindestens muss es erkannt werden wenn man es an einen USB 2.0 Host anschliesst.
Christian R. schrieb: > Jo, Icron fummelt das ganze USB Protokoll auseinandet, das kannst du > nicht einfach mit einem Device Controller nachbilden. Sonst wäre deren > Asic nicht so teuer. Wir setzen die Dinger auch ein, seid lieber froh > dass die euch die Core Module überhaupt verkaufen. Habt ihr so hohe > Stückzahlen oder gute Beziehungen? mehr 20stk pro monat, und gehen auch viele kaputt ! wo verwendet ihr den Icron? also bei uns in einem gerät was aus USB2.0 zu optischen Signal wandelt
Y. M. schrieb: > Christian R. schrieb: > Jo, Icron fummelt das ganze USB Protokoll auseinandet, das kannst du > nicht einfach mit einem Device Controller nachbilden. Sonst wäre deren > Asic nicht so teuer. Wir setzen die Dinger auch ein, seid lieber froh > dass die euch die Core Module überhaupt verkaufen. Habt ihr so hohe > Stückzahlen oder gute Beziehungen? > > mehr 20stk pro monat, und gehen auch viele kaputt ! > wo verwendet ihr den Icron? > also bei uns in einem gerät was aus USB2.0 zu optischen Signal wandelt Wir haben da nur ganz geringe Stückzahlen, ging nur über Beziehungen. Aber läuft problemlos. Ist ein Messgerät an einem 300m langen Kabel mit Glasfaser.
Christian R. schrieb: > Wir haben da nur ganz geringe Stückzahlen, ging nur über Beziehungen. > Aber läuft problemlos. Ist ein Messgerät an einem 300m langen Kabel mit > Glasfaser. wie bauen einen Übertrager USB <-> optischer Kanal für EMV Messung
Zeitmäßig würde ich dieses Projekt bei 3 Mannjahren ansetzen. Was sagen andere dazu?
uwe schrieb: > Zeitmäßig würde ich dieses Projekt bei 3 Mannjahren ansetzen. > Was sagen andere dazu? meinste: - 3 männer 3 jahren ?!
1 Man(n)jahr = 1 Mensch braucht drei Jahre oder 1 Man(n)jahr = 3 Menschen brauchen 1 Jahr oder 1 Man(n)jahr = 12 Menschen brauchen 3 Monate
Gemäß Gender Wahnsinn werden bei uns zwar jetzt Personenmonate oder Personenjahre benutzt aber bei der Anzahl geb ich dir recht.
Y. M. schrieb: > Christian R. schrieb: > >> Wir haben da nur ganz geringe Stückzahlen, ging nur über Beziehungen. >> Aber läuft problemlos. Ist ein Messgerät an einem 300m langen Kabel mit >> Glasfaser. > > wie bauen einen Übertrager USB <-> optischer Kanal für EMV Messung das klingt jetzt nicht sehr nach Echtzeitanforderung. Ich denke mal andere Architekturen würden schneller zum Ziel führen. Ethernet über Glasfaser wäre eine Idee. Den USB-Anschluss kann man immer noch realisieren, man muss ihn aber nicht unbedingt durch die ganze Glasfaserleitung schleifen. Wenn man sowieso einen USB-Treiber schreiben muss, ist es die Sache doppelt so sehr nicht wert. uwe schrieb: > Zeitmäßig würde ich dieses Projekt bei 3 Mannjahren ansetzen. > Was sagen andere dazu? 2-3, ja. Für so eine Dauer/Kosten eine Eigenlösung anstreben.., ist es das Wert (ohne bestehende Patentverletzung, offener Marktanteil)? VHDL/FPGA lernt man auch in anderen sinnvolleren Projekten.
Klakx schrieb: > 2-3, ja. Für so eine Dauer/Kosten eine Eigenlösung anstreben.., ist es > das Wert (ohne bestehende Patentverletzung, offener Marktanteil)? > VHDL/FPGA lernt man auch in anderen sinnvolleren Projekten. Ich seh das auch als sinnlos an. Klar, Icron ist keine sehr feine Firma, wenn es um die OEM Module geht, aber wenn man einmal durch ist, kosten die 2240 Module doch bloß um die 70€. Selbst bei 20 Stück im Monat ist der finanzielle Nutzen einer Eigenlösung fraglich. Eventuell kann man da ja auch einen FT2232 nehmen mit dem fast optical channel? Klingt nicht so als würden die vollen 40MB/s benötigt.
Christian R. schrieb: > Eventuell kann man da ja auch einen FT2232 nehmen mit dem fast optical > channel? Klingt nicht so als würden die vollen 40MB/s benötigt. daten werden mit 480MB/s übertragen
Y. M. schrieb: > Christian R. schrieb: > > Eventuell kann man da ja auch einen FT2232 nehmen mit dem fast optical > channel? Klingt nicht so als würden die vollen 40MB/s benötigt. > > daten werden mit 480MB/s übertragen Christian meint Byte wahrscheinlich und nicht bit. 480 mbitps werden sicherlich nicht an nutzdaten übertragen, da dies die LeitungsGeschwindigkeit ist. (inklusive stuff Bits) Die Frage ist berechtigt, welche nutzdatenmenge übertragen werden soll.
so soll das ganze ungefähr aussehen, muss nicht xilinx FPGA sein, dh in ich nur die datei importieren (schreiben eher Aufwändig), die dieses ULPI aufsplitten, 8 Out und 8 In + paar andere...
Hallo Y.M., ich bin mir sicher, dass ein USB-Extender mit sehr viel Aufwand zu implementieren ist. Für den Einstieg halte ich ein solches Projekt für quasi unlösbar. Aus verschiedenen Gründen: 1. Kennst du das USB-Protokoll so gut, dass du es gezielt austricksen kannst? 2. Hast du dir Gedanken darüber gemacht, wie du mit den USB-Paketen, die du in den FPGAs empfängst (TX, RX), umgehst? Hast du hier eine ausgeklügelte Strategie, was du mit Paketen/Daten machst, die Timeout-Verletzungen im USB-Kontext verursachen, z.B. Daten die zu spät vom USB-Device zurückgesendet werden (IN-Transactions)? 3. Ist dir klar, dass du im FPGA, das die Daten vom USB-PC-Host entgegen nimmt, USB-Device spielen musst und dass du im FPGA, das die Daten zum eigentlichen USB-Device schickt, Host spielen musst? 4. Kennst du dich im FPGA-Design (VHDL, Verilog) so gut aus, dass du verschiedene USB-IP implementieren kannst? Inklusive der sauteuren Verifikations-IP? Ich würde dir an dieser Stelle ohne Unterstützung durch einen erfahrenen USB-Hardware-Menschen von diesem Projekt abraten. Du wirst scheitern. Noro
Noro S. schrieb: > Hallo Y.M., > > ich bin mir sicher, dass ein USB-Extender mit sehr viel Aufwand zu > implementieren ist. Für den Einstieg halte ich ein solches Projekt für > quasi unlösbar. Aus verschiedenen Gründen: hi noro, danke für dein Feedback, klar ist das zu viel Aufwand (grd für mich als Anfänger) und kann es nicht, aber ich versuche mit dem USB2.0 IP FUNCTION von Opencores.org dies zu erfüllen! meinste damit wird es auch scheitern?
Die IP "USB2.0 IP FUNCTION" von Opencores ist nur eine IP, um im FPGA als Device aufzutreten. Das ist aber im Prinzip lediglich ein Detail der Implementierung. VIEL wichtiger ist es, sich Gedanken darüber zu machen, wie du mit verschiedenen USB-Transaktionen (IN, OUT, SETUP) in deinen FPGAs umgehst, sprich wie deine Datenverarbeitung im FPGA ist. Du brauchst ein "USB-Extender"-Konzept. Und ich meine nicht einzelne IPs, um die Schnittstellen abzubilden, sondern vielmehr dein Systemverhalten. Das ist das Schwere daran. Und wenn man noch keine Erfahrung mit USB-IP für FPGAs hat, ist es nahezu unmöglich dein Konzept auf Machbarkeit hin zu überprüfen. Das solltest du deinem Auftraggeber (der anscheinend keine Ahnung von der Materie) hat, vermitteln. Noro
:
Bearbeitet durch User
hmmmm! ich habe gedacht, das wird Spaß machen und halt schöne Herausforderung, dabei lernt man jede menge und kann es auch als Master-Arbeit für mein berufsbegleitendes Studium.
:
Bearbeitet durch User
das sind die ganzen Verilog-Blöcke, ich muss die noch einzeln nachvollziehen können, ich dachte und tue ich immer noch dass es mit den ganzen blöcke das erledigt wird, brauche dazu nur noch paar chips wie der USB3300 ------------------- WISHBONE Interface This is the external bus interface, that is WISHBONE SoC compliant. -------------------- USB CRC5 and CRC16 Modules -------------------- USB function defines file -------------------- Endpoint register File This module contains all registers for ONE endpoint -------------------- Dummy Endpoint register File This module contains termination for registers in ONE endpoint. It is used to replace the actual endpoint register file for non existing endpoints. -------------------- Internal DMA Engine -------------------- Memory Buffer Arbiter Arbitrates between the internal DMA and external bus interface for the internal buffer memory -------------------- Packet Assembler Assembles Token and Data USB packets -------------------- Packet Disassembler Disassembles Token and Data USB packets -------------------- Protocol Engine Performs automatic protocol functions -------------------- Protocol Layer This block is typically referred to as the SEI in USB Specification. It encapsulates the Packet Assembler, disassembler, protocol engine and internal DMA -------------------- Register File This module contains all top level registers and instantiates the register files for endpoints -------------------- USB function core -------------------- UTMI Interface -------------------- UTMI Line Status & Speed Negotiation block --------------------
Der USB3300 passt nicht zum in Erwägung gezogenen Core... da wird noch ein UTMI <-> ULPI wrapper benötigt; Und @uwe: 2-3 MJ / 100% ACK! ;-)
Daniel K. schrieb: > Der USB3300 passt nicht zum in Erwägung gezogenen Core... da wird noch > ein UTMI <-> ULPI wrapper benötigt; hi daniel weisste vllt wofür der RS08 vewendet wird und der SPI FLASH?
Christian R. schrieb: > Das ist doch deine Schaltung, du musst doch wissen wozu das gut > sein > soll. ist leide nicht meine Schaltung :) da du Ahnung hast "know how", vllt könnteste mir sagen wozu das gebraucht wird
Ich tippe auf die Config des FPGA aber da reicht der SPI Flash. Was der Controller da soll weiß ich nicht.
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.