DSP原理及应用复习材料(试题及重点题)_第1页
DSP原理及应用复习材料(试题及重点题)_第2页
DSP原理及应用复习材料(试题及重点题)_第3页
DSP原理及应用复习材料(试题及重点题)_第4页
DSP原理及应用复习材料(试题及重点题)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录一、 填空题二、 简答题三、 问答题四、 阅读指令并填空五、 程序题六、 分析程序回答问题一、 填空题1. TI公司的定点DSP产品主要有 TMS320C2000 系列、TMS320C5000系列和 TMS320C6000 系列。2. C54x DSP中传送执行指令所需的地址需要用到 PAB 、CAB、DAB和 EAB 4条地址总线。3. DSP的内部存储器类型可分为随机存取存储器(RAM)和只读存储器(ROM)。其中RAM又可以分为两种类型:单寻址RAM(SARAM)和双寻址RAM(DARAM)。4. C54x DSP的内部总存储空间为192K字,分成3个可选择的存储空间:64K字的程序

2、存储空间 、64K字的数据存储空间和64K字的 I/O空间 。5. 从功能结构上,C54X DSP的CPU可以划分成 运算部件 和 控制部件 两大部分。6. C54x DSP的寻址方式有七种,分别为立即寻址、绝对寻址、累加器寻址、直接寻址、 间接寻址 、存储器映象寄存器寻址、堆栈寻址。7. 在C54x DSP寻址和指令系统中,Xmem和Ymem表示 16位双寻址操作数 ,Dmad为16位立即数,表示 数据存储器地址 ,Pmad为16位立即数,表示 程序存储器地址 。8. 程序计数器的值可以通过 复位操作 、 顺序执行指令 、 分支转移 ,累加器转移,块重复,子程序调用,从累加器调用子程序,中断

3、等操作改变。9. C54x DSP芯片采用了6级流水线的工作方式,即一条指令分为 预取指 、取指、译码、 寻址 、读数和执行6个阶段。10. 解决MMR写操作的流水线冲突时,一般可用采用推荐指令和 插入空操作指令 的方法。11. C54x DSP定时器由3个16位存储器映射寄存器组成:定时器寄存器(TIM)、 定时器周期寄存器(PRD)和 定时器控制寄存器(TCR) 。12. 主机接口(HPI,Host Port Interface) 是TMS320C54x 系列定点芯片内部具有的一种接口部件,主要用于DSP与其他总线或CPU进行通信。13. C54x DSP的指令系统有 助记符指令 和 代数

4、指令 两种形式。14. COFF目标文件中.text段通常包含 可执行代码 ,.data段通常包含己初始化的数据,.bss段中通常为 未初始化的数据 保留空间。15. DSP芯片的开发工具可以分为 代码生成工具 和 代码调试工具 两类。16在C语言和C55x汇编语言的混合程序设计中,C函数的参数和返回值传递到C55x的寄存器中。在函数“long func(int *p1, int i2, int i3, int i4)”中,*p1传递到 AR0 寄存器,i2传递到 T0 寄存器,i4传递到 AR1 寄存器,返回值由 AC0 寄存器传递。17、 汇编语言“mov *AR0,AC0”使用的寻址方式

5、是 间接寻址模式 ,“mov #0x3,DPH”使用的寻址方式是 直接寻址模式 ,“mov *(#0x011234),T2”使用的寻址方式是 绝对寻址模式 。18、 指令执行前AC0的值是0012345678,那么汇编语句“AND #0x7f, AC0”,执行之后,AC0的值是 0000000078 。19、 C55x 的链接器命令文件中,SECTIONS命令的主要作用是 告诉链接器如何将输入段组合成输出段,以及在存储器何处存放输出 。MEMORY命令的主要作用是 定义目标系统的存储器配置图,包括对存储器各部分的命名,以及规定它们的起始地址和长度 。20DSP的狭义理解为 数字信号处理器 ,广

6、义理解为 数字信号处理方法 。21在直接寻址中,指令代码包含了数据存储器地址的低 7 位。当ST1中直接寻址编辑方式位CPL =0 时,与DP相结合形成16位数据存储器地址;当ST1中直接寻址编辑方式位CPL =1 时,加上SP基地址形成数据存储器地址。22TMS320C54有两个通用引脚,BIO和XF, BIO 输入引脚可用于监视外部接口器件的状态; XF 输出引脚可以用于与外部接口器件的握手信号。3932保护位3116高阶位150低阶位23累加器又叫做 目的寄存器 ,它的作用是存放从ALU或乘法器/加法器单元 输出的数据。它的存放格式为24桶形移位器的移位数有三中表达方式: 立即数 ; A

7、SM ; T低6位 25DSP可以处理双16位或双精度算术运算,当 C16=0 位双精度运算方式,当 C16=1 为双16位运算方式。26复位电路有三种方式,分别是 上电复位 ; 手动复位 ; 软件复位 。27立即数寻址指令中在数字或符号常数前面加一个 # 号,来表示立即数。28位倒序寻址方式中,AR0中存放的是 FFT点数的一半 。29一般,COFF目标文件中包含三个缺省的段: text 段; data 段和 bss 段。30汇编源程序中标号可选,若使用标号,则标号必须从 第一列 开始;程序中可以有注释,注释在第一列开始时前面需标上 星号或分号 ,但在其它列开始的注释前面只能标 分号 。31

8、C5402有23条外部程序地址线,其程序空间可扩展到 1M ,内程序区在 第0页 。32指令执行前有关寄存器及数据存储器单元情况如下图所示,请在下图分别填写指令执行后有关寄存器及数据存储器单元的内容。 ADD *AR3+,14,AA 00 0000 1200A 00 0000 2700 C 1C 1AR3 0101 AR3 01000100h 15000100h 1500数据存储器二、简答题1.什么是定点DSP芯片和浮点DSP芯片?各有什么优缺点? 解:按数据的定点格式工作的DSP芯片称为定点DSP;按数据的浮点格式工作的DSP芯片称为浮点DSP;定点DSP的价格便宜,功耗低,但运算精度低;浮

9、点DSP的价格较高,C语言编程调试方便,运算精度高。2. 简述流水线操作的基本原理。解:流水线操作是各指令以机器周期为单位相差一个时钟周期,连续并行工作的情况。其本质是DSP多条总线彼此独立地同时工作,使得同一条指令在不同机器周期内占用不同总线资源。同时,不同指令在同一机器周期内占用不同总线资源。3. C54x DSP有哪些重复操作?各有什么优点? 解:有单条指令重复执行和程序块重复执行两种重复操作。单条指令重复操作功能,可以使乘法/累加和数据块传送那样的多周期指令在执行一次之后变成单周期指令,大大提高了这些指令的执行速度。利用块重复操作进行循环,是一种零开销循环。4. 软件可编程等待状态发生

10、器的功能是什么? 解:软件可编程等待状态产生器可以将外部总线周期扩展到7个机器周期(C549、C5402、C5410和C5420为14个机器周期),这样C54x DSP可以方便地与慢速的片内存储器和I/O器件接口。5根据你的理解,试列举 DSP 芯片的特点?(5分)答:哈佛结构;多总线结构;指令系统的流水线操作;专用的硬件乘法器;特殊的DSP指令;快速的指令周期;丰富的外设 6、TMS320C55x 芯片的总线结构有何特点,主要包括哪些总线?它们的功能是什么?(6分) 答:TMS320C55x DSP采用先进的哈佛结构并具有十二组总线,其独立的程序总线和数据总线允许同时读取指令和操作数,实现高

11、度的并行操作。采用各自分开的数据总线分别用于读数据和写数据,允许CPU在同一个机器周期内进行两次读操作数和一次写操作数。独立的程序总线和数据总线允许CPU同时访问程序指令和数据。 包括12条总线,分别是:PAB和PB、BAB和BB、CAB和CB、DAB和DB、EAB和EB、FAB和FB。功能:7、DSP 为了降低功耗采取了哪些措施?(6分)答:双电压供电;多种工作模式8、TMS320C55x 的总存储空间为多少?可分为哪 3 类,它们的大小是多少?存储器空间的各自作用是什么?(6分)答:程序空间16M Byte;I/O空间64K Words;数据空间8M Words9、TMS320C55x有哪

12、些寻址方式,它们是如何寻址的?试为每种寻址方式列举一条指令(6分)答:直接寻址模式,mov K16,DP;间接寻址模式,mov *AR0,AC0;绝对寻址模式,mov *(#0x011234),T2;MMR寻址模式,mov *abs16(AR2), T2;寄存器位寻址模式,btstp 30, AC1;圆形寻址模式。10、将C源程序转换成可执行文件需要经过哪些步骤?(6分)答:创建C源文件;创建工程文件;创建连接器命令文件;编译整个工程文件;链接;生成可执行文件11、常用的TMS320C55x汇编命令有哪些,它们的作用是什么?(5分)12TMS320C54x有多少条16位总线?这些总线各有什么作

13、用?(6分)答:C54x共有4组8条16位总线 1条程序总线(PB):传送取自程序存储器的指令代码和立即操作数。 3条数据总线(CB、DB、EB):CB和EB传送从数据存储器读出的操作数;EB传送写到存储器中的数据。 4条地址总线(PAB、CAB、DAB、EAB)传送相应指令所学要的代码。13TMS320C54x片内存储器一般包括哪些种类?如何控制存储器片内或片外的分配?(6分)答:TMS320C54x的片内存储空间分为3个可选择的存储空间:64K的程序空间,64K的数据空间和64K的I/O空间,所有TMS320C54x芯片都包括RAM、SARAM、DARAM。 程序空间:MP/MC=1 40

14、00HFFFFH 片外 MP/MC=0 4000HEFFFH 片外 FF00HFFFFH 片内 OVLY=1 0000H007FH 保留 0080H007FH 片内 OVLY=0 0000H3FFFH 片外 数据空间:DROM=1 F000HFEFFH 只读空间 FF00HFFFH 保留 DROM=0 F000HFEFFH 片外14当TMS320C54x CPU接收到可屏蔽的硬件中断时,满足哪些条件中断才能被响应?(6分)答:(1)出现多个中断时,此中断的优先级最高(2)INTM=0 允许全局中断 (3)IMR中的响应相应位为1,开放此中断。15循环寻址中,如何确定循环缓冲的起始地址?如果循环

15、缓冲大小为17,其起始地址必须从什么地址开始?BK初始化为多少?(4分)16TMS320C54x硬件复位地址为多少?如何确定中断向量地址?计算INT0(IPTR=001H)的中断向量地址。(6分)答:复位后,复位向量地址为:0080H 确定地址方式:IPTR+左移2位后的中断向量序列号 10H左移2位后成为40H,IPTR=001H,则中断向量地址为00C0H17若辅助寄存器AR0的值为0x0005H,AR3的值为0x030FH,请分别给出下列寻址方式修改后的辅助寄存器的值。(6分)*AR3+ ; AR3=0310H*AR3+0 ; AR3=0314H*AR3(15) ; AR3=0324H1

16、8分别解释以下指令的功能。(6分)LD #80h, A; 把立即数80H装入累加器ALD 80h, A; 把80H为地址的数据装如累加器ALD #80h,16, A; 把立即数80H左移16位后装如累加器A三、问答题1. C54x DSP的串行口有哪些类型?各有什么特点? 解:有标准同步串口SP、缓冲同步串口BSP、多路缓冲串口McBSP、时分多路同步串口TMD 四种。缓冲串口(BSP)是一个增强型的标准串口,它由一个全双工双缓冲串口和一个自动缓冲单元(ABU)组成。由于其中的串行口与标准串口的功能相同,因此在标准模式下,缓冲串口的操作与标准串口的工作方式是一样的。不过无论是标准模式还是自动缓

17、冲模式,BSP都提供了一些增强功能。主要包括了可编程控制的串口时钟、可选择时钟和帧同步信号的正负极性,能够以每帧8位、10位、12位和16位传输数据。通过配置BSP的控制寄存器,BSP还能实现忽略帧同步信号的数据传输。时分复用串行口TDM采用时分复用技术,将多个外部器件复用与C54x进行串行通信,每一个时隙对应于其中的1路通信。TDM可以和外部的多个应用接口实现方便灵活的数据交换。C54x最多可以和8个外部器件接口通信。多通道缓冲串口(McBSP)是在缓冲串口的基础上发展起来的增强版。McBSP具有高速、全双工、可与各种总线标准的器件直接接口等特点,它为DSP使用者在不同方面的应用提供了方便,

18、尤其适合在通信领域的应用。3、 TI公司DSP分类及代表产品简介 TI的DSP经过完善的测试出厂时,都是以 TMS320为前缀。在众多款型DSP中,TI把市场销量好和前景看好的DSP归为三大系列而大力推广,TI也称之为三个平台。 TMS320C6000平台,包含定点C62x和C64x以及浮点C67x。其追求的是至高性能,最近新推出的芯片速度高达1GHZ,适合宽带网络、图像、影像、雷达等处理应用。 TMS320C5000 平台,包含代码兼容的定点C54x和C55x。其提供性能、外围设备、小型封装和电源效率的优化组合,适合便携式上网、语音处理及对功耗有严格要求的地方。 DSP的传统设计往往是采取主

19、从式结构:在一块电路板上,DSP做从机,负责数字信号处理运算;外加一块嵌入式微处理器做主机,来完成输入、控制、显示等其他功能。为此,TI专门推出了一款双核处理器OMAP,包含有一个ARM和一个C5000系列DSP,OMAP处理器把主从式设计在芯片级上合二为一,一个典型的应用实例为诺基亚手机。 TMS320C2000 平台,包含16位C24xx和32位C28xx的定点DSP。C24xx系列市场销量很好,而对C28xx系列, TI认为很有市场潜力而大力推广。C2000针对控制领域做了优化配置,集成了了众多的外设,适合逆变器、马达、机器人、数控机床、电力等应用领域。 另外,OMAP 系列:OMAP

20、处理器集成ARM 的命令及控制功能,另外还提供DSP 的低功耗,实时信号处理能力,最适合移动上网设备和多媒体家电。 其他系列的DSP 曾经有过风光,但现在都非TI 主推产品了,除了C3X 系列外,其他基本处于淘汰阶段,如:C3X 的浮点系列:C30,C31,C32 C2X 和C5X 系列:C20,C25,C50, 每个系列的DSP 都有其主要应用领域。 4、 简述实时信号处理的含义。 要求在限定的时间内将采集的数据在现场处理完成并得到一定的结果,即信号处理的时间要小于或者等于下一批数据输入时间,有时甚至要求在特定的时间、地点来完成信号处理。 5、 数字信号处理中最典型的运算有哪些? 离散傅里叶

21、变换(DFT)和卷积是信号处理中两个最基本也是最常用的运算。核心算法是构成多数数字信号处理系统的基本模块, 包括:FFT,向量加,向量点积,滤波器,控制(转移、压栈、出栈、位操作)6、 C6000系列DSP为什么适合与数字信号处理的需要?从DSP的cpu结构、总线结构、存储器结构、专用功能单元、指令系统等方面阐述。 TMS320C6000产品是美国TI公司于1997年推出的dsp芯片,该DSP芯片定点、浮点兼容,其中,定点系列是TMS320C62xx系列,浮点系列是TMS320C67xx系列。CPU结构:1.定点/浮点系列兼容DSP 2.具有VelociTITM先进VLIW结构内核 3.具有类

22、似RISC的指令集 4.片内集成大容量SRAM,最大可达8bit 6.内置高效率协处理器7.片内提供多重集成外设(不同芯片的资源不同)等多种功能结构,满足数字信号处理的精度及效率需要,另外其CPU用了哈佛结构,程序总线和数据总线分开,取指令与执行指令可并行,时效性提高。总线:cpu内部程序总线和数据总线分开,取指令与执行指令可并行。但偏外的存储器和总线都不分开。C6000系列DSP才用了新的VILW结构,片内提供8个独立的运算单元,256位的程序总线,2套32位的数据总线和1套32位的DMA专用总线。灵活的总线结构大大缓解了数据瓶颈对系统性能的限制。存储区:C6000系统dsp内部集成有1-8

23、bit的程序RAM和数据RAM,对于有些片种,这些存储器还可以配置为程序Cache或者数据Cache来使用。专用功能单元:C6000片内有8个并行的处理单元,分为相同的两组,包括2个乘法器和6个ALU。这8个功能单元最多可以在1个周期内同时执行8条32位指令,芯片最高时钟频率为300MHz(67xx系列),且内部8个处理单元并行运行时,其最大处理能力可达到1600MIPS。郭功能单元的并且操作使得DSO在相同时间内能够完成更多的操作,提高了程序的执行速度。指令系统:DSP的体系结构采用超长指令字(vliw)结构,单指令字长为32位,指令包里有8条指令,总字长达到256位。执行指令的功能单元已经

24、在编译时分配好,程序运行时通过专门的指令分配模块,可以将每个256为的指令包同时分配到8个处理单元,并有8个单元同时运行。综上看出,C6000 DSP适合数字信号处理的需要。 7、 简述C6000系列定点DSP的指令流水线结构。 指令流水线的工作方式,即一条指令的执行分为若干个阶段完成,就像经过工厂里的生产流水线上的一道道工序一样,而同时,在流水线的其它阶段又分别有其它的指令在顺序地执行着。C6000中指令均按照取指(Fetch)译码(Decode)和执行(Execute)3个流水线运行,每一级又包含几个节拍,如下图所示C6000系列定点DSP指令流水线结构: 8、 简述C6000系列DSP

25、CPU 有那几个功能单元,每个功能单元的作用是什么? 4个主要单元,指令缓冲单元I,程序流程单元P,地址流程单元A,数据计算单元D, 指令缓冲单元I由指令队列和指令译码器构成,接受程序指令代码,放到IBQ中,指令译码器从指令缓冲队列中取指令进行译码,译码后数据分别送到其他三个单元中处理。P单元由程序地址产生逻辑电路和一组寄存器组构成,主要功能产生所有I单元读取指令所需的程序地址、控制指令读取顺序。A单元:功能产生读写数据空间的地址;D单元:包括了CPU的主要计算部件,完成高效的计算功能。CPU结构分三个机构:程序读入及指令分配、译码机构;程序执行机构:两个数据通路,8个功能单元等,其中.L1、

26、.L2、.S1、.S2是主要的算术逻辑单元,.M1.M2是乘法器,主要完成乘法运算,.D1.D2是数据寻址单元,唯一能产生地址的功能单元。指令测试、仿真端口及控制逻辑。 9、 何谓线性汇编?并行汇编? 线性汇编语言主要用途是编写需要优化的算法,其代码不需要给出汇编代码必须指出的所有信息,可对信息选择,也可由汇编优化器确定。其文件使用“.sa”,扩展名仅对指定的代码段进行优化,指定代码段外的代码被拷贝为输出“.asm”文件,线性汇编过程可以:传递参数,返回结果,使用符号变量,不考虑流水线问题。并行汇编 :它是直接采用DSP中各个功能单元作为操作对象,根据TI规定的汇编语言书写规范要求来完成程序的

27、编写,在程序编写时要充分考虑寄存器的使用、各个指令的时延以及指令间的并行关系。根据尽量使软件流水满负荷执行的规则,合理的书写并行汇编指令,能够极大的提高程序执行的速度,充分发挥出DSP的优势。10、 何谓超标量处理器?何谓超流水处理器?何谓超标量超流水处理器?(理解) 超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间。超流水是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。超标量超流水处理器则是指在超标量和超流水两种技术间,找到一个最佳结合点,这样既能解决操作的时间问题,又能满足处理器对空间的要求。 11、 何谓软件流水优化?软件

28、流水优化有什么专用? DSP适合对大量数据做相同的运算,相同的工作放在一起完成,形成循环,便于软件流水。软件流水:是一种重要的指令调度技术,它通过编排循环指令,重叠地执行不同的循环体来提高ILP。而软件流水优化正是利用DSP处理机指令级的并行性,满足各种资源限制,实现资源合理分配、充分使用算法到DSP结构的映射,使单周期内尽可能多的功能单元在执行指令。专用:产生高性能循环代码,执行并行指令,填充延迟间隙,功能单元使用最大化,由开发工具产生,由编译器选项-o2或o3引入,汇编优化器/C优化器产生,循环中工作太多,导致资源不够(如:寄存器不够分配),则可以拆分循环或展开循环。消除冗余循环。充分利用

29、指令局部性和数据局部性的特点,推测执行。12、数字信号处理程序优化分为哪几个层次?优化的步骤是什么?每个步骤有哪些优化措施?(注:不知道题目问的步骤是指优化的总步骤,还是指每个层次优化的步骤,故答案不全面)三个层次:1.C语言级的优化 2. 线性汇编优化3. 手工汇编优化(优化步骤:1、用C语言实现算法并验证写2、C6x线性汇编代码3、画相关图4、分配功能单元和寄存器5、建编排表6、将编排表转换为C6x汇编代码)1.C语言级的优化 :使用编译选项、软件流水、内联函数和循环展开等方法来对代码进行优化,以提高代码执行速度,并减小代码尺寸。2. 线性汇编优化:写线性汇编程序,然后用汇编优化器进行优化

30、,生成高性能的代码。使用C6000的剖析工具(Profiling Tools)可以找到代码中最耗费时间的部分,就是这部分需要用线性汇编重写。需要知道:汇编优化器伪指令、影响汇编优化器行为的选项、TMS320C6000指令、线性汇编源语句语法、指定寄存器或寄存器组、指定功能单元、源代码注释等。3. 手工汇编优化:编写C程序并不经过任何优化,使用-On优化选项,需要优化的代码转换为线性汇编,手工汇编并优化。优化措施:并行指令,填充延迟间隙,展开循环,存取带宽优化(使用LDW/LDDW),软件流水等。 13、CMD文件的作用是什么?CMD是连接命令文件,包含了DSP和目标板的存储器空间的定义以及代码

31、段、数据段是如何分配到这些存储器空间的。是32位的dos命令提示符,有中文提示;而command是16位的dos命令提示符,全是英文.区别就是:一个是中文帮助,一个是英文帮助,功能没有多大区别. 14、以实验一为例简述上机实验步骤。 实验步骤1、开机:进入Win XP系统,双击桌面上CCS3.3图标,选择openDM6437 Little Endian Simulator ,进入DSP软件集成开发环境,或者选择openc6437 510 plus进入DSP硬件集成开发环境(使用实验箱做实验,先连接好实验箱及仿真器等方可开机)。2、编辑文件:选择FileNewSource File菜单,编辑好C

32、程序文件(*.c)、汇编程序文件(*.asm)、头文件(*.asm)及链接命令文件(*.cmd),并保存在D盘DSPLABLAB1文件夹中。3、创建工程项目:选择ProjectNew,出现对话框,在project栏(第一行)填写项目名称,并选定项目的位置(D:DSPLABLAB1),然后单击“完成”按钮,这样就新建了一个工程项目,该项目用来管理各种文件,便于编译、调试。注意:路径、文件夹、文件名中不能含有汉字,且第一个字母不能是数字。4、添加文件:将编辑好的三个文件添加到刚建好的工程项目中,选择ProjectAdd Files to Project,出现一个对话框,选择文件夹(D:DSPLAB

33、LAB1)并选中C文件、汇编程序文件、头文件、cmd文件,单击“打开”按钮就将这四个文件添加到该工程中了。5、编译汇编程序:选择ProjectCompile File,分别编译主程序及头文件,修改程序中的错误,再编译,直到无错误出现。编译后的文件为OBJ文件。6、链接:选择ProjectBuild或Rebuild All,链接各OBJ文件,若有错误出现应修改错误(错误应在cmd文件中),再链接,直到无错误出现。链接生成可执行的out文件。7、下载out文件:选择FileLoad Program,在debuge文件夹中选中out文件(文件名与工程项目同名),单击“打开”按钮,这样out文件就下载

34、到DSP中了。调试:选择debugeStep Into 单步执行代码或者选择debugeRun连续运行代码(debugeHalt停止运行)。单步运行或运行结束后选择ViewMemory和ViewRegistersCPU Registers/Peripheral Regs查看存储器和寄存器中的数据。如果最后的结果有错误,则应查找原因修改程序并重复步骤5 步骤8,直到结果正确为止。四、阅读指令并填空1BANZ 2000h, *AR3-2CMPR GT, AR33ADD *AR3+, 14, A4SUB A, -8, B5MPY *AR3+, A五、程序题1、写出计算的主要汇编程序,并给程序添加注释

35、,画出程序的流程图。解:程序及注释:.bss x, 20;给变量x分配20个字单元.bss y, 1;给变量y分配1个字单元STM #x, AR1;取x地址STM #19, AR2;设置循环次数LD #0, A;累加器清零loop: ADD *AR1+, A;累加x分量 BANZ loop, *AR2-;循环是否结束,没有结束则继续累加 STL A, y;把结果存入y流程图:2、实现计算z=x+y-w的程序。 title example1.asm mmregsSTACK usect STACK, 10h bss x,1 bss y, bss w,1 bss z,1 def start data

36、table: word 10,26,23 textstart: STM #0,SWWSR STM #STACK+10h,SP ;初始化堆栈指针SP STM #x,AR1 RPT #2 MVPD table,*AR1+ ;数据从程序存储器传送到数据存储器 CALL SUMBend: B endSUMB: LD x, A ADD y, A SUB w,A ;实现减法运算 STL A, z RET end3实现对数组X5=1,2,3,4,5的初始化,然后将数据存储器中的数组X5复制到数组Y5。最后实现数组X和数组Y中对应元素相乘并累加,即z=1*1+2*2+3*3+4*4+5*5 mmregs bs

37、s x, 5 bss y, 5 bss z, def starttable: word 1,2,3,4,5 text start: STM #x, AR1 RPT 4 MVPD table,*AR1+ ;从程序存储器传送到数据存储器数组X5 STM # x, AR2STM # y, AR3 RPT 4 MVDD *AR1,*AR3 ;从数据存储器数组X5传送到Y5 SSBX FRCT ;准备整数乘法 STM # x, AR2 STM # y, AR3STM # z, AR4RPTZ 4 MAC *AR2+,*AR3+,A STL A,*AR4 End: B end end4、用C55x汇编语言

38、实现计算 的程序。(10分)答:mpym *AR0+, *AR1+, AC0mpym *AR0+, *AR1+, AC1add AC1, AC0mpym *AR0+, *AR1+, AC1add AC1, AC0mpym *AR0+, *AR1+, AC1add AC1, AC0或者:mpym *AR0+, *AR1+, AC0 |rpt #2 macm *AR0+, *AR1+, AC05、用C55x汇编语言实现计算 的程序。(10分)答:mpym *AR0+, *AR1+, AC3 masm *AR0+, *AR1+, AC36、以8点的FFT为例,用C55x的汇编语言实现FFT的算法,并

39、且解释该算法的实现方法。(20分)答: .sect fft_code _fft: aadd #(ARGS-Size+1),SP ; Adjust stack for local vars mov mmap(ST1_55),AR2 ; Save ST1,ST3 mov mmap(ST3_55),AR3 mov AR2,fft.d_ST1 mov AR3,fft.d_ST3 btst #0,T1,TC1 ; Check SCALE flag set mov #0x6340,mmap(ST1_55) ; Set CPL,XF,SATD,SXAM,FRCT (SCALE=1) mov #0x1f22,

40、mmap(ST3_55) ; Set: HINT,SATA,SMUL xcc do_scale,TC1 mov #0x6300,mmap(ST1_55) ; Set CPL,XF,SATD,SXAM (SCALE=2) do_scale mov T2,fft.d_T2 ; Save T2 | mov #1,AC0 mov AC0,fft.d_L ; Initialize L=1| sfts AC0,T0 ; T0=EXP mov AC0,fft.d_N ; N=1EXP mov XAR1,XCDP ; CDP = pointer to U mov XSP,XAR4 add #fft.d_tem

41、p,AR4 ; AR4 = pointer to temp mov XAR0,XAR1 ; AR1 points to sample buffer mov T0,T1 mov XAR0,XAR5 ; Copy externd bits to XAR5outer_loop ; for (L=1; L=EXP; L+) mov fft.d_L,T0 ; note: Since the buffer is| mov #2,AC0 ; arranged in re,im pairs sfts AC0,T0 ; the index to the buffer neg T0 ; is doubled| mov fft.d_N,AC1 ; But the repeat coutners sftl AC1,T0 ; are not doubled mov AC0,T0 ; LE=21 | sfts AC0,#-1 sub #1,AC0 ; Init mid_lo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论