Intel® FPGA SDK for OpenCL™ Pro Edition: Custom Platform Toolkit User Guide
ID
683085
Date
3/28/2022
Public
1. Intel® FPGA SDK for OpenCL™ Pro Edition Custom Platform Toolkit User Guide
2. Intel® FPGA SDK for OpenCL™ Pro Edition Custom Platform Toolkit Reference Material
3. Intel FPGA SDK for OpenCL Pro Edition Custom Platform Toolkit Archives
4. Document Revision History for Intel® FPGA SDK for OpenCL™ Pro Edition Custom Platform Toolkit User Guide
1.1. Prerequisites for the Intel® FPGA SDK for OpenCL™ Pro Edition Custom Platform Toolkit
1.2. Overview of the Intel® FPGA SDK for OpenCL™ Pro Edition Custom Platform
1.3. Custom Platform Automigration for Forward Compatibility
1.4. Creating an Intel® FPGA SDK for OpenCL™ Custom Platform
1.5. Applying for the Intel® FPGA SDK for OpenCL™ Pro Edition Preferred Board Status
1.6. Shipping Recommendations
2.3.1. aocl_mmd_get_offline_info
2.3.2. aocl_mmd_get_info
2.3.3. aocl_mmd_open
2.3.4. aocl_mmd_close
2.3.5. aocl_mmd_read
2.3.6. aocl_mmd_write
2.3.7. aocl_mmd_copy
2.3.8. aocl_mmd_set_interrupt_handler
2.3.9. aocl_mmd_set_device_interrupt_handler
2.3.10. aocl_mmd_set_status_handler
2.3.11. aocl_mmd_yield
2.3.12. aocl_mmd_shared_mem_alloc
2.3.13. aocl_mmd_shared_mem_free
2.3.14. aocl_mmd_program
Syntax
Function Arguments
Return Value
2.3.15. aocl_mmd_reprogram
2.3.16. aocl_mmd_hostchannel_create
2.3.17. aocl_mmd_hostchannel_destroy
2.3.18. aocl_mmd_hostchannel_get_buffer
2.3.19. aocl_mmd_hostchannel_ack_buffer
2.3.20. aocl_mmd_host_alloc
2.3.21. aocl_mmd_free
2.3.22. aocl_mmd_device_alloc
2.3.23. aocl_mmd_shared_alloc
2.3.24. aocl_mmd_shared_migrate
2.3.14. aocl_mmd_program
The aocl_mmd_program function is the program operation for the specified device.
The host must guarantee that no other OpenCL™ operations are executing on the device during the program operation. During aocl_mmd_program execution, the kernels are idle and no read, write, or copy operation can occur.
Disable interrupts and program the FPGA with the data from user_data, which has a size specified by the size argument. The host then calls aocl_mmd_set_status_handler and aocl_mmd_set_interrupt_handler again, which enable the interrupts. If events such as interrupts occur during aocl_mmd_program execution, race conditions or data corruption might occur.
This function replaces aocl_mmd_program, which is deprecated starting with Intel® FPGA SDK for OpenCL™ Version 18.1.
Syntax
int aocl_mmd_program( int handle, void* user_data, size_t size, aocl_mmd_program_mode_t program_mode );
Function Arguments
- handle—A positive int value representing the handle to the board obtained from the aocl_mmd_open() call.
- user_data—The void* type binary contents of the fpga.bin file that are created during compilation.
- size—The size of user_data in bytes. The size argument is of size_t.
- program_mode—The bit-field that specifies the mode of device programming.
Table 19. Possible Values for the program_mode Argument program_mode Argument Value Description AOCL_MMD_PROGRAM_PRESERVE_GLOBAL_MEMORY This flag specifies that during programming the global memory on the devices are preserved.
Return Value
If aocl_mmd_program executes successfully, the return value is the pointer value that the host uses to access shared memory.