开发环境
- 小梅哥AC6102开发板(内含RTL8211E千兆以太网phy芯片)
- quartus prime17.1
- win10
- 千兆网卡 这个需要电脑支持,不支持就玩不了了
- udp协议介绍请参考我之前写的udp和arp
- 本实例支持udp的发送与接收
- 支持arp的发送和接收
系统框图
发送
本实例支持发送3种包
- 发送udp包,s3_in是外部按键,按下时为低,松开为高。当s3_in被按下时,经过udp_debounce滤波,会输出一个udp_wr信号给generate_data模块,当udp_wr为低时,generate_data就会每隔1s产生1024个数据,并写入到wfifo中,当wfifo中的数据到达1024个时,也就是wfifo_wrusedw >= 1024时,auto_read_write模块就会产生一个udp_tx信号。然后通知eth_mac_send去发送一个udp包。
auto_read_write产生udp_tx代码如下:
//tx_en
always @(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
tx_en <= 1'b0;
end
else if(wfifo_wrusedw >= 'd1024)begin
tx_en <= 1'b1;
end
else begin
tx_en <=