[an error occurred while processing this directive]
|
> 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: info@telesys.ru