DSP期末试题与答案要点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空题:
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分)
1.TI公司的定点DSP产品主要有 TMS320C2000 系列、TMS320C5000系列和 TMS320C6000
系列。
2.’C54x DSP中传送执行指令所需的地址需要用到 PAB 、CAB、DAB和 EAB 4条地
址总线。
3.DSP的内部存储器类型可分为随机存取存储器(RAM)和只读存储器(ROM)。
其中RAM
又可以分为两种类型:单寻址RAM(SARAM)和双寻址RAM(DARAM)。
4.’C54x DSP的内部总存储空间为192K字,分成3个可选择的存储空间:64K字的程序
存储空间、64K字的数据存储空间和64K字的 I/O空间。
5.从功能结构上,’C54X DSP的CPU可以划分成运算部件和控制部件两大部分。
6.’C54x DSP的寻址方式有七种,分别为立即寻址、绝对寻址、累加器寻址、直接寻址、
间接寻址、存储器映象寄存器寻址、堆栈寻址。
7.在’C54x DSP寻址和指令系统中,Xmem和Ymem表示 16位双寻址操作数,Dmad为
16位立即数,表示数据存储器地址,Pmad为16位立即数,表示程序存储器地址。
8.程序计数器的值可以通过复位操作、顺序执行指令、分支转移,累加器转
移,块重复,子程序调用,从累加器调用子程序,中断等操作改变。
9.’C54x DSP芯片采用了6级流水线的工作方式,即一条指令分为预取指、取指、译
码、寻址、读数和执行6个阶段。
10.解决MMR写操作的流水线冲突时,一般可用采用推荐指令和插入空操作指令的方
法。
11.’C54x DSP定时器由3个16位存储器映射寄存器组成:定时器寄存器(TIM)、定时
器周期寄存器(PRD)和定时器控制寄存器(TCR)。
12.主机接口(HPI,Host Port Interface)是TMS320C54x 系列定点芯片内部具有的一
种接口部件,主要用于DSP与其他总线或CPU进行通信。
13.’C54x DSP的指令系统有助记符指令和代数指令两种形式。
14.COFF目标文件中.text段通常包含可执行代码,.data段通常包含己初始化的数
据,.bss段中通常为未初始化的数据保留空间。
15.DSP芯片的开发工具可以分为代码生成工具和代码调试工具两类。
二、简答题(每题5分,共20分)
1.什么是定点DSP芯片和浮点DSP芯片?各有什么优缺点?
解:按数据的定点格式工作的DSP芯片称为定点DSP;
按数据的浮点格式工作的DSP芯片称为浮点DSP;
定点DSP的价格便宜,功耗低,但运算精度低;
浮点DSP的价格较高,C语言编程调试方便,运算精度高。
2. 简述流水线操作的基本原理。
解:流水线操作是各指令以机器周期为单位相差一个时钟周期,连续并行工作的情况。
其本质是DSP多条总线彼此独立地同时工作,使得同一条指令在不同机器周期内占用不同总线资源。
同时,不同指令在同一机器周期内占用不同总线资源。
3. ’C54x DSP有哪些重复操作?各有什么优点?
解:有单条指令重复执行和程序块重复执行两种重复操作。
单条指令重复操作功能,可以使乘法/累加和数据块传送那样的多周期指令在执行一次之后变成单周期指令,大大提高了这些指令的执行速度。
利用块重复操作进行循环,是一种零开销循环。
4. 软件可编程等待状态发生器的功能是什么?
解:软件可编程等待状态产生器可以将外部总线周期扩展到7个机器周期(C549、C5402、C5410和C5420为14个机器周期),这样’C54x DSP可以方便地与慢速的片内存储器和I/O 器件接口。
三、问答题(10分)
1. ’C54x DSP的串行口有哪些类型?各有什么特点?
解:有标准同步串口SP、缓冲同步串口BSP、多路缓冲串口McBSP、时分多路同步串口TMD 四种。
缓冲串口(BSP)是一个增强型的标准串口,它由一个全双工双缓冲串口和一个自动缓冲单元(ABU)组成。
由于其中的串行口与标准串口的功能相同,因此在标准模式下,缓冲串口的操作与标准串口的工作方式是一样的。
不过无论是标准模式还是自动缓冲模式,BSP都提供了一些增强功能。
主要包括了可编程控制的串口时钟、可选择时钟和帧同步信号的正负极性,能够以每帧8位、10位、12位和16位传输数据。
通过配置BSP的控制寄存器,BSP还能实现忽略帧同步信号的数据传输。
时分复用串行口TDM采用时分复用技术,将多个外部器件复用与’C54x进行串行通信,每一个时隙对应于其中的1路通信。
TDM 可以和外部的多个应用接口实现方便灵活的数据交换。
’C54x 最多可以和8个外部器件接口通信。
多通道缓冲串口(McBSP )是在缓冲串口的基础上发展起来的增强版。
McBSP 具有高速、全双工、可与各种总线标准的器件直接接口等特点,它为DSP 使用者在不同方面的应用提供了方便,尤其适合在通信领域的应用。
四、阅读指令并填空(每题5分,共25分)
1.BANZ 2000h, *AR3- 1000
005
AR3指令执行前
指令执行后PC 2000004AR3PC
2.CMPR GT, AR3 1
FFFF
AR0指令执行前
指令执行后
TC 0FFFF AR0TC 7FFF AR37FFF AR3
3.ADD *AR3+, 14, A 00 0000 1200
1
C 指令执行前
指令执行后A
00 0540 12000A 0100AR30101AR31SXM 1500
0100h Data Memory C 1SXM 15000100h
4.SUB A, -8, B 00 0000 120000 0000 1800B
指令执行前指令执行后A 00 0000 120000 0000 17EE A x C
1C B 1SXM
1SXM
5.MPY *AR3+, A 00 0000 12000004T
指令执行前指令执行后A 00 0000 00400004A 0100AR30101AR300100100h
Data Memory T 00100100h 五、程序题(15分)
写出计算20
1i
i y x ==∑的主要汇编程序,并给程序添加注释,画出程序的流程图。
解:程序及注释:
.bss x, 20 ;给变量x 分配20个字单元
.bss y, 1 ;给变量y 分配1个字单元
STM #x, AR1 ;取x 地址
STM #19, AR2 ;设置循环次数
LD #0, A ;累加器清零
loop: ADD *AR1+, A ;累加x 分量
BANZ loop, *AR2- ;循环是否结束,没有结束则继续累加 STL A, @y ;把结果存入y
流程图:
开始AR1=#x; AR2=19;
AR2=0?
AR2=AR2-1 N
A=(AR1)+A;
Y
结束
y=AL;。