⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 data_receive.v

📁 LAPS协议的设计与实现
💻 V
字号:
module data_receive(                    //input                    clk,                    rst_n,                    Tdata,                    Tsop,                    Teop,                    //output                    Tdata_out,                    fifo_trans_wrreq,                    bytes_data_num                    );//=========================================================////============	I/O direction  =============================////=========================================================//input        clk;input        rst_n;input [7:0]  Tdata;input        Tsop;input        Teop;output[7:0]  Tdata_out;output       fifo_trans_wrreq;output[10:0] bytes_data_num;	//=========================================================////=================	I/O Type  =============================////=========================================================//reg  [7:0]  Tdata_out;reg         fifo_trans_wrreq;reg [10:0]  bytes_data_num;	//=========================================================////============	Internal Signals  ==========================////=========================================================//reg  [10:0]  bytes_data_cnt;reg          flag_cnt;reg          trans_data_end;//==========================================================////====================	Process  ============================////==========================================================////the number of trans data,actually is num-1always @(posedge clk or negedge rst_n)  begin	 if(!rst_n)  begin 	    	bytes_data_cnt<=11'd0;		  flag_cnt<=1'b0;	 end	 else  begin		  if(Tsop)  begin 			   bytes_data_cnt<=11'd0;				flag_cnt<=1'b1;		  end		  else begin				if(flag_cnt) begin            				bytes_data_cnt<=bytes_data_cnt+11'd1;            				flag_cnt<=flag_cnt;        				end				else if(Teop) begin				    bytes_data_cnt<=bytes_data_cnt;                flag_cnt<=1'd0;            end            else  begin                bytes_data_cnt<=bytes_data_cnt;                flag_cnt<=flag_cnt;            end      		end  	 endend//fifo_trans_wrreqalways @(posedge clk or negedge rst_n)  begin	 if(!rst_n)  fifo_trans_wrreq <= 1'b0;	 else  begin	     if(Tsop)                fifo_trans_wrreq <= 1'b1;	     else if(trans_data_end) fifo_trans_wrreq <= 1'b0;	     else                    fifo_trans_wrreq <= fifo_trans_wrreq;	 endend//bytes_data_numalways @(posedge clk or negedge rst_n)  begin	 if(!rst_n)  bytes_data_num <= 11'd0;	 else  begin	     if(fifo_trans_wrreq)  bytes_data_num <= bytes_data_cnt;	     else                  bytes_data_num <= bytes_data_num;	 endend//all trans data always @(posedge clk or negedge rst_n)  begin	 if(!rst_n)  trans_data_end <= 1'b0;	 else  begin	     if(Tsop)      trans_data_end <= 1'b0;	     else if(Teop) trans_data_end <= 1'b1;	     else          trans_data_end <= trans_data_end;    endend//Tdata_outalways @(posedge clk or negedge rst_n)  begin    if(!rst_n)  Tdata_out <= 8'd0;    else        Tdata_out <= Tdata;endendmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -