|
Floating and fixed point arithmetic in FPGA |
|
|
|
Aug 30 2009, 17:34
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(DmitryR @ Aug 30 2009, 20:50)  А зачем вам, скажите, литература? На opencores есть готовые реализации, скачайте и изучите. Реализации уже скачал - изучаю. Просто хочется рассмотреть не только конкретный практический подход, но и теоритическую часть. Алгоритмы, оптимизацию, рассчеты, сравнительный анализ и т.д.
--------------------
|
|
|
|
|
Aug 30 2009, 17:49
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(des333 @ Aug 30 2009, 17:56)  Подскажите, кто знает, литературу по сабжу. А то, все что пока удалось найти, это основные мат. сведения + простые показательные примеры. Интересует более подробный, доскональный и глубокий анализ данной темы. Не верю, что нет серьезных изданий по сабжу. Не буду утверждать, что нижеперечисленные книги являются образцом досконального анализа и уж тем более, что они обладают необходимой глубиной, но тем не менее, наверно их все-таки стоит полистать: 1. Арифметика цифровых машин (М.А.Карцев) 2. Основы машинной арифметики (А.М.Шауман) 3. Arithmetic and Logic in Computer Systems (Mi Lu) 4. SYNTHESIS OF ARITHMETIC CIRCUITS: FPGA, ASIC, and Embedded Systems Все книги легко ищутся в сети, а для более глубокого изучения всегда есть гугл, ключевых фраз для поиска, после прочтения вышеперечисленного, должно хватить с избытком
|
|
|
|
|
Aug 31 2009, 06:00
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(des00 @ Aug 31 2009, 07:07)  раскажите для повышения образованности, а какую теорию и алгоритмы вы имели в виду ? правила всех арифметических операций однозначно вытекают из определения форматов чисел. Неужели эта область настолько простая, что не затронута ни в какой литературе? Лично я предпологал, что у этих задач, как и у всех других, имеются разные подходы и способы решения. Может быть, я не прав. Просто я про обычные счетчики видел больше информации, чем про вычесления с плавающей запятой. Цитата(des00 @ Aug 31 2009, 07:07)  И какой именно сравнительный анализ вы имели в виду? Сравнивать что лучше плавучка или фиксированная точка в общем смысле? но на этот вопрос можно дать однозначный ответ %) Если Вас не затруднит, дайте И скажите, в каких областях тогда используется оставшийся, явно худший в общем смысле, вариант?
--------------------
|
|
|
|
|
Aug 31 2009, 07:07
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(des333 @ Aug 31 2009, 01:00)  Неужели эта область настолько простая, что не затронута ни в какой литературе? фиксированная точка специальной областью не является, ее арифметика выводиться на бумажке минут за 5. Если выводить нет желания то вот статья фиксированная запятаякак видно с точки зрения вычислений, ничем не отличается от целочисленой арифметики. плавающая точка это много сложнее, из простого анализа формата числа видны требования к реализации арифиметики. Цитата Просто я про обычные счетчики видел больше информации, чем про вычесления с плавающей запятой. насколько я знаю, на это есть отдельный стандарт, в нем все написано как и что делать с плавающей запятой. На счетчики такого стандарта нет %) Цитата Если Вас не затруднит, дайте И скажите, в каких областях тогда используется оставшийся, явно худший в общем смысле, вариант? Это же очевидно, по затратам ресурса плавающая точка на порядки опережает фиксированную, по требуемой производительности тоже (если не брать случай линейного конвейера). Вот из вики Цитата Преимущество использования представления чисел в формате с плавающей запятой над представлением в формате с фиксированной запятой (и целыми числами) состоит в том, что можно использовать существенно больший диапазон значений при неизменной относительной точности. Например, в форме с фиксированной запятой число, занимающее 8 разрядов в целой части и 2 разряда после запятой, может быть представлено в виде 123456,78; 8765,43; 123,00 и так далее. В свою очередь, в формате с плавающей запятой (в тех же 8 разрядах) можно записать числа 1,2345678; 1234567,8; 0,000012345678; 12345678000000000 и так далее.
--------------------
|
|
|
|
|
Aug 31 2009, 15:34
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Я бы не стал так огульно хаять плавающую точку  Хотя бы только потому, что если абстрагироваться от конкретного IEEE-шного формата (и не использовать его во внутреннем представлении, а носить на шинах все в распакованном виде), то не так уж и много аппаратуры надо наворотить рядом - для умножителя/делителя нужно сделать рядом вычисление суммы/разностей порядков плюс некоторые костыли для нормализации, а для суммы/разности - такой себе barrel-shift'ер, управляемый разностью порядков для приведения мантисс к одному порядку. Опять же, если есть уверенность, что не будет всяких машинных нулей и бесконечностей, можно убрать логику обработки крайних случаев. Я это к тому, что если очень надо, то можно и реализовать плавающую запятую. Конечно, если вообще хочется IEEE-формата, тогда да - там железа надо наворотить некисло.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Aug 31 2009, 16:05
|

Участник

Группа: Свой
Сообщений: 62
Регистрация: 2-04-09
Из: Москва
Пользователь №: 47 059

|
Цитата(Rst7 @ Aug 31 2009, 19:34)  Я бы не стал так огульно хаять плавающую точку  Хотя бы только потому, что если абстрагироваться от конкретного IEEE-шного формата (и не использовать его во внутреннем представлении, а носить на шинах все в распакованном виде), то не так уж и много аппаратуры надо наворотить рядом По ощущениям, разные крутые GPU (там где много вычислителей с плавающей точкой) так и делают, снаружи оно поддерживает все стандарты, а внутри злые и очень продуманные алгоритмы (VLIW, или вообще что-то свое). Но для этого нужно как минимум вникнуть во все детали и хорошо во всем разбираться. Цитата(Гвоздик @ Aug 31 2009, 19:00)  Некоторое время назад я тоже столкнулся с задачей вычисления алгоритма с дробными числами на ПЛИСине. По моим практическим наблюдениям опенкоресные и закрытые от копирования умножители, сумматоры и делители чисел с плавающей запятой работали слишком медленно, чтобы их можно было серьезно применять. Решением оказалось применение Матлаба в связке с зайлинксовским "AccelEDA". Все исходные данные и результат автоматически приводились Матлабом к целым числам соотвествующей разрядности. Точность вычислений терялась, но в пределах ТЗ. Зато написать все и отмоделировать можно очень быстро. ИМХО, только как вариант "вставил и забыл", что-то "расширяемое" так сделать не получится. Хотя, посмотреть на то, как будет считать матлаб, интересно (а может даже пригодится)
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|