CIRCT 24.0.0git
Loading...
Searching...
No Matches
AXI4Ops.cpp File Reference
#include "circt/Dialect/AXI4/AXI4Ops.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/MathExtras.h"
#include "circt/Dialect/AXI4/AXI4.cpp.inc"
Include dependency graph for AXI4Ops.cpp:

Go to the source code of this file.

Macros

#define GET_OP_CLASSES

Functions

static LogicalResult verifyWidthsMatch (XbarOp op, ArrayRef< WidthField > fields, PortType port, const Twine &portDesc, PortType reference, const Twine &referenceDesc)
 Verify that port agrees with reference on each of the widths in fields.
static std::pair< size_t, WindowAttr > findDownstreamWindow (ValueRange downstream, uint64_t address)
 The downstream port and window covering address, or a null window if no downstream port covers it.
static std::pair< uint64_t, uint64_t > routingOutstandingBelow (ValueRange upstream, PortType downstream)
 The outstanding writes and reads a routing op sends down downstream, from the upstream ports whose windows reach it.
static LogicalResult verifyOutstanding (Operation *op, const Twine &portDesc, PortType port, std::pair< uint64_t, uint64_t > reaching, const Twine &sourceDesc)
 Verify that port holds exactly the outstanding requests reaching it.

Variables

static constexpr WidthField kWidths []
static constexpr size_t kNumSharedWidths = 3

Macro Definition Documentation

◆ GET_OP_CLASSES

#define GET_OP_CLASSES

Definition at line 215 of file AXI4Ops.cpp.

Function Documentation

◆ findDownstreamWindow()

std::pair< size_t, WindowAttr > findDownstreamWindow ( ValueRange downstream,
uint64_t address )
static

The downstream port and window covering address, or a null window if no downstream port covers it.

Definition at line 63 of file AXI4Ops.cpp.

◆ routingOutstandingBelow()

std::pair< uint64_t, uint64_t > routingOutstandingBelow ( ValueRange upstream,
PortType downstream )
static

The outstanding writes and reads a routing op sends down downstream, from the upstream ports whose windows reach it.

Definition at line 80 of file AXI4Ops.cpp.

◆ verifyOutstanding()

LogicalResult verifyOutstanding ( Operation * op,
const Twine & portDesc,
PortType port,
std::pair< uint64_t, uint64_t > reaching,
const Twine & sourceDesc )
static

Verify that port holds exactly the outstanding requests reaching it.

Definition at line 93 of file AXI4Ops.cpp.

References success().

◆ verifyWidthsMatch()

LogicalResult verifyWidthsMatch ( XbarOp op,
ArrayRef< WidthField > fields,
PortType port,
const Twine & portDesc,
PortType reference,
const Twine & referenceDesc )
static

Verify that port agrees with reference on each of the widths in fields.

Definition at line 46 of file AXI4Ops.cpp.

References success().

Variable Documentation

◆ kNumSharedWidths

size_t kNumSharedWidths = 3
staticconstexpr

Definition at line 42 of file AXI4Ops.cpp.

◆ kWidths

WidthField kWidths[]
staticconstexpr
Initial value:
= {
{"addr_width", &PortType::getAddrWidth},
{"data_width", &PortType::getDataWidth},
{"user_width", &PortType::getUserWidth},
{"write_id_width", &PortType::getWriteIdWidth},
{"read_id_width", &PortType::getReadIdWidth}}

Definition at line 36 of file AXI4Ops.cpp.