片上网络路由器IP核的设计与实现

更新时间:2024-01-30 22:56:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

片上网络路由器IP核的设计与实现

作 者 姓 名: 指 导 教 师: 学 院 名 称: 专 业 名 称:

2011年6月

信息科学与工程学院 电子信息工程

Design and realization of the routing IP

Core based on NoC

by

Supervisor:

June 2011

东北大学本科毕业设计(论文) 毕业设计(论文)任务书

毕业设计(论文)任务书

毕业设计(论文)题目: 片上网络路由器IP核的设计与实现 设计(论文)的基本内容: 本课题将在Xilinx的XUPV2P开发板上用VHDL硬件描述语言设计并实现一个片上网络路由器IP核以及用该IP核搭建的片上网络快速原型系统。利用EDK和ISE在FPGA上搭建易硬件模型以实现此IP核的基本逻辑功能—路由,同时将通过读写RAM的方式实现对路由器的监测状态的存储和读取,另外还要对此核进行基本的封装,使其具有统一的对外接口和灵活的参数设定。最后,要用该IP核搭建片上网络快速原型系统,以测试该IP的功能。 毕业设计(论文)专题部分: 题目: 设计或论文专题的基本内容: 学生接受毕业设计(论文)题目日期 第 周 指导教师签字: 年 月 日

I

东北大学本科毕业设计(论文) 摘要

片上网络路由器IP核的设计与实现

摘要

随着半导体技术以及集成电路技术的飞速发展,单个芯片中IP(Intellectual Property)核数量越来越多。这时基于片上总线的SoC(System-on-a-Chip)在设计上遇到了全局时钟难以同步、地址空间有限、无法支持多节点并行通信等问题。将计算机网络技术引入SoC设计领域,以片上网络的形式从体系结构上彻底解决上述问题已成为该领域的研究热点。片上网络的可升级和易扩展性很好的满足了新设计的要求,并逐渐发展成为片上总线之外的一种新的通信结构。目前片上网络的大部分研究基于软件模拟器和FPGA快速还原系统。软件模拟器的模拟速度和精度不能兼顾。基于FPGA的快速原型系统能够准确快速的模拟片上网络的各种行为,但目前各FPGA厂商和片上网络研究机构均未提供支持片上网络设计的路由器IP核,这增加了片上网络原型设计的复杂性。

本文设计了一种具有完整的路由功能、统一的对外接口、灵活的参数设定、具有全面的状态监测功能的片上网络路由器IP核。该路由器IP核具有如下功能:能够连接总线和用户逻辑两种接口、路由延时可变、路由算法和数据包格式可选、缓存深度可由用户配置、能够搭建片上网络快速原型系统。该路由器IP核主要由四个功能模块组成:总线命令转换模块、延时可变路由模块(路由子模块、仲裁子模块和交换阵列模块),路由状态检测模块、用户自定义逻辑模块。

本文主要通过modelsim仿真工具对所设计的路由节点各个功能模块进行了仿真,并在Xilinx的VirtexII Pro XUP的FPGA开发板上通过串口监测路由节点的状态。

关键词:片上网络;拓扑结构;路由算法;路由节点;FPGA设计

II

东北大学本科毕业设计(论文) Abstract

The design of routing IP Core based on NoC

Abstract

As 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 can’t 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 isn’t 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

III

东北大学本科毕业设计(论文) 目录

目录

毕业设计(论文)任务书 ....................................................................................................... I 摘要 ........................................................................................................................................... 2 Abstract .................................................................................................................................... 3 目录 ........................................................................................................................................... 4 第一章 绪论 ........................................................................................................................ - 1 - 1.1 课题的提出、目的及意义 ....................................................................................... - 1 - 1.2 国内外现状 ............................................................................................................... - 1 - 1.3 系统设计内容 ........................................................................................................... - 3 - 1.4 论文组织结构 ........................................................................................................... - 3 - 第二章 相关技术 ..................................................................................................................... 4 2.1 片上总线与片上网络概述 ............................................................................................ 4 2.1.1 片上总线 ................................................................................................................. 4 2.1.2 片上总线的优缺点 ................................................................................................. 4 2.1.3 片上网络 ................................................................................................................. 5 2.2 FPGA技术与IP核简介 ................................................................................................ 9 2.2.1 FPGA技术简介 ....................................................................................................... 9 2.2.2 IP核简介 ............................................................................................................... 10 2.2.3 Xilinx ISE开发工具简介 ...................................................................................... 11 2.2.4 Xilinx EDK开发工具简介 .................................................................................... 12 2.3 本章小结 ...................................................................................................................... 13 第三章 路由器IP Core的设计与实现 ................................................................................ 14 3.1 路由器IP Core的设计 ................................................................................................ 14 3.1.1 功能说明及模块划分 ........................................................................................... 14 3.1.2 路由器IP Core同步时序设计 ............................................................................. 16 3.1.3 数据包的格式 ..................................................... 16 3.1.4 参数化设计 ........................................................................................................... 17 3.2 各功能模块的设计与实现 .......................................................................................... 17

IV

东北大学本科毕业设计(论文) 目录

3.2.1 总线命令转换模块 ............................................................................................... 18 3.2.2 延时可变路由模块 ............................................................................................... 18 3.2.3 路由状态监测模块 ............................................................................................... 24 3.2.4 用户自定义逻辑模块 ........................................................................................... 25 3.3 本章小结 ...................................................................................................................... 26 第四章 测试与结果分析 ....................................................................................................... 27 4.1 路由节点的验证流程 .................................................................................................. 27 4.2 各个功能模块仿真验证 .............................................................................................. 27 4.2.1 输入缓冲区模块仿真 ........................................................................................... 27 4.2.2 路由仲裁模块的仿真 ........................................................................................... 28 4.2.3 单一路由节点的仿真 ........................................................................................... 29 4.2.4 状态检测模块的仿真 ........................................................................................... 29 4.3 快速原型系统 .............................................................................................................. 30 4.4 本章小结 ...................................................................................................................... 31 第五章 结论与展望 ............................................................................................................... 32 5.1 本设计的贡献和主要工作 .......................................................................................... 32 5.2 未来工作 ...................................................................................................................... 32 5.2.1 路由策略的进一步扩展 ....................................................................................... 32 5.2.2 延时可变路由模块的进一步扩展 ....................................................................... 33 参考文献 ................................................................................................................................. 34 致谢 ......................................................................................................................................... 36

V

东北大学本科毕业设计(论文) 第一章绪论

第一章 绪论

本章将从课题提出的目的及意义、国内外现状、系统设计的主要内容等几个方面对本课题进行阐述。

1.1 课题的提出、目的及意义

