新聞中心

        EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于網(wǎng)絡(luò)編碼的多信源組播通信系統(tǒng),包括源代碼,原理圖等(四)

        基于網(wǎng)絡(luò)編碼的多信源組播通信系統(tǒng),包括源代碼,原理圖等(四)

        作者: 時(shí)間:2016-12-06 來(lái)源:網(wǎng)絡(luò) 收藏

        * the other for later use. If there is no valid address, we could not

        本文引用地址:http://www.104case.com/article/201612/326827.htm

        * decode, then get out and decode the next one */

        GET_CMP_RESLT_SEC: begin

        state_next = RD_DRAM_MAIN_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};

        cam_lookup_reslt_save_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

        /* reads the DRAM accroding to the CAM's address, then updates the look

        * up result */

        RD_DRAM_MAIN_STEP:

        if(rd_idle) begin

        if(|cam_lookup_reslt) begin

        if(cam_lookup_reslt==3'b101) begin

        other_dram_addr_next = match_addr_temp_2;

        other_port_num_rd_next = 2'b10;

        has_factor2_next = 1;

        addr_vld = 1;

        block_num_rd = match_addr_temp_0;

        port_num_rd = 0;

        cam_lookup_reslt_next = 3'b100;

        end

        else if (cam_lookup_reslt == 3'b011) begin

        other_dram_addr_next = match_addr_temp_1;

        other_port_num_rd_next = 2'b01;

        has_factor2_next = 1;

        addr_vld = 1;

        block_num_rd = match_addr_temp_0;

        port_num_rd = 0;

        cam_lookup_reslt_next = 3'b010;

        end

        else if (cam_lookup_reslt==3'b110) begin

        other_dram_addr_next = match_addr_temp_2;

        other_port_num_rd_next = 2'b10;

        has_factor2_next = 1;

        addr_vld = 1;

        block_num_rd = match_addr_temp_1;

        port_num_rd = 2'b01;

        cam_lookup_reslt_next=3'b100;

        end

        else if (cam_lookup_reslt==3'b001) begin

        has_factor2_next = 0;

        addr_vld = 1;

        block_num_rd = match_addr_0;

        port_num_rd = 2'b00;

        cam_lookup_reslt_next = 0;

        end

        else if (cam_lookup_reslt==3'b010) begin

        has_factor2_next = 0;

        addr_vld = 1;

        block_num_rd = match_addr_1;

        port_num_rd = 2'b01;

        cam_lookup_reslt_next = 0;

        end

        else if (cam_lookup_reslt==3'b100) begin

        has_factor2_next = 0;

        addr_vld = 1;

        block_num_rd = match_addr_2;

        port_num_rd = 2'b10;

        cam_lookup_reslt_next = 0;

        end

        state_next=LUP_DCOD_FACTOR1_FIRST;

        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};



        關(guān)鍵詞: 源代碼原理

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 阜城县| 柳林县| 西藏| 息烽县| 桃园市| 竹北市| 太仓市| 乳源| 洞口县| 南昌县| 宜州市| 广元市| 盐津县| 日喀则市| 巩留县| 丰台区| 聂荣县| 阿瓦提县| 思南县| 随州市| 乐至县| 金湖县| 玛曲县| 汝城县| 财经| 得荣县| 文水县| 遂溪县| 芷江| 含山县| 温泉县| 平度市| 哈巴河县| 峡江县| 岑溪市| 江达县| 商都县| 泰顺县| 神木县| 清涧县| 石棉县|