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

 
 
> Поменять знак числа, как бы попроще?
alexPec
сообщение Oct 21 2010, 13:09
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Добрый день. Такая задачка встала. Надо поменять знак числа с "-" на "+". Число 13-ти рязрядное, старший бит знаковый. Вроде все просто - инвертировать и прибавить 1, но вот сумматор 12-разрядный ставить чтобы знак поменять жаба душит. Может попроще можно?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Serhiy_UA
сообщение Oct 21 2010, 13:14
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(alexPec @ Oct 21 2010, 16:09) *
Добрый день. Такая задачка встала. Надо поменять знак числа с "-" на "+". Число 13-ти рязрядное, старший бит знаковый. Вроде все просто - инвертировать и прибавить 1, но вот сумматор 12-разрядный ставить чтобы знак поменять жаба душит. Может попроще можно?

Только проинвертировать. Тогда будет ошибка на единицу в младшем 13-м разряде, которую иногда можно простить.
Go to the top of the page
 
+Quote Post
alexPec
сообщение Oct 21 2010, 13:21
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(Serhiy_UA @ Oct 21 2010, 17:14) *
Только проинвертировать. Тогда будет ошибка на единицу в младшем 13-м разряде, которую иногда можно простить.

Нельзя прощать, проверял на модели, такое прощение выливается в итоге в уменьшение соотношения сигнал/шум с 40 до 37 дБ - это уже не простительно.
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Oct 21 2010, 13:51
Сообщение #4


Знающий
****

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



Неужели сумматор - это так много?

А вообще, если дальше где-нибудь это число складывается/вычитается с чем-нибудь, то можно заменить операцию на обратную, и знак скомпенсируется.

Думаю, синтезатор это сам соптимизирует.
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Oct 21 2010, 14:04
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(Koluchiy @ Oct 21 2010, 17:51) *
Неужели сумматор - это так много?

А вообще, если дальше где-нибудь это число складывается/вычитается с чем-нибудь, то можно заменить операцию на обратную, и знак скомпенсируется.

Думаю, синтезатор это сам соптимизирует.

Если решается цос задача, например, умножение синуса на сигнал, то инвертирование можно сделать на dsp слайсе, который производит умножение. Хотя ресурсов не так много надо, как правило, сумматор делается на тех же лутах, что и инвертор, если разрядность не большая.
Go to the top of the page
 
+Quote Post
alexPec
сообщение Oct 21 2010, 14:59
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Спасибо всем. Скомпенсировать единицу действительно дальше можно.
Go to the top of the page
 
+Quote Post
des00
сообщение Oct 21 2010, 15:26
Сообщение #7


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(alexPec @ Oct 21 2010, 08:09) *
Добрый день. Такая задачка встала. Надо поменять знак числа с "-" на "+". Число 13-ти рязрядное, старший бит знаковый. Вроде все просто - инвертировать и прибавить 1, но вот сумматор 12-разрядный ставить чтобы знак поменять жаба душит. Может попроще можно?

для хилых и латекса можно не бояться использоваться сумматор, т.к. он стоит после лютов, а слайс вы все равно используете. А вот для альтеры красивое решение, с помощью свойств dffeas есть на этом форуме. Используйте поиск %)


--------------------
Go to the top of the page
 
+Quote Post

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

 


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


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