Forum: FPGA, VHDL & Co. Opencores USB


von Y. M. (ysf_eng)


Lesenswert?

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
von Lattice User (Gast)


Lesenswert?

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.

von Daniel K. (Gast)


Lesenswert?

Du kannst Dir auch einfach eine VHDL Wrapper Component schreiben, die 
enthält im westlichen nur die PORT declaration...

von Y. M. (ysf_eng)


Lesenswert?

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 !

von Y. M. (ysf_eng)


Lesenswert?

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

von Daniel K. (Gast)


Lesenswert?

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.

von Y. M. (ysf_eng)


Lesenswert?

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
von Lattice User (Gast)


Lesenswert?

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?

von Y. M. (ysf_eng)


Lesenswert?

Lattice User schrieb:
Danke

> kann die freie Version von Quartus überhaupt mixed Language?

weiss ich es nicht, ich dachte wäre kein Problem

von Markus F. (mfro)


Lesenswert?

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.

von Y. M. (ysf_eng)


Lesenswert?

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
von Daniel K. (Gast)


Lesenswert?

ebenfalls ganz ehrlich:

du hast nicht ein problem mit dem USB2.0 IP Function von OpenCores, 
sondern ein generelles mit der HDL... sorry;

von Lattice User (Gast)


Lesenswert?

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.

von Lattice User (Gast)


Lesenswert?

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.

von Y. M. (ysf_eng)


Lesenswert?

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 :\

von Y. M. (ysf_eng)


Lesenswert?

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

von Martin (Gast)


Lesenswert?

>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.

von Y. M. (ysf_eng)


Lesenswert?

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
von Lattice User (Gast)


Lesenswert?

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/

von Daniel K. (Gast)


Lesenswert?

Was hat der TLK mit USB zu tun?!?

von Y. M. (ysf_eng)


Lesenswert?

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
von Lattice User (Gast)


Lesenswert?

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!)

von Lattice User (Gast)


Lesenswert?

Übrigens:

Ein USB Controller wie der Cypress FX2 wird dich vermutlich schneller 
zum Ziel bringen.

von Daniel K. (Gast)


Lesenswert?

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;

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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?

von Y. M. (ysf_eng)


Lesenswert?

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/

von Lattice User (Gast)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

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?

von Klakx (Gast)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

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.

von Gustl B. (-gb-)


Lesenswert?

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€.

von Y. M. (ysf_eng)


Lesenswert?

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 :\ ?

von Y. M. (ysf_eng)


Lesenswert?

naja unmöglich gibt es nicht aber aufwändig

von Lattice User (Gast)


Lesenswert?

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)

von Christian R. (supachris)


Lesenswert?

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.

von Klakx (Gast)


Lesenswert?

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.

von Y. M. (ysf_eng)


Lesenswert?

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

von Lattice User (Gast)


Lesenswert?

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.

von Y. M. (ysf_eng)


Lesenswert?

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

von Christian R. (supachris)


Lesenswert?

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.

von Y. M. (ysf_eng)


Lesenswert?

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

von uwe (Gast)


Lesenswert?

Zeitmäßig würde ich dieses Projekt bei 3 Mannjahren ansetzen.
Was sagen andere dazu?

von Y. M. (ysf_eng)


Lesenswert?

uwe schrieb:
> Zeitmäßig würde ich dieses Projekt bei 3 Mannjahren ansetzen.
> Was sagen andere dazu?

meinste:
- 3 männer 3 jahren ?!

von uwe (Gast)


Lesenswert?

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

von uwe (Gast)


Lesenswert?


von Christian R. (supachris)


Lesenswert?

Gemäß Gender Wahnsinn werden bei uns zwar jetzt Personenmonate oder 
Personenjahre benutzt aber bei der Anzahl geb ich dir recht.

von Klakx (Gast)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

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.

von Y. M. (ysf_eng)


Lesenswert?

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

von Klakx (Gast)


Lesenswert?

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.

von Y. M. (ysf_eng)


Angehängte Dateien:

Lesenswert?

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...

von Noro S. (Firma: Home) (schmidt)


Lesenswert?

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

von Y. M. (ysf_eng)


Lesenswert?

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?

von Noro S. (Firma: Home) (schmidt)


Lesenswert?

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
von Y. M. (ysf_eng)


Lesenswert?

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
von Y. M. (ysf_eng)


Lesenswert?

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
--------------------

von Daniel K. (Gast)


Lesenswert?

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! ;-)

von Y. M. (ysf_eng)


Lesenswert?

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?

von Christian R. (supachris)


Lesenswert?

Das ist doch deine Schaltung, du musst doch wissen wozu das gut sein 
soll.

von Y. M. (ysf_eng)


Lesenswert?

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

von Christian R. (supachris)


Lesenswert?

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
Noch kein Account? Hier anmelden.