CIRCT 24.0.0git
Loading...
Searching...
No Matches
ESIDialect.h
Go to the documentation of this file.
1//===- ESIDialect.h - ESI dialect Dialect class -----------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// The Elastic Silicon Interconnect (ESI) dialect
10//
11// ESI is a system interconnect generator. It is type safe and
12// latency-insensitive. It can be used for on-chip, inter-chip, and host-chip
13// communication. It is also intended to help with incremental adoption and
14// integration with existing RTL as it provides a standardized, typed interface
15// to the outside world.
16//
17//===----------------------------------------------------------------------===//
18
19#ifndef CIRCT_DIALECT_ESI_ESIDIALECT_H
20#define CIRCT_DIALECT_ESI_ESIDIALECT_H
21
23#include "circt/Support/LLVM.h"
24#include "mlir/IR/BuiltinAttributes.h"
25#include "mlir/IR/Dialect.h"
26
27namespace circt {
28namespace esi {
29
30/// ESI ABI version. Increment for incompatible changes.
31/// Version 1 accounts for the union alignment bug fix in Verilog emission.
32constexpr uint64_t esiApiVersion = 1;
33
35
36/// Name of dialect attribute which governs whether or not to bundle (i.e. use
37/// SystemVerilog interfaces) channel signal wires on external modules.
38constexpr StringRef extModBundleSignalsAttrName = "esi.bundle";
39
40/// Name of dialect attribute which governs whether or not to flatten struct
41/// ports into a bunch of individual 'data' wires.
42constexpr StringRef extModPortFlattenStructsAttrName = "esi.portFlattenStructs";
43
44/// Suffix _all_ lowered input ports with this suffix. Defaults to nothing.
45constexpr StringRef extModPortInSuffix = "esi.portInSuffix";
46/// Suffix _all_ lowered output ports with this suffix. Defaults to nothing.
47constexpr StringRef extModPortOutSuffix = "esi.portOutSuffix";
48/// Suffix lowered valid ports with this suffix. Defaults to "_valid". Applies
49/// only to ValidReady channels.
50constexpr StringRef extModPortValidSuffix = "esi.portValidSuffix";
51/// Suffix lowered ready ports with this suffix. Defaults to "_ready". Applies
52/// only to ValidReady channels.
53constexpr StringRef extModPortReadySuffix = "esi.portReadySuffix";
54/// Suffix lowered read enable ports with this suffix. Defaults to "_rden".
55/// Applies only to FIFO channels.
56constexpr StringRef extModPortRdenSuffix = "esi.portRdenSuffix";
57/// Suffix lowered empty ports with this suffix. Defaults to "_empty". Applies
58/// only to FIFO channels.
59constexpr StringRef extModPortEmptySuffix = "esi.portEmptySuffix";
60
61} // namespace esi
62} // namespace circt
63
64#include "circt/Dialect/ESI/ESIDialect.h.inc"
65
66// Pull in all enum type definitions and utility function declarations.
67#include "circt/Dialect/ESI/ESIEnums.h.inc"
68
69#endif
constexpr StringRef extModPortValidSuffix
Suffix lowered valid ports with this suffix.
Definition ESIDialect.h:50
constexpr StringRef extModPortRdenSuffix
Suffix lowered read enable ports with this suffix.
Definition ESIDialect.h:56
constexpr StringRef extModPortReadySuffix
Suffix lowered ready ports with this suffix.
Definition ESIDialect.h:53
constexpr StringRef extModBundleSignalsAttrName
Name of dialect attribute which governs whether or not to bundle (i.e.
Definition ESIDialect.h:38
constexpr StringRef extModPortInSuffix
Suffix all lowered input ports with this suffix. Defaults to nothing.
Definition ESIDialect.h:45
constexpr uint64_t esiApiVersion
ESI ABI version.
Definition ESIDialect.h:32
constexpr StringRef extModPortOutSuffix
Suffix all lowered output ports with this suffix. Defaults to nothing.
Definition ESIDialect.h:47
void registerESIPasses()
constexpr StringRef extModPortEmptySuffix
Suffix lowered empty ports with this suffix.
Definition ESIDialect.h:59
constexpr StringRef extModPortFlattenStructsAttrName
Name of dialect attribute which governs whether or not to flatten struct ports into a bunch of indivi...
Definition ESIDialect.h:42
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Definition esi.py:1