MSP430F5438 32位硬件乘法器的介绍和使用详细概述

发布者:钱老李最新更新时间:2020-12-24 来源: elecfans关键字:MSP430F5438  32位  硬件乘法器 手机看文章 扫描二维码
随时随地手机看文章

32 位硬件乘法器是一个并行器件,而不是 CPU 内核的一部分。这也就意味着:它在工作时不会涉及 CPU 的活动。硬件乘法寄存器是可以通过 CPU 汇编指令的读或着写进行操作。


硬件乘法器特点:

○无符号乘法;

○ 有符号乘法;

○ 无符号乘加操作;

○ 由符号乘加操作;

○ 8 位,16 位,24 位,和 32 位操作数;

○ 整数乘法

○ 小数乘法

○ 8位和 16 位操作数与 16 位硬件乘法器兼容;

○ 8位和 24 位在没有符号位扩展的情况下,依然可以进行乘法操作;


硬件乘法器结构图:

MSP430F5438 32位硬件硬件乘法器的介绍和使用详细概述

硬件乘法器支持 8 位,16 位,24 位,32 位无符号操作数,有符号操作数,无符号乘、加操作和有符号乘、加操作。操作数的大小,可以通过对"字"或者"字节"的定义来确定。操作数的类型可以通过第一个操作数的写入进行选择。


硬件乘法器有两个 32 位操作数寄存器,操作数 OP1 和操作数 OP2,以及一个 64 位结果寄存器,而这个寄存器需要使用 RES0 和 RES3 寄存器。为了兼容 16 X 16 硬件乘法器,8 位或者 16 位操作数的结果需要使用 RESL0,RESL1 和 SUMNEXT这三个寄存器。RESL0 用于存储 16 X 16 结果的低“字”,RESL1 用于存储 16 X 16 结果的高“字”。以及 SUMEXT 用于存储结果的信息。


硬件乘法器操作:

MSP430F5438 32位硬件硬件乘法器的介绍和使用详细概述

表1总结了针对各种操作数可能的结果的每一个"字"。此表展示了两点,一个是 OP2L 的写入操作,另一个时 OP2H 的写入操作。而最糟糕的情况就是实际结果的可能性。

8 位或者 16 位操作数通常在 3 个 MCLK 周期内准备好,并且在写入 OP2 操作数后的下一个指令就可以读出结果。 如果使用了间接寻址方式进行操作,在结果计算出之前,一个 NOP指令是必需的。


在 OP2 操作数,或者 OP2H 进入 RES0 时 24 位或者 32 位的结果可以通过连续指令的方式进行读取。当时用间接寻址方式进行读结果操作时,一条 NOP 指令时必须的。


由于有一个 32 位第二个操作数的存在,OP2L,OP2H 寄存器都要被使用。又由于两个 16 位部分的被使用,从而使得结果变得复杂。


操作数寄存器OP1 :

MSP430F5438 32位硬件硬件乘法器的介绍和使用详细概述

OP1 操作数寄存器内置 12 个寄存器,如表所示,这些寄存器通常用来装载数据到乘法器,并且也用来选择乘法器模式。写入第一个操作数的“低字”到由乘法操作数类型所确定的地址的乘法操作,才能够开始操作。当写入一个双个“字”到后缀为:32H 的高字寄存器(此时假定 OP1 为 32 位宽)。对于写入 OP2 操作来说,最新的地址写入的优先级通常定义了第一个操作数的宽度。例如:如果 MPY32L 被 MPY32H 写入,则所有的 32 位都将被使用并且 OP1将被设置为:32 位。如果 MPY32H 被 MPY32L 写入,则乘法操作将不会使用 MPY32H,并且假设 MPY32L 将数据写入到 16 位宽的 OP1。


在 OP1 操作数用于连续的操作时,重复性乘法操作就可以被执行,而此时无需载入 OP1 操作数。


操作数寄存器OP2:

MSP430F5438 32位硬件硬件乘法器的介绍和使用详细概述