随着半导体工艺和芯片技术的飞速发展,系统级芯片内能够集成越来越多的功能,导致芯片内总线结构的互连方式已经无法满足日益增长的通信需求。 20世纪末,为了解决传统总线结构带来的设计问题,国外的几个研究小组提出了一种全新的集成电路体系结构片上网络(Networks-on-chip,NoC),其主要的设计思想就是将发展的较成熟的计算机网络技术运用到芯片设计中来,以实现体系结构上的改变,从而彻底解决总线结构所带来的问题。

众所周知,芯片产业在过去的几十年中一直遵守着摩尔定律,那就是每隔十八个月芯片的体积缩小一倍,芯片上晶体管的数量增加一倍,但是近几年半导体工艺很难在保持这个速度,原因是以往的速度提升主要靠器件尺寸的减小,但是到了13nm以下,线路延时开始超过门的传输延时,整个系统的延迟变得特别严重。片上网络正是为了解决传统总线架构在芯片设计上的瓶颈问题而被提出的。片上网络被预测能在科技快速发展的今天,取代传统的总线架构,从而突破芯片设计中的瓶颈,使摩尔定律继续保持下去。

通常,片上网络的研究基于软件的模拟器或FPGA实现的快速原型系统。软件模拟器具有易操作的特点,但模拟速度和模拟精度无法兼顾。采用FPGA实现的快速原型系统更贴近于实际的片上网络,能够精确的模拟片上网络的各种行为。并且由于采用硬件模拟,模拟速度较快。目前各FPGA厂商和研究机构均未提供支持片上网络设计的IP(Intellectual Property)核,这增加了片上网络原型设计的复杂性。本文将设计并实现一个片上网络路由器的IP核,该IP核将具有完整的路由功能、统一的对外接口、灵活的参数设定以及全面的状态监测。该核能够使用户快速的建立所需的片上网络,为片上网络的研究带来方便。

1.2 国内外现状

自从二十世纪末片上网络被首次提出,在过去的十几年里,对于片上网络的研究得到了飞速的发展。路由器是片上网络的重要组成部分,也是本文要重点研究的内容。关于路由器的设计,国内外已有一些相关工作。[1]介绍了能准确模拟现代路由器关键技术

- 1 -

东北大学本科毕业设计(论文) 第一章绪论

的延时路由器模型,这种模型考虑到了现代路由器的流水线性质,以及流控可信路径的延迟和在虚拟通道上对交叉端口的共享等问题,基于这个模型,该文章提出了一种适用于随机虚拟通道的体系结构,这种体系结构相比于虫洞网络结构在一定程度上减少了路由器延时,并且用这种模型得到的仿真结果相比于虫洞路由器来说,每一跳的延时相同,但是网络中的吞吐量提升了大约40%。

众所周知,基于数据包的片上网络正越来越多的被采用在复杂的片上系统设计时的同构和异构模块中,这些片上网络的体系结构不仅要求提供超低的延时,而且要占据较小的空间和尽可能小的能耗。未来在深亚微米时代中,由于加速老化和制造/测试的挑战,可靠性变得越来越重要。[2]中针对特定目标设计低延迟、低能耗、可靠的片上通信网络,文中提出了一种新的细粒度模块化的路由器体系结构,此架构采用解耦并行仲裁和更小的交叉电路来减小输出端口的竞争。此外,路由器采用一种全新的交换分配技术来减小仲裁深度和改善并行性,这种模块化设计允许在永久失效事件中片上网络的适度的解耦,同时也有助于减小动态能耗。[2]中的仿真结果表明在8*8的mesh网络中,这种体系结构在降低了4-40%的包传输延时和6-20%的能耗。

随着片上系统设计中的部署的复杂程度的提升,SoC的设计受到了片上总线互连的制约。作为一种有潜力的解决方法,片上网络的提出很大程度上改善了芯片的性能和功耗。[3]中提出了一种利用自适应路由并且维持一个低延迟的体系结构。这个两阶段的流水线架构应用前端路由算法,随机分配和优化的输出路径选择,其中的路由算法按照阻塞的流控,做出更好的路由决策。[3]中的仿真结果表明这种体系结构在保持性能和片上网络功耗上面是有效的。

当今,由于半导体技术进入深亚微米和纳米时代,数亿个晶体管这种复杂设计面临着诸多问题,片上网络作为一种灵活的全局通信构造以减轻芯片设计师的压力,在短期内,这种通信架构可以提供广泛的芯片通信同时也能够减少处理多周期通信的复杂程度。从长远角度来看,这个网络也可以变成优化能耗,数据传输和可调度计算的主要工具。[4]中设计并实现了一个低延迟的片上网络,其中的路由节点在最好的情况下可以在一个单时钟周期里路由一个分片从而减小了片上通信的延迟并且优化了缓冲资源的有效性。[4]只是提供了一种理论,而[5]则在[4]的基础上从关键路径上移除了控制的开销(router and arbitration logic)从而减小周期时间和延迟。[5]的仿真结果表明,这个控制开销的减小可以保证分片在一个单周期内被路由而且能够最大化有限的缓冲区资源的有效性。

- 2 -

东北大学本科毕业设计(论文) 第一章绪论

综上所述,目前片上网络的研究主要集中于体系结构和路由策略的改进,对可复用的、可配置的、能用于搭建快速原型系统的路由器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核进行改善和提高的不足之处。

- 3 -

东北大学本科毕业设计(论文) 第二章 相关技术

第二章 相关技术

本章主要介绍了与本文相关的各种技术,其中包括片上总线与片上网络的概述、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)简化了硬件的设计:便于采用模块化结构设计方法,面向总线的微型计算机设计

4

东北大学本科毕业设计(论文) 第二章 相关技术

只要按照这些规定制作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设计中常用的全局异步局部同步的时钟机制。其独特的片上通信架构最早来自于并行计算机的互连网络,但不同的是片上网络是一个芯片上的网络,所以片上网络几乎所有的拓扑结构都

5

东北大学本科毕业设计(论文) 第二章 相关技术

能在计算机网络中找到相应的原型,这样对片上网络的研究提供了很大的方便。片上网络以其诸多的特点和优势成为研究的热点,具体优势有如下几个方面:

