0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子工程师 来源:电子设计应用 作者:唐颖;阮越 2021-05-05 03:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

引言

为了解决传统DSP所面临的速度低、硬件结构不可重构、开发升级周期长和不可移植等问题,本文应用Altera公司推出的NiosIl嵌入式软核处理器,提出了一种具有常规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++等进行程序优化开发。NiosII具有32位指令集、32位数据通道和可配置的指令及数据缓冲。

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

完整的基于NiosII的SOPC系统是一个软硬件复合的系统,因此在设计时可分为硬件和软件两部分。NiosII的硬件设计是为了定制合适的CPU和外设,在SOPC Buider和QuartusII中完成。在这里可以灵活定制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处理器的控制。NiosIl处理器系统中有Avalon总线,它规定了控制器与从属模块间的端口连接以及模块间通信的时序。数字频率合成器(DDS)通过Avalon总线与NiosII处理器相连,能很方便地完成控制及数据传送。

pIYBAGCBTWSARwymAAEk2kNNpB4154.png

在本系统中,FPGA采用Cyclone EPICl2,它有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建立项目工程,选用的目标器件为CycloneEPIC12,用SOPC Buider创建NiosII组件模型,生成硬件描述文件,锁定引脚后进行综合与适配,生成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上进行DSP模块的设计,可实现高速DSP处理。但是,在实际应用中,由于DSP处理的算法往往比较复杂,如果单纯使用DSP Buider来实现纯硬件的DSP模块,会耗费过多的硬件资源,有时也无法完成复杂的运算。在DSP算法巾反复出现的一些运算,如复数乘法、整数乘法、浮点乘法等,在通用的CPU中都没有专门的相关指令。

利用Nios II的自定制指令特性,在系统设计中,可利用MATLAB、DSPBuider或VHDL设计并生成复数乘法器、整数乘法器、浮点乘法器等硬件模块,在QuartusII环境中对上述文件作一些修正后,在SOPC Buider窗口中将它们定制为相应的指令,并可设定或修改执行该指令的时钟周期。在进行DSP算法运算时,可通过汇编或C,甚至C++来运用这些自定义指令进行嵌人式程序设计。

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

o4YBAGCBTXCAAyefAAFvFJ8nD88635.png

要将这个复数乘法器硬件模块设置成相应的指令,还要进行以下操作:单击图标SignalCompiler对其进行转换,选择器件(用Cyclone)、选择Quartusll综合器,转换后使其生成SOPCBuider的PTF文件。退出MATLAB后,在QuartusII环境中对转换后所生成的复数乘法器的顶层VHDL文件进行修改。

在SOPCBuider窗口中双击cpu项,进入指令加入编辑窗;单击Import按钮,进入加入模块文件窗口;单击Add按钮,打开顶层文件;单击Read port-list from files按钮,得到端几加人情况显示窗口;单击Add to System按钮,加入复数乘法器设计模块,将这个硬件模块设置成白定义的复数乘法指令comp。还可以修改该指令的指令周期。单击Generate按钮,进行SOPC生成。

另外,NiosII的外设是可任意定制的,NiosII系统的所有外设都通过Avalon总线与NiosII CPU相接。Avalon总线是一种协议较为简单的片内总线,NiosII通过Avalon总线与外界进行数据交换。在本系统中,采用Avalon Slave外设方式加入了自定制Avalon总线组件A/D转换接口模块、D/A接口模块,用于控制采样ADC的工作并控制高速DAC的波形数据输出。

而白定义的Avalon总线组件DDS模块接口和DSP功能转换控制接口则用于NiosII CPU对DDS模块的控制及通过外部键盘来控制DSP功能的选择。

系统软件设计

