diff --git a/sycl/doc/extensions/proposed/sycl_ext_intel_fpga_kernel_interface_properties.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_intel_fpga_kernel_interface_properties.asciidoc index 5eff61d1fc516..73bf4a6dfdb22 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_intel_fpga_kernel_interface_properties.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_intel_fpga_kernel_interface_properties.asciidoc @@ -32,8 +32,10 @@ https://github.com/intel/llvm/issues == Contributors +Jessica Davies, Intel + Joe Garvey, Intel + -Abhishek Tiwari, Intel +Abhishek Tiwari, Intel + +Bowen Xue, Intel == Dependencies @@ -54,8 +56,14 @@ rely on APIs defined in this specification.* == Overview This extension introduces kernel properties to specify how or when control and -data signals can be passed into or out of an FPGA kernel. These properties are -meaningless on non-FPGA devices and can be ignored on such devices. +data signals can be passed into or out of an FPGA kernel. + +On FPGA targets, regions of the circuit called clusters may be statically +scheduled. This extension also introduces kernel properties that specify how +statically-scheduled clusters should be implemented for an FPGA target. + +These properties are meaningless on non-FPGA devices and can be ignored on such +devices. == Specification @@ -91,11 +99,6 @@ enum class streaming_interface_options_enum { remove_downstream_stall }; -enum class register_map_interface_options_enum { - wait_for_done_write, - do_not_wait_for_done_write -}; - struct streaming_interface_key { template using value_t = sycl::ext::oneapi::properties::property_value< @@ -103,6 +106,11 @@ struct streaming_interface_key { std::integral_constant>; }; +enum class register_map_interface_options_enum { + wait_for_done_write, + do_not_wait_for_done_write +}; + struct register_map_interface_key { template using value_t = sycl::ext::oneapi::properties::property_value< @@ -117,13 +125,23 @@ struct pipelined_key { std::integral_constant>; }; +enum class fpga_cluster_options_enum : /* unspecified */ { + stall_enable, + stall_free +}; + +struct fpga_cluster_key { + template + using value_t = sycl::ext::oneapi::properties::property_value< + fpga_cluster_key, + std::integral_constant>; +}; + template inline constexpr streaming_interface_key::value_t