我正试图用以太网电缆将数据从PC发送到FPGA。
我用这个代码来接收从我的电脑发送到FPGA的数据包(通过以太网电缆(。我用ila(集成逻辑调试器(在FPGA上捕获接收到的数据包。
当我在linux电脑上使用ifconfig
时,在编程FPGA后,我看到下面:(我隐藏了我的MAC地址(
enp7s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1490
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1427 bytes 199195 (199.1 KB)
TX errors 1071 dropped 0 overruns 0 carrier 0 collisions 0
正如我从这个类似的问题中所知道的,我的FPGA没有任何特定的ip地址,甚至没有端口号。它根据它的MAC地址监听在RXD(以太网mii(上发送的每个数据包。
当我没有任何特定的IP和端口时,我如何将数据包发送到FPGA?
我想我应该在我的电脑中为我的FPGA设置端口和IP(无需更改硬件(,但我不知道怎么做?
有几个选项。
- 如果FPGA直接连接到您的接口,那么它将接收您发送的任何内容,因此无需担心网络配置
- 如果你有一个开关,你可以发送一条广播消息,该消息将转发到网络中的所有设备(假设你的开关中没有像vlan或类似的复杂配置(
关于广播:https://en.wikipedia.org/wiki/Broadcasting_(网络(它只是一个带有FFs 的dest mac
至于实际发送,您可以使用python生成并发送数据包。scapy是一个非常简单的软件包,应该可以帮助你文件:https://scapy.readthedocs.io/en/latest/usage.html
看看这个特殊的例子:
sendp(Ether()/IP(dst="1.2.3.4",ttl=(1,4)), iface="eth1")