FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
6204 Discussions

Is there any way we can initialize/pre-load HBM memory with the dataset we want to use?

HSuh01
Beginner
1,653 Views

Device: 1SM21BHU2F53E2VGS1 (Stratix 10 MX)

Quartus version: 19.2 (19.4 is possible to use)

Connection to host PC from FPGA: JTAG through FPGA Blaster II (USB cable)

 

Hi, we want to preload HBM memory with some dataset so that we can process that data on FPGA. Is there any way to initialized HBM memory with hex file or binary file? Like .hex file or .mif file it used to be there for this purpose?

 

Thank you.

HSuh.

0 Kudos
5 Replies
HSuh01
Beginner
1,484 Views

The question is for initializing "actual" HBM memory on Stratix 10 MX board. Not for the simulation.

0 Kudos
Deshi_Intel
Moderator
1,484 Views

Hi HSuh,

 

Short answer is NO due to HBM IP need to perform calibration for every power up cycle.

 

Even if we have a way to pre-load the data to memory, it will be overwritten by pre-define training data used in calibration process.

 

Thanks.

 

Regards,

dlim

0 Kudos
HSuh01
Beginner
1,484 Views

Thanks for the answer and help. But then, how do we initialize HBM? There must be some way of doing it. 

 

I am currently looking into the design example AN881, which has DMA IP, PCIe Hard IP and HBM interface/controller IP. 

Isn't it there for the communication between host PC's CPU and HBM through PCIe connection? 

 

By using those IPs, we can give a DMA module some kind of commands that can initialize the HBM memory with dataset we want on the host side. 

 

This will happen after the configuration and calibration finished. Since writing into the HBM thorugh PCIe using DMA module will happen in the USER mode, it won't be affected by the calibration process and the FPGA will retain what we write into the HBM. Isn't it?

 

Thank you

 

Best,

Han-sok.

0 Kudos
Deshi_Intel
Moderator
1,484 Views

Hi Han-sok,

 

Now i understand the difference between your definition of HBM2 initialization vs mine.

 

My understanding of HBM2 initialization is during FPGA power up, HBM2 IP will initialize HBM2 chipset and then perform calibration. Once calibration completed and successful, user can then perform write/read operation to HBM2

 

Your understanding of HBM2 initialization in my opinion will be the user mode HBM2 write/read operation.

 

I visualize what you are trying to perform is as below :

  • Store some pre-defined data in FPGA on chip memory
  • Power up FPGA and boot into Linux, PCIe driver will then control DMA IP to copy on chip memory data to HBM2

 

Unfortunately, Intel FPGA doesn't provide customized service on PCIe driver design.

 

Perhaps you want to consult on other active PCIe forum to get advise on how to do it.

 

Thanks.

 

Regards,

dlim

 

0 Kudos
Deshi_Intel
Moderator
1,484 Views

Hi Han-sok,

 

It's been a while since we last communicated. I hope I explained our difficulty on providing customized design service.

 

Hopefully you manage to find help from other PCIe forum.

 

For now, I am setting this case to closure.

 

Thanks.

 

Regards,

dlim

0 Kudos
Reply