最新DSP期末试题与答案
![最新DSP期末试题与答案](https://img.360docs.net/img85/1fjxjh2yzdtpbe3ybjk6c3h38rl75nec-51.webp)
![最新DSP期末试题与答案](https://img.360docs.net/img85/1fjxjh2yzdtpbe3ybjk6c3h38rl75nec-22.webp)
一、填空题:
1. DSP芯片的结构特点主要有改进的哈佛结构、低功耗设计、高度并行性、
多处理单元、特殊的DSP指令等。
2.C54x DSP具有两个 40 位累加器。累加器A的 AG或32-39 位是保护位。3.软件中断都是由 INTR K 、 TRAP K 和 RESET 产生。4.TMS320C54X片内有8条16位主总线,它们是1条程序总线、 3条数据总线、
4条地址总线。
5.MEMROY的作用是用于描述系统实际的硬件资源,用来定义用户设计的系统中所包含的各种形式的存储器,以及它们占据的地址范围,SECTIONS的作用是用于描述输入段怎样被组合到输出段内,在可执行程序内定义输出段,规定存储器内何处存放置输出段,允许重命名输出段。
6. 执行复位操作后,下列寄存器的初始值分别为:ASM= 0 、DP= 0 。7.TMS320C54x有三种类型的串行口:标准同步串行口(SPI)、缓冲串行口
(BSP)、和时分多路复用串行接口(TDM)。
8.桶形移位器能把输入的数据进行 0-31位的左移和 0-15 位的右移。
9.即寻址方式中的立即数有两种数值形式,数值的位数为 3、5、8、9 位时为短立即数;数值的位数为 16 位时是长立即数。
10.DSP片内寄存器在C语言中一般采用指针方式来访问,常常采用的方法是将DSP寄存器地址的列表定义在头文件中(reg.h)。
11. 所有TMS320C54X芯片内部都包含程序存储器和数据存储器。12.直接寻址就是在指令中包含有数据存储器地址的低7位用作偏移地址,并与基地地址组成16位的数据存储器地址。
13.定时器主要由3个寄存器所组成,包括定时寄存器TIM 、定时周期寄存器PRD 、定时控制寄存器TCR 。
14.链接器对段的处理主要通过 MEMORY 和 SECTIONS 两个命令完成。15.OVLY= 0 ,则片内RAM只安排到数据存储空间。DROM= 1 ,则部分片内ROM安排到数据空间。
16.C54X的工作方式状态寄存器PMST提供了三个控制位,包括 MP/非MC 、 OVLY 、DROM 。
17. DSP芯片的结构特点主要有改进的哈佛结构、流水线操作、专用的硬件乘法器、快速的指令周期、特殊的DSP指令等。
18.ST1的CPL= 1 表示选用堆栈指针(SP)的直接寻址方式。
19.TMS320C54X有3个16位寄存器作为状态和控制寄存器,它们是状态寄存器ST0 、状态寄存器ST1 、处理器工作方式状态寄存器PMST 。
20.ST1的C16= 0 表示ALU工作在双精度算术运算方式。
21.时钟发生器包括一个内部振荡器和一个锁相环(PLL)电路。
22.所有的COFF文件都包含三种形式的段,分别是 .text 文本段、 .data 数据段、和 .bss 保留空间段。
23.状态寄存器ST1中CPL=0表示使用DP ,CPL=1表示选择的是使用SP 。
24.累加器寻址的两条指令分别是 READA Smem 、 WRITA Smem 。
二、简答题
1.简述TMS320C54x的7种基本的数据寻址方式。
答:1、立即寻址 2、绝对寻址 3、直接寻址 4、间接寻址 5、累加器寻址 6、存储器映射寄存器寻址 7、堆栈寻址
2.段的作用是什么?COFF目标文件包含哪些段?
答:所谓段,是指连续地占有存储空间的一个代码段或数据段,是COFF文件中最重要的概念。一个目标文件中的每一段都是分开的和各不相同的。
COFF目标文件文件包含:(1)text段:可执行代码段(2)data段:已初始化数据段(3)bss段:未初始化数据的保留空间段
3.简述线性缓冲区法实现FIR滤波器延时一个采样周期运算Z-1。
4.什么是COFF和段?COFF目标文件包含哪些段?
答:所谓段,是指连续地占有存储空间的一个代码段或数据段,是COFF文件中最重要的概念。一个目标文件中的每一段都是分开的和各不相同的。
.text 文本段 .data 数据段 .bss保留空间段
5.简述McBSP接口的特点。
答:(1)全双工通信;(2)拥有两级缓冲发送和三级缓冲接收数据寄存器,允许连续数据流传输;(3)为数据发送和接收提供独立的帧同步脉冲和时钟信号;(4)能够与工业标准的解码器、模拟接口芯片(AICs)和其他串行A/D和D/A设备直接连接;5)支持外部移位时钟或内部频率可编程移位时钟。6)128个通道用于接收传送。(7)支持A-bis(8)接口直接连接工业标准的多媒体数字信号编解码器,A/D、D/A和模拟芯片。
6.HPI8接口有几个寄存器?他们的作用是什么?
答:(1)HPI存储器:用于TMS320C54X与主机间传送数据。地址从1000H到17FFH,空间容量为2K字
(2)HPI地址寄存器:由主机对其直接访问,存放当前寻址HPI存储单元的地址
(3)HPI数据锁存器:由主机对其直接访问,存放当前进行读/写的数据
(4)HPI控制寄存器:TMS320C54X与主机都能对其直接访问,用于主处理与DSP相互握手,实现相互中断请求
(5)HPI控制逻辑:用于处理HPI与主机之间的接口信号
7.一个典型的DSP系统通常由哪些部分组成?画出原理框图。
答:DSP 芯片及DSP 基本系统、程序和数据存储器、数/模和模/数转换器、模拟控制与处理电路、各种控制口和通信口、电源处理电路和同步电路等。
8.简述C54X芯片的主要特点。
答:(1)CPU利用其专用的硬件逻辑和高度并行性提高芯片的处理性能。
(2)存储器具有192K字可寻址存储空间(包括64K字程序存储空间、64K字数据存储空间、64K字I/O空间)
(3)高度专业化的指令集能够快速地实现算法并用于高级语言编程优化
(4)片内外设和专用电路采用模块化的结构设计,可以快速地推出新的系列产品
(5)TMS320C54X执行单周期定点指令时间为25/20/15/12.5/10ns,每秒指令数为40/66/100MIPS。
(6)TMS320C54XD电源由IDLE1、IDLE2、IDLE3功耗下降指令控制功能,以便DSP工作在节电模式下,使之更适合于手机。
(7)在片仿真接口,片上的JTAG接口符合IEEE149.1边界扫描逻辑接口标准,可与主机连接,用于芯片的仿真和测试。
9.定时器由哪些寄存器组成,他们是如何工作的?
答:定时器主要由3个寄存器所组成,包括定时寄存器TIM 、定时周期寄存器 PRD 、定时控制寄存器TCR。定时寄存器TIM是一个减1计数器,提供定时器目前的计数值;周期定时器PRD用来存取定时时间常数;定时控制寄存器TCR中包含定时器的控制位和状态位,可以使能和屏蔽定时器,决定定时器的工作模式,用来控制定时器的操作。
二、指令解释
1、MAC *AR3+,*AR4+,A,B
;B=A-*AR3+*AR4
;AR3=AR3+1
;AR4=AR4+1
2、SUB #12345,8,A,B
;B=A-12345<<8
3、ADD *AR2+,*AR2-,A
;A=*(AR2)+*(AR2+1)
4、RPT #99
NOP
;重复NOP100次
5、MVDD *AR3+,*AR5+
;数据存储器内部传送数据AR3→AR5,且指令结束后AR3与AR5加1
6、ABDST *AR3+,*AR4+
;B=(*AR3-*AR4)<<16
7、CALA A
;按累加器规定的地址调用子程序
8、ST T,*AR7- *AR7=T,AR7=AR7-1
9、DST B,*AR1+ AR1=B,AR1=AR1+1
10、STA, *AR4+
||LD *AR4-,A AR4=A,AR4=AR4+1|| A=AR4,AR4-1
11、LD #0032H,4,A
;立即数0032H先左移4位后,再加载累加器A
12、STM #1000H,*AR2
;立即数1000H存储到AR2指向的地址单元
13、MAC #345,A,B
;立即数345与T寄存器内值相乘后与累加器A相加,结果加载累加器B
14、MVDD *AR3-,100H
;AR3指向的地址单元的值传送给地址100H,AR3中地址减一
15、LDM *AR1,A
;AR1指向的地址单元的值加载到累加器A
16、LD #80H, A 把立即数80H装入累加器
17、WRITA SMEM 把Smem所指定的数据存储单元中的一个数传送到累加器A所指定的成序存储单元
18、PORTR FIFO,*AR5 把一个数从端口为FIFO的I/O口复制到AR5寄存器所指向的数据存储单元中
19、LDM MMR,A
;将MMR装入累加器A中
20、MVKD SAMPLE,*AR5
21、ADD *AR3+,14,A
;将AR3左移14加上A →A
AR3=AR3+1
22、MPYA TEMP2
;B<=A.Temp2.T=Temp2
23、STA , *AR4+
||LD *AR4-,A
24、DST B ,*AR1-
; B 存到长字单元 AR1中,且AR 减1
25、MACD *AR2-,COEFFS,A
26、STL A ,@quot
;将 累加器A 的低16位字存放在quot 的存储单元中
27、ADD #4568H ,8,A ,B
;将4568H 左移8位与A 相加,赋给B
28、LDM AR1,A
;存储器映像寄存器寻址方式,将映像寄存器加载累加器AR1 → A 的低位,其余位置为0
29、MVDD *AR3+,*AR5+
;数据存储器内部传送数据AR3→AR5,且指令结束后AR3与AR5加1
30、MPYA TEMP2
;B<=A.Temp2.T=Temp2
四、编程
1.用汇编语言编制计算6
0i i y x ==∑的程序。
.global start
.mmregs .data
Table: .word 1,1,1,1,1,1
.text
start: STM #Table,AR1
LD #0,A
RPT #5 ADDC *AR1+,A
end:
b end
2. 编一程序,首先实现对DATA 开始的5个单元赋初值0,1,2,3,4,5,然后再对每个单元内容加1。
;chu shi hua x[5]={0,1,2,3,4} bin dui mei ge dan yuan jia 1
.title "lian.asm"
.mmregs
.bss x,5
stack .usect "stack",10h
.data
table: .word 0,1,2,3,4
.def start
.text
start: STM #x,AR1
RPT #4
MVPD table,*AR1+
LD #1,16,B
STM #4,BRC
STM #x,AR4
RPTB #next-1
ADD *AR4,16,B,A
STH A,*AR4+
next: LD #0,B
end: B end
.end
3.试编一程序,计算y =x a i i i ∑=5
1,其中数据均为小数。并找出5项乘积x a i i (i=1,2,3,
4,5)中的最小值,放入z 单元中。
4. 编一程序,首先实现对DATA 开始的4个单元赋初值0,1,2,3,4,然后再对每个单
元内容加1。
5.编写一段程序,将程序存储器中的10个数据首先传送到数据存储器中(以DATA1开始),再将DATA1开始的10个单元内容传送到DATA2开始的数据储存期中。
.global start
.mmregs
.data
Table: .word 2,1,2,3,4,5,6,7,8,2
.bss DATA1,10
.bss DATA2,10
.text
start: STM #DATA1,AR1
RPT #9
MVPD Table,*AR1+
STM #DATA2,AR0
RPT #9
MVPD DATA1,*AR0+
end: b end
6 将数组x[5] 初始化为{1,2,3,4,5}。
.global start
.mmregs
.data
Table: .word 1,2,3,4,5
.bss x,5
.text
start: STM #x,AR1
RPT #4
MVPD Table,*AR1+
end: b end
五、阅读程序
1、阅读下列汇编源程序,在每条语句后写出注释,并叙述程序的功能。
.title "F2.ASM" ;为汇编源程序取名
.mmregs ;定义存储器映像文件
.def start ;定义启动模式
.bss y , 1 ;为y分配1个存储空间
X .usect "x",7 ;为x预留7个存储空间
b0 .usect "b0",7 ;为b0预留7个存储空间
PA0 .set 0 ;PA0=0
PA1 .set 1 ;PA1=1
.data
COEF:
.word 1*32768/10 ;0.1
.word 2*32768/10 ;0.2
.word -4*32768/10 ;-0.4
.word 3*32768/10 ;0.3
.word -4*32768/10 ;-0.4
.word 2*32768/10 ;0.2
.word 1*32768/10 0.1
.text
start:
SSBX FRCT FRCT位置1,表示进行小数乘
STM #b0, AR1 ;b0的首地址传给AR1
RPT #6 ;重复7次下条指令
MVPD table, *AR1+ ;将程序空间的7个数据传送给数据存储器 STM #xn+6, AR2 ; AR2指向x(n-6),AR2=86H
STM #b0+6, AR3 ;AR3指向b6单元,AR3=8EH
STM #7, BK ;BK=7,设置缓冲区长度
LD #xn, DP ;设置页指针,DP=01H
PORTR PA1, @xn ;输入x(n)
FIR2:
RPTZ A, #6 ;累加器A清零,设置迭代次数
MAC *AR2+0%, *AR3+0%, A ;A=circ(AR2+AR0)+circ(AR3+AR0)
STH A, @y ;暂存y(n)
PORTW @y, PA0 ;输出y(n)
BD FIR2 ;执行完下一条后,跳到FIR2处
PORTR PA1,*AR2+0% ;输入最新样本,并修改AR2
.end
功能:N=7的滤波器,y(n)= b0x(n) +b1x(n-1) +b2x(n-2)+ b3x(n-3)+b4 x(n-4)+ b5x(n-5)+ b6x(n-6)
2.阅读下列汇编源程序,在每条语句后写出注释,并叙述程序的功能
.title “cjy4.asm”
.mmregs
STACK .usect “STACK”,10H
.bss a,4 ;为a 分配4个存储单元
.bss x,4 ;为x 分配4个存储单元
.bss y,1 ;为结果y 分配1个存储单元
.def start
.data ;定义数据代码段
table: .word 1*32768/10 ;在table 开始的8个
.word 2*32768/10 ;地址放数据
.word -3*32768/10
.word 4*32768/10
.word 8*32768/10
.word 6*32768/10
.word -4*32768/10
.word -2*32768/10
.text ;定义可执行程序代码段
start:SSBX FRCT ;设置FRCT 位,表示进行小数乘
STM #x,AR1 ;将x 的首地址传给AR1
RPT #7 ;重复8次下条指令
MVPD table,*AR1+ ;将程序空间8个数传给数据存储器
STM #x,AR2 ;将数据存储器第一个数x1的地址传给AR2
STM #a,AR3 ;将数据存储器第五个数a1的地址传给AR3
RPTZ A,#3 ;将A 清零,重复4次下条指令
MAC *AR2+,*AR3+,A ;执行乘法累加和,结果放在A 中
STH A,@y ;将A 的高端字存入结果y,低端字省去
end: B end ;原处循环等待
.end
计算y=x a i i i ∑=4
1的程序段,其中数据均为小数:a1=0.1,a2=0.2,a3=-0.3,a4=0.4,x1=0.8,
x2=0.6,x3=-0.4,x4=-0.2
一、填空(每空1分,共30分)