基于网络编码的多信源组播通信系统,包括源代码,原理图等
Data_center_legacyfifo_2 | 64 | Output | Output data bus to "packing center" |
Rd_en_center_legacyfifo_2 | 1 | Input | Read enable |
Data_center_packingfifo_2 | 14 | Output | Output data bus to "packing center" |
Rd_en_center_packingfifo_2 | 1 | input | Read enable |
clk | 1 | input | System clock, running at 125MHz |
Rst_n | 1 | input | System asynchronous reset signal |
④ 功能描述及数据流
本模块为主控制模块。子模块control arbiter通过监控两条输入通道的ctrl bus,控制子模块head_spliter的两个独立的例化。具体控制操作如下:
若两条输入通道同时进来新的IP包,则同时处理两条通道。
若输入通道1进来新IP包时,通道2中IP包已经在处理中,则阻塞通道1,直至通道2处理完毕再重新判决。
若同时处理两条通道时,两条通道中的数据包深度相同,则无需"PADDING"操作。若通道1中数据包发送完毕时(ctrl bus用one-hot-code标明结尾字节),通道2中数据包尚未发送完毕,则需对通道1中数据包补零,并在ctrl bus中用0b11110000标明此为padding数据。
子模块head_spliter分离包头和负载,并分别发往head_info_extractor提取封装信息和FIFO_ctrl_payload暂存负载。
子模块head_info_extractor提取包头中的源IP地址,并由此生成4-bit信源编号(source number)和10-bit代编号(generation number),将生成的封装信息存入FIFO_ctrl_packinginfo,将原始包头存入FIFO_ctrl_legacy。
⑤ 关键时序及状态机
Head_spliter状态机如图3.2-5
图3.2-5:Head_spliter状态机
Control arbiter时序图
Head spliter时序图
3、Coding
① 子模块列表
Submodule name | quantity | description |
Payload router | 1 | Determine by the arrival of packets from both channels, whether should process coding or transport directly to packing module |
M64×8 multiplier | 2 | Multiply 64-bit data from "payload router" by 8-bit random number from "prng tap16" |
Prng tap16 | 1 | 8-bit random number generator |
M72×72 adder | 1 | 72-bit by 72-bit full adder |
M72to64 converter | 1 | Convert data bus width from 72-bit to 64-bit |
② Coding模块的内部结构如图3.2-6
图3.2-6:coding模块内部结构
③ 本模块输入输出信号列表及说明
Signal name | Bit width | I/O | description |
Data_payloadfifo_router_1 | 64 | Input | Input data bus from "FIFO ctrl payload 1" |
Ctrl_payloadfifo_router_1 | 8 | Input | Input ctrl bus from "FIFO ctrl payload 1" |
empty_payloadfifo_router_1 | 1 | Input | 1=FIFO ctrl payload 1 is empty,0=otherwise |
Rd_en_payloadfifo_rouer_1 | 1 | output | Read enable |
Data_payloadfifo_router_2 | 64 | Input | Input data bus from "FIFO ctrl payload 2" |
Ctrl_payloadfifo_router_2 | 8 | Input | Input ctrl bus from "FIFO ctrl payload 2" |
empty_payloadfifo_router_2 | 1 | Input | 1=FIFO ctrl payload 2 is empty,0=otherwise |
Rd_en_payloadfifo_rouer_2 |
- 一种基于电力线的家庭以太网络实现方法(10-10)
- 基于DSP和FPGA的机器人声控系统设计与实现 (04-16)
- 面向大众市场的千兆位级收发器(05-04)
- 利用以太网硬件在环路实现高带宽DSP仿真(05-04)
- 采用软处理器IP规避器件过时的挑战(05-04)
- WCDMA系统基带处理的DSP FPGA实现方案(01-02)