微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于网络编码的多信源组播通信系统,包括源代码,原理图等

基于网络编码的多信源组播通信系统,包括源代码,原理图等

时间:11-08 来源:3721RD 点击:
不改变并且不是包头的起始信号时则保持在该状态;如果counter=1,发现包头起始信号则保存该字段的值,并设置counter=2; 当满足计数器counter=2时,并且是包的中间值信号时则跳转到READ状态;根据counter计数器的值有条件的保存在该状态;counter自加; 当满足计数器counter=3时,判断MAC字段中上层协议的类型标志,如果为IP数据包继续保持在READ状态,counter+1;当counter=4时 进行判断数据包中协议字段的如果为未编码的IP数据包则保存在该状态,counter+1; 当满足counter=3时判断上层协议类型标志为非IP数据包,则直接跳转到SEND状态;如果为已经编码的IP数据包既NCP数据包,则调整到SEND状态; 当counter=7的时候,跳转到ADDNCPHEADER状态;数据处理完毕后state=SEND; 当暂存的数据包没有发送完之前则保持在该状态; 当state=SEND时,跳转到SEND状态; 当暂存的数据包的字段发送完毕后,跳转到CONSENCTIVEPASS(持续发包)状态时; 判断包尾的结束标志,如果不是包尾的结束标志则保持在该状态; 判断包尾的结束标志,如果是包尾的结束标志,则发最后一个字段,并跳转到IDLE(起始状态);

3.4 解码路由器详细设计方案

3.4.1 解码路由器系统整体模块图

如下图3.4-1所示,为解码路由器的整体模块图

3.4-1 解码路由器系统整体模块图

3.4.2系统中各单元模块的功能与时序

1、Input_arbiter:采用轮询策略,当fifo非空时从fifo接收数据,根据mac header判断数据是否为IP数据包,若是,则将数据发送到DRAM读写控制模块,同时将信源号、代编号发送到CAM读写控制模块。

可用一个两状态的状态机实现:即轮询判断输入和数据输出:在FIFO非空时读数据,并根据数据包的类型发送到DRAM读写控制器或output fifo中,若是IP数据包,同时将信源号、代编号发送给CAM读写控制。

主要信号列表:

信号名称

位宽 bit

I/O

描述

Wr_vld_arb

1

写DRAM控制器有效

Out_data_0

64

输出至DRAM的data

Out_ctrl_0

8

输出至DRAM德ctrl

Src_gen_seq

24

信源号、代的编号

Cam_vld

1

写CAM控制器有效

Port_num_dram

2

数据的接收端口号

Out_data_1

64

输出至output arbiter的data

Out_ctrl_1

8

输出至output arbiter的ctrl

Wr_vld_1

1

输出至output arbiter信号有效

2、output_arbiter

图3.4-2 output_arbiter结构图

本模块的结构如图3.4-2所示,由两个输入fifo和一个输出仲裁器组成,两个fifo缓存来自SRAM和input_arbiter的数据包,Output_arbiter的作用是将解码后的数据发送到MAC层。由于对于非IP数据包我们并没有对其进行编码,所以在解码路由器中由input_arbiter判断后直接输出output_arbiter;对于编码后的IP数据包,在解码后先暂存到SRAM中,再发送出去。本模块就是轮流判断并接收来自SRAM和input_arbiter的数据,并将数据包发送到MAC层。

输入输出信号列表:

信号名称

位宽bits

I/O

描述

out_data_3

64

O

输出至MAC层的数据总线

out_ctrl_3

8

O

输出至MAC层的控制总线

out_wr_3

1

O

输出有效

out_rdy_3

1

I

MAC层空闲标志

dcod_data_0

64

I

已经解码的IP数据包的数据总线

dcod_ctrl_0

8

I

已经解码的IP数据包的控制总线

wr_

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top