реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Floating point in Motorola 56300
Jools
сообщение May 23 2006, 06:44
Сообщение #1


Патриот
***

Группа: Свой
Сообщений: 384
Регистрация: 26-12-04
Пользователь №: 1 682



Привет.

Пользуюсь исходниками программы под Motorola 56300. Самому лень искать да и время нету. Может кто подскажет алгоритм перевода чисел с плавающей точкой от этого проца в нормальный (человеческий) вид. Ну или хотя бы pdf с описанием формата чисел с плавающей точкой для этого проца.


Большое спасибо.
Go to the top of the page
 
+Quote Post
Jools
сообщение May 31 2006, 12:44
Сообщение #2


Патриот
***

Группа: Свой
Сообщений: 384
Регистрация: 26-12-04
Пользователь №: 1 682



Вопрос еще актуальный.
Неужели никто не работал с данной серией процов?
Go to the top of the page
 
+Quote Post
Wild
сообщение May 31 2006, 13:16
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 216
Регистрация: 26-05-06
Из: Коломна
Пользователь №: 17 479



96002 использовал вот этот стандарт http://steve.hollasch.net/cgindex/coding/ieeefloat.html
56300 наверно такой же.
Go to the top of the page
 
+Quote Post
Jools
сообщение May 31 2006, 13:39
Сообщение #4


Патриот
***

Группа: Свой
Сообщений: 384
Регистрация: 26-12-04
Пользователь №: 1 682



К сожалению, у него свой формат, а не стандартный, на который Вы указали.
И с налету, я не могу найти по этому процу информацию.
С DSPшниками никогда не работал - не знаю где искать.
Go to the top of the page
 
+Quote Post
ek74
сообщение Jun 1 2006, 09:40
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 81
Регистрация: 4-08-05
Из: г. Саратов
Пользователь №: 7 351



А у какого DSP56300 Вы видели плавующую точку?
Насколько я в курсе, родное (аппаратное) представление данные у них: дробные 24 или 48- разрядные числа с фиксированной точкой, да ещё и в дополнительном коде.
Правда есть библиотеки которые программно реализует плавующую точку. Но это исключительно программная реализация и в каком виде там представляются данные зависит исключительно от разработчиков этой библиотеки.
Мне на глаза попадалась одна такая библиотека, называется FPLIB - MOTOROLA DSP56300 FLOATING POINT SOFTWARE SUBROUTINE LIBRARY. Там имется следующее представление данных (см. файл Fpdef-hlp.txt в комплекте библиотеки):
Код
FPLIB "SINGLE EXTENDED" PRECISION FLOATING POINT FORMAT

Floating point number - (m,e) including mantissa sign
        Decimal value = m * ( 2 ** ( e - ebias ))

        23_____________________0    23_______________________0
        | s .      m           |    |    0            e .    |
        |______________________|    |________________________|

m = 24 bit mantissa (two's complement, normalized fraction)
        23 bit mantissa precision plus 1 bit mantissa sign gives
        precision of approximately 7 decimal digits.  The 24 bit
        mantissa was chosen to maximize precision with efficient
        use of the DSP56300 MPY and MAC instructions.
        A hidden leading 1 is not implemented in this format.

        Binary encoding:  s.xxxxxxx xxxxxxxx xxxxxxxx
        Bit weight:       0  -1                      -23
                        -2  2                       2

        Largest positive mantissa    $7FFFFF = +0.99999988079071044921875
        Smallest positive mantissa   $400000 = +0.5
        Floating point zero mantissa $000000 = 0
        Smallest negative mantissa   $BFFFFF = -0.50000011920928955078125
        Largest negative mantissa    $800000 = -1.0
        Reserved mantissas           $000001 through $3FFFFF
                                     $C00000 through $FFFFFF

        Note that all reserved mantissas are illegal since they
        represent denormalized mantissas.

e = 14 bit exponent (unsigned integer, biased by ebias = +8191)
        Stored as a 24 bit unsigned integer with 10 leading zeros.
        Exponent arithmetic is generally done with 16 bit precision.
        The 14 bit exponent format was chosen to maximize dynamic
        range with efficient detection of exponent overflow and
        exponent underflow.

        Binary encoding:  00000000 00xxxxxx xxxxxxxx.
        Bit weight:                   13            0
                                     2             2

        Largest exponent             $003FFF = 2 ** +8192
        Assumed fixed point exponent $001FFF = 2 ** +0 = +1.0
        Smallest exponent            $000000 = 2 ** -8191
        Reserved exponents           $004000 through $FFFFFF

                        14
        If bit weight  2   is set, exponent overflow has occured.
                        15
        If bit weight  2   is set, exponent underflow has occured.

        Note that no distinct exponents are reserved for plus infinity,
        minus infinity, Not a Number (IEEE NaN), minus zero or
        denormalized numbers.

Если у Вас такая библиотека то в нормальньное представление можно перевести например так (пример на паскале):
Код
type
  Float48 = packed record
    exponent: longint;
    mantissa: longint;
  end;

function Float48ToDouble(Value: Float48): double;
var
  i: integer;
  Mask, Shift: longword;
begin
  if (Value.mantissa and $800000)=$800000) then Result:=-1 else Result:=0;
  Mask:=$400000; Shift:=2;
  for i:=1 to 23 do
  begin
    if ((Value.mantissa and Mask)=Mask) then Result:=Result+1/Shift;
    Mask:=Mask shr 1; Shift:=Shift shl 1;
  end;
  Result:=Ldexp(Result, (Value.exponent-8191));
