新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于網絡編碼的多信源組播通信系統,包括源代碼,原理圖等(四)

        基于網絡編碼的多信源組播通信系統,包括源代碼,原理圖等(四)

        作者: 時間:2016-12-06 來源:網絡 收藏

        parameter GET_BOTH = 3'b101;

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

        parameter SEND_BOTH_1 = 3'b110;

        parameter SEND_BOTH_2 = 3'b111;

        always @(posedge clk or negedge rst_n) begin

        //reset process

        if (rst_n == 0) begin

        router_status <= JUDGE;

        data_temp1 <= 64'h0;

        ctrl_temp1 <= 8'h0;

        data_temp2 <= 64'h0;

        ctrl_temp2 <= 8'h0;

        counter_getdata <= 2'b0;

        end

        else begin

        case (router_status)

        JUDGE: begin

        first_dword_1 <= 0;

        first_dword_2 <= 0;

        rand_num_en <= 0;

        val_router_multiplier_2 <= 0; //clear some signals

        //program hold, when packing FIFO inempty

        if (!empty_packingfifo) begin

        router_status <= JUDGE;

        end

        else begin

        //both FIFO ctrl payload 1 & 2 are empty

        if (empty_payloadfifo_router_1 && empty_payloadfifo_router_2) begin

        rd_en_payloadfifo_router_1 <= 0;

        rd_en_payloadfifo_router_2 <= 0;

        router_status <= JUDGE;

        end

        //FIFO ctrl paylaod 2 is inempty, read from this FIFO,

        //coding will be unnecessary

        else if (empty_payloadfifo_router_1 && (!empty_payloadfifo_router_2)) begin

        rd_en_payloadfifo_router_2 <= 1;

        rd_en_payloadfifo_router_1 <= 0;

        counter_getdata <= 0;

        router_status <= GET_DATA2;

        end

        //FIFO ctrl payload 1 is inempty, read from this FIFO,

        //coding will be unnecessary

        else if ((!empty_payloadfifo_router_1) && empty_payloadfifo_router_2) begin

        rd_en_payloadfifo_router_1 <= 1;

        rd_en_payloadfifo_router_2 <= 0;

        counter_getdata <= 0;

        router_status <= GET_DATA1;

        end

        //both FIFO ctrl payload 1&2 are inempty, read from both

        //of them, coding is needed

        else if ((!empty_payloadfifo_router_1) && (!empty_payloadfifo_router_2)) begin

        rd_en_payloadfifo_router_1 <= 1;

        rd_en_payloadfifo_router_2 <= 1;

        counter_getdata <= 0;

        router_status <= GET_BOTH;

        end

        end

        end //state JUDGE ends

        //read data from FIFO ctrl payload 2

        GET_DATA2: begin

        val_router_packingfifo <= 0; //clear the output valid signal

        //read-FIFO-delay

        if (counter_getdata < 2'b01) begin

        counter_getdata <= counter_getdata + 1;

        router_status <= GET_DATA2;

        rd_en_payloadfifo_router_2 <= 0; //clear rd_en signal

        end

        else begin

        data_temp2 <= data_payloadfifo_router_2;

        ctrl_temp2 <= ctrl_payloadfifo_router_2;

        router_status <= SEND_DATA2;

        end

        end //state GET_DATA2 ends

        //send data to packing fifo without coding

        SEND_DATA2: begin

        if (!rdy_router_packingfifo) begin

        router_status <= SEND_DATA2;



        關鍵詞: 源代碼原理

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 阿瓦提县| 黄大仙区| 鹿泉市| 闻喜县| 晋中市| 曲松县| 泰顺县| 惠东县| 晋宁县| 福海县| 金秀| 健康| 柏乡县| 库车县| 华宁县| 顺平县| 大姚县| 神农架林区| 南和县| 镇坪县| 盐边县| 南安市| 金平| 佛冈县| 凌海市| 和田市| 安庆市| 榆林市| 晋江市| 贺兰县| 句容市| 蓬安县| 湾仔区| 南丹县| 镇沅| 安新县| 呼和浩特市| 天祝| 台州市| 沅江市| 九寨沟县|