0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區
會(huì )員中心
創(chuàng )作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內不再提示

MSP430F5438 32位硬件硬件乘法器的介紹和使用詳細概述

2oON_changxuemc ? 來(lái)源:未知 ? 作者:易水寒 ? 2018-06-18 16:37 ? 次閱讀

32 位硬件乘法器是一個(gè)并行器件,而不是 CPU 內核的一部分。這也就意味著(zhù):它在工作時(shí)不會(huì )涉及 CPU 的活動(dòng)。硬件乘法寄存器是可以通過(guò) CPU 匯編指令的讀或著(zhù)寫(xiě)進(jìn)行操作。

硬件乘法器特點(diǎn):

○無(wú)符號乘法;

○ 有符號乘法;

○ 無(wú)符號乘加操作;

○ 由符號乘加操作;

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

○ 整數乘法

○ 小數乘法

○ 8位和 16 位操作數與 16 位硬件乘法器兼容;

○ 8位和 24 位在沒(méi)有符號位擴展的情況下,依然可以進(jìn)行乘法操作;

硬件乘法器結構圖:

MSP430F5438 32位硬件硬件乘法器的介紹和使用詳細概述

硬件乘法器支持 8 位,16 位,24 位,32 位無(wú)符號操作數,有符號操作數,無(wú)符號乘、加操作和有符號乘、加操作。操作數的大小,可以通過(guò)對"字"或者"字節"的定義來(lái)確定。操作數的類(lèi)型可以通過(guò)第一個(gè)操作數的寫(xiě)入進(jìn)行選擇。

硬件乘法器有兩個(gè) 32 位操作數寄存器,操作數 OP1 和操作數 OP2,以及一個(gè) 64 位結果寄存器,而這個(gè)寄存器需要使用 RES0 和 RES3 寄存器。為了兼容 16 X 16 硬件乘法器,8 位或者 16 位操作數的結果需要使用 RESL0,RESL1 和 SUMNEXT這三個(gè)寄存器。RESL0 用于存儲 16 X 16 結果的低“字”,RESL1 用于存儲 16 X 16 結果的高“字”。以及 SUMEXT 用于存儲結果的信息。

硬件乘法器操作:

MSP430F5438 32位硬件硬件乘法器的介紹和使用詳細概述

表1總結了針對各種操作數可能的結果的每一個(gè)"字"。此表展示了兩點(diǎn),一個(gè)是 OP2L 的寫(xiě)入操作,另一個(gè)時(shí) OP2H 的寫(xiě)入操作。而最糟糕的情況就是實(shí)際結果的可能性。

8 位或者 16 位操作數通常在 3 個(gè) MCLK 周期內準備好,并且在寫(xiě)入 OP2 操作數后的下一個(gè)指令就可以讀出結果。 如果使用了間接尋址方式進(jìn)行操作,在結果計算出之前,一個(gè) NOP指令是必需的。

在 OP2 操作數,或者 OP2H 進(jìn)入 RES0 時(shí) 24 位或者 32 位的結果可以通過(guò)連續指令的方式進(jìn)行讀取。當時(shí)用間接尋址方式進(jìn)行讀結果操作時(shí),一條 NOP 指令時(shí)必須的。

由于有一個(gè) 32 位第二個(gè)操作數的存在,OP2L,OP2H 寄存器都要被使用。又由于兩個(gè) 16 位部分的被使用,從而使得結果變得復雜。

操作數寄存器OP1 :

MSP430F5438 32位硬件硬件乘法器的介紹和使用詳細概述

OP1 操作數寄存器內置 12 個(gè)寄存器,如表所示,這些寄存器通常用來(lái)裝載數據到乘法器,并且也用來(lái)選擇乘法器模式。寫(xiě)入第一個(gè)操作數的“低字”到由乘法操作數類(lèi)型所確定的地址的乘法操作,才能夠開(kāi)始操作。當寫(xiě)入一個(gè)雙個(gè)“字”到后綴為:32H 的高字寄存器(此時(shí)假定 OP1 為 32 位寬)。對于寫(xiě)入 OP2 操作來(lái)說(shuō),最新的地址寫(xiě)入的優(yōu)先級通常定義了第一個(gè)操作數的寬度。例如:如果 MPY32L 被 MPY32H 寫(xiě)入,則所有的 32 位都將被使用并且 OP1將被設置為:32 位。如果 MPY32H 被 MPY32L 寫(xiě)入,則乘法操作將不會(huì )使用 MPY32H,并且假設 MPY32L 將數據寫(xiě)入到 16 位寬的 OP1。

在 OP1 操作數用于連續的操作時(shí),重復性乘法操作就可以被執行,而此時(shí)無(wú)需載入 OP1 操作數。

操作數寄存器OP2:

MSP430F5438 32位硬件硬件乘法器的介紹和使用詳細概述

