Multiplier b register (mb) – Maxim Integrated High-Speed Microcontroller Users Guide: Network Microcontroller Supplement User Manual
Page 78

High-Speed Microcontroller User’s
Guide: Network Microcontroller
Supplement
78
A read pointer and a write pointer keep track of which of the four bytes is read or written to when access-
ing or loading the 32 or 16 bits of the MA register. The pointer is set to the most significant byte for reads
and the least significant byte for writes following a system reset, the completion of a calculation, the set-
ting of the CLM bit, or the setting of the MST bit in the MCNT1 SFR. Following each read of MA, the read
pointer is moved to the next most significant byte until the entire contents of MA are read. Similarly, each
write moves the write pointer to the next least significant byte until the entire 32 bits of the MA register
is written. Neither of the pointers wrap around, but rather lock at the extreme end of the associated read
or write 32-bit word size. Note that, in loading or reading a 16-bit value, only two reads or writes are
required. In loading a 16-bit value, ensure that the remaining 16 bits of the 32-bit value are completely
cleared.
When accessing data from the MA register, the most significant byte is the first byte read from MA when
downloading the contents of a completed multiply or divide, as determined by the MST bit in the MCNT1
SFR. All subsequent reads of MA, after completing the appropriate reads to secure the respective
results of the above calculations, produce a 00 hex value. MA is also cleared to 00 hex following either
a system reset, the setting of CLM, or the setting of the MST bit in the MCNT1 SFR. When loading the
MA register, data must be written with the least significant byte first and most significant byte last.
MB.7–0
Bits 7–0
Multiplier B register. The multiplier B register is used to load the 16-bit denominator when the math
accelerator is configured in a 32-bit by 16-bit or 16-bit by 16-bit divide mode. The multiplier B register
is also used to load the first value associated with a 16-bit by 16-bit calculation when the accelerator is
used in the multiply mode. A read of the MB register following a completed function provides the 16-bit
remainder of a 32-bit by 16-bit divide or the 16-bit remainder of a 16-bit by 16-bit divide.
A read pointer and a write pointer keep track of which of the two bytes is read or written to when access-
ing or loading the 16 bits of the MB register. The pointer is set to the most significant byte for reads and
the least significant byte for writes following a system reset, the completion of a calculation, the setting
of the CLM bit, or the setting of the MST bit in the MCNT1 SFR. Following each read of MB, the read
pointer is moved to the least significant byte. Similarly, a write moves the write pointer to the most sig-
nificant byte of the MB register. Neither of the pointers wrap around, but rather lock at the extreme end
of associated read or write 16-bit word size.
When accessing data from the MB register, the most significant byte is the first byte read from MB when
downloading the contents of a completed multiply or divide, as determined by the MST bit in the MCNT1
SFR. The next read of MB produces the least significant byte, and any subsequent read produces a 00
hex value. MB also reads as 00 hex, following either a system reset or the initialization of the accelera-
tor. When loading the MB register, data must be written with the least significant byte first and most sig-
nificant byte last.
Multiplier B Register (MB)
R = Unrestricted read, W = Unrestricted write, -n = Value after reset
7
6
5
4
3
2
1
0
SFR D4h
MB.7
MB.6
MB.5
MB.4
MB.3
MB.2
MB.1
MB.0
RW-0
RW-0
RW-0
RW-0
RW-0
RW-0
RW-0
RW-0
Maxim Integrated