(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 结构。

RIPIPRIPRIPRRIPRIPIPRIPRRIPIPRIPIPRRIPIPRRIPRIPR

图2.2 4*4的2D Mesh结构

6

东北大学本科毕业设计(论文) 第二章 相关技术

其中的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就是将数据包分片然后通过交换电路传输出去的流程。

Packettailbodybodyheadtailbodybodyheadswitchswitchswitchswitch

图2.4. 数据包分片示意图

(3)虫洞路由是目前片上网络中的主流交换机制,它和虚拟直通的思想基本相同,

7

东北大学本科毕业设计(论文) 第二章 相关技术

传输数据时也分被分为多个flit,当传输head flit时,路由节点选择一条最优路径,记录下数据包类型,并保持路径通畅,知道整个数据包flit传输完毕。在网络中没有阻塞的情况下,虚拟直通和虫洞路由是完全一样的。两者的区别是发生阻塞是对被阻塞的数据包的处理:虚拟直通是将整个数据包存储在缓冲区中;而虫洞路由是将各个flit分散到各个节点存储。

(4)偏转路由并不缓存任何数据包,所有进来的数据包被立即转发,这样不需要为一个特定数据包保持一条通路,一个数据包中的不同分片可以同时传输,提高了系统利用率。当接收数据时,分片到达顺序可能不同于发送顺序,这就需要为每个分片编号,再接收端重新组装。此方式的网络接口设计较为复杂,同时需要一个良好的拥塞控制方式来避免数据的丢失和重传。 2.1.3.3 片上网络的路由策略

片上网络的路由策略要选择一条最合适的路径将数据包从源地址发送到目的地址。通常,路由算法按照不同的标准可以分为如下几类:确定性路由、自适应路由、部分自适应路由。本文的路由算法是基于确定性路由中的XY、YX和XY-YX维序路由算法。

表2.1 一种二位网格的维序路由机制

方向 西(-x) 东(+x) 南(-y) 北(+y) 本地处理器

条件 △x<0 △x>0 △x=0,△y<0 △x=0,△y>0 △x=0,△y=0

确定性路由的路由路径只与源地址和目的地址有关,只要数据包中的源地址和目的地址确定了,与当前的网络状态无关。而典型的确定性路由就是维序路由,在维序路由中,每个数据包一次只在一个维上路由,当在这个维上到达了恰当的坐标后,才按由低维到高维的顺序在另外的维上路由。表1则为XY维序路由算法的具体示意图,简要概括,XY维序路由算法是先X方向,后Y方向传送数据包。YX维序路由算法不同于XY的是先Y方向,后X方向传送数据包。而XY—YX路由算法是根据当前节点和目的节点的坐标来确定数据包的传送方向。

自适应路由其主要特点就是路由路径除了与源地址和目的地址有关外,还与网络的状态有关。即对同一源/目的地址的数据包,在不同的网络状态下,它们的路由路径有可

8

东北大学本科毕业设计(论文) 第二章 相关技术

能不同。其中主要包括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中。

9

东北大学本科毕业设计(论文) 第二章 相关技术

图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上实现。而硬核则已完全实现(完成了版图设计),可以直接用于制造。从技术上来说,一种设计只有生产后才能实现,但是在使用硬核的情况下,实现的意思是

10

东北大学本科毕业设计(论文) 第二章 相关技术

指安排布局并可直接投入生产,而用户只需将硬核像单个集成电路片那样植入芯片即可,较之软核方式更为简单。在FPGA行业,还存在一种介于软核与硬核之间的固核,这种IP核针对摸个系列的FPGA进行布线、优化,以网表的形式提供给用户,习惯上也认为固核属于硬核范畴。

硬核具有速度快、效率高、使用简便等优点,但针对性非常强。软核具有技术独立性和可移植性强、定制性强,易于集成等优点,但效率相对较低。在FPGA设计中,大部分可使用的IP核以软核的形式提供,少部分以固核的形式提供,也有个别以硬核形式提供,如Power-PC405处理器核。

2.2.3 Xilinx ISE开发工具简介

设计输入设计验证功能仿真设计综合设计实现优化FPGAs.映射.布局.布线CPLDs.装配配置文件生成反向注解静态时序分析时序仿真配置文件下载电路验证

图2.6 ISE 开发设计流程

Xilinx ISE具有界面良好、操作简单的特点。ISE提供了包括代码编写、库管理以及HDL综合、仿真、下载等几乎所有FPGA开发所需的功能。ISE开发流程大概分为设计输入、综合、仿真、实现和下载等五部分。如图6所示。

(1)图形或文本输入(Design Entry)

常用的设计输入方法是硬件描述语言和原理图设计输入方法。原理图输入是一种常

11

东北大学本科毕业设计(论文) 第二章 相关技术

用的基本的输入方法,其是利用元件库的图形符号和连接线在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上。

12

东北大学本科毕业设计(论文) 第二章 相关技术

5)生成仿真文件,可选择行为级、结构级、时序级仿真方式。 (2)软件设计与调试

1)设置软件属性,使用EDK工具确定软件的操作系统、库、外设驱动等属性。 2)生成可执行软件代码,编译并生成elf格式的可执行代码。 3)生成BSP和库文件。

4)使用XMD工具调试,通过JTAG编程电缆在线调试,下载可执行软件代码,控制执行,并监控相关信息。

创建硬件平台定制IP核设置软件属性生成仿真文件设置工程特性设置编译连接生成硬件流文件生成BSP库文件Bmfsimulator仿真Modelsim仿真合并比特流文件生成软件可执行代码生成操作系统下载硬件源文件ChipScope调试XMD工具调试 图2.7 EDK设计流程图

2.3 本章小结

本章主要从片上总线与片上网络的概述、FPGA技术与IP核简介、仿真工具与设计平台等方面对本课题中要涉及到的相关理论背景及技术进行了简要介绍,同时针对其中的每一方面又分小节有所侧重地做了详细说明,便于后续章节中相关内容的阐述。

13

东北大学本科毕业设计(论文) 第三章 路由器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)延时可变路由功能

延时可变路由器主要由两部分组成,一部分是快速的路由模块,另一部分是延时模

14

东北大学本科毕业设计(论文) 第三章 路由器IP Core的设计与实现

块,其中,快速路由模块是实现具体的路由功能,主要由三部分构成:输入缓冲区、路由仲裁模块、交换阵列。当其接收到直连接口和总线接口发来的数据包后,首先将数据包路由信息(源地址、目的地址、数据包ID)从数据包提取出来,发送至路由仲裁模块,若仲裁出的输出端口空闲,则将这个数据包通过交换阵列由此端口发送出去,若忙碌,则等待直至输出端口空闲。快速路由模块在没有输出端口竞争的情况下会在三个时钟上升完成沿将数据包转发出去的工作,第一个时钟上升沿在输入缓冲区用于对输入端口的数据包的缓存,第二个时钟上升沿在路由仲裁模块用于对输入数据包的路由,第三个时钟上升沿在交换阵列用于将数据包发送至输出端口。而延时模块是根据用户设定的时间进行延时,延时之后将执行路由功能。另外,此路由器又是可变的,即用最短的时间完成所需的功能,若用户设定的时间比完成功能的时间长,则用延时模块延时到用户设定的时间。

总线接口 总线 命令 转换 延时可变 路由器 监测状 态存储 用户自定义接口 与其它路 由器接口 状态读 取接口

图3.1 IP核设计框图

(3)监测状态存储功能

监测状态监测模块通过开发板上的双口RAM将路由器IP核中的数据包ID、数据包接收时刻、数据包发出时刻进行存储,用户可以通过另一个接口将存储的内容读取出来以便实时监测。

(4)用户自定义逻辑功能

