DSP复习资料
- 格式:doc
- 大小:1.77 MB
- 文档页数:10
DSP复习资料第一章1、简答:书P2一个典型的DSP系统的基本构成应包括抗混叠滤波器、数据采集A/D转换器、数字信号处理器DSP、D/A转换器和低通滤波器等。
DSP系统的工作过程:(简述即可)①将输入信号x(t)经过抗混叠滤波,滤掉高于折叠频率的分量,以防止信号频谱的混叠。
②经过采样和A/D转换器,将滤波后的信号转换为数字信号x(n)。
③数字信号处理器对x(n)进行处理,得数字信号y(n)。
④经D/A转换器,将y(n)转换成模拟信号;⑤经低通滤波器,滤除高频分量,得到平滑的模拟信号y(t)。
2、小题 Simulator和Eimulator分别指软件仿真和硬件仿真 P43、简答:列举 DSP 芯片的特点?(后面简要阐述即可)答:哈佛结构,即将数据存储器和程序存储器分开;多总线结构,即设置了数据总线和数据总线,使运算速度提高。
(哈弗结构使得总线也分为数据和程序总线)指令系统的流水线操作,流水线操作是各指令以机器周期为单位相差一个时钟周期,连续并行工作的情况。
(其本质是DSP多条总线彼此独立地同时工作,使得同一条指令在不同机器周期内占用不同总线资源。
同时,不同指令在同一机器周期内占用不同总线资源。
)专用的硬件乘法器和加法器,使得大部分DSP芯片可在一个指令周期内完成一次加法和乘法操作。
高效的DSP指令:可以缩短指令的执行时间。
4、简答:DSP芯片的运算速度可用几种指标来衡量?书P 9答:指令周期,即执行一条指令所需的时间;MAC时间,即完成一次乘法和一次加法的时间;FFT执行时间,即运行一个FFT程序所需的时间;MIPS,即每秒执行百万条指令;MFLOPS,即每秒执行百万次浮点操作。
5、小题:设DSP芯片的工作频率为100MHZ,一帧的时间为20ms,则该DSP芯片在一帧内所能提供的最大运算量为200万条指令。
书P11第二章1.ALU运算时,当C16=1 时,可以分为两个16位ALU使用2、累加器的保护位的作用防止迭代运算中产生的溢出3、DSP的移位位数为-16~31,则桶形移位寄存器最多左移31位,右移16位;4、在一些指令中,加上后缀“R”,表示该指令要将累加器的低16位进行舍入处理5、简答:流水线的原理:将指令分为几个子操作,每个子操作由不同的单元完成。
这样,每隔一个时钟周期,每个单元就可以进入一条新指令。
因此,同一个时钟周期内,在不同的单元可以处理多条指令,相当于并行执行了多条指令。
TMS320C54x采用6 级流水线。
6、片内ROM里面包含引导装载程序(Bootloader)7、简答SARAM和DARAM 的联系和区别区别前者1个机器周期内只能被访问1次后者1个机器周期内能被访问2次,可同时进行读操作和写操作。
联系都可当数据存储器和程序存储器使用第三章1、数的定标是指定点DSP芯片处理小数时,由程序员来确定一“小数点”的位置。
2、在数的定标中,如果采用Q表示法,一个Q8定点数的十进制数表示范围为-215*2-Q —(215-1)*2-Q (此处写的不清楚,见书上P44)3、OVM的中文名称是溢出保护模式位;当OVM=1,表示设置溢出保护模式,用指令表示SSBX OVM ;OVM=0,表示设置溢出不保护模式;用指令表示RSBX OVM ;SXM的中文名称是符号扩展模式位;当SXM=1时,设置符号扩展模式,即高24位扩展为符号位。
用指令表示SSBX SXM ; 当SXM=0时,设置符号不扩展模式,即高24位用0填充;用指令表示RSBX SXM4、DSP芯片的乘法运算,常需要用到舍入处理方法书上p47方法是在低16位的最高位加1,然后将低16位清除,将高16位作为结果。
(将该数加0.5,之后再将小数部分去除,即舍入处理方法,也称上取整。
)5 书P62中间的例题给出一个32位的浮点数,求十进制等值数。
自己应该能看懂第五章1、数据类型:常数类型:const关键字确保变量或数组的值不会被改变端口类型:ioport是端口变量声明的关键字Volatile类型:使用volatile关键字可确保编译器不会对这些变量进行优化可能出现的题型P108程序填空例如,如果要在端口10h声明端口变量,并将a输出到该端口,再读取数据保存到b中,函数实现方法如下:ioport unsigned int port10; /* 访问I/O端口10h的变量*/int func (){port10 = a; /* 写a到端口10h */...b = port10; /* 读取端口10h的值到b */...2、可能出现的题型P110 程序填空题目:已知SWWSR的地址是0x0028,将DSP寄存器地址定义为volatile整形指针类型用合适的C代码定义并赋值为0X2000。
(1)SWWSR 表示软件等待状态寄存器(2)#define SWWSR (volatile unsigned int *)0x0028{*SWWSR=0X2000}(3)P108 为什么要用volatile类型的数据?答:对程序进行编译时,代码优化器会避免存储区访问而删除一些语句,为了保留这些语句,可以使用volatile关键字可确保编译器不会对这些变量进行优化。
3、P112 申明一个函数是中断函数,要使用中断关键字interrupt (怎么考??)中断程序没有参数传递,即使说明,也将被忽略4 、小题pragma 指令告诉编译器如何处理函数。
常用的pragma指令有CODE_SECTION (symbol, “section name ) 语句含义:可以为symbol指定专门的代码存储空间,而非.bss块DATA_SECTION (symbol, ”section name”) 语句含义:可以为symbol指定专门的数据存储空间,而非.data块5、简答C语言程序代码优化有几种方法?其中并行指令属于那种优化方法?并举一例并行指令算法优化编译优化函数优化属于编译优化ST||LD 特点:单字单周期第六章1、小题DSP的内部存储器类型可分为随机存取存储器(RAM)和只读存储器(ROM)。
其中RAM又可以分为两种类型:单寻址RAM(SARAM)和双寻址RAM(DARAM)。
2、小题片内ROM通过MP/MC设置MP/MC=0:表示片内ROM属于程序存储器的一部分。
MP/MC=1:表示片内ROM不属于程序存储器的一部分。
3 小题片内RAM通过OVL Y设置OVL Y=0,表示片内RAM作为数据存储器使用;OVL Y=1,表示片内RAM既能当程序存储器用,又能当数据存储器用。
4、汇编语言实现计算∑==41iiixay的程序(通过此题了解.usect .bss.data.word.asg.set.text.end的使用).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 ; 插入0个等待状态STM #STACK+10h,SP ; 设置堆栈指针STM #a,AR1 ; AR1指向aRPT #7; 移动8个数据MVPD table,*AR1+; 从程序存储器到数据存储器CALL SUM; 调用SUM子程序end: B endSUM: STM #a, AR3 ;子程序执行STM #x, AR4RPTZ A, #3MAC *AR3+,*AR4+,A LD #y,DPSTL A,@ yRET.end 补充 .asg .set伪指令的含义前者将一个字符串赋值给一个替代符.asg AR1,counter;表示用counter代替AR1 后者使符号等于一个数PERIOD .set 4999 表示PERIOD = 49995、编写链接命令文件按照实验报告上的写MEMORY(要求大写){PAGE 0: PRAM: origin = 0x1000, length = 0xEFFFPAGE 1: DARM: origin = 0x0300, length = 0x0D00}SECTIONS(要求大写){.text :> PRAM PAGE 0.bss :> DARM PAGE 1}可能考的题型:例题:用MEMORY伪指令编写链接命令文件,要求:程序存储器:4K字ROM,起始地址为C00h,取名为ROM.数据存储器:32字RAM,起始地址为60h,取名为SCR.512字RAM,起始地址为80h,取名为CHIP.MEMORY{PAGE0: ROM: org=C00h, len=1000hPAGE1: SCR: org=60h, len=20hCHIP: org=80h, len=200h}6 定义(.def):在当前模块中定义,在其他模块中引用参考(.ref):在当前模块中引用,在其他模块中定义全局(.global):包含上面两者可能考的题型下面对一些常用的伪指令说法正确的是:(D )A、.def所定义的符号,是在当前模块中使用,而在别的模块中定义的符号;B、.ref 所定义的符号,是当前模块中定义,并可在别的模块中使用的符号;C、.sect命令定义的段是未初始化的段;D、.usect命令定义的段是未初始化的段。
7、已知一数组名为indata,长度为30个字,试用两种方法给该数组分配空间。
.bss indata , 30indata .usect “indata”, 30第七章1、指令执行前有关寄存器及数据存储器单元情况如下图所示,请在下图分别填写指令执行后有关寄存器及数据存储器单元的内容。
(1)加法指令 【例】 ADD *AR3+,14,A 表示(AR3)<<14+A->A ,AR3+1->AR3操作前 00 0000 12001 1500 A B Data Memory0100h操作后 00 0540 12001 1500A B 0100h0100 10101 1AR3 SXMAR3 SXM(2)乘法指令【例】 MPY 13,A ; 表示T*Smem →A, Smem 所在的单元数据存储器地址为13(0Dh)操作前 000000 00360003 0008A T Data Memory000Dh操作后 000000 00180003 0008A T 000Dh11FRCTFRCT(3)采用间接寻址的乘加指令MAC *AR5+,A ;A+(AR5)*T →A, AR5= AR5+12、在直接寻址中,指令代码包含了数据存储器地址的低7 位。
当ST1中直接寻址编辑方式位CPL =0 时,与DP相结合形成16位数据存储器地址;当ST1中直接寻址编辑方式位CPL =1 时,加上SP基地址形成数据存储器地址。