www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Ethernet Problem


Autor: D. I. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich bin derzeit dabei mit einem XUPV5 Board via Ethernet zu 
kommunzieren.
Zum Einstieg habe ich dieses Projekt durchgemacht:

http://www.fpgadeveloper.com/2008/10/tri-mode-ethe...

Das funktioniert einwandfrei. Alle Pakete die ich mittels RAW-Ethernet 
(also ich baue die Pakete manuell in einem c Programm zusammen) bekomme 
ich mit vertauschten Adressen zurück.

Nun wollte ich das address_swap_module durch mein eigenes Modul 
ersetzen. Dieses besteht aus 2 Komponenten: Einem Receiver der ein 
Datenpaket annimmt und ins BRAM schreibt und einen Transceiver der den 
BRAM ausliest und Pakete versendet.
Der Receiver teilt dem Transceiver mittels eines "finish"-Signals mit 
wenn er fertig ist so dass der Transceiver beginnen kann.
Aber anscheinend bekommt der Receiver das Start-Of-Frame Signal nicht 
mit.

Erstmal habe ich folgende Änderung in der user_logic.vhd gemacht:

und zwar von:
  ---------------------------------------------------------------------
    --  Instatiate the address swapping module
  ---------------------------------------------------------------------
  client_side_asm_emac0 : address_swap_module_8
    port map (
      rx_ll_clock         => user_clk,
      rx_ll_reset         => ll_reset_0_i,
      rx_ll_data_in       => rx_ll_data_0_i,
      rx_ll_sof_in_n      => rx_ll_sof_n_0_i,
      rx_ll_eof_in_n      => rx_ll_eof_n_0_i,
      rx_ll_src_rdy_in_n  => rx_ll_src_rdy_n_0_i,
      rx_ll_data_out      => tx_ll_data_0_i,
      rx_ll_sof_out_n     => tx_ll_sof_n_0_i,
      rx_ll_eof_out_n     => tx_ll_eof_n_0_i,
      rx_ll_src_rdy_out_n => tx_ll_src_rdy_n_0_i,
      rx_ll_dst_rdy_in_n  => tx_ll_dst_rdy_n_0_i
  );

  rx_ll_dst_rdy_n_0_i     <= tx_ll_dst_rdy_n_0_i;

nach:
  ---------------------------------------------------------------------
  --  Instatiate the filter swapping module
  ---------------------------------------------------------------------
  client_side_asm_emac0 : filter_module
    port map (
      clk => user_clk,
    reset => ll_reset_0_i,
    rx_data_in => rx_ll_data_0_i,
    rx_sof_in_n => rx_ll_sof_n_0_i,
    rx_eof_in_n => rx_ll_eof_n_0_i,
    rx_src_rdy_in_n => rx_ll_src_rdy_n_0_i,
    rx_dst_rdy_out_n => rx_ll_dst_rdy_n_0_i,
    tx_data_out => tx_ll_data_0_i,
    tx_sof_out_n => tx_ll_sof_n_0_i,
    tx_eof_out_n => tx_ll_eof_n_0_i,
    tx_src_rdy_out_n => tx_ll_src_rdy_n_0_i,
    tx_dst_rdy_in_n => tx_ll_dst_rdy_n_0_i
  );

und entsprechenden Code für den Receiver findet ihr im Anhang.
Wenn ich in der Data_to_bram.vhd das finish signal manuell auf 1 setze 
(also ohne auf SOF zu warten), dann sendet der Transceiver wie zu 
erwarten ununterbrochen. Warte ich jedoch wie im Code auf SOF, passiert 
garnichts wenn ich ein Paket hinschicke.
Vllt habe ich das Signaldiagramm zum LocalLink Interface falsch 
interpretiert.

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.