如图8所示,此路由器IP核有两种接口,一种是总线接口,另一种是用户自定义逻辑。设计这种接口有两个目的,一是实验所用开发板上的的硬处理器核PPC只有两个,要是仅仅使用两个PPC来发送数据包,显然搭建片上网络快速原型系统是明显不够的。另一目的是因为用户自定义逻辑完全是采用纯逻辑电路设计的,所以此路由器IP Core

15

东北大学本科毕业设计(论文) 第三章 路由器IP Core的设计与实现

既可以使用在具有处理器的系统中,又可以使用在纯逻辑电路系统中了.

3.1.2 路由器IP Core同步时序设计

数字时序电路一般分为异步时序和同步时序。异步时序电路采用组合逻辑,它的特点是任意时刻的稳定输出仅取决于该时刻的输入信号,而与时钟信号没有任何关系。同步时序电路一般采用触发器,它的特点是任一时刻的输出不仅决定于该时刻的输入,而且和电路的原状态有关。通常,它的输出逻辑被同一个时钟的上升沿(或者下降沿)控制。异步逻辑的输出会由于不同信号到达最后一个组合逻辑单元传输延迟的不同而产生毛刺现象。而由于时钟端口、清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能使系统出错。因此,在IP Core的设计中尽可能使用同步电路。

在此IP Core的硬件电路设计中,输入缓冲区的数据存储和读取、路由仲裁中的定时器以及交换阵列的数据交换都发生在时钟上升沿,来实现信号的同步。因此,每个路由节点从数据包的接收到数据包的转发大概需要3个时钟的延迟。

3.1.3 数据包的格式

8bit 8bit DA SA ID Data … Header

SA DA Header 32bit 32bit Source data Data

ID … Source Data Data Data Data Data

图3.2 数据包格式示意图

由于VirtexII Pro XUP开发板总线PLB具有64位数据总线,支持32/64位主从操作。为了搭建不同规模的片上网络快速原型系统,应该尽量减少每个IP核占用的开发板资源。所以,此IP核的设计采用32位的数据包。在header中,包括源地址SA(Source Address)、目的地址DA(Destination Address)和数据包ID。其中数据包ID用来唯一标识某一数据包,以便状态检测模块能够记录哪个数据包何时到达何时发出这个状态,这样,在数据包的传输过程中,就可以实时记录一些状态量,保证最后统计结果的有效性。源地址和目的地址则是被路由算法进行译码后判定路由路径使用的。其余bit位则是我们要发送的源数据。本文所采用的数据包格式分为两种,如图3.2所示。用户可根

16

东北大学本科毕业设计(论文) 第三章 路由器IP Core的设计与实现

据其需要搭建的网络大小选择数据包格式,第一种数据包的SA、DA地址各占4个bit位,适用于4*4一下规模的片上网络快速原型系统,而第二种数据包格式的SA、DA地址各占8位,能够支持此IP核搭建更大的片上网络快速原型系统。

3.1.4 参数化设计

随着FPGA制造工艺的不断进步,越来越多的应用可以在FPGA中实现,设计的可移植性成为十分重要的问题。用于FPGA设计的HDL语言具有很好的可移植性,但是进行完整的参数化设计才能充分利用芯片的资源,使设计具有更好的可移植。采用参数化的方法进行FPGA设计,可以为不同规模的芯片动态指定不同数目的运算单元。

基于综合工具的参数化是指应用综合工具提供的参数化功能,通过VHDL语句完成对关键变量的参数化。综合工具参数化的优点在于,使用VHDL的参数化指令,无需要编写第三方程序,操作方便,方法简单,参数化代价较小。VHDL中有两种参数化语句:GENERATE与GENERIC。设计的参数化需要对这两个语句进行组合应用,GENERATE语句可以对语句进行批量执行,但只节省了重复书写相似语句的机械劳动,只有与GENERIC语句结合之后才能完成对设计的参数化。

本文中设计的路由器IP核采用完全参数化的设计,在VHDL程序中可对此IP核的Buffer深度,路由延时时间,数据包格式、路由策略进行选择。然后,程序将会根据用户的选择配置此IP核,这样用户加载的IP核将会按照其需要的方式进行数据包的缓存,路由和延时。

3.2 各功能模块的设计与实现

由图3.1所示,本系统要实现各功能模块分别是:总线命令转换模块、延时可变路由器模块、路由状态监测模块和用户自定义逻辑。其中,延时可变路由器模块是核心,因为其肩负着此路由器IP Core的基本功能-路由。下面将分别介绍这四个功能模块的设计与实现。

17

东北大学本科毕业设计(论文) 第三章 路由器IP Core的设计与实现

3.2.1 总线命令转换模块

PLBReq用户可见寄存器Ack时序转换模块packet总线接口

图3.3 总线命令转换框图

如图3.3所示,总线命令转换模块是将Power PC的PLB总线命令转化为延时可变路由模块可识别的时序命令。

如果需要CPU访问自定义外设,有两种方式,一是通过IO,二是通过总线。IO访问比较简单,它可以通过软件模拟出各种时序的总线,但它的速度和易用性都不是很好,因此需要自定义IP,将自定义外设与总线连接起来。这时,总线接口就显示出了其特有的作用,它可以将PLB总线发送的时序命令存放在用户可见的寄存器当中,因此用户便能在软件和硬件编程时通过寄存器对总线上传输的数据进行控制和处理。

本模块的工作流程如上所述:数据包通过PLB总线的数据总线传送,此模块接收到数据包后,首先将数据包暂存在EDK开发工具上软硬件都可调用的寄存器slv_reg中,然后将寄存器中的32位数据变为一种通过请求应答传送数据包的时序,这样做的目的是便于延时可变路由模块的识别和处理。其中的请求应答是对延时可变路由模块中的输入缓冲区的请求和应答。当然,总线命令转换模块还可以根据延时可变路由模块发送的时序命令得到相应的数据包存入寄存器中,继而通过PLB总线传给处理器PowerPC进行计算或处理。

3.2.2 延时可变路由模块

延时可变路由模块是此路由器IP核的核心所在,其负责数据包的输入缓存、路由算法的实现、仲裁中的优先级确定等方面。如图3.4所示,其端口配置为五个输入端口(East、West、South、 North、Local)、五个输出端口(East、West、South、North、Local)。功能实现主要有输入缓冲区、路由仲裁、交换阵列三个模块组成。其中的定时器和比较器结构简单,是组成路由仲裁模块的一部分。在此进行说明,具体实现中就不在赘述。定时器的设计采用异步清零同步使能的时序,同步使能能够保证各个输入方向的计时开

18

东北大学本科毕业设计(论文) 第三章 路由器IP Core的设计与实现

始时间都发生在时钟的上升沿,这有利于比较器的比较结果准确有效。而异步清零可使计时器立刻停止计时,相比于同步清零来讲,减少了一个周期的延迟。比较器的设计完全是采用异步,这样做的目的也是为了减少路由仲裁模块的延迟时间。

