以太网切包:
/* 为什么要切包?
一个传输的以太网帧长度最小为64个字节,最长为1518个字节:[ 6字节目的Mac地址 + 6字节源Mac地址 + 2字节的type类型 + 46-1500个字节的数据 + 4字节的FCS ] 如果传输的以太网帧太长,传输过程中,若发生一个错误,就要重传帧,其他终端将一直等待,效率很低。因此把帧的长度控制在46~1500字节之间。*/
/* 本工程的要求是要求报文范围是1~9600字节,报文与报文之间的间隔至少要在46字节以上,设计以太网切包模块。
如果输入的报文长度小于46字节,那么就要在后面进行补0操作,输出46字节的报文;
如果输入的报文长度大于46且小于1500字节,不进行操作,直接输出报文;
如果输入的报文长度大于1500字节,那么就要对报文进行切包操作,切包之后的数据若小于46则进行补0,输出报文;*/
module eth_packet(
input clk,
input rst_n,
input [7:0] din,
input din_vld,
input din_sop, // 报文头
input din_eop, // 报文尾
output reg[7:0] dout,
output reg dout_vld,
output reg dout_sop,
output reg dout_eop
);
wire add_cnt_wr,end_cnt_wr;
wire add_cnt_