end;

Если представление данных в используемой библиотеки другоё, то тут надо смотреть её исходнии и разбираться.
Go to the top of the page
 
+Quote Post
Jools
сообщение Jun 1 2006, 12:40
Сообщение #6


Патриот
***

Группа: Свой
Сообщений: 384
Регистрация: 26-12-04
Пользователь №: 1 682



Цитата(ek74 @ Jun 1 2006, 13:40) *
А у какого DSP56300 Вы видели плавующую точку?
Насколько я в курсе, родное (аппаратное) представление данные у них: дробные 24 или 48- разрядные числа с фиксированной точкой, да ещё и в дополнительном коде.

Я в этом деле не шарю! У меня есть исходники под этот проц, на основе которых будет создаваться FPGA-проект. И в этих исходниках есть таблица, числа которой представлены как floating point (из двух 24-битных слов). А как там это происходит работа с плавающей точкой - программно или аппаратно, мне на данный момент неинтересно. rolleyes.gif

Цитата(ek74 @ Jun 1 2006, 13:40) *
Если у Вас такая библиотека то в нормальньное представление можно перевести например так (пример на паскале):


Помоему это как раз то, что мне надо a14.gif !
Большое спасибо! cheers.gif
Go to the top of the page
 
+Quote Post
ek74
сообщение Jun 2 2006, 10:54
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 81
Регистрация: 4-08-05
Из: г. Саратов
Пользователь №: 7 351



Цитата(Jools @ Jun 1 2006, 16:40) *
Помоему это как раз то, что мне надо a14.gif !
Большое спасибо! cheers.gif


Будут вопросы - спрашивайте, только единственное но: с завтрешнего дня я ухожу на две недели в отпуск (у меня дочь родилась и хочу первое время побыть с ней wub.gif ). Если для Вас время ответа не очень критично, то по возвращении из отпуска отвечу на все Ваши накопившиеся вопросы blush.gif
Go to the top of the page
 
+Quote Post
Jools
сообщение Jun 15 2006, 12:52
Сообщение #8


Патриот
***

Группа: Свой
Сообщений: 384
Регистрация: 26-12-04
Пользователь №: 1 682



Цитата(ek74 @ Jun 2 2006, 14:54) *
Будут вопросы - спрашивайте, только единственное но: с завтрешнего дня я ухожу на две недели в отпуск (у меня дочь родилась и хочу первое время побыть с ней wub.gif ). Если для Вас время ответа не очень критично, то по возвращении из отпуска отвечу на все Ваши накопившиеся вопросы blush.gif


Нет не критично.
Ну и поздравляю с рождением дочери.
Здоровья ребенку, радости родителям, счастья Вашей семье.
Go to the top of the page
 
+Quote Post
ek74
сообщение Jun 19 2006, 08:22
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 81
Регистрация: 4-08-05
Из: г. Саратов
Пользователь №: 7 351



Я появился и готов ответить на Ваши вопросы.

Цитата(Jools @ Jun 15 2006, 16:52) *
Ну и поздравляю с рождением дочери.
Здоровья ребенку, радости родителям, счастья Вашей семье.


Спасибо !
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th July 2025 - 20:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01433 секунд с 7
ELECTRONIX ©2004-2016