单片DSP处理器功能系统的SOPC技术设计

发布者:Radiant777最新更新时间:2007-12-19 来源: 单片机及嵌入式系统应用关键字:波形  接口  乘法  指令 手机看文章 扫描二维码
随时随地手机看文章
结合Altera公司推出的Nios II嵌入式软核处理器,提出一种具有常规DSP处理器功能的NiosII系统SOPC解决方案;利用NiosII可自定叉指令的特点。

通过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所具有的这些重要特点,使得可重构单片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技术中有着越来越多的应用。

关键字:波形  接口  乘法  指令 引用地址:单片DSP处理器功能系统的SOPC技术设计

上一篇:基于DSP的指纹采集系统的研究
下一篇:基于DSP Builder的14阶FIR滤波器的设计

推荐阅读最新更新时间:2024-05-13 21:00

MSP430F5529学习笔记(三)——外部中断
中断是单片机中一个很实用的经典操作,在各项项目中使用有事半功倍的效果。通过对中断服务函数的相关设置和中断触发方式的调整可以使程序更加高效简洁,本文针对MSP430中中断进行简单概述。 中断的基本思想和原理简单来说就是在执行某指令时突然被打断执行新的操作,在执行完后退回被打断的指令继续执行。通俗的说可以理解为:“你在房间写作业突然有人敲门,你开门后继续回去写作业”这一过程,敲门即可以理解为中断触发信号,开门可以理解为中断事件。今天使用简单的按键出发中断控制LED灯亮灭来进行演示,首先依然是对应引脚的配置: WDTCTL=WDTPW+WDTHOLD;//关闭看门狗 P1DIR |=BIT0;//将P1.0设置为输出
[单片机]
MSP430F5529学习笔记(三)——外部中断
【实操视频】一分钟学会信号发生器双通道波形同相位设置
Rigol DG系列任意波形发生器都具有相对相位功能,这允许您对齐输出的相位,然后调整其中一个通道相对于另一个的相位。
[测试测量]
汽车显示器接口设计关键技术分析
  IMS Research的调查显示,带有视频功能的汽车音响主机的数量将会由2006年的850万台增长到2015年的2660万台。为了既能向驾驶员提供信息,又不分散其注意力,显示器需要安装在远离汽车音响主机的位置,并将画面投影到挡风玻璃的背面。这种结合了图像源和面板的视频接口正在越来越多地从模拟视频技术转向质量更高的RGB(红绿蓝)数字视频格式,后者已成为LCD显示器中使用的标准接口。前端显示应用的电缆长度通常保持在1到3米的范围内,而后座娱乐(RSE)单元的电缆则需要达到8米甚至更长。这种连接支持千兆位/秒的数据传输速率,远超过传统车载网络的波特率,并可以利用点对点串行器/解串器(SerDes)解决方案完美实现。与传输一路较宽
[汽车电子]
汽车显示器<font color='red'>接口</font>设计关键技术分析
AD9833型高精度可编程波形发生器及其应用
1 引言 AD9833是ADI公司生产的一款低功耗,可编程波形发生器,能够产生正弦波、三角波、方波输出。波形发生器广泛应用于各种测量、激励和时域响应领域,AD9833无需外接元件,输出频率和相位都可通过软件编程,易于调节,频率寄存器是28位的,主频时钟为25MHz时,精度为0.1Hz,主频时钟为1MHz时,精度可以达到0.004Hz。 可以通过3个串行接口将数据写入AD9833,这3个串口的最高工作频率可以达到40MHz,易于与DSP和各种主流微控制器兼容。AD9833的工作电压范围为2.3V-5.5V。 AD9833还具有休眠功能,可使没被使用的部分休眠,减少该部分的电流损耗,例如,若利用AD9833输出作为时钟源,就可
[应用]
泰克波形监测仪在钻石技术评审中获高分
泰克公司宣布,其新WFM5250波形监测仪在“宽带技术报告”的钻石技术评审中获得优异的4.5钻评级,标志着泰克产品连续第六年在这项深受业界重视的产品评审活动中获得4钻或更高评级。 今年是钻石技术评审(通常称为“钻审”)活动的第九年,评审由杰出的有线电视和电信工程师协会(SCTE)全国委员会成员和有线电视工程专家组成的独立评委会(其中还包括来自最大美国有线电视运营商的高级管理人员)按照客观标准进行。 “新发布产品在钻石技术评审中获得如此之高的评分是对泰克公司致力于开发市场需要的测量工具的认可”,泰克公司视频产品线总经理Eben Jenkins表示,“凭借HDMI连接支持和解码 HDCP保护内容的能力,WFM5250能够直接从机顶盒和
[测试测量]
基于USB接口的锂离子电池充电电路设计方案
  1 锂离子电池及USB接口概述   锂离子(Li-ion)电池,简称锂电池 http://bbs.dianyuan.com/tech/battery ,是近年来逐渐普及使用的一种新型电池,具有体积小、重量轻、容量大(能量密度高)、自放电率低以及无记忆效应等优点,但同时它也有一些致命的缺陷:对充电、放电的要求比较苛刻,不能过充和过放,否则容易造成不可逆转性损坏,在短路、过充等极端情况下还有可能发生爆炸,产生危险。   一般锂电池单节标称电压为316~317V,充电时,一般要求采用限压限流法,首先恒流充电,即电流一定,充电电流按国家标准规定的低倍率充电是 0.2C(仲裁充电制式),最大不超过1C;而电池电压随着充电过程逐步
[嵌入式]
第1天-ARM汇编指令CMP/CMN/TST/TEQ
译注:CMP 和 CMP 是算术指令,TEQ 和 TST 是逻辑指令。把它们归入一类的原因是它们的 S 位总是设置的,就是说,它们总是影响标志位。 CMN : 比较取负的值 (Compare Negative) CMN{条件}{P} , status = op_1 - (- op_2) CMN 同于 CMP,但它允许你与小负值(操作数 2 的取负的值)进行比较,比如难于用其他方法实现的用于结束列表的 -1。这样与 -1 比较将使用: CMN R0, #1 ; 把 R0 与 -1 进行比较 详情参照 CMP 指令。   CMP : 比较 (Compare) CMP{条件}{P} , status = op_1 - o
[单片机]
键盘接口在单片机系统与PC机通信中的应用
    摘要: 提出一种全新的利用键盘接口实现单片机系统和PC机通信的方案,介绍了键盘与PC机通信的原理,并成功地应用于实际系统。该方案为外部单片机系统与PC机通信提供了一条有效的途径。     关键词: 键盘接口 单片机系统 时序 命令字 在工控系统中,单片机应用系统与PC机之间的通信主要是采用异步串行通信方式,通过RS-232C、RS-422、RS-423或RS-499标准接口实现。这引起通信方式都各自规定了自己的电气标准,都不能直接满足 TTL电平的传送要求。为了通过这些标准接口通信,必须在单片机应用系统中加入电平转换芯片,以实现TTL电平向标准接口电平的转换 。 键盘接口是PC机的固有接
[应用]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved