СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №9/2016
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 73 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 9 2016 5 - - - - - 0 1 15 - - - - - - - - - - - - - - 0 1 Экспонента Мантисса Знак Рис. 1. Представление числа в формате FP23 вых частот. В качестве ПЛИС выбрана микросхема 6 или 7 серии, например, Kintex-7. Задача состоит в переводе 16-разрядного знакового целого числа FIX16 в специализированный формат с плавающей запятой FP23 и обратно, обеспечивая при этом максимальную скорость обработки внутри ПЛИС при минимальных затратах ресурсов кри- сталла. Кроме того, необходимо обо- значить и реализовать набор базовых математических операций – сложение, вычитание и умножение. Р ЕАЛИЗАЦИЯ ФОРМАТА ДАННЫХ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ Число FP23 – это особыйформат пред- ставления данных с плавающей запятой. В отличие от стандарта IEEE 754, длина информационного слова в формате FP23 не 32 бита, а всего 23 бита и один скрытый бит мантиссы. Даннаяформула в упрощённом виде отражает представ- ление числа A в формате FP23: А = (–1) SING(A) × 2 exp(A–32) × MAN(A). Мантисса (mantissa) в формате FP23 – это 17-битное положительное число. Она всегда отображается в нормали- зованном виде в результате всех пре- образований, то есть самый старший бит мантиссы для ненулевого числа всегда равен 1. Для экономии ресур- сов кристалла и упрощения записи 17-й бит мантиссы никогда не отобра- жается в упакованном результирующем 23-битном слове (см. рис. 1). Поэтому при вычислении математических опе- раций и переводе из одного формата в другой необходимо помнить, что ман- тисса нормализована, и к 16-разрядно- му ненулевому числу необходимо при- бавить значение 2 16 = 65536. Экспонен- та или показатель (exponent) в формате FP23 – это 6-битное положительное число, определяющее, на какую вели- чину умножается мантисса. Для форма- та FP23 с 16-битной мантиссой доста- точно экспоненты с шириной данных в 5 бит, но в практических целях введён дополнительный шестой бит для задач, где требуется накопление большо- го массива данных. Под знак выделен оставшийся один бит, причём нулевое значение бита соответствует положи- тельным числам, а единичное значе- ние определяет отрицательные числа. Для нулевой экспоненты значение зна- ка не важно и отражает число +0 или –0. Таким образом, число A в форма- те FP23 описывается тремя битовыми полями: «экспонентой» (EXP(A)), «зна- ком» (SIGN(A)) и «мантиссой» (MAN(A)). Итак, первый этап при разработке формата данных с плавающей запя- той на ПЛИС состоит в переводе зна- кового целого числа фиксированной разрядности в формат с плавающей запятой FP23, обеспечивая при этом максимальную скорость обработки внутри ПЛИС. Второй этап заключает- ся в обратном преобразовании чисел из формата FP23 в формат с фиксиро- ванной запятой с возможностью мас- штабирования выходных данных под определённый коэффициент деления. И наконец, на третьем этапе для полно- ценного использования всех преиму- ществ формата FP23 необходимо реа- лизовать математические операции – сложение, вычитание и умножение. В таблице 1 приведены разрядность данных, диапазон возможных значе- ний мантиссы и экспоненты и т.д. Почему разрядность данных в фор- мате FP23 именно 23 бита? Ответ скла- дывается из нескольких составляю- щих. Во-первых, один бит используется для знака и 15 оставшихся битов – для целой части, поэтому мантисса и знак занимают, как минимум, 16 битов. Для экспоненты, с учётом смещения в фор- муле, необходимо минимум 5 битов. Чем больше битов отводится под экс- поненту, тем больше результат (рас- ширяется диапазон возможных значе- ний), но при фиксированной разряд- ности мантиссы точность для больших чисел падает. Пусть экспонента имеет 6 разрядов, а мантисса представлена как 16-разрядное число, на знак отводит- ся 1 разряд. Для умножения и сложе- ния мантисс используется узел DSP48, минимальная разрядность одного из входов которого равна 18 битам, а с учё- том беззнаковых чисел – 17 битов. Сле- довательно, используя один блок DSP48, невозможно совершать арифметиче- ские действия над мантиссой шире 17 битов при минимальных затратах ресурсов ПЛИС. Кроме того, значение 23 выбрано не случайно, так как в дальнейшем в зада- чах цифровой обработки для хранения вектора комплексных значений потре- буется память ПЛИС. Пара чисел, веще- ственное и мнимое, без отображения скрытого бита имеет суммарнуюразряд- ность, равную46, а с учётомфлага пере- полнения – 48 битов, что по ширине данных укладывается ровно в три бло- ка памяти RAMB18E1, либо в один блок RAMB36E1 и один блок RAMB18E1. Так- же для пары значений можно исполь- зовать дополнительные функции бло- ка DSP48E1 – быстрое сравнение двух чисел, проверка на чётность и быстрое суммирование в режиме SIMD. Таким образом, для представления чисел в формате FP23 используется именно 23 бита. Если использовать скрытый бит мантиссы, который равен 1 при ненулевых значениях или 0 при нулевых значениях двоичного числа, то разрядность равна 24. Дополнитель- ные особенности формата FP23, отлич- ные от классического IEEE 754 floating: ● отсутствуют специализированные команды NaN, а также положитель- ная и отрицательная бесконечность; ● отсутствуют денормализованные числа (всегда нормализованы); ● флаги переполнения (overflow) и исчезновения числа (underflow) реализованы в виде отдельных сигна- лов, а не специализированных команд числа, либо вообще не используются; ● единица представляется как EXP(A) = = 16, SIGN(A) = 0, MANT(A) = 0; ● дробные числа меньше нуля прини- мают значения экспоненты EXP(A) = = [0; 15]. П РЕОБРАЗОВАНИЕ FIX16 В FP23 Для преобразования данных из цело- численного знакового типа FIX16 в формат FP23 необходимо использо- Таблица 1. Число в формате FP23 Название Обозначение Диапазон значений Длина, бит Положение битов в слове Экспонента EXP 0…63 6 21…16 Знак SIGN 0…1 1 22 Мантисса MAN 0…131071 17 15…0
RkJQdWJsaXNoZXIy MTQ4NjUy