声明: 1、本人知识能力有限,只能按自己认识来判断答案的正误来编写本资料; 2、本资料为《DSP原理及应用(修订版)》邹彦主编的课后答案,仅作参考作用,不一定代表考试方向。 !- 3、请尊重劳动成果,祝大家考试顺利! 第一章
1、数字信号处理实现方法一般有几种?答:课本P2(2.数字信号处理实现) 2、简要地叙述DSP芯片的发展概况。答:课本P2(1.2.1 DSP芯片的发展概况) 3、可编程DSP芯片有哪些特点?答:课本P3(1.2.2 DSP芯片的特点)
4、什么是哈佛结构和冯诺依曼结构?他们有什么区别?答:课本P3-P4(1.采用哈佛结构) 5、什么是流水线技术?答:课本P5(3.采用流水线技术)
6、什么是定点DSP芯片和浮点DSP芯片?它们各有什么优缺点? 答:定点DSP芯片按照定点的数据格式进行工作,其数据长度通常为16位、24位、32位。 定点DSP的特点:体积小、成本低、功耗小、对存储器的要求不高;但数值表示范围较窄,必须使用定点定标的方法,并要防止结果的溢出。 浮点DSP芯片按照浮点的数据格式进行工作,其数据长度通常为32位、40位。
由于浮点数的数据表示动态范围宽,运算中不必顾及小数点的位置,因此开发较容易。但它的硬件结构相对复杂、功耗较大,且比定点DSP芯片的价格高。通常,浮点DSP芯片使用在对数据动态范围和精度要求较高的系统中。
7、DSP技术发展趋势主要体现在哪些方面?答:课本P9(3.DSP发展技术趋势) 8、简述DSP系统的构成和工作过程。答:课本P10(1.3.1DSP系统的构成) 9、简述DSP系统的设计步骤。答:课本P12(1.3.3DSP系统的设计过程) 10、DSP系统有哪些特点?答:课本P11(1.3.2DSP系统的特点)
11、在进行DSP系统设计时,应如何选择合理的DSP芯片?答:课本P13(1.3.4DSP芯片的选择)
12、TMS320VC5416-160的指令周期是多少毫秒?它的运算速度是多少MIPS? 解:f=160MHz,所以T=1/160M=6.25ns=0.00000625ms;运算速度=160MIPS
第二章
1、TMS320C54x芯片的基本结构都包括哪些部分?答:课本P17(各个部分功能如下) 2、TMS320C54x芯片的CPU主要由几部分组成?答:课本P18(1.CPU)
3、处理器工作方式状态寄存器PMST中的MP/MC、OVLY和DROM3个状态位对’C54x的存储空间结构有何影响?答:课本P34(PMST寄存器各状态位的功能表) 4、TMS320C54x芯片的内外设主要包括哪些电路?答:课本P40(’C54x的片内外设电路) 5、TMS320C54x芯片的流水线操作共有多少个操作阶段?每个操作阶段执行什么任务?完成一条指令都需要哪些操作周期?答:课本P45(1.流水线操作的概念)
6、TMS320C54x芯片的流水线冲突是怎样产生的?有哪些方法可以避免流水线冲突? 答:由于CPU的资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。解决的办法:① 由CPU通过延时自动解决;② 通过程序解决,如重新安排指令或插入空操作指令。 7、TMS320C54x芯片的串行口有哪几种类型?答:课本P42(TMS320C54x芯片的串行口) 8、TMS320VC5402 共有多少可屏蔽中断?它们分别是什么?NMI和RS属于哪一类中断源?答:课本P56(对VC5402来说,这13个中断的硬件名称为...... RS 和NMI属于外部硬件中断。)
9、试分析下列程序的流水线冲突,画出流水线操作图。如何解决流水线冲突?(解题时参考课本P52【例2.7.2】) STLM A,AR0 STM #10,AR1
!-
LD *AR1,B
解:流水线图如下图:
STLM A,AR0
STM #10,AR1 (1st Word)
STM #10,AR1 (2nd Word)
LD *AR1,B
预取指 取指 译码 寻址 读AR2 读数 执行 1 预取指
2 取指 预取指
3 译码 取指 预取指 4 寻址 译码 取指 5 读数 寻址 译码 6 执行 写AR1 读数 写AR2 寻址 7 执行 写AR2 读数 8 执行 9
解决流水线冲突:最后一条指令(LD *AR1,B)将会产生流水线冲突,在它前面加入一条NOP指令可以解决流水线冲突。 10、试根据等待周期表,确定下列程序段需要插入几个NOP指令。(流水线等待周期表P53) ①LD @GAIN, T STM #input,AR1 MPY *AR1+,A 解:本段程序不需要插入NOP指令(查等待周期表,对于T字段,后面的存储指令需要加入一个等待周期,由于STM是一条双字指令,隐含1个等待周期,所以不用再插入等待周期)
②STLM B,AR2 STM #input ,AR3
MPY *AR2+,*AR3+,A 解:本段程序需要在MPY *AR2+,*AR3+,A语句前插入1条NOP指令(在等待周期表,AR2后面的STM指令不用插入等待,但注2表面在后面的STM指令之前,不能有在执行阶段对,ARx的写操作,而前面的STLM指令正是执行阶段写AR2,所以应插入1个等待周期。) ③MAC @x, B STLM B,ST0
ADD @table, A, B 解:本段程序需要在ADD @table, A, B语句前插入2条NOP指令
第三章
1、已知(1030H)=0050H,AR2=1040H,AR3=1060H,AR4=1080H。
MVKD 1030H,*AR2(将地址单元1030H中的数据复制到AR2寄存器所指向的数据存储单元中去,因为(1030H)=0050H,AR2=1040H,执行结果(1040H)=0050H,*AR2=0050H) MVDD *AR2,*AR3(在AR2和AR3数据存储器内部传送数据,即AR2指向的存储单元数据=AR3指向的存储单元数据,即:AR2=1040H,AR3=1060H,所以执行结果(1040H)=(1060H)=0050H,*AR3=0050H)
MVDM 1060H,AR4(地址1060H数据向AR4寄存器传送数据。执行结果:(1060H)=AR4=0050H;)
!-
运行以上程序后,(1030H)、(1040H)、*AR3和*AR4的值分别等于多少? 解:运行的结果:(1030H)=0050H,(1040H)=0050H,*AR3=0050H,AR4=0050H 2、已知(1080H)=0020H,(1081H)=0030H。 STM #1080H,AR0(AR0=#1080H) STM #1081H,AR1(AR1=#1081H) LD *AR0,16,B(把寄存器AR0指向的地址单元中数据左移16位装入累加器B,这时(B) =2000H)
ADD *AR1,B(把寄存器AR1指向地址单元的数据与累加器B中数据相加传送给B,这时(B)=200030H
解:运行以上程序后,(B)=200030H 3、阅读以下程序,分别写出运行结果。
.bss x,4 .data
table:.word 4,8,16,32 ……
STM #x,AR1 RPT #2
MVPD table,*AR1+
解:数据表table中的常量4传送到以变量x 的地址为地址的存储单元中;数据表table中的常量8传送到以变量x+1 的地址为地址的存储单元中;数据表table中的常量16传送到以变量x+2 的地址为地址的存储单元中;
.bss x,4 .data
table: .word 4,8,16,32 ……
STM #x,AR1 RPT #2
MVPD table,*+AR2
解:数据表table中的常量4传送到以变量x+1 的地址为地址的存储单元中;数据表table中的常量8传送到以变量x+2 的地址为地址的存储单元中;数据表table中的常量16传送到以变量x+3 的地址为地址的存储单元中; 4、NOP指令不执行任何操作,它起什么作用?
答:延时作用,在指令中加入NOP指令可以避免流水线冲突。延时几个周期,避免流水线冲突;需要精确延时程序时,也会用到NOP指令。
5、TMS320C54x的数据寻址方式各有什么特点?应该应用在什么场合?答:课本P89(本章小结)
第四章
1、软件开发环境有哪几种?在非集成开发环境中,软件开发常采用哪些部分?
答:可以在两种开发环境中进行C54X的开发:非集成的开发环境和集成的开发环境。在非集成开发环境中,软件开发常采用:编辑、汇编、链接、调试等部分。
2、什么是COFF格式?它有什么特点?答:课本P94(4.3COFF的一般概念)
3、试说明.text段、.data段和.bbs段分别包含什么内容?答:课本P94(4.3.1COFF的一般概念)
4、程序员如何定义自己的程序段?
!-
5、链接器对段是如何处理的?答:课本P98(4.3.3链接器对段的处理)
6、什么是程序的重新定位?答:课本P99(4.3.4链接器对程序的重新定位)
7、宏定义、宏调用和宏展开分别指的是什么?答:课本P112(4.4.4宏定义和宏调用) 8、链接器能完成什么工作?链接器命令文件中,MEMORY命令和SECTIONS命令的任务是什么?答:课本P114(4.5链接器的使用,4.5.4MOMERY命令,4.5.5SECTIONS命令)
第五章
1、能用伪指令(如data)或运算符(如ADD)作为标号吗?为什么?(参考课本P126标号区的格式要求)
2、标号和注释有什么差别?它们在程序运行中作用一样吗?答(参考课本P129 1.标号;注释是程序的人选项。注释可以由ASCII码和空格组成。注释在汇编源清单中显示,但不影响汇编。注释在程序中的作用是说明语句的含义,以便对软件进行维护。)
3、两个数相乘,如果结果溢出,DSP系统会报警吗?答:不会。当发生溢出时,自动将结果设置为最大或最小值。
4、伪指令起什么作用?它占用存储空间吗?答:伪指令给程序提供数据和控制汇编过程。答:它多用于代码编译的,硬件并不认识汇编语言,它们只认机器语言,程序的运行涉及由高级语言汇编成汇编语言,再由汇编语言编译成机器语言,最后由硬件执行机器语言。编译过程中,伪指令起作用,但是伪指令不产生目标代码,仅仅是帮助编译器准确的把其他指令编译出来。因此,伪指令在代码编译过程中所起的功能,在程序运行时伪指令已经不存在了,因为代码是编译好后才执行的。伪指令不占用存储空间。
5、在堆栈操作中,PC当前地址为4020H,SP当前地址为0013H,运行PSHM AR7后,PC和SP的值分别是多少?(PSHM AR7是压栈操作(完成后PC指针+1,堆栈指针SP-1) 答:PC=4021H ,SP=0012H
6、试编写0.25×(-0.1)的程序代码。 参考程序如下: .title \ .mmregs .global _c_int00 .bss x,1 .bss y,1 .bss z,1 .data AmpCoef: .word 25*32768/100 .word -1*32768/10 .text _c_int00: ssbx FRCT stm #x,ar1 rpt #0x1 mvpd #AmpCoef,*ar1+ stm #x,ar2 stm #y,ar3 mpy *ar2,*ar3,A sth A,*ar1 Wait: b Wait
!-
.end
7、将定点数0.00125用浮点数表示。解:A=28H;T=19H 8、试写出以下两条指令的运行结果: ①EXP A
A=FFFD876624 T=0000
则以上指令执行后,A、T的值各是多少?解: A=0xFFFD876624;T=5 ②NORM B
B=420D0D0D0D, T=FFF9
则以上指令执行后,B、T的值各是多少?解:B=0x841A1A1A, T=FFF9 9、阅读以下程序,写出运行结果。 .bss y, 5
table .word 1,2,3,4,5 STM #y, AR2 RPT #5
MVPD table,*AR2+ LD #0,B
LD #81h, AR5 (有误,应改为STM #81H,AR5) STM #0,A STM #4, BRC STM #y, AR5 RPTB sub-1
ADD *ARM5,B,A STL A,*AR5+ sub: LD #0,B 运行以上程序后,(81H),(82H),(83H),(84H)和(85H)的值分别是多少? 答:(81H)=0001H,(82H)=0002H,(83H)=0003H,(84H)=0004H,(85H)=0005H。 10、CALL指令调用子程序与循环语句有什么不同?
答:CALL指令调用子程序:课本P135(子程序调用指令表);循环语句:课本P137(5.3.2循环操作程序)
11、多次循环嵌套时,能够从最内一层循环直接跳到最外一层循环吗?若能,则采用什么方式呢?
12、在不含循环的程序中,RPTZ#3语句和其前一句、后一句以及后第二句各运行多少次? 答:RPTZ#3语句和其前一句运行1次,后一句运行3次,后第二句运行1次。
第六章
1、FIR和IIR数字滤波器都有哪些设计方法?每种设计方法的步骤是什么?(参考课本P179~P181)
2、与FIR滤波器比较,IIR滤波器有哪些优缺点?(参考课本P167 6.2 IIR滤波器的DSP实现) 3、二阶IIR滤波器,又称为二阶基本节,其结构图可以分为几种类型?各有什么特点?(参考课本P168 1.二阶IIR滤波器) 4、略
5、FIR滤波器的算法为y(n)= a0x(n)+a1x(n-1)+a2x(n-2)+a3x(n-3)+a4x(n-4),试用线性缓冲区和直接寻址的方法实现。(参考课本P161~P162,只是对课本一些参数稍作修改便是答案)