|
Когда появляется знак, я использую бибиотеки..., "Жизнь диктует свои законы"..Подскажите выход |
|
|
|
Jul 26 2017, 14:59
|

Знающий
   
Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847

|
Столкнулся с проблемой, когда потребовалось изменить ТЗ и беззнаковой математики (к которой привык) оказалось не достаточно. Суть в том, что нужен переход в знаковую математику(когда из входного сигнала вычитаю средний уровень). Заявил в начале library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; use ieee.numeric_std.all; В интернете посмотрел,- применяют тип signed(15 downto 0) вместо std_logic_vector(15 downto 0). Да не тут-то было!... анализатор кричит, что не понимает этот самый signed - сигнал... Народ! Ткните носом, какой инструментарий взять, примеры посмотреть..... ,чтобы потом полученный знаковый код еще и откалибровать... Дома сооружу пробный бенч для прогона вариантов, чтобы закрепить в голове новые знания.... Спасибо!
|
|
|
|
|
 |
Ответов
|
Jul 26 2017, 15:31
|
Частый гость
 
Группа: Участник
Сообщений: 135
Регистрация: 19-10-13
Пользователь №: 78 795

|
Цитата(Golikov A. @ Jul 26 2017, 18:24)  Еще разница в том как расширять число. когда из Н битного надо сделать Н+М битное. Для беззнаковых добивают нулями, для знаковых Н-1 битом. Ну и конечно сложение Н битных беззнаковых дает Н+1 битный результат. А сложение Н битных знаковых дает Н битный результат. Да, про расширение совсем забыл, но это уже на уровне автоматизма должно быть) А вот на счет второго не совсем понял. Возьмем, скажем 8-битные числа. Для беззнаковых в пределе получаем 255 + 255 = 510 - 9 бит. Для знаковых в пределе получаем 127 + 127 = 254 - те же самые 9 бит - 8 на модуль и 1 на знак.
|
|
|
|
|
Jul 26 2017, 15:56
|
Частый гость
 
Группа: Участник
Сообщений: 135
Регистрация: 19-10-13
Пользователь №: 78 795

|
Цитата(sazh @ Jul 26 2017, 18:50)  Железо про числа ничего не знает. Оно работает с кодами, которые в соответствии с задчей можно представить как числа со знаком или без знака. Если Вы сами заботитесь о расширении разрядной сетки должным образом, то полученный код будет соответствовать Вашим представлением. Можно конечно воспользоваться указаниями синтезатору. Но нужно четко при этом понимать, что должно получиться. Все так, я просто хотел на конкретном примере показать, что не совсем понял, о чем речь. В данном случае, если 9-го бита в железе нет, то переполнение наступит в обоих случаях.
|
|
|
|
|
Jul 26 2017, 16:06
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Цитата(Tausinov @ Jul 26 2017, 18:56)  Все так, я просто хотел на конкретном примере показать, что не совсем понял, о чем речь. В данном случае, если 9-го бита в железе нет, то переполнение наступит в обоих случаях. Если нет расширения разрядной сетки. Возьмем базовый примитив сумматора. Как известно у него разрядность суммы такая же как и разрядность слагаемых. Но у него при этом есть возможность активизировать выход или переноса, или переполнения. В зависимости от того как Вы воспринимаете входные коды. А если нет расширения разрядной сетки, значит Вы не получите правильный результат во всем диапазоне входных кодов.
|
|
|
|
Сообщений в этой теме
Мур Когда появляется знак, я использую бибиотеки... Jul 26 2017, 14:59 Tausinov Цитата(Мур @ Jul 26 2017, 17:59) Столкнул... Jul 26 2017, 15:20 Golikov A. сложите 1 и -1 в тех же 8 битах, знаково
0000_0001... Jul 26 2017, 16:12 Tausinov Цитата(Golikov A. @ Jul 26 2017, 19:12) З... Jul 26 2017, 17:15  sazh Цитата(Tausinov @ Jul 26 2017, 20:15) Это... Jul 26 2017, 17:37 ViKo Цитата(Мур @ Jul 26 2017, 17:59) Столкнул... Jul 26 2017, 17:30 Мур Цитата(ViKo @ Jul 26 2017, 20:30) И я сто... Jul 26 2017, 17:49 GriXa По поводу библиотек, как уже написал Tausinov,
нел... Jul 26 2017, 19:53 Tausinov Цитата(GriXa @ Jul 26 2017, 22:53) шпарга... Jul 26 2017, 20:57  Flip-fl0p Цитата(Tausinov @ Jul 27 2017, 00:57) О, ... Jul 27 2017, 05:10
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|