一、概述
本设计来要构建MAC层和UDP组包,完成板卡板卡到主机的数据包传递链路。设计流程图如图1-1所示。
在本文章中,我们只实现前两个模块——定时器和产生UDP基本帧结构。
二、设计实现
(一)定时器
1. 在上电后,我们每隔1s产生一个心跳脉冲,这样就有了循环产生心跳包的激励信号。
2. 在此模块的蚀设计中有一个新的parameter定义方法,如图2-1所示的用于仿真选择的parameter的定义,该parameter如果在tb文件中值给1 的话,那么模块中执行的是为仿真设计的代码,如图2-2所示。之所以这样设计的原因是因为我们设计要求是每隔1s产生一个脉冲,这样的话不方便我们仿真,所以我们在仿真的时候选择40us产生一个心跳脉冲。
3.此模块的代码非常简单,仅需使用计数器,在计数器值到达设计要求 值的时候,拉高一个时钟周期即可。
(二)UDP基本帧结构
1. 此模块主要将数据组成基本的千兆以太网UDP 协议,以太网的包结构在“千兆数据接收,HDMI显示设计(二)——数据接收fifo、crc校验和数据包过滤”这一节中有提到过。
2. 按照之前的以太网包结构,产生0-113 字节的心跳包。
3. 在接收到定时器模块传来的脉冲信号后,拉高一个产生帧的标志,并且开始计数,以计数器为依据,从而产生数据包,并将帧的标志延时一拍,就是产生帧的有效信号。