Issue connecting SmartHLS AXI4 module to MSS via CoreAXI4Interconnect

Hi everyone,

I am currently working on a project using the BeagleV-Fire board and Libero SoC. I’m trying to create a simple adder module using SmartHLS and connect it to the MSS (RISC-V CPU) on the FPGA fabric.

  1. My SmartHLS Code I wrote a simple C code that adds two integers and successfully compiled it into a Verilog module using SmartHLS. Here is the source code:
#include <stdio.h>

void fpga_adder(int a, int b, int *sum) {
	#pragma HLS function top
	#pragma HLS interface argument(a) type(axi_target)
	#pragma HLS interface argument(b) type(axi_target)
	#pragma HLS interface argument(sum) type(axi_target) num_elements(1)

	*sum = a + b;

}

int main() {
	int res = 0;
	fpga_adder(10, 20, &res);
	printf("FPGA Adder Result: %d\n", res);
	return 0;
}

  1. Integration in Libero SoC After generating the Verilog and Tcl files, I cloned the official BeagleV-Fire gateware from the repository: git clone Making sure you're not a bot!

I executed the Tcl script to import my module into the BVF_RISCV_SUBSYSTEM. Since the PF_SOC_MSS’s FIC_0_AXI4_INITIATOR port was already in use, I tried to add a CoreAXI4Interconnect (v2.9.100) to arbitrate between the existing peripheral and my new adder module.
I made interconnector that has 1 master, 2 slaves pins.

  1. The Problem I configured the Interconnect and tried to make the connections, but I am facing a connection issue in SmartDesign:

MSS Side: FIC_0_AXI4_INITIATOR (Output from CPU) has 37 members.
Interconnect/Module Side: The connection point I’m trying to use seems to have 44 members.

Due to this mismatch in the number of members (37 vs 44), SmartDesign prevents me from connecting the MSS Initiator to the Interconnect (or the module). I suspect this is due to extra signals generated by SmartHLS or the Interconnect default settings.

I have tried adjusting the Interconnect configuration (1 Master/2 Slaves vs 2 Masters/1 Slave), but I haven’t been able to resolve the member mismatch error.

Could anyone advise on the correct CoreAXI4Interconnect configuration to bridge the PF_SOC_MSS (FIC_0) and a SmartHLS generated AXI4 Target? Specifically, how can I match the signal interface to the MSS’s 37-pin standard?

Any help or guidance would be greatly appreciated.

Thanks in advance!

Hey, I am facing the same issue connecting the PF_SOC_MSS(FIC_0_AXI4_INITIATOR) to the CoreAXI4Interconnect.
Did you get any solution to this?

Especially for HLS related questions, I would recommend you try the Microchip forums instead;
the audience there is just that much larger…

For me this is not entirely SmartHLS problem.

I cloned the gateware repo and built the reference design project. In Libero, when I tried to customize it adding CoreAXI4Interconnect to the PF_SOC_MSS, the same problem is occuring as same as stated in the previous post.
Even though I tried to reconfigure the MSS Smartdesign component and tried to import the new generated one in the design, the Libero is continuously crashing.

In that case, I think it would be in everyone’s interest if you made a new
topic and attached some more information, instead of just hijacking someone else’s topic.

I’ll be more than happy to help you with your questions and direction then.