Спустя 2 года опять вернулся к вопросу.
Собрал процессор. Помимо on_chip memory для данных и кода добавил еще один модуль test_onchip на 4096 байт с параметрами, приведенными на картинке.

В получившемся модуле имеется 2 Avalon MM Slave интерфейса, 2 клока и 2 резета.
Один интерфейс я подключаю к CPU, второй экспортирую.
Таким образом, собранный процессор содержит следующие порты:
test_onchip_s2_address : in std_logic_vector(11 downto 0); -- address
test_onchip_s2_chipselect : in std_logic; -- chipselect
test_onchip_s2_clken : in std_logic; -- clken
test_onchip_s2_write : in std_logic; -- write
test_onchip_s2_readdata : out std_logic_vector(7 downto 0); -- readdata
test_onchip_s2_writedata : in std_logic_vector(7 downto 0); -- writedata
test_onchip_clk2_clk : in std_logic; -- clk
test_onchip_reset2_reset : in std_logic; -- reset
test_onchip_reset2_reset_req : in std_logic; -- reset_req
Правильно ли я понимаю, если теперь какой-либо мой аппаратный модуль запишет данные по адресу от 0 до 4095 через экспортированный интерфейс, то в коде процессора я смогу к ним обращаться как к переменной?