基于網(wǎng)絡(luò)編碼的多信源組播通信系統(tǒng),包括源代碼,原理圖等(四)
end
本文引用地址:http://m.butianyuan.cn/article/201612/326827.htmelse 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
if no address matches, then check the decode factor2 */
GET_FACTOR1_RESLT: begin
state_next = RD_DRAM_MINOR_STEP;
cam_lookup_reslt_next = cam_lookup_reslt | {match_2,match_1,match_0};
cam_lookup_reslt_pre_next = cam_lookup_reslt | {match_2,match_1,match_0};
if(match_2) begin
match_addr_temp_2_next = match_addr_2;
end
if(match_1) begin
match_addr_temp_1_next = match_addr_1;
end
if(match_0) begin
match_addr_temp_0_next = match_addr_0;
end
end
RD_DRAM_MINOR_STEP:
if(rd_idle)
if(|cam_lookup_reslt) begin
state_next = LUP_DCOD_FACTOR1_FIRST;
if(cam_lookup_reslt==3'b001)
begin
addr_vld = 1;
block_num_rd = match_addr_temp_0;
port_num_rd = 2'b00;
cam_lookup_reslt_next=0;
end
else if (cam_lookup_reslt==3'b010)
評論