Name Strings

SPV_ALTERA_fpga_argument_interfaces

Contact

To report problems with this extension, please open a new issue at:

Contributors

Abhishek Tiwari, Intel
Joe Garvey, Intel

Notice

Copyright (c) 2022 Intel Corporation. All rights reserved.

Status

Final draft

Version

Last Modified Date

2022-12-04

Revision

1

Dependencies

This extension is written against the SPIR-V Specification, Version 1.6 Revision 2.

This extension requires SPIR-V 1.0.

Overview

This extension adds kernel argument decorations that influence the interfaces built for for Field Programmable Gate Array (FPGA) kernel arguments.

Extension Name

To use this extension within a SPIR-V module, the following OpExtension must be present in the module:

OpExtension "SPV_ALTERA_fpga_argument_interfaces"

New Capabilities

This extension introduces the following new capability:

FPGAArgumentInterfacesALTERA

Token Number Assignments

FPGAArgumentInterfacesALTERA

6174

ConduitKernelArgumentALTERA

6175

RegisterMapKernelArgumentALTERA

6176

MMHostInterfaceAddressWidthALTERA

6177

MMHostInterfaceDataWidthALTERA

6178

MMHostInterfaceLatencyALTERA

6179

MMHostInterfaceReadWriteModeALTERA

6180

MMHostInterfaceMaxBurstALTERA

6181

MMHostInterfaceWaitRequestALTERA

6182

StableKernelArgumentALTERA

6183

Modifications to the SPIR-V Specification, Version 1.6

Decoration

Modify Section 3.20, Decoration, adding these rows to the Decoration table:

Decoration Extra Operands Enabling Capabilities

6175

ConduitKernelArgumentALTERA
Must be applied only to an OpFunctionParameter of a function that is an entry point. Indicates that dedicated input wires should be created for this argument.

FPGAArgumentInterfacesALTERA

6176

RegisterMapKernelArgumentALTERA
Must be applied only to an OpFunctionParameter of a function that is an entry point. Indicates that this argument is stored in registers in the kernel that are accessed through a common interface shared between this argument, other RegisterMapKernelArgumentALTERA arguments, and possibly kernel control signals.

FPGAArgumentInterfacesALTERA

6177

MMHostInterfaceAddressWidthALTERA
Must be applied only to a pointer OpFunctionParameter of a function that is an entry point. Indicates the size, in bits, of the address bus for the Memory Mapped Interface created for this pointer argument.

Literal Number (32-bit signed integer)
AddressWidth

FPGAArgumentInterfacesALTERA

6178

MMHostInterfaceDataWidthALTERA
Must be applied only to a pointer OpFunctionParameter of a function that is an entry point. Indicates the size, in bits, of the data bus for the Memory Mapped Interface created for this pointer argument.

Literal Number (32-bit signed integer)
DataWidth

FPGAArgumentInterfacesALTERA

6179

MMHostInterfaceLatencyALTERA
Must be applied only to a pointer OpFunctionParameter of a function that is an entry point. Indicates the latency in cycles of the Memory Mapped Interface created for this pointer argument. If this decoration is present it guarantees that the latency is fixed.

Literal Number (32-bit signed integer)
Latency

FPGAArgumentInterfacesALTERA

6180

MMHostInterfaceReadWriteModeALTERA
Must be applied only to a pointer OpFunctionParameter of a function that is an entry point. Indicates the read-write mode of the Memory Mapped Interface created for this pointer argument.

Access Qualifier
ReadWriteMode

FPGAArgumentInterfacesALTERA

6181

MMHostInterfaceMaxBurstALTERA
Must be applied only to a pointer OpFunctionParameter of a function that is an entry point. Indicates the maximum burst count of the Memory Mapped Interface created for this pointer argument.

Literal Number (32-bit signed integer)
MaxBurstCount

FPGAArgumentInterfacesALTERA

6182

MMHostInterfaceWaitRequestALTERA
Must be applied only to a pointer OpFunctionParameter of a function that is an entry point. Indicates whether the Memory Mapped Interface created for this pointer argument should accept a waitrequest signal.

A setting of 1 means build a waitrequest signal and a setting of 0 means don’t.

Literal Number (32-bit signed integer)
Waitrequest

FPGAArgumentInterfacesALTERA

6183

StableKernelArgumentALTERA
Must be applied only to an OpFunctionParameter of a function that is an entry point. Indicates that this input will not change during the execution of pipelined kernel invocations. Input can change once all active invocations have finished.

FPGAArgumentInterfacesALTERA

Capability

Modify Section 3.31, Capability, adding a row to the Capability table:

Capability Implicitly Declares

6174

FPGAArgumentInterfacesALTERA

Validation Rules

It is invalid to specify both ConduitKernelArgumentALTERA and RegisterMapKernelArgumentALTERA decorations on the same OpFunctionParameter.

Issues

None.

Revision History

Rev Date Author Changes

1

2022-12-04

Abhishek Tiwari, Brox Chen

Initial public release