Периферийные регистры модуля аппаратного умножителя
7 |
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
Регистр управления модулем аппаратного умножителя (Hardware Multiplier Control (MCNT) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Сброс при включении питания и системный сброс |
r |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Доступен для чтения (r), записи (w) или специальный (s) доступ |
(SUS) Выбор режима выполнения операций с уетом знака или без учета знака операндов (Signed-Unsigned Select). Этот бит определяет тип данных операндов. Когда этот бит сброшен в 0, то операнды должны быть представлены в двоично-дополнительном коде, а операции умножения выполняются с учетом знака. Когда этот бит установлен в 1, то операнды должны быть представлены в виде абсолютных значений, а операции умножения выполняются без учета знака. 0 = Работа с учетом знака операндов 1 = Работа без учета знака операндов |
(MMAC) Активизация режима умножения с накоплением (Multiply-Accumulate Enable). Этот бит активизирует режим умножения с накоплением или вычитанием (определяется битом MSUB). Когда этот бит сброшен в 0, то аппартный умножитель будет осуществлять только умножение. Когда этот бит установлен в 1, то аппаратный умножитель будет осуществлять умножение с накоплением или вычитанием (определяется состоянием бита MSUB). 0 = Операция накопления/вычитания отключена 1 = Операция накопления/вычитания включена |
(MSUB) Инверсия умножения (Multiply Negate). Установка этого бита в 1 активизирует инверсию результата умножения при работе с учетом знака операндов и вычитает результат операции из аккумулятора (MC2:0) когда бит MMAC=1. Когда MSUB сброшен в 0, то результат умножения не инвертируется и аккумулятор выбирается когда бит MMAC=1. |
(OPCS) Выбор количества операндов (Operand Count Select) Этот бит определяет, какое количество операндов должно быть загружено для запуска операции умножения или умножения с накоплением/вычитанием (за исключением случая, когда SQU=1, так как этот бит определяет специфический режим, использующий один операнд). Когда этот бит сброшен в 0, то для запуска выполнения операции должны быть загружены оба регистра операндов (MA и MB). Когда этот бит установлен в 1, то операция умножения начинает выполняться после загрузки одного из операндов. 0 = Для запуска выполнения операции умножения необходимо загрузить оба операнда (MA и MB) 1 = Для запуска выполнения операции умножения необходимо загрузить один из операндов (MA или MB) |
(SQU) Активизация функции возведения в квадрат (Square Function Enable). Этот бит поддерживает аппаратную функцию возведения в квадрат. Когда этот бит установлен в 1, то функция возведения в квадрат инициализируется после того, как загружается один из регистров операндов (МА или МВ). Запись данных в один из регистров приводит к записи и во второй регистр и запускает специфическую операцию возведения в квадрат или возведения в квадрат с накоплением/вычитанием. Установка этого бита в 1 также отменяет установку бита OPCS. Когда бит SQU сброшен в 0, то функция возведения в квадрат отключена. 0 = Функция возведения в квадрат отключена 1 = Функция возведения в квадрат включена |
(CLD) Очистка регистров данных (Clear Data Registers). Этот бит инициализирует регистры операндов и аккумулятор аппаратного умножителя. Когда этот бит устанавливается в 1, то содержимое всех регистров данных сбрасывается в 0, а счетчик количества загруженных операндов немедленно сбрасывается. Сбрасывается этот бит автоматически аппаратно. Запись в этот бит 0 не имеет никакого эффекта. |
(MCW) Бит выбора записи в регистр МС (MC Register Write Select). Состояние бита MCW определяет, будет ли результат операции помещен в регистры аккумулятора (MC). 0 = Результат операции будет помещен в регистры аккумулятора (MC). 1 = Результат операции не будет помещен в регистры аккумулятора (MC). |
(OF) Флаг переполнения (Overflow Flag). Этот бит устанавливается в 1 когда в результате последней операции происходит переполнение. Этот бит может быть установлен при выполнении операции умножения с накоплением/вычитанием или при инверсии результата умножения без учета знака операндов. Сбрасывается этот бит в 0 автоматически при сбросе или при запуске следующей операции умножения. |
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр операнда А аппаратного умножителя (Multiplier Operand A - MA) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Сброс при включении питания и системный сброс |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Доступен для чтения (r), записи (w) или специальный (s) доступ |
Этот регистр операнда А используется прикладной программой для загрузки в аппаратный умножитель 16- битного операнда. |
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр операнда В аппаратного умножителя (Multiplier Operand В - MВ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Сброс при включении питания и системный сброс |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Доступен для чтения (r), записи (w) или специальный (s) доступ |
Этот регистр операнда В используется прикладной программой для загрузки в аппаратный умножитель 16- битного операнда. |
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр аккумулятора 2 аппаратного умножителя (Multiplier Accumulator 2 - MC2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Сброс при включении питания и системный сброс |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Доступен для чтения (r), записи (w) или специальный (s) доступ |
Регистр MC2 содержит два старших байта регистра аккумулятора модуля аппаратного умножителя. 48- битный аккумулятор состоит из регистров MC2, MC1 и MC0. При выполнении операций с учетом знака старший значащий бит этого регистра содержит знак. Размерность регистра MC2 зависит от размерности аккумулятора и у различных микроконтроллеров семейства MAXQ может быть различной. У микроконтроллеров семейства MAXQ, имеющих 32- битный аккумулятор аппаратного умножителя регистр МС2 не существует |
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр аккумулятора 1 аппаратного умножителя (Multiplier Accumulator 1 - MC1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Сброс при включении питания и системный сброс |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Доступен для чтения (r), записи (w) или специальный (s) доступ |
Регистр MC1 содержит второй и третий байты регистра аккумулятора модуля аппаратного умножителя. 48- битный аккумулятор состоит из регистров MC2, MC1 и MC0. |
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр аккумулятора 0 аппаратного умножителя (Multiplier Accumulator 0 - MC00) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Сброс при включении питания и системный сброс |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Доступен для чтения (r), записи (w) или специальный (s) доступ |
Регистр MC0 содержит два младших значащих байта регистра аккумулятора модуля аппаратного умножителя. 48- битный аккумулятор состоит из регистров MC2, MC1 и MC0. |
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр 1 результата умножения (Multiplier Read Register 1 - MC1R) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Сброс при включении питания и системный сброс |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
Доступен для чтения (r), записи (w) или специальный (s) доступ |
Регистр MC1R содержит второй и третий байты результата последней операции, когда MCW=1 или последней операции умножения или умножения с инверсией. Когда MCW=0 и последняя операция была операция умножения с накоплением/вычитанием, может соответствовать или не соответствовать содержимому регистра MC1. Содержимое этого регистра может измениться, если MCNT, MA, MB или MC2:0 изменяются. |
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр 0 результата умножения (Multiplier Read Register 0 - MC0R) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Сброс при включении питания и системный сброс |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
r |
Доступен для чтения (r), записи (w) или специальный (s) доступ |
Регистр MC0R содержит нулевой и первый байты результата последней операции, когда MCW=1 или последней операции умножения или умножения с инверсией. Когда MCW=0 и последняя операция была операция умножения с накоплением/вычитанием, может соответствовать или не соответствовать содержимому регистра MC0. Содержимое этого регистра может измениться, если MCNT, MA, MB или MC2:0 изменяются. |
|