EmbDev.net

Forum: FPGA, VHDL & Verilog Ethernet: No data useful on eth_rxd (Arty Board)


Author: Jonas (Guest)
Posted on:

Rate this post
0 useful
not useful
Hey guys,

I am experimenting with UDP on my Arty FPGA 
board.(https://reference.digilentinc.com/arty) After some fiddeling the 
transmitting of data to my laptop already works.

My problem now is that the rx_data bus does not seem to give me other 
data than "0000" and "1111". I have also connected the rx_dv to an led 
and I see it blinking so I assume there should be more useful data than 
just these two values on the bus. I am also sure that there are packets 
sent. I see them in wireshark.

Did you guys already have a similar problem and can point me in a 
general direction?

Greetings,
Jonas

: Moved by Moderator
Author: Duke Scarring (Guest)
Posted on:

Rate this post
0 useful
not useful
How did you check the rx data?
Also with LED? Or with chipscope?

Duke

Author: Jonas (Guest)
Posted on:
Attached files:

Rate this post
0 useful
not useful
Hey Duke,

Thanks for your answer.

I checked it by letting an led light up permanently after a nibble that 
was not "0000" was found.

I have an LED that is connected to rx_dv and that blinks.

I was not aware that chipscope exists. I will try to learn more about it 
and use it, but for now I have implemented a UDP Sender that 
successfully sends data, that I also see in Wireshark. I now have 
connected the rx_dv to tx_en and rxd to txd and update these on 
falling_edge(tx_clk). This successfully bounces back all packets, but 
instead of any data, every nibble is "0000".

I have attached a Wireshark save file of two example packets sent to the 
FPGA and the two answers. The ethernet frame checksum is wrong because I 
set the UDP packet length to 18. I will try to fix this with an 
automated counter, but it should make no difference.

Author: Jonas Dann (jonasdann)
Posted on:

Rate this post
0 useful
not useful
I have now also debugged it with the Vivado ILA. I have registered a 
trigger to rxd not being "0000" and it never triggers. When I register a 
trigger to rx_dv it triggers normally. This is really weird.

Do you guys have any ideas?

Jonas

Author: Duke Scarring (Guest)
Posted on:

Rate this post
0 useful
not useful
Did you use the correct pins for rxd?
How fast is your ethernet?
How fast is your fpga system clock?

Duke

Author: Jonas Dann (jonasdann)
Posted on:

Rate this post
0 useful
not useful
Thanks a lot for your help.

Yes I used the correct pins. The .xdc comes directly from the vendor. 
But this was a good tip. I checked the pins and saw that the rdx pins 
were declared at OUT in the elaborated design. I do not know why, but I 
declared the rxd port as a buffer instead of a in port in the VHDL. I 
now declared it as an in port and it works like a charm.

I now feel a bit stupid, but also know more about FPGAs. :D

Jonas

Author: Waldemar Mathmann (waldi3141)
Posted on:

Rate this post
0 useful
not useful
Hi Jonas,

i know its been a while, but is there any chance you could tell me how 
you implemented the Receiving part or where you got it from ?

I've been searching for days and struggle with finding a code the makes 
receiving udp packets possible, i also use the Arty Board at 100MHz and 
send UDP Packets

regards
Waldi

Reply

Entering an e-mail address is optional. If you want to receive reply notifications by e-mail, please log in.

Rules — please read before posting

  • Post long source code as attachment, not in the text
  • Posting advertisements is forbidden.

Formatting options

  • [c]C code[/c]
  • [avrasm]AVR assembler code[/avrasm]
  • [vhdl]VHDL code[/vhdl]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]




Bild automatisch verkleinern, falls nötig
Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.