Forum Discussion

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

HLS i++ style IP generation with oneAPI for RTL IP integration in Quartus

Hello, I am new to the tool chain and was wondering if there was a method to generate RTL IP to integrate in Quartus Prime Pro in similar way to HLS i++ compiler but with oneAPI, as the former is be...
  • whitepau_altera's avatar
    1 year ago

    > To take a concrete example, I adapted the add_oneapi example to compute a single precision floating-point mul add (that would use only 1 DSP in Quartus using the dedicated IP). So to the best of my knowledge, the invocation and data interface should be streaming pipes, but it creates some extra logic shown in the report (to handle pipes or avalon mm supposedly as with directive -Xsdsp-mode=prefer-dsp it should use internal registers of the DSP and perform all computation in the DSP slice).

    Can you please share the code you wrote? I am not sure I understand what you are trying to describe.

    In general though, in i++, you could describe a simple adder like this:

    component
    int add(int a, int b) {
        return a + b;
    }

    This would give you an IP that had two inputs synchronized to a start/busy handshake, and a single output synchronized to a done/stall handshake.


    If you want to get a similar IP with SYCL HLS, you specify a streaming invocation interface using a kernel property, and streaming data interfaces using pipes.