The easiest solution would probably to have multiple slave ports in your unit, one for each processor. I'm not to clear on how avalon work to be able to do something more clever. Maybe someone else on this forum has a better idea.
I don't have time at the moment to sit down and work on your problem, unfortunatly I've got problems to work on myself :)
I guess a start would be to read about SOPC components and the avalon bus . If you do a sopc component it will take care of all the avalon code for you. You just add a simple interface in your vhdl code, it could look something like this
entity noc_wrapper is
port (
-- Avalon interface (slave 0)
clk : in std_logic;
rst : in std_logic;
adr : in std_logic_vector(x downt 0);
wr : in std_logic;
wr_data : in std_logic_vector(31 downto 0);
rd : in std_logic;
rd_data : out std_logic_vector(31 downto 0);
-- Avalon interface (slave 1)
-- add a duplicate of each extra process
-- NoC interface
);
end entity;
.................
some code to mux the traffic