论文部分内容阅读
在集成电路领域的设计中,随着所设计芯片需要满足的功能增多,而芯片要求的尺寸又不断缩小,众多设计人员都提出了“片上系统”(SoC)这一概念。它将众多模块的功能集成在一个芯片上,并凭借其高集成度、少连接线、验证过程简单的特点迅速占领了整个芯片设计的市场。在网络传输的解决方案中,以太网是所有网络应用中使用频率最高,适用范围最广,影响人类生活最大的一种传输媒介,在SoC芯片中集成以太网MAC模块实现数据传输也被众多设计人员所推广使用。但网络传输媒介的不断更新,导致了对数据传输速率的需求的不断提升,对以太网MAC芯片的传输数据的需求也与日俱增,不仅传统以太网10M/100M的传输速率无法满足用户的需求,即就是在千兆速率下传输的以太网也不能单纯的把符合协议要求作为衡量IP性能的唯一指标。高速,多功能,更节约资源的以太网MAC已经被使用者所期待。基于这些需求,本文在研究和分析以太网MAC基本模块功能的基础上,设计了一款具有特色功能的基于DMA的千兆以太网MAC控制器。本文的课题来源于一款特定用途的SoC系统芯片设计项目。该项目的SoC要求集成符合以太网传输协议,并满足10M、100M、1000M数据传输速率的以太网MAC控制器IP核。IP核对内与PLB总线交换数据,对外可以通过GMII接口连接物理层,并支持光纤传输。所具备的数据搬运模块DMA的发送和接收缓冲FIFO均为256KB。可以替代CPU处理数据传输指令。基于这个设计要求,本文的工作重心主要有以下三个方向:以太网MAC基本功能模块的研究,基于DMA的千兆以太网MAC的设计以及对所设计以太网MAC控制器进行仿真与验证。首先在研究以太网传输协议的基础上,分析了以太网MAC所实现的的基本功能与实现逻辑。并根据研究中所考虑到的在实际工作环境条件下可能出现的错误与资源浪费问题,总结整理以太网MAC基本功能模块的特点,并提出了优化方案。其次,经过对传输协议和以太网MAC基本功能的研究,设计了满足传输协议需求的以太网MAC基本功能模块。整个数字模块的设计采用了自顶向下的设计方法。根据模块各自的功能需求,进行模块划分以及功能实现。针对CPU无法及时处理数据传输请求而导致传输效率低的问题,设计利用DMA替代CPU实现更快捷的数据传输过程。针对不同速率端口数据传输时发送快、接收慢导致接收FIFO满而丢弃数据而导致重发的资源浪费问题,设计了流量控制模块,通过发送暂停帧控制发送过程。针对用户无法实时有效监测数据传输过程的问题,设计了监测模块,通过计数器及时记录数据传输的状态。针对用户需要采用光纤传输数据的需求,设计GPCS模块解决了替代了以往需要外接PHY芯片进行编解码的问题。之后,针对所设计的功能,搭建模块级平台开展测试工作。并针对整个设计中所有的功能以及可能面临的应用环境,考虑正确、错误、极端环境等影响因素,提出了60余项待测试功能项目。通过NC-Sim仿真软件,编写测试项,设计功能模型,进行了模块级功能测试。在系统级测试中,采用软件、硬件合作验证的方法,在系统级平台上,将设计的以太网MAC控制器与SoC项目中其余模块互联,对所设计控制器的功能进行了系统级测试。最后,通过遍历回归观察报告文件的方式,对所有测试项在模块级,系统级进行了回归测试,避免了修改代码时所造成的偶然错误,完成了整个工作。