East Input Port West Input Port South Input Port North Input Port Buffer Local Input Port Buffer Timer Timer Timer Router Timer comparator Timer Buffer Buffer Buffer East Output Port West Output Port South Output Port North Output Port Local Output Port

图3.4 路由器IP核的延时可变模块框图

3.2.2.1 输入缓冲区模块

req ack 存储RAM datain[32] dataout[32] oreq oack

图3.5 缓冲区模块示意图

如图3.5所示,存储RAM其实就是用户可自定义缓存深度的一维数组。这个缓存深度用户可以在VHDL程序中通过常量进行设定,数组中每个元素的大小为32位。在进行这个模块的设计时,采用VHDL语言中最为熟悉的元件例化,方便此模块在各个方向上输入缓冲区模块的重复利用。其中,req是上一级路由节点或处理器节点发送当前路由节点的请求信号,ack则是当前路由节点反馈给上一级的应答信号。datain[32]是来自总线命令转换模块或者用户自定义逻辑用于缓存的数据包。oreq是本模块向下一个模块-路由仲裁模块发送的处理请求,oack是路由仲裁模块的反馈信号。dataout[32]是从缓冲区中读出的数据包。

19

东北大学本科毕业设计(论文) 第三章 路由器IP Core的设计与实现

本文设计的IP Core采用存储转发的方式。为了减少缓存的资源开销和提高路由器的转发速度,此路由单元仅在输入端口进行数据缓存。输入缓冲区模块主要用于对发送到当前路由单元的数据包的缓存。具体的程序设计采用状态机实现。如图3.6所示,在接到请求信号时,如果缓冲区空闲,则发出应答信号至上一级路由节点,表示同意接受数据包。若缓冲区数据已满,则等待直至缓冲区空闲时才发出应答信号。数据包存入缓冲区后向路由仲裁模块发出请求信号,在获得应答后,才将数据包发送到交换阵列模块。

空闲状态时钟上升沿req = ‘1’时钟上升沿RAM数据送至输出端口输入数据送至存储RAMoack = ‘1’oreq = ‘1’等待路由仲裁模块响应

图3.6 输入缓冲区状态转换图

3.2.2.2 路由仲裁模块

表3.1 路由仲裁模块端口设置

端口名 req[0 to 4] head[0 to 4] ack[0 to 4] o_req[0 to 4] o_ack[0 to 4] output[0 to 4] 类型 输入 输入 输出 输出 输入 输出 说明 输入请求信号 路由信息 对输入的应答信号 输出请求信号 对输出的应答信号 送至交换阵列 路由仲裁模块是延时可变路由模块的核心。该模块的作用是通过路由算法控制交换阵列实现对数据包的转发,同时根据输入端口的计时器进行优先级的仲裁以保证等待时间长的数据包优先发送。表3.1为路由仲裁模块的端口示意图,其中,req[0 to 4]和ack[0 to 4]分别是来自五个方向上输入缓冲区模块的请求和对其的应答,head[0 to 4]是五个输

20

东北大学本科毕业设计(论文) 第三章 路由器IP Core的设计与实现

入方向上的数据包中的路由信息,而o_req[0 to 4]和o_ack[0 to 4]分别是五个方向上向下一个路由节点发出的请求信号和接收到的应答信号,output[0 to 4]则是五个输入方向上发送至输出端口的数据包。

req[5] ARBIT ROUTE ack[5] head[5] SWITCH MATRIX oreq[5] oack[5] output[5]

图3.7 路由仲裁结构图

如图3.7所示,路由仲裁模块首先检查各个方向是否有请求信号,若某方向有请求信号,则说明有数据包要转发,此时,对发送来的包头进行译码,译码完成后,对其进行路由算法的处理,同时将发送请求信号方向上的计时器触发,使其开始计时。然后,根据路由算法得出的输出端口进行判断,如果发生了几个输入方向上在同一输出端口的竞争,那么就根据各个方向上的计时器来判定优先级,计时器的时间长的优先发送。如果没有发生竞争,那么就直接发送数据包。在向输出端口发送数据包之前,要先对其进行请求,这个请求的应答可以通过一个判忙函数返回值得到。

按照上述的思想,我们将路由仲裁模块再细分为路由子模块、仲裁子模块、输出请求子模块。 (1) 路由子模块

路由子模块主要是实现转发数据包的路由算法,首先将发送来的数据包进行头部译码,然后得到数据包在2D Mesh中的源地址坐标和目的地址坐标。本文IP Core的设计时采用的是动态的路由算法,其中包括XY维序路由、YX维序路由、XY-YX路由算法。IP核的具体路由算法是根据用户的配置来选择的。传统的XY、YX路由算法的思想是

21

东北大学本科毕业设计(论文) 第三章 路由器IP Core的设计与实现

先X方向,然后Y方向(先Y方向,后X方向),虽然它是无死锁的,但是容易造成阻塞,因为数据在达到任何一个目的节点前都先从X方向开始,要么是E方向,要么是W方向,如果多个数据同时处在同一X方向上传输,对X方向的E通道和W通道容易造成阻塞。本文使用的XY-YX路由算法借鉴于[15],其中的数据并不总是先X方向,后Y方向,而是根据目的节点和当前节点的位置来选择。当目的节点Y方向的值大于当前节点Y方向的值时,即目的节点在当前节点的北边,选择先Y后X;当目的节点Y方向的值小于当前节点对应的值时,即目的节点在当前节点的南边,选择先X后Y,从而减XY路由算法在X方向产生的阻塞。此模型的路由算法如下:

当前节点标识(xco,yco),目的节点标识(dest_xco,dest_yco) Begin

