[an error occurred while processing this directive]
|
Раньше я писал на верилоге, теперь вот сел за ВХДЛ,
например нужно доопределить знаковый разряд-> Пример:
sum[15:0] <= {5{a(10)}, a[10:0]} + {b[14],b[14:0]};
а как сделать это на ВХДЛ ?
sum(15 downto 0) <= (others => a(a'high)) & a(10 downto 0) + b(b'high) & b(14 downto 0);
не прокатывает, а возможности репликации в ВХДЛ я не нашел. Не расписывать же нужное кол-во бит руками ? :((
И еще есть в ВХДЛ такой аналог верилога как
reg[15:0] <= reg[15:0] ^ {16{reg[15]}};
если делаю
reg <= reg xor (others => reg(reg'high));
говорит про ошибку, но если вести доп.переменную то нормально есть:
temp = (others => reg(reg'high));
reg <= reg xor temp;
???
ЗЫ сильно не пинайте если в что, я только учюсь.
E-mail: info@telesys.ru