[an error occurred while processing this directive]
Про несоответствие типа (+)
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено andrew_b 12 ноября 2003 г. 12:41
В ответ на: я не смог описать (с первой попытки :-) присвоение, но вобщем уже понял, спасибо за советы отправлено yes 12 ноября 2003 г. 10:27

> s1 std_logic_vector(1 to 4)
> s2 array(1 to 4, 1 to 4) of std_logic

> s1(2 to 3)=s2(2,1 to 2)

> такое не идет (несовместимость типов), хотя по науке (и если С++ к ней >приравнять Ж;-) и посмотреть описание std_logic_vector имеем тип > lvalue==rvalue

Это строгая типизация...
Два типа можно определить одинаково, но это будут разные типы! См. определение типов std_logic_vector, signed, unsigned...
Напрямую передать значение переменных в этом случае нельзя, надо делать преобразование...

Сравнение с C/C++ несколько неуместно, поскольку там имя массива --- это указатель, со всеми вытекающими отсюда. Вообще, в C/C++ царит произвол Ж) с типами, массивами, указателями. Это не объект джля подражания Ж)

Можно попробовать
s1(2 to 3) <= std_logic_vector(s2(2,1 to 2)),
хотя скорее всего, не сработает.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru