Easy DSP Project
Материал из Модулярная арифметики
Версия от 14:04, 20 мая 2013; Turbo (обсуждение | вклад)
Содержание
Структурная схема
Как оно работает
На каждое переключение CLOCK из 0 в 1 считываются входы и выполняется какое-то действие, номер которого задан на входе command.
Входы устройства
- IN1 – вход 1 (4 бита)
- IN2 – вход 2 (4 бита)
- COMMAND – вход с заданием команды на выполнение
- CLOCK – тактовый вход синхронизации
Выходы устройства
- OUT – выход (8 бит)
Внутренние блоки
- AX – регистр (4 бит)
- BX – регистр (4 бит)
- CX – регистр (8 бит)
- Memory – ОЗУ 16 слов по 8 бит
Система команд
- 00 – ничего не делать (IDLE)
- 01 – поместить вход 1 в регистр AX
- 02 – поместить вход 2 в регистр BX
- 03 – поместить вход 1 в память по адресу заданному на входе 2
- 04 – сложить AX и BX и поместить результат в CX
- 05 – умножить AX и BX и поместить результат в CX
- 06 – поместить CX в память по адресу заданному на входе 1
- 07 – перенести значение из памяти по адресу заданному на входе 1 в регистр CX
- 08 – подать значение CX на выход OUT
- 09 – 15 – зарезервировано под новые команды
Как будет выглядеть программа для DSP, на языке типа Assembler
// Сложение двух чисел COM 01 // Читаем вход 1 в регистр AX COM 02 // Читаем вход 2 в регистр BX COM 04 // Складываем AX+BX = CX COM 08 // Помещаем результат на выход
Внутри можно впоследствии добавлять блоки не только для сложения и умножения, но и для более сложных операций – предварительно выделив для них отдельный номер команды.