CIRCT 20.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/// Manifest format version number. Increment this whenever the manifest format
31/// changes.
32/// Version 0 is subject to massive, breaking changes.
33constexpr uint64_t esiApiVersion = 0;
34
36
37/// Name of dialect attribute which governs whether or not to bundle (i.e. use
38/// SystemVerilog interfaces) channel signal wires on external modules.
39constexpr StringRef extModBundleSignalsAttrName = "esi.bundle";
40
41/// Name of dialect attribute which governs whether or not to flatten struct
42/// ports into a bunch of individual 'data' wires.
43constexpr StringRef extModPortFlattenStructsAttrName = "esi.portFlattenStructs";
44
45/// Suffix _all_ lowered input ports with this suffix. Defaults to nothing.
46constexpr StringRef extModPortInSuffix = "esi.portInSuffix";
47/// Suffix _all_ lowered output ports with this suffix. Defaults to nothing.
48constexpr StringRef extModPortOutSuffix = "esi.portOutSuffix";
49/// Suffix lowered valid ports with this suffix. Defaults to "_valid". Applies
50/// only to ValidReady channels.
51constexpr StringRef extModPortValidSuffix = "esi.portValidSuffix";
52/// Suffix lowered ready ports with this suffix. Defaults to "_ready". Applies
53/// only to ValidReady channels.
54constexpr StringRef extModPortReadySuffix = "esi.portReadySuffix";
55/// Suffix lowered read enable ports with this suffix. Defaults to "_rden".
56/// Applies only to FIFO channels.
57constexpr StringRef extModPortRdenSuffix = "esi.portRdenSuffix";
58/// Suffix lowered empty ports with this suffix. Defaults to "_empty". Applies
59/// only to FIFO channels.
60constexpr StringRef extModPortEmptySuffix = "esi.portEmptySuffix";
61
62} // namespace esi
63} // namespace circt
64
65#include "circt/Dialect/ESI/ESIDialect.h.inc"
66
67// Pull in all enum type definitions and utility function declarations.
68#include "circt/Dialect/ESI/ESIEnums.h.inc"
69
70#endif
constexpr StringRef extModPortValidSuffix
Suffix lowered valid ports with this suffix.
Definition ESIDialect.h:51
constexpr StringRef extModPortRdenSuffix
Suffix lowered read enable ports with this suffix.
Definition ESIDialect.h:57
constexpr StringRef extModPortReadySuffix
Suffix lowered ready ports with this suffix.
Definition ESIDialect.h:54
constexpr StringRef extModBundleSignalsAttrName
Name of dialect attribute which governs whether or not to bundle (i.e.
Definition ESIDialect.h:39
constexpr StringRef extModPortInSuffix
Suffix all lowered input ports with this suffix. Defaults to nothing.
Definition ESIDialect.h:46
constexpr uint64_t esiApiVersion
Manifest format version number.
Definition ESIDialect.h:33
constexpr StringRef extModPortOutSuffix
Suffix all lowered output ports with this suffix. Defaults to nothing.
Definition ESIDialect.h:48
void registerESIPasses()
constexpr StringRef extModPortEmptySuffix
Suffix lowered empty ports with this suffix.
Definition ESIDialect.h:60
constexpr StringRef extModPortFlattenStructsAttrName
Name of dialect attribute which governs whether or not to flatten struct ports into a bunch of indivi...
Definition ESIDialect.h:43
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Definition esi.py:1