IC制造技术的发展推动着芯片向更高集成度方向前进,从而能够将整个系统设计到单个芯片中构成片上系统SoC(System on Chip)。SoC采用全局同步型共享总线通信结构。这类系统由于挂在总线上的设备在通信时对总线的独占性以及单一系统总线对同步时钟的要求,使得在片上IP核越来越多的芯片中,不可避免地存在通信效率低下、全局同步时钟开销大等问题。
片上网络NoC(Network on Chip)的提出有效地解决了上述问题。该系统借鉴了计算机网络中分组交换的通信方法,可以根据应用灵活地采用多种网络拓扑结构互连片上IP核[1]。各IP核间有多条链路可以进行并行通信,由FIFO跨接处于异步时钟域中的IP核,实现全局异部局部同步时钟系统。具有可扩展性好、低互连功耗和低延迟等特点。
然而目前NoC还处于研究阶段,国内许多科研机构和院校围绕着网络拓扑结构、映射算法、路由算法、测试方法、路由节点的设计等展开研究[2]。各种基础理论的验证通常依赖于软件建模和硬件仿真。但针对NoC具体的应用系统少有报道。本文阐述了一个小型NoC系统的硬件实现,对系统的硬件实现方案、通信接口及信号完整性等问题进行了细致地研究。通过对完整系统的设计与实现,探索了NoC系统应用过程中的关键技术与难点,同时验证了NoC相关理论算法与结构、路由节点的设计和FPGA的多核技术等。
1 硬件平台的设计
NoC应用的最终目标是将大型的多核系统设计到单芯片中,使得片内可以容纳大量处理器核、专用IP核、存储器、数据通信单元等。然而这类庞大的系统在流片之前都需要合适的硬件平台来进行仿真、验证工作。另外某些场合的NoC系统更可能会直接选择使用FPGA作为其最终的硬件实现方案。因此基于FPGA的NoC应用系统设计具有实用性。考虑到FPGA的资源限制与NoC系统特点,针对3×3 的2D Mesh结构设计了基于FPGA的NoC应用系统框架,如图1所示。
图中NoC系统包含9个资源节点,分为3行3列排列,每个资源节点有一个相邻的路由节点R与其相连。9个路由节点按规则的二维网状排列,由并行互连线连接构成通信网络。资源节点包括资源网络接口SNI(Source Network Interface)、片内存储器M和IP核等。其中IP核可以是处理器核NIOS、专用IP核、DSP核,也可以是用户设计的专用电路,而处理器核运行所需的存储任务在验证过程中由片外存储器SDRAM和Flash实现;通信网络包括路由节点R和并行互连线,路由节点实现与本节点相连的资源节点的数据收发和相邻路由节点的数据转发功能。互连线构成路由节点间信息传输的载体,FPGA内部大量的可编程互连线可以保障路由节点间足够的通信带宽。
1.1 NoC系统设计
NoC系统中资源节点使用的IP核、路由节点所需的FIFO缓冲器以及大量的互连线, 对平台的核心器件FPGA提出了严峻的挑战。以目前最先进的FPGA来构建大型的NoC系统仍显不足,解决的方法通常由多片FPGA组合实现系统功能。考虑到本平台主要由一个小型应用系统的实现,以及算法和路由的验证等组成,采用了单片大容量器件构成独立的系统平台,并设计了扩展接口,可进行多片组合实现更大的应用系统。
目前,大容量可编程器件的供应商主要有Xilinx公司、Altera公司和Actel公司。各大供应商都提供了大容量与高速度的产品、完善的开发工具支持和常用IP核。综合应用的速度、软核的开放性、器件的定购周期与性价比,最终选定了Altera公司Cyclone IV 系列的EP4CE115F29芯片。该器件具有115 KLE,432 个M9K存储块,4个锁相环,20个全局同步时钟网络,780脚的BGA封装内提供528个用户I/O端口[3]。
处理器核是多核系统中应用功能实现的常用部件。作为一款32位RISC处理器,Altera提供的软核NIOS II在仅占用3 KLE的情况下提供超过200 DMIPS的性能,并提供了丰富的外设接口IP和高性能的AVLEN总线。开发工具SoPC Builder软件支持单芯片内多个独立NIOS核的定制,同时NIOS II IDE软件提供了多核的程序开发与调试环境。因此NIOS II可以作为NoC应用系统中的软核处理器。
路由节点负责NoC的通信工作,其通信带宽与可靠性直接影响着系统的性能。许多研究人员深入研究了路由节点的设计,并针对多种应用设计进行了优化[4]。这类优化大多围绕着提高通信吞吐量、减少通信延迟,解决拥塞等问题。路由的改进给节点的RTL综合提出了新的要求。例如一个缓冲式快速虫孔交换路由节点,片内设计有10个以上独立的32×16 FIFO,然而许多的小FIFO在综合时都会各自占用一个包含32×256 的M9K单元。造成内部存储单元的使用效率低下、资源紧缺的问题。另外由于片上网络全局异步时钟的特点,现代FPGA越来越丰富的全局时钟树网络显得多余而浪费。器件供应商们如果能在FPGA的设计过程中引入对这些问题的解决方案,必然会极大地推动未来NoC应用系统的FPGA实现。
1.2 基于ARM的资源网络节点设计
ARM(Advanced RISC Machines)系列处理器因其高性能、低功耗、开放性好等优点,在许多领域广泛应用。长期的应用开发形成了许多相关的软硬件资源。例如三星公司的S3C24XX系列处理器,不仅提供了丰富的外设接口,移植了成熟的ARM-Linux,更可以提供完整的TCP/IP协议支持和相当丰富的外设驱动,加速了应用的开发速度。NoC系统如能将片外的ARM处理器作为片上多核系统中的片外资源节点,充分利用现有软硬件资源,将给NoC系统带来巨大的应用空间。片外硬核与NoC系统的信息交换,即ARM同路由节点的通信由专用资源网络接口SNI完成。针对ARM 处理器AHB总线时序,设计了基于DMA通信的SNI单元,如图2所示。图中ARM的数据总线为双向数据总线,需要通过SNIC(Source NetworkInterface Controller)的控制实现分时复用。数据传输由SNIC发起,经过nXDREQ向DMAC发送请求信号,DMAC在获得总路控制权后发出nXDACK信号[5]。随后AHB总线将产生源和目的地址的读写信号进行数据传送,最终完成一次DMA传输。
1.3 外围电路及电源设计
系统为实现各类功能验证提供了大量的外围电路,包括多套NIOS软核运行所需的存储器、双通道高速模拟信号输入与输出单元、摄像头模组接口、VGA视频输出单元、10 M/100 M以太网接口单元和音频接口单元。
电压要求的多样化需要多组的电源设计,其中FPGA由1.2 V核心电压、3.3 V与2.5 V I/O Buffer电压、2.5 V模拟PLL电压以及1.2 V数字PLL电压组成。模拟PLL电压需选用线性整流降压得到,以获得低纹波输出的稳定电压源;其他数字部分电源适合采用开关型整流器电路供应。例如TI的TPS54550器件,具有输出电流大、效率高、外围器件少等优点。值得一提的是,CYCLONE IV 内部具有电压检测与电源管理功能,没有上电顺序要求,简化了电源的设计。
2 信号完整性分析
大量高速器件的采用、FPGA的高密度封装、敏感的A/D和D/A转换芯片和许多开关整流器的噪声,这些都决定着需要对信号完整性分析予以足够的重视。设计过程中对叠层、电源隔离、地线处理做了细致的工作。采用Cyclone片内端接OCT(On-Chip Termination)的源端端接方案,并通过精心的布局布线,有效地克服了各种信号干扰。最后使用SigXplorer 软件提取PCB模型对信号的反射和串扰进行仿真,验证了系统的信号完整性设计。
2.1 叠层设计
叠层设计涉及电源与信号层的规划、走线的密度与层数的折衷等问题。本系统中29×29的BGA780封装的扇出是决定信号层层数的重要因素,假设1 mm球间距间扇出一根导线,在没有考虑顶层扇出限制和扇出线物理连接限制的情况下,可以计算出528个用户I/O端口加上少量配置线至少需要5个信号层,加上电源层后的总层数将达到8~12层,导致层数过大。结合加工工艺和串扰分析等情况,在允许的范围内尽可能降低层数的原则,最终确定间距39.37 mils扇出2根导线, 其中包括14 mils 的扇出过孔、5 mils的线宽和扇出线间距。采用信号1-电源-信号2-信号3-地-信号4的层叠方案。信号线线宽为5mils时的特征阻抗控制为50 ?赘。
2.2 阻抗匹配设计与仿真
输出缓冲的源端内阻、高速系统中传输线的特征阻抗以及输入缓冲的输入电阻间的差距带来了信号传输过程中的反射。当输出门的信号在传输介质上往返时间大于信号最小边沿时间时,电路需采取端接来实现阻抗匹配,端接可采用末端并接电阻或源端串接电阻等方式。
末端端接将电阻放置于接收器端一侧,驱动波形沿传输线以满幅度传播,到达末端时由端接电阻吸收,接收电压等于传输电压。末端端接具有上升时间快的优点,但对输出门的驱动电流有一定的要求,这也带来了较大的功率消耗。
源端端接采取控制输出端的反射系数的方法。通过在源端串接一个电阻,使得串接电阻加上源端缓冲器的内阻接近传输线的特征阻抗。Cyclone IV系列产品均设计了OCT功能,可以选择使用片内串接电阻。使用SigXplorer软件首先提取PCB上AD9765数据线的传输线模型,然后与Altera提供的TTL 2.5 V串接50 ?赘电阻的IBIS模型进行125 MHz信号的反射仿真,仿真结果如图3所示。源端信号波形的幅度由于端接电阻的分压,在传输介质上的初始信号幅度降至满幅度信号的1/2,这1/2幅度的信号大约经过1 ns后到达末端。由于末端数字电路输入阻抗非常大,反射系数接近+1,从而得到1/2幅度的反射信号,与原1/2幅度信号叠加后在末端得到完整幅度的信号。反射信号再经过1 ns延迟后回到源端,被源端端接衰减,此类端接具有静态功率小等优点。
同时对未串接50 ?赘电阻的TTL 2.5 V 模型进行了仿真,其它仿真参数均不变的情况下,发现电路末端信号具有明显过冲现象,如图4所示。因而Cyclone IV的OCT技术是简化高速线路PCB板设计、提高信号完整性最简便实用的途径。实验表明,测量结果与仿真波形接近,AD9765在最高理论速度125 MHz下工作稳定。
2.3 串扰仿真
互感、互容使得相邻传输线间信号相互耦合从而形成串扰,传输线的间距是其中最关键的因素。本系统中大多数走线间距为15 mils,无需担心串扰问题,而BGA的扇出采用的是5 mils的间距, 并且存在许多长度在1 000 mils以上的平行线,串扰的仿真与降低串扰的影响成为设计过程中不可缺少的一个环节。采用SigXplorer对相邻BGA扇出微带线的模型进行了仿真,结果如图5所示。干扰源是125 MHz的时钟信号,被干扰线路为相距干扰线路5 mils的弱下拉平行微带线。可见在被扰线路的源端和末端产生了接近200 mV的串扰,属于电路正常工作可以接受的范围。
设计了基于FPGA的NoC系统硬件平台,在此基础上完成了一个小型的片上网络系统。设计过程中充分考虑了片上网络系统的应用特点,针对典型3×3的2D Mesh结构进行设计。实践表明,系统达到了设计要求,可以满足NoC系统的硬件要求,同时系统也将作为后续NoC映射、路由及测试算法的验证与仿真平台。
NoC仍然有着广阔的研究空间,许多新的结构或算法将会不断涌现,以及更复杂应用系统的验证需求对硬件平台会有更高的要求。本文对平台设计中一些重要的问题进行了探讨, 对于后续相关硬件平台的开发及FPGA应用系统的设计具有一定的借鉴意义。