Blame doc/src/fpga_tools/fpgamux/fpgamux.md

Packit 534379
# fpgamux #
Packit 534379
Packit 534379
## SYNOPSIS ##
Packit 534379
```console
Packit 534379
fpgamux [-h] [-S|--socket-id SOCKET_ID] [-B|--bus-number BUS] [-D|--device DEVICE] [-F|--function FUNCTION]
Packit 534379
        [-G|--guid GUID] -m|--muxfile <filepath.json>
Packit 534379
```
Packit 534379
Packit 534379
## DESCRIPTION ##
Packit 534379
```fpgamux``` tests multiple AFUs that are synthesized into a single AFU along with
Packit 534379
the CCIP-MUX basic building block (BBB). The CCIP-MUX uses the upper bits in the MMIO addresses to route MMIO
Packit 534379
reads and writes to the AFU running on the corresponding CCIP-MUX port. ```fpgamux``` uses a configuration file that
Packit 534379
lists the software components and correct configuration. ```fpgamux``` only runs on the Integrated FPGA Platform. 
Packit 534379
You cannot run it on the PCIe accelerator card (PAC).
Packit 534379
Packit 534379
.. note::
Packit 534379
Packit 534379
```
Packit 534379
  The OPAE driver discovers only the first AFU. The first software component in the configuration 
Packit 534379
  determines the GUID to use for enumeration. Use the -G|--guid option to override the GUID
Packit 534379
  for the first software component.
Packit 534379
```
Packit 534379
Packit 534379
Packit 534379
## OPTIONS ##
Packit 534379
`-S SOCKET_ID, --socket-id SOCKET_ID`
Packit 534379
Packit 534379
   socket id of FPGA resource.
Packit 534379
Packit 534379
`-B BUS, --bus BUS`
Packit 534379
Packit 534379
   bus id of FPGA resource.
Packit 534379
Packit 534379
`-D DEVICE, --device DEVICE`
Packit 534379
Packit 534379
   The device id of FPGA resource.
Packit 534379
Packit 534379
`-F FUNCTION, --function FUNCTION`
Packit 534379
Packit 534379
   The function id of FPGA resource.
Packit 534379
Packit 534379
`-G, --guid`
Packit 534379
Packit 534379
   Specifies the GUID to use for the resource enumeration.
Packit 534379
Packit 534379
`-m, --muxfile <filepath.json>`
Packit 534379
Packit 534379
The path to the ```fpgamux``` configuration file. This file must be in JSON format following the
Packit 534379
schema described below.
Packit 534379
Packit 534379
## CONFIGURATION ##
Packit 534379
```fpgamux``` uses a configuration file (in JSON format) to determine what software components to instantiate and
Packit 534379
how to configure them to work with the AFUs. The schema includes the following elements:
Packit 534379
Packit 534379
```
Packit 534379
    [
Packit 534379
        {
Packit 534379
            "app" : "fpga_app",
Packit 534379
            "name" : "String",
Packit 534379
            "config" : "Object"
Packit 534379
        }
Packit 534379
    ]
Packit 534379
```
Packit 534379
Packit 534379
## EXAMPLES ##
Packit 534379
The following example shows a configuration with two components:
Packit 534379
```
Packit 534379
    [
Packit 534379
        {
Packit 534379
            "app" : "nlb0",
Packit 534379
            "name" : "nlb0",
Packit 534379
            "config" :
Packit 534379
            {
Packit 534379
                "begin" : 1,
Packit 534379
                "end" : 1,
Packit 534379
                "multi-cl" : 1,
Packit 534379
                "cont" : false,
Packit 534379
                "cache-policy" : "wrline-M",
Packit 534379
                "cache-hint" : "rdline-I",
Packit 534379
                "read-vc" : "vh0",
Packit 534379
                "write-vc" : "vh1",
Packit 534379
                "wrfence-vc" : "write-vc",
Packit 534379
                "timeout-usec" : 0,
Packit 534379
                "timeout-msec" : 0,
Packit 534379
                "timeout-sec" : 1,
Packit 534379
                "timeout-min" : 0,
Packit 534379
                "timeout-hour" : 0,
Packit 534379
                "freq" : 400000000
Packit 534379
            }
Packit 534379
        },
Packit 534379
        {
Packit 534379
            "app" : "nlb3",
Packit 534379
            "name" : "nlb3",
Packit 534379
            "config" :
Packit 534379
            {
Packit 534379
                "mode" : "read",
Packit 534379
                "begin" : 1,
Packit 534379
                "end" : 1,
Packit 534379
                "multi-cl" : 1,
Packit 534379
                "strided-access" : 1,
Packit 534379
                "cont" : false,
Packit 534379
                "warm-fpga-cache" : false,
Packit 534379
                "cool-fpga-cache" : false,
Packit 534379
                "cool-cpu-cache" : false,
Packit 534379
                "cache-policy" : "wrline-M",
Packit 534379
                "cache-hint" : "rdline-I",
Packit 534379
                "read-vc" : "vh0",
Packit 534379
                "write-vc" : "vh1",
Packit 534379
                "wrfence-vc" : "write-vc",
Packit 534379
                "alt-wr-pattern" : false,
Packit 534379
                "timeout-usec" : 0,
Packit 534379
                "timeout-msec" : 0,
Packit 534379
                "timeout-sec" : 1,
Packit 534379
                "timeout-min" : 0,
Packit 534379
                "timeout-hour" : 0,
Packit 534379
                "freq" : 400000000
Packit 534379
            }
Packit 534379
        }
Packit 534379
    ]
Packit 534379
```
Packit 534379
Packit 534379
## Revision History ##
Packit 534379
Packit 534379
 | Document Version |  Intel Acceleration Stack Version  | Changes  |
Packit 534379
 | ---------------- |------------------------------------|----------|
Packit 534379
 | 2018.05.21 | 1.1 Beta. 
(Supported with Intel Quartus Prime Pro Edition 17.1.) | No changes from previous release. |