Client support

Library

libfiat.open(argv)
class libfiat.util.Req(*values)

An enumeration that captures communicated request tags (or identifiers).

class libfiat.util.Ack(*values)

An enumeration that captures communicated acknowledgement tags (or identifiers).

class libfiat.util.Err(*values)

An enumeration that captures communicated error tags (or identifiers).

class libfiat.util.Type

A “rich” type that captures (otherwise integer) a register type.

class libfiat.util.Index

A “rich” type that captures (otherwise integer) a register index.

class libfiat.driver.DriverAbs(device=None)
class libfiat.driver.DriverImpBinary(device=None)
class libfiat.driver.DriverImpText(device=None)
class libfiat.client.ClientAbs(driver='binary')

A class that captures generic client-side communication, over either binary or text protocol.

class libfiat.client.ClientImpSocket(driver='binary')

A (sub-)class that captures socket-based (e.g., via network, or loopback connection) client-side communication, over either binary or text protocol.

class libfiat.client.ClientImpSerial(driver='binary')

A (sub-)class that captures serial-based (i.e., via UART) client-side communication, over either binary or text protocol.

Scripts

Alongside the libfiat library itself, you can find a range of client implementations which make use of it: some are purely examples, whereas others offers support, e.g., for common tasks.

  • The script

    ${FIAT_PATH_REPO}/src/fiat/client/script/example.py
    

    reflects the worked example.

  • The script

    ${FIAT_PATH_REPO}/src/fiat/client/script/inspect.py
    

    is intended as a tool to inspect a target implementation: for example, given an otherwise “black box” target implementation, it can be used to

    • discover and report the configuration (e.g., in terms of the GPRs),

    • generate test vectors,

    • validate test vectors.