导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→DSP处理器功能系统的建立[dzyjc7]

 *第31333篇: DSP处理器功能系统的建立

  
楼 主:dzyjc7 2012年4月12日17:48
 DSP处理器功能系统的建立
使用DSP Buider在FPGA上进行DSP模块的设计,可实现高速DSP处理。但是,在实际应用中,由于DSP处理的算法往往比较复杂,如果单纯使用DSP Buider来实现纯硬件的DSP模块,会耗费过多的硬件资源,有时也无法完成复杂的运算。在DSP算法中反复出现的一些运算,如复数乘法、整数乘法、浮点乘法等,在通用的CPU中都没有专门的相关指令。利用Nios II的自定制指令特性,在系统设计中,可利用MATLAB、DSP Buider或VHDL设计并生成复数乘法器、整数乘法器、浮点乘法器等硬件模块,在QuartusII环境中对上述文件作一些修正后,在SOPC Buider窗口中将它们定制为相应的指令,并可设定或修改执行该指令的时钟周期。在进行DSP算法运算时,可通过汇编或C,甚至C++来运用这些自定义指令进行嵌入式程序设计。
  用MATLAB、DSP Buider设计的复数乘法器模型如图2所示,它完成了16位的复数乘法,虚部和实部的位宽都是16位,可以用一个32位的值来表示该复数。在设计中,NiosII为32位数据,正好可以放置2个复数。
  要将这个复数乘法器硬件模块设置成相应的指令,还要进行以下操作:单击图标SignalCompiler对其进行转换,选择器件(用Cyclone)、选择QuartusII综合器,转换后使其生成SOPC Buider的PTF文件。退出MATLAB后,在QuartusII环境中对转换后所生成的复数乘法器的顶层VHDL文件进行修改。在SOPC Buider窗口中双击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功能的选择。
(本文由Cogo商城-IC元器件在线采购平台搜集整理,浏览 了解更多详细信息)

>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:DSP的引导过程

[下一篇主题]:DSP程序控制功能