指令生成并加入总线和各种需要加入的外设组件(如各类接口、flash等)后,对基于NiosII的SOPC系统进行编译并下载到FPGA中。在NiosII的硬件系统生成的同时,SOPC Buider帮助用户生成相应的SDK(软件开发包)。由于在硬件开发中的Nios CPU及其外设构成的系统是自定制的,存储器、外设地址的映射等都各不相同,需要专有的SDK,用户新定制的指令也必须修改原有的编译工具,这些都由SOPC Buider自动生成。

在生成SDK的基础上,可进入系统软件的设计。在这里,软件的开发设汁与通常的嵌入式系统的开发设计相类似,唯一不同点在于这时面对的嵌入式系统是自己定制的、裁剪过的,因此,受到硬件的局限性会小些。可使用汇编、C、C++来进行嵌入式程序设计,使用GNU工具或其它第三方工具进行程序的编译连接以及调试。

比如,将复数乘法器硬件模块设置成相应的指令后,锁定引脚,全程编译。然后利用QuartusII编辑C程序进行测试。在FPGA中的NiosCPU中运行C程序。测试成功后,在DSP计算中遇到复数乘法就可以运用复数乘法指令。

DDS模块还是以硬件形式固化在FPGA中,可以根据需要,利用DDS设计出幅度、相位和频率调制器。

结语