写入第二个操作数到 OP2 寄存器通常会初始化乘法操作。写入 OP2 将会使得一个 16 位宽的第二个操作数和 OP1 中的值开始进行选择操作。写入 OP2L 通常会使得一个 32 位宽的第二个操作数,和被要求写入高字的 OP2H 的乘法器开始进行操作选择。


对于 8 位,24 位操作数寄存器来说,可以通过字节指令进行操作。用一个字节指令进行的乘法器操作,在单独操作期间,乘法器模块将会自动的有一个符号字节的扩展。对于 24 位操作数来说,只有一个高字将会作为字节写入。如果 24 位操作数通过寄存器被定义了符号位扩展,那么作为符号位将会有一个低字的写入,因为寄存器定义了操作数是否有无符号。


一个 32 位操作数的高字在保持不变的条件下,当改变操作数的大小至 16 位,可以通过修改操作数的大小,或者写入操作数寄存器来实现。在 16 位操作执行器件,高字的内容忽略。


注意:

在乘法操作期间改变第一个或者第二个操作数,在默认的条件下,在选择乘法操作时,改变 OP1 或者 OP2,而所得的结果均不正确,因为那时操作数在正在改变。对 OP2 或者 OP2L 的写入,将会对任何正在进行的计算操作进行放弃;同时,也将开始进行一个新的操作。而此时没有计算出的结果对接下来的 MAC 和MACS 操作 不再可靠。


注意要避免 MPYDLYWRTEN 位被置 1。所有写入 MPY32 寄存器的操作通常会由于MPYDLY32=0 而延迟,直到 64 位结果准备好或者 MPYDLY32=1,且 32 位结果算出。


结果寄存器:

MSP430F5438 32位硬件硬件乘法器的介绍和使用详细概述

乘法操作结果通常都是 64 位宽。而这要使用 RES0,RES3 寄存器。使用一个单操作指令MPYS 或者 MACS,结果将会有符号位的扩展。在 MACS 操作之前如果结果寄存器载入初始值,用户的软件必须仔细关注所写入带符号位的 64 位值。


备注:

在乘法操作期间改变结果寄存器的值 在写入OP2 或者 OP2L 之后,直到初始化操作完成之前,结果寄存器不可以被用户软件修改。


除了 RES0 和 RES3。为了兼容 16 X 16 硬件乘法器,一个 8 位或者 16 位操作的 32 位结果通常使用 RESL0 和 RESL1 以及 SUMEXT。在这种情况下,结果的低位寄存器 RESL0 保存了计算结果的低16位,并且结果保存在寄存器RESH1高16为中。RES0和RES1等同于RESL0和 RESH1。


结果扩展寄存器 SUMEXT 的内容依靠乘法操作并且这些操作在表中以列出。如果所有的操作是 16 位宽或者小于 32 位的结果通常决定符号和 carry。如果操作数中的一个比 16 位数大,则结果将会是 64 位。


MPYC 位通常反映了乘法器的 Carry,而这也列在表中。因而,将会反映在第 33 位或者第 65 位的结果中。当然,前提是小数模式,和连续模式没有被选择.


MACS 下溢出和溢出:

乘法器在 MACS 模式中通常不会自动监测下溢出和溢出。例如: 工作于 16 位输入数据和 32 位结果中,使用 RESL0 和 RESH1,正数的范围的可能数字将在 0 到 07FFF FFFFh,并且负数的结果范围将在:0FFFF FFFFh 到 08000 0000h。

下溢出出现时两个负操作数的相加的计算结果范围在正数范围内。

当两个正操作数相加的结果为负数时,溢出的结果出现!

SUMEXT 寄存器包含了结果符号位(在上面的两种情况下),offffh 通常针对一个 32 的溢出,0000h 通常针对一个 32 位的下溢出。在 MPY32CTL0 中 MPYC 位能够被用来监测溢出状态。如果 Carry 寄存器不同于 SUMEXT 寄存器内容则溢出出现。用户软件必须能够处理这些状态。

乘法控制寄存器:

MSP430F5438 32位硬件硬件乘法器的介绍和使用详细概述

Reserved 位 15-10 保留

MPYDL32 位 9 延时写模式

0 写延时在 64 位结果(RES0-RES3)之前是有效的。

