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

发布者:sjp5035022最新更新时间:2008-01-23 来源: www.esic.cn关键字:Nios  SOPC  乘法器  Quartus  DSP处理器  数字滤波  总线控制器  傅里叶变换 手机看文章 扫描二维码
随时随地手机看文章

  摘要 结合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技术中有着越来越多的应用。

 

关键字:Nios  SOPC  乘法器  Quartus  DSP处理器  数字滤波  总线控制器  傅里叶变换 引用地址:单片DSP处理器功能系统的SOPC技术设计

上一篇:单片DSP处理器功能系统的SOPC技术设计
下一篇:单片DSP处理器功能系统的SOPC技术设计

推荐阅读最新更新时间:2024-05-02 20:39

51单片机ucos ii任务切换汇编代码分析(1)
ucos中任务切换函数都是汇编写的,属于“需移植”文件, 这个汇编文件名一般叫做:OS_CPU_A.ASM 要想看懂任务切换的原理,首先遇到的第一个难点,就是OS_CPU_A.ASM这个汇编文件里的一大堆不常见的汇编伪指令,搞懂这些指令是搞懂程序原理的第一步。 这篇文章先只分析这些汇编指令。 这个文件为ucos操作系统提供了4个API函数,分别是: PUBLIC OSStartHighRdy;函数功能:切换到已就绪的任务横纵优先级最高的那个任务中去 PUBLIC OSCtxSw ;函数功能:一般的上下文切换,ContextSwitch,上下文切换又叫任务切换 PUBLIC OSIntCtxSw ;函数功能:在
[单片机]
SoPC上实现的波形发生器
摘要:可编程片上系统(SoPC)设计是一个崭新的、富有生机的嵌入式系统设计方向。嵌入式集成化设计已成为电子领域发展的一个重要方向。Xilinx提供的EDK正是用于创建基于FPGA的嵌入式系统的开发工具包。本文介绍基于SoPC的波形发生器在EDK工具包下的设计与实现。本设计采用嵌入式软处理器核 MicroBlaze以及自主编写的包括实现DDS在内的多种IP Core,最大限度地实现系统的集成化。 关键词:SoPC IPCore EDK MicroBlaze DDS 波形发生器 引 言   SoPC可编程片上系统是一种特殊的嵌入式微处理器系统。首先,它是片上系统(SoC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系
[嵌入式]
基于单片机软核的SOPC系统设计与实现
随着微电子工艺技术和IC设计技术的不断提高,整个系统都可集成在一个芯片上,而且系统芯片的复杂性越来越高。为了提高效率,复用以前的设计模块已经成为系统世馘 (SOC)设计的必上之路。SOC的实现基本上有两种方法,一种是用ASIC芯片实现,另一种是FPGA或PLD芯片实现。后一种实现也称为SOPC实现。SOPC技术是美国Altera公司于2000年最早提出的,即用大规模可编程器件实现SOC的功能。它为SOC的实现提供了一种简单易行而又成本低廉的手段,极大地促进了SOC的发展。本文设计就是采用SOPC技术,在一块FPGA芯片上,实现一个水文测报通信系统。该系统是专门为国家防汛指挥系统项目而开发的实时多任务的前置通信控制机,用于实现水文数
[单片机]
基于单片机软核的<font color='red'>SOPC</font>系统设计与实现
基于SOPC 技术的车辆电子后视镜系统设计
摘要:为提高倒车的安全性,提出了一种基于SOPC 技术的车辆电子后视镜系统,该系统具有后视摄像、双频超声波大范围测距、语音播报测距结果等功能。对系统中各硬件模块及其关键技术进行了详细的论述。   随着电子技术的发展,许多智能化技术被广泛应用到车辆上,车辆后视镜系统作为重要的安全辅助装置也经历了几代的技术发展 。目前车辆后视镜系统出现了两种新技术:后视摄像和倒车雷达。前者图像直观、真实,但无法给出精确的距离;后者能精确地测量距离,但对于车后方的水坑、凸出的钢筋等无法做出反映,因此存在安全上的死角 。车辆上的雷达测距有以下几种:激光测距、微波测距和超声波测距。前两者测量距离远、测量精度高,但成本很高;后者成本低,但测距范围通常
[汽车电子]
基于<font color='red'>SOPC</font> 技术的车辆电子后视镜系统设计
μC/OS-II的任务切换机理及中断调度优化
引言 在嵌入式操作系统领域,由Jean J. Labrosse开发的μC/OS,由于开放源代码和强大而稳定的功能,曾经一度在嵌入式系统领域引起强烈反响。而其本人也早已成为了嵌入式系统会议(美国)的顾问委员会的成员。 不管是对于初学者,还是有经验的工程师,μC/OS开放源代码的方式使其不但知其然,还知其所以然。通过对于系统内部结构的深入了解,能更加方便地进行开发和调试;并且在这种条件下,完全可以按照设计要求进行合理的裁减、扩充、配置和移植。通常,购买RTOS往往需要一大笔资金,使得一般的学习者望而却步;而μC/OS对于学校研究完全免费,只有在应用于盈利项目时才需要支付少量的版权费,特别适合一般使用者的学习、研究和开发。自1992
[单片机]
μC/OS-<font color='red'>II</font>的任务切换机理及中断调度优化
指尖上的中国 天语大黄蜂II即将登场
    日前,小编从天语内部获得消息,天语将推出一款新型号的智能手机,这款手机是大黄蜂系列的换代产品。手机的正式名称尚未确定,据估计,很有可能就是传言已久的大黄蜂II。   目前比较确实的消息是天语大黄蜂II会搭载全球首款四核移动处理器——英伟达图睿3(NVIDIA Tegra 3),并且采用最新的Android 4.0.4操作系统。自英伟达首席执行官黄仁勋于今年2月17日对外界透露第一批搭载图睿3四核移动处理器的智能手机将会在第一季度开始出货以来,相关产品的消息一直备受消费者关注。看来,这一次天语又走在了世界前沿,大黄蜂II很可能成为首款采用该处理器的国产智能手机。 设计精巧的翘板式SIM卡槽无需工具便可轻松开启   机身方面,
[手机便携]
Dream Chip与Tensilica合作开发图像/视频算法,应用于新的IVP数字信号处理器
美国加州SANTA CLARA和德国GARBSEN-2013年2月18日,Tensilica和Dream Chip科技(以下简称DCT)宣布,将合作开发及优化DCT的视频和图像信号处理软件,应用于Tensilica新的IVP图像DSP(数字信号处理器)。DCT是Tensilica多年的合作伙伴,以其丰富的图像、视频专业背景为两家公司共同的客户提供技术支持。 Tensilica影像/视频部门总监Gary Brown表示:“DCT拥有丰富的图像和视频信号处理专业技术,一直以来都和Tensilica保持着合作关系,成为TensilicaIVP产品早期的合作伙伴是很自然的选择,DCT在IVP的前期研发阶段提供了很多帮助,凭着在图像和视频
[嵌入式]
CDC906 – 可定制编程的 3-PLL 时钟合成器/乘法器/除法器
CDC906 是目前市场上体积最小且功能强大的 PLL 合成器/乘法器/除法器之一。尽管其物理外形非常小巧,但却极为灵活。该器件能够在特定输入频率下生成几乎独立的输出频率。 输入频率可通过 LVCMOS、差动输入时钟或单个晶振产生。通过 SMBus 数据接口控制器可以选择相应的输入波形。 为了获得独立的输出频率,每个 PLL 的参考除法器 M 都能设置于 1 至 511 的范围内,反馈除法器 N 则可设置于 1 到 4095 的范围内。然后将 PLL-压控振荡器 (VCO) 频率路由至可自由编程的输出开关矩阵,再路由至 6 个输出中的任意一个。开关矩阵包括一个附加的 7 位后除法器(1 到 127 的范围)以及一个针对每个输出的
[新品]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

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