1) Можно ли заполнить элементы m (0, 1), m (0, 2) ... m (0, N) с некоторым значением вне процесса?
2) Возможно ли присвоить 1D массив (диапазон от 1 до N) одной строке двумерного массива (также вне процесса)?
Да, это возможно. Я приведу только пример загрузки новой строки. Обратите внимание, что этот пример для N = 4, метод может быть непрактичным для больших массивов.
Также обратите внимание, что это позволяет только указывать индексы.
entity foo is
constant N: natural := 4;
end entity;
architecture fum of foo is
type MATR is array(natural range 1 to N, natural range 1 to N) of natural;
type col is array (natural range 1 to N) of natural;
constant f:col := (1,2,3,4);
signal m: MATR;
begin
m <= (1 => (1 => f(1), 2 => f(2), 3 => f(3), 4 => f(4)),
2 => (1 => m(2,1), 2 => m(2,2), 3 => m(2,3), 4 => m(2,4)),
3 => (1 => m(3,1), 2 => m(3,2), 3 => m(3,3), 4 => m(3,4)),
4 => (1 => m(4,1), 2 => m(4,2), 3 => m(4,3), 4 => m(4,4)));
end architecture;
(И, возможно, ваш вопрос (ы) должен быть немного более четко для ваших целей ответ не может быть практически.).
Я видел, что вы приняли мой ответ в качестве решения. Какие цепочки инструментов вы используете? Мне интересны синтетические доказательства для цепочки инструментов Vivado или Quartus II. – Paebbels
Я использую Xilinx 14.4, ваш код работает. Благодарю. – user3479125