DSP课后习题答案李建.docx
- 文档编号:15107702
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:13
- 大小:23.27KB
DSP课后习题答案李建.docx
《DSP课后习题答案李建.docx》由会员分享,可在线阅读,更多相关《DSP课后习题答案李建.docx(13页珍藏版)》请在冰点文库上搜索。
DSP课后习题答案李建
第一章:
1、数字信号处理的实现方法一般有哪几种?
(1)在通用的计算机上用软件实现
(2)在通用计算机系统中加上专用的加速处理机实现
(3)用通用的单片机实现,这种方法可用于一些不太复杂的数字信号处理
(4)用通用的可编程DSP芯片实现,可用于复杂的数字信号处理算法
(5)用专用的DSP芯片实现
(6)用基于通用dsp核的asic芯片实现
2、简单的叙述一下dsp芯片的发展概况?
答:
第一阶段,DSP的雏形阶段(1980年前后)
代表产品:
S2811。
主要用途:
军事或航空航天部门
第二阶段,DSP的成熟阶段(1990年前后)
代表产品:
TI公司的TMS320C20主要用途:
通信、计算机领域
第三阶段,DSP的完善阶段(2000年以后)
代表产品:
TI公司的TMS320C54主要用途:
各行业领域
3、可编程dsp芯片有哪些特点?
(1)采用哈佛结构:
冯.诺依曼结构,哈佛结构,改进型哈佛结构
(2)采用多总线结构
(3)采用流水线技术
(4)配有专用的硬件乘法-累加器
(5)具有特殊的dsp指令
(6)快速的指令周期
(7)硬件配置强
(8)支持多处理器结构
(9)省电管理和低功耗
4、什么是哈佛结构和冯.诺依曼结构?
它们有什么区别?
哈佛结构:
该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
冯.诺依曼结构:
该结构采用单存储空间,即程序指令和数据共
用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。
当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
区别:
哈佛:
该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
冯:
当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
5、什么是流水线技术?
答:
每条指令可通过片内多功能单元完成取指、译码、取操作数和执行等多个步骤,实现多条指令的并行执行,从而在不提高系统时钟频率的条件下减少每条指令的执行时间。
利用这种流水线结构,加上执行重复操作,就能保证在单指令周期内完成数字信号处理中用得最多的乘法-累加运算。
6、什么是定点dsp芯片和浮点dsp芯片?
它们各有什么优缺点?
答:
若数据以定点格式工作的称为定点DSP芯片。
若数据以浮点格式工作的称为浮点DSP芯片。
定点dsp芯片优缺点:
大多数定点dsp芯片称为定点dsp芯片
浮点dsp芯片优缺点:
不同的浮点DSP芯片所采用的浮点格式有所不同,有的DSP芯片采用自定义的浮点格式,有的DSP芯片则采用IEEE的标准浮点格式。
7、dsp技术的发展趋势主要体现在什么方面?
答:
(1)DSP的内核结构将进一步改善
(2)DSP和微处理器的融合
(3)DSP和高档CPU的融合
(4)DSP和SOC的融合
(5)DSP和FPGA的融合
(6)实时操作系统RTOS与DSP的结合
(7)DSP的并行处理结构
(8)功耗越来越低
8、简述dsp系统的构成和工作过程?
答:
DSP系统的构成:
一个典型的DSP系统应包括抗混叠滤波器、数据采集A/D转换器、数字信号处理器DSP、D/A转换器和低通滤波器等。
DSP系统的工作过程:
(1)将输入信号x(t)经过抗混叠滤波,滤掉高于折叠频率的分量,以防止信号频谱的混叠。
(2)经过采样和A/D转换器,将滤波后的信号转换为数字信号x(n)。
(3)数字信号处理器对x(n)进行处理,得数字信号y(n)。
(4)经D/A转换器,将y(n)转换成模拟信号;
(5)经低通滤波器,滤除高频分量,得到平滑的模拟信号y(t)。
9、简述dsp系统的设计步骤?
答:
(1)明确设计任务,确定设计目标
(2)算法模拟,确定性能指令
(3)选择DSP芯片和外围芯片
(4)设计实时的DSP芯片系统
(5)硬件和软件调试
(6)系统集成和测试
10、dsp系统有哪些特点?
答:
(1)接口方便
(2)编程方便
(3)具有高速性
(4)稳定性好
(5)精度高
(6)可重复性好
(7)集成方便
11、在进行dsp系统设计时,应如何选择合理的dsp芯片?
答:
运算速度,芯片价格,芯片运算精度,芯片的硬件资源,芯片的开发工具,芯片的功耗,其他因素
第二章
1、TMS320C54x芯片的基本结构都包括哪些部分?
答:
①中央处理器②内部总线结构③特殊功能寄存器④数据存储器RAM⑤程序存储器ROM⑥I/O口⑦串行口⑧主机接口HPI⑨定时器⑩中断系统
2、TMS320C54x芯片的CPU主要由哪几部分组成?
答:
①40位的算术运算逻辑单元(ALU)。
②2个40位的累加器(ACCA、ACCB)。
③1个运行-16至31位的桶形移位寄存器。
④17×17位的乘法器和40位加法器构成的乘法器-加法器单元(MAC)。
⑤比较、选择、存储单元(CSSU)。
⑥指令编码器。
⑦CPU状态和控制寄存器。
3、处理器工作方式状态寄存器PMST中的MP/MC、OVLY和DROM三个状态位对C54x的存储空间结构各有何影响?
当OVLY=0时,程序存储空间不使用内部RAM。
当OVLY=1时,程序存储空间使用内部RAM。
内部RAM同时被映射到程序存储空间和数据存储空间。
当MP/MC=0时,4000H~EFFFH程序存储空间定义为外部存储器;F000H~FEFFH程序存储空间定义为内部ROM;
当MP/MC=1时,4000H~FFFFH程序存储空间定义为外部存储。
DROM=0:
0000H~3FFFH——内部RAM;4000H~FFFFH——外部存储器;DROM=1:
0000H~3FFFH——内部RAM;4000H~EFFFH——外部存储器;F000H~FEFFH——片内ROM;FF00H~FFFFH——保留。
4、TMS320C54x芯片的片内外设主要包括哪些电路?
①通用I/O引脚②定时器③时钟发生器④主机接口HPI⑤串行通信接口⑥软件可编程等待状态发生器⑦可编程分区转换逻辑
5、TMS320C54x芯片的流水线操作共有多少个操作阶段?
每个阶段执行什么任务?
完成一条指令都需要哪些操作周期?
①预取指P;将PC中的内容加载PAB
②取指F;将读取到的指令字加载PB
③译码D;若需要,数据1读地址加载DAB;若需要,数据2读地址加载CAB;修正辅助寄存器和堆栈指针
④寻址A;数据1加载DB;数据2加载CB;若需要,数据3写地址加载EAB
⑤读数R;数据1加载DB;数据2加载CB;若需要,数据3写地址加载EAB;
⑥执行X。
执行指令,写数据加载EB。
6、TMS320C54x芯片的流水线冲突是怎样产生的?
有哪些方法可以避免流水线冲突?
答:
C54x的流水线结构,允许多条指令同时利用CPU的内部资源。
由于CPU的资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。
解决办法①由CPU通过延时自动解决;②通过程序解决,如重新安排指令或插入空操作指令。
为了避免流水冲突,可以根据等待周期表来选择插入的NOP指令的数量。
7、TMS320C54x芯片的串行口有哪几种类型?
四种:
标准同步串行口SP,缓冲同步串行口BSP,时分多路串行口TDM,多路缓冲串行口McBSP。
8、TMS320VC5402共有多少可屏蔽中断?
它们分别是什么?
NMI和RS属于哪一类中断源?
答:
TMS320VC5402有13个可屏蔽中断,RS和NMI属于外部硬件中断。
9、试分析下列程序的流水线冲突,画出流水线操作图。
如何解决流水冲突?
STLMA,AR0
STM#10,AR1
LD*AR1,B
解:
流水线图如下图:
1
2
3
4
5
6
7
8
9
预取指
取指
译码
寻址
读数
执行
STLMA,AR0
写AR1
预取指
取指
译码
寻址
读数
执行
STM#10,AR1
(1stWord)
写AR2
写AR2
预取指
取指
译码
寻址
读数
执行
STM#10,AR1
(2ndWord)
预取指
取指
译码
寻址
读数
执行
LD*AR1,B
读AR2
解决流水线冲突:
最后一条指令(LD*AR1,B)将会产生流水线冲突,在它前面加入一条NOP指令可以解决流水线冲突。
10、试根据等待周期表,确定下列程序段需要插入几个NOP指令。
①LD@GAIN,T
STM#input,AR1
MPY*AR1+,A解:
本段程序不需要插入NOP指令
②STLMB,AR2
STM#input,AR3
MPY*AR2+,*AR3+,A解:
本段程序需要在MPY*AR2+,*AR3+,A语句前插入1条NOP指令
③MAC@x,B
STLMB,ST0
ADD@table,A,B解:
本段程序需要在ADD@table,A,B语句前插入2条NOP指令
第三章
1、已知(80H)=50H,AR2=84H,AR3=86H,AR4=88H。
MVKD80H,*AR2
MVDD*AR2,*AR3
MVDM86H,AR4
运行以上程序后,(80H)、(84H)、*AR3和AR4的值分别等于多少?
解:
(80H)=50H,(84H)=50H,*AR3=50H,AR4=50H
2、已知,(80H)=20H、(81H)=30H。
LD#0,DP
LD80H,16,B
ADD81H,B
运行以上程序,B等于多少?
答:
(B)=0000000000H
3、阅读以下程序,分别写出运行结果。
.bssx,4
.data
table:
.word4,8,16,32
……
STM#x,AR1
RPT#2
MVPDtable,*AR1+
解:
数据表table中的常量4传送到以变量x的地址为地址的存储单元中;数据表table中的常量8传送到以变量x+1的地址为地址的存储单元中;数据表table中的常量16传送到以变量x+2的地址为地址的存储单元中;
.bssx,4
.data
table:
.word4,8,16,32
……
STM#x,AR1
RPT#2
MVPDtable,*+AR2
解:
数据表table中的常量4传送到以变量x+1的地址为地址的存储单元中;数据表table中的常量8传送到以变量x+2的地址为地址的存储单元中;数据表table中的常量16传送到以变量x+3的地址为地址的存储单元中;
5、TMS320C54x的数据寻址方式各有什么特点?
应该应用在什么场合?
答:
TMS320C54x有7种基本的数据寻址方式:
立即寻址,绝对寻址,累加器寻址,直接寻址,间接寻址,存储器映像寄存器寻址和堆栈寻址。
1,立即寻址:
其特点是指令中包含有
一个固定的立即数,操作数在指令中,因而运行较慢,需要较多的存储空间。
它用于对寄存器初始化。
2,绝对寻址:
可以寻址任一数据存储器中操作数,运行较慢,需要较多的存储空间。
它用于对寻址速度要求不高的场合。
3,累加器寻址:
把累加器内容作为地址指向程序存储器单元。
它用于在程序存储器和数据存储器之间传送数据。
4,直接寻址:
指令中包含数据存储器的低7位和DP或SP结合形成16位数据存储器地址,它寻址速度快,用于对寻址速度要求高的场合。
5,间接寻址:
利用辅助寄存器内容作为地址指针访问存储器,可寻址64千字X16为字数据存储空间中任何一个单元。
它用于按固定步长寻址的场合。
6,堆栈寻址:
用于中断或子程序调用时,将数据保存或从堆栈中弹出。
7,存储器映像寄存器(MMR)寻址:
是基地址为零的直接寻址,寻址速度快,它用于直接用MMR名快速访问数据存储器的0页。
第四章
1、软件开发的环境有哪几种?
在非集成开发环境中,软件开发常采用哪些部分?
答:
可以在两种开发环境中进行C54X的开发:
非集成的开发环境和集成的开发环境。
在非集成开发环境中,软件开发常采用:
编辑、汇编、链接、调试等部分。
2、什么是COFF格式?
它有什么特点?
答:
汇编器和链路器生成的目标文件,是一个可以由'C54x器件执行的文件。
这些目标文件的格式称为公共目标文件格式,即COFF。
特点:
在编写汇编语言程序时,COFF采用代码段和数据段的形式,以便于模块化的编程,使编程和管理变得更加方便。
3、说明.text段、.data段和.bss段分别包含什么内容?
.text段(文本段),通常包含可执行代码;
.data段(数据段),通常包含初始化数据;
.bss段(保留空间段),通常为未初始化变量保留存储空间。
5、链接器对段是如何处理的?
答:
链接器将一个或多个COFF目标文件中的各种段作为链接器的输入段,经过链接后在一个可执行的COFF输出模块中建立各个输出段,通过情况下是将不同目标文件中的同名段进行合并,并为各个输出段分配进具体的存储器中。
6、什么是程序的重定位?
答:
将各个段配置到存储器中,使每个段都有一个合适的起始地址;将符号变量调整到相对于新的段地址的位置;将引用调整到重新定位后的符号,这些符号反映了调整后的新符号值。
7、宏定义、宏调用和宏展开分别指的是什么?
答:
在调用宏之前,必须先定义宏。
可以在源程序的任何位置定义宏,宏定义的所有内容必须包含在同一个文件中。
宏定义可以嵌套,即在一条宏指令中调用其他的宏指令。
在定义宏之后,可在源程序中使用宏名进行宏调用。
8、链接器能完成什么工作?
链接器命令文件中,MEMORY命令和SECTIONS命令的任务是什么?
答:
链接器将各个目标文件合并起来,并完成如下工作:
(1)将各个段配置到目标系统的存储器。
(2)对各个符号和段进行重新定位,并给它们指定一个最终的地址。
(3)解决输入文件之间的未定义的外部引用。
MEMORY命令的作用:
MEMORY命令用来建立DSP应用系统中的存储器模型。
通过这条命令,可以定义系统中所包含的各种形式的存储器,以及它们占用的地址范围。
SECTION命令的作用:
说明如何将输入段结合成输出段;在可执行程序中定义输出段;规定输出段在存储器中的存储位置;允许重新命名输出段。
第五章
1、能用伪指令(如data)或运算符(如ADD)作为标号吗?
为什么?
(参考课本P126标号区的格式要求)
2、标号和注释有什么差别?
它们在程序运行中作用一样吗?
答(参考课本P1291.标号;注释是程序的人选项。
注释可以由ASCII码和空格组成。
注释在汇编源清单中显示,但不影响汇编。
注释在程序中的作用是说明语句的含义,以便对软件进行维护。
)
3、两个数相乘,如果结果溢出,DSP系统会报警吗?
答:
不会。
当发生溢出时,自动将结果设置为最大或最小值。
4、伪指令起什么作用?
它占用存储空间吗?
答:
伪指令给程序提供数据和控制汇编过程。
它多用于代码编译的,硬件并不认识汇编语言,它们只认机器语言,程序的运行涉及由高级语言汇编成汇编语言,再由汇编语言编译成机器语言,最后由硬件执行机器语言。
编译过程中,伪指令起作用,但是伪指令不产生目标代码,仅仅是帮助编译器准确的把其他指令编译出来。
因此,伪指令在代码编译过程中所起的功能,在程序运行时伪指令已经不存在了,因为代码是编译好后才执行的。
伪指令不占用存储空间。
5、在堆栈操作中,PC当前地址为4020H,SP当前地址为0013H,运行PSHMAR7后,PC和SP的值分别是多少?
答:
PSHMAR7是压栈操作,完成后PC指针+1,堆栈指针SP-1
PC=4021H,SP=0012H
6、试编写0.25×(-0.1)的程序代码。
参考程序如下:
.title"FracAmp.asm"
.mmregs
.global_c_int00
.bssx,1
.bssy,1
.bssz,1
.data
AmpCoef:
.word25*32768/100
.word-1*32768/10
.text
_c_int00:
ssbxFRCT
stm#x,ar1
rpt#0x1
mvpd#AmpCoef,*ar1+
stm#x,ar2
stm#y,ar3
mpy*ar2,*ar3,A
sthA,*ar1
Wait:
bWait
.end
7、将定点数0.00125用浮点数表示。
解:
A=28H;T=19H
8、试写出以下两条指令的运行结果:
①EXPA
A=FFFD876624T=0000
则以上指令执行后,B、T的值各是多少?
解:
A=0xFFFD876624;T=5
②NORMB
B=420D0D0D0DT=FFF9
则以上指令执行后,B、T的值各是多少?
解:
B=0x841A1A1A,T=FFF9
9、阅读以下程序,写出运行结果。
.bssy,5
table.word1,2,3,4,5
STM#y,AR2
RPT#5
MVPDtable,*AR2+
LD#0,B
LD#81h,AR5(有误,应改为STM#81H,AR5)
STM#0,A
STM#4,BRC
STM#y,AR5
RPTBsub-1
ADD*ARM5,B,A
STLA,*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次。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 课后 习题 答案