If(dest_xco==xco&&dest_yco==yco) 到达目的节点 Else if(dest_yco>yco) 沿N方向路由 Else if(dest_yco<=yco) {

If(dest_xco==xco) 沿S方向路由 Else if (dest_xco>xco) 沿E方向路由 Else if(dest_xco

路由算法简单明确,关键的问题是将数据包的包头译码为路由算法可识别的当前节点标识和目的节点标识。如已经定义好的数据包格式所示,源地址和目的地址各占用4bit,而其中的x,y坐标各占用2bit,那么就可以很容易的确定源节点和目的节点在2D Mesh中的坐标。因此,译码的过程也就变成了将源节点和目的节点的x,y二进制数转化为整数的过程。 (2) 仲裁子模块

22

东北大学本科毕业设计(论文) 第三章 路由器IP Core的设计与实现

起始状态时钟上升沿请求信号为高计时器复位计时器开始计时输出请求信号为高 将数据送至交换阵列无竞争路由判定按照优先级将数据包送至交换阵列时钟上升沿计时器值送入比较器有竞争有无竞争

图3.8 仲裁子模块状态转换图

仲裁子模块是用来对请求同一输出端口的不同输入模块进行仲裁。这里我们采用不同输入模块的等待时间来进行仲裁。其采用状态机实现,具体的状态图转换如图3.8所示,当不同输入模块同时请求转发数据包时,首先将输入模块中对应计时器触发,使其开始计时。然后,将路由子模块得到的输出端口进行判断,如果没有重复的输出端口,则直接将数据包发送至交换阵列使数据包向各个输出端口传送,并且给输入缓冲区模块应答信号,同时向交换阵列发送一个请求信号。同时计时器复位,停止计时。若有重复的输出端口,则说明产生了竞争,那么就要由仲裁来判定优先级。当时钟上升沿到来时,将重复输入方向的计时器送至比较器进行比较,计时器的大小就是优先级的大小。最后,按照优先级的大小发送数据包至交换阵列,并给对应的输入模块应答信号。

假设在数据包的转发过程中遇到了五个输入端口同时向一个输出端口发送数据包而各个输入方向上的计时器时间又相同的情况,这时五个输入方向无法被仲裁出哪个输入端口的数据包优先发送,因而产生了死锁,导致整个程序崩溃,无法继续向下执行。我们的解决办法就是一旦遇到这种情况就按照预先设定好的优先级顺序(顺序为N、S、

23

东北大学本科毕业设计(论文) 第三章 路由器IP Core的设计与实现

W、E、L)进行数据包的转发,这样就避免了死锁的产生。 (3) 输出请求子模块

输出请求子模块本质上是用一个判断函数来实现的。当仲裁子模块需要向输出端口发送数据包时,要先向输出端口发送一个请求信号,然后输出请求子模块对此请求进行处理,判断输出端口的数据包是否已经发送至下一个路由节点。如果数据包没有发送出去即还存在于输出端口当中,那么此模块不向仲裁子模块给出应答,因此将数据包不能发送至输出端口。如果输出端口的数据包被发送至下一个路由节点,那么对仲裁子模块给出响应。这个模块主要是为了避免输出端口中未发送出去的数据包被下一时刻到来的数据包被覆盖。 3.2.2.3 交换阵列模块

交换阵列根据路由子模块和仲裁子模块的输出结果来控制数据包的转发方向,为路由器的5组输入输出端口建立连接,进行数据包的并行传输。

表3.2 交换阵列举例 L E W S N 0 0 1 0 0 L 0 0 0 0 1 E 1 0 0 0 0 W 0 1 0 0 0 S 0 0 0 1 0 N 交换阵列开关控制矩阵如表3.2所示,其中,矩阵的行表示输入端口,列表示输出端口,矩阵中的‘1’表示其所在行与所在列建立了连接,数据包从其所在行的输入缓冲区发送到其所在列的输出端口。

矩阵中D(3,3)表示Local Input Port和West Output Port之间联通,即路由器单元东侧的Buffer中的数据发送到了西侧的输出端口。

3.2.3 路由状态监测模块

路由状态监测模块是用来将路由器的转发数据包的状态实时存储在双口BRAM中,并能够通过另一接口将状态读出的,监测的内容为哪个数据包何时到达何时被转发。由于需要记录数据包到达和转发的时刻,所以在设计中,我们需要维护一个全局时钟,使这个全局时钟能够保证硬件上电后就开始计时。数据包的标识可以通过数据包中的55-48位ID来确定,这个过程同头部译码一样,同样需要将二进制数转化为整数,在VHDL的STD_LOGIC_1164包中,可以直接使用转换函数CONV_INTEGER(A)达到目

24

东北大学本科毕业设计(论文) 第三章 路由器IP Core的设计与实现

的。关于数据包到达和转发的时刻,只需要关注路由监测模块中的输入端口和输出端口是否存在数据即可。当输入端口接收到数据包后,说明数据包已到达并存储在输入缓冲区,那么设计中就将 此时的全局时钟值设为数据包到达的时刻,并且将数据包ID和输入时间并置存入寄存器中。当数据包被转发到输出端口时,说明数据包已经准备发送至下个路由节点,那么此时的全局时钟值便为数据包发出的时刻,并且将数据包ID和输出时间并置存入另外一个寄存器中。由于输入端口和输出端口是存在于五个方向上的,所以我们要对五个方向的输入和输出端口进行监测,最后通过两个寄存器中数据包ID的匹配,我们就能得出各个数据包到达路由节点和离开路由节点的输入输出时间。具体的状态图如图3.9所示。

等待端口响应req = ’1’oreq = ‘1’全局计时器值存入寄存器A 全局计时器值存入寄存器BRising_edge(clk)时钟上升沿寄存器A,寄存器B,数据包ID并置存入寄存器C时钟上升沿 时钟上升沿读出状态至用户可见的寄存送读地址器将寄存器C的值存入BRAM中读使能

图3.9 路由状态监测模块

3.2.4 用户自定义逻辑模块

用户自定义逻辑目的是为了将本文设计的IP核可以用于纯逻辑电路系统中,其功能与总线接口大致相同,都是为了给路由节点发送其可识别的数据包,但是用户自定义

25

东北大学本科毕业设计(论文) 第三章 路由器IP Core的设计与实现

逻辑方便灵活,可以根据用户所需,发送相应的数据包,其中的存储模块是一个数组,用户可以按照自己的需要预先将数据包存储在数组中,然后此模块就能按照顺序将数组里的数据包逐个发送,同时此模块也应用了总线命令模块中的时序命令转换方法,这个模块的关键就是数组的存储和读取。

其模块框图如图3.10所示,wradd,wr分别是此模块的写地址和写使能,rdadd,rd分别是此模块的读地址和读使能,当wr为高电平时,则根据相应的wradd、rdadd地址将数据包写入和读出。

wradd wr User Define Input ack Interface RAM Output req rd rdadd

图3.10 用户自定义逻辑框图

3.3 本章小结

本章主要从路由器IP Core的设计与实现方面进行了阐述,并对总线命令转换模块、延时可变路由器模块、路由状态监测模块、用户自定义逻辑模块进行了详细的说明。本章通过状态图和模块框图,直观的显示了各个功能模块的关系以及具体的实现过程。

26

东北大学本科毕业设计(论文) 第四章 测试与结果分析

第四章 测试与结果分析

在本章中我们首先将对基于FPGA设计的路由节点及其子模块进行仿真验证,并对其进行测试,给出仿真结果。然后用仿真正确的路由节点搭建片上网络快速原型系统,并用EDK开发平台在硬件电路中进行测试。

4.1 路由节点的验证流程

根据以上对片上网络特点的分析,我们在对片上网络路由节点进行设计时,采用了自顶向下的主流方法将其分解为比较简单的设计子模块。而验证过程则以相反的方向进行,从较简单的子模块开始,逐步过渡到更高设计层次。子模块验证流程如图4.1所示。在完成子模块的设计后,我们根据其功能给出相应的验证平台。我们首先将验证用例加载到子模块上。根据输出,如果子模块完成的功能和预期的不一致,我们将定位故障点,并且对电路设计进行修改,迭代过程将持续到设计通过该验证用例。在每个子模块都完成验证后将子模块组合为网络组件,在仿真平台上验证其功能正确性。

4.2 各个功能模块仿真验证

4.2.1 输入缓冲区模块仿真

输入缓冲区的仿真如图4.2所示,其中的第一个截图是输入缓冲区中RAM的初始化数据,第二个是wradd为2时的BUFFER中的数据,第三个是整个输入缓冲区模块的过程截图。通过截图,我们可以得出结论:输入缓冲区能够将数据包缓存在RAM中,并能够按照数组的存储顺序依次读出RAM中的数据发送至输出端口。

27

东北大学本科毕业设计(论文) 第四章 测试与结果分析

图4.2 输入缓冲区仿真图

4.2.2 路由仲裁模块的仿真

根据路由仲裁模块的仲裁机制—以各个输入端口等待时间的长短作为优先级的度量,此模块在每个输入端口都加入了单独的计时器。如图4.3所示,这是S输出方向的数据转发过程的截图。其中packetl是此模块的本地输入端口,so是S方向输出端口,counters是输入方向计时器,tdatas是S输出端口的寄存器,reqs是对S输出方向的请求,ackls是对L输入端口向S输出端口发包的应答信号,oreqs是对与相邻路由节点对应输入端口的请求。

图4.3 路由仲裁模块的仿真图

根据我们选择的XY—YX路由算法可知,L输入方向中的数据包(5600039、2300011、4700019)是应该发送至S输出端口的,图中的时序仿真完全证明了数据包的转发过程是正确的。仲裁的机制是当寄存器tdatas接收到数据包后,计时器立刻停止计时。但是仿真图中,计时器是在下一个时钟周期重新计时的,那是因为进程中的信号并不能立即赋

28

东北大学本科毕业设计(论文) 第四章 测试与结果分析

值,而是在下一个时钟周期才能被赋值。尽管计时器延时一个时钟才开始计时,但是各个方向上计时器的延时都是一个时钟,那么比较器的比较结果同样是正确的,所以这对我们的设计并没有影响。

4.2.3 单一路由节点的仿真

图4.4 单一路由节点的仿真图

如图4.4所示,ei是此路由IP核的E方向的输入端口,eo、wi、si、ni、li分别是此路由IP核的五个方向的输出端口,oreql、oreqe、oreqw、oreqs、oreqn分别是此路由器IP核的输出请求信号。我们通过五个输入端口的数据包的包头信息(23、88、56、78、83、04),根据路由算法,能够明确的判断数据包的输出方向依次为(so、lo、so、no、wo、eo)。通过仿真图,我们可以观察出数据包是按照路由算法来转发的。

4.2.4 状态检测模块的仿真

图4.5 状态检测模块的仿真图

29

东北大学本科毕业设计(论文) 第四章 测试与结果分析

如图4.5所示,come、leave是数据包的ID和输入输出时间。由仿真图可见,当输入端口接收到数据后,就将其输入时间和ID存入寄存器statecome中,而当数据包转发到输出端口后,则将其输出时间和ID存入寄存器stateleave中。通过两个寄存器的ID比对,就能准确的得出各个数据包的经过此路由节点的输入和输出时间。

4.3 快速原型系统

在EDK开发工具中我们利用设计好的路由器IP核搭建了一个2*3的片上网络快速原型系统。如图4.6所示,该片上网络快速原型系统由1个用户自定义逻辑和6个路由器IP核组成。用户自定义逻辑directif_0与plb_router_0相连,用于向片上网络系统发送数据包。而plb_router_0、plb_router_1、plb_router_2、plb_router_3、plb_router_4、plb_router_5同时与PLB总线接口连接在一起,为了将数据包的转发状态通过slv_reg读取出来。如图4.7所示,每个与总线接口相连的路由器IP核都具有独自的地址。在EDK软件的编写中,首先通过一段不会被优化的代码延时一段时间,保证数据包的转发状态完全存储在每个路由器IP核的RAM中,然后对用户可见寄存器slv_reg0循环写入存储器RAM中的地址并将存储的数据读取在slv_reg1中。

XUP 开发板BRAM_cntlrPLB串口线PLB2OPBOPBXUP 开发板串口PowerPC405路由器路由器路由器路由器路由器路由器用户自定义逻辑

图4.6 片上网络原型系统

图4.7 路由器IP核的地址

通过FPGA开发板上串口与PC机的串口连接,我们对数据包(0x05000111)的转发

30

东北大学本科毕业设计(论文) 第四章 测试与结果分析

过程进行了路由状态监测,验证了我们设计的IP核的正确性,并根据显示信息得出了本文设计的IP核的一些重要思想:

(1)数据包的转发端口和下一跳的节点位置并不全是按照包头信息得出的,每当数据包到达中间节点时,数据包的包头信息将会根据当前节点的位置坐标来重新标定。

(2)数据包在每个路由节点的传输时间不同。那是因为数据包在传输过程中产生了输出端口竞争,等待仲裁的过程中产生了一定的延迟时间。

4.4 本章小结

本章通过modelsim仿真工具和串口调试对所设计的路由器IP核的各个模块进行了测试,主要测试内容分为两大部分,一个是通过仿真图验证路由器IP核各个模块的正确性,另一个是通过串口调试来监测路由器IP核的状态,并得到了此IP核的一些相关结论。

31

东北大学本科毕业设计(论文) 第五章 结论与展望

第五章 结论与展望

5.1 本设计的贡献和主要工作

片上网络的研究主要针对于拓扑结构、路由器、路由算法等各个方面的资源优化和性能优化。上述研究大部分基于软件模拟器或FPGA快速还原系统。软件模拟器的模拟速度和精度不能兼顾。基于FPGA的快速原型系统能够准确快速的模拟片上网络的各种行为,但目前还没有专用于快速原型系统搭建的路由器IP核。本文设计的路由器IP核通过完整的封装、参数化的设计、统一的对外接口能够使片上网络的研究人员快速的搭建基于FPGA的快速原型系统,从而在一定程度上节约了搭建实验平台的时间。

整个论文期间完成了如下的工作:

(1) 设计了一个三阶段的快速路由,其中包括输入缓冲区、路由仲裁、交换阵列三个阶段。在设计实现的过程中,学习了FPGA设计流程,并严格按照设计流程对快速路由的各个模块进行了HDL代码编写、仿真调试和综合测试。

(2) 设计了一个具有能够连接总线和用户逻辑两种接口、路由延时可变、路由算法和数据包格式可选、缓存深度可由用户配置、路由状态可检测、能够快速搭建片上网络原型系统的片上网络路由器IP核。在这个过程中,详细的研究了片上网络的拓扑结构和路由策略,并分析了不同拓扑结构和路由策略的特点。

(3) 利用所设计的路由器IP核搭建了一个基于2D Mesh拓扑结构的2*3片上网络原型系统,并通过串口对数据包的转发过程进行了监测。

5.2 未来工作

虽然此路由节点IP核的各模块的功能可以满足其设计要求,然而在未来针对此IP核以及各个模块的功能还需进一步改进和完善。

5.2.1 路由策略的进一步扩展

目前,随着对片上网络片上网络研究的深入和发展,越来越多的路由策略被提出,本文设计的IP核提供给用户选择的路由策略只支持XY,YX,XY-YX三种路由算法,在未来的工作中,可以将更多的路由算法加入到此IP核的路由策略配置选择中,这样会使此IP核更加广泛的应用到研究和实验当中。

32

东北大学本科毕业设计(论文) 第五章 结论与展望

5.2.2 延时可变路由模块的进一步扩展

延时可变路由模块实现的是一个快速路由,数据包的传输延时大约10个时钟,延迟时间过长需要进一步改善。通过对经典的五阶段路由器结构的研究,发现其中的一些结构能够改善目前的延迟时间过长问题:流水线分片思想可以通过对数据包的分片传送来避免整个数据包的阻塞,从而能够减少延迟时间;虚通道结构能够在路由器中将数据包进行分时传送。在未来工作中,可以对此模块的结构进行扩展,主要工作就是在延时可变路由模块加入虚拟通道和流处理思想使其功能趋向于五阶段路由器从而得到完善。

33

东北大学本科毕业设计(论文) 参考文献

参考文献

1. Li-Shuuan Peh.A Delay Model and Speculative Architecture for Pipelined Routers.In

Proceedings of the 7th International Symposium on High-Performance Computer Architecture, Jan. 22-24, 2001, Monterrey, Mexico, pp. 255-266.

2. JongmanKim.ChrysostomosNicopoulos.DongkookPark.VijaykrishnanNarayanan.Mazin

S. Yousif.Chita R. Das .A Gracefully Degrading and Enerrgy-Efficient Modular Router Architecture for On-Chip Networks. Dept. of CSE, The Pennsylvania State University Corporate Technology Group, Intel Corp.University Park, PA 16802 Hillsboro, OR 97124.

3. Jongman Kim Dongkook Park T. Theocharides N. Vijaykrishnan Chita R. Das.A Low

Latency Router Supporting Adaptivity for On-Chip Interconnects.Department of Computer Science and Engineering.The Pennsylvania State University.University Park, PA 16802.

4. Robert Mullins,Andrew West and Simon Moore.The Design and Implementation of a

Low-Latency On-Chip Network.Computer Laboratory, University of Cambridge. 5. Robert Mullins,Andrew West and Simon Moore.Low-Latency Virtual-Channel Routers

for On-Chip Networks.Computer Laboratory, University of Cambridge.William Gates Building, JJ Thomson Avenue, Cambridge CB3 0FD, UK

6. C. J. Glass, L. M. Ni. The Turn Model for Adaptive Routing. The 19th Annual

International Symposium on Compter Architecture, pp. 278-287, 1992.

7. W. J. Dally, C. L. Seitz. Deadlock-Free Message Routing in Multiprocessor

Interconnection Networks. IEEE Transactions on Computer, pp. 547-553, May 1987. 8. W. J. Dally, C. L. Seitz. Deadlock-Free Message Routing in Multiprocessor

Interconnection Networks. IEEE Transactions on Computer, pp. 547-553, May 1987. 9. P. Huang,W. Hwang. An Adaptive Congestion-Aware Routing Algorithm for Mesh

Network-on-chip Platform. IEEE International System on Chip Conference, pp. 375-378, Sep. 2009.

10. X. Duan, D. Zhang, X. Sun. Routing Schemes of an Irregular Mesh-Based NoC.

International Conference on Networks Security, Wireless Communications and Trusted Computing, pp. 572-575, Apr. 2009.

11. W. Jang, D. Z. Pan. An SDRAM-Aware Router for Networks-on-Chip. In Annual ACM

IEEE Design Automation Conference, pp. 800-805, Jul. 2009.

34

东北大学本科毕业设计(论文) 致谢

12. H. Yoo, K. Lee, J. Kim. Low-Power NoC for High-Performance SoC Design. CRC Press.

2008.

13. H. Wang, L. Peh, S. Malik. A Technology-Aware and Energy-Oriented Topology

Exploration for on Chip Networks. Design, Automation and Test in Europe, pp. 1238-1243, Mar. 2005.

14. LIU Yan-hua,LIU Jing,LAI Zong-sheng,JING Wei-ping.1.Institute of Microelectronics

Circuit & System,East Chian Normal University,Shanghai 200062,China.

15. 王诚,薛小刚,钟信潮。FPGA/CPLD设计工具ISE使用详解[M],北京:人民邮电

出版社,2005,1-478。

16. J.Bhasker。Verilog HDL综合使用教程[M],北京:清华大学出版社,2004,1-8。 17. 王毅平,张振荣。VHDL编程与仿真[M],北京:人民邮电出版社,2000,75-139。 18. 林敏,方颖立欧阳一鸣,董少周,梁华国.基于2D Mesh的NoC路由算法设计与仿

真.合肥工业大学计算机与信息学院,合肥,230009

19. 李景华,杜玉远.可编程逻辑器件与EDA技术[M],沈阳:东北大学出版社,2000,

68-182.

20. 张亮.数字电路设计与VerilogHDL[M],北京:人民邮电出版社,2000,11-36。 21. VHDL数字系统设计与高层次综合[M],北京:电子工业出版社,2002,1-132。

35

东北大学本科毕业设计(论文) 致谢

致谢

在整个毕业设计期间,首先我要感谢我的导师邓庆绪老师,邓老师平时很忙碌,但仍抽出宝贵的时间对我的毕业设计和论文进行指导,让我开阔了视野,明确了方向,增长了专业知识。

在这里我还要特别感谢我的金曦师姐,是她帮我明确了各个阶段的工作,并指导我解决了毕业设计中的很多难题以及毕业论文的基本结构。当我对我的毕业设计感到迷茫时,金曦师姐不但给予了我莫大的鼓励,而且耐心的给我解答我的疑问和论文中的不足之处。

同时感谢实验室的所有师兄师姐,他们在每周例会上给我们做的学术报告,使我从中学到了很多专业领域的新知识并了解了专业领域的新方向,得到了很多灵感。

最后,感谢为了支持我的学业不辞劳苦的父母,是他们在默默的支持着我向着美好的未来前行。

在这里,祝愿我的母校东北大学越来越好,祝愿我们的RTES实验室越来越好,同时也祝愿我的读研之路走得忙碌而有意义。

36

本文来源:https://www.bwwdw.com/article/2cjw.html

Top