Практически не имею опыта работы с VHDL и Vivado, поэтому пытаюсь изучить даже самые простые вещи. Я делаю массив VHDL, как показано ниже:
type reg is array (0 to 15) of STD_LOGIC_VECTOR (15 downto 0);
signal reg_file : reg;
В моем коде VHDL у меня есть сброс, который выполняет следующие действия. (не весь корпус, а только часть сброса.
begin
process(Clock,Reset)
begin
if (Reset = '1') then -- Reset register values to default values
reg_file(0) <= x"0000";
-- reg_file(1) <= x"0001";
reg_file(2) <= x"0000";
reg_file(3) <= x"0000";
reg_file(4) <= x"0000";
reg_file(5) <= x"0000";
reg_file(6) <= x"0000";
reg_file(7) <= x"0000";
reg_file(8) <= x"0000";
reg_file(9) <= x"0000";
reg_file(10) <= x"0000";
reg_file(11) <= x"0000";
-- reg_file(12) <= x"0000";
reg_file(13) <= x"0000";
reg_file(14) <= x"0000";
reg_file(15) <= x"0000";
Я закомментировал reg_file (12), потому что хочу инициализировать его определенным значением. Я также хочу инициализировать reg_file (1) равным единице (а затем оставшиеся элементы массива равными нулю). Приведенный выше код работает, когда есть сигнал сброса, но я не уверен, как инициализировать только определенные элементы массива.
Есть ли способ инициализировать определенные элементы массива VHDL? Все примеры, которые я видел, относятся к инициализации всего массива.