新闻中心

EEPW首页>电源与新能源>设计应用> 基于网络编码的多信源组播通信系统,包括源代码,原理图等(四)

基于网络编码的多信源组播通信系统,包括源代码,原理图等(四)

作者: 时间:2016-12-06 来源:网络 收藏

parameter GET_BOTH = 3'b101;

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



关键词:源代码原理

评论


技术专区

关闭