第三章(DSP第四讲).
DSP技术课程讲授提纲(管老师)1
DSP技术课程讲授提纲DSP技术课程讲述内容第一章DSP概述:在这一章中,我们将介绍我们数字信号处理的基本框图、DSP的组成特点、DSP的应用、TI的DSP系列等。
第二章和第三章分别介绍DSP的硬件结构与指令系统。
在这两章中我们将介绍TI的DSP 系列中的C2X,C3X,C54X和C6X系列。
重点讲解C54X的硬件结构和指令系统。
第四章开发环境:在这一章中我们将介绍TI的DSP的开发工具,如编译器、汇编器、连接器、调试器的使用,以及集成开发环境CCS的使用。
这章的最后还将介绍DSP的实时操作系统(RTOS)。
第五章DSP的算法实现:以C54X为例,介绍基本加、减、乘、除的实现(定点/浮点),FIR滤波器,自适应滤波器,FFT的实现等。
第六章DSP工程应用:这一章中我们将以两三个具体的应用事例,详细了解DSP的设计流程。
包括:VC5402 DEMO板设计,DTMF的产生和解码,IS-54移动电话,IP电话,V.34调制解调器等。
教材与参考书第一章概论§1-1 为什么要采用数字信号处理?(1)灵活性(2)精度(3)可靠性和可重复性(4)大规模集成(5)虚拟特性与升级(6)特殊应用:有些应用只有数字系统才能实现DSP信号流图§1-2 DSP的发展与特点DSP的特点∙哈佛结构∙硬件乘法/累加器∙并行性∙多DSP协调工作模式∙多种寻址方式∙ DMA∙片上测试口∙ DSP核及延伸芯片∙低功耗DSP的发展∙更高的运行速度和信号处理速度∙多DSP协同工作∙更方便的开发环境∙大量专用DSP的出现(DSP核)∙更低的价格,或更高的性能/价格比∙更广泛的应用(每年以30%增长)∙更低的功耗(55X 0.05mw/MIPS)---------------------------------------------------------------第一次课---------------------------------------- 例:滤波器的实现用模拟电路实现低通滤波器与使用DSP实现低通滤波器的比较。
DSP课件4讲
当AxDIR=1时,IOPAx位对应的引脚为输出方式;当AxDIR =0时,IOPAx位对应的引脚为输入方式。 位IOPAx的值表示输入或输出的状态,0表示低电平,1表示高 电平。 例如,当AxDIR=1时,若IOPAx=0,表示相应引脚输出低电平; 若IOPAx=1,表示相应引脚输出高电平
数字I/O端口配置实例
功
能
I/O端口复用控制寄存器A I/O端口复用控制寄存器B I/O端口复用控制寄存器C A组数据和方向控制寄存器 B组数据和方向控制寄存器 C组数据和方向控制寄存器 D组数据和方向控制寄存器 E组数据和方向控制寄存器 F组数据和方向控制寄存器
I/O端口复用控制寄存器
1) MCRA复用控制寄存器(控制8个A组、8个B组端口的使用)
•I/O端口作为输出 74HC273用于驱动8个发光二极管,CLR接TMS320LF2407的 复位引脚,使在复位时74HC273输出为低电平,不点亮发光二极 管.IOPF2接CLK作为74HC273的控制信号,用端口IOPB来控制 发光二极管的亮灭.
U2 2 5 6 9 12 15 16 19 LED1~LED8 1Q 2Q 3Q 4Q 5Q 6Q 7Q 8Q 1D 2D 3D 4D 5D 6D 7D 8D CLR CLK 74HC273 3 4 7 8 13 14 17 18 1 11 52 47 44 40 16 18 14 37 133 8 R9 4.7K欧 U1 PWM3/IOPB0 PWM4/IOPB1 PWM5/IOPB2 PWM6/IOPB3 T1PWM/IOPB4 T2PWM/IOPB5 TDIRA/IOPB6 TCLKINA/IOPB7 RESTE T3PWM/IOPF2 TMS320LF2407
《数字信号处理》教案
《数字信号处理》教案第一章:绪论1.1 课程介绍理解数字信号处理的基本概念了解数字信号处理的发展历程明确数字信号处理的应用领域1.2 信号的概念与分类定义信号、模拟信号和数字信号掌握信号的分类和特点理解信号的采样与量化过程1.3 数字信号处理的基本算法掌握离散傅里叶变换(DFT)了解快速傅里叶变换(FFT)学习Z变换及其应用第二章:离散时间信号与系统2.1 离散时间信号理解离散时间信号的定义熟悉离散时间信号的表示方法掌握离散时间信号的运算2.2 离散时间系统定义离散时间系统及其特性学习线性时不变(LTI)系统的性质了解离散时间系统的响应2.3 离散时间系统的性质掌握系统的稳定性、因果性和线性学习时域和频域特性分析方法第三章:离散傅里叶变换3.1 离散傅里叶变换(DFT)推导DFT的数学表达式理解DFT的性质和特点熟悉DFT的应用领域3.2 快速傅里叶变换(FFT)介绍FFT的基本概念掌握FFT的计算步骤学习FFT的应用实例3.3 离散傅里叶变换的局限性探讨DFT在处理非周期信号时的局限性了解基于DFT的信号处理方法第四章:数字滤波器设计4.1 滤波器的基本概念理解滤波器的定义和分类熟悉滤波器的特性指标学习滤波器的设计方法4.2 数字滤波器的设计方法掌握常见数字滤波器的设计算法学习IIR和FIR滤波器的区别与联系了解自适应滤波器的设计方法4.3 数字滤波器的应用探讨数字滤波器在信号处理领域的应用学习滤波器在通信、语音处理等领域的应用实例第五章:数字信号处理实现5.1 数字信号处理器(DSP)概述了解DSP的定义和发展历程熟悉DSP的特点和应用领域5.2 常用DSP芯片介绍学习TMS320系列DSP芯片的结构和性能了解其他常用DSP芯片的特点和应用5.3 DSP编程与实现掌握DSP编程的基本方法学习DSP算法实现和优化技巧探讨DSP在实际应用中的问题与解决方案第六章:数字信号处理的应用领域6.1 通信系统中的应用理解数字信号处理在通信系统中的重要性学习调制解调、信道编码和解码等通信技术探讨数字信号处理在无线通信和光通信中的应用6.2 音频信号处理熟悉音频信号处理的基本概念和算法学习音频压缩、回声消除和噪声抑制等技术了解数字信号处理在音乐合成和音频效果处理中的应用6.3 图像处理与视频压缩掌握数字图像处理的基本原理和方法学习图像滤波、边缘检测和图像压缩等技术探讨数字信号处理在视频处理和多媒体通信中的应用第七章:数字信号处理工具与软件7.1 MATLAB在数字信号处理中的应用学习MATLAB的基本操作和编程方法熟悉MATLAB中的信号处理工具箱和函数掌握利用MATLAB进行数字信号处理实验和分析的方法7.2 其他数字信号处理工具和软件了解常用的数字信号处理工具和软件,如Python、Octave等学习这些工具和软件的特点和应用实例探讨数字信号处理工具和软件的选择与使用第八章:数字信号处理实验与实践8.1 数字信号处理实验概述明确实验目的和要求学习实验原理和方法掌握实验数据的采集和处理8.2 常用数字信号处理实验完成离散信号与系统、离散傅里叶变换、数字滤波器设计等实验8.3 数字信号处理实验设备与工具熟悉实验设备的结构和操作方法学习实验工具的使用技巧和安全注意事项第九章:数字信号处理的发展趋势9.1 与数字信号处理探讨技术在数字信号处理中的应用学习深度学习、神经网络等算法在信号处理领域的应用实例9.2 物联网与数字信号处理理解物联网技术与数字信号处理的关系学习数字信号处理在物联网中的应用,如传感器信号处理、无线通信等9.3 边缘计算与数字信号处理了解边缘计算的概念和应用场景探讨数字信号处理在边缘计算中的作用和挑战10.1 课程回顾梳理本门课程的主要内容和知识点10.2 数字信号处理在未来的发展展望数字信号处理技术在各个领域的应用前景探讨数字信号处理技术的发展趋势和挑战10.3 课程考核与评价明确课程考核方式和评价标准鼓励学生积极参与课堂讨论和实践活动,提高综合素质重点和难点解析重点一:信号的概念与分类信号的定义和分类是理解数字信号处理的基础,需要重点关注。
哈工程DSP专业课课件第三章
8个辅助寄存器(AR7-AR0)提供了灵活多变以 及功能强大的间接寻址。使用辅助寄存器中的一 个16-bit地址就可访问64K数据存储空间的任意单 元。
通过向状态寄存器ST0的一个3-bit辅助寄存器 指针(ARP)设置一个从0到7的值,就可以选择所需 的辅助寄存器。
设置 数值 的方 法有
MAR指令 它只修改辅助寄存器及ARP
存储器)的值相乘
接收乘法器的乘积
在将PREG的值送入 CALU之前,乘积移位
器将对PREG值进行 定标操作
3.3.1 乘法器
在一个机器周期内,16-bit * l6-bit硬件乘 法器可以产生一个带符号或不带符号的32-bit乘 积。
除在无符号乘法(MPYU指令)周期外,被 乘的两个数作二进制补码处理。
3.1 概述
本章讲述中央处理单元(CPU)的主要组成
CPU 的 三 个 基 本 部 分 (3.2节~3.4节)
包括:输入定标部分、乘法 部分、中央算术逻辑部分
辅助寄存器算术单元 (ARAU)(3.5节)
状态寄存器ST0和ST1 (3.5节)
ARAU实现对8个辅助寄存 器的算术运算。
状态寄存器决定处理器工作 方式、寻址指针以及显示不 同的处理器状态和算术逻辑
中央算术逻辑单元
3.4.1 中央算术逻辑单元(CALU)
中央算术逻辑单元(CALU)执行一系列的算 术和逻辑运算,数字运算是在一个时钟周期内 进行。
这些算术和逻辑运算分为四类:
16-bit加法 16-bit减法 布尔逻辑运算 位测试、移位和循环
鉴于CALU可执行布尔运算,因此可以进行位处理。 CALU使用累加器进行移位和循环。 它具有独立的算术单元和辅助寄存器算术单元。
DSP开发系统使用说明书
条件执行和单步执行使用户可以完全控制程序的执行。用鼠标或键入命令的方式设置或取消断点。存储器的分布与目标系统一致,以便调试器访问和定义。调试器可以执行从批处理文件来的命令,从而容易进入经常使用的命令序列。
该调试器的主要特性包括:
支持多操作
对于C2XX、C4X、C5X、C54X、C6X、C8X,C/汇编调试器并行处理的能力(多处理器debugger、断点、单步)。
说明:
根据上述的例子,共定义了5个段。
.text包含若干条32位字的目标代码;
.data包含6个字的目标代码;
vectors在.sect命令中定义的命名段;
.bss在存储器中预留了44个字节的空间;
newvars在.usect命令中定义的命名段,在存储器中占了8个字节的空间。
2.2软件开发工具简介
DSP的软件开发工具简介如下:
包含ANSI标准运行支持函数、编译器公用程序函数、C输入/输出函数。
十六进制转化公用程序(Hex Conversion Utility)
将COFF目标文件转化为TI-Tagged、ASCII-hex、Motorola-s等目标格式,从而可以将文件装载到可擦除程序存储器中。
绝对列表器(Ab4
ect“newvars”,4
*****************************************************
**在.text段放置其余程序代码**
*****************************************************
TMS320调试接口(C/Assembly source debugger)
TMS320调试接口为嵌入式的系统开发提供了新的功能和灵活性。他是软仿真、评估模块、硬仿真的标准接口。
C54x第三章 DSP开发工具
第三章DSP开发工具T提供了软件集成开发调试及软件仿真平台CCS。
通过使用CCS,用户可以避免复杂的编译连接命令,方便的进行硬件仿真和软件仿真。
一、软件开发过程※二、汇编语言程序编写方法三、COFF的概念四、编译器链接命令文件软件开发过程大体要经过化等几个主要过程。
1)编辑:编辑源程序(.ASM或.C)和链接器命令文件(.CMD)。
源程序可以用汇编或C语言来设计,当然也可以进行混合编程。
2)编译: 将原程序编译成为公共目标格式文件(COFF 格式的.OBJ)、存储器映像文件(.MAP)和列表文件(.LST),对于C程序首先要由C编译器编译成为汇编程序,然后再生成OBJ文件。
3)链接成可执行代码:将用户的多个COFF文件连同所引用的库文件一起组合成为可执行代码。
4)调试:通过软仿真或硬件仿真方式对程序进行调试5)固化:将执行代码烧写进ROM中,实现脱机运行。
第三章DSP开发工具一、软件开发过程二、汇编语言程序编写方法※三、COFF的概念四、编译器链接命令文件1)文件扩展名为.ASM2)汇编语言源程序的句法:如START: STM #0,SWWSR ;SWWSR=0不插入等待时间[标号][:] 助记符[操作数] [;注释]标号:标号和冒号都是可选项,代表段程序计数器(SPC)的值。
所有标号必须从第一列开始写,最多可达32字符(A~Z,a~z,0~9 …_‟,…$‟),第一字母不能数字。
如果不用标号,则第一字母必须为空格、分号或星号。
助记符:可以是助记符指令、汇编指令、宏指令和宏调用。
助记符指令一般大写。
汇编命令和宏命令均以“.”开始,并且小写。
汇编命令可以定义常量和变量,用于控制汇编和链接过程,可以不占存储空间。
注意:汇编命令不能写在第一列。
操作数:指令中的操作数或汇编命令中定义的内容,操作数之间必须以逗号隔开,也有一些指令没有操作数。
如NOP。
注释:注释前必须加分号,一般用于标注指令的执行信息,使程序增加可读性。
DSP-基础上课ppt
TMS320C54x硬件系统 第2章 TMS320C54x硬件系统
第3章 第4章 第5章 TMS320C54x指令系统 指令系统 TMS320C54x的软件开发 的软件开发 CCS集成开发软件 集成开发软件
TMS320C54x片内外设 第6章 TMS320C54x片内外设
本书的 封面
走信息路 走信息路
CCS集成开发软件 第5章 CCS集成开发软件
5.4
用CCS实现简单程序开发 实现简单程序开发
5.5 CCS工程文件的调试 工程文件的调试 TMS320C54x片内外设 第6章 TMS320C54x片内外设 CCS的图形显示功能 5.6 的图形显示功能 5.7 CCS中的其他问题 中的其他问题
本书的 封面
走信息路 读北邮书
2.1.2
存储器
存储器
(1) 具有192 K字(16bit)可寻址存储空间: 具有192 K字 16bit)可寻址存储空间: 但一般情况下,DARAM总是 (2) 片内双寻址 RAM(DARAM) 但一般情况下,DARAM总是 映射到数据空间, 映射到数据空间,用于存放数据 片内单寻址RAM(SARAM):SARAM也可分成若干块, RAM(SARAM):SARAM也可分成若干块 (3) 片内单寻址RAM(SARAM):SARAM也可分成若干块,但 在一个机器周期内只能读一次或写一次 一次。 在一个机器周期内只能读一次或写一次。 ARAU)
本书的 封面
走信息路
读北邮书
2.1.2
TMS320C54x的主要特性 的
1
CPU 存储器 片内外设 指令系统
本书的 封面
2
3
4
走信息路
读北邮书
2.1.2
CPU CPU
DSP原理与应用---第3章 EMIF
DRAM是Dynamic RAM的缩写,中文含义为动态随机存取存储器, 需要不断的刷新,才能保存数据。而且是行列地址复用的,许多都有 页模式。SDRAM:Synchronous DRAM,即数据的读写需要时钟 来同步。 一个是静态的,一个是动态的,静态的是用的双稳态触发器来保存信 息,而动态的是用电子,要不时的刷新来保持。
DRAM容量大,SRAM容量小
SDRAM的结构
FLASH ROM
Flash-ROM(闪存)已经成为了目前最成功、流行的一种固态内存,与 EEPROM 相比具有读写速度快,而与 SRAM 相比具有非易失、以及价廉等优 势。而基于 NOR 和 NAND 结构的闪存是现在市场上两种主要的非易失闪存技 术。 Intel 于 1988 年首先开发出 NOR flash 技术,彻底改变了原先由 EPROM 和 EEPROM 一统天下的局面。紧接着,1989 年东芝公司发表了 NAND flash 技术(后将该技术无偿转让给韩国 Samsung 公司),强调降低每比特的成 本,更高的性能,并且象磁盘一样可以通过接口轻松升级。 NOR 的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直 接在闪存内运行,不必再把代码读到系统 RAM 中。NOR 的传输效率很高,在 1~4MB 的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影 响了它的性能。 NAND 结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的 速度也很快,这也是为何所有的 U 盘都使用 NAND 闪存做为存储介质的原因。 应用 NAND 的困难在于需要特殊的系统接口。
NAND flash和NOR flash的对比
接口差别 NOR 闪存带有SRAM接口,有足够的地址引脚来寻址,可 以很容易地存取其内部的每一个字节。 NAND闪存使用复杂的I/O口来串行地存取资料,各个产品 或厂商的方法可能各不相同。8个引脚用来传送控制、地 址和资料信息。NAND读和写操作采用512字节的块,这 一点有点像硬盘管理此类操作,很自然地,基于NAND的 闪存就可以取代硬盘或其它块设备。
DSP完整课件第3章 共29页
fin
CLKOUT
PLL选择 (SCSR1.11:9)
1500pF PLFF2
退出
2)外部滤波器电路回路
3.2.1 锁相环(PLL)
PLL有2个外接滤波输入引脚:PLLF,PLLF2 PLL模块使用外部滤波电路回路来抑制信号抖动和电磁干 扰,使信号抖动和干扰影响最小。
1 1Ω 0.68μ F
PLLF
(3)当未检测到累加器溢出时,其值为0;当溢出发生时, OV位被置1。
(4)根据被测试位的结果,测试控制标志位(TC)位被置1或0。
2019
退出
3.1.4 累加器(ACC)
存放CALU中的运算结果,其存放的数据可以执行单一的移位 或循环操作。其中的高位或低位字可以进入输出定标移位器进行 移位后再存放进数据存储器。与ACC有关的状态位有: 1)进位标志位C ① 当累加器中的数据相加时,结果有进位或减法无借位时C=1; 相减时,结果有借位或或加法无进位时,C=0 。 ② 当累加器中的数据被移动1位时,累加器中的最低位或最高位 进入C。
(2)外部时钟方式
最小和最大的CLKIN频率分别为4MHz和30MHz(2407A 为40MHz)。
2019
退出
3.2.2 看门狗定时器时钟
当CPU工作于低功耗模式下,看门狗能持续计数 WDCLK引脚为看门狗电路的时钟输入端。 WDCLK的时钟来自于时钟输出引脚CLKOUT。
WDCLK=CLKOUT/512 当CPU的挂起信号有效时,WDCLK将被停止。
2019
退出
3.1.6 状态寄存器ST0和ST1
1) 状态寄存器ST0
OV:溢出标志位。当中央算术逻辑单元发生溢出时,OV=1, 直到发生复位、执行以OV(溢出)或NOV(不溢出)为条件的转 移指令、或执行LST指令时被清0。
DSP技术liuguoman_第四讲[1].C6000+DSP最小系统设计
原理图软件 PCB软件 自动布线器 仿真软件
SI、EMI、POWER/GND、HEAT
DSP硬件系统组成 DSP芯片的选择 DSP最小系统设计 DSP板设计流程
3.电源—加电顺序需求
DSP的一些I/O管脚是双向的,方向由内核 控制。I/O电压一旦被加上以后,I/O管脚就立即 被驱动,如果此时还没加核电压,那么I/O的方 向可能就不确定是输入还是输出。如果是输出, 且这时与之相连的其它器件的管脚也处于输出状 态,那么就会造成时序的紊乱或者对器件本身造 成损伤。这种情况下,就需要核电压比I/O电压 先加载,至少是同时加载。
DSP板级设计流程
PowerLogic
HyperLynx
PowerPCB BlazeRouter SPECCTRA
HyperLynx
概念
方案 论证
原理图 设计
前仿真
PCB图 绘制
后仿真
制板
原型 调试 测试
方案论证
rst
SBSRAM 3.3v
1.8v 1.2v CE3 CE0,CE2 INT4~7
Date: Tuesday May 20, 2003 Time: 22:25:40
实物
EDA软件
Altium / PROTEL Mentor / PADS Mentor / Expedition Mentor / BoardStation Cadence / Allegro Cadence / OrCAD
4.时钟-输入
OSC
4.时钟-输出
SRAM SRAM C6000 244 SRAM C6000 CY2308 SRAM SRAM SRAM
哈工程DSP专业课课件第三章
在应用实例一中,我们将介绍如何使用数字信号处理算法对信号进行处理。具体来说,我们将实现一个简单的滤 波器,该滤波器可以对信号进行低通滤波、高通滤波和带通滤波等操作。通过这个实例,我们将深入了解数字信 号处理算法的实现原理和应用方法。
应用实例二:数字滤波器设计
总结词
数字滤波器是数字信号处理中的重要组成部分,它可以有效地滤除信号中的噪声和干扰,提高信号的 清晰度和可靠性。
习题三解答
01
总结词:系统设计
02
总结:这道习题要求设计一个简单的 数字信号处理系统,包括信号的采集 、处理和输出。
03
详细描述:首先,需要确定系统的目 标和功能,选择合适的数字信号处理 器和相关硬件。然后,设计系统的数 据流和指令流,以及系统的控制流程 。在系统设计过程中,需要考虑系统 的实时性能、可靠性和可扩展性。最 后,需要对系统进行测试和验证,确 保其满足设计要求。
THANKS
感谢观看
习题二解答
01
总结词:算法实现
02
总结:这道习题要求实现一个简单的数字信号处理算法,如 离散傅里叶变换(DFT)或其快速算法(FFT)。
03
详细描述:首先,需要理解算法的基本原理和数学公式。然后, 根据算法原理,使用编程语言实现算法。在实现过程中,需要注 意算法的效率和精度,并尽可能优化算法性能。最后,需要对算 法进行测试和验证,确保其正确性和可靠性。
详细描述
在应用实例二中,我们将介绍如何设计数字滤波器。具体来说,我们将设计一个简单的低通滤波器和 一个带通滤波器。通过这个实例,我们将深入了解数字滤波器的设计原理和应用方法,并掌握如何根 据实际需求选择合适的滤波器类型和参数。
应用实例三:数字信号处理系统实现
DSP技术及应用--陈金鹰(第三章)
用来修 改存储 器映象 寄存器
7.堆栈寻址
功能 特点
PSHD *AR2 POPD *AR3
用来在中断和 子程序调用时 自动保存程序 计数器(PC) 中的数值,也 能用来保护现 场或传送参数
从高地址向低地址方向生长, SP用来管理堆栈,SP始终指向 堆栈中所存放的最后一个数 据,即SP指针始终指向栈顶。 在 压 入 操 作 时 , 先 减 小 SP 的 值,再将数据压入堆栈;在弹 出操作时,先从堆栈弹出数 据,再增加SP的值。 23
第二节
程序地址 生成器 (PAGEN) 构成 核心
程序地址的生成
程序计数器(PC) 重复计数器(RC) 块重复计数器(BRC) 块重复起始地址寄存器(RSA) 块重复结束地址寄存器(REA) 地址内容为: 即将取指的某条指令; 某个16位立即操作数; 系数表。 24 在程序存储器中的地址
16位程序计数器(PC) 内中保存某个内部或外 部程序存储器的地址。
ARx是数据存储器地址 访问后,ARx中的地址减1 访问后,ARx中的地址加1 访问后,AR0以循环寻址的 方式加到ARx中 21
6.存储器映象寄存器寻址
功能 方法 高9位数据 存储器地址 被置0,利 用指令中的 低7位地址 访问MMR。 LDM PRD,A
22
举例
特点 0页寻址。 不影响当前 DP或SP 值 。用于 直接寻址和 间接寻址
操作码语 法 *ARx *ARx*ARx+ *ARx+0%
辅助寄存器 AR2 AR3 AR4 AR5
双数据存储器操作数寻址的类型
Xmod或 Ymod 00 01 10 11 功 能 说 明
addr=ARx addr=ARx ARx=ARx-1 addr=ARx ARx=ARx+1 addr=ARx ARx=circ( ARx+AR0)
DSP讲义15-4课件讲解
第四讲 DSP 最小硬件系统的设计4.1引言一个 DSP 硬件系统可以分为最小硬件系统设计和外围接口设计两个部分。
本讲主要介绍 DSP 最小硬件系统的设计,包括复位、时钟、 电源及存储器接口等. 5402最小系统原理图 5402最小系统5402最小系统 电源图 继续返回返回返回4.2DSP 系统的基本硬件设计4.2.1 复位电路电压公式:电源刚加上电时, TMS320 DSP 芯片处于复位状态,/RS 低使芯片复位 为使芯片初始化正确,一般应保证/RS 为低至少持续 3 个 CLKOUT 周期 但是,在上电后,系统的晶体振荡器一般需要儿百毫秒的稳定期,一般为 100~200ms 。
选择 R = 100K , C = 47μ,可得 t1= 167ms 。
●此种复位特点: 提问:输入方式比较,阻容颠倒可以不? 存在不足:有时不能可靠复位 简单如何设计复位电路4.2.1 复位电路上电触发掉电保护触发4.2.2 时钟电路4.2.2 时钟电路TMS320VC5402内部具有一个可编程锁相环(PLL),它可以配置为两种模式:( 1 ) PLL 模式。
输入时钟乘以一个1~31之间的常数; ( 2 ) DIV 模式。
输入时钟除以 2 或 4 。
软件可编程 PLL 受一个存储器映射(地址为 58h )的时钟模式寄存器 CLKMD 控制,CLKMD 用于定义 PLL 时钟模块的配置。
复位后 CLKMD的值根据 DSP芯片三根输入引脚CLKMD1~CLKMD3 确定,从而确定 DSP 的工作时钟。
4.2.2 时钟电路由于 DSP 的程序需要从外部低速 EPROM 、EEPROM 中调入,可以采用较低工作频率的 DSP 复位时钟模式,待程序全部调入到内部快速 RAM 后,再用软件重新配置CLKMD 的值,使芯片工作在较高的频率上。
例如: 设外部晶体频率是 10MHz ,设置CLKMD1~CLKMD3 = 111,则复位后DSP的工作频率是10MH/2 = 5MHz。
DSP复习总结
一.数字信号处理概述1.DSP的优势:可控性强,稳定度高,精度高,抗干扰性强,实现自适应性,数据压缩,大规模集成。
2.实时数字信号处理:信号处理速度必须大于等于输入信号更新的速度,而且信号输入到处理后输出的延迟必须足够的小实时取决因素:芯片速度,运算量(数据率,算法复杂度)3.DSP子系统实现方式:通用CPU,加速处理模块,单片机,专用DSP芯片,可编程FPGA 器件,通用可编程DSP芯片3.DSP系统典型处理方法:数据流处理。
块处理矢量处理4.定点与浮点DSP芯片定点:小数Xf转换为定点数Xd:Xd=int(Xf×2Q)定点数Xd转换为小数Xf:Xf=float(Xd×2-Q)0.25的Q15表示法——0.25×215=8192=0x20000x4623的Q15表示小数——17955×2-15=0.547943第一位为符号位浮点:bit3bit3bit2bit2bit S e f浮点数=(-1)S×2(e-127)×1.f-0.75=-(0.11)2=-(1.1)×2-1=(-1)1×(1.1)×2(126-127)-0.75的IEEE单精度浮点格式数为:(BF400000)H5.DSPs芯片特点算数单元:硬件乘法器是DSPs区别于早期通用微处理起的重要标志多功能单元使DSP在单位时间内完成更多的操作,提高了程序执行速度总线结构:哈弗总线结构流水技术:是提高DSPs程序执行效率的另一个重要手段专用寻址单元:地址的计算不再额外占用CPU时间片内存储器:程序存储,数据存储,CACHE丰富的外设6.DSP处理器实现高速运算途径⏹硬件乘法器及乘加单元⏹高效的存储器访问⏹数据格式⏹零循环开销⏹多个执行单元⏹数据流的线性I/O⏹专门的指令集6.DSP评价方法:传统性能评价MIPS-----百万指令每秒MOPS-----百万操作每秒MFLOPS-----百万浮点操作每秒MACS-------乘加次数每秒完整应用评价核心算法评价7.选型依据:速度,精度,芯片资源,开发工具,支持多处理器,功耗与电源管理,成本。
专题三--DSP的开发环境与工具-v2016资料
C6Accel与CE的关系
SOC
ARM APP
C6Accel API
VISA API
ARM
Codec Engine
C6Accel DSPLIB,IMGLIB,
MATHLIB
Audio, Video Codecs
DSP
§3-7 C6Flo工具
德州仪器(TI)的C6Flo是一款免费的图 形软件开发工具,可与TI的CCS IDE或基 于DSP的开发工具配合使用。 C6Flo提供了一个直观的拖放界面,可用 于创建系统方框图。图中的块可以表示从 优化的DSP算法到外设I/O驱动程序等各种 内容。
ST
#0,*SP(2)
; |12|
SSBX SXM
;
LD
#20,A
; |12|
SUB *SP(2),A
; |12|
BC
L2,ALEQ ; branch occurs ; |12|
L1:
;---------------------------------------------
; 13 | sum+=i[k]*j[k];
LD
#0,A
; |10|
RPT
#19
; loop starts |6|
L1:
;----------------------------------------
; 13 | sum+=i[k]*j[k];
;-----------------------------------------
MAC
*AR3+, *AR2+, A, A ; |13|
;---------------------------------------------
DSP的基本原理及应用--第四讲
DSP的基本原理及应⽤--第四讲第6章 DSP55xx芯⽚的指令系统及编程TMS320C55xx DSP指令集可分为六⼤类操作类型:①装载和存储指令:交换、数据移动、堆栈操作及复制(DELAY)②算术指令:加法、减法、加减、减加、乘法、乘累加、乘累减、移位、带条件加减、带条件移位,⽐较指令等③程序控制指令:条件转移、⽆条件转移、重复、条件执⾏、CALL等④bit控制指令:bit Test、Set、Clear、Complement⑤扩展辅助寄存器指令:辅助寄存器数据移动、堆栈操作⑥逻辑操作指令:与、或、⾮、异或、取反、逻辑移位⑦其它操作指令:mmap、port§6.1装载和存储指令语法并⾏使能bit长度周期流⽔线执⾏单元Accumulator, Auxiliary, or Temporary Register ContentSwapA unit ALUSWAP ARx, Tx Yes 2 1 AD A unit register file SWAP Tx, Ty Yes 2 1 AD A unit register file SWAP ARx, ARy Yes 2 1 AD A unit register file SWAP ACx, ACy Yes 2 1 X D unit register file SWAPP ARx, Tx Yes 2 1 AD A unit register file SWAPP T0, T2Yes 2 1 AD A unit register file SWAPP AR0, AR2Yes 2 1 AD A unit register file SWAPP AC0, AC2 Yes 2 1 X D unit register file SWAP4 AR4, T0 Yes 2 1 AD A unit register file Accumulator, Auxiliary, or Temporary Register LoadMOV k4, dst Yes 2 1 X A or D unit register file MOV –k4, dst Yes 2 1 X A or D unit register file MOV K16, dst No 4 1 X A or D unit register file MOV Smem, dst No 2 1 X A or D unit register file MOV [uns()high_byte(Smem)[]], dst No 3 1 X A or D unit register file MOV [uns()low_byte(Smem)[]], dst No 3 1 X A or D unit register file MOV K16 << #16, ACx No 4 1 X D unit ALUMOV K16 << #SHFT, ACx No 4 1 X D unit shifterMOV [rnd()Smem << Tx[]], ACx No 3 1 X D unit shifterMOV low_byte(Smem) << #SHIFTW, ACx No 3 1 X D unit shifterMOV [uns()Smem[]] << #SHIFTW, ACx No 4 1 X D unit shifterMOV[40] dbl(Lmem), ACx No 3 1 X D unit register file MOV Xmem, Ymem, ACx No 3 1 1 D unit register file MOV dbl(Lmem), pair(HI(ACx)) No 3 1 X D unit register file MOV dbl(Lmem), pair(LO(ACx)) No 3 1 X D unit register file MOV dbl(Lmem),pair(TAx) No 3 1 X A unit register file Accumulator, Auxiliary, or Temporary RegisterMOV src, dst Yes 2 1 X A or D unitAL U MOV HI(ACx), TAx Yes 2 1 X A unitAL UMOV TAx, HI(ACx) Yes 2 1 X D unitAL U Accumulator, Auxiliary, or Temporary RegisterMOV src, Smem No 2 1 X A or D unit register file MOV src, high_byte(Smem) No 3 1 X A or D unit register file MOV src,low_byte(Smem) No 2 1 X A or D unit register file MOV HI(ACx), Smem No 2 1 X D unit register file MOV [rnd()HI(ACx)[]], Smem No 3 1 X D unit register file MOV ACx << Tx, Smem No 3 1 X D unit register file MOV [rnd(]HI(ACx << Tx)[)], Smem No 3 1 X D unit register file MOV ACx << #SHIFTW, Smem No 3 1 X D unit register file MOV HI(ACx << #SHIFTW), Smem No 3 1 X D unit register file MOV [rnd()HI(ACx << #SHIFTW)[]], Smem No 4 1 X D unit register file MOV [uns(][rnd(]HI(saturate(ACx))[))], Smem No 3 1 X D unit register file MOV [uns(] [rnd(]HI(saturate(ACx << Tx))[))], Smem No 3 1 X D unit register file MOV [uns()(rnd()HI(saturate(ACx << #SHIFTW))[])], No 4 1 X D unit register file MOV ACx, dbl(Lmem) No 3 1 X D unit register file MOV [uns(]saturate(ACx)[)], dbl(Lmem) No 3 1 X D unit register file MOV ACx >> #1, dual(Lmem) No 3 1 X D unit register file MOV pair(HI(ACx)), dbl(Lmem) No 3 1 X D unit register file MOV pair(LO(ACx)), dbl(Lmem) No 3 1 X A unit register file MOV pair(TAx), dbl(Lmem) No 3 1 X D unit register file MOV ACx, Xmem, Ymem No 3 1 X D unit register file Memory DelayDELAY Smem No 3 1 X A or D unit register file Memory-to-Memory Move/Memory Initialization A or D unit register file MOV Cmem, Smem No 3 1 XMOV Smem, Cmem No 3 1 XMOV K8, Smem No 3 1 XMOV K16, Smem No 4 1 XMOV Cmem,dbl(Lmem) No 3 1 XMOV dbl(Lmem), Cmem No 3 1 XMOV dbl(Xmem), dbl(Ymem) No 3 1 XMOV Xmem, Ymem No 3 1 XPop Top of Stack (TOS) A or D unit register file POP dst1,dst2 Yes 2 1 XPOP Smem No 2 1 XPOP dbl(Lmem) No 2 1 XPush to Top of Stack (TOS) A or D unit register file PSH src1,src2 Yes 2 1 XPSH src Yes 2 1 XPSH src,Smem No 3 1 XPSH dbl(ACx) Yes 2 1 XPSH Smem No 2 1 XPSH dbl(Lmem) No 2 1 XSpecific CPU Register Load A or D unit register file MOV k12, BK03 Yes 3 1 ADMOV k12, BK47 Yes 3 1 ADMOV k12, BKC Yes 3 1 ADMOV k12, BRC0 Yes 3 1 ADMOV k12, BRC1 Yes 3 1 ADMOV k12, CSR Yes 3 1 ADMOV k7, DPH Yes 3 1 ADMOV k9, PDP Yes 3 1 ADMOV k16, BSA01 No 4 1 ADMOV k16, BSA23 No 4 1 ADMOV k16, BSA45 No 4 1 ADMOV k16, BSA67 No 4 1 ADMOV k16, BSAC No 4 1 ADMOV k16, CDP No 4 1 ADMOV k16, DP No 4 1 AD A or D unit register MOV k16, SP No 4 1 AD MOV k16, SSP No 4 1 ADMOV Smem, BK03No 3 1 XMOV Smem, BK47No 3 1 XMOV Smem, BKC No 3 1 XMOV Smem, BSA01 No 3 1 XMOV Smem, BSA23 No 3 1 XMOV Smem, BSA45 No 3 1 XMOV Smem, BSA67 No 3 1 XMOV Smem, BSAC No 3 1 XMOV Smem, BRC0 No 3 1 XMOV Smem, BRC1 No 3 1 XMOV Smem, CDP No 3 1 XMOV Smem, CSR No 3 1 XMOV Smem, DP No 3 1 XMOV Smem, DPH No 3 1 XMOV Smem, PDP No 3 1 XMOV Smem, SP No 3 1 XMOV Smem, SSP No 3 1 XSpecific CPU Register Move A unit ALUMOV TAx, BRC0Yes 2 1 XMOV TAx, BRC1Yes 2 1 XMOV TAx, CDP Yes 2 1 XMOV TAx, CSR Yes 2 1 XMOV TAx, SP Yes 2 1 XMOV TAx, SSP Yes 2 1 XMOV BRC0, TAx Yes 2 1 XMOV BRC1, TAx Yes 2 1 XMOV CDP, TAx Yes 2 1 XMOV RPTC, TAx Yes 2 1 XMOV SP, TAx Yes 2 1 XMOV SSP, TAx Yes 2 1 XSpecific CPU Register Store A or D unit register MOV BK03, Smem No 3 1 XMOV BK47, Smem No 3 1 XMOV BKC, Smem No 3 1 XMOV BSA01, Smem No 3 1 XMOV BSA23, Smem No 3 1 XMOV BSA45, Smem No 3 1 XMOV BSA67, Smem No 3 1 XMOV BSAC, Smem No 3 1 XMOV BRC0, Smem No 3 1 XMOV BRC1, Smem No 3 1 XMOV CDP, Smem No 3 1 XMOV CSR, Smem No 3 1 XMOV DP, Smem No 3 1 XMOV DPH, Smem No 3 1 XMOV PDP, Smem No 3 1 XMOV SP, Smem No 3 1 XMOV SSP, Smem No 3 1 XMOV TRN0, Smem No 3 1 XMOV TRN1, Smem No 3 1 XMOV RETA, dbl(Lmem) No 3 5 X§6.2算术指令语法并⾏使能bit长度周期流⽔线执⾏单元(⽮量距离)Absolute DistanceABDST Xmem, Ymem, ACx, ACy No 4 1 X(绝对值)Absolute ValueABS [src,] dst Yes 2 1 X A or D unit ALUADD Smem, [src,] dst No 3 1 X A or D unit ALU ADD ACx << Tx, ACy Yes 2 1 X D unit ALU & shifter ADD ACx <<#SHIFTW, ACy Yes 3 1 X D unit ALU & shifter ADD K16 << #16, [ACx,] ACy No 4 1 X D unit ALU ADD K16 << #SHFT, [ACx,] ACy No 4 1 X D unit ALU & shifter ADD Smem << Tx, [ACx,] ACy No 3 1 X D unit ALU & shifter ADD Smem << #16, [ACx,] ACy No 3 1 X D unit ALU ADD [uns(]Smem[)], CARRY, [ACx,] ACy No 3 1 X D unit ALU ADD [uns(]Smem[)], [ACx,]ACy No 3 1 X D unit ALU ADD [uns(]Smem[)] << #SHIFTW, [ACx,] ACy No 4 1 X D unit ALU & shifter ADD dbl(Lmem), [ACx,] ACy No 3 1 X D unit ALU ADD Xmem, Ymem, ACx No 3 1 X D unit ALU ADD K16, Smem No 4 1 X D unit ALU ADDV [ACx,] ACy Yes 2 1 X D unit MAC (⽐较)Compare and Select Extremum D unit ALU MAXDIFF ACx, ACy, ACz, ACw Yes 3 3 XDMAXDIFF ACx, ACy, ACz, ACw, TRNx Yes 3 1 XMINDIFF ACx, ACy, ACz, ACw Yes 3 1 XXDMINDIFF ACx, ACy, ACz, ACw, TRNx Yes 3 1 X(带条件加减法)Conditional Addition/SubtractionADDSUBCC Smem, ACx, TC1, ACy No 3 1 X D unit ALU ADDSUBCC Smem, ACx, TC2, ACy No 3 1 X D unit ALU ADDSUBCC Smem, ACx, TC1, TC2, ACy No 3 1 X D unit ALU ADDSUB2CC Smem, ACx, Tx, TC1, TC2, ACy No 3 1 X D unit shifter (带条件移位)Conditional ShiftSFTCC ACx, TCx Yes 2 1 X D unit shifter (带条件减法)Conditional SubtractSUBC Smem, [ACx,] ACy No 3 1 X D unit ALU 双16bit加减法Dual 16-Bit Arithmetic D unit ALU ADDSUB Tx, Smem, ACx No 3 1 XSUBADD Tx, Smem, ACx No 3 1 XADD dual(Lmem), [ACx,] ACy No 3 1 XSUB dual(Lmem), [ACx,] ACy No 3 1 XSUB ACx, dual(Lmem), ACy No 3 1 XSUB dual(Lmem), Tx, ACx No 3 1 XADD dual(Lmem), Tx, ACx No 3 1 XSUB Tx, dual(Lmem), ACx No 3 1 XADDSUB Tx, dual(Lmem), ACx No 3 1 XSUBADD Tx, dual(Lmem), ACx No 3 1 X并⾏乘法(Accumulate/Subtract) D unit MACs MPY[R][40] [uns()Xmem[]], [uns()Cmem[]], Acx∷MPY[R][40] [uns()Ymem[]], [uns()Cmem[)], ACy No 4 1 XMAC[R][40] [uns()Xmem[]], [uns()Cmem[]], AcxNo 4 1 X∷MPY[R][40] [uns()Ymem[]], [uns()Cmem[]], ACyMAS[R][40] [uns()Xmem[]], [uns()Cmem[]], AcxNo 4 1 X∷MPY[R][40] [uns()Ymem[]], [uns()Cmem[]], ACyAMAR XmemNo 4 1 X∷∷MAC[R][40] [uns()Ymem[]], [uns()Cmem[]], ACyAMAR XmemNo 4 1 X∷MAC[R][40] [uns()Ymem[]], [uns()Cmem[]], ACxMAS[R][40] [uns()Xmem[]], [uns()Cmem[]], AcxNo 4 1 X∷MAS[R][40] [uns()Ymem[]], [uns()Cmem[]], ACyAMAR XmemNo 4 1 X∷MAS[R][40] [uns()Ymem[]], [uns()Cmem[]], ACxMAC[R][40] [uns()Xmem[]], [uns()Cmem[]], ACx >> #16 ∷No 4 1 XMAC[R][40] [uns()Ymem[]], [uns()Cmem[]], ACyMPY[R][40] [uns()Xmem[]], [uns()Cmem[]], ACx∷MAC[40] [uns()Ymem[]], [uns()Cmem[]],ACy >> #16MAC[R][40] [uns()Xmem[]], [uns()Cmem[]], ACx >> 16∷No 4 1 XMAC[40] [uns()Ymem[]],[uns()Cmem[]],ACy >> #16MAS[R][40] [uns()Xmem[]], [uns()Cmem[]], ACxNo 4 1 X∷MAC[40] [uns()Ymem[]], [uns()Cmem[]],ACy >>#16 AMAR XmemNo 4 1 X∷MAC[40] [uns()Ymem[]], [uns()Cmem[]],ACx >> #16 AMAR Xmem, Ymem, Cmem No 4 1 XFinite Impulse Response Filter, Symmetrical/Antisymmetrical FIRSADD Xmem, Ymem, Cmem, ACx, ACyFIRSSUB Xmem, Ymem, Cmem, ACx, ACyImplied Paralleled InstructionsMPYM[R] [T3 = ]Xmem, Tx, ACyD unit MAC∷MOV HI(ACx << T2), Ymem No 4 1 XMACM[R] [T3 = ]Xmem, Tx, ACyD unit MAC∷MOV HI(ACx << T2), Ymem No 4 1 XMASM[R] [T3 = ]Xmem, Tx, ACyD unit MAC∷MOV HI(ACx << T2), Ymem No 4 1 XADD Xmem << #16, ACx, ACyD unit ALU∷MOV HI(ACy << T2), Ymem No 4 1 XSUB Xmem << #16, ACx, ACyD unit ALU∷MOV HI(ACy << T2), Ymem No 4 1 XMOV Xmem << #16, ACyD unit ALU∷MOV HI(ACx << T2), Ymem No 4 1 XMACM[R] [T3 = ]Xmem, Tx, AcxD unit MAC∷MOV Ymem << #16, ACy No 4 1 XMASM[R] [T3 = ]Xmem, Tx, AcxD unit MAC∷MOV Ymem << #16, ACy No 4 1 XLeast Mean Square (LMS)LMS Xmem, Ymem, ACx, ACy No 4 1 X D unit MAC &ALU Maximum Comparison MAX [src,] dst X A or D unit ALU Minimum ComparisonMIN [src,] dst X A or D unit ALU Memory Comparison A unit ALUCMP Smem == K16, TC1 No 4 1 XCMP Smem == K16, TC2 No 4 1 XAMOV TAx, TAy Yes 3 1 ADAADD k8, TAx Yes 3 1 ADASUB k8, TAx Yes 3 1 ADAMOV k8, TAx Yes 3 1 ADAMOV D16, TAx No 4 1 ADAMAR Smem No 2 1 ADModify Data Stack Pointer (SP)AADD K8, SP Yes 2 1 AD A unit ALUMultiply D unit MACSQR[R] [ACx,] ACy Yes 2 1 XMPY[R] [ACx,] ACy Yes 2 1 XMPY[R] Tx, [ACx,] ACy Yes 2 1 XMPYK[R] K8, [ACx,] ACy Yes 3 1 XMPYK[R] K16, [ACx,] ACy No 4 1 XMPYM[R] [T3 = ]Smem, Cmem, ACx No 3 1 XSQRM[R] [T3 = ]Smem, ACx No 3 1 XMPYM[R] [T3 = ]Smem, [ACx,] ACy No 3 1 XMPYMK[R] [T3 = ]Smem, K8, ACx No 4 1 XMPYM[R][40] [T3 = ][uns(]Xmem[)], [uns(]Ymem[)], ACx No 4 1 X MPYM[R][U] [T3 = ]Smem, Tx, ACx No 3 1 XMultiply and Accumulate (MAC) D unitMAC SQA[R] [ACx,] ACy Yes 2 1 XMAC[R] ACx, Tx, ACy[, ACy]Yes 2 1 XMAC[R] ACy, Tx, ACx, ACy Yes 2 1 XMACK[R] Tx, K8, [ACx,] ACy Yes 3 1 XMACK[R] Tx, K16, [ACx,] ACy N0 4 1 XMACM[R] [T3 = ]Smem, Cmem, ACx N0 3 1 XMACM[R]Z [T3 = ]Smem, Cmem, ACx N0 3 1 XSQAM[R] [T3 = ]Smem, [ACx,] ACy N0 3 1 XMACM[R] [T3 = ]Smem, [ACx,] ACy N0 3 1 XMACM[R] [T3 = ]Smem, Tx, [ACx,]N0 3 1 XMACMK[R] [T3 = ]Smem, K8, [ACx,] ACy N0 4 1 XMACM[R][40] [T3 = ][uns()Xmem[]], [uns()Ymem[]][ACx,]N0 4 1 XACyMACM[R][40] [T3 = ][uns()Xmem[]], [uns()Ymem[]]ACx >>N0 4 1 X#16[, ACy]Multiply and Subtract (MAS) D unitMAC SQS[R] [ACx,] ACy Yes 2 1 XMAS[R] Tx, [ACx,] ACy Yes 2 1 XMASM[R] [T3 = ]Smem, Cmem, ACx N0 3 1 XSQSM[R] [T3 = ]Smem, [ACx,] ACy N0 3 1 XMASM[R] [T3 = ]Smem, [ACx,] ACy N0 3 1 XMASM[R] [T3 = ]Smem, Tx, [ACx,] ACy N0 3 1 XMASM[R][40] [T3 = ][uns()Xmem[]], [uns()Ymem[]][ACx,]N0 4 1 XACyNormalization ALU& D unit shifter MANT ACx, ACyYes 3 1 XCMP[U] src RELOP dst, TCx Yes 3 1 XCMPAND[U] src RELOP dst, TCy, TCx Yes 3 1 XCMPAND[U] src RELOP dst, !TCy, TCx Yes 3 1 XCMPOR[U] src RELOP dst, TCy, TCx Yes 3 1 XCMPOR[U] src RELOP dst, !TCy, TCx Yes 3 1 XRoundROUND [ACx,] ACy Yes 2 1 X D unit ALU SaturateSAT[R] [ACx,] ACy Yes 2 1 X D unit ALU Signed ShiftSFTS dst, #–1 Yes 2 1 X ALU or D unitshifter SFTS dst, #1 Yes 2 1 X ALU or D unitshifter SFTS ACx, Tx[, ACy] Yes 2 1 X D unit shifter SFTSC ACx, Tx[, ACy] Yes 2 1 X D unit shifter SFTS ACx, #SHIFTW[, ACy] Yes 3 1 X D unit shifter SFTSC ACx, #SHIFTW[, ACy] Yes 3 1 X D unit shifter Square DistanceSQDST Xmem, Ymem, ACx, ACy No 4 1 X D unit MAC & ALU SubtractionSUB [src,] dst Yes 2 1 X A or D unit ALU SUB k4, dst Yes 2 1 X A or D unit ALU SUB K16, [src,] dst No 4 1 X A or D unit ALU SUB Smem, [src,] dst No 3 1 X A or D unit ALU SUB src, Smem, dst No 3 1 X A or D unit ALU SUB ACx << Tx, ACy Yes 2 1 X D unit ALU & shifter SUB ACx << #SHIFTW, ACy Yes 3 1 X D unit ALU,shifter SUB K16 << #16, [ACx,] ACy No 4 1 X D unit ALUSUB K16 << #SHFT, [ACx,] ACy No 4 1 X D unit ALU, shifter SUB Smem << Tx, [ACx,] ACy No 3 1 X D unit ALU, shifter SUB Smem << #16, [ACx,] ACy No 3 1 X D unit ALUSUB ACx, Smem << #16, ACy No 3 1 X D unit ALUSUB [uns(]Smem[)], BORROW, [ACx,] ACy No 3 1 X D unit ALUSUB [uns(]Smem[)], [ACx,] ACy No 3 1 X D unit ALUSUB [uns(]Smem[)] << #SHIFTW, [ACx,] ACy No 4 1 X D unit ALU,shifter SUB dbl(Lmem), [ACx,] ACy No 3 1 X D unit ALU SUB ACx, dbl(Lmem), ACy No 3 1 X D unit ALUSUB Xmem, Ymem, ACx No 3 1 X D unit ALU§6.3程序控制指令语法并⾏使能bit长度周期流⽔线Branch ConditionallyBCC l4, cond No 2 6/5 R BCC L8, cond Yes 3 6/5 R BCC L16, cond No 4 6/5 RB ACx No 2 10 X B L7 Yes 2 6?AD B L16 Yes 2 6?AD B P24 No 4 5 D Branch on Auxiliary Register Not ZeroBCC L16, ARn_mod ! = #0 No 4 6/5 AD Call ConditionallyCALLCC L16, cond No 4 6/5 R CALLCC P24, cond No 5 5/5 R Call UnconditionallyCALL ACx No 2 10 X CALL L16 Yes 36AD CALL P24 No45D Compare and BranchBCC[U] L8, src RELOP K8 No 4 7/6 X Execute ConditionallyXCC [label, ]cond No 2 1 AD XCCPART [label, ]cond No21X IdleIDLE No 4 ? D No Operation (NOP)NOP Yes 1 1 D NOP_16 Yes21D Repeat Block of Instructions UnconditionallyRPTBLOCAL pmad Yes 2 1 AD RPTB pmad Yes31AD Repeat Single Instruction ConditionallyRPTCC k8, cond Yes3 1 AD Repeat Single Instruction UnconditionallyRPT CSR Yes 2 1 AD RPTADD CSR, TAx Yes 2 1 X RPT k8 Yes 2 1 AD RPTADD CSR, k4 Yes 2 1 X RPTSUB CSR, k4Yes 2 1 X RPT k16 Yes 3 1 AD Return ConditionallyRETCC cond Yes 3 5/5 R Return UnconditionallyRET Yes 2 5 D Return from InterruptRETI Yes 2 5 D Software InterruptINTR k5 No 2 3 DTRAP k5 No 2 ? D疑难指令描述Absolute Distance (ABDST)ABDST Xmem,Ymem,ACx,Acy 并⾏完成以下操作ACy = ACy + |HI(ACx)|>>16ACx = (Xmem << #16) – (Ymem << #16)影响状态bit位:FRCT, C54CM, M40, SATD, SXMD Affects ACOVx, ACOVy, CARRY ABDST *AR0+,*AR1,AC0,AC1 Before AfterAC0 00 1234 0000 AC0 00 4500 0000AC1 00 E800 0000 AC1 00 E800 1234AR0 202 AR0 203AR1 302 AR1 302202 3400 202 3400302 EF00 302 EF00●MAXDIFF ACx, ACy, ACz, AcwTRN0 = TRN0 >> #1TRN1 = TRN1 >> #1ACw(39–16) = ACy(39–16) – ACx(39–16) ←分段减ACw(15–0) = ACy(15–0) – ACx(15–0)←分段减If (ACx(31–16) > ACy(31–16)) { bit(TRN0, 15) = #0 ; ACz(39–16) = ACx(39–16) }else { bit(TRN0, 15) = #1 ; ACz(39–16) = ACy(39–16) }if (ACx(15–0) > ACy(15–0)) { bit(TRN1, 15) = #0 ; ACz(15–0) = ACx(15–0) }else { bit(TRN1, 15) = #1 ; ACz(15–0) = ACy(15–0) }MAXDIFF AC0, AC1, AC2, AC1Before AfterAC0 10 2400 2222 AC0 10 2400 2222AC1 90 0000 0000 AC1 7F DC00 DDDEAC2 00 0000 0000 AC2 10 2400 2222TRN0 1000 TRN0 0800TRN1 0100 TRN1 0080●DMAXDIFF ACx, ACy, ACz, AcwIf M40 = 0:TRNx = TRNx >> #1ACw(39–0) = ACy(39–0) – ACx(39–0)If (ACx(31–0) > ACy(31–0)) { bit(TRNx, 15) = #0 ; ACz(39–0) = ACx(39–0) }else { bit(TRNx, 15) = #1 ; ACz(39–0) = ACy(39–0) }ACw(39–0) = ACy(39–0) – ACx(39–0)If (ACx(39–0) > ACy(39–0)) { bit(TRNx, 15) = #0 ; ACz(39–0) = ACx(39–0) } else { bit(TRNx, 15) = #1 ; ACz(39–0) = ACy(39–0) }ADDV [ACx,] ACyACx⾼16bit(32-16)的绝对值与ACy的值相加,结果存于ACy中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
④ 来自T寄存器中的操作数。
c、 ALU的输出
ALU的输出为40位运算结果,通常被送至累加器 A或B。
(2)累加器A和B
’C54x芯片有两个独立的40位累加器A和B,可以 作为 ALU 或 MAC 的目标寄存器,存放运算结果,也可作为ALU或MAC的一个输入。
在执行并行指令( LD||MAC )和一些特殊指令 ( MIN 和 MAX )时,两个累加器中的一个用于装载 数据,而另一个用于完成运算。
一、C54x芯片的基本性能
1)多总线结构
2)40位算术逻辑单元(ALU)
3)17×17位并行乘法器
4)比较、选择和存储单元(CSSU) 5)指数编码器 6)两个地址发生器
7)数据总线 8)总线寻址空间 9)三种存储器空间 10)单指令循环和块循环 11)区分的存储块移动指令 12)32位长操作数指令 13)可编程等待状态发生器和 可编程的存储单元转换
CPU是DSP器件的核心部件,它的性能直接关系 到DSP器件的性能。 ’C54x的CPU采用了流水线指令执行结构和相 应的并行结构设计,使其能在一个指令周期内,高速 地完成多项算术运算。
CPU包括下列基本部件: ① 40位算术逻辑运算单元ALU;
② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨
2个40位的累加器A和B; 支持-16~31位移位范围的桶形移位寄存器; 能完成乘法-加法运算的乘法累加器MAC; 16位暂存寄存器T; 16位转移寄存器TRN; 比较、选择、存储单元CSSU; 指数编码器; CPU状态和控制寄存器。
要点
• • • •
并行处理和流 水线工作 取1指、 读2字、 写1字。
为何要设置多内部总线 一个机器周期内可完成的存取操作 为何要用两个辅助寄存器算术运算单元 一个周期内如何执行3操作数指令
双字寻址取 双操作数
用C、D、P总 线取操作数
2、’C54x的中央处理器CPU
要点
• 作用 • 结构与位置 • A和B的异同 累加器A和 B的差别仅 在于累加器 A 的 31~16 位可以用作 乘法器的一 个输入。
A
B
符号ctr Y
的 功 能 框 图
MUX
A MAC输出 M U B
ALU
A.ALU的输入和输出 根据输入源的不同,ALU采用不同的输入方式。
a、 ALU的X输入源
① 来自桶形移位寄存器输出的操作数;
② 来自数据总线DB中的操作数。
b、 ALU的Y输入源 ① 来自累加器A中的数据;
② 来自累加器B中的数据;
CPU
1、’C54x的内部总线结构
TMS320C54x的结构是以8组16位总线为核心,
形成了支持高速指令执行的硬件基础。 1组程序总线PB 总线结构 3组数据总线CB、DB、EB 4组地址总线PAB、CAB、DAB、EAB
(1).程序总线PB
主要用来传送取自程序存储器的指令代码和立
即操作数。
PB 总线既可以将程序空间的操作数据 ( 如系数
14)锁相环(PLL)发生器 15)多通道缓冲串口(McBSP) 16)直接存储器访问(DMA)控制器 17)主机接口(HPI) 18)定时器 19)多种节电模式 20)JTAG接口 21)低电压工作
二、’C54x的硬件结构
TMS320C54x的组成
中央处理器CPU 内部总线控制 特殊功能寄存器 数据存储器RAM 程序存储器ROM I/O功能扩展接口 串行口 主机通信接口HPI 定时系统 中断系统
DSP技术的发展与应用
第五周 第4讲
电气系 李静
§3.2 TMS320C5000系列DSP §3.2.1 TMS320C54x系列DSP §3.2.2 TMS320C55x系列DSP
§3.2.1 TMS320C54x系列DSP
TMS320C54x(简称’C54x)是TI公司为实现 低功耗、高速实时信号处理而专门设计的16位 定点数字信号处理器,采用改进的哈佛结构, 具有高度的操作灵活性和运行速度,适应于远 程通信等实时嵌入式应用的需要,现已广泛地 应用于无线电通信系统中。
TMS320C54x的硬件结构图
PAGEN 程序地址生成器 DAGEN 数据地址生成器 特殊功能 寄存器 程序存储器 数据存储器 串行口 并行口 定时器 计数器 中断 乘法 累加器 算术/逻辑 运算单元 比较器 桶形 移位器 外部 设备 接口 外部 存储器 接口
系统 控制 接口
系统控制
PAB PB CAB CB DAB DB EAB EB
(1) 算术逻辑运算单元ALU
’C54x 使用 40 位的算术逻辑运算单元和 2 个 40 位
累加器,可完成宽范围的算术逻辑运算。
CB15~CB0
T
C B A D S
DB15~DB0
ALU
MUX
SXM
MUX 符号ctr X
桶形移位 器输出
SXM OVM C16 C OVA/OVB ZA/ZB TC
’C54x读/写操作占用总线情况
读/写方式 程序读 程序写 地址总线
PAB CAB DAB EAB
(hw) (lw) (hw) (lw)
程序总线
PB
数据总线
CB DB EB
单数据读
双数据读 32位长数据读
单数据写
数据读/数据写 双数据读/系数读 外设读 外设写
累加器结构
39
••• AG AG AG 保护位
32
31
••• AH AH
16
15
••• AL AL 低阶位
0
累加器A
高阶位 32 31 ••• BH BH 高阶位 16 15
39
••• BG BG BG 保护位
••• BL BL 低阶位
0
累加器B
保护位:AG、BG 39~32,作为算术计算时的数据位余量, 以防止迭代运算中的溢出。 低阶位:AL、 BL 15~0。 高阶位:AH、BH 31~16;
表)送至数据空间的目标地址中,以实现数据移动,
也可以将程序空间的操作数据传送乘法器和加法器
中,以便执行乘法-累加操作。
(2).数据总线CB 、DB和EB
3条数据总线分别与不同功能的内部单元相连接。
如: CPU 、程序地址产生逻辑 PAGEN、数据地
址产生逻辑 DAGEN、片内外设和数据存储器等。
CB和DB用来传送从数据存储器读出的数据; EB用来传送写入存储器的数据。 (3).地址总线PAB、CAB、DAB和EAB 用来提供执行指令所需的地址。