基于NoC架构的软件无线电验证平台设计

时间:2022-06-12 07:37:53

基于NoC架构的软件无线电验证平台设计

摘要:软件无线电技术可以满足新一代无线通信系统对可扩展性、可重配置性以及可升级性的要求,并且能够解决各种通信体制之间的兼容性等问题,因而被认为是未来移动通信的关键技术之一。本文设计了一个基于NoC架构的软件无线电验证平台。该平台的硬件部分是一个16节点的4×4 2-D mesh NoC多核结构,NoC底层采用虫洞交换、确定路由、输出缓存队列(Virtual Output Queue,VOQ)机制,以及全新设计的网络接口(Network Interface,NI)完成硬件底层和处理器核之间的数据交互。通过改变运行在处理器核上的软件代码可以实现各种无线电收发系统的功能。根据正交频分复用(OFDM)基带收发系统在该验证平台上的验证与实现,证明本设计是一个高效、可靠、灵活的软件无线电验证平台。

关键词:软件无线电;片上网络;OFDM;验证平台;网络接口

1引言

软件定义的无线电(Software-Defined-Radio, SDR,简称软件无线电)自从1992年由Jeo Mitola提出以来,在最近几年取得了引人注目的进展,引起了包括军事通信、个人移动通信、微电子以及计算机等电子领域的巨大关注和广泛兴趣。软件无线电的基本思想是以一个开放的、模块化的、标准化的通用硬件平台为依托,通过加载软件来实现各种无线通信功能[1]。软件无线电突破了传统的无线电台以功能单一、可扩展性差的硬件为核心的设计局限性,强调以开放性的最简硬件为通用平台,尽可能地用可升级、可重配置的(reconfigurable)应用软件来实现各种无线电功能的设计新思路。用户在同一硬件平台上可以通过配置不同的应用软件来满足不同时期、不同使用环境的不同的功能需求[2]。

随着集成电路集成度的不断提高,片上各模块的通信问题逐渐成为系统性能的瓶颈。传统的片上系统(SoC)总线结构在同一时刻只允许一对通信,这一模式严重制约了系统的平均通信效率和可扩展性。 NoC可以定义为在单一芯片上实现的基于网络通信的多处理器系统。NoC有效改善了片上多核系统的通信瓶颈问题,将成熟的网络技术借鉴到芯片设计领域,极大扩展了集成电路设计空间。

参考文献[1][2]介绍了软件无线电技术的发展概况和关键技术研究。文献[3][4][6]都涉及到了从SoC到NoC技术的发展和现状。文献[8][9][10]展示了NoC设计方法学和各种基于FPGA的NoC设计原型。文献[7]中将4G无线通信系统映射到一个2D mesh NoC架构的仿真平台上,但是并没有硬件原型验证和软件无线电思想的引入。本文创新性地将软件无线电思想引入到基于NoC构架的硬件集成电路中,设计并通过FPGA原型验证了一个基于NoC架构的通用软件无线电验证平台。这个平台具有很好的可扩展性和可配置性。文章的第二部分概述了NoC硬件底层的组成结构以及设计要素。第三部分介绍该软件无线电验证平台的软硬件协同设计方案。第四部分以OFDM基带收发系统为验证实例,讲述了在该平台上验证软件无线电系统的流程,并且给出了实际性能测试结果。第五部分对全文进行了总结。

2NOC硬件平台概述

2.1片上网络组成要素

从硬件组成上来看,NoC包括资源节点和通信两类节点。资源节点完成广义的计算任务。网络中资源核可以是DSP芯片,可以是设计者自主设计的ASIC,可以是一个SoC,可以是一个高速缓存块,也可以是一个通用处理器。这种因应用而异的设计被称为ASNoC(Application Specific NoC)。然而不论是所有资源核同构的NoC,还是ASNoC,通常情况下它们的交换节点和网络接口都是同构的。通信节点(又称交换开关)负责计算节点之间的数据通信,用路由和分组交换技术替代传统的总线技术完成通信任务[3]。

2.2片上网络设计要素

基于NoC架构的多核片上系统(MPSoC)有如下几个设计要素:拓扑结构,路由算法,交换策略和控制机制。

网络拓扑结构是网络的物理互连结构,可以由规则的路由和通道组成,也可由非规则的路由及通道构成。常用的NoC拓扑结构都为规则结构,如2D Mesh结构、3D Mesh结构、环面(Torus)结构、八角形以及立方环拓扑结构等。

路由算法决定了消息在网络结构中传输的方向,把可能的传输路径集合限制为合理的路径子集。如果消息的路由完全由它的源和目的地址决定,与网络中其它流量无关,这种路由算法称为确定性路由。例如,维序路由采用了确定性路由的方法,数据包不管其路径上的链路是否阻塞都要沿该路径走下去。二维拓扑结构下的维序路由也称为X-Y路由。自适应路由算法允许路径上的其它流量影响数据包的路由策略。例如在2D-Mesh中,如果沿维序路径链路阻塞或出错,数据包可以沿锯齿形的路由流向其目的地。

