首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 理工论文 → 电子通信 |
|
|||||
采用Nios定制指令的嵌入式系统优化设计 | |||||
收集整理:佚名 来源:本站整理 时间:2009-01-10 22:26:21 点击数:[] ![]() |
|||||
[本篇论文由上帝论文网为您收集整理,上帝论文网http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持] 关键词:Nios软核 定制指令 嵌入式处理器MP3 引言 Nios处理器是Altera公司推出的一个32/16位精简指令信处理器软核。在Altera公司推出的软件SOPC中加载Nios核 和相应的外围接口以及与定义相应的自定义指令,然后对设计进行综合,下载到FPGA中就可以方便地一个具有特定功能的嵌入式处理器。这种设计思路增加了系统设计的灵活性,加快系统运行速度,缩短产品研发和上市时间。 由硬件实现复杂的算法通常比软件实现更高效。 1 定制指令 定制指令为Nios处理器的算术逻辑单元增加了定制逻辑,设计者通过定制指令,用快速高效的定制逻辑块替代复杂耗时的软件程序。在一个CPU中,可以运行多达五个组合或时序定制模块,还可以访问Nios系统模块外的存储器和/或逻辑。定制逻辑模块在两个寄存器Ra和Rb内容的基础上执行用户定义的操作,结果存放在寄存器Ra中。这些定制逻辑模块的功能只受限于器件内逻辑单元(LE)和设计得的想象力。 定制硬件模块能够通过Nios嵌入式处理器指令集中的五个用户定义操作码来访问。SOPC Builder在生成系统期间会为任何定制指令创建宏,通过这些自动产生的C和汇编语言宏就可以方便地访问自定义指令操作码。 2 实现定制指令 以Altera的Nios2.0版嵌入式处理器为例实现定制指令,同时点击Custom Instructions标签创建或编辑Nios CPU,如图2。 Custom Instruction标签是系统设计都 连接定制逻辑和Nios CPU的ALU的界面。首先,选择定制指令的操作码,有USR0~USR4五个操作码可供使用。然后,导入和扫描作为定制指令的HDL文件。Design Import Wizard扫描顶层模块的端口,进行合适连接。Design Import Wizard可以接受以下类型的文件:VerilogHDL/VHDL/EDIF/VQM以接受以下类型的文件:Verilog HDL、VHDL、EDIF、VQM和Altera QuartusII原理图。导入设计文件之后,分配定制指令所需的CPU时钟周期数目和定制指令名。 在系统生成期间,SOPC Builder工具用作ALU一部分的定制逻辑来创建Nios CPU,受所选的操作码控制软件开发包用定制指令名创建在C/C++和汇编语言中使用的软件宏。这些在定制软件开发包ince下。 result=nm_fpu(data,datb); //不使用前缀 result=nm_fpu_pfx(prefix,data,data); //使用前缀 在汇编语言中,宏调用USR操作码,按标准汇指令一样使用。如果使用前缀,那么在宏之前必须有一个PFX指令。有关用户定义操作码(USR0~USR4)的详细资料可参Nios Software Development Reference Manual。 3 MP3播放器的定制指令设计 以MP3播放器设计为例,采用定制指令对设计进行优化。该设计通过增加两条定制指令,就能使系统执行性能提高大约3倍。图为该MP3系统设计框图。 (1)MP3解码器 在大多数MP3播放器中,处理器是用来管理函数和传输数据的。专用MP3解码器ASIC可用于执行密集计算量的解码和传数据给音频器件。本例中,Altera的Nios处理器用于完成处理控制信号,传输数据和进行MP3解码。通常,MP3解码器流程如下: ①通过IDE接口从CF(CompactFlash controler)中读取MP3数据; ②将MP3数据存入SPAM中缓存; ③对MP3数据解码; ④将MP3边带合成到脉冲编码调制(PCM)数据; ⑤把PCM数据传给脉宽调制器PWM。 此外,播放器采用MPEG Audio Decoder(MAD)进行MP3解码,是基于以下方面: ①100%定点(整数)计算; ②网上有可利用的源码; ③在GNU Ceneral Public License(GPL)下发布。 (2)定制指令 F_mul F_mul和mad_f_mul是MAD使用的宏,用整数乘法来模拟浮点乘法。定义如下: #define mad_f_mul(x,y) ((((x)+0x00002000L)>>14)×(((y)+0x00002000L))>>14) #define f_mul(x,y) (((x)0x0001FFFFL) ((y)0x0001FFFFL)) 这些函数完成的功能是一组易被硬件实现的操作,包括移位、加法、乘法和逻辑或运算。在Altera MP3的优化设计中,用硬件定制指令f_mul执行原先用软件宏;还可利用前缀选项,把两个宏合为一个单定制指令。以下就是用Altera的定制指令定义(f_mul和mad_f_mul): #define f_mul(x,y)nm_fmul((x),(y)); #define mad_f_mul(x,y)nm_fmul_pfx(1,(x),(y)); DCT32 在MP3解码中,DCT32完成离散余弦变换。MAD软件用优化过的DVT来增强性能。从软件角度来看,该优化算法比起一般DCT对提高性能具有重大意义。因为标准DCT需要1024个乘法,而用优化后的DCT只需80个乘法。 Tags: |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |