[an error occurred while processing this directive]
|
Вот одноцикловая (25 нс) команда МАС:
mac w6*w7, a, [w8]+=6, w6, [w10]-=4, w7 [w13]+=2
За один цикл (25 нс @40 МИПС) она делает следующее:
- умножает w6 на w7
- складывает этот результат с 40-битным аккумулятором "А"
- грузит следующий Х-операнд в w6
- увеличивает Х-указатель w8 на заданную константу (6)
- грузит следующий Y-операнд в w7
- уменьшает Y-указатель w10 на заданную константу (4)
- сохраняет округленный/насыщенный/нетронутый аккумулятор "В" в ОЗУ
- увеличивает ОЗУ-указатель w13 на заданную константу (2)
Что и как долго делает МАС в 54/218х - не знаю. Знаю только, что там нет ни Flash, ни быстрых портов, ни сколь-либо функциональной периферии - ADC, PWM, Capture/Compare, UART, I2C, BOD, Quadrature Encoder, а также полноценной DMA, гибкого тактового генератора с PLL, встроенного LDO ядра и т.д. и т.п.
А по сути вопроса - автор, знакомый с классическими DSP, решил попробовать решить ряд задач на МК с элементами DSP, и выбрал ИМХО далеко не самый худший вариант.