交换策略决定了网络中的数据如何穿越它选择的路径,有两种基本的交换策略:电路交换和数据包交换。电路交换在通信之前即在通信对象两端建立起通信链路,其优点在于数据传输丢失率低、链路延时较小、不会造成数据乱序。然而电路交换会长时间占用链路,降低了链路使用率。分组交换将线路上数据拆分为数据包,因此比电路交换更为灵活,线路利用率高。另一方面,由于分组交换的数据包均加上了包头来表明目的节点与源节点,且在每一跳均需要进行判断,因此在相同的路径上通信时延比电路交换大。片上网络系统中广泛使用的包交换方式有三种:存储转发方式(store-and-forward)、虚切通方式(virtual cut-through)、虫洞方式(wormhole)。

控制机制决定消息或消息的一部分何时在它的路径上传输。当两个或更多的消息试图同时使用同一网络资源时,需要控制机制进行资源仲裁分配。能在链路上传输、接受或拒绝的最小信息单元称为流控单元(flit),它可以和物理通道字符(physical unit,phit)大小相同,也可以和数据包或消息大小相同[5]。

3验证平台硬件底层的实现方法

3.1验证平台的拓扑设计

本设计采用如图1(a)所示的可扩展的4×4 2-D mesh NoC拓扑结构。整个网络共有16个节点,由互连线链路连接成一个格型网络。互连线链路、交换节点、网络接口和资源核是网络的四大构成要素。网络的16个节点全部选用Xilinx FPGA内部的Power PC405通用处理器核作为资源核,形成一个各节点完全同构的4×4 2-D mesh NoC。

每一个网络节点的具体结构如图1(b)所示,将在下文具体介绍各部分的实现方法。

3.2验证平台的交换结构设计

(1) 路由策略

片上网络系统结构比传统的因特网简单,处理器节点数目也远比因特网少,但是由于片上网络系统具有严格的功耗、面积、成本方面的约束条件,因此片上网络中的路由算法通常设计为固定的路由算法[2]。本文的设计采用经典的维序路由策略,在二维mesh网络中也称作X-Y路由。该路由算法先对网络节点进行坐标编号,求出数据包的源节点和目的节点的二维向量坐标差(ΔX-ΔY),然后让数据包先沿着X轴方向传输ΔX跳,再沿着Y方向传输ΔY跳,最终到达目的节点。

(2) 虫洞交换

虫洞交换方式的消息流控单位是一个微片(Flit),因此使用的缓冲器比传统分组交换方式更小。一个数据包被分为若干个微片,头微片含有路由信息,后面紧跟着的数据微片,没有路由信息,所以同一个包中所有的数据微片都必须跟随着头微片以流水线的方式进行传输。本设计的数据包为固定长度,每个微片32比特,每个数据包包含160个微片。每个数据包的第一个微片为头微片,里面包含了整个数据包的路由信息,如源节点,目的节点等。其余159个微片为数据包体,为有效载荷。交换开关的注入端口(Injection Port,图1(b))接收来自网络接口(NI)的数据包,并转换成适合虫+孔交换传输的流控单元,即微片。注出端口(Ejection Port)收集来自网络的微片,组成完整数据包,投递给NI。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

(3) 路由器结构

路由器处于交换节点的核心位置,完成数据包转发,即数据包存储,路由计算,交换网络资源分配等功能。

本设计的路由器结构如图2所示。路由器结构每一个输入端口有4个虚输出队列(Virtual Output Queue,VOQ),对应不同的输出通道。VOQ(i,j)里面存放着由输入通道i进入路由器,并且请求输出通道j的Flit,其中i≠j,因为片上网络中不存在数据包从一个端口输入又立即从该端口输出的情况。当Flit到达队列,队列提出对相应输出通道的请求,每一个输出通道对应的交换分配单元(SA)对请求进行仲裁并进行输出通道分配。如果某一队列的请求被允许,那么队列里Flit被传送出去。

虚拟输出缓存是在每个输入端,对每个输出保留一个单独的FIFO。做出仲裁判决之后,一个到达的数据被置于相应于它的输出端口的缓存中。在每个时隙的开始,就能找到每一个输入所对应的输出端口,并将输入数据存入到应当输出的端口所对应的VOQ中。当从VOQ中输出数据的时候,如果没有竞争,输出端口只需要从对应的VOQ中读取数据就可以了,不需要再次进行方向的判定。如果存在多个VOQ竞争同一个输出口,则进行仲裁,确定先后次序[3]。

3.3 计算单元(PE)

