DSP测试试题-(A卷)
DSP H题-(A 卷)
作者: 日期:
1. C54x系列DSP芯片由于其内部CPU采用了( B ),因此具有比传统处理器更快的指令执行速度。
(A)冯.诺依曼结构和流水线操作(B)哈佛结构、流水线技术和多总线结构
(C)并行操作和多总线结构(D) 高时钟频率
2. OVM是状态寄存器ST1中的溢出方式控制位,当0VM=1时,则对ALU的运行结果进行调整,若数据发生正向溢出时,则ALU将采用下列( C )方式进行处理。
(A )将32位最小负数FF80000000装入累加器
(B)由低32位向高8位进位
(C)将32位最大正数007FFFFFFF装入累加器
(D)保持不变
3. 当C54X执行一个双数据读操作指令时,将会使用到下列的哪一组总线( D )
(A) PB、CB、PAB、CAB (B) DB、EB、DAB、EAB
(C) CB、EB、CAB、EAB (D) CB、DB、CAB、DAB
4. 40位累加器A中的定点数为FF FFFF FFCBH,T=0000H,执行EXP A指令后,则T寄存器的值变为( A )
(A) 0019H (B) FFFFH
(C) 0025H (D)保持不变
5. 在C54X系列的DSP汇编语言程序中,定义一个小数如0.907,应当写成:(B )
(A) 0. 907 (B) 32768*0.907
(C) 907/1000 (D) 32768*907/1000
6. 程序空间的配置可通过PMST的MP/MC和OVLY控制位来设置,对C5402如要将其0000H~3FFFH空间定义为内部DARAM,
可按如下哪一种方式配置( A )。
(A) OVLY=1 (B) MP/MC=1
(C) OVLY=0 (D) MP/MC=0
7. 直接寻址指令中的低7位是一个数据页的偏移地址dmad,而所在的数据页由数据页指针DP或SP的值决定。如果用DP方式产生直接地址,并取DP=2和dmad=10H则该直接地址为:(A )
(A) 0110H (B) 0210H
(C) 0012H (D) 0201H
8. 有一条DSP汇编指令,其语法格式为:MAC Smen , src ,该指令所完成的操作对应的表达式为:( D )
(A) src=src+Sme n*src (B) src=src+T*src
(C) src=T+src*Smen (D) src=src+T*Smen
9. 当某个可屏蔽中断被DSP 响应后,中断系统将自动完成(
D )操作。
二、简答题(每小题6分,共12分)
1. 循环循址是实现循环缓冲区的关键,简要说明循环缓冲区中循环循址算法的基本工作原理。 循环缓冲区的有效基地址(EFB )就是用户选定的辅助寄存器(ARx )的低N 位置0后所
刚的值。循环缓冲区的尾基地址(EOB )是通过用BK 的低N 位代替ARx 的低N 位得到。循环缓冲区的index 就是ARx 的低N 位, 步长(step )就是加到辅助寄存器或从辅助寄存器中减去的值。
(3分)
循环寻址算法为: 0< in dex+step
( 3 分)
In dex= in dex+step — BK Else in dex+step<0; In dex= in dex+step+BK
2. 试分析小数乘法产生冗余符号位的原因,并说明如何解决冗余符号位问题。
出错原因:两带符号数相乘,其结果带有
2个符号位
S x x x (Q3 格式)
x S y y y (Q3 格式)
S S z z z z z z (Q6
格式)
解决办法:运算结果左移一位,消去多余符号位。可通过对 FRCT 位置1,乘法器自动将乘积结果左移一位。
三、分析题(每小题6分,共12分)阅读下列程序,写出程序的总体功能和运行结果。假定 x1、x2、x3、x4、y 、a 、x 、y 等变量
单元已按顺序定义。
1、STACK .usect “ STACK ,10H
2 、 STACK .usect “ STACK ,10H
Table: .word 3,5,4,5
.data
(A ) 清除IMR 中的相应位,
INTM 置 1
(B) 清除IFR 中的相应位, INTM 置 0
(C) 清除IMR 中的相应位, INTM 置 0
(D)
清除IFR 中的相应位, INTM 置 1
10. C54X 系列芯片中,在同一个周期内, CPU 可以同时进行读和写操作的存储器是:
(B )
(A ) SARAM
(B ) 片内ROM
(D )存储器映射寄存器MMR
(C ) DARAM
(3 分)
9. 当某个可屏蔽中断被DSP响应后,中断系统将自动完成( D )操作。
.text table: .word a1,a2,a3,a4
start: STM #0,SWWSR
STM #STACK+10H,SP
STM #x1,AR1
RPT #3
MVPD table,*AR1 +
.word x1,x2,x3,x4
.text
start: STM #0,SWWSR STM #STACK+10H,SP
STM #a,AR1
四、应用题(本大题共14分)假设目标存储器的配置为,程序空间:
EPROM E000H FFFFH (片外),数据空间:SPRAM 0060IH
007FH (片内),DARAM080H ?017FH (片内),试编写连接器命令文件,将 example.obj 和 vectors.obj 中的.text 、.data 、.bss 、 STAC K .vectors 段映射到对应的存储器空间。
ectors.obj example.obj -o example.out (4 分)
-m example.map -e start MEMORY {
PAGE0:
EPROM: org=0E000h, le n=100h VECS: org=0FF80h, le n=04h
PAGE1:
SPRAM: org=0060h, le n=20h DARAM: org=0080h, le n=100h
}
(5 分)
SECTIONS {
.text :>EPROM PAGE0 .data :>EPROM PAGE0 .bss :>SPROM PAGE1 STACK:>DARAM PAGE1 .vectors :>VECS PAGE0
}
(5 分)
五、编程题(本大题共14分)试编写|被除数| >|除数|,且商为整数的除法运算程序,完成
12384-512的运算。程序
CALL MODE End: B end MODE: LD @x1,T
MPY @x3,B LD @x2,T MAC @x4,B STL B,@y STH B,@y+1
RET .end
RPT #7
MVPD table,*AR1 +
CALL MODE
End: B end MODE: STM #a,AR1
STM #x,AR2 STM #2,AR3 LD *AR1+,T
MPY *AR2+,A loop: LD *AR1+,T MPY *AR2+,B MAX A
BANZ loop,*AR3- STL A,@y RET .end
1、y=x1*x3+x2*x4 2 、求ai*xi (i=1,2,3,4) 中的最大值
内容包括符号的处理。
.bss num, 1
.bss den, 1 .bss quot, 1 .data
table:
.word 12384 .word 512 (4 分)
.text
start : STM #num, AR1
RPT #1
MVPD table , *AR1 + LD @den, 16, A MPYA @num (5 分) ABS A STH A, @den LD @num, A ABS A RPT #15 SUBC @den, A ( 5 分) XC 1, BLT NEG A STL A, @quot
End:
B end
,试根据上述滤波器系数,编写一个 DSP 程序实现该滤波器。要求用循环
缓冲区法实现。 f=[ 0.35, 0.4]; b=fir1(29,f); .mmregs .def start .bss y,1 ( 3 分)
xn .usect “ xn ” ,1 a
.usect
“a ” ,1
PA0 .set 0 PA1 .set 1
.data table: .word a0,a1, …,a29
(3 分)
.text
start: SSBX FRCT STM # b0, AR1 RPT #29
六、设计题(本大题共14分)有一个阶数为
N=8的FIR 滤波器,其单位冲击响应序列 h(n)如下:h(0)=0.1, h(1)=0.2, h(2)=0.3,
h(3)=0.4, h(4)=0.4, h(5)=0.3, h(6)=0.2, h(7)=0.1