一种基于Nios II的可重构DSP系统设计

时间:2022-08-30 04:23:55

一种基于Nios II的可重构DSP系统设计

摘要:应用Nios II嵌入式软核处理器所具有的可自定义指令的特点,本文提出了一种具有常规DSP功能的Nios II系统SOPC解决方案。用户可通过Matlab和DSP Builder或VHDL语言来设计复数乘法器、整数乘法器、浮点乘法器等硬件模块,再将它们定制为相应的指令,从而实现软件的灵活性和硬件高速性的结合。

关键词:SOPC;NiosII嵌入式软核处理器;FPGA;DSP

引言

为了解决传统DSP所面临的速度低、硬件结构不可重构、开发升级周期长和不可移植等问题,本文应用Altera公司推出的NiosII嵌入式软核处理器,提出了一种具有常规DSP的NiosII系统功能SOPC解决方案。由于可编程的NiosII核含有许多可配置的接口模块,用户可根据设计要求,利用QuartusII和SOPC Builder对NiosII及其系统进行构建。用户还可通过Matlab和DSP Builder,或直接用VHDL等硬件描述语言,为NiosII嵌入式处理器设计各类硬件模块,并以指令的形式加入到NiosII的指令系统中,使其成为NiosII系统的一个接口设备,与整个片内嵌入式系统融为一体,而不是直接下载到FPGA中生成庞大的硬件系统。正是NiosII所具有的这些重要特点,使得可重构单片DSP系统的设计成为可能。

Nios II嵌入式系统设计流程

NiosII嵌入式处理器专为单芯片可编程系统设计而优化,是一种面向用户、可以灵活定制的通用RISC(精简指令集)嵌入式CPU。它采用Avalon.总线结构通信接口,带有增强的内存、调试和软件功能,可采用汇编或c、C++等进行程序优化开发。NioslI具有32位指令集、32位数据通道和可配置的指令及数据缓冲。

与普通嵌入式CPU系统的特性不同,其外设可以灵活选择或增删,可以自定制用户逻辑为外设,可以允许用户定制自己的指令集。由硬件模块构成的自定制指令可通过硬件算法操作来完成复杂的软件处理任务,也能访问存储器或NiosII系统外的接口逻辑。设计者可以使用NioslI及外部的Flash、SRAM等,在FPGA上构成一个嵌入式处理器系统。

完整的基于NioslI的SOPC系统是一个软硬件复合的系统,因此在设计时可分为硬件和软件两部分。NiosII的硬件设计是为了定制合适的CPU和外设,在SOPC Buider和QuartusI I中完成。在这里可以灵活定制NiosII CPU的许多特性甚至指令,可使用Altera公司提供的大量IP核来加快开发NiosII外设的速度,提高外设性能,也可以使用第三方的IP核或VHDL来自行定制外设。完成NiosII的硬件开发后,SOPC Buider可自动生成与自定义的NiosII CPU和外设系统、存储器、外设地址映射等相应的软件开发包SDK,在生成的SDK基础上,进入软件开发流程。用户可使用汇编或c,甚至c++来进行嵌入式程序设计,使用GNU工具或其它第三方工具进行程序的编译连接以及调试。

单片DSP系统构架

本系统为单片DSP可重构系统,能完成数字信号处理方面各功能的操作。其中NiosII软件处理器主要完成人机交互和控制作用;FPGA的逻辑模块从NiosII处理器接收控制信号和数据后,完成相应的硬件功能。系统框图如图1所示,除了软核处理器NiosII外,存储器、I/O接口以及FIR数字滤波器、IIR数字滤波器、DDS等应用模块等均可作为外设嵌入在FPGA中。这样,整个DSP的数字信号处理部分全部集成在FPGA器件中,各模块受NiosII处理器的控制。NiosII处理器系统中有Avalon总线,它规定了控制器与从属模块间的端口连接以及模块间通信的时序。数字频率合成器(DDS)通过Avalon总线与NiosII处理器相连,能很方便地完成控制及数据传送。

在本系统中,FPGA采用Cyclone EPIC12,它有12060个逻辑单元(LE)和2个锁相环(PLL),提供6个输出和层次时钟结构以及复杂设计的时钟管理电路。整个系统在NiosII处理器的控制下,可实现FIR、IIR数字滤波、快速傅立叶变换(FFT)算法、编/解码等功能,系统还能进行DDS功能模块设计,并构成具有数控频率调制、正交载波调制解调、数控相位调制等功能的信号发生器。系统中各功能模块的选择以及输出信号调制方式和频率的选择均可通过外接的按键自由选择。

系统硬件设计

系统的硬件系统包括FPGA、存储器和元器件3个部分。FPGA部分需要在SOPC Buider中设计,包含NiosII CPU核、内部时钟、Avalon总线控制器、连接NiosII核的下载和调试程序的JTAG―UART通信模块、DDS接口模块及DDS模块、FIR、IIR数字滤波器接口模块及功能模块、编/解码模块及接口模块、Flash存储器模块等。各外设模块核通过在片上的Avalon总线与NiosII相连。为使具有DSP处理器功能的NiosII系统正常工作,在FPGA接有一些控制键,以调度各模块的应用。

建立Nios II嵌入式处理器系统

首先利用QuartusII建立项目工程,选用的目标器件为CycloneEPICl2,用SOPC Buider创建NiosI I组件模型,生成硬件描述文件,锁定引脚后进行综合与适配,生成NiosII硬件系统下载文件。然后建立NiosII嵌入式系统,从SOPCBuider组件栏中加入需要的各种组件:如NiosIICPU Core、定时器Timer、JTAG―UART、Avalon三态总线桥、键输入I/O口、Flash等。另外,为了实现NiosII处理器对EPCSFlash存储器的读写访问,还要加入一个EPCS Serial Flash Controller组件,通过此控制器将用于FPGA配置的SOF文件和CPU运行的软件一并存于EPCS器件中,以便大大简化硬件系统组成结构。为了保证所有组件的地址安排合法,要对各组件地址进行自动分配,最后进行全程编译,即进行分析、综合、适配和输出文件装配,以完成NiosII硬件系统的设计。

在NiosII硬件系统设计完成后,将配置文件下载到指定的FPGA中。通过SOPC Buider软件窗口,可进入NiosII DSK软件开发环境进行软件设计。

DSP处理器功能系统的建立

使用DSP Buider在FPGA上进

上一篇:国际厂商助力中科院计算所龙芯处理器商业化开... 下一篇:配套技术创新进入加速期