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

81 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 功能分析
## 原先
UDP_data_process.v主要负责接收UDP传过来的信息然后执行对应操作。比如说接收到一个TOE写的网络包然后会进行解析与执行。接收到开启秒脉冲的包就会控制pluse_second。
转发功能全打包到status_to_udp.v中实现功能解耦代码也更好看。从TOE和另外3个信息模块拿到数据打包成UDP帧结构然后发送出去。
## 现在
![a83dc5096e9434783ed57f826a2f50e2](./变成两个udp,一个负责收一个负责发.assets/a83dc5096e9434783ed57f826a2f50e2.png)
本来是一个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](./变成两个udp,一个负责收一个负责发.assets/局部截取_20260109_212429.png)
# 仿真
## 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](./变成两个udp,一个负责收一个负责发.assets/局部截取_20260109_211614.png)
### 保证状态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,一个负责收一个负责发.assets/局部截取_20260109_211301.png)
成功!
## udp_data_process
![局部截取_20260109_214254](./变成两个udp,一个负责收一个负责发.assets/局部截取_20260109_214254.png)
成功!