DSP讲稿(C6K).doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP讲稿(C6K)

Chapter 1 Introduction Why go digital? 数字信号处理技术的功能十分强大,它所达到的处理性能和指标,往往是模拟处理技术难以达到的。例如: FIR filter with linear phase. Adaptive filters. chapter2 C6000的结构概述 General DSP System Block Diagram 一个DSP系统通常由CPU、内部存储器、外部存储器、片内外设,以及连接它们的内部和外部总线组成。 为了提高对数字信号的处理速度,DSP处理器针对DSP的典型算法,在结构和功能模块等方面进行了优化。下面我们通过对C6000结构的研究,来了解DSP处理器的特点。 Implementation of Sum of Products(SOP) 在第一章中已经指出:积之和SOP是大多数DSP算法中的关键要素。下面我们通过编写实现级数计算的代码,来深入理解C6000的结构。 Implementation of Sum of Products(SOP) 该代码模块用汇编语言编写,其好处是汇编语言与处理器的结构密切相关,便于我们了解DSP的结构。 从级数的计算公式看,实现该算法有两个基本的操作: 乘法计算 加法计算 因此,要有两条基本指令:乘法指令和加法指令。 Multiply(MPY) 系数a1和采样值x1的乘法用下面汇编指令实现: MPY a1,x1,Y 该指令的功能是:将a1和x1相乘,并将乘积送给Y。 Multiply(.M unit) 该指令由一个硬件乘法器单元完成,该单元称之为“.M”单元。 所以,乘法指令更改为:MPY .M a1,x1,Y 16位乘16位的乘法器得到32位的结果。 32位乘32位的乘法器得到64位的结果。 Addition(.?) 下面考虑加法操作: MPY .M a1,x1,prod ADD .? Y,prod,Y 加法指令将前一条指令计算出的乘积prod,累加到Y中。 这里要考虑一下加法指令是如何实现的? Addition(.L unit) C6000中有一个.L单元,加法指令就是通过该单元实现的。因此,代码要改为: MPY .M a1,x1,prod ADD .L Y,prod,Y Register File-A C6000是RISC处理器,这类处理器用寄存器保存操作数,所以刚刚写的代码还要修改。用寄存器取代a1、x1、prod、Y。 Specifying Register Names C6000的CPU中有两组寄存器:A、B。每组寄存器由16个寄存器组成,每个寄存器的宽度是32比特。 MPY .M A0,A1,A3 ADD .L A4,A3,A4 寄存器A0、A1、A3、A4包含了这两条指令要用的数值。 Data Loading 通过刚才讨论,我们看到:操作数是存放在寄存器中的。那么,如何将操作数加载到寄存器中去呢? Load Unit“.D” C6000CPU中有个.D单元,通过这个.D单元就可将操作数从数据存储器加载到寄存器中。 值得注意的是:.D单元是访问数据存储器的唯一方法。 Load Instruction 下面要考虑的是:将操作数从数据存储器加载到寄存器中,应该用什么指令? 其答案是加载指令。(LDB、LDH、LDW、LDDW) Using the Load Instructions 在使用加载单元之前,必须要清楚处理器是按字节寻址的,也就是说:存储器中每个字节对应一个唯一的地址。 地址的宽度是32位,可寻址范围FFFFFFFF。 Using the Load Instructions 加载指令的句法是:LD *Rn,Rm 其中,Rn是一个寄存器,该寄存器中存放的是要加载操作数的地址,作为寄存器指针。 Rm是目的寄存器。 Using the Load Instructions 现在的问题是:加载到目的寄存器中的数据宽度(位数)如何确定? Using the Load Instructions 这可以通过选用不同的指令来完成。 LDB:加载1个字节(8比特) LDH:加载半个字(16比特) LDW:加载1个字(32比特) LDDW:加载1个双字(64比特) 注意:不存在LD指令。 Using the Load Instructions 例如:假设A5=0x4 LDB *A5,A7;A7=0LDH *A5,A7;A7=0LDW *A5,A7;A7=0LDDW *A5,A7;A7=0x0807060504030201 Using the Load Instructions 请大家思考这样一个问题:如果只能通过加载指令和.D单元访问数据存储器,那

您可能关注的文档

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档