当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]单片DSP处理器功能系统的SOPC技术设计

摘要 结合Altera公司推出的Nios II嵌入式软核处理器,提出一种具有常规DSP处理器功能的NiosII系统SOPC解决方案;利用NiosII可自定叉指令的特点,通过Matlab和DSP Builder或直接用VHDL设计并生成复数乘法器、整数乘法器和浮点乘法器等硬件模块,将它们定制为相应的指令,从而将软件的灵活性和硬件的高速性结合起来,较好地解决了传统DSP处理器所面临的速度问题、硬件结构不可重构性问题、开发升级周期长和不可移植性等问题。
关键词 Nios II 可编程片上系统(SOPC) DSP处理器 FPGA


    随着微电子技术和计算机工具软件的发展,可编程片上系统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所具有的这些重要特点,使得可重构单片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工具或其他第三方工具进行程序的编译、链接及调试。

3 系统硬件设计
   
系统的硬件系统包括3个部分:FPGA部分、存储器部分和外围元器件部分。FPGA部分是建立在FPGA内的,在SOPC Buider中需要设计的就是该部分。其中包含1个NiosII CPU核,1个内部时钟,1个Avalon总线控制器,连接Nios II核的下载和调试程序的JTAG_UART通信模块,DDS接口模块及DDS模块,FIR、IIR数字滤波器接口模块及功能模块,编解码模块及接口模块,以及Flash存储器模块等。其设计与一般的嵌入式开发不同,可在Nios II核外(但还在同一个FPGA芯片内)加入相应的外设模块核,并通过在片上的Avalon总线与Nios II相连。为使具有DSP处理器功能的Nios II系统正常工作,在FPGA外围接有一些控制键,以调度各模块的应用。

3.1 建立Nios II嵌入式处理器系统
   
首先,利用Quartus II建立项目工程,选用的目标器件为Cyclone EPIC12;再用SOPC Bider创建Nios II组件模型,生成硬件描述文件,锁定引脚后进行综合与适配,生成Nios II硬件系统下载文件;然后建立Nios II嵌入式系统,从SOPC Buider组件栏中加入所需的组件(如Nios IICPU核、定时器Timer、JTAG_UART、Avalon三态总线桥、键输入I/O口和Flash等)。另外,为了实现NiosII处理器对EPCS Flash存储器的读写访问,还要加入一个EPCS Serial F1ash Controller组件。通过此控制器将用于FPGA配置的SOF文件和CPU运行的软件一并存于EPCS器件中,以便大大简化硬件系统组成结构。为了保证所有组件的地址安排是合法的,要对各组件地址实行自动分配;最后进行全程编译(即分析、综合、适配和输出文件装配),完成Nios II硬件系统的设计。
    在Nios II硬件系统设计完成后。将配置文件下载到指定的FPGA中。通过SOPC Buider软件窗口,可进入Nios II IDE软件开发环境进行软件设计。

3.2 DSP处理器功能系统的建立
   
使用DSP Buider在FPGA上进行DSP模块的设计,可实现高速DSP处理。但是,在实际应用中,除了要求DSP高速外,由于DSP处理的算法往往比较复杂,如果单纯使用DSP Bider来实现纯硬件的DSP模块,会耗费过多的硬件资源,因此有时也无法完成许多算法复杂的模型。而Nios II则是一个建立在FPGA上的嵌入式微处理器软核,它有一个重要的特性是具有自定制指令。在DSP算法中会反复出现一些运算(如复数乘法器、整数乘法器、浮点乘法器等),而在通用的CPU中都没有专门用于复数乘法计算和浮点乘法计算的相关指令。在系统设计中,利用MATLAB、DSP Buider或者VHDL设计并生成复数乘法器、整数乘法器、浮点乘法器等硬件模块。在Quartus II环境中对上述文件做一些修正后,在SOPC Buider窗口中将它们定制为相应的指令,并可设定或修改执行该指令的时钟周期。在进行DSP算法运算时,可通过汇编或C语言,甚至C++语言来运用这些自定义指令进行嵌入式程序设计。
    根据复数运算的算法,假设有2个复数为a+bj和c+dj,则乘法表述为:

   
    图2是用MATLAB、DSP Buider设计的复数乘法器模型。它实现了一个16位的复数乘法,虚部和实部都是16位,可以用一个32位的值表示该复数。在设计中,NiosII为32位数据,正好可以放置2个复数。

    要将这个复数乘法器硬件模块设置成相应的指令,还须进行以下操作:
    ①单击图标SignalCompiler对其进行转换,选择器件(用Cyclone)和Quartus II综合器.转换后使其生成SOPCBuider的PTF文件。
    ②退出MATLAB后,在Quartus II环境中对转换后所生成的复数乘法器的顶层VHDL文件进行修改。在SOPC Buider窗口双击CPU项,进入“指令加入”编辑窗,将这个硬件模块设置成自定义的复数乘法指令。
    指令生成后,可利用Quartus II编辑C程序进行测试;测试成功后,在DSP算法计算中遇到复数乘法就可以运用复数乘法指令。这种方法将常用的硬件模块生成指令,通过软硬件并存的设计方法在FPGA中实现较复杂的DSP算法,能够将软件的灵活性和硬件的高速性结合起来,较好地解决了现代DSP设计中的诸多问题。但对于DDS模块,还是以硬件形式固化在FPGA中。可以根据需要,利用DDS设计出幅度、相位和频率调制器。
    另外,Nios II的外设是可任意定制的,Nios II系统的所有外设都是通过Avalon总线与Nios II CPU相接的。Avalon总线是一种协议较为简单的片内总线,Nios II通过Avalon总线与外界进行数据交换。在本系统中,采用AvalonSlave外设方式加入了自定制AvalorL总线组件A/D转换接口模块、D/A接口模块,用于控制采样A/D的工作以及高速D/A的波形数据输出;而自定义的Avalon总线组件DDS模块接口和DSP功能转换控制接口,则用于Nios II CPU对DDS模块的控制,以及通过外部键盘来控制DSP功能的选择。


结语
   
整个系统除了A/D、D/A转换器和控制选择键盘外接外,其余都在一片FPGA町编程芯片中。由于有NiosII作CPU,因此既可自定义指令,也可通过Avalon总线自定义各种接口模块组件,使整个DSP系统的使用灵活多样,在现代DSP技术中有着越来越多的应用。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