Цитата(Мур @ Jul 26 2017, 17:59)

Столкнулся с проблемой, когда потребовалось изменить ТЗ и беззнаковой математики (к которой привык) оказалось не достаточно.
Суть в том, что нужен переход в знаковую математику(когда из входного сигнала вычитаю средний уровень).
Заявил в начале
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 - сигнал...
Народ! Ткните носом, какой инструментарий взять, примеры посмотреть..... ,чтобы потом полученный знаковый код еще и откалибровать...
Дома сооружу пробный бенч для прогона вариантов, чтобы закрепить в голове новые знания....
Спасибо!
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;
Не стоит смешивать первое со вторым. "Стоковой" считается именно numeric_std, но она в некотором смысле более избыточная по обвязке этой самой знаковой и беззнаковой арифметики. Так что выбирайте сами, но что-то одно.
Скорее всего от сюда и ошибка, т.к. данный тип фигурирует и там и там. Ну и пусть меня поправят, если что, но для сложения и вычитания нет разницы между знаковыми и незнаковыми операндами с точки зрения результата. Разница лишь в трактовке этого самого результата и отлавливании переполнений.