Темы бакалаврских и дипломных работ.

Блоки операций с плавающей запятой

Назначение.
Блоки операций с плавающей запятой предназначены для реализации в ПЛИС
вычислений с повышенной точностью и /или снятия проблемы масштабирования
промежуточных результатов. Представление данных последовательными кодами и
последовательно- параллельные вычисления в этих блоках позволяют

  1. минимизировать аппаратурные затраты на реализацию функций и за счет этого дать возможность реализовать в ПЛИС достаточно сложные алгоритмы с полным распараллеливанием (отображение графа алгоритма в структуру как 1:1);
  2. минимизировать длительность тактового интервала до предельно возможной для ПЛИС за счет конвейеризации и минимизации критического пути в логических схемах;
  3. свести период реализации всех операций (в том числе операций вычисления элементарных функций) к одному или двум значениям, что упрощает планирование сложных конвейерных вычислений;
  4. эффективнее эксплуатировать память на задержках LUT ПЛИС серии Xilinx Virtex.

Представление данных.

Данные представляются числами с фиксированной запятой в дополнительном коде и числами с плавающей запятой. Точность представления мантиссы и числа с фиксированной запятой задается как в таблице 1:

Таблица 1.

Число разрядов n Название Префикс
8 байтовая B
16 Полуслово H
24 Одинарная S
32 расширенная E

Данные с фиксированной запятой предназначены для интерфейса с другими
вычислительными блоками, которые могут быть применены в проекте, в котором применяются данные блоки. Они представляются параллельными n-разрядными кодами.

Данные с фиксированной запятой представляются как целые числа:

Данные с плавающей запятой имеют n-1 — разрядную мантису в прямом коде с неявно заданной старшей единицей, знак мантиссы и 8-разрядный абсолютный порядок без смещения:

Знак Порядок Мантисса
n+7 n+6 n+5 n-1 n-2 n-3 0

В формате с плавающей запятой должны быть закодированы следующие
исключительные сосотояния:

  • Плюс-минус ноль = порядок и мантисса — нулевые, кроме знака;
  • Плюс-минус бесконечность — порядок = 255, мантисса -нулевая , кроме знака;
  • Не-число (NAN) — порядок = 255, мантисса- все 1.

Данные с плавающей запятой представляются и передаются последовательным кодом
старшими разрядами вперед. Начало числа сопровождается импульсом SA, как на рисунке 1.

Интерфейс

Блоки должны иметь унифицированный интерфейс.

Кроме того, блоки, выполняющие преобразование типов из/ в целое число имеют
параллельные входы/ выходы n-разрядных шин целых чисел, соответственно.

Если блок обрабатывает 2 числа DA и DB, и они поступают неодновременно, то начало выполнения операции совпадает с поступлением последнего операнда (уточняется в процессе выполнения проекта).

Если блок управляется дополнительными сигналами, напр. SIGN, то этот сигнал
записывается блоком в период поступления знакового разряда числа.

Перечень операций представлен в таблице 3.

Таблица 3.

Cимвол Операнды Признаки Функция
ADDSUB DA,DB GE,ZR,INF Сложение если SGN=0,вычитание DA-DB если
SGN=1
MUL DA,DB GE,ZR,INF Умножение
DIV DA,DB GE,ZR,INF,NAN Деление
ABS DI Абсолютное значение
ACCUM DI GE,ZR,INF Накопление в аккумуляторе
SQRT DI ZR,NAN Квадратный корень
SINPI DI GE,ZR Синус аргумента, умноженного на Пи
ATAN DA,DB GE,ZR,NAN Арктангенс от DA/DB
MOD DA,DB GE,ZR,INF Модуль комплексного числа:
SQRT(DA*DA+DB*DB)
MUL2CONST DI GE,ZR,INF Умножить на константу, заданную как Generic
ADD2CONST DI GE,ZR,INF Добавить константу, заданную как Generic
TANPI DI GE,ZR,INF Тангенс аргумента, умноженного на Пи
LOG2 DI ZR,NAN Логарифм по основанию 2
EXP2 DI GE,ZR,INF 2 в степени аргумента
REAL2INT DI GE,ZR,INF преобразование в целое
INT2REAL DI GE,ZR преобразование из целого в реальное
В2H,H2S,S2E,
E2S,S2H,H2B,
B2S,H2E,S2B,
E2H
DI Преобразование точности представления
аргумента, например, В2Н – из байтовой мантиссы
в 16-разрядную мантиссу