当前位置:华创抄板公司 >> 新闻中心 >> 行业动态 >> 深圳pcb抄板DSP的SOPC技术设计方案

深圳pcb抄板DSP的SOPC技术设计方案

    通过Matlab和DSP Builder或直接用VHDL设计并生成复数乘法器、整数乘法器和浮点乘法器等硬件模块,将它们定制为相应的指令,从而将软件的灵活性和硬件的高速性结合起来,较好地解决了传统DSP处理器所面临的速度问题、硬件结构不可重构性问题、开发升级周期长和不可移植性等问题。
    随着微电子技术和计算机工具软件的发展,可编程片上系统SOPC的设计理念和设计方法成为了一种趋势。为了解决传统DSP处理器所面临的速度问题、硬件结构不可重构性问题、开发升级周期长和不可移植性等问题,我们应用Altera公司推出的Nios II嵌入式软核处理器,提出了一种具有常规
    DSP处理器功能的Nios II系统SOPC解决方案。
    由于可编辑的Nios II核含有许多可配置的接口模块核,因此用户可根据设计要求,利用Quar-tusII和SOPC Builder对NiosII及其外围系统进行构建。而且用户可通过Matlab和DSP Builder,或直接用VHDL等硬件描述语言设计,为Nios II嵌入式处理器设计各类硬件模块,并以指令的形式加入Nios II的指令系统,从而成为Nios II系统的一个接口设备,与整个片内嵌入式系统融为一体,而不是直接下载到FPGA中生成庞大的硬件系统。正是Nios II所具有的这些重要特点,pcb抄板使得可重构单片DSP处理器功能系统的设计成为可能。
    1 系统结构
    本系统为单片DSP可重构系统,能实现数字信号处理方面各种功能。其中,Nios II软核处理器的建立,主要起人机交互和控制作用。FPGA的逻辑模块从Nios II处理器接收控制信号和数据后,实现相应的硬件功能。系统结构框图如图l所示。除了软核处理器Nios II外,存储器和I/O接口以及FIR数字滤波器、IIR数字滤波器和DDS等应用模块均可作为外设嵌入在FPGA中。这样,整个DSP的数字信号处理部分全部集成在FPGA器件中,各模块均受Nios II处理器的控制。Nios II处理器系统中有Avalon总线,它规定了控制器与从属模块间的端口连接以及模块阃通信的时序。数字频率合成器DDS通过Avalon总线与Nios II处理器相连,能很方便地完成控制及数据传送。
    本系统的FPGA采用Cyclone EPICl2,它有12 060个逻辑单元(LE)和2个锁相环(PLLs),提供6个输出和层次时钟结构以及复杂设计的时钟管理电路。选用超高速10位D/A转换器565l实现D/A转换功能,转换速率最高为150 MHz。整个系统在Nios II处理器的控制下,可实现FIR数字滤波、IIR数字滤波、快速傅里叶变换(FFT)算法、编/解码、DDS功能模块设计,以及由它构成的数控频率调制、正交载波调制解调、数控相位调制等功能的信号发生器。
    系统中各功能模块的选择,以及输出信号调制方式和频率的选择,均可通过外接的按键自由选择。下面构建一个具有常规DSP处理器功能的Nios II系统。
    2 Nios II嵌入式系统设计流程
    NiosII嵌入式处理器是Altera公司推出的一种专门为单芯片可编程系统(SOPC)设计而优化的CPU软核,是一种面向用
    户、可以灵活定村的通用RISC(精简指令集)嵌入式CPU。它采用Avalon总线结构通信接口,电路板克隆带有增强的内存、调试和软件功能,可采用汇编或C、C++等语言进行程序优化开发;具有32位指令集、32位数据通道和可配置的指令及数据缓冲。与普通嵌入式CPU系统的特性不同,其外设可以灵活选择或增删,可以自定制用户逻辑为外设,可以允许用户定制自己的指令集。由硬件模块构成的自定制指令可通过硬件算法操作来完成复杂的软件处理任务,也能访问存储器或Nios II系统外的接口逻辑。设计者可以使用Nios II加上外部的Flash、SRAM等,在FPGA上构建一个嵌入式处理器系统。
    完整的基于Nios II的SOPC系统是一个软硬件复合的系统,因此在设计时可分为硬件和软件两部分。Nios II的硬件设计是为了定制合适的CPU和外设,在SOPCBuider和Quartus II中完成。在这里,可以灵活定制NiosII CPU的许多特性甚至指令;可以使用Altera公司提供的大量IP核来加快开发Ntos II外设的速度,提高外设性能;也可使用第三方的IP核,或VHDL自己来定制外设。完成Nios II的硬件开发后,SOPC Buider可自动生成与自定义的Nios II CPU和外设系统、存储器、外设地址映射等相对应的软件开发包SDK;在生成的SDK基础上,进入软件开发流程。可使用汇编或C语言,甚至C++语言来进行嵌入式程序设计,使用GNU工具或其他第三方工具进行程序的编译、链接及调试。