寫(xiě)入第二個(gè)操作數到 OP2 寄存器通常會(huì )初始化乘法操作。寫(xiě)入 OP2 將會(huì )使得一個(gè) 16 位寬的第二個(gè)操作數和 OP1 中的值開(kāi)始進(jìn)行選擇操作。寫(xiě)入 OP2L 通常會(huì )使得一個(gè) 32 位寬的第二個(gè)操作數,和被要求寫(xiě)入高字的 OP2H 的乘法器開(kāi)始進(jìn)行操作選擇。

對于 8 位,24 位操作數寄存器來(lái)說(shuō),可以通過(guò)字節指令進(jìn)行操作。用一個(gè)字節指令進(jìn)行的乘法器操作,在單獨操作期間,乘法器模塊將會(huì )自動(dòng)的有一個(gè)符號字節的擴展。對于 24 位操作數來(lái)說(shuō),只有一個(gè)高字將會(huì )作為字節寫(xiě)入。如果 24 位操作數通過(guò)寄存器被定義了符號位擴展,那么作為符號位將會(huì )有一個(gè)低字的寫(xiě)入,因為寄存器定義了操作數是否有無(wú)符號。

一個(gè) 32 位操作數的高字在保持不變的條件下,當改變操作數的大小至 16 位,可以通過(guò)修改操作數的大小,或者寫(xiě)入操作數寄存器來(lái)實(shí)現。在 16 位操作執行器件,高字的內容忽略。

注意:

在乘法操作期間改變第一個(gè)或者第二個(gè)操作數,在默認的條件下,在選擇乘法操作時(shí),改變 OP1 或者 OP2,而所得的結果均不正確,因為那時(shí)操作數在正在改變。對 OP2 或者 OP2L 的寫(xiě)入,將會(huì )對任何正在進(jìn)行的計算操作進(jìn)行放棄;同時(shí),也將開(kāi)始進(jìn)行一個(gè)新的操作。而此時(shí)沒(méi)有計算出的結果對接下來(lái)的 MAC 和MACS 操作 不再可靠。

注意要避免 MPYDLYWRTEN 位被置 1。所有寫(xiě)入 MPY32 寄存器的操作通常會(huì )由于MPYDLY32=0 而延遲,直到 64 位結果準備好或者 MPYDLY32=1,且 32 位結果算出。

結果寄存器:

MSP430F5438 32位硬件硬件乘法器的介紹和使用詳細概述

乘法操作結果通常都是 64 位寬。而這要使用 RES0,RES3 寄存器。使用一個(gè)單操作指令MPYS 或者 MACS,結果將會(huì )有符號位的擴展。在 MACS 操作之前如果結果寄存器載入初始值,用戶(hù)的軟件必須仔細關(guān)注所寫(xiě)入帶符號位的 64 位值。

備注:

在乘法操作期間改變結果寄存器的值 在寫(xiě)入OP2 或者 OP2L 之后,直到初始化操作完成之前,結果寄存器不可以被用戶(hù)軟件修改。

除了 RES0 和 RES3。為了兼容 16 X 16 硬件乘法器,一個(gè) 8 位或者 16 位操作的 32 位結果通常使用 RESL0 和 RESL1 以及 SUMEXT。在這種情況下,結果的低位寄存器 RESL0 保存了計算結果的低16位,并且結果保存在寄存器RESH1高16為中。RES0和RES1等同于RESL0和 RESH1。

結果擴展寄存器 SUMEXT 的內容依靠乘法操作并且這些操作在表中以列出。如果所有的操作是 16 位寬或者小于 32 位的結果通常決定符號和 carry。如果操作數中的一個(gè)比 16 位數大,則結果將會(huì )是 64 位。

MPYC 位通常反映了乘法器的 Carry,而這也列在表中。因而,將會(huì )反映在第 33 位或者第 65 位的結果中。當然,前提是小數模式,和連續模式?jīng)]有被選擇.

MACS 下溢出和溢出:

乘法器在 MACS 模式中通常不會(huì )自動(dòng)監測下溢出和溢出。例如: 工作于 16 位輸入數據和 32 位結果中,使用 RESL0 和 RESH1,正數的范圍的可能數字將在 0 到 07FFF FFFFh,并且負數的結果范圍將在:0FFFF FFFFh 到 08000 0000h。

下溢出出現時(shí)兩個(gè)負操作數的相加的計算結果范圍在正數范圍內。

當兩個(gè)正操作數相加的結果為負數時(shí),溢出的結果出現!

SUMEXT 寄存器包含了結果符號位(在上面的兩種情況下),offffh 通常針對一個(gè) 32 的溢出,0000h 通常針對一個(gè) 32 位的下溢出。在 MPY32CTL0 中 MPYC 位能夠被用來(lái)監測溢出狀態(tài)。如果 Carry 寄存器不同于 SUMEXT 寄存器內容則溢出出現。用戶(hù)軟件必須能夠處理這些狀態(tài)。

乘法控制寄存器:

MSP430F5438 32位硬件硬件乘法器的介紹和使用詳細概述

Reserved 位 15-10 保留

MPYDL32 位 9 延時(shí)寫(xiě)模式

0 寫(xiě)延時(shí)在 64 位結果(RES0-RES3)之前是有效的。

1 寫(xiě)延時(shí)在 32 位結果(RES0-RES3)之前是有效的。

MPYDLYWRTEN 位 8 延時(shí)寫(xiě)使能

64 位(MPYDLY32=0)或 32 位(MPYDLY32=1)結果準備好之前,所有寫(xiě)入到任何 MPY32 寄存器的操作會(huì )被延遲。

0 寫(xiě)是不延時(shí)

1 寫(xiě)是延時(shí)的

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 乘法器的進(jìn)位標志如果未選擇小數模式或飽和模式時(shí)可以被看作是第

33或65位結果,因為當切換到小數模式或飽和模式時(shí)MPYC位不改變。

舉例:

例如 配置 8 * 8 無(wú)符號累加硬件乘法

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

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

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

OP2 = 0x56;

聲明:本文內容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權轉載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習之用,如有內容侵權或者其他違規問(wèn)題,請聯(lián)系本站處理。 舉報投訴

原文標題:MSP430F5438 硬件乘法器

文章出處:【微信號:changxuemcu,微信公眾號:暢學(xué)單片機】歡迎添加關(guān)注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    MSP430F5438中文手冊

    想在正想學(xué)MSP430F5438單片機的可以拿來(lái)看看,希望對你有幫助
    發(fā)表于 05-19 10:32

    關(guān)于msp430F5438的程序

    各位大神,我想找基于msp430f5438的AD轉換然后在12864上顯示電壓的程序。。。。。請問(wèn)誰(shuí)有??5438的資料很難找啊,能不能介紹一些?
    發(fā)表于 08-10 11:16

    msp430f5438如何用

    如何使用msp430f5438單片機,我看著(zhù)視頻寫(xiě)了一個(gè)程序,下載進(jìn)去沒(méi)反應, 跪求指點(diǎn)
    發(fā)表于 08-30 16:00

    MSP430F5438例程

    MSP430F5438程序代碼
    發(fā)表于 10-15 00:19

    硬件乘法器

    求浮點(diǎn)數乘除計算程序,求用硬件乘法器計算浮點(diǎn)數的程序
    發(fā)表于 11-03 22:32

    msp430f5438資料

    msp430f5438資料學(xué)習
    發(fā)表于 04-26 16:36

    硬件乘法器的相關(guān)資料分享

    一,乘法器硬件乘法器是一個(gè)通過(guò)內部總線(xiàn)與 CPU 相連的 16 外圍模塊。MSP430 單片機可以在部改變 CPU 結構和指令的情況下增加
    發(fā)表于 12-09 07:05

    MSP430F5529硬件資源分享

    MSP430系列中硬件源資是非常豐富的。有看門(mén)狗(WDT)、定時(shí)器A、(Timer_A)、定時(shí)器B(Timer_B)、比較器、串口0(USARTO)、串口1(USART1)、硬件乘法器
    發(fā)表于 02-15 07:11

    硬件乘法器是怎么實(shí)現的?

    硬件乘法器是怎么實(shí)現的
    發(fā)表于 09-22 06:53

    基于msp430f5438芯片的控制器

    這是一個(gè)基于msp430f5438芯片的一個(gè)控制器,控制原理,以及芯片得各個(gè)模塊的功能。
    發(fā)表于 04-28 11:51 ?3次下載

    msp430F5438用戶(hù)指南

    msp430F5438用戶(hù)指南
    發(fā)表于 10-12 16:43 ?38次下載

    搜集的很多msp430f5438示例代碼

    搜集的很多msp430f5438示例代碼
    發(fā)表于 05-04 14:08 ?31次下載
    搜集的很多<b class='flag-5'>msp430f5438</b>示例代碼

    MSP430教程Chapt12-硬件乘法器

    MSP430硬件乘法器是一種外圍設備,并不構成MSP430 CPU的一部分。它允許進(jìn)行簽名和無(wú)符號數的乘法運算。還支持
    發(fā)表于 05-07 09:38 ?8次下載
    <b class='flag-5'>MSP430</b>教程Chapt12-<b class='flag-5'>硬件</b><b class='flag-5'>乘法器</b>

    硬件乘法器是什么?

    硬件乘法器是現代計算機中必不可少的一部分,其基礎是加法器結構。
    的頭像 發(fā)表于 05-11 10:52 ?8642次閱讀

    MSP430X1XX系列硬件乘法器,比較器,flash講解

    一,乘法器 硬件乘法器是一個(gè)通過(guò)內部總線(xiàn)與 CPU 相連的 16 位外圍模塊。MSP430 單片機可以在部改變 CPU 結構和指令的情況下增加功能,這種結構特別適用于對運算速度要求很?chē)?/div>
    發(fā)表于 11-26 09:36 ?3次下載
    <b class='flag-5'>MSP430</b>X1XX系列<b class='flag-5'>硬件</b><b class='flag-5'>乘法器</b>,比較器,flash講解
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看