欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    [信息与通信]TMS320C54X DSP芯片的指令系统.ppt

    • 资源ID:5614885       资源大小:1.02MB        全文页数:126页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    [信息与通信]TMS320C54X DSP芯片的指令系统.ppt

    第三章 TMS320C54X DSP芯片的指令系统,指令的表示方法寻址方式指令系统,目录,3.2 指令的表示方法,指令的两种表示法:助记符形式和代数表达式 助记符形式:代数表达式:MPY*(volume),B B=T*(volume)ADD#1h,5,A,B B=A+#1h5语句格式:由操作码和操作数组成标号:指令操作数列表;注释,编写程序一般规则(P138),所有语句必须以标号、空格、星号或分号开始;所有包含汇编伪指令的语句必须在一行完全指定;可以选择带有标号,若使用标号,则标号必须从第一列开始,但指令域一定不能从第1列开始;,程序中可以有注释:注释开始在第一列时,前面需标上星号或分号;但在其他列开始的注释前面只能标上分号。操作数域:立即数,寄存器,程序空间地址,数据空间地址或I/O地址。立即数:#为前缀,间接寻址:*为前缀。,汇编语言源程序举例,*example.asm*.title“example.asm”.mmregsSTACK.usect“STACK”,10H.bss a,4.bss x,4.bss y,1,汇编语言源程序举例,.def start.datatable:.word 1,2,3,4.word 8,6,4,2.textstart:STM#0,SWWSR STM#STACK+10H,SP STM#a,AR1 RPT#7 MVPD table,*AR1+,CALL SUMend:B endSUM:STM#a,AR3 STM#x,AR4 RPTZ A,#3 MAC*AR3+,*AR4+,A STL A,y RET.end,3.2.1 指令系统中的符号,符号与缩写P82页:表3.2.1如:MVPD pmad,Smem MPY Xmem,Ymem,dst程序存储器操作数(存储器地址):Pmad,extpmad,Pmem数据存储器操作数:dmad,Dmem,Smem,Sind,Xmem,Ymem,Lmem(32位),累加器:Src,dst,dst_,A,B移位值:ASM,TS,SHFT,SHIFT立即数:K,k3,k5,k9,lk运算符及其优先级,表3.2.2,3.1 寻址方式,两种:数据寻址和程序寻址数据寻址(7种基本方式)立即数寻址绝对地址寻址累加器寻址直接寻址间接寻址存储器映射寄存器寻址堆栈寻址表3.1.1:,程序寻址程序存储器:存放程序代码,系数表和立即数程序地址生成器(PAGEN)产生地址,再加载到PAB总线P47-48,数据寻址(立即数寻址),立即数寻址(K,k3,k5,k9,lk)短立即数:3,5,8,9位(单字指令中)长立即数:16位(双字指令中),立即数:#前缀LD#80h,ARPT#99;单字指令RPT#7DFFH;双字指令,数据寻址(绝对地址寻址),指令中包含16位地址,寻址存储单元;至少为双字长指令,有四种类型:数据存储器地址(dmad)寻址操作数存放于数据存储单元,确定该单元地址,主要指令:MVDK Smem,dmad;dmad=Smem MVDM dmad,MMR MVKD dmad,Smem MVMD MMR,dmad,例:MVDM 2000H,T RPT#19;数据块的复制 MVMD AR2,SAMPLE;SAMPLE为常数表示;的地址 MVKD 0200H,*AR2+,程序存储器地址(pmad)寻址确定程序存储器中的一个地址主要指令:FIRS Xmem,Ymem,pmad MACD Smem,pmad,src MACP Smem,pmad,src MVDP Smem,pmad MVPD pmad,Smem,例:MVPD TABLE,*AR7-MACP*AR3-,COEFFS,A,数据寻址(绝对地址寻址),端口地址(PA)寻址(符号或常数)确定外部I/O端口的地址主要指令:PORTR PA,Smem PORTW Smem,PA例:PORTR FIFO,*AR5 PORTW*AR1+,FIFO1,*(lk)寻址用符号或常数指明数据存储器中的一个地址不能与循环指令(RPT,RPTZ)一起使用!例:STL A,*(y)STH A,*(y1)LD*(PN),A,数据寻址举例(1),x.set 2000h portr 20h,*(x)stm#x,ar1 ld#100,b macp*ar1,100h,b,累加器寻址,对存放数据的程序存储器寻址将累加器的内容作为地址(16位或23位)去访问程序存储器单元仅两条指令:WRITA和READA循环执行,可实现数据块的传送。,READA Smem将累加器A所确定的程序存储器单元中的值传送到数据存储单元。如:若A=00 0000 0100h,AR1=0200h,执行下列指令:READA*AR1,WRITA Smem将Smem所确定的数据存储单元中的值传送到累加器A所确定的程序存储器单元。如:STM#0300H,AR2 LD#18000H,A WRITA*AR2,直接寻址,由基地址(DP或SP提供)和低7位偏移地址(指令中提供)共同构成16位数据存储器地址。64K的数据空间:分成512页,每页128个单元DP取值范围:05117位偏移地址范围:0127不改变基地址,可寻址连续的128个单元DP复位值为0,直接寻址,直接寻址指令代码的格式图3.1.1优点:单字指令基地址由DP还是SP提供?由CPL(ST1中)标志位的值决定CPL=0:基地址由DP(9位)提供CPL=1:基地址由SP(16位)提供,16位数据地址的形成过程:CPL=0时,9位DP值为高位,指令中7位偏移值为低位,构成16位数据存储器地址。CPL=1时,16位SP的值与指令中7位偏移值相加,形成16位数据存储器地址。,16位数据地址的形成过程,直接寻址举例(1),基地址由DP提供:ld#4,dp;页指针指向数据M第4页,;片内数据区DARAMst#1,1st#2,2 st#3,3 st#4,4,直接寻址举例(2),基地址由SP提供:STM#4000H,SP SSBX CPL ST#9876h,3,直接寻址举例(3),.bss x,1.LD#x,DP ST#1000H,x ST#2000H,x+1 ST#3000H,x+2,数据寻址举例(2),y.set 007ah ld#40h,dp st#1111h,*(y)mvkd 7ah,7ah,易混淆的问题!,LD#40H,DP STL A,60H;60H:数据存储器2060H单元 STM#2000H,AR1 MVDK*AR1,60H;60H:数据存储器0060H单元 MVDP*AR1,60H;60H:程序存储器0060H单元,间接寻址,按照辅助寄存器中的地址访问数据存储单元;8个辅助寄存器(16位):AR0AR7;非常灵活:方便访问连续的存储器块(递增,递减,变址等);两个辅助寄存器算术单元ARAU0和ARAU1;,间接寻址,单操作数间接寻址:一条指令中访问一个数据存储器单元寻址灵活,4位方式域定义单操作数间接寻址类型,表3.1.5两种特殊的寻址:循环寻址和位倒序寻址方式如:AR2=1000H ST#1000H,*AR2,间接寻址,间接寻址,说明:,*ARx+与*+ARx的区别*ARx+,*ARx-的增减量:16位字:增/减量为132位字:增/减量为2*ARx-0B0:AR0B:位反转寻址的标志,说明:,*ARx-0%:循环寻址的标志*ARx(lk)与*+ARx(lk)的区别,双操作数间接寻址,一条指令中同时访问两个数据存储器单元。完成执行2次读操作或1次读和1次并行存储操作。仅两个二进制位(Xar和Yar)用于选择辅助寄存器。只能用4个辅助寄存器:AR2AR5,2位方式域(Xmod和Ymod)定义双操作数间接寻址类型:表3.1.9仅4种类型例如:MAC Xmem,Ymem,src,dst MAC*AR2+,*AR3+,A,间接寻址举例:,STM#2000h,AR2ST#1234h,*AR2STM#2010h,AR3 ST#5678h,*AR3,STM#4000h,AR2STM#-1,AR0MVPD 2000H,*AR2+;MVPD 2000H,*+AR2;MVPD 2000H,*AR2+0;MVPD 2000H,*+AR2(1000h);MVPD 2000H,*AR2(1000h),循环寻址,循环缓冲区:卷积,自相关,FIR滤波器等算法中常用。例如:N=7的FIR滤波器的循环缓冲区,例:FIR滤波器,COEF,MACD*AR2-,COEF,A,ar2,循环寻址是实现循环缓冲区的关键。用%表示循环寻址:ARx+%、ARx-%ARx+0%、ARx-0%参数:长度寄存器BK,有效基地址EFB,尾基地址EOB,循环寻址,循环缓冲区的起始地址最低N(NR,R为循环缓冲区长度)位必须为0:若R=31,则N=5 若R=32,则N=6循环寻址时,首先要指定一个辅助寄存器ARx指向循环缓冲区,并实现循环缓冲区首尾单元相邻。,循环寻址算法:,循环寻址举例:,(BK)=8,(AR1)=0060H,用”*AR1+%”间接寻址.第1次间接寻址后,AR1指向0061H单元;第2次间接寻址后,AR1指向0062H单元;第7次间接寻址后,AR1指向0067H单元;第8次间接寻址后,AR1又回到0060H单元.,循环寻址举例:,(BK)=10,N=4,(AR1)=0100H,用”*+AR1(8)%”间接寻址:STM#10,BK LD*+AR1(8)%,A;寻址0108H单元 STL A,*+AR1(8)%;寻址0106H单元,位倒序寻址,主要用于FFT算法。8点FFT的位码倒序:若输入顺序:X(0)、X(1)、X(2)、X(3)、X(4)、X(5)、X(6)、X(7);则输出顺序:Y(0)、Y(4)、Y(2)、Y(6)、Y(1)、Y(5)、Y(3)、Y(7).16点FFT的位码倒序:表3.1.6,位反转寻址,通常,在进行FFT算法之前,先让输入数据实现位码倒置。位倒序寻址用B表示,典型:ARx+0B,16点FFT的位倒序寻址实现方法举例:设AR2=2060h,作为基地址,指向X(0)的存储单元。一般:AR0取FFT长度的一半,即AR0=0008h用*AR2+0B实现位倒序寻址:从左向右加。,例如:STM#8,AR0 RPT#15 MVDD*AR2+0B,*AR4+;AR2:输入数据X的首地址;AR4:位码倒置后输入数据X的首地址,第1次*AR2+0B寻址;AR2=2068h,即X(8)第2次*AR2+0B寻址;AR2=2064h 即X(4)第3次*AR2+0B寻址;AR2=206Dh 即X(12),第4次*AR2+0B寻址;AR2=2062h 即X(2)第5次*AR2+0B寻址;AR2=206ah 即X(10),存储器映射寄存器寻址,用途:主要用于不改变DP、SP的情况下,修改MMR中的内容。特点:寻址速度快,对MMR执行写操作开销小;可直接利用MMR的名称快速访问数据存储空间的第0页资源;只能寻址数据空间的第0页单元。,仅有8条指令,堆栈寻址,常用于中断和调用子程序过程“后进先出”的原则堆栈:保存PC值和保存数据参数堆栈存放数据:从高地址向低地址增长,SP总是指向堆栈中最后存入的数据单元入栈:先(SP)-1,数据再入栈.出栈:数据出栈,SP+1.,4条指令:,堆栈寻址举例:,PSHM TPSHD*AR3+;SP-1,*AR3所指单元数据入栈POPM TPOPD*AR2;数据出栈,存入*AR2所指向单元,SP+1,寻址方式举例,DDAT1.set 1000H PDAT1.set 2000H RSBX CPL LD#1234h,A;立即数寻址 ST#5678h,*(DDAT1);立即数寻址和绝对地址寻址,LD#PDAT1,A READA2H;立即数寻址,直接寻址(DP指针)和累加器寻址SSBX CPLST#9876h,3H;直接寻址(SP指针)RSBX CPL,STM#DDAT1,AR2ST#9876h,*AR2;间接寻址MVDK 3H,DDAT1 MVKD DDAT1,1H;直接寻址和绝对地址(dmad)寻址,MVDP 2H,PDAT1;直接寻址和绝对地址(pmad)寻址 STM#8888h,T;立即数寻址和存储器映射寄存器寻址PSHM TPOPM T;堆栈寻址和存储器映射寄存器寻址,STM#4000h,AR0RPT#29MVPD 1000H,*AR0+;程序存储器到数据存储器数据块的复制,STM#2000H,AR2 STM#3000H,AR3 LD#0,A RPT#19MAC*AR2+,*AR3+,A STL A,*(y);完成20次乘累加操作,用循环缓冲区实现FIR,STM#xn+79,AR3STM#h+79,AR4STM#80,BKSTM#-1,AR0PORTR PA1,*(xn)Fir:RPTZ A,#79MAC*AR3+0%,*AR4+0%,ASTH A,*(y)PORTW*(y),PA0PORTR PA1,*AR3+0%,3.3 C54X的指令系统,共有129条基本指令,包含了6种基本类型的操作:数据传送指令算术运算指令逻辑运算指令程序控制指令并行操作指令重复操作指令,数据传送指令:装载、存储、混合装载存储。算术指令:包括加减、乘法、乘累加、乘累减、32位操作数运算指令以及其他一些专用指令,逻辑指令:包括与、或、异或、移位和测试指令等程序控制指令:包括跳转、调用、中断、返回、重复并行操作指令:重复操作指令:,3.3.1 数据传送指令,指从存储器中将源操作数传送到目的操作数所指定的存储器中。数据传送指令包括:装载指令:存储指令:混合装载和存储指令:,装载指令,装载指令,将立即数或存储器内容赋值给目的寄存器。目的寄存器主要有:dst、T、DP、ASM、ARP等典型:LD Smem,dst LD#k,dstLD Smem,T LD Smem,DPLD#k5,ASM LDM MMR,dst,举例:,给累加器赋值:例1、2、4、6注:SXM、OVB、OVM等标志位的影响给其他寄存器赋值DP、T、ASM等长字指令:DLD Lmem,dst例:DLD*AR3+,B;增量为2,给DP赋值:.bss x,1;x=2000h.textstart:ld#x,dp;dp=40h stm#0200h,ar4 st#0fedch,*ar4 ld*ar4,dp;dp=0dch,存储指令,将源操作数或立即数存入指定存储器或MMR。目的操作数:Smem,Lmem,MMR等,存储指令,条件存储指令,存储指令,ST:源操作数为寄存器或立即数例1、3STH/STL:源操作数为累加器例1、2STM/STLM:目的操作数为MMRSTM:例1、2STLM:不管页指针DP或ARx的高9位为何值,有效地址高9位都清零。访问数据页第0页,例1、2。,DST:长字CMPS:CSSU电路,混合装载和存储指令,在存储器之间或内部传送数据表3.3.3缩写:Smem,Xmem,Ymem,dmad,pmad,PA,包括I/O端口绝对地址寻址包括累加器寻址例:,算术运算指令,加法指令ADD,ADDC(带进位,如32位扩展精度加法),ADDM(长立即数),ADDS(无符号数)减法指令SUB,SUBB(带借位),SUBC(条件减),SUBS(无符号),举例,例:使用ADD指令完成加法 LD TEMP1,A;TEMP1A ADD TEMP2,A;TEMP2+AA STL A,TEMP3(STH A,TEMP4);将结果TEMP3,TEMP4,例:用ADDS实现32位数据装入 LD 4,DP;设置DP LD 60h,16,A;将(0260H)装入A的高16位 ADDS 61h,A;(0261H)A的低16位或 DLD 60h,B;32位数B(C16=0),减法指令,SUB,SUBB,SUBC,减法指令举例,STM 2061H,AR2 STM 2060H,AR3 SUB*AR2+,*AR3+,B;(2061H)左移16位,同时(2060H)也左移16位,然后相减,结果B STH B,*(2062H);相减的结果(16位)(2062H),乘法指令MPY,MPYR(凑整),MPYA(A的高端),MPYU(无符号),SQUR(平方)后缀R和A,状态标志位FRCT,另一乘数在T寄存器。乘加和乘减指令乘加:MAC MACA MACD MACP MACSU乘减:MAS MASA SQURA SQURS,乘法指令,乘法指令举例,MPY 13,AMPY*AR2,*AR4+0%,BMPY#0FFFEh,AMPYR 0,BMPYA*AR2MPYA BMPYU*AR0,ASQUR A,B,乘法-累加指令举例,区别:凑整MAC*AR5+,AMACR*AR5+,A区别:MAC*AR5+,*AR6+,A,BMACR*AR5+,*AR6+,A,B存储器延迟:(Smem+1)=SmemMACD*AR3,COEFFS,AMACP*AR3,COEFFS,A,乘法-减法指令举例,MAS*AR5+,AMAS*AR5+,*AR6+,A,BSQURA*AR3+,ASQURS*AR3+,A,算术运算指令,长操作数,长字指令(共6条)DADD,DSUB,DRSUB,DADST,DSAD,DSUBTC16(ST1)决定指令工作方式,0:双精度方式;1:双字方式Lmem:两个连续单元,低地址存放高16位字,高地址存放低16位字*AR3-(减量为2),特殊应用指令,ABDST:两矢量的距离ABS:绝对值CMPL:累加器的反码DELAY:存储器延迟EXP,NORM:累加器归一化FIRS、LMS、POLYMAX,MIN,NEGRND,SAT,SQDST等,特殊指令举例:,DELAY*AR3EXP B与NORM B联合使用MAX ASAT B,逻辑运算指令,分为:与、或、异或、移位、测试与 AND,ANDM(立即数)或 OR,ORM(立即数)异或 XOR,XORM(立即数),循环移位ROL:带进位位的循环左移,C-D0,D31-C,保护位清零。ROR、ROLTC:条件移位SFTC src算术移位和逻辑移位SFTA、SFTL,算术移位,SFTA:对累加器的整个40位操作右移:SXM=1,高位符号扩展;SXM=0,高位0填充左移:低位以0填充,逻辑移位,SFTL:对累加器的低32位操作,高8位填0均不受SXM的影响右移时高位填0左移时低位填0,举例:SFTA与SFTL的区别,例1:SFTA A,5,BSFTL A,5,B例2:SFTA B,+5SFTL B,+5,测试指令,BIT:测试指定位BITF:测试指定的多个位BITT:测试T指定位CMPM:比较两数是否相等如:CMPM*AR4+,0404hCMPR:比较ARx和AR0,程序控制指令,长转移,长调用:前缀F(PC,XPC)延时转移:后缀D1)分支指令 B,BACC,BANZ,BC,FB,FBACC 2)调用指令 CALA,CALL,CC,FCALA,FCALL3)中断指令 INTR k,TRAP k,4)返回指令 RET,RETE,RETF,RC,FRET,FRETE5)堆栈操作指令 FRAME K,POPD,POPM,PSHD,PSHM6)其他程序控制指令 IDLE,MAR,NOP,RESET,RSBX,SSBX,XC,分支指令,无条件转移 B:BACC:无条件转移到ACC指定的地址条件转移BANZ:当ARx不为0时转移如:BANZ LOOP,*AR2-,条件指令,BC:条件转移CC:条件调用RC:条件返回例:RC TC;TC=1,则返回CC SUB1,BNEQ;B不为0,则调用SUB1BC NEXT,AGT,AOV;A0并且溢出(两条件相与),则转到NEXT,分支指令,调用指令,中断指令,返回指令,堆栈操作指令,其他程序控制指令,RSBX:指定标志位清0SSBX:指定标志位置1XC:条件执行指令如果满足条件,则执行紧接的n条单字指令n:1或2注:条件的修改,例:SUBC DEN,AXC 1,BLT NEG A STL A,QUOT,其他程序控制指令,重复指令,重复指令:RPT,RPTB,RPTZ可省去跳转,条件判断,流水线打断等,高效率循环执行指令RPT,RPTZ:可将多周期指令变为单周期指令(如,MVPD)RPT:单指令重复循环计数器RC,RPTB:块重复指令几个寄存器:BRC,RSA,REA,标志位BRAFRPTZ:多重循环,合理安排可减少执行时间最内层循环:RPT或RPTZ次内层循环:RPTB其余层循环:BANZ,并行操作指令,1)并行装入和存储指令 ST LD 2)并行装入和乘法指令 LD MAC,LD MAS3)并行存储和加减指令 ST ADD,ST SUB4)并行存储和乘法 ST MAC,ST MAS,ST MPY,并行装载和存储指令,并行指令,所有并行指令均为单字指令多总线同时工作注意移位ST LDDB总线和EB总线同时工作先读后写原则,

    注意事项

    本文([信息与通信]TMS320C54X DSP芯片的指令系统.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开