Forum Discussion

Ali8's avatar
Ali8
Icon for New Contributor rankNew Contributor
1 year ago
Solved

Slave Memory in OneAPI HLS Flow

In intel HLS compiler, we can implement a slave memory inside a component using hls_avalon_slave_memory_argument(N). The slave memory can also be implemented with M20K embedded RAM and can have the same architectural optimizations as all other internal component memories (such as banking or coalescing). With slave memory, a master can access the memory without a component invocation.

I want to implement a slave memory within a kernel using OneAPI HLS flow. Can you direct me to a OneAPI example code that uses slave memories.

4 Replies

  • Hello Ali8!

    The closest thing we have to the old hls_avlaon_agent_memory_argument is the device_global type. There is a code sample here:

    device_global tutorial

    The other option is to create a memory-mapped host interface using a global memory (either using a Shared/Host Unified Shared Memory or an Accessor) and connect it to a BRAM instance in Platform Designer.

  • Ali8's avatar
    Ali8
    Icon for New Contributor rankNew Contributor

    Thank you very much for your reply.

    In case of device_global type, can I use the FPGA memory attributes such as [[intel::numbanks(N)]] , [[intel::private_copies(N)]], etc., to optimize memory accesses from the kernel.

  • Hi @Ali8,


    Great! Good to know that it is working now, with no further clarification on this thread, it will be transitioned to community support for further help on doubts in this thread. Please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support.

    Thank you for the questions and as always pleasure having you here.


    Best Wishes

    BB