TMS320C54X的片内外设_百度知道:: 分析研讨了它们各自优缺陷. 症结词:DSP芯片 TMS320C54X ADSP-218X 性能比拟 从1982年第一片数字信号处置器定点运算的可编程DSP器件仍是市场上的主流产品.据统计,目前销售的DSP器件中的80%以上属于16位定点可编程DSP器件. http://zhidao.baidu.com/question/54198703HOME | 摘 要:本文从移位器的功效描写、结构分析入手,并详细阐述了一款16位DSP处置器的高频率低功耗移位器的三个模块的设计。 症结词:移位器;DSPs;设计
在一般的微处置器中,没有单独设计的移位器,移位功效在算术逻辑单元中实现。但由于DSP处置器对运算速度要求较高,通过ALU来实现一些移位功效无法满足其要求,所以在DSP中一般设有专门的移位器。移位器不仅可以提高一般移位功效的速度,还可以更加高速地实现与2的n次幂的乘法运算。因此对DSP处置器的移位器(Shifter)的研讨很有必要的。
移位器是是执行单元的首要组成部分,所有算法的实现都是由执行单元的根本功效组合而成,所有的其他单元例如掌握、数据通路都是为执行单元服务的,掌握执行部件的具体动作,为执行部件供应充沛的数据。嵌入式定点16位DSP的执行单元结构如图1所示。DSP执行单元包孕3个子单元:16位(后果为40位)移位单元(SHIFT)、16位算术逻辑单元(ALU)和16位(后果为40位)乘法累加单元(MAC)。并行的对数据寄放器堆(DREG)进行数据的存取。DREG包孕16个16位的通用寄放器,流水线的最后一级从DREG中读取数据,将指令执行的后果,写回到DREG中,而所有的这些运算操作在一个时钟周期内完成[1]。

图1 16位DSP的执行单元结构图
16位DSP处置器的移位器首要执行的是两类功效:一是实现移位操作,它的输入是16位,移位后的输出是40位。二是指数检测,即从16位的输入数据中检测出前导冗余位的位数(从高位起),作为后果指数输出到寄放器。
移位操作首要有三种:逻辑移位,算术移位和规格化操作。它们都可以在左右两个方向进行,但不能进行循环移位。执行逻辑移位时,它的输入看作是无符号数,移位后左右两边的空位均用0填充;算术移位时,输入看作有符号补码数,移位后左边的空位填充符号位,右边补0;规格化操作和上述两种移位操作类似,但扩大位情况比拟庞杂一些,移位后右边填0,左边的空位要依据移位掌握信号的不同情况填充0、符号位或算术状态寄放器中的进位标志位AC。三种移位操作中移出边界(SR39或SR0)的位都被舍弃。
指数检测的目标是进行类似于定点到浮点的数据转换。一个定点数,可以用一个包孕尾数和指数(也称阶码)的浮点数来表示,这样可以提高数据的表数领域,同时使得我们的定点DSP能在不增长浮点算法开销的情况下获得浮点DSP的某些运算才能。指数检测(也称为指数提取)的后果就作为指数,然后用这个指数作为移位掌握码对输入数据进行规格化操作,就得到了尾数。也可以采取这个办法使一串数据(数据块)共用同一个指数,只是各自的尾数不同,这种数据格式称为块浮点格式。
1. 结构分析
移位器的结构框图如图2所示,它首要包孕以下部件:移位器阵列,OR/PASS逻辑,指数检测器和指数比拟逻辑。

图2 移位器(Shifter)结构框图
移位器阵列是一个16×40的桶形移位器[2]。它用于实现各种移位功效:逻辑移位,算术移位和规格化操作。输入数据都是16位宽,移位后的40位后果分为三部分辨别送到三个移位后果寄放器(统称为SR):SR2,SR1,SR0。移位操作由一个移位掌握码(SHIFT_CODE)和一个参考信号 (HI/LO) 来掌握。移位掌握码是一个8位的有符号数,它表示移位的方向和位数,当它为正时左移,为负时右移。依据不同的移位操作,它的来源有4个:移位器指数寄放器SE的内容,SE寄放器的内容的相反数,来自指令的立即数,指令立即数的相反数。对于算术移位和逻辑移位,移位掌握码来自移位器指数寄放器SE或指令中的立即数;对于规格化操作,移位掌握码为移位器指数寄放器SE内容或指令中立即数取反。移位器阵列可实现-128-127领域内任意位数的移位。参考信号(HI/LO)决定移位操作相对于输出域的参考点,它首要是为了实现32位双精度数据移位操作而设的。当参考信号为HI时,认为输入是32位数据的高16位,移位以40位输出域的高16位为参考点;当参考信号为LO时,认为输入是32位数据的低16位,移位的参考点为输出域的低16位。继续进行两次不同参考点的16位输入的移位操作,然后把两个后果相“或”,就可实现一个双精度32位数据的移位操作。移位扩大位(X)就是移位操作后左边的填充位,依据不同的移位操作,这个扩大位可以是0、输入数的符号位或ASTAT中的进位标志位AC。若为逻辑移位,扩大位为0;若为算术移位,扩大位为输入符号位;若是规格化操作,情况较为庞杂,又分3种情况 -摘自《农业设备与车辆工程》月刊2006年第7期-www.GotoRead.:: 240是一种高速专用微处置器,运算功效强盛,能实现高速输入和高速数据传输.FMS320(3240首要包孕算术逻辑单元ALU,寄放器集,辅助算术逻辑单元RALU,乘法器,乘法移位器,累加器,加法移位器,时钟锁相环电路,事件管理器(3个16位定时器,9个比拟单 http://www.gotoread.com/vo/2108/page216999.htmlHOME | [3]:如果是高位规格化,即参考信号为HI时,左移时扩大位为符号位,右移时扩大位为进位标志位AC;如果是低位规格化,无论左移还是右移,扩大位都为0。
OR/PASS逻辑就可实现上述的“或”操作。它依据SR_OR掌握信号决定是否对后果进行“或”操作,如果是普通的16位操作或32位双精度数移位的第一次操作,就不需要进行“或”操作,移位后果直接输出到后果寄放器;若进行的是32位操作的第2次16位移位操作,移位后果就要和第1次操作的后果相“或”后送到后果寄放器。
指数检测器实现的是从16位输入中提取指数的功效,这个指数可看作冗余符号位数,它等于前导雷同位数减1。为实现一个32位双精度数的操作,指数提取要受到HIX_HI_LO信号的掌握,这个信号表示三种不同的操作办法:高位(HI)、高位扩大(HIX)、低位(LO)。若为HI操作办法,则认为输入是32位数据的高16位,提取出的后果直接输出到移位器指数寄放器SE或移位器块指数寄放器SB;若为HIX办法,输入就被认为可能是执行ALU操作后已溢出的数据,所以指数检测器要考虑AV标志位,如果AV位为1,表示数据已溢出,指数就为+1,否则,和(HI)选项的操作一样;若为LO办法,输入就是32位数据的低16位,这时的检测后果只有在高16位全为0或全为1、且低16位的冗余符号位和高16位雷同时才有效,此时,后果为低16位的指数加上16,否则后果不输出。由此可见,这里需要比拟两次输入的符号位,所以在提取指数的同时可能还要更新移位输入符号标志位SS。本色上,由于规格化时的移位掌握码是SE寄放器的内容的相反数,为实现左移,在上述HI和LO操作办法中,提取出的后果要取相反数才输出到SE或SB寄放器。
指数比拟逻辑用于找出输入数据块中各指数的最大值,实现块浮点格式。如果要实现1个16位输入的指数提取操作,只要把后果直接送到SE即可,不经过比拟逻辑;如果要实现一串数据的块指数提取操作,则每次提取后果都要进行一次比拟,把较大的指数值保留在SB中,当整个提取和比拟完成后,SB中保留的就是各输入数据的指数的最大值。
2. 具体实现
硬件实现采取自顶向下(Top-Down)的设计思想,用Verilog HDL对这个移位器进行RTL描写。依据以上的结构分析,硬件实现的整个Shifter模块由三个子模块组成:移位器阵列(shifter_array)、指数检测器(exponent_detector)和指数比拟器(compare)。另外的OR/PASS逻辑的功效在移位器阵列中实现。下面辨别介绍各子模块的具体实现[4]。
2.1.移位器阵列模块
为了实现三种类型的移位操作,移位器阵列[5]设计采取了一个移位链结构,见图3。

图3 移位链结构
这个移位链由6个辨别为1、2、4、8、16、32位的双向移位寄放器组成。这些移位寄放器的移位方向由移位码的最高位(即符号位)掌握,如果最高位为1,左移,最高位为0时右移。而它们移位与否则辨别由移位掌握码的第0到5位掌握。如果相应的位为1,则移位,否则不移位,后果按原值输出。前面提到,移位器阵列要实现-128-127领域内的移位功效,而此处设计的移位链能够实现的各种移位组合只是在-63-63领域内。本色上,从移位器阵列的输入(16位)和输出(40位)的分析可看出:移位的有效领域是比拟小的,当高位移位时,左移超过24位或右移超过32位时,最后后果是一样的,就是全为0或全为1;同样,低位移位时,左移超过40位或右移超过16位时,最后后果也是一样的,就是全为0或全为1,所以设计时,在移位前进行了一次领域断定和缩减,使得实际的移位操作只需在-40-32之间就可以了,且能到达-128-127领域的移位后果。这样的设计节俭了两个移位寄放器(否则需要8个移位寄放器),既减小了面积,又降低了功耗。同时数据通路也变短了,大大提高了执行速度。这个移位器阵列还要断定移位溢出标志位SV。只有当输出的高9位全为1或全为0时,后果没有溢出;否则,后果溢出,SV置为0。
2.2.指数检测器模块
指数检测器的实现一般可以采取常见的序列检测逻辑,即采取计数器行动的描写办法,从最高位依次检测。但这种结构的实现一般面积、功耗都比拟大,不宜采取。也可以采取有限状态机来实现,但在我们的设计中有限状态机的状态数量太多,导致硬件实现面积过大,所以这种实现办法也不可取。从指数检测器的功效分析和各种可能实现办法的比拟可知,采取一个带优先级的多路选择器可以较为有效地实现指数检测,而功耗和面积却大大减小。由于这个检测器只检测前导继续雷同符号位,各种输入数据都可归纳为32种情况,所以只要一个32选1的多路选择器就可以实现指数检测功效。除了提取指数的操作外,指数检测器还需要断定移位器输入符号标志位SS作为输出信号。这个标志位,它是供应低位(LO)办法指数检测时运用的,为了断定32位数据的低16位的符号位是否与高16位雷同,高16位的符号位必须在高位(HI)或高位扩大(HIX)办法的指数检测时保留到标志位SS中。所以,移位器输入符号标志位的断定只在高位或高位扩大办法的指数检测操作进行。
2.3.指数比拟器模块
指数比拟器逻辑比拟简单,采取一般的有符号数据比拟器即可实现。比拟的对象是这次指数提取操作提取的指数值与SB寄放器中保留的上次提取的指数值。两者中较大的那个指数值作为后果输出到SB中。
3.模拟和综合后果
完成RTL描写后,采取Modelsim对整个移位器模块进行模拟仿真[6],模拟后果表明设计完全精确。接着采取Synopsys公司的Physical Compiler用SIMC(中芯国际)的0.18工艺库对设计进行综合,整个移位器的最长路径延时为2.5ns,面积为1200门左右,在400M的频率下功耗大约为13mw。
参考文献:
[1] 姚军,陈杰,林兆军 DSP芯片核内高性能移位器设计与验证,计算机工程与设计,2005.8
[2] 沈绪榜,蒋安平,Barrel Shifter的三种实现方案,小型微型计算机系统,1993, 14(10):1-8,48
[3] ADSP-219x/2191 DSP Hardware Reference, Analog Devices Inc, 2000
[4] 黎宝峰,颜永红,陈杰,用于DSP处置器的高速移位器的设计,湖南大学学报(增刊),2003, 30(6):99-101
[5] 胡剑,沈绪榜,部分译码办法桶式移位寄放器及其VHDL实现,微电子学与计算机,2003, (2):34-36
[6] 叶克松等,基于DSP芯片外围接口技能利用,微计算机信息 2004.5
前一篇文章:曹维新 后一篇文章:pushmail
|