1 写延时在 32 位结果(RES0-RES3)之前是有效的。

MPYDLYWRTEN 位 8 延时写使能

64 位(MPYDLY32=0)或 32 位(MPYDLY32=1)结果准备好之前,所有写入到任何 MPY32 寄存器的操作会被延迟。

0 写是不延时

1 写是延时的

MPYOP2_32 位7 乘法器操作数2的位宽度

0 16位

1 32位

MPYOP1_32 位6 乘法器操作数1的位宽度

0 16位

1 32位

MPYMx 位5-4 乘法器模式

00 MPY 乘法

01 MPYS 有符号乘法

10 MAC 乘法积累

11 MACS 有符号乘法积累

MPYSA 位3 饱和模式

MPYFRAC 位2 小数模式

Reserved 位1 保留

MPYC 位0 乘法器的进位标志如果未选择小数模式或饱和模式时可以被看作是第

33或65位结果,因为当切换到小数模式或饱和模式时MPYC位不改变。

举例:

例如 配置 8 * 8 无符号累加硬件乘法

MPY = 0x12; //第一操作数

OP2 = 0x56; // 第二操作数

MAC = 0x12; // 16 位累加乘法器

OP2 = 0x56;


关键字:MSP430F5438  32位  硬件乘法器 引用地址:MSP430F5438 32位硬件乘法器的介绍和使用详细概述

上一篇:采用MSP430FR4xx微控制器实现红外遥控的方案设计
下一篇:基于MSP430FR铁电系列的智能电表外置微型断路器方案

推荐阅读最新更新时间:2024-11-02 13:06

