Application Acceleration With FPGAs
Programmable Acceleration Cards (PACs), DCP, FPGA AI Suite, Software Stack, and Reference Designs
489 Discussions

creating aocx file from Quartus project

anaza3
Novice
2,320 Views

I compiled a kernel by OpenCL compiler and it generated the Quartus project as well. I edited some stuff in the Quartus project. But how can I generate the .aocx file now from the project?

0 Kudos
9 Replies
HRZ
Valued Contributor III
2,307 Views

You cannot do that. OpenCL kernels can only be synthesized into a working aocx file using the standard compilation flow of "aoc". If you want to modify the generated RTL code, C/C++ HLS is probably a better option for you:

https://www.intel.com/content/www/us/en/software/programmable/quartus-prime/hls-compiler.html

0 Kudos
anaza3
Novice
2,302 Views

Then what is the point of creating a Quartus project if I can't use it? Why wouldn't I be able to change the aoc and continue the flow as before? 

Particularly right now I don't want to change the RTL but I want to use chip plan/design partition.  Would that be possible?

0 Kudos
Kenny_Tan
Moderator
2,299 Views

You may follow the link provided https://www.intel.com/content/www/us/en/programmable/support/support-resources/support-centers/opencl-bsp-support.html for instructions as to how you can create/modify an OpenCL BSP.


Note that you cannot connect an OpenCL kernel to an HDL module that needs I/O access since an OpenCL kernel has to be compiled against, and will automatically connect to, the interfaces provided by an existing BSP, and only the BSP can access I/O. You can, however, add your HDL module and associated I/O access to the BSP, and maybe even provide I/O channels to access said I/O inside of the OpenCL kernel.


Your other option, per mention by HRZ is to convert your OpenCL kernel to an HLS kernel and compile it to an HDL module with your own chosen interfaces using the HLS compiler and then connect the generated HDL module to your existing HDL and interfaces. You can find the documents for the HLS compiler here:


https://www.intel.com/content/www/us/en/programmable/products/design-software/high-level-design/intel-hls-compiler/support.html#documentation


0 Kudos
anaza3
Novice
2,286 Views

@Kenny_Tan  Is there any way to use  chip plan/design partition on OpenCL project/aocx file? I have to kernels and I want to enforce their chip location. 

0 Kudos
HRZ
Valued Contributor III
2,281 Views

@anaza3 The point of the Quartus project is to be used by the OpenCL compiler's automatically-generated scripts for placement and routing, it is not supposed to be modified in any way by the users. Theoretically you can read through the numerous TCL scripts generated and used by the OpenCL compiler to figure out the details of the process and potentially modify it; however, this is something that is neither supported nor encouraged by Intel. You can probably achieve your goal much faster using the HLS compiler.

0 Kudos
anaza3
Novice
2,277 Views

@HRZ I am not sure how HLS compiler solves my problem. I have a program written for Intel OpenCL SDK, I don't think HLS can compile it unless I write the program all over again and not use the OpenCL. 

As I said before, I need to use chip planner and partition planner. There should be an easier way than writing the whole program again and retargeting it for HLS. 

0 Kudos
HRZ
Valued Contributor III
2,270 Views

If your OpenCL kernel is Single Work-item, it can be converted to HLS without too much trouble since it is basically some sequential C code plus some pragmas, all of which have an equivalent in HLS. If your kernel is NDRange, however, then yes, you will have to rewrite it completely. The HLS flow is designed for FPGA programmers who are more used to traditional RTL programming and is completely different from the OpenCL flow. I am afraid I don't think there is a straightforward method to achieve what you want.

0 Kudos
Kenny_Tan
Moderator
2,251 Views

HRZ was right, do you have further queries on this?


0 Kudos
Kenny_Tan
Moderator
2,231 Views

We do not receive any response from you to the previous reply that we have provided. Please post a response in the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you with your follow-up questions. 


0 Kudos
Reply