Гвоздик
Feb 9 2006, 17:27
Чисто теоретический вопрос: возможно ли стандартными возможностями языка VHDL описать умножитель/делитель чисел с плавающей точкой? С фиксированной я сначала сигналы в числа преобразовывал, затем их умножал/делил, как обычно (* или /), затем обратно в сигналы преобразовывал для выдачи на ножки ввода вывода. Возможно ли также дробные числа на сигналы перемножать с последующим округлением в целые числа, а затем в сигналы?
Laptop
Feb 10 2006, 07:32
Если хочешь выполнять арифментические операции для сигналов в IEEE-754, то все придется писать самому. А так конечно можно, только очень неэффективно и проще описать умножитель или делитель самому на VHDL. Если важна простота, а не скорость и площадь, то пользуйся встроенными.
Гвоздик
Feb 10 2006, 09:52
Это радует. А не мог ли кто-нибудь привести небольшой пример, например, умножения сигнала (16 разрядов) на дробное число и получения сигнала опять. Хотя бы несколько строк для понимания используя стандартные возможности VHDL?
Если Вам нужно именно умножение целых чисел на дробный множитель, то я делал так (множитель у меня был постоянно один и тот же): допустим мой дробный множитель 0.3, я домножал его, например, на 1024 (на калькуляторе), для этого примера должно получиться 307, после этого все входные числа домножаю на 307, а затем у результата выкидываю 10 младших бит, что эквивалентно делению на 1024.
Возможно способ не самый простой и красивый (точнее я в этом уверен

), но я сам пока начинающий
Гвоздик
Feb 14 2006, 18:03
Всем спасибо, попробую прошить умножитель дробных чисел в "железе", посмотрим кто быстрее умножает - ПЛИС или DSP.
Цитата(Гвоздик @ Feb 14 2006, 18:03)

Всем спасибо, попробую прошить умножитель дробных чисел в "железе", посмотрим кто быстрее умножает - ПЛИС или DSP.
Имхо сравнение несравнимого... Ценность ПЛИСов не в этом. Может быть DSP и побыстрее (не знаю, не работал), но на одной хорошей ПЛИСе я могу собрать кучу умножителей. А если то же делать на DSP? Ставить кучу чипов? Дорого обойдется...
Гвоздик
Feb 17 2006, 07:56
С этим вопросов нет, хотелось бы увидеть вот что:
use XXXXXX.XXXXX - подключили библиотеку (какую?)
...........
digit_1 : real;
digit_2 : real;
digit_3 : real;
...........
digit_3 = digit_1 * digit_2;
Так можно делать вообще? Т.е. не приводя к целочисленной арифметике и не кодируя свои функции умножения дробных чисел.
Я о подобном не слышал, но думаю (из-за роста емкости чипов) в ближайший год-два наверняка сами синтезаторы начнут с плавучку синтезировать.
jericho
Mar 7 2006, 08:46
В ксайлинксе <=6.1, по крайней мере, синтезатор не сможет это синтезировать.
Он не сможет и в 8.2 (когда выйдет) и в synplify и в leonardo
Гвоздик
Mar 9 2006, 10:59
Тогда как народ с дробными числами работает? Приводит все к целочисленным вычислениям или кодирует свои подпрограммы арифметики для дробных чисел? Я просто с этим еще не сталкивался, подскажите кто сможет.
Плавучка это "буржуазные" замашки последних лет (на FPGA), всю жизнь люди обходились оперециями с фиксированной точкой.
jericho
Mar 16 2006, 08:28
Между прочим, в Веб-паке 8.1 есть генератор ядер и в составе его есть ядро Floating-point 1.0. Может складывать, вычитать, умножать, делить, сравнивать, и вычислять квадратный корень.
Цитата(3.14 @ Feb 18 2006, 01:41)

Я о подобном не слышал, но думаю (из-за роста емкости чипов) в ближайший год-два наверняка сами синтезаторы начнут с плавучку синтезировать.
Думаю будут аппаратная плавующая точнка, как блоки уманажителей в спартане
AndrewGT
Mar 31 2006, 17:48
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.