基于32位高速处理器S3C44B0X实现水表智能抄表系统的设计
1 水表智能抄表系统简介 目前,自来水表都是机械式的,而且多数自来水表都装在户内,这给水表抄表员带来了很大的麻烦。当抄表员抄表时,必须挨家挨户用肉眼读取水表的读数,然后登记在随身携带的小本子上。回去以后,还要由专门的电脑输入员把水表读数输入到计算机中的数据库里,计算出本月的用水量,再打印出本月各用户应交的水费。这一过程不但工作量大,而且很容易出错。现在得理上海电子有限公司开发出了智能水表,对机械水表中的指针转过的圈数进行计数,通过串口 RS422 发送水表读数。这给自来水表的智能抄表系统奠定了基础。 自来水表的智能抄表系统框图如图1所示。 用户的机械式水表改装成智能水表后,连接到装在楼底下的汇集器上。汇集器每隔一定的时间(
[单片机]
基于<font color='red'>32位</font>高速处理器S3C44B0X实现水表智能抄表系统的设计
飞思卡尔32位工业连接解决方案简化嵌入式开发
嵌入式开发人员面临着用更少资源做更多事情的压力,他们不但要增强性能应用和连通性,而且要降低成本,加快产品上市。为了帮助开发人员成功应对设计挑战,飞思卡尔半导体推出了“一站式”工业连接解决方案,将集成度最高的32位ColdFire®微控制器(MCU)系列和倍受赞誉的Freescale MQX™实时操作系统(RTOS)集于一身。 飞思卡尔的高性能MCF5225x MCU系列是终极工业连接解决方案,具有片上USB、以太网、控制器区域网络(CAN)和加密功能,并随附飞思卡尔MQX RTOS及相关工具和软件堆栈。有了价值约95000美元的全功能、可扩展RTOS平台的支持,这款芯片和软件联合解决方案赋予了开发人员卓越的设计灵活性、连通性选项
[单片机]
开发工程师的创意变戏法:8位MCU变身32位MCU?! 2013-05-31
目前的MCU市场分为三个部分, 8位、16位和32位内核(4位内核MCU现在已相当少用,故在本次比较中将其忽略)。对于这三个部分中的每一个,其规模大体相同。传统上8位内核占最大的市场份额。根据一些分析人士报告,可能32位内核市场占有率已经超过了8位内核。即使目前尚未超过,时间也不会太长。32位内核市场份额是迄今为止增长最快的。8位内核和16位内核仍在增长,但在速度方面远不如32位内核(8位内核的增长速度仍快于16位内核) 在很长的一段时间内, 很多人相信16位MCU可能会被8位MCU和32位MCU取代。目前的32位MCU器件采用最新技术制造(与8位内核和16为内核相比)。 MCU制造商能够使用这些最新的技术,使得32位MCU体
[单片机]
开发工程师的创意变戏法:8位MCU变身<font color='red'>32位</font>MCU?! 2013-05-31
MSP430F5438学习笔记 初始化XT1
// 时钟默认情况 // FLL时钟 FLL选择 XT1 // 辅助时钟 ACLK选择 XT1 32768Hz // 主系统时钟 MCLK选择 DCOCLKDIV 1048576Hz // 子系统时钟 SMCLK选择 DCOCLKDIV 1048576Hz #include msp430.h int main(void) { WDTCTL = WDTPW+WDTHOLD; // 停止看门狗 P4DIR |= BIT0; // P4.0输出状态 // 启动XT1 P7SEL |= 0x03; // P7.0 P7
[单片机]
MSP430F5438 Unified System Clock
#include msp430x54x.h void UCS_Init(void) { P5SEL |= 0x0C; // Port select XT2 UCSCTL6 &= ~ XT2OFF; // Set XT2 On P7SEL |= 0x03; // 端口选择外部低频晶振XT1 UCSCTL6 &=~XT1OFF; // 使能外部晶振 UCSCTL6 |= XCAP_3; // 设置内部负载电容 UCSCTL3 |= SELREF_2; // DCOref = REFO UCSCTL4 |= SELA_0; // ACLK = XT1 __bis_SR_register(SCG0); // 关闭FLL控制回路 UCSCT
[单片机]
Atmel 扩展32位AVR UC3微控制器解决方案系列
    微控制器及触摸技术解决方案的领导厂商爱特梅尔公司 (Atmel® Corporation)宣布推出32位AVR® UC3产品组合的三个不同产品系列共13款新型器件。获奖的AVR UC3微控制器(MCU)具有高性能、可执行数字信号处理(DSP)指令、提供USB接口、安全加密和电容式触摸支持等特性。除了现有UC3 L和UC3 A系列中的新器件外,还提供了新的UC3 D系列微控制器。现在,爱特梅尔的AVR UC3产品组合包括: •AVR UC3L:获奖的超低功耗32位微控制器,新产品包括新的存储器选项和附加的USB功能。 •AVR UC3D:针对入门级32位应用的全新产品系列,包括支持电容式触摸的硬件。 •AVR U
[工业控制]
NEC电子12款内置USB2.0的32位全闪存MCU
近日, NEC 电子完成了 12 款集成 “USB 2.0” 通信功能的 32 位全闪存微控制器的开发,并于即日起开始发售样品。   新产品中使用的 CPU 内核为 NEC 电子的 32 位 CPU 核 “V850ES” ,并集成了 USB2.0 通讯功能,其主要特征包括: ( 1 )集成了主机控制及外设功能控制两种功能,无须使用外接 USB 芯片,就能搭建 USB 连接的系统; ( 2 )最高工作频率为 48MHz ,约为现有 V850ES 核产品的 1.5 倍,可实现 98MIPS 的高性能; ( 3 )可同时提供搭建 USB 系统所需的各种驱动软件; ( 4 )内置有电机控制定时器、实时定
[单片机]
AT91SC25672RC:32位智能卡安全微控制器
生产商:Atmel AT91SC25672RC:32位智能卡安全微控制器(MCU),基于ARM® SC100™ SecurCore™ 32位RISC处理器,有ARM高性能32位和Thumb高代码容量16位两个指令集,4GB线性地址空间,有Von Neumann加载/存储架构,用于制令和数据的单一32位数据总线,3级流水线架构,8位,16位和32位数据类型,片内可编程系统时钟高达 50MHz,工作电压2.7V-5.5V, GSM/3G兼容,和PC行业兼容,有很低的功耗,256KB ROM程序存储器,72KB EEPROM用户存储器,大于50万次写/擦,10KB RAM,外设有两个I/O端口,可配置支持通信协议,包括ISO 7816
[安防电子]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved