Jump to content

    

andrew_b

Свой
  • Content Count

    2176
  • Joined

  • Last visited

Community Reputation

0 Обычный

About andrew_b

  • Rank
    Гуру

Информация

  • Город
    Воронеж

Recent Profile Visitors

7455 profile views
  1. С векторами ограничений на разрядность нет. Речь идёт о типе integer.
  2. Симулятор не видит реализацию модуля lcell. Нужно подключить какую-то квартовскую библиотеку, где этот lcell реализован.
  3. Если вы всё берёте на торрентах, то какя вам разница?
  4. А что тут раскрывать? Стандарт гарантирует 32-битные целые. Можно больше, но это на усмотрение вендоров. Фактически все и поддреживают только 32 бита. Теперь у нас есть VHDL-2019, а он устанавливает 64-битные целые, но поддержку этого стандарта ждать мы будем долго. Очень долго.
  5. А недавно официально вышел VHDL-2019, это прошло незамеченным. https://groups.google.com/forum/#!topic/comp.lang.vhdl/3O7VYoNtiuo Только толку с той новости, если 2008 вендоры толком не поддерживают.
  6. use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; USE ieee.numeric_std.ALL; Вот это всё вместе зачем? Тут что-то явно лишнее. Количество единиц в 4-х битах считается в одном ЛУТе. Это простая логическая функция 4 переменных, которая ложится в 4-входовый ЛУТ как влитая. Тут вообще нет никаких сумматоров. Дерево простых сумматоров (carry-propagation) не лучшая идея. Если надо просуммировать много чисел, лучше воспользоваться деревом Уоллеса, состоящим из сумматоров с сохранением переносов (CSA, carry-save adder). Там элементарная комбинаторика за исключением последнего сумматора. Upd. "Количество единиц в 4-х битах считается в одном ЛУТе". Тут я поспешил. Да, таки 3 ЛУТа, но не сумматор.
  7. Извините, но код страшен как моя смерть.
  8. Типы надо использовать по назначению. Если это математика, то unsigned и signed без вариантов. Причём их стандартного пакета numeric_std, а не из проприетарного legacy std_logic_arith и Co. unsigned и signed это однозначно числа. std_logic_vector в общем случае числом не является. Это просто массив бит. Ещё он используется в интерфейсах в целях унификации.
  9. Да. Только зачем угадывать, если можно посмотреть в код пакета. Так об этом и тема.
  10. A(i) -- элемент массива A. Массив имеет тип unsigned. Внимание, вопрос: какой тип имеет A(i)?
  11. Где? Сезон отпусков закончился, телепаты вышли на работу. Вопрошающий складывает std_loigc'и, поэтому ошибка очевидна.
  12. В отличие от Верилога, где вся математика прибита гвоздями намертво сидит в ядре, в VHDL математика вынесена во внешние библиотеки (то самый numeric std, который оперирует типом std_logic_vector, который в свою очередь тоже определён во внешней библиотеке). Видимо, стандартизаторы не посчитали нужным определить функцию сложения битов. Наверное, эта операция довольна редка. Написать функцию самому не составит труда. Нельзя. В стандарте нет функций сложения std_logic.