Custom AHB Slave Integration in NOEL-V Generic (GRLIB GPL 2025.2)

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:

  1. The recommended procedure for adding a custom external AHB slave to noelv-generic.

  2. Whether ahb_membar or ahb_iobar should be used for a simple register-based peripheral.

  3. 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.