我们的设计在Xilinx公司的Virtex4 FPGA上实现,而Virtex4系列FPGA的每个片内均集成了2个Power PC405处理器核。我们的每块PCB板上面有两个FPGA芯片,总共4块PCB共提供了16个Power PC405,刚好对应 4×4 2-D mesh NoC的资源核。有关Power PC的介绍请参看文献[11]。

3.4 NI的软硬件协同设计

网络接口(Network Interface, NI)负责上层处理单元和底层路由交换节点的数据交互。NI的设计分为软件和硬件两部分。硬件由挂接在Power PC总线上的硬件IP核以及外部(FPG内,Power PC封装之外)存储单元构成,而软件部分运行在Power PC上,Power PC通过NI软件代码响应硬件NI的请求并且向硬件NI发出控制信号。

从图1(b)中已经知道,按照传递数据方向的不同,可以将NI分成注入NI(Injection NI)和注出NI(Ejection NI)两部分。注入和注出NI的结构设计如图3所示,图中的GPIO接口传递PE和Switch之间的控制信号(握手信号),为控制通道。EMC是PowerPC对外部RAM的进行读写的控制器,为数据通道。

注入NI工作原理: PowerPC通过GPIO接口检测Switch的接收缓存是否空闲,如果空闲,则Switch发出一个高电平有效的Available信号给PowerPC,告知PowerPC此时可以向路由器注入数据。PowerPC发送数据包到NI的中间缓存(图中的RAM),当向RAM写好一个数据包后,PowerPC通过GPIO口向Switch发出一个Packet_Rdy信号,通知Switch此时可以开始提取数据包。Switch提取完一个数据包并释放了接收缓存后,就将Available置高,表示PowerPC可以向Switch发送下一轮数据包。这个过程表现出握手协议特征。每次握手完成一个数据包向网络的注入,因此注入NI和Switch的接收缓存的大小必须不小于一个数据包所占的存储空间。

注出NI工作原理:路由策略解析了数据包的目的节点后,目的节点的Switch接收到一个数据包所有的微片后将其组成一个完整的数据包,放在其缓存中。如果上一次中断响应信号Response已经被Switch收到(这时注出NI的RAM必定空闲),Switch就将数据包写入到注出NI的RAM中,同时向PowerPC发出中断请求信号Packet_Rdy。PowerPC响应该中断,从RAM里面提取数据包。提取完后,将Response信号置高,以此通知Switch此数据包已经成功发到PowerPC,可以进行下一轮数据包的注出。

4OFDM基带系统在平台上的验证

4.1 OFDM基带系统实现方案

OFDM的基本原理是把高速的数据流通过串并变换,分割为若干路低速的数据流,然后采用相互正交的子载波调制每路数据,并叠加在一起构成发送信号。在接收端用同样数量的子载波对发送信号进行相干接收,得到低速的数据信息后,再通过并串变换得到原来的高速数据流。OFDM基带系统细化的实现框图如图4所示。我们先对各模块运算量和存储资源进行了估算,然后参考FPGA内的PowerPC所提供的资源量,为各关键模块分配了资源核,完成了任务到图1所示的NoC硬件平台的映射。因为发送端和接收端的对等关系,我们只实现了从发送端16QAM调制到接收端16QAM解调之间的模块,信源和信宿端的数据处理不包括在本设计中。从信源发出的数据经过CRC、信道编码和交织等处理之后,进入16QAM调制模块(其他调制模式亦可)。我们的设计采用基于导频的信道估计方法,所以在发送端要在有效数据之间插入导频符号。为了避免无线信道高频部分的信号畸变和提高信号在时域的分辨率,我们将每个符号的882个有效采样数据映射到4096个子载波的低频部分。IFFT(Inverse Fast Fourier Transform )将频谱数据信号变换为时域信号。它是OFDM系统中最关键的模块,也是运算复杂度最高的模块。所以在图6中,发送端的4096点的基4-IFFT总共有6级蝶形结,接收端的FFT为2048点,不能采用基4-FFT,但是如果采用基-2FFT,总共有11级蝶形结,运算复杂度偏高。所以我们采用了2-4混合基FFT算法,5级基4蝶形结,1级基2蝶形结。时域串行的数据流经过加循环前缀,加窗和限幅等操作后,还需要在发送之前加入同步码。接收端进行相反操作。为了降低接收端FFT运算的复杂度,将接受到的数据先进行了2倍下采样。因为发送端和接收端在同一个NoC网络上,时钟全局同步,排线连接可靠,所以我们加入了一个信道模块,模拟了信号经过高斯白噪声信道的情况。需要说明的是,因为在PE内部对数据是按照数组进行处理的,所以在我们的模块框图中没有串并转换。

4.2 承载OFDM基带系统的软件无线电平台

