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

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

时间:11-08 来源:3721RD 点击:

pkt_vld = 1;

pkt_dcoding = {src_num_sel,gen_num_sel};

end // end-- if(|cam_lookup_reslt)

else

state_next = GET_SRC_GEN_NUM; //could not find the pkt in cams.

end //end--if(rd_idle)

/* waiting for decoding completion, if needs the decoding factor pkt,

* then look up the factor in the remain cams */

LUP_DCOD_FACTOR1_FIRST: begin

if(decod_com) begin

state_next=GET_SRC_GEN_NUM;

end

if(need_pkt_vld) begin // need other packet to decode current packet

if((cam_lookup_reslt^~cam_lookup_reslt_pre)==3'b110) begin

cmp_data = {pkt_need_src_gen,12'hfff};

cmp_data_mask_2 = {12'h0,CMP_DATA_MASK};

cmp_data_mask_1 = {12'h0,CMP_DATA_MASK};

end

else if((cam_lookup_reslt^~cam_lookup_reslt_pre)==3'b101) begin

cmp_data = {pkt_need_src_gen,12'hfff};

cmp_data_mask_2 = {12'h0,CMP_DATA_MASK};

cmp_data_mask_0 = {12'h0,CMP_DATA_MASK};

end

else if((cam_lookup_reslt^~cam_lookup_reslt_pre)==3'b011) begin

cmp_data = {pkt_need_src_gen,12'hfff};

cmp_data_mask_1 = {12'h0,CMP_DATA_MASK};

cmp_data_mask_0 = {12'h0,CMP_DATA_MASK};

end

else if((cam_lookup_reslt^~cam_lookup_reslt_pre)==3'b001) begin

cmp_data = {pkt_need_src_gen,12'hfff};

cmp_data_mask_0 = {12'h0,CMP_DATA_MASK};

end

else if((cam_lookup_reslt^~cam_lookup_reslt_pre)==3'b010) begin

cmp_data = {pkt_need_src_gen,12'hfff};

cmp_data_mask_1 = {12'h0,CMP_DATA_MASK};

end

else if((cam_lookup_reslt^~cam_lookup_reslt_pre)==3'b100) begin

cmp_data = {pkt_need_src_gen,12'hfff};

cmp_data_mask_2 = {12'h0,CMP_DATA_MASK};

end

state_next = LUP_DCOD_FACTOR1_SEC;

end

end

LUP_DCOD_FACTOR1_SEC: begin

state_next = GET_FACTOR1_RESLT;

cam_lookup_reslt_next = {match_2,match_1,match_0};

match_addr_temp_2_next = match_addr_2;

match_addr_temp_1_next = match_addr_1;

match_addr_temp_0_next = match_addr_0;

if((cam_lookup_reslt^~cam_lookup_reslt_pre)==3'b110) begin

cmp_data = {12'hfff,pkt_need_src_gen};

cmp_data_mask_2 = {CMP_DATA_MASK,12'h0};

cmp_data_mask_1 = {CMP_DATA_MASK,12'h0};

end

else if((cam_lookup_reslt^~cam_lookup_reslt_pre)==3'b101) begin

cmp_data = {12'hfff,pkt_need_src_gen};

cmp_data_mask_2 = {CMP_DATA_MASK,12'h0};

cmp_data_mask_0 = {CMP_DATA_MASK,12'h0};

end

else if((cam_lookup_reslt^~cam_lookup_reslt_pre)==3'b011) begin

cmp_data = {12'hfff,pkt_need_src_gen};

cmp_data_mask_0 = {CMP_DATA_MASK,12'h0};

cmp_data_mask_1 = {CMP_DATA_MASK,12'h0};

end

else if((cam_lookup_reslt^~cam_lookup_reslt_pre)==3'b001) begin

cmp_data = {12'hfff,pkt_need_src_gen};

cmp_data_mask_0 = {CMP_DATA_MASK,12'h0};

end

else if((cam_lookup_reslt^~cam_lookup_reslt_pre)==3'b010) begin

cmp_data = {12'hfff,pkt_need_src_gen};

cmp_data_mask_1 = {CMP_DATA_MASK,12'h0};

end

else if((cam_lookup_reslt^~cam_lookup_reslt_pre)==3'b100) begin

cmp_data = {12'hfff,pkt_need_src_gen};

cmp_data_mask_2 = {CMP_DATA_MASK,12'h0};

end

end

/* --- get the factor pkt address from the cam, then reads the DRAM

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

网站地图

Top