Перейти к содержанию
    

Есть опыт верификации сопроцессора, работающего с числами в стандарте IEEE 754?

Приветствуются любые соображения по стандарту "плавующей" точки при аппаратной реализации работы с денормализованными числами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствуются любые соображения по стандарту "плавующей" точки при аппаратной реализации работы с денормализованными числами.

 

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

ab=ba

a(b+c)=ab+ac=ba+ca=(b+c)a

ну и так далее. Потом это просто запускалось с остановками и записями тех чисел, что не срослись, с начало выдавались ошибки, потом реже, последняя ошибка была найдена после нескольких часов удачных перемножений. Теперь ошибок вроде нет:)...

Если у вас полный сопроцессор, то можно суда еще сложение, вычитание, деление запихать и так далее... ну и считать, считать, считать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствуются любые соображения по стандарту "плавующей" точки при аппаратной реализации работы с денормализованными числами.

 

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

ab=ba

a(b+c)=ab+ac=ba+ca=(b+c)a

ну и так далее. Потом это просто запускалось с остановками и записями тех чисел, что не срослись, с начало выдавались ошибки, потом реже, последняя ошибка была найдена после нескольких часов удачных перемножений. Теперь ошибок вроде нет:)...

Если у вас полный сопроцессор, то можно суда еще сложение, вычитание, деление запихать и так далее... ну и считать, считать, считать...

 

Такие простые вещи уже отработаны.

Есть си'шная функция, которая эмулирует программно работу сопроцессора, и затем хардверный результат сравнивается с ее результатом.

 

Тут больше вопрос к работе с денормализованными числами и правильностью округления, а также специфичные проблемы стандарта IEEE 754 (Например сколько будет из -0 вычесть -0 или +0 сложить с -0)

 

Те не попадались шаблоны данных для проверки таких вешей? А затем можно в бесконечном цикле рандомно проверять арифметику.

 

В идеале, если такие шаблоны сразу в стандарте команд ARM'a. Ну это мечты... :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствуются любые соображения по стандарту "плавующей" точки при аппаратной реализации работы с денормализованными числами.

 

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

ab=ba

a(b+c)=ab+ac=ba+ca=(b+c)a

ну и так далее. Потом это просто запускалось с остановками и записями тех чисел, что не срослись, с начало выдавались ошибки, потом реже, последняя ошибка была найдена после нескольких часов удачных перемножений. Теперь ошибок вроде нет:)...

Если у вас полный сопроцессор, то можно суда еще сложение, вычитание, деление запихать и так далее... ну и считать, считать, считать...

 

Такие простые вещи уже отработаны.

Есть си'шная функция, которая эмулирует программно работу сопроцессора, и затем хардверный результат сравнивается с ее результатом.

 

Тут больше вопрос к работе с денормализованными числами и правильностью округления, а также специфичные проблемы стандарта IEEE 754 (Например сколько будет из -0 вычесть -0 или +0 сложить с -0)

 

Те не попадались шаблоны данных для проверки таких вешей? А затем можно в бесконечном цикле рандомно проверять арифметику.

 

В идеале, если такие шаблоны сразу в стандарте команд ARM'a. Ну это мечты... :biggrin:

 

 

нет, до таких тонкостей я как то не копал. Одно помню, что в ИЕЕЕ зафиксированы минус бесконечность и плюс бесконечность и в них надо уметь приходить и из них не возвращаться, а вот накопление ошибки при сложении нулей - это проблема скорее программиста а не архитектора, насколько я помню программистическое прошлое:)...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...