完成了软硬件平台设计和OFDM应用向平台的映射之后,接下来用C语言对每个PE上的任务进行了描述。功能验证通过后,在NoC平台上进行联合调试。调试使用赛灵思的EDK和ISE开发工具。采用赛灵思公司的XC4VFX60系列FPGA,硬件实物图如图5所示。在接收端的信道估计模块后插入chipscope核,捕获的输出星座图如图6所示。因为在信道中加入了18 dB的高斯白噪声,所以星座图表现出一定的离散度。

4.3 OFDM基带系统性能分析

系统时钟频率是100 MHz,经过倍频的PowerPC工作时钟频率是200 MHz,而路由转发结构工作在50 MHz时钟频率下。

一个数据包从PE1注入网络,经过路径 (1) Switch1Switch2Switch3Switch7Switch6Switch5Switch4整个路由转发路径,总的传输延时为9.8。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

一个数据包从PE1注入网络,经过路径 (2) PE1NI1Switch1Switch2NI2PE2NI2Switch2Switch3NI3PE3NI3Switch3Switch7NI7PE7NI7Switch7Switch6NI6PE6NI6Switch6Switch5NI5PE5NI5Switch5Switch4NI4PE4NI4Switch4,整个数据收发路径,数据包的传输延时为40.96μs。

映射在网络上的OFDM系统链路按照流水线的方式工作,处理一个OFDM符号的时长是 7.1624 s。因为在PE上的数据处理的最小单位是一个OFDM符号,而且运行在PowerPC上的软件程序是顺序执行的,没有进一步的流水和并行操作,这是导致单次OFDM处理时间较长的原因之一。NI设计中引入PowerPC的中断操作也是导致延时增大的原因。

OFDM系统的总功耗约为800 mW(只包括映射了OFDM功能模块的网络节点)。FPGA Slice资源的占用率为38.5%,Block RAM资源的占用率为89%。

5 总结

本文设计了一种基于NoC架构的软件无线电系统验证平台。根据OFDM系统在该平台上的建模实例,证明本设计是一个高效、可靠、灵活的软件无线电验证平台。一个以4×4 2-D mesh NoC 电路为基础的硬件平台在FPGA上的设计实现,用户可以通过在处理器核上加载软件的方式将无线通信关键技术映射到该硬件平台上,并且以OFDM基带算法为验证实例,提供了一个完整的软件无线电算法验证思路。硬件底层采用虫洞交换、确定路由、输出缓存队列(Virtual Output Queue,VOQ)机制,一种全新设计的NI完成硬件底层和处理器之间的数据交互。这个基于NoC架构的软件无线电验证平台具有很好的通用性和可扩展性,用户可以根据需要将平台扩展成应用实例需要的规模。设计者只需要改变软件代码就可以在这个平台上验证和实验各种软件无线电系统。

参考文献

[1] 唐睿, 陈霞, 谈振辉. 软件无线电的数字中频技术在WCDMA基站中的应用[J]. 北京交通大学学报, 2005,(05)

[2] 袁梦涛. 软件无线电中的数字信号处理及参数估记[D]. 浙江大学, 2002

[3] 李孟林. 从SoC到NoC的集成电路设计技术发展.半导体技术, 2008,33(3):190-192.

[4] 武畅.片上网络体系结构和关键通信技术研究[D]. 电子科技大学,2008

[5] 李磊. 片上网络NoC的通信研究[D]. 浙江大学, 2007

[6] Wang Ling, Hao Jianye and Wang Feixuan."Bus-Based and NoC Infrastructure Performance Emulation and Comparison," ITNG 2009 - 6th International Conference on Information Technology: New Generations, p 855-858, 2009.

[7] Delorme Julien and Houzet Dominique. "A complete 4G radiocommunication application mapping onto a 2D mesh NoC architecture," 4th International IEEE North-East Workshop on Circuits and Systems, NEWCAS 2006 - Conference Proceedings, p 93-96, 2006.

[8] Ogras, Umit Y, Challenges and promising results in NoC prototyping using FPGAs. IEEE Micro, v 27, n 5, p 86-95

[9] Genko, Nicolas, Noc Emulation:A tool and Design Flow for MPSoC. IEEE Circuits and Systems Magazine, v 7, n 4, p 42-51, Fourth Quarter 2007

[10] Bertozzi, Davide, NoC synthesis flow for customized domain specific multiprocessor systems-on-chip. IEEE Transactions on Parallel and Distributed Systems, v 16, n 2, p 113-129, February 2005.

[11] Xilinx Corporation. Xilinx Virtex-IV FPGA and EDK. Available:www.省略, 2010.

作者简介

王建荣,电子科技大学通信抗干扰技术国家级重点实验室,硕士研究生。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

上一篇:基于System Generator的Costas锁相环设计实现 下一篇:畅谈微处理器和SoC设计技术的发展趋势