片上网络路由器IP核的设计与实现.doc_第1页
片上网络路由器IP核的设计与实现.doc_第2页
片上网络路由器IP核的设计与实现.doc_第3页
片上网络路由器IP核的设计与实现.doc_第4页
片上网络路由器IP核的设计与实现.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

片上网络路由器IP核的设计与实现作 者 姓 名:指 导 教 师:学 院 名 称:信息科学与工程学院专 业 名 称:电子信息工程2011年6月Design and realization of the routing IPCore based on NoCby Supervisor: June 2011东北大学本科毕业设计(论文)毕业设计(论文)任务书东北大学本科毕业设计(论文)毕业设计(论文)任务书毕业设计(论文)任务书毕业设计(论文)题目:片上网络路由器IP核的设计与实现设计(论文)的基本内容:本课题将在Xilinx的XUPV2P开发板上用VHDL硬件描述语言设计并实现一个片上网络路由器IP核以及用该IP核搭建的片上网络快速原型系统。利用EDK和ISE在FPGA上搭建易硬件模型以实现此IP核的基本逻辑功能路由,同时将通过读写RAM的方式实现对路由器的监测状态的存储和读取,另外还要对此核进行基本的封装,使其具有统一的对外接口和灵活的参数设定。最后,要用该IP核搭建片上网络快速原型系统,以测试该IP的功能。毕业设计(论文)专题部分:题目:设计或论文专题的基本内容:学生接受毕业设计(论文)题目日期第周指导教师签字:年月日V东北大学本科毕业设计(论文)摘要片上网络路由器IP核的设计与实现摘要随着半导体技术以及集成电路技术的飞速发展,单个芯片中IP(Intellectual Property)核数量越来越多。这时基于片上总线的SoC(System-on-a-Chip)在设计上遇到了全局时钟难以同步、地址空间有限、无法支持多节点并行通信等问题。将计算机网络技术引入SoC设计领域,以片上网络的形式从体系结构上彻底解决上述问题已成为该领域的研究热点。片上网络的可升级和易扩展性很好的满足了新设计的要求,并逐渐发展成为片上总线之外的一种新的通信结构。目前片上网络的大部分研究基于软件模拟器和FPGA快速还原系统。软件模拟器的模拟速度和精度不能兼顾。基于FPGA的快速原型系统能够准确快速的模拟片上网络的各种行为,但目前各FPGA厂商和片上网络研究机构均未提供支持片上网络设计的路由器IP核,这增加了片上网络原型设计的复杂性。本文设计了一种具有完整的路由功能、统一的对外接口、灵活的参数设定、具有全面的状态监测功能的片上网络路由器IP核。该路由器IP核具有如下功能:能够连接总线和用户逻辑两种接口、路由延时可变、路由算法和数据包格式可选、缓存深度可由用户配置、能够搭建片上网络快速原型系统。该路由器IP核主要由四个功能模块组成:总线命令转换模块、延时可变路由模块(路由子模块、仲裁子模块和交换阵列模块),路由状态检测模块、用户自定义逻辑模块。本文主要通过modelsim仿真工具对所设计的路由节点各个功能模块进行了仿真,并在Xilinx的VirtexII Pro XUP的FPGA开发板上通过串口监测路由节点的状态。关键词:片上网络;拓扑结构;路由算法;路由节点;FPGA设计 东北大学本科毕业设计(论文)AbstractThe design of routing IP Core based on NoCAbstractAs the growing development of semiconductor technology and intergrated circuits, more and more IP cores integrated on one single chip. Some problems have become difficult to be solved in designing SoC based on chip bus. Firstly, synchronization of global clock is impossible.Secondly, address space is limited. Thirdly, chip bus can not support multi-node parrallel communication. As a consequence, the technology of computer networks was transplanted into SoC design to sovle systematic problems of chip bus and this has been the hot topic in research field. The scalable ability of NoC well meets the challenge of new design requirement. NoC gradually becomes a new communication structure besides traditional on-chip bus. At present most of reserrches about NoC focused on software simulator or FPGA fast prototype system. Software simulator cant guarantee the speed and accuracy at the same time. The system based on FPGA fast prototype can simulate behaviour of NoC. At present routing IP Core based on NoC isnt provided by all FPGA manufacturers and research institute to improve the complexity of NoC design. This paper designed a router with a complete routing function, unified external interface and flexible parameter settings, with a comprehensive condition monitoring function. The IP core router has the following features: the ability to connect the user logic bus and two interfaces, routing, variable delay time, optional routing algorithms and packet formats, user-configurable cache depth. The router IP core mainly consists of four functional modules: the bus command conversion module, a variable delay of the routing module (routing sub-module, the arbitration sub-module and switch martix sub-module), the routing state detection module, the user-defined interface module.The simulatin of this routing node was tested using the simulatin tool Modelsim in 3*3 Mesh topology strcture. At the same time,the state of the routing node was detected by serial port in the hardware of Xilinx VirtexII Pro XUP development board. Finally, this thesis analysed the performance and improving critical tecnology of this routing node.Key words:Network on Chip; Topology; Routing Algorithm; Routing node; FPGA Design东北大学本科毕业设计(论文)目录目录毕业设计(论文)任务书3摘要4Abstract5目录6第一章 绪论81.1 课题的提出、目的及意义81.2 国内外现状81.3 系统设计内容101.4 论文组织结构10第二章 相关技术112.1 片上总线与片上网络概述112.1.1 片上总线112.1.2 片上总线的优缺点112.1.3 片上网络122.2 FPGA技术与IP核简介172.2.1 FPGA技术简介172.2.2 IP核简介182.2.3 Xilinx ISE开发工具简介182.2.4 Xilinx EDK开发工具简介192.3 本章小结20第三章 路由器IP Core的设计与实现213.1 路由器IP Core的设计213.1.1 功能说明及模块划分213.1.2 路由器IP Core同步时序设计223.1.3 数据包的格式 233.1.4 参数化设计233.2 各功能模块的设计与实现243.2.1 总线命令转换模块243.2.2 延时可变路由模块243.2.3 路由状态监测模块293.2.4 用户自定义逻辑模块303.3 本章小结30第四章 测试与结果分析314.1 路由节点的验证流程314.2 各个功能模块仿真验证314.2.1 输入缓冲区模块仿真314.2.2 路由仲裁模块的仿真324.2.3 单一路由节点的仿真334.2.4 状态检测模块的仿真334.3 快速原型系统344.4 本章小结35第五章 结论与展望365.1 本设计的贡献和主要工作365.2 未来工作365.2.1 路由策略的进一步扩展365.2.2 延时可变路由模块的进一步扩展37参考文献38致谢40东北大学本科毕业设计(论文) 第一章绪论东北大学本科毕业设计(论文) 第一章绪论第一章 绪论本章将从课题提出的目的及意义、国内外现状、系统设计的主要内容等几个方面对本课题进行阐述。1.1 课题的提出、目的及意义随着半导体工艺和芯片技术的飞速发展,系统级芯片内能够集成越来越多的功能,导致芯片内总线结构的互连方式已经无法满足日益增长的通信需求。 20世纪末,为了解决传统总线结构带来的设计问题,国外的几个研究小组提出了一种全新的集成电路体系结构片上网络(Networks-on-chip,NoC),其主要的设计思想就是将发展的较成熟的计算机网络技术运用到芯片设计中来,以实现体系结构上的改变,从而彻底解决总线结构所带来的问题。众所周知,芯片产业在过去的几十年中一直遵守着摩尔定律,那就是每隔十八个月芯片的体积缩小一倍,芯片上晶体管的数量增加一倍,但是近几年半导体工艺很难在保持这个速度,原因是以往的速度提升主要靠器件尺寸的减小,但是到了13nm以下,线路延时开始超过门的传输延时,整个系统的延迟变得特别严重。片上网络正是为了解决传统总线架构在芯片设计上的瓶颈问题而被提出的。片上网络被预测能在科技快速发展的今天,取代传统的总线架构,从而突破芯片设计中的瓶颈,使摩尔定律继续保持下去。通常,片上网络的研究基于软件的模拟器或FPGA实现的快速原型系统。软件模拟器具有易操作的特点,但模拟速度和模拟精度无法兼顾。采用FPGA实现的快速原型系统更贴近于实际的片上网络,能够精确的模拟片上网络的各种行为。并且由于采用硬件模拟,模拟速度较快。目前各FPGA厂商和研究机构均未提供支持片上网络设计的IP(Intellectual Property)核,这增加了片上网络原型设计的复杂性。本文将设计并实现一个片上网络路由器的IP核,该IP核将具有完整的路由功能、统一的对外接口、灵活的参数设定以及全面的状态监测。该核能够使用户快速的建立所需的片上网络,为片上网络的研究带来方便。1.2 国内外现状自从二十世纪末片上网络被首次提出,在过去的十几年里,对于片上网络的研究得到了飞速的发展。路由器是片上网络的重要组成部分,也是本文要重点研究的内容。关于路由器的设计,国内外已有一些相关工作。1介绍了能准确模拟现代路由器关键技术的延时路由器模型,这种模型考虑到了现代路由器的流水线性质,以及流控可信路径的延迟和在虚拟通道上对交叉端口的共享等问题,基于这个模型,该文章提出了一种适用于随机虚拟通道的体系结构,这种体系结构相比于虫洞网络结构在一定程度上减少了路由器延时,并且用这种模型得到的仿真结果相比于虫洞路由器来说,每一跳的延时相同,但是网络中的吞吐量提升了大约40%。众所周知,基于数据包的片上网络正越来越多的被采用在复杂的片上系统设计时的同构和异构模块中,这些片上网络的体系结构不仅要求提供超低的延时,而且要占据较小的空间和尽可能小的能耗。未来在深亚微米时代中,由于加速老化和制造/测试的挑战,可靠性变得越来越重要。2中针对特定目标设计低延迟、低能耗、可靠的片上通信网络,文中提出了一种新的细粒度模块化的路由器体系结构,此架构采用解耦并行仲裁和更小的交叉电路来减小输出端口的竞争。此外,路由器采用一种全新的交换分配技术来减小仲裁深度和改善并行性,这种模块化设计允许在永久失效事件中片上网络的适度的解耦,同时也有助于减小动态能耗。2中的仿真结果表明在8*8的mesh网络中,这种体系结构在降低了4-40%的包传输延时和6-20%的能耗。随着片上系统设计中的部署的复杂程度的提升,SoC的设计受到了片上总线互连的制约。作为一种有潜力的解决方法,片上网络的提出很大程度上改善了芯片的性能和功耗。3中提出了一种利用自适应路由并且维持一个低延迟的体系结构。这个两阶段的流水线架构应用前端路由算法,随机分配和优化的输出路径选择,其中的路由算法按照阻塞的流控,做出更好的路由决策。3中的仿真结果表明这种体系结构在保持性能和片上网络功耗上面是有效的。当今,由于半导体技术进入深亚微米和纳米时代,数亿个晶体管这种复杂设计面临着诸多问题,片上网络作为一种灵活的全局通信构造以减轻芯片设计师的压力,在短期内,这种通信架构可以提供广泛的芯片通信同时也能够减少处理多周期通信的复杂程度。从长远角度来看,这个网络也可以变成优化能耗,数据传输和可调度计算的主要工具。4中设计并实现了一个低延迟的片上网络,其中的路由节点在最好的情况下可以在一个单时钟周期里路由一个分片从而减小了片上通信的延迟并且优化了缓冲资源的有效性。4只是提供了一种理论,而5则在4的基础上从关键路径上移除了控制的开销(router and arbitration logic)从而减小周期时间和延迟。5的仿真结果表明,这个控制开销的减小可以保证分片在一个单周期内被路由而且能够最大化有限的缓冲区资源的有效性。综上所述,目前片上网络的研究主要集中于体系结构和路由策略的改进,对可复用的、可配置的、能用于搭建快速原型系统的路由器IP核并没有相关研究,本文将设计并实现这种路由器IP核,期望能够为片上网络实验平台的搭建和芯片的开发提供依据和便利。1.3 系统设计内容本文将实现一个具有完整的路由功能、统一的对外接口、灵活的参数设定、具有全面的状态监测功能的片上网络路由器IP核。本文将在Xilinx的XUPV2P开发板上用VHDL硬件描述语言设计并实现一个片上网络路由器IP核以及用该IP核搭建的片上网络快速原型系统。利用EDK和ISE在FPGA上搭建片上网络原型系统以实现此IP核的基本逻辑功能路由,同时将通过读写RAM的方式实现对路由器的监测状态的存储和读取,另外还要对此核进行基本的封装,使其具有统一的对外接口和灵活的参数设定。最后,要用该IP核搭建片上网络快速原型系统,以测试该IP的功能。1.4 论文组织结构第一章主要介绍本文中设计的片上网络路由器IP核的背景、目的以及国内外现状、系统设计内容等。第二章主要介绍与本文设计的路由器IP核相关的知识和技术,便于系统设计与实现章节的阐述。第三章从整体和局部阐述了整体路由器IP核的设计与实现,以及各个模块的设计思想和实现过程。第四章主要通过modelsim仿真和硬件电路调试验证了本文所设计的路由器IP核的正确性和可用性。第五章主要介绍了整个毕业设计阶段的主要工作和未来工作中需要对此路由器IP核进行改善和提高的不足之处。37东北大学本科毕业设计(论文)第二章 相关技术第二章 相关技术本章主要介绍了与本文相关的各种技术,其中包括片上总线与片上网络的概述、FPGA技术与IP核简介、仿真工具与设计平台等。2.1 片上总线与片上网络概述2.1.1 片上总线 随着超大规模集成电路的迅速发展,半导体工业进入深亚微米时代,器件特征尺寸越来越小,芯片规模越来越大,可以在单芯片上集成上百万到数亿只晶体管。如此密集的集成度使我们现在能够在一小块芯片上把以前由CPU和若干I/O接口等数块芯片实现的功能集成起来,由单片集成电路构成功能强大的、完整的系统(SoC-片上系统)。通常,SoC的设计中需要大量的IP核复用,因为这种技术减少了大型系统设计的复杂度。而(On-Chip Bus-片上总线)是实现SoC中IP核连接最常见的技术手段,它以总线方式实现IP核之间数据通信。相比传统的板上系统,片上总线不用驱动底板上的信号和连接器,使用更简单,速度更快。一个片上总线规范一般需要定义各个模块之间初始化、仲裁、请求传输、响应、发送接收等过程中驱动、时序、策略等关系。 众所周知,基于IP核设计的SoC是面相互连的,因此互连通信技术将成为IP核设计的关键性技术。通常,我们熟悉的互连通信结构有三种:总线互连,点到点互连,片上网络互连。图1具体展示了上述三种互连通信结构。 (1)总线互连 (2)点对点互连 (3)片上网络互连图2.1 三种基本的互连通信结构2.1.2 片上总线的优缺点片上总线的意义在于SoC中各个CPU Core,IP Core间的互联通讯,对于大规模SoC设计而言也是性能瓶颈所在。其主要优点如下:(1)简化了硬件的设计:便于采用模块化结构设计方法,面向总线的微型计算机设计只要按照这些规定制作cpu插件、存储器插件以及I/O插件等,将它们连入总线就可工作,而不必考虑总线的详细操作。(2)简化了系统结构:整个系统结构清晰。连线少,底板连线可以印制化。采用总线结构的缺点是利用总线传送具有分时性。当有多个主设备同时申请总线的使用是必须进行总线的仲裁。然而随着微电子技术的发展,CMP逐渐朝着多核化(几十或上百个核)和异构化(即包含不同类型的核)的方向发展,传统的总线结构面临的诸多问题,逐渐成为了影响CMP性能的主要瓶颈。问题如下所述:(1)带宽限制:总线是一种共享介质的互连结构,某一时刻只允许一个设备使用总线。仲裁逻辑允许高优先级的设备获得总线的使用权,在总线被占用期间,所有其他的请求被阻塞,直到总线空闲。如果成百上千个IP核争用一条总线,结果难以想象。这就导致了系统并发性能低和吞吐率低。(2)全局同步:全局连线上的信号延迟决定了系统的时钟周期,并且全局时钟会带来时钟歪斜的问题,驱动遍布整个芯片的全局时钟信号线需要消耗很多的能量,为了保持甚至提高系统的时钟频率,解决时钟歪斜问题,和解决庞大时钟树所带来的功耗问题,未来大规模多核的SoC设计必须使用全局异步局部同步(Global Asynchronous Local Synchronous, GALS)机制,每一个代理模块工作在自己的时钟域,而不同的资源节点之间则通过片上互连网络进行异步通讯。(3)信号集成度:更低的电源电压,更小的线宽,使得整个VLSI系统对电流中的噪声更加敏感。而共享介质上的更多功能部件则进一步加重了噪声。(4)信号延迟:随着特征尺寸的下降,连线延迟成为影响信号延迟的主要因素。总线结构是全局控制的。在10亿晶体管时代,全局的线延迟会大于时钟周期。总线结构的全局连线使得时钟的偏移很难管理。为了突破片上总线在大规模SoC系统上的瓶颈,片上网络这个通信结构被提出已解决上述传统总衔接够面临的问题。2.1.3 片上网络自上个世纪90代末片上网络的概念被提出以来,它被认为是未来集成工艺下多核技术发展的必然方向。因为基于片上网络的系统能够很好的适应大规模SoC设计中常用的全局异步局部同步的时钟机制。其独特的片上通信架构最早来自于并行计算机的互连网络,但不同的是片上网络是一个芯片上的网络,所以片上网络几乎所有的拓扑结构都能在计算机网络中找到相应的原型,这样对片上网络的研究提供了很大的方便。片上网络以其诸多的特点和优势成为研究的热点,具体优势有如下几个方面:(1)片上网络可以跨越同步和异步时钟域或者使用不受时间约束的异步逻辑。片上网络将计算机网络原理和方法应用于芯片上的设计,相比于传统的芯片设计方法提高了系统芯片的可扩展性并且降低了芯片的功率和能耗。(2)片上网络的电路的链接中有许多共享的信号。因为所有链接可以同时传送不同的数据包,从而可以实现数据的并行化,这相比于传统的总线通信架构对吞吐量和可扩展性有了很好的改善。(3)片上网络实现了计算节点和通信节点的隔离,通过一个标准接口支持模块化和IP复用,为系统测试和芯片开发提供了便利的服务,因此提高了工程效率。下面将分别介绍片上网络的拓扑结构、包交换技术、路由策略和映射。2.1.3.1 片上网络的拓扑结构所谓的片上网络拓扑结构就是指片上网络中各个节点之间的相互连接方式。片上网络的拓扑在片上网络体系结构中是十分重要的部分,因为它直接决定了片上网络中所采用的路由方式,仲裁算法以及IP核的分布。通常片上网络拓扑结构分为两类,一类是直接型网络拓扑,另一类是间接型网络拓扑。因为本论文是基于直接型网络拓扑中的2D Mesh做的片上网络快速还原系统和IP核,所以在此详细介绍一下2D Mesh。二维网状网络(2D Mesh)是目前片上网络研究中最常用的拓扑结构。其结构是每个资源和一个通讯节点相连,而一个通讯节点与四个相邻的通讯节点和一个资源相连。通讯节点是路由功能,并作为每个相邻的资源节点的网络接口。本论文实验所做的IP核就是基于2D Mesh结构上实现路由功能的通讯节点。图2.2给出了一个4*4的2D Mesh 结构。图2.2 4*4的2D Mesh结构其中的IP模块可以是芯片上的处理器核,内存,也可以是用户自定义的逻辑电路。路由器与路由器之间,路由器与IP模块之间是由一对输入输出通道连接,这种连接可以实现数据传输时的良好并行性。在众多拓扑结构中,规则的2D Mesh结构并不是最优的,但其以结构简单,易于实现和良好的复用性等特点,被大多数片上网络研究人员采用。总的来说,直接型拓扑结构部署简单,可扩展性强,便于设计简单高效的路由算法。2.1.3.2 片上网络的包交换技术 片上网络上的包交换和计算机网络中的包交换原理上大致相同,都是将数据包按照特定方法从输入端口交换到输出端口,片上网络系统内常用的包交换技术主要有四种:存储转发(Store-and-Forward)、虚拟直通(Virual Cut Though)、虫洞路由(Wormhole Routing)和偏转路由(Deflection Routing)。下面分别介绍上述几种包交换技术的相关概念和问题。(1)存储转发是先将数据完全存储,然后进行路由决策,最后在转发到下一个节点的交换机制。这种交换方式能够保证传输过程中数据的完整性,但是在片上网络系统中需要较大的存储空间,同时又存在较大的延迟。(2)虚拟直通是将数据包划分为多个flit,并按顺序排好,将所需的路由信息放入head filt(头微片,后续微片成为数据微片),其余的flits跟随head之后,以“流水”的方式通过网络中的路由节点。当发生阻塞时,数据包就存储于发生阻塞的路由节点缓存中,这样每个路由节点只需要一个数据包大小的缓存空间即可,从而节省了大量的缓存资源。图2.4就是将数据包分片然后通过交换电路传输出去的流程。图2.4. 数据包分片示意图(3)虫洞路由是目前片上网络中的主流交换机制,它和虚拟直通的思想基本相同,传输数据时也分被分为多个flit,当传输head flit时,路由节点选择一条最优路径,记录下数据包类型,并保持路径通畅,知道整个数据包flit传输完毕。在网络中没有阻塞的情况下,虚拟直通和虫洞路由是完全一样的。两者的区别是发生阻塞是对被阻塞的数据包的处理:虚拟直通是将整个数据包存储在缓冲区中;而虫洞路由是将各个flit分散到各个节点存储。(4)偏转路由并不缓存任何数据包,所有进来的数据包被立即转发,这样不需要为一个特定数据包保持一条通路,一个数据包中的不同分片可以同时传输,提高了系统利用率。当接收数据时,分片到达顺序可能不同于发送顺序,这就需要为每个分片编号,再接收端重新组装。此方式的网络接口设计较为复杂,同时需要一个良好的拥塞控制方式来避免数据的丢失和重传。2.1.3.3 片上网络的路由策略片上网络的路由策略要选择一条最合适的路径将数据包从源地址发送到目的地址。通常,路由算法按照不同的标准可以分为如下几类:确定性路由、自适应路由、部分自适应路由。本文的路由算法是基于确定性路由中的XY、YX和XY-YX维序路由算法。表2.1 一种二位网格的维序路由机制方向条件西(-x)x0南(-y)x=0,y0本地处理器x=0,y=0确定性路由的路由路径只与源地址和目的地址有关,只要数据包中的源地址和目的地址确定了,与当前的网络状态无关。而典型的确定性路由就是维序路由,在维序路由中,每个数据包一次只在一个维上路由,当在这个维上到达了恰当的坐标后,才按由低维到高维的顺序在另外的维上路由。表1则为XY维序路由算法的具体示意图,简要概括,XY维序路由算法是先X方向,后Y方向传送数据包。YX维序路由算法不同于XY的是先Y方向,后X方向传送数据包。而XYYX路由算法是根据当前节点和目的节点的坐标来确定数据包的传送方向。 自适应路由其主要特点就是路由路径除了与源地址和目的地址有关外,还与网络的状态有关。即对同一源/目的地址的数据包,在不同的网络状态下,它们的路由路径有可能不同。其中主要包括Christopher提到的旋转模型路由和Chiu提到的奇偶旋转模型路由6。这两种路由算法不仅体现了自适应路由的提高网络带宽饱和值的特性,而且还避免了自适应路由在网络拥塞情况下的死锁问题7.部分自适应的路由算法9-11被Hu提出。该算法将XY算法与自适应算法相结合,当网络未发生拥塞时,使用XY路由算法,获得低的传输时延;当网络发生拥塞时,使用自适应的FCFS 路由算法避免拥塞。2.1.3.4 片上网络的映射片上网络是解决片上系统之间各个IP核通信的主要方法。其中片上网络的映射是整个片上网络设计过程中最为关键的步骤之一。映射结果的好坏直接影响体系结构的性能。片上网络的映射问题由Hu等人首次提出12。该论文解决了一组应用映射到一个规则片上网络上的问题,文中提出的映射算法同时考虑了应用性能和能源消耗的优化问题。在该论文中作者首先用形式化的方法对映射问题建模,之后采用分支定界的方法通过限制映射搜索序列的长度来解决映射状态空间爆炸的问题。Hu将以上的映射算法扩展到不规则片上网络和固定IP(Intellectual Property)的设计中13.之后又有很多学者对片上网络映射算法做了研究,如两步遗传算法、进化技术算法以及蚁群算法等.使用这些启发式算法进行片上网络映射后,映射往往存在停滞现象或搜索速度慢等缺陷。而14在基本蚁群映射算法中引入了遗传算法及解变换等优化策略并得到了更好的优化结果。2.2 FPGA技术与IP核简介2.2.1 FPGA技术简介FPGA是英文Field Progranmmable Gate Array的缩写,即现场可编程门阵列,是一种新兴的可编程逻辑器件,同时也是PLD(Programmable Logic Device)与ASIC(Application Specific Intergrated Circuits)两种技术相结合的成果。与SPLD和CPLD相比,具有更高的密度,更快的工作速度和更大的编程灵活性,被广泛应用在各种电子类产品中。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,所以在调试期间可用下载电缆配置芯片,调试完成后,将数据固化在专用的EPROM中。图2.5. FPGA的基本结构由于本文的实验是基于Xilinx的VirtexII pro系列的FPGA器件,所以在此介绍一下Xilinx公司FPGA的内部结构,如图5所示,典型的FPGA主要由三部分组成:可配置逻辑块CLB,可编程输入输出块IOB,可编程内部连线PI。其中CLB是FPGA的基本逻辑单元,它提供了用户所需要的逻辑功能:函数功能发生器、配置RAM功能、快速进位逻辑。通常规则的排列成一个阵列,散布于整个芯片;IOB是为芯片外部引脚或内部逻辑提供接口的模块,它可编程为输入、输出、双向三种方式,通常排列于芯片的四周;PI是带有可编程节点和开关矩阵的内部金属线段,这些线段为内部各个CLB,IOB提供了连线资源,构成特定功能的电路。改变各个CLB的功能或改变各个CLB与IOB的连接组合都能改变整个芯片的功能。由此可见,FPGA的功能是非常强大和灵活的。2.2.2 IP核简介 IP(Intellectual Property)就是我们常说的知识产权,IP核(IP core)就是将一些在数字电路中常用但比较复杂的功能块,设计成可修改参数的通用模块,这样其他用户可以直接调用这些模块,方便地构建不同系统。 广义上来说,IP核可以采用软核和硬核两种形式提供给客户,这两种方式可以帮助用户获得在功能上经过验证的设计。软核也被称为可综合内核,需要由客户进行综合,并在其SoC上实现。而硬核则已完全实现(完成了版图设计),可以直接用于制造。从技术上来说,一种设计只有生产后才能实现,但是在使用硬核的情况下,实现的意思是指安排布局并可直接投入生产,而用户只需将硬核像单个集成电路片那样植入芯片即可,较之软核方式更为简单。在FPGA行业,还存在一种介于软核与硬核之间的固核,这种IP核针对摸个系列的FPGA进行布线、优化,以网表的形式提供给用户,习惯上也认为固核属于硬核范畴。硬核具有速度快、效率高、使用简便等优点,但针对性非常强。软核具有技术独立性和可移植性强、定制性强,易于集成等优点,但效率相对较低。在FPGA设计中,大部分可使用的IP核以软核的形式提供,少部分以固核的形式提供,也有个别以硬核形式提供,如Power-PC405处理器核。2.2.3 Xilinx ISE开发工具简介图2.6 ISE 开发设计流程Xilinx ISE具有界面良好、操作简单的特点。ISE提供了包括代码编写、库管理以及HDL综合、仿真、下载等几乎所有FPGA开发所需的功能。ISE开发流程大概分为设计输入、综合、仿真、实现和下载等五部分。如图6所示。 (1)图形或文本输入(Design Entry)常用的设计输入方法是硬件描述语言和原理图设计输入方法。原理图输入是一种常用的基本的输入方法,其是利用元件库的图形符号和连接线在ISE的图形编辑器中作出设计原理图。硬件描述语言输入是利用HDL编辑器进行自顶而下的设计输入方法,较之原理图输入,有可移植性好,通用性强等优点。(2)综合(Synthesis)综合是将行为和功能层次表达的电子系统转化为低层次模块的组合。一般来说,综合是针对VHDL来说的,即将VHDL描述的模型、算法、行为和功能描述转换为FPGA/CPLD基本结构相对应的网表文件,即构成对应的映射关系。(3)仿真(Implementation)ISE常使用的仿真工具主要由Modelsim和测试激励生成器等。Modelsim是一个独立的仿真工具,ISE集成开发环境为Modelsim预留了软件接口,通过该接口可以从ISE直接启动Modelsim工具进行仿真。仿真包括综合后仿真和功能仿真,功能仿真就是对设计电路的逻辑功能通过Modelsim等仿真工具进行模拟测试,通常是通过时序图显示输入信号与输出信号的关系。(4)实现(Verification)实现是根据所选的芯片的型号将综合输出的逻辑网表适配到具体器件上。ISE的实现过程分为:翻译、映射、布局布线三个步骤。(5)下载(Download)下载就是将已经仿真实现的程序下载到开发板上,进行在线调试。2.2.4 Xilinx EDK开发工具简介EDK是Embedded Development Kit的缩写,即嵌入式开发套件。Xilinx在EDK集成开发环境中,为设计人员提供了使用方便而完备的软件编译调试工具。主要包括XPS工具和SDk工具,XPS工具完成主要软/硬件设计调试工作,SDK工具用于设计和调试应用软件。利用EDK进行设计的完整流程包括硬件设计与调试,软件设计与调试,以及仿真等。具体流程图如图2.7所示。(1)硬件设计与调试 1)创建硬件平台。 2)定制IP核,用户自主设计符合需求的专用外设。 3)生成硬件流文件,生成网表和比特流文件。 4)下载硬件流文件,使用JTAG编程电缆烧录在FPGA上。 5)生成仿真文件,可选择行为级、结构级、时序级仿真方式。(2)软件设计与调试 1)设置软件属性,使用EDK工具确定软件的操作系统、库、外设驱动等属性。 2)生成可执行软件代码,编译并生成elf格式的可执行代码。 3)生成BSP和库文件。 4)使用XMD工具调试,通过JTAG编程电缆在线调试,下载可执行软件代码,控制执行,并监控相关信息。图2.7 EDK设计流程图2.3 本章小结本章主要从片上总线与片上网络的概述、FPGA技术与IP核简介、仿真工具与设计平台等方面对本课题中要涉及到的相关理论背景及技术进行了简要介绍,同时针对其中的每一方面又分小节有所侧重地做了详细说明,便于后续章节中相关内容的阐述。东北大学本科毕业设计(论文)第三章 路由器IP Core的设计与实现 第三章 路由器IP Core的设计与实现本章主要介绍了路由器IP Core的设计与实现,其中包括路由器IP Core的模块的划分、各个功能模块的设计与实现、设计中涉及到的算法与思想等。3.1 路由器IP Core的设计此路由器IP核是基于Xilinx公司的VirtexII Pro XUP的实验板设计的,主要采用VHDL硬件描述语言设计并实现一个路由器IP核以及用该IP核搭建的片上网络快速原型系统。利用EDK和ISE在FPGA上搭建硬件模型以实现此IP核的基本逻辑功能-路由。该IP核是人们广义上定义的软核,因此,此IP核的设计就应该体现出软核的灵活性、可移植、可定制性等特点。对不同的网络拓扑结构与不同的路由算法,网络路由单元的结构会有所不同,本实验将针对较为直观、且最常用的2D Mesh网络结构进行设计。为了满足以上特点,同时又因为FPGA有丰富的系统资源,所以我们采用了一种基于存储转发的路由策略,该结构有如下特点:控制结构简单、系统开销小;提供基于优先级调度的确保通信服务,为片上网络提供更高的服务质量;采用维序路由算法,以避免死锁的发生;提供统一的对外接口、灵活的参数设定,方便快速建立用户所需的片上网络;采用局部同步设计思想,以消除电路中可能产生的毛刺现象。3.1.1 功能说明及模块划分该路由器IP核具有如下功能:能够连接总线和用户逻辑两种接口、路由延时可变、路由算法和数据包格式、缓存深度可由用户配置、能够搭建片上网络快速原型系统。如图3.1所示,根据IP核要实现的功能,本IP核可以分成四个功能模块,各个模块所要完成的功能如下:(1)总线命令转换功能总线命令转换模块通过总线接口将Power PC处理器发来的数据包暂存在用户可见的寄存器中,并按照时序转换规则将其转化为该路由器IP核可识别的时序命令,同时还可将路由器IP核接收的时序命令转化为数据包存放于寄存器中。这样,用户就能够从相应的寄存器中将接收到的数据包读取出来。(2)延时可变路由功能延时可变路由器主要由两部分组成,一部分是快速的路由模块,另一部分是延时模块,其中,快速路由模块是实现具体的路由功能,主要由三部分构成:输入缓冲区、路由仲裁模块、交换阵列。当其接收到直连接口和总线接口发来的数据包后,首先将数据包路由信息(源地址、目的地址、数据包ID)从数据包提取出来,发送至路由仲裁模块,若仲裁出的输出端口空闲,则将这个数据包通过交换阵列由此端口发送出去,若忙碌,则等待直至输出端口空闲。快速路由模块在没有输出端口竞争的情况下会在三个时钟上升完成沿将数据包转发出去的工作,第一个时钟上升沿在输入缓冲区用于对输入端口的数据包的缓存,第二个时钟上升沿在路由仲裁模块用于对输入数据包的路由,第三个时钟上升沿在交换阵列用于将数据包发送至输出端口。而延时模块是根据用户设定的时间进行延时,延时之后将执行路由功能。另外,此路由器又是可变的,即用最短的时间完成所需的功能,若用户设定的时间比完成功能的时间长,则用延时模块延时到用户设定的时间。与其它路由器接口状态读取接口用户自定义接口总线接口延时可变 路由器总线命令转换监测状态存储 图3.1 IP核设计框图(3)监测状态存储功能监测状态监测模块通过开发板上的双口RAM将路由器IP核中的数据包ID、数据包接收时刻、数据包发出时刻进行存储,用户可以通过另一个接口将存储的内容读取出来以便实时监测。(4)用户自定义逻辑功能如图8所示,此路由器IP核有两种接口,一种是总线接口,另一种是用户自定义逻辑。设计这种接口有两个目的,一是实验所用开发板上的的硬处理器核PPC只有两个,要是仅仅使用两个PPC来发送数据包,显然搭建片上网络快速原型系统是明显不够的。另一目的是因为用户自定义逻辑完全是采用纯逻辑电路设计的,所以此路由器IP Core既可以使用在具有处理器的系统中,又可以使用在纯逻辑电路系统中了.3.1.2 路由器IP Core同步时序设计数字时序电路一般分为异步时序和同步时序。异步时序电路采用组合逻辑,它的特点是任意时刻的稳定输出仅取决于该时刻的输入信号,而与时钟信号没有任何关系。同步时序电路一般采用触发器,它的特点是任一时刻的输出不仅决定于该时刻的输入,而且和电路的原状态有关。通常,它的输出逻辑被同一个时钟的上升沿(或者下降沿)控制。异步逻辑的输出会由于不同信号到达最后一个组合逻辑单元传输延迟的不同而产生毛刺现象。而由于时钟端口、清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能使系统出错。因此,在IP Core的设计中尽可能使用同步电路。在此IP Core的硬件电路设计中,输入缓冲区的数据存储和读取、路由仲裁中的定时器以及交换阵列的数据交换都发生在时钟上升沿,来实现信号的同步。因此,每个路由节点从数据包的接收到数据包的转发大概需要3个时钟的延迟。3.1.3 数据包的格式 8bit8bitHeaderSource dataDataSA DAID Data Data Data32bitHeaderSource DataSADA IDData Data32bit 图3.2 数据包格式示意图由于VirtexII Pro XUP开发板总线PLB具有64位数据总线,支持32/64位主从操作。为了搭建不同规模的片上网络快速原型系统,应该尽量减少每个IP核占用的开发板资源。所以,此IP核的设计采用32位的数据包。在header中,包括源地址SA(Source Address)、目的地址DA(Destination Address)和数据包ID。其中数据包ID用来唯一标识某一数据包,以便状态检测模块能够记录哪个数据包何时到达何时发出这个状态,这样,在数据包的传输过程中,就可以实时记录一些状态量,保证最后统计结果的有效性。源地址和目的地址则是被路由算法进行译码后判定路由路径使用的。其余bit位则是我们要发送的源数据。本文所采用的数据包格式分为两种,如图3.2所示。用户可根据其需要搭建的网络大小选择数据包格式,第一种数据包的SA、DA地址各占4个bit位,适用于4*4一下规模的片上网络快速原型系统,而第二种数据包格式的SA、DA地址各占8位,能够支持此IP核

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论