最新DSP期末试题与答案

最新DSP期末试题与答案
最新DSP期末试题与答案

一、填空题:

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分)

相关主题
相关文档
最新文档