新聞中心

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

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

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

parameter GET_BOTH = 3'b101;

本文引用地址:http://m.butianyuan.cn/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;



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

評論


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

關(guān)閉