1 平台设计
本开发平台采用基于FPGA的解决方案,利用Matlab、Modlesim以及Altera公司的综合/配置/下载专用软件等相关工具,在PC环境下构建出一个软件开发平台,用于算法验证和性能仿真;利用基于FPGA的硬件平台——如Altera的DSP 开发板——来完成设计的下载、验证与测试;并通过定制的内嵌软核CPU实现对系统内部各功能模块和存储器、I/O接口等资源模块的配置和管理,从而达到按不同通信系统的要求和特点迅速完成设计、验证和移植的目的,此外,还能灵活的修改、升级甚至重新配置。
1.1平台的构建
设计涉及到具体的芯片信息,使得目前不同的FPGA芯片的设计流程有所不同,无法完全实现采用较为通用的软件进行前端设计(包括系统设计、算法开发、功能仿真和综合实现),采用芯片支持的专用软件进行后端设计(包括时序仿真、布局布线和下载)。因此,采用Altera的FPGA后,平台组成分为三部分:基于PC的设计和测试软件部分,设计和测试的硬件开发板部分,观测和其他辅助部分。
其中,基于PC的设计和测试软件部分包括设计和测试的各种软件,即:Matlab/Simulink、Modlesim、DspBuilder、SOPCBuilder、Quartus等;硬件开发板则可用Altera公司的NIOS、ARM、DSP各种开发系统,也可以根据需要自主开发添加各种软硬件应用接口并对外围器件进行调配后的FPGA开发板;观测和其他辅助部分包括平台内观测的人机界面等软硬件、平台外观测的示波器或逻辑分析仪以及噪声发生器、信号发生器、接收机等。
1.2平台的设计测试流程
平台的设计测试流程实现框图如下图1所示:
图1
平台的设计流程侧重于系统的算法验证和控制实现,其中算法部分主要通过DSP Builder实现,为图中用实线连接部分;控制部分由Nios II IDE和SOPC Builder完成,为图中短线连接部分。
平台的测试流程主要结合开发板实现设计指标的验证,为图中点线连接部分,有外部观测和内部观测两种方法。其中,外部观测通过外加示波器或逻辑分析仪完成;内部观测可以通过平台的人机操作界面完成,也可以通过配套软件来实现,根据复杂度和测试内容的不同分为自动流程和手动流程。
自动流程包括如下四个步骤[1]:
(1)Matlab/Simulink/DspBuilder建模。
(2)平台仿真。
(3)DspBuilder完成VHDL转换、综合、适配、下载。
(4)嵌入式逻辑分析仪——SignalTap完成实时测试。
手动流程包括如下七个步骤:
(1)Matlab/Simulink/DspBuilder建模。
(2)平台仿真。
(3)DspBuilder完成VHDL转换、综合、适配。
(4)Modlesim对TestBench功能仿真。
(5)Quartus II完成适配、时序仿真。
(6)芯片引脚锁定、配置下载、编程。
(7)嵌入式逻辑分析仪——SignalTap完成实时测试。
3 可配置设计
在可重构系统中,硬件的配置信息可以类似软件程序一样被动态调用或修改,进而达到电路的实时重构,这样既保留了硬件的快速性,又兼具软件的灵活性。因此,实时电路重构的实质就是利用可编程器件能多次重复配置资源和功能的特性,既可以在运行时根据需要动态改变系统的部分参数或部分电路结构,也可以通过重加载完成整个系统的软硬件升级[2]。
整个系统的可配置内容和实现流程[3]如图2所示:
图2
如上图所示,平台的可配置设计主要体现在四个方面:参数的可重加载;模块的可重选择;系统的可重下载;硬件的可重定制。
参数的可重加载是针对类型相同,参数不同的信号与系统,其系统结构基本不变,只是系统中模块的参数可以重新进行设置和调整。
模块的可重选择是对结构相似,类型不同的信号,只对系统中相应的部分进行重新加载或重新组合。
系统的可重下载是指:如果目前加载的系统用前面两种调整方式依然不能满足要求时,则可以根据需要重新设计下载,或者在需要进行系统升级时通过重新下载完成。
硬件的可重定制主要针对基于本平台进行嵌入式系统的开发,这也是本方案与传统方案的最大区别之处。它通过采用Altera公司的SOPC Builder解决方案来实现。即将处理器、存储器、I/O口、总线等系统设计需要的功能模块集成在一个FPGA芯片上,从而构建出一个硬件可定制的片上系统
4 基于平台的设计实例
下面我们结合简单全数字通用接收机设计实例来说明该平台可配置的特点和设计测试流程。
全数字通用接收机[4]的基本结构为:解调+解码+数据恢复+配置控制。其中输入信号的格式可以是连续或离散方式、可以是固定或可变速率;解码方式为RS或Turbo或Viterbi;解调方式是M-PSK系列或M-QAM系列。如下图3所示:
图3
系统配置举例:实现连续模式下,数据速率1Mbit/s,DQPSK调制,RS编码,2Mhz载波,8dB信噪比,1%频偏,1%相偏,16倍采样输出信号的同步、解调和解码。模块的选择和参数的配置方法流程如前,配置后的系统[5][6]如下图4所示:
图4
具体算法实现:数据源采用连续或间断的M序列模拟连续和突发信号,速率通过平台时钟控制;调制解调部分的数控振荡器NCO、Fir滤波器和RS编解码由IP core实现;软件仿真阶段,频偏相偏通过调制端NCO的频率和相位控制字实现,噪声通过程序内加实现;硬件测试阶段,频差、相差、时钟误差、噪声则在直接通过外接实际信号发生设备或噪声源实现。
测试流程:仿真阶段采用程序内加噪声模拟并通过程序自行实时比较的方法,下载后测试则采用外加噪声源后通过实时回读数据并自动比较的方法。其中回读数据采用自动流程,其原理是通过将设置为测试点的数据实时存储到一定容量的片内RAM中,并利用下载线再读回到软件环境中进行显示、比较或存储。
测试结果:图5是在输入信号的X、Y分路信号和合路后加噪前后的信号,图6是收端恢复出X、Y路滤波前后的信号,图7是收发两端X、Y分路和合路后在硬件平台上的回读信号,其中第1、3、5行是输入的X、Y和分路前的数据,第2、4、6行是恢复后的X、Y和合路后的数据,包含了硬件实际的延时。系统采用16倍采样,图5图6观测1024个采样点,图7观测1024个回读采样点。
图5 图6 图7