这种将常用的硬件模块生成指令,软、硬件并存的设计方法在FPGA中可实现较复杂的DSP运算。整个系统除了ADC、DAC和控制选择键盘外,都可在1片FPGA可编程芯片中实现。还可通过Avalon总线白定义各种接口模块组件,提高整个DSP系统的灵活性,将软件的灵活性和硬件的高速性予以结合。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    559

    文章

    8216

    浏览量

    363986
  • FPGA
    +关注

    关注

    1655

    文章

    22287

    浏览量

    630303
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11217

    浏览量

    222952
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    DSP的基础

    高速数字信号处理技术是以DSP为核心,具有高速,实时的特点的一种信息处理技术。其本质是信息的变换和提取。DSP(Digital Signal Processor),即数字信号处理器,是一种
    发表于 11-20 06:35

    AES和SM4算法的重构分析

    、AES和SM4算法特点分析 基于前面几篇分享,我们对AES和SM4的算法流程有了较为清晰的认识,接下来对AES和SM4算法的共同点进行分析,得出二者的重构设计思路。 首先,这里把AES
    发表于 10-23 07:26

    ATA-7010高压放大器:开启低频重构磁电天线激励的新篇章

    根据磁电天线的机械振荡原理,本研究提出了一种基于机械调节方法的超低频重构磁电天线。该磁电天线的多维性能,如工作频率、带宽和品质因数(Q),可以在不破坏天线结构的情况下在很大的动态范围内进行调整
    的头像 发表于 08-30 10:43 485次阅读
    ATA-7010高压放大器:开启低频<b class='flag-5'>可</b><b class='flag-5'>重构</b>磁电天线激励的新篇章

    一种新的无刷直流电机反电动势检测方法

    无位置传感器无刷直流电机的控制算法是近年来研究的热点之,有霍尔位置信号直流电机根据霍尔状态来确定通断功率器件。利用无刷直流电机的数学模型,根据反电动势检测原理,提出了一种新的线反电动势检测方法来
    发表于 08-07 14:29

    一种新的无刷直流电机反电动势检测方法

    无位置传感器无刷直流电机的控制算法是近年来研究的热点之,有霍尔位置信号直流电机根据霍尔状态来确定通断功率器件。利用无刷直流电机的数学模型,根据反电动势检测原理,提出了一种新的线反电动势检测方法来
    发表于 08-04 14:59

    一种集成FPGA和DSP芯粒的异构系统级封装

    将多个异构芯粒集成在起进行封装是一种具有广阔前景且成本效益高的策略,它能够构建出既灵活又可扩展的系统,并且能有效加速多样化的工作负载。
    的头像 发表于 07-03 09:23 1579次阅读
    <b class='flag-5'>一种</b>集成FPGA和<b class='flag-5'>DSP</b>芯粒的异构<b class='flag-5'>系统</b>级封装

    清微智能官宣:国产重构芯片全球出货量突破2000万颗

    近日,由北京智源人工智能研究院主办的第7届北京智源大会成功举办。作为国产原创重构芯片架构领导者,清微智能受邀出席,向大众展示了前沿高阶国产算力技术成果。 在本次大会上,清微智能首次官宣,公司
    的头像 发表于 06-12 17:15 914次阅读
    清微智能官宣:国产<b class='flag-5'>可</b><b class='flag-5'>重构</b>芯片全球出货量突破2000万颗

    中科亿海微重构智能超表面电磁单元控制方案:多维调控电磁波,助力6G无线中继

    重构智能超表面(RIS)技术是一种新兴的人工电磁表面技术,它通过可编程的方式对电磁波进行智能调控,具有低成本、低能耗、可编程、易部署等特点。通过构建智能可控无线环境,有机会突破传统无线通信的约束
    的头像 发表于 06-12 11:06 710次阅读
    中科亿海微<b class='flag-5'>可</b><b class='flag-5'>重构</b>智能超表面电磁单元控制方案:多维调控电磁波,助力6G无线中继

    一种低翘曲扇出重构方案

    翘曲(Warpage)是结构固有的缺陷之。晶圆级扇出封装(FOWLP)工艺过程中,由于硅芯片需通过环氧树脂(EMC)进行模塑重构成为新的晶圆,使其新的晶圆变成非均质材料,不同材料间的热膨胀和收缩程度不平衡则非常容易使重构晶圆发
    的头像 发表于 05-14 11:02 1005次阅读
    <b class='flag-5'>一种</b>低翘曲扇出<b class='flag-5'>重构</b>方案

    一种基于分数阶 PID 直流电机调速的 AGV 控制系统

    为设计一种低成本、抗干扰、稳定可靠的 AGV,提出一种基于磁带导航的 AGV 系统。采用 Megawin 公司的80C51单片机为控制核心,以并排对称设计的霍尔传感器实现循迹和纠偏,红外光
    发表于 03-25 15:10

    一种基于点、线和消失点特征的单目SLAM系统设计

    本文提出了一种稳健的单目视觉SLAM系统,该系统同时利用点、线和消失点特征来进行精确的相机位姿估计和地图构建,有效解决了传统基于点特征的SLAM的局限性。
    的头像 发表于 03-21 17:07 835次阅读
    <b class='flag-5'>一种</b>基于点、线和消失点特征的单目SLAM<b class='flag-5'>系统</b>设计

    突破传统桎梏,富唯重构柔性装配系统引领行业新变革

    在当今竞争激烈的制造业领域,传统装配系统正面临着诸多难以突破的困境。多层控制器架构冗余、产线生产种类单、对人员要求过高以及标准化程度低等问题,严重制约着企业的发展与创新。而富唯智能基于 AI-ICDP 打造的
    的头像 发表于 02-13 14:22 733次阅读
    突破传统桎梏,富唯<b class='flag-5'>可</b><b class='flag-5'>重构</b>柔性装配<b class='flag-5'>系统</b>引领行业新变革

    一种高灵敏的化学检测系统

    近日,美国加州大学伯克利分校、劳伦斯伯克利国家实验室和Adamas Nanotechnologies公司等机构的研究人员将量子传感与液滴微流控技术相结合,开发出了一种高灵敏的化学检测系统,仅需最小
    的头像 发表于 01-02 11:35 711次阅读
    <b class='flag-5'>一种</b>高灵敏的化学检测<b class='flag-5'>系统</b>

    PGA411的OSIN和OCOS信号是否经过外部调理电路处理后送进dsp进行信号检测?

    您好,关于PGA411的OSIN和OCOS信号是否经过外部调理电路处理后送进dsp进行信号检测?谢谢
    发表于 12-20 06:04

    一种新型高效率的服务器电源系统

    一种新型高效率的服务器电源系统
    发表于 12-19 16:45 1次下载