Hello,
I am integrating a custom AHB slave into the NOEL-V Generic reference design (GRLIB GPL 2025.2) targeting a Xilinx ZCU102 board.
The custom slave is instantiated in noelvcore.vhd with:
-
hindex = 9
-
haddr = 16#A10#
-
hmask = 16#FFF#
-
nextslv updated accordingly
The slave HCONFIG is:
constant HCONFIG : ahb_config_type := (
0 => ahb_device_reg(VENDOR_CONTRIB, 16#002#, 0, 0, 0),
4 => ahb_membar(haddr, '0', '0', hmask),
others => zero32
);
The module synthesizes successfully and is connected as:
ahb_adder0 : entity work.ahb_adder
generic map (
hindex => ADDER_HSINDEX,
haddr => ADDER_HADDR,
hmask => ADDER_HMASK
)
port map (
rst => rstn,
clk => clkm,
ahbsi => ahbsi,
ahbso => ahbso(ADDER_HSINDEX)
);
A custom APB slave integrated using VENDOR_CONTRIB works correctly and appears in GRMON “info sys”.
However, the AHB slave does not appear to be selected. Accesses to 0xA1000000 using GRMON mem/wmem do not reach the peripheral and reads return zero.
Could someone clarify:
-
The recommended procedure for adding a custom external AHB slave to noelv-generic.
-
Whether ahb_membar or ahb_iobar should be used for a simple register-based peripheral.
-
Any additional files or configuration tables that must be updated besides nextslv, hindex assignment, HCONFIG, and ahbso(hindex) connection.
Environment:
-
GRLIB GPL 2025.2-b4298
-
GRMON4 v4.1.1 Evaluation
-
Xilinx ZCU102
-
RHEL 9
Any guidance would be greatly appreciated.
Thank you.