设为首页收藏本站优领域

优领域

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
优领域 优领域 电子领域 技术文库 DSP 查看内容

一款32位定点DSP电路的设计

2014-5-18 15:28| 发布者: dzly| 查看: 805| 评论: 0|原作者: 薛海卫,张庆文,王月玲,徐新宇

摘要: 文章通过对32位定点DSP的体系结构及其设计方法的研究,重点阐述了32位定点DSP中CPU 包括ALU、MPY、ARAU、流水线、指令系统和总线接口等关键逻辑部件工作原理,对各个逻辑部 件的设计思路和实现方法进行了分析描述。采用基于标准单元正向设计方法,设计了一款32位指令 集的定点DSP电路,该电路采用哈佛总线结构,可以在单周期内实现16×16位有符号整数乘法、32位 累加和32位数据的算术逻辑运算,处理精度高。该电路采用0.5 μm 1P3M CMOS工艺流片,集成度7 万门,工作频率可达3
  1 引言
  数字信号处理器DSP广泛应用于现代通信、信息处理、自动控制等领域中,通过指令程序,DSP能实现滤波、快速傅里叶变换等各种算法,是现代信号处理的关键器件之一。DSP通常由CPU、存储器、外设等逻辑部件组成,根据处理数据的位宽分为16位或32位、根据处理数据的类型分为定点和浮点。
  本文设计的32位定点DSP可以在单周期内实现16×16位有符号整数乘法、累加和32位数据的算术逻辑运算,处理精度高。本电路采用正向设计流程,自主设计了CPU、ROM和SCI、TIMER等外设,通过0.5 μm1P3M CMOS工艺流片,实现了一种快速实时的32位定点数字信号处理器电路。
  2 32位DSP体系结构
  2.1 32位DSP总体架构
  DSP体系结构是设计DSP的核心和基础,决定了该DSP所达到的性能。根据开发时间与性能指标的要求,这款32位定点DSP的研制目标是中低速、低功耗及高可靠,由此决定32位DSP体系结构及指令系统。该DSP由CPU、总线、外设、ROM等功能部件组成,CPU采用增强的硬件,包含32位乘法器、32位ALU、32位寄存器队列,4条CPU内部总线分别可以从存储器和寄存器队列中传递操作数,两个独立的专用地址运算逻辑单元ARAU可以在单周期内产生2个地址。CPU与外设间采用哈佛总线结构,由4条总线组成,增强程序执行速度和数据吞吐带宽。
  根据该体系结构,32位DSP电路可以实现2操作数和3操作数的加、减、乘等算术运算及与、或、非、异或、移位等逻辑运算,通过跳转、返回、堆栈等操作实现程序控制,该电路具有4级流水线。32位定点DSP的总体结构图如图1所示。


  2.2 32位DSP的总线结构
  32位DSP采用哈佛总线结构,片内总线包括32位的程序总线PB、数据总线DB和24位的程序地址总线PAB、数据地址总线DAB。DB通过多路复用器连接到定时器和串口的数据端,DAB连接到定时器和串口的地址端。因BOOTROM存放只读程序,其数据输出端与PB相连,地址端与PAB相连。
  当电路处于微处理器(MP)模式时,程序从片外存储器读取到PB上,数据也从片外存储器读写到DB,外部启动该DSP;当电路处于微计算机模式(MC)时,引导程序从BOOTROM读取到PB上,内部启动该DSP。片内的PB和DB复用到32位外部数据总线DATA上,片内的PAB和DAB复用到24位外部地址总线ADDR上,通过外部存储器接口的双向数据总线DATA、地址总线ADDR和PDS、RW等片选信号实现对片外存储器的读写访问。外部存储器的读写接口如图2所示。


  2.3 32位DSP 的CPU核
  32位DSP的CPU由定点乘法器、算术逻辑运算单元ALU、移位器、辅助寄存器运算单元ARAU以及寄存器队列组成。
  图2 外部存储器读写接口
  为提高并行性,CPU内部采用4条32位的数据总线CPU1、CPU2、REG1、REG2,2条24位地址总线DADDR1、DADDR2。REG1、REG2总线与内核寄存器队列相连,CPU1、CPU2总线与核外数据总线相连。CPU内部结构图如图3所示。CPU1、CPU2、REG1、REG2总线通过复用器与内核数据总线DBUS相连,CPU与核外交互的接口总线为读数据总线DB_R、写数据总线DB_W、程序总线PB、数据地址总线DAB和程序地址总线PAB。控制信号DMEM_RW控制数据总线的读写,PDS_SEL控制程序空间和数据空间的选择。当读取指令时,PDS_SEL为低,程序计数器PC产生24位程序地址给程序地址总线PAB,通过PAB寻址,程序指令送入32位的程序总线PB上,PB再把指令送入指令寄存器IR进行指令译码。当读写数据时,PDS_SEL为高,ARAU0、ARAU1产生24位的地址给2条内核数据地址总线DADDR1和DADDR2,DADDR1和DADDR2复用到DADDR总线并生成24位数据地址总线DAB。
  根据DAB和读写信号DMEM_RW,读数据时把DAB寻址的数据通过核外DB总线读到32位数据读总线DB_R上并送入内核的32位双向总线DBUS上,写数据时把内核DBUS上的数据写到数据写总线DB_W上并把它送出到核外DB总线上。
  24个寄存器组成寄存器队列,包括8个通用寄存器R0~R7、8个辅助寄存器AR0~AR7、数据页指针DP、索引寄存器IR0~IR1、块长度寄存器BK、堆栈指针SP和状态寄存器ST、程序计数器PC和指令寄存器IR。
  2.3.1 ALU
  ALU在单周期内完成对32位整数、32位逻辑的运算。逻辑运算包括与、或、非、异或、左右移位等操作。移位器在单周期内完成左右移位操作,移位数最多可达32位。CPU总线或REG总线上的数据经移位器移位后送入ALU运算单元,ALU根据指令译码完成相应的运算后把结果送入32位通用寄存器R0~R7。
  2.3.2 乘法器
  32位DSP的乘法器采用移位加方式,在单周期内实现16×16位的无符号数和带符号数的乘法运算。

  

  由以上分析可知,根据乘法运算规则,整数相与、负数相与后取反加一再移位相加即可实现所有乘积项相加,所以用简单的与门、与非门、移位器和加法器就能实现该乘法运算。

网站统计|优领域|优领域 ( 粤ICP备12011853号-1 )  

GMT+8, 2019-3-21 05:52 , Processed in 0.043114 second(s), 12 queries .

Copyright © 2008-2014 优领域

回顶部