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?
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:
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?
You may follow the link provided https://www.intel.com/content/www/us/en/programmable/support/support-resources/support-centers/openc... 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:
@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.
@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.
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.
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.