CIRCT  20.0.0git
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 
22 #include "circt/Dialect/HW/HWOps.h"
23 #include "circt/Support/LLVM.h"
24 #include "mlir/IR/BuiltinAttributes.h"
25 #include "mlir/IR/Dialect.h"
26 
27 namespace circt {
28 namespace esi {
29 
30 /// Manifest format version number. Increment this whenever the manifest format
31 /// changes.
32 /// Version 0 is subject to massive, breaking changes.
33 constexpr uint64_t esiApiVersion = 0;
34 
35 void registerESIPasses();
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.
39 constexpr 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.
43 constexpr StringRef extModPortFlattenStructsAttrName = "esi.portFlattenStructs";
44 
45 /// Suffix _all_ lowered input ports with this suffix. Defaults to nothing.
46 constexpr StringRef extModPortInSuffix = "esi.portInSuffix";
47 /// Suffix _all_ lowered output ports with this suffix. Defaults to nothing.
48 constexpr StringRef extModPortOutSuffix = "esi.portOutSuffix";
49 /// Suffix lowered valid ports with this suffix. Defaults to "_valid". Applies
50 /// only to ValidReady channels.
51 constexpr StringRef extModPortValidSuffix = "esi.portValidSuffix";
52 /// Suffix lowered ready ports with this suffix. Defaults to "_ready". Applies
53 /// only to ValidReady channels.
54 constexpr StringRef extModPortReadySuffix = "esi.portReadySuffix";
55 /// Suffix lowered read enable ports with this suffix. Defaults to "_rden".
56 /// Applies only to FIFO channels.
57 constexpr StringRef extModPortRdenSuffix = "esi.portRdenSuffix";
58 /// Suffix lowered empty ports with this suffix. Defaults to "_empty". Applies
59 /// only to FIFO channels.
60 constexpr 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()
Definition: ESIPasses.cpp:262
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: DebugAnalysis.h:21
Definition: esi.py:1