DSP技术原理及应用(课件).ppt
DSP技术原理及应用,目录,第1章 绪论第2章 TMS320C54x的结构原理第3章 TMS320C54x硬件系统设计第4章 TMS320C54x指令系统第5章 DSP软件开发与设计第6章 TMS320C54x的开发应用,教学目的1、理解数字信号处理及数字信号处理器的基本概念;2、了解数字信号处理器的发展现状、发展趋势及应用;3、了解TI公司三大系列DSP芯片的主要特点及应用;4、掌握定点DSP的数据格式。教学重点1、数字信号处理及数字信号处理器的基本概念;2、TI公司三大系列DSP芯片的主要特点及应用;3、定点DSP的数据格式。教学难点定点DSP的数据格式。,第一章 绪论,课外作业,1、课本P26作业1.2,1.42、若x=1.4,y=0.2(1)将x用Q14格式表示,将 y用Q15格式表示;(2)再求x+y。3、y=-0.328,将其表示成Q15格式的定点数。4、已知7000H是定标为Q12的定点数。求其对应的浮点数。,DSP有两种理解:,一、广义的理解:digital signal processing数字信号处理,二、狭义的理解:digital signal processor数字信号处理器,1.1数字信号处理:他是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,得到符合需要的信号形式。,在通用的计算机上用软件实现。在通用计算机系统上加上专用的加速处理机实现。用通用的单片机实现。用通用的可编程DSP芯片实现。用专用的DSP芯片实现。用/CPLD/FPGA实现。,数字信号处理的实现方法:,TMS320VC5402管脚图,数字信号处理系统的一般组成,抗混叠滤波器将输入信号X(t)中比主要频率高的信号分量滤除,避免产生信号频谱的混叠现象。A/D将输入的模拟信号转换为DSP芯片可接收的数字信号。DSP芯片对A/D输出的信号进行某种形式的数字处理。D/A经过DSP芯片处理的数字样值经D/A转换为模拟量,然后进行平滑滤波得到连续的模拟信号。,数字信号处理系统的一般设计过程,数字信号处理器DSP,DSP:是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。,DSP的主要特点:,哈佛结构:,冯诺依曼结构:将指令、数据存储在同一个存储器中,统一编址,译稿指令计数器提供的地址来区分是指令还是数据。取指令和取数据都访问统一存储器,数据吞吐率低。,基本哈佛结构:程序和数据存储在不同的存储空间,程序存储空间和数据存储空间是两个相互独立的存储空间,每个存储空间独立编址,独立访问。,冯诺曼结构,基本哈佛结构,改进哈佛结构,多总线结构对DSP来说,总线越多,可以完成的功能就越复杂。流水线结构如四级流水线的操作图:,DSP主要特点续,多处理单元 DSP内部一般都包括有多个处理单元,如算术逻辑运算单元(ALU)、辅助寄存器运算单元(ARAU)、累加器(ACC)以及硬件乘法器(MULT)单元等。它们可以在一个指令周期内同时进行运算。,利用这种流水线结构,加上执行重复操作,保证了数字信号处理中用得最多的乘法累加运算可以在单个指令周期内完成。,DSP主要特点续,特殊的DSP指令 在DSP的指令系统中,设计了一些特殊的DSP指令。例如TMS320C54x中的FIRS和LMS指令,则专门用于系数对称的FIR滤波器和LMS算法。,指令周期短DSP广泛采用亚微米CMOS制造工艺,如TMS320C54x,其运行速度可达100MIPS。TMS320C6203的时钟为300MHz,运行速度达到2 400 MIPS。,运算精度高DSP的字长有16位、24位、32位。为防止运算过程中溢出,累加器达到40位。此外,一批浮点DSP,例如TMS320C3x、TMS320C4x、TMS320C67x、ADSP21020等,则提供了更大的动态范围。,DSP主要特点续,硬件配置强新一代DSP的接口功能愈来愈强,片内具有定时器、串行口、主机接口(HPI)、DMA控制器、软件控制的等待状态产生器、锁相环时钟产生器以及实现在片仿真符合IEEE 1149.1标准的测试仿真接口,使系统设计更易于完成。另外,许多DSP芯片都可以工作在省电方式,大大降低了系统功耗。,DSP的分类,按基础特性分:DSP芯片的工作时钟(主频)和指令类型,DSP的分类有三种方式:按基础特性分、按数据格式分、按用途分,静态DSP芯片:该类型在某时钟频率范围内都能正常工作,除计算速度有变化外,没有性能上的下降。如日本OKI电器公司的DSP和TI公司的TMS320C2XX系列;,一致性DSP:两种或更多的DSP芯片,其指令集、机器代码及管脚结构相互兼容。如美国TI公司的TMS320C54X。,DSP的分类,按数据格式分:DSP对数据的处理有两种格式:定点数据格式和浮点数据格式。,定点DSP芯片:数据以定点格式参加运算。浮点DSP芯片:数据以浮点格式参加运算。不同浮点DSP所采用的浮点格式可能不同。,按用途分:通用型:适合普通的DSP应用。专用型:为特定的功能、运算而设计的。如数字滤波、卷积、FFT等。如TMS320C24x适合自动控制;MOTOLORA公司的DSP56200专用于数字滤波。,DSP的选择,选择DSP芯片时应考虑如下几个因素:,DSP芯片的运算速度:运算速度可以用以下几种性能指标来衡量;指令周期:即执行一条指令所需要的时间,通常以ns为单位。MAC时间:即完成一次乘法和一次加法时间。FFT执行时间:即运行一个N点FFT程序所需时间。MIPS:每秒执行百万条指令。MOPS:每秒执行百万次操作。MFLOPS:每秒执行百万次浮点操作。BOPS:每秒执行十亿次操作。DSP芯片的硬件资源;DSP芯片的运算精度:参加运算的数据字长越长精度越高。DSP芯片的功耗;DSP芯片的开发工具;DSP芯片的价格;DSP芯片发展迅速,价格下降也很快。其它。封装形式、质量标准、供货情况、生命周期等。,1.3 定点DSP的数据格式,在定点处理器中,数据采用定点表示方法,定点表示并不意味着就一定是整数表示。它有两种基本表示方法:整数表示方法和小数表示方法。整数表示方法主要用于控制操作、地址计算和其他非信号处理的应用。小数表示方法则主要用于数字和各种信号处理算法的计算中。,8位定点整数表示方法:,8位定点小数表示方法:,结果=2-1+2-2+2-3=0.875,结果=26+24+22+21+20=87,数的补码表示,例:求-3.25的补码。用8位二进制数表示。解:方法1+3.25的二进制数为:0011.0100,这也就是+3.25的补码。则-3.25的原码为:1011.0100-3.25的 反码为:1100.1011,最末位加1得补码1100.1100方法2将+3.25的补码0011.0100所有位取反得到1100.1011,最末位加1得补码1100.1100求一个数的补码的补码,就得到这上数的相反数的补码。,定点数有两种表示法:(1)Q表示法;(2)S表示法。Q表示法的Qn表示小数点在数据第n位之后(也就是小数位数有n位),Qn中的n也称为Q值,写为Q=n。例如,Q0,表示小数点在第0位之后,即Q=0,显然,Q表示法的Q0实际上表示一个整数。Q15表示小数点在第15位之后,显然,Q15实际上表示一个纯小数。S表示法的Sm.n表示有m位整数,n位小数(即小数点在第n位之后),且m+n=15。显然,S表示法的Sm.n 与Q表示法的Qn相同。例如,S0.15与Q15相同,S15.0与Q0相同。,定点数的表示法,几种常用的Q表示法的格式:,Q0格式:Q0格式(S15.0)的字长为16位。,定点数的整数形式。最高位为符号S,接下来的Ix为15位2补码的整数,表示数的范围为(-215215-1),最小的分辨率为1。,Q12 格式:Q12 格式(S3.12)的字长为16位。,最高位为符号S,接下来的3位为2补码的整数位,高位在前,后面的12位为2补码小数位。Q12 格式表示数的大致范围为(-8,7),小数的最小分辨率为2-12。,Q15(或S0.15)格式Q15格式的字长为16位,其每位的具体表示如下:,最高位为符号S,接下来的为2补码的15位小数位,小数点紧接着符号位,无整数位。Q15格式表示数的范围为(-1,1),小数的最小分辨率为2-15。对于16位的定点处理器TMS320C54x来说,Q15是在程序设计中最常用的格式。TI公司提供的数字信号处理应用程序库DSPLIB就主要采用这种数据格式。,定点格式表示数的范围(动态范围)和数据的精度是确定的。表示数的范围越大,数据的精度越低,也就是说,数的范围与精度是一对矛盾。对16位的数据来说,动态范围最大的格式为整数Q0,精度(或分辨率)最高的格式为Q15。,2.定点数和浮点数的转换关系,浮点数A转换成定点数B:B=(int)(A2Q)定点数A转换成浮点数B:B=A2Q例一:浮点数 x 0.5,定标在Q15,则相应的定点数为 Xq 0.5 215=0.5 32768 16384=4000H例二:一个Q15表示的定点数13107对应的浮点数为 x=13107 2-15=0.3999939例三:y=-0.625,将其表示成Q15格式的定点数。解:Yq=-0.625215=-20480=-5000H求-5000H的补码:将其绝对值5000H的所有位取反(得AFFFH)后加1得到补码为B000H。B000H就是-0.625的Q15格式表示的定点数。例四:已知6000H是定标为Q12的定点数。求其对应的浮点数。解:6000H=24576,对应的浮点数为x=245762-12=6,定点格式数据的转换,若一个数已经是某种动态范围较小的Qn格式,为了与动态范围较大的Qn格式数进行(加、减)运算,要将其转换为动态范围较大的格式的数。动态范围小的格式就是整数位数较少,如果整数位数比动态范围大的格式少k位,则将动态范围小的数右移k位,右端移出去的k位去掉不要,左端进行符号位扩展(扩展k位),这样就把动态范围较小的格式的数转换为动态范围较大的格式的数,例如,5.625+0.625=6.25,5.625和结果6.25需要采用Q12格式才能保证其动态范围,若0.625原来用Q15格式表示,则需要先将他表示成Q12后,再进行计算,自然,最后的结果也为Q12。转换过程分析如下:5.625 212=5.625 4096 23040=5A00H0.625 215=0.625 32768 20480=5000H将5000H右移3位。由于5000H为正数,所以5000H右移时左端补0。5000H右移3位后变为0A00H。5A00H+0A00H=6400H=25600,对应的浮点数为 25600 2-12=6.25,练习:1、已知5000H是Q15格式的定点数,请将其写为二进制数,并标上小数点.他对应的十进制数是多少?若为Q12格式,再完成上面的要求。2、求-1.5的补码,用8位二进制数表示。,1.4 DSP芯片的发展及应用,信号处理系统:数字滤波(FIRIIR)、自适应滤波器、快速付立叶变换、相关运算、谱分析、卷积、加窗、波形产生等。通信:调制解调器、自适应均衡、数据加密、数据压缩、回波抵消、多路复用、波形产生等。语音:语音编码、语音合成、语音识别、语音增强、语音邮件、语音存储等。图形/图像:二位/三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等。军事:保密通信、雷达处理、声纳处理、导航、导弹制导等。仪器仪表:频谱分析、函数发生、锁相环、地震处理等。自动控制:引擎控制、声控、自动驾驶、机器人控制、磁盘控制等。医疗:助听、超声设备、诊断工具、病人监护等。家用电器:高保真音响、音乐合成、音调控制、玩具与游戏、数字电话/电视等。,C2000系列DSP产品规划,TMS320LF2407DSP与TMS320C28x DSP的方框图,TMS320C28x是到目前为止用于数字控制领域性能最好的DSP芯片。32位的定点DSP核,最高速度可达400MIPS,可以在单个指令周期内完成3232位的乘累加运算,具有增强的电机控制外设、高性能的模/数转换能力和改进的通信接口,具有8GB的线性地址空间,采用低电压供电(3.3V外设/1.8V CPU核),与TMS320C24x源代码兼容。该系列芯片已投放市场。,C5000系列DSP产品规划,TMS320C5000系列特性比较,C6000系列DSP产品规划,DSP性能推动革新,OMAP,TI增强型ARM 925,TI的TMS320C55x DSP,DSP/BIOS Bridge,用户接口 先进的操作系统,MPEG 4编解码器 H263 编解码器,AMR 编解码器 MP3 编解码器,非实时任务,OMAP平台对数字信息终端的意义,实时任务,所针对多媒体应用 无线视频和图像处理 无线高级语音应用 无线音频处理 图形和视频显示加速处理 因特网网页生成接入 无线数据处理 全球卫星定位系统(GPS)短距离无线通信应用(SDW)ARM 和DSP 操作系统,教学目的1、了解TMS320C54x的内部结构和主要特性。2、掌握存储器系统及其使用方法。3、了解CPU各组成部分的特点和作用。4、掌握定时器和时钟发生器的工作原理及使用方法。5、了解McBSP多通道缓冲串口。6、掌握中断系统的工作原理及使用方法。教学重点1、存储器系统及其使用方法。2、定时器和时钟发生器的工作原理及使用方法。3、中断系统的工作原理及使用方法。教学难点1、定时器和时钟发生器的工作原理及使用方法。2、McBSP多通道缓冲串口的工作原理。3、重新映射中断向量地址。,第二章TMS320C54x的结构原理,1、课本P114作业2.4,2.5,2.7,2.8,2.10,2.11,2.13,2.4,2.152、希望将程序放在C54x DSP片内RAM中运行,要怎么设置?3、写出将状态寄存器ST1中的SXM位置为1的指令。4、一个16位的二进制数送入ALU后将成为40位的二进制数。现将8000H送入ALU,并放在第15-第0位,写出下面两种情况下得到的40位二进制数:(1)SXM=0;(2)SXM=15、若CPU时钟频率为32MHz,用定时器定时500微秒,求TDDR和PRD的值。6、已知输入时钟CLKIN的频率为16MHz,若希望DSP时钟频率为32MHz,设计相应的程序。假设已求得PLLCOUNT的值为20h。,课外作业,第二章TMS320C54x的结构原理,2.1 TMS320C54x的内部结构及主要特性,2.1.1 TMS320C54x的内部结构,(1)CPU:包括算术逻辑单元、乘法器、累加器、移位寄存器、各种专门用途的寄存器、地址发生器以及内部总线;,(3)片内的外设:包括片内的定时器、各种类型的串口、主机接口、片内的锁相环(PLL)时钟发生器以及各种控制电路;JTAG接口。,(2)存储器系统:包括1624位外接存储器接口、片内的程序ROM、片内的单访问的数据RAM和双访问的数据RAM;,2.1.2 TMS320C54x的主要特性,CPU先进的多总线结构,具有1条程序存储器总线、3条数据存储器总线和4条地址总线;40位算术逻辑单元(ALU),包括40位的桶形移位寄存器和2个独立的40位的累加器;17位乘17位的并行乘法器与一个40位的专用加法器结合在一起,用于单周期乘累加操作;比较、选择和存储单元(CSSU),用于Viterbi操作(一种通信的编码方式)中的加/比较选择;指数编码器用于在单周期内计算40位累加器的指数值;2个地址生成器,包括8个辅助寄存器和2个辅助寄存器算术单元。,2.1.2 TMS320C54x的主要特性续,(2)存储器系统具有16位192 K的基本可寻址空间:64 K字程序空间,64 K字数据和64 K字的I/O空间;片内的存储器结构及容量根据芯片的型号有所不同(见表2-1)(3)在片外设和专用电路软件可编程等待状态产生器;可编程的存储器体转换逻辑;片内的锁相环(PLL)时钟发生器,可采用内部振荡器或外部的时钟源;外部总线关断控制电路可用来断开外部数据总线、地址总线和控制信号;数据总线具有数据保持特性;可编程的定时器;直接存储器访问(DMA)控制器;可与主机直接连接的8位并行主机接口(HPI),有些产品(见表2-1)还包括:扩展的8位并行主机接口(HPI8)和16位并行主机接口(HPIl6);片内的串口根据型号不同分以下类型(见表2-1):全双工的标准串口,支持8位和16位数据传送、时分多路(TDM)串口、缓冲串口(BSP)以及多通道缓冲串口(McBSP)。,2.1.2 TMS320C54x的主要特性续,(4)片内的引导功能除TMS320C5420外,所有的芯片都具有片内的引导功能,能从片外的存储器将程序引导装入指定的存储器位置。(5)指令系统单指令重复和块重复操作指令;用于程序和数据管理的存储器块传送指令;32位长操作数指令;同时读入2个或3个操作数的指令;并行存储和装入的算术指令;条件存储指令;快速从中断返回的指令;具有延迟转移和调用指令;指令的执行采用指令预提取、指令提取、指令译码、访问操作数、读取操作数、执行等6级流水线并行结构,大大提高了指令的执行速度。,2.1.2 TMS320C54x的主要特性续,(6)执行速度单指令周期时间分为:25/20/15/12.5/10 ns;每秒指令数:40/50/66/80/100/200 MIPS。(7)电源和功耗可采用5 V,3.3 V,3.3 V和1.8或2.5 V的超低电压供电,在型号中分别用C、LC、UC和VC指明,如,TMS320C54x,TMS320LC54x和TMS320UC54x;可采用功耗下降指令IDLE 1,IDLE 2和IDLE 3控制芯片的功耗;可控制禁止CLKOUT信号。(8)片内的仿真功能具有符合IEEE 1149.1标准的在片仿真接口,可与主机连接,用于系统芯片开发应用。,2.2总线结构,2.2总线结构,C54x片内有8条16位总线:4条程序数据总线和4条地址总线。,3组数据总线(CB、DB和EB):CB和DB传送读自数据存储器的操作数,EB传送写到存储器的数据。CB:双数据读、长数据读(32位)读高16位DB:单数据读、双数据读、长数据(32位)读低16位、外设读,4组地址总线(PAB、CAB、DAB和EAB):传送执行指令所需的地址。,C54x还有一条在片双向总线,用于寻址片内外围电路。这条总线通过CPU接口中的总线交换器连到DB和EB。利用这个总线读/写,需要2个或2个以上周期,具体时间取决于外围电路的结构。,程序总线(PB):传送取自程序存储器的指令代码和立即操作数。,2.3存储器系统,C54x总的基本存储空间为192 K字,分成3个可选择的存储空间:,64K字的程序存储空间:,64 K字的数据存储空间:,64 K字的IO空间:,存放要执行的指令和执行中要用到的系数表,存放各种数据,用于映射外围设备接口,每64K字可分为512页,每页128字。,在C54x中,片内存储器的型式有RAM和ROM两种。其中RAM又可分为两种类型:单访问RAM(SARAM)和双访问RAM(DARAM),片内ROM:,片内ROM是程序存储器空间的一部分,有时部分也可用作数据空间的一部分。各类器件的片内ROM容量不同,如表2-3所列。,片内双访问RAM(DARAM):,DARAM由几个块组成。CPU可在一个周期内对同一DARAM块访问两次:进行两次读或一次读和一次写。DARAM总是会被映射到数据空间,且主要用于存储数据值;也可映射到程序空间,用于存储程序代码。,存储器系统续,片内单访问RAM(SARAM),SARAM也是由几个块组成。一个SARAM块在每个机器周期只可被访问一次,进行一次读或一次写。SARAM总是会被映射到数据空间,且主要用于存储数据值;也可被映射到程序空间,用于存储程序代码。,通过处理器工作方式状态寄存器(PMST)的3个状态位MP/MC、OVLY位、DROM位,可以控制存储器的配置:,OVLY位 若OVLY=1,则片内RAM安排到程序和数据空间;若OVLY=0,则片内RAM只安排到数据存储空间。,C5402的数据和程序存储器映射图,以及MP/、OVLY和DROM 3个状态位的关系:,注意:若用户需要运行BOOT程序应选用微计算机模式,C5402扩展程序存储器图(250),C5402片内4K 字ROM区间分配,C5402片内4K 字ROM由TI公司定,不能用来存储用户程序,3、存储器映射寄存器,存储器映射寄存器有两种:,26个CPU内部寄存器、片内外设寄存器,它们被映像在数据存储器的第0页:0000H005FH地址段:其中0000H001FH是CPU寄存器地址,0020H005FH是片内外设寄存器的地址。表2-1,片内外设寄存器用于对片内外设 的控制和存放数据,对它们操作需要2个机器周期。,表2-1 存储器映象寄存器,2.3.4 I/O空间,C54x有一个独立编址的I/O存储器空间。它是一个64K字的地址空间(0000hFFFFh),都在片外。访问I/O是对I/O映射的外部器件进行访问,只有两条指令可以对其寻址:PORTR(读I/O设备)、PORTW(向I/O设备写),PORTR 1000H,*AR1PORTW*AR1,1000H,2.4中央处理单元CPU,CPU由以下几部分组成:40位算术逻辑运算单元(ALU);2个40位累加器;桶形移位寄存器;乘法器/加法器单元;比较、选择和存储单元(CSSU);指数编码器;CPU存储器映射寄存器;两个地址发生器;,2.4.1 CPU状态和控制寄存器,C54x有3个状态和控制寄存器:状态寄存器0(ST0);状态寄存器1(STl);处理器工作方式状态寄存器(PMST)。,1、状态寄存器 ST0和ST1:ST0主要反映寻址要求和计算的中间运行状态。其各位定义如下:,ST0各位的含义,ARP:辅助寄存器指针,用于间接寻址单操作数的辅助寄存器的选择。当DSP处于标准运行方式时(CMPT0),ARP0。,TC:测试控制标志。用来保存ALU的测试位操作结果。同时,可以由TC的状态(0或1)控制条件分支的转移和子程序调用,并判断返回是否执行。BC 2000H,TC(NTC);TC=1 或 TC=0,C:进位标志。加法进位时,置1。减法借位时,清0。当加法无进位或减法无借位的情况下,完成一次加法此标志位清0,完成一次减法此标志位置1。带16位移位操作的加法只能对它置位(有进位时),而减法只能清0(有借位时)。,OVA:累加器A溢出标志。当ALU或乘/加运算的加法器发生溢出,且运算结果送入累加器A时,OVA置l。运算时一旦发生溢出,OVA将一直保持置位状态,直到硬件复位或软件复位后方可解除此状态。(AOV或ANOV),OVB:累加器B溢出标志。当ALU运算结果送入累加器B且溢出时,OVB置1。运算时一旦发生溢出,OVB将一直保持置位状态,直到硬件复位或软件复位后方可解除此状态。(BOV或BNOV),ST0各位含义续,DP:数据存储器页指针。DP的9位数作为高位将指令中的低7位作为低位,结合形成16位直接寻址方式下的数据存储器地址。这种寻址方式要求STl中的编译方式位CPL0,DP字段可用LD指令加载一个短立即数或从数据存储器加载。,ST1主要反映寻址要求、计算的初始状态设置、IO及中断控制。其各位定义如下:,例:LD#1,DP,TMS320VC5402管脚图,ST1各位含义,BRAF:块重复操作标志。此标志置位表示正在执行块重复操作指令。此位清零表示没有进行块操作。,CPL:直接寻址编辑方式标志位,标志直接寻址选用何种指针。此位置位CPL1表示选用堆栈指针(SP)的直接寻址方式。此位清零CPL0表示选用页指针(DP)的直接寻址方式。,XF:XF引脚状态控制位,控制XF通用外部IO引脚输出状态。可通过软件置位或清零控制XF引脚输出电平。,HM:芯片响应HOLD信号时,CPU保持工作方式标志。此位置位表示CPU暂停内部操作。此位清零标志CPU从内部处理器取指继续执行内部操作,外部地址、数据线挂起,呈高阻态。,ST1各位含义,OVM:溢出方式位。此位确定溢出时,累加器内容加载方式。当运算结果产生溢出时,将按如下方式进行处理:(1)如果OVM=0,则累加器直接加载ALU的实际运算结果而不对其修改。(2)如果OVM=1,则累加器不加载ALU的结果,而是当ALU运算发生正数溢出时,目的累加器加载最大正32位值(007FFFFFFFH);发生负数溢出时加载最小的负32位值(FF80000000H)。这称为溢出处理。此位可由指令SSBX和RSBX置位或清零。,SXM:符号扩展方式位,用以确定符号位是否扩展。此位置位SXM1表明数据进入ALU之前进行符号位扩展。此位清零SXM0表示数据进入ALU之前符号位禁止扩展。此位可由指令SSBX和RSBX置位或清零。,C16:双16位双精度算术运算方式控制位。此位置位C161表示ALU工作于双16位算术运算方式。此位清零C160表示ALU工作于双精度算术运算方式。,FRCT:小数方式控制位。此位置位FRCT1乘法器输出自动左移1位,消去多余的符号位。,ST1各位含义,CMPT:间接寻址辅助寄存器修正方式控制位。此位置位CMPT1,除AR0外,当间接寻址单个数据存储器操作数时,可通过修正ARP内容改变辅助寄存器ARl一AR7的值。此位清零CMPT0,ARP必须清零,且不能修正。,注意:1、对ST0、ST1中某一位若可以复位或置位均可用指令 RSBX 和 SSBX。2、对其中几位赋值均可用LD指令,如 LD#立即数,DP(ASM,IPTR)例:LD#15,ASM 3、亦可随整个寄存器操作,用指令STM,如 STM#立即数,MMR,ASM:累加器移位方式位。占5位,规定一个从-16至15的移位数(2的补码),可以用LD指令(短立即数)对ASM加载。,微处理器/微型计算机工作方式位MP/MCMP/MC0:微计算机模式,允许使能并寻址片内ROMMP/MC1:微处理器模式,不能利用片内ROM复位时,采样MP/MC引脚上的逻辑电平,并且将MP/MC位置成此值。直到下一次复位,不再对MP/MC引脚再采样。RESET指令不影响此位。MP/MC位也可以用软件的办法置位或复位。,处理器工作模式状态寄存器PMST,IPTR:中断向量指针;指示中断向量所驻留的128字程序存储器的位置。在自举加载操作情况下,用户可以将中断向量重新映象到RAM。,处理器工作模式状态寄存器PMST续,OVLY:RAM重复占位位。OVLY可以允许片内双寻址数据RAM块映射到程序空间。OVLY0 只能在数据空间而不能在程序空间寻址在片RAMOVLY1 片内RAM可以映象到程序空间和数据空间,但是数据页0(0h7Fh)不能映象到程序空间,AVSI:地址可见位。AVIS允许/禁止在地址引脚上看到内部程序空间的地址线。AVIS=0,外部地址线不能随内部程序地址一起变化。控制线和数据不受影响,地址总线受总线上的最后一个地址驱动。AVIS=1,让内部程序存储空间地址线出现在C54X的引脚上,从而可以跟踪内部程序地址。而且,当中断向量驻留在片内存储器时,可以连同IACK引脚一起对中断向量译码,处理器工作模式状态寄存器PMST续,DROM:数据ROM位。DROM可以让片内ROM映象到数据空间。DROM位的值为:DROM=0 片内ROM不能映象到数据空间DROM=1 片内ROM的一部分映象到数据空间,CLKOFF:CLKOUT时钟输出关断位。当CLKOFF1时,CLKOUT的输出被禁止,且保持为高电平,SMUL:乘法饱和方式位。SST:存储饱和位仅LP器件有这两个状态位,所有其它器件上此位均为保留位。,2.4.2算术逻辑单元ALU,X输入端的数据:移位器的输出(32位或16位数据存储器操作数以及累加器中的数值,经移位器移位后输出)。来自数据总线DB的数据存储器操作数。,Y输入端的数据:累加器A中的数据。累加器B中的数据。来自数据总线CB的数据存储器操作数。T寄存器中的数据。,ALU控制信号:SXM:当状态寄存器STl的SXM0时,则不包含数据存储器操作数的位添0;当SXM1时,则不包含数据存储器操作数的位进行符号位扩展。指令:SSBX SXM RSBX SXMC16:状态寄存器STl的C16=1,ALU在单个周期内可以进行特殊的双16位算术运算。OVM:OVM=0,则累加器直接加载ALU的结果。OVM=1,则根据溢出方向,用32位最大正数 00 7FFFFFFFh(正向溢出)或绝对值最大的负数FF 80000000h(负向溢出)加载累加器。溢出发生后,相应的溢出标志位(OVA或OVB)置1,直到复位或执行溢出条件指令或溢出标志位(OVA/OVB)被清除。,2.4.3累加器A和B,累加器A和B都可以配置成乘法器/加法器或ALU的目的寄存器。,40位的累加器A、B可以分成三部分分别映射在数据存储空间的0页:,AL:8H,AH:9H,AG:AH,BL:BH,BH:CH,BG:DH,1、累加器的作用:累加器A和B都可以配置成乘法器/加法器或ALU的目的寄存器。提供ALU的另一个输入可作为乘法器(只有A)/加法器的输入,2、A、B操作:AL、AH、AG、BL、BH、BG都可以用PSHM、POPM指令进行堆栈操作。A、B装载数据可用LD指令A、B数据保存可以利用STH、STL、STLM和SACCD等指令或者用并行存储指令。在存储前可以对累加器的内容进行移位操作。右移时,AG和BG中的各数据位分别移至AH和BH;左移时,AL和BL中的各数据分别移至AH和BH,低位添0。,累加器内容的保存,一、把累加器高字保存到数据存储器中的指令STH(1)STH src,Smem(2)STH src,ASM,Xmem(3)STH src,SHFT,Xmem(4)STH src,SHIFT,Smem其中:src:A为累加器A,B为累加器BSmem:单数据存储器操作数;Xmem:双数据存储器操作数0 SHFT 15;-16 SHIFT 15执行:(1)(src(31-16)保存到Smem(2)(src)(ASM-16)保存到Smem(3)(src)(SHFT-16)保存到Xmem(4)(src)(SHIFT-16)保存到Smem二、把累加器的低字保存到数据存储器中的指令STL(1)STL src,Smem(2)STL src,ASM,Xmem(3)STL src,SHFT,Xmem(4)STL src,SHIFT,Smem,累加器内容的保存续,例如:假设累加器AFF 4321 1234h,执行带移位的STH和STL指令后,数据存储单元TEMP中的结果如下:STH A,8,TEMP;TEMP=2112hSTH A,-8,TEMP;TEMP=FF43hSTL A,8,TEMP;TEMP=3400hSTL A,-8,TEMP;TEMP=2112h,LD#1234,APSHM APOPM A,累加器移位和循环移位累加器移位或循环移位的指令共有如下6条:SFTA(算术移位)SFTL(逻辑移位)SFTC(条件移位)ROL(累加器循环左移)ROR(累加器循环右移)ROLTC(累加器带TC位循环左移),2.4.4桶形移位器,桶形移位器(40位)用来为输入的数据进行定标,可以进行以下操作:ALU运算前,对来自数据存储器的操作数或者累加器的值进行定标;对累加器的值进行算术或逻辑移位;对累加器归一化处理;对累加器的值存储到数据存储器之前进行定标。,40位桶形移位器的输入端来自:DB,取得16位输入数据;DB和CB,取得32位输入数据;40位累加器A或B。,40位桶形移位器的输出端接至:ALU的一个输入端;经过MSW/LSW(最高有效字/最低有效字)写选择单元至EB总线。,2.4.4桶形移位器续,桶形移位寄存器的控制:1、操作数带符号位不带符号位扩展控制:ST1寄存器的SXM位:当SXM1时,执行符号位扩展。2、移位位数的控制:指令中的移位数就是移位的位数。正值表示左移,负值表示右移。移位数可以用以下方式定义:指令操作数中给定的一个4或5位的立即数值表示一个移位数值,范围为(-1615)。状态寄存器STl的累加器移位方式(ASM)位,共5位,表示一个范围为-1615的移位数。T寄存器中最低6位的数值表示一个范围为-1631的移位数。,例如:ADD A,-4,B;累加器A右移4位后加到累加器B ADD A,ASM,B;累加器A按ASM规定的移位数移位后加到累加器B NORM A;按T寄存器中的数值对累加器归一化,2.4.5 乘法器/加法器单元,硬件乘法器是17位*17位,它与一个40位专用加法器相连。乘法器/加法器单元可以在一个流水线状态周期内完成一次乘法累加(MAC)运算。,乘法器能够实现如下方式乘法运算:有符号数乘法,每个16位操作数扩展成17位有符号数;无符号数乘法,每个16位操作数前面加一个0;无符号数与有符号数,一个16位操作数前面加一个0,另一个16位操作数符号扩展成17位有符号数。相乘运算。,2.4.5 乘法器/加法器单元,乘法器的输入信号:乘法器的输入端包括输入端XM和输入端YM。输入端XM数据来自:T寄存器。累加器A的位3216。DB总线传送过来的数据存储器操 作数。输入端YM的数据来自:累加器A的位3216 由DB总线和CB总线传送过来的数据存储器操作数 由PB总线传送过来的程序存储器操作数。,乘法器的输出:乘法器的输出加到加法器的输入端XA,累加器A或B则是加法器的另一个输入。最后结果送往目的累加器A或B。,2.4.5 乘法器/加法器单元,乘法器/加法器的控制:1、乘法器工作控制:状态寄存器STl中的小数方式位FRCT1时,小数相乘方式,乘法结果左移1位,以消去多余的符号位。FRCT=0时,整数相乘方式。,2、乘法运算的饱和处理:当SMUL1时,在用MAC或MAS指令进行累加以前,对乘法结果作饱和处理。仅当OVM=1和FRCT1时,SMUL位才起作用,3、加法运算的饱和处理:当OVM1时,在用MAC或MAS指令进行累加以后,对加法结果作饱和处理,然后保存到累加器A或B。ALU运算发生正数溢出,目的累加器置成正的最大值(007FFFFFFFH);发生负数溢出置成负的最大值(FF80000000H)如果发生溢出则ST1的OVA位或OVB位置1。,4、乘加结果的舍入(圆整)处理:如MAC、MAS等指令,如果带后缀R,就对结果进行舍入处理,即加215至结果,并将目的累加器的低16位清0。,两个定点小数相乘,两个Q15的定点数相乘后得到一个带2个符号位的Q30的数。例如:十进制乘法0.50.5=0.25当二进制数相乘时 0.100000000000000;Q15 0.100000000000000;Q15 00.010000000000000000000000000000=0.25;Q30(32位)符号位 在结果保存时一般只保存与输入数据相同的精度的结果即可,也就是只保存高16位即可,但DSP乘法运算结果的高16位中包含了2个符号位,也即高16位是1个带有2个符号位的Q14的数,从而其精度将损失1位。因此在保存乘法运算结果的高16位时,应将乘积左移一位。,练习,1、LD#0CH,4,A写出SXM=0和SXM=1两种情况下,指令执行后A中的值。2、LD#0C000H,A写出SXM=0和SXM=1两种情况下,指令执行后A中的值。,练习答案,1、LD#000CH,4,A写出SXM=0和SXM=1两种情况下,指令执行后A中的值。答:SXM=0时,A=00 0000 00C0H SXM=1时,A=00 0000 00C0H2、LD#0C000H,A写出SXM=0和SXM=1两种情况下,指令执行后A中的值。答:SXM=0时,A=00 0000 C000H SXM=1时,FF FFFF C000H,2.4.6 比较、选择和存储单元,CSSU可对累加器的高位字和低位字进行比较,使状态寄存器ST0中的测试位/控制标志位(TC)和转移寄存器TRN保持传送纪录状态,并选取累加器中