Visible to Intel only — GUID: snq1565376820339
Ixiasoft
4.2.2. AFU File
Your AFU requires a CCI-P package and a UUID for proper connectivity with host software. See example below:
import ccip_if_pkg::*;
module hello_afu
(
input clk, // Core clock. CCI interface is synchronous to this clock.
input reset, // CCI interface ACTIVE HIGH reset.
// CCI-P signals
input t_if_ccip_Rx cp2af_sRxPort,
output t_if_ccip_Tx af2cp_sTxPort
);
`define AFU_ACCEL_UUID 128'h850adcc2_6ceb_4b22_9722_d43375b61c66
// The AFU must respond with its AFU ID in response to MMIO reads of
// the CCI-P device feature header (DFH). The AFU ID is a unique ID
// for a given program. Here we generated one with the "uuidgen"
// program and stored it in the AFU's JSON file. ASE and synthesis
// setup scripts automatically invoke the OPAE afu_json_mgr script
// to extract the UUID into afu_json_info.vh.
logic [127:0] afu_id = `AFU_ACCEL_UUID;
Note: For a more complicated example where multiple sub-AFUs are instantiated, refer to Factory_Image/hw/afu/rtl/afu_dma.sv.
The software framework and the application software use the AFU_ID to ensure that they are matched to the correct AFU; that is, that they are obeying the same architectural interface.
The AFU_ID is a 128-bit value which is generated using an UUID/GUID generator to ensure the value is unique.
For more information about UUID/GUID, refer to the "Online GUID Generator" web page.
Related Information