新聞中心

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

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

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

        4結論

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

        網絡編碼從提出到現在已有十年,在這期間,網絡編碼的理論研究和工程應用不斷發展和成熟,基于網絡編碼的多信源組播系統是網絡編碼在硬件方面的實現。它突破了以往網絡編碼的應用研究只停留在軟件和虛擬網絡,通過搭建實際的組播通信網絡,并應用NetFPGA平臺使網絡編碼在硬件中得以實現。

        文檔的前面分別介紹了網絡編碼的基本概念和研究動態、編解碼策略和算法以及編碼、轉發、解碼三個系統的詳細設計方案,包括系統的軟硬接口和軟件的基本功能。由于系統中的網絡編解碼都是由硬件完成,軟件的功能主要是控制和測試時使用,因此方案設計以硬件為主。

        圖4-1,圖4-2和圖4-3分別是編碼、轉發以及解碼路由器三個系統的verilog代碼樹狀圖,除去MAC層和core generator產生的代碼,代碼量有11,000行。附錄給出了編碼路由器和解碼路由器中的關鍵代碼。

        圖4-1 編碼路由器代碼樹狀圖



        圖4-2 轉發路由器代碼樹狀圖

        圖4-3 解碼路由器代碼樹狀圖

        附錄

        1:編碼路由器核心代碼:編碼模塊: payload_router.v

        /////////////////////////////////////////////////////////////////////////////

        // vim:set shiftwidth=3 softtabstop=3 expandtab:

        // Copyright(c) 2009, All rights reserved.

        // Advanced Network technology Lab, Shenzhen graduated school of PKU

        // Module: payload_router.v

        // Project: nf2_coding.ise

        // Time and Author: 2009-12-25 liyining

        // Description:determine whether should carry out coding operation, and route

        // the packets

        /////////////////////////////////////////////////////////////////////////////

        `define DLY 1

        `timescale 1ns/1ns

        module payload_router

        #(parameter DATAWIDTH = 64,

        parameter CTRLWIDTH = DATAWIDTH / 8 //bit-width parameter

        )

        (

        //payload fifo 1 port

        input [DATAWIDTH - 1:0] data_payloadfifo_router_1,

        input [CTRLWIDTH - 1:0] ctrl_payloadfifo_router_1,

        input empty_payloadfifo_router_1,

        output reg rd_en_payloadfifo_router_1,

        //payload fifo 2 port

        input [DATAWIDTH - 1:0] data_payloadfifo_router_2,

        input [CTRLWIDTH - 1:0] ctrl_payloadfifo_router_2,

        input empty_payloadfifo_router_2,

        output reg rd_en_payloadfifo_router_2,

        //multiplier 1 port

        input rdy_router_multiplier_1,

        output reg [DATAWIDTH - 1:0] data_router_multiplier_1,

        output reg first_dword_1, //flag to indicate the start of a pkt. only when it is the first double word of a pkt, should the random number be updated.

        output reg val_router_multiplier_1,

        //multiplier 2 port

        input rdy_router_multiplier_2,

        output reg [DATAWIDTH - 1:0] data_router_multiplier_2,

        output reg first_dword_2, //flag to indicate the start of a pkt. only when it is the first double word of a pkt, should the random number be updated.

        output reg val_router_multiplier_2,

        //rand number generator port

        output reg rand_num_en, //enable the random number generator

        input rand_num_val,

        //packing fifo port

        input rdy_router_packingfifo,

        input empty_packingfifo, // only when the whole last pkt is sent out, and the packing fifo is empty, then proceed the next pkt

        output reg [DATAWIDTH + CTRLWIDTH:0] data_router_packingfifo, //an extra bit(MSB) to indicate whether it is a coded pkt

        output reg val_router_packingfifo,

        output reg [2:0] router_status, //send router_status to packing_fifo, indicate where to get data

        //misc

        input clk,

        input rst_n

        );

        reg [DATAWIDTH - 1:0] data_temp1;

        reg [CTRLWIDTH - 1:0] ctrl_temp1;

        reg [DATAWIDTH - 1:0] data_temp2;

        reg [CTRLWIDTH - 1:0] ctrl_temp2;

        reg [1:0] counter_getdata; //counter for the read-FIFO-delay, 1 clock circle

        parameter JUDGE = 3'b000;

        parameter GET_DATA2 = 3'b001;

        parameter SEND_DATA2 = 3'b010;

        parameter GET_DATA1 = 3'b011;

        parameter SEND_DATA1 = 3'b100;

        parameter GET_BOTH = 3b101;


        上一頁 1 2 3 4 5 6 7 8 9 下一頁

        關鍵詞: 源代碼原理

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 宁陕县| 民乐县| 安图县| 屏边| 西充县| 容城县| 永川市| 南陵县| 民勤县| 青河县| 石楼县| 赣榆县| 大丰市| 辽中县| 南安市| 辽宁省| 怀来县| 怀柔区| 措勤县| 南宁市| 固始县| 尚义县| 榕江县| 电白县| 隆化县| 尉氏县| 汾阳市| 罗江县| 崇礼县| 荔浦县| 新和县| 宁化县| 华容县| 固阳县| 福州市| 威远县| 鹤山市| 平乐县| 北海市| 洪江市| 广宁县|