UDP_data_process/readme/变成两个udp,一个负责收一个负责发.md

2.4 KiB
Raw Blame History

功能分析

原先

UDP_data_process.v主要负责接收UDP传过来的信息然后执行对应操作。比如说接收到一个TOE写的网络包然后会进行解析与执行。接收到开启秒脉冲的包就会控制pluse_second。

转发功能全打包到status_to_udp.v中实现功能解耦代码也更好看。从TOE和另外3个信息模块拿到数据打包成UDP帧结构然后发送出去。

现在

a83dc5096e9434783ed57f826a2f50e2

本来是一个udp接口收发数据现在实际是两个。udp1只负责发送状态数据不需要接收udp0负责配置数据和指令等需要接收TOE命令。所以在你的模块顶层会有两组这个udp数据接口。

改动

status to udp

仲裁存储状态机不用改。TOE valid的来进的是TOE_rec_fifo 。而状态信息进的是info_cache_fifo。

发送状态机需要改。关键是fifo_wr_en fifo_wr_data得改。

改了fifo发现端口添加很容易关键是添加了fifo_wr_en_TOEfifo_wr_data_TOE

UDP_data_process

除了端口改了。

由于该模块主要是执行功能所以主要改接口就ok了

局部截取_20260109_212429

仿真

Status to udp 转发模块验证

保证状态信息info转发正确

//秒脉冲开启////////////////////////////////////

send_fifo_data(64'h4d44000410000001);

send_fifo_data_32(31'h34D1ED6F);

#100000;

send_fifo_data(64'h4d44000410000000);

send_fifo_data_32(31'h3010F0D8);

//////////////////////////////////////////////

之后验证fifo_wr_en fifo_wr_data[31:0]是否正确

局部截取_20260109_211614

保证状态TOE转发正确

#1000;

send_toe_data(66'h10102030405060708,66'h2b1b2b3b4b5b6b7b8,66'h3c1c2c3c4c5c6c7c8,66'h0a1a2a3a4a5a6a7a8,4);

#5000;

之后验证fifo_wr_en_TOE fifo_wr_data_TOE[31:0]是否正确

局部截取_20260109_211301

成功!

udp_data_process

局部截取_20260109_214254

成功!