[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
ну да бог с ним,
если s2 описать как array(1 to 4) of std_logic_vector(1 to 4)
то можно s1(2 to 3)=s2(2)(1 to 2)
в конкретном случае так можно, но фантазия легко подсказывает варианты, в которых проще описать ситуацию двумерными или трехмерными массивами (например LRU)
понятно, что вообще многомерные массивы баловство и индекс можно вычислять, но понятность описания - имхо важное свойство языка
ну а объявлять незаконстрейненный тип чтобы потом создать всего один объект такого типа - я смысла не вижу
то есть
type triangl_array is array (integer range ) of std_logic_vector(8 downto 0);
signal tmp : triangl_array(1 to 12);
имхо ==
type triangl_array is array (1 to 12) of std_logic_vector(8 downto 0);
signal tmp : triangl_array;
E-mail: info@telesys.ru