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

 
 
> Вопрос про деление, как реализовать?
prom
сообщение Mar 3 2005, 15:35
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 49
Регистрация: 12-01-05
Пользователь №: 1 912



Возникла необходимость делить одно число на другое. ISE упорно ругается, что числа должны быть степенью 2. Подскажите, гуру, как реализовать (желательно меньшей кровью) деление с получением целой и дробной части (дробной до любого знака)... Пока сижу пыхчу сам smile3046.gif

Заранее спс
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
belena7
сообщение Mar 17 2005, 09:04
Сообщение #2





Группа: Новичок
Сообщений: 10
Регистрация: 8-03-05
Пользователь №: 3 147



[quote=prom,Mar 3 2005, 18:35]
Возникла необходимость делить одно число на другое. ISE упорно ругается, что числа должны быть степенью 2. Подскажите, гуру, как реализовать (желательно меньшей кровью) деление с получением целой и дробной части (дробной до любого знака)... Пока сижу пыхчу сам smile3046.gif

ya ispol'zuyu serial'niy delitel'(t.e. takt na bit ratio) esli sakjesh' 4to nujno polu4it' mogu pomo4'
Go to the top of the page
 
+Quote Post
prom
сообщение Mar 20 2005, 10:36
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 49
Регистрация: 12-01-05
Пользователь №: 1 912



Цитата(belena7 @ Mar 17 2005, 12:04)
ya ispol'zuyu serial'niy delitel'(t.e. takt na bit ratio) esli sakjesh' 4to nujno polu4it' mogu pomo4'


очень интересно... у меня после 2-х дней мучений получилось делить на ядре ISE (pipelined divider). При этом максимальное к-во тактов на деление получилось 8 (там можно только 1-2-4-8). При этом дивайдер (integer remainder, unsigned ) использует порядка 600 слайсов, что многовато (при 1 такте почти весь спартан 3 скушал blink.gif ).

Вообще читал алгоритмы деления и удивлялся - все сводится к умножению и вычитанию - откуда такие дикие размеры.

В моей задаче скорость деления вообще не критична (хоть 1000 тактов) - так что Вашей идеей заинтересован. Поясню что надо:

Число (32 бита) делится на переменную (которая храниться в регистре и может меняться). Результат деления необходим до 1-го десятичного знака (кстати будет интересно алгоритм floating point).

Как реализовал пока сам:
1. берем число и делим
2. запоминаем quotient
3. remainder умножаем на 10
4. делим рез-т на начальный дивизор
5. quotient2 прибавляем к п.2
получаем таким образом результат деления с точностью до 1 десятой
если дальше, то надо повторять до позеленения...

При этом плохо, что я не предусмотрел возможность переполнения. Т.е. пусть dividend изначально равен 2^33-1. Тогда максимальный quotient будет = dividend-1. При этом использовать дивайдер 32 на 32 бита глупо. Если я не ошибаюсь на FP процах все реализуется через 8-ми битные делители. Поправьте, коли не так...

Короче продолжаем дебаты )))
Всем спс за внимание
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- prom   Вопрос про деление   Mar 3 2005, 15:35
- - DmitryR   На www.opencores.org есть некоторое количество гот...   Mar 3 2005, 15:40
- - acex2   Цитата(prom @ Mar 3 2005, 12:35)Возникла необ...   Mar 3 2005, 16:14
|- - prom   Цитата(acex2 @ Mar 3 2005, 19:14)...могу приа...   Mar 3 2005, 16:44
|- - acex2   Цитата(prom @ Mar 3 2005, 13:44)Цитата(acex2 ...   Mar 3 2005, 18:17
- - Esquire   ЦитатаТам 27 Мб, залью как-нибудь остальное на FTP...   Mar 4 2005, 09:34
- - ministrel   Залил все главы про различные методы деления (глав...   Mar 4 2005, 11:52
|- - acex2   Цитата(ministrel @ Mar 4 2005, 08:52)А у меня...   Mar 4 2005, 13:02
- - ministrel   Цитата(acex2 @ Mar 4 2005, 16:02)Цитата(minis...   Mar 4 2005, 19:03
- - alex_elect   К acex2 А не могли бы Вы туда же залить Part VI: F...   Mar 5 2005, 14:24
|- - acex2   Цитата(alex_elect @ Mar 5 2005, 11:24)К acex2...   Mar 5 2005, 14:45
|- - acex2   Надоело возиться с глюками DocumentExpress, поэтом...   Mar 12 2005, 15:09
- - Wilde   Можно умножить на A и разделить на B. где B- степе...   Mar 18 2005, 18:34
- - acex2   Цитата(Wilde @ Mar 18 2005, 15:34)Можно умнож...   Mar 18 2005, 21:07


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:59
Рейтинг@Mail.ru


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