Easy DSP Project

Материал из Модулярная арифметики
Перейти к: навигация, поиск

Структурная схема

описание

Как оно работает

На каждое переключение 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 // Помещаем результат на выход

Внутри можно впоследствии добавлять блоки не только для сложения и умножения, но и для более сложных операций – предварительно выделив для них отдельный номер команды.