论文部分内容阅读
随着集成电路工艺的快速发展,基于IP(Intellectual Property)集成的片上系统(System on Chip,SoC)成为集成电路设计的重要方向。作为现今世界应用最广泛的局域网,以太网IP核已经被集成到了各种各样的通信芯片中,然而,随着网络应用日益广泛,各种不同服务质量(Quality of Service,QoS)要求的信息业务进入我们的生活,传统以太网控制器IP核仅仅提供网络传输的任务,对业务不进行区分,执行先到先服务的原则,不能满足人们对高质量网络服务的需求,因此,实现支持可靠性QoS服务能力的以太网控制器至关重要。本文主要是在以太网控制器IP核中实现并验证QoS相关功能,以此提高网络的服务能力。本文源于一款SoC项目中千兆以太网控制器IP核的集成与验证,其IP核需要支持QoS功能,比如设置数据优先级,依据相关帧的优先级字段区分不同优先级别的数据,对实时视频语音等高优先级业务优先转发,对网页邮件等低优先级业务暂缓转发,通过基于优先级的流量控制能够有效的降低各个优先级别数据的丢包率,以及通过多队列调度算法对不同优先级别的数据排队转发,有效处理拥塞,对控制帧等高优先级帧设定专用带宽。本文首先对以太网MAC层协议,如CSMA/CD(载波监听多路访问/冲突检测)协议进行详细分析,重点介绍了发送延时、冲突重发、退避算法机制。然后对现有以太网IP核体系进行分析,包括应用接口模块、DMA控制器模块、MAC传输层模块、MAC模块。接着介绍了以太网实现QoS的相关理论,重点介绍了区分服务模型,以及区分优先级服务的相关协议等,包括数据链路层的IEEE802.1p协议,以及网络层的报文协议。最后重点分析支持QoS的千兆以太网IP核具体功能,其主要包括双层VLAN Tag处理、帧分类与标记、多队列调度算法、基于优先级的流量控制、多层次的过滤等功能,最后对各个功能进行实现并进一步设计完善。对实现的QoS功能验证是前端设计中至关重要的一步,首先依据实现的各个QoS功能模块策划涵盖所有功能的验证项,并对没有验证到的寄存器进行详细梳理,制定充分的验证规范。本文功能验证主要在Linux环境下使用NC-Sim软件进行仿真验证,分为模块级和系统级虚拟仿真验证。对于模块级功能验证,主要完成功能模型的设计,组建验证平台,编写充分的测试激励,完成模块级验证。对于系统级SoC软硬件协同验证,首先需要将千兆以太网IP核集成到SoC系统上,以及必要的相关存储模块,将设计好的组帧模型以及解析模型连接到系统上,按照各个功能项不同寄存器配置分别编写C代码,并编写相应的硬件控制激励,最后对VLAN Tag处理、多队列调度算法的模块级仿真结果进行详细分析,并且对分类、流控、过滤等功能的系统级仿真结果进行详细分析。验证结果表明,本文实现了支持QoS特性的相关功能,即实现各种类型的以太网帧进行分类与标记,并对分类流量进行排队调度转发,实现多种流量控制机制以及多层次的过滤功能,显著的提高了网络服务能力。