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

2019-08-17 13:51

东北大学本科毕业设计(论文) 第三章 路由器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核的设计与实现(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(同步精品课堂)2015-2016学年高中语文 专题08 兰亭集序(讲)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: