CIRCT 22.0.0git
Loading...
Searching...
No Matches
AnnotationDetails.h
Go to the documentation of this file.
1//===- AnnotationDetails.h - common annotation logic ------------*- 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// This file contains private APIs for dealing with annotations.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef CIRCT_DIALECT_FIRRTL_ANNOTATIONDETAILS_H
14#define CIRCT_DIALECT_FIRRTL_ANNOTATIONDETAILS_H
15
16#include "circt/Support/LLVM.h"
17
18namespace circt {
19namespace firrtl {
20
21//===----------------------------------------------------------------------===//
22// Common strings related to annotations
23//===----------------------------------------------------------------------===//
24
25constexpr const char *rawAnnotations = "rawAnnotations";
26
27//===----------------------------------------------------------------------===//
28// Annotation Class Names
29//===----------------------------------------------------------------------===//
30
31constexpr const char *conventionAnnoClass = "circt.ConventionAnnotation";
32constexpr const char *typeLoweringAnnoClass =
33 "circt.BodyTypeLoweringAnnotation";
34constexpr const char *dontTouchAnnoClass =
35 "firrtl.transforms.DontTouchAnnotation";
36constexpr const char *enumComponentAnnoClass =
37 "chisel3.experimental.EnumAnnotations$EnumComponentAnnotation";
38constexpr const char *enumDefAnnoClass =
39 "chisel3.experimental.EnumAnnotations$EnumDefAnnotation";
40constexpr const char *enumVecAnnoClass =
41 "chisel3.experimental.EnumAnnotations$EnumVecAnnotation";
42constexpr const char *forceNameAnnoClass =
43 "chisel3.util.experimental.ForceNameAnnotation";
44constexpr const char *decodeTableAnnotation =
45 "chisel3.util.experimental.decode.DecodeTableAnnotation";
46constexpr const char *flattenAnnoClass = "firrtl.transforms.FlattenAnnotation";
47constexpr const char *inlineAnnoClass = "firrtl.passes.InlineAnnotation";
48constexpr const char *traceNameAnnoClass =
49 "chisel3.experimental.Trace$TraceNameAnnotation";
50constexpr const char *traceAnnoClass =
51 "chisel3.experimental.Trace$TraceAnnotation";
52
53constexpr const char *blackBoxInlineAnnoClass =
54 "firrtl.transforms.BlackBoxInlineAnno";
55constexpr const char *blackBoxPathAnnoClass =
56 "firrtl.transforms.BlackBoxPathAnno";
57constexpr const char *blackBoxTargetDirAnnoClass =
58 "firrtl.transforms.BlackBoxTargetDirAnno";
59constexpr const char *blackBoxAnnoClass =
60 "firrtl.transforms.BlackBox"; // Not in SFC
61constexpr const char *verbatimBlackBoxAnnoClass = "circt.VerbatimBlackBoxAnno";
62constexpr const char *mustDedupAnnoClass =
63 "firrtl.transforms.MustDeduplicateAnnotation";
64constexpr const char *runFIRRTLTransformAnnoClass =
65 "firrtl.stage.RunFirrtlTransformAnnotation";
66constexpr const char *extractAssertAnnoClass =
67 "sifive.enterprise.firrtl.ExtractAssertionsAnnotation";
68constexpr const char *extractAssumeAnnoClass =
69 "sifive.enterprise.firrtl.ExtractAssumptionsAnnotation";
70constexpr const char *extractCoverageAnnoClass =
71 "sifive.enterprise.firrtl.ExtractCoverageAnnotation";
72constexpr const char *testBenchDirAnnoClass =
73 "sifive.enterprise.firrtl.TestBenchDirAnnotation";
74constexpr const char *moduleHierAnnoClass =
75 "sifive.enterprise.firrtl.ModuleHierarchyAnnotation";
76constexpr const char *outputDirAnnoClass = "circt.OutputDirAnnotation";
77constexpr const char *testHarnessHierAnnoClass =
78 "sifive.enterprise.firrtl.TestHarnessHierarchyAnnotation";
79constexpr const char *retimeModulesFileAnnoClass =
80 "sifive.enterprise.firrtl.RetimeModulesAnnotation";
81constexpr const char *retimeModuleAnnoClass =
82 "freechips.rocketchip.util.RetimeModuleAnnotation";
83constexpr const char *verifBlackBoxAnnoClass =
84 "freechips.rocketchip.annotations.InternalVerifBlackBoxAnnotation";
85constexpr const char *metadataDirectoryAttrName =
86 "sifive.enterprise.firrtl.MetadataDirAnnotation";
87constexpr const char *noDedupAnnoClass = "firrtl.transforms.NoDedupAnnotation";
88constexpr const char *dedupGroupAnnoClass =
89 "firrtl.transforms.DedupGroupAnnotation";
90
91// Grand Central Annotations
92constexpr const char *serializedViewAnnoClass =
93 "sifive.enterprise.grandcentral.GrandCentralView$SerializedViewAnnotation";
94constexpr const char *viewAnnoClass =
95 "sifive.enterprise.grandcentral.ViewAnnotation";
96constexpr const char *companionAnnoClass =
97 "sifive.enterprise.grandcentral.ViewAnnotation.companion"; // not in SFC
98constexpr const char *augmentedGroundTypeClass =
99 "sifive.enterprise.grandcentral.AugmentedGroundType"; // not an annotation
100constexpr const char *augmentedBundleTypeClass =
101 "sifive.enterprise.grandcentral.AugmentedBundleType"; // not an annotation
102constexpr const char *augmentedVectorTypeClass =
103 "sifive.enterprise.grandcentral.AugmentedVectorType"; // not an annotation
104constexpr const char *memTapClass =
105 "sifive.enterprise.grandcentral.MemTapAnnotation";
106constexpr const char *extractGrandCentralClass =
107 "sifive.enterprise.grandcentral.ExtractGrandCentralAnnotation";
109 "sifive.enterprise.grandcentral.GrandCentralHierarchyFileAnnotation";
110
111// SiFive specific Annotations
112constexpr const char *dutAnnoClass =
113 "sifive.enterprise.firrtl.MarkDUTAnnotation";
114constexpr const char *injectDUTHierarchyAnnoClass =
115 "sifive.enterprise.firrtl.InjectDUTHierarchyAnnotation";
116constexpr const char *sitestBlackBoxAnnoClass =
117 "sifive.enterprise.firrtl.SitestBlackBoxAnnotation";
119 "sifive.enterprise.firrtl.SitestTestHarnessBlackBoxAnnotation";
120constexpr const char *sitestBlackBoxLibrariesAnnoClass =
121 "sifive.enterprise.firrtl.SitestBlackBoxLibrariesAnnotation";
122constexpr const char *dontObfuscateModuleAnnoClass =
123 "sifive.enterprise.firrtl.DontObfuscateModuleAnnotation";
125 "sifive.enterprise.firrtl.ElaborationArtefactsDirectory";
126constexpr const char *testHarnessPathAnnoClass =
127 "sifive.enterprise.firrtl.TestHarnessPathAnnotation";
128/// Annotation that marks a reset (port or wire) and domain.
129constexpr const char *fullResetAnnoClass = "circt.FullResetAnnotation";
130/// Annotation that marks a module as not belonging to any reset domain.
131constexpr const char *excludeFromFullResetAnnoClass =
132 "circt.ExcludeFromFullResetAnnotation";
133/// Annotation that marks a reset (port or wire) and domain.
134constexpr const char *fullAsyncResetAnnoClass =
135 "sifive.enterprise.firrtl.FullAsyncResetAnnotation";
136/// Annotation that marks a module as not belonging to any reset domain.
137constexpr const char *ignoreFullAsyncResetAnnoClass =
138 "sifive.enterprise.firrtl.IgnoreFullAsyncResetAnnotation";
139
140// MemToRegOfVec Annotations
141constexpr const char *convertMemToRegOfVecAnnoClass =
142 "sifive.enterprise.firrtl.ConvertMemToRegOfVecAnnotation$";
143
144// Instance Extraction
145constexpr const char *extractBlackBoxAnnoClass =
146 "sifive.enterprise.firrtl.ExtractBlackBoxAnnotation";
147constexpr const char *extractClockGatesAnnoClass =
148 "sifive.enterprise.firrtl.ExtractClockGatesFileAnnotation";
149constexpr const char *extractSeqMemsAnnoClass =
150 "sifive.enterprise.firrtl.ExtractSeqMemsFileAnnotation";
151
152// AddSeqMemPort Annotations
153constexpr const char *addSeqMemPortAnnoClass =
154 "sifive.enterprise.firrtl.AddSeqMemPortAnnotation";
155constexpr const char *addSeqMemPortsFileAnnoClass =
156 "sifive.enterprise.firrtl.AddSeqMemPortsFileAnnotation";
157
158// Memory file loading annotations.
159constexpr const char *loadMemoryFromFileAnnoClass =
160 "firrtl.annotations.LoadMemoryAnnotation";
162 "firrtl.annotations.MemoryFileInlineAnnotation";
163
164// WiringTransform Annotations
165constexpr const char *wiringSinkAnnoClass =
166 "firrtl.passes.wiring.SinkAnnotation";
167constexpr const char *wiringSourceAnnoClass =
168 "firrtl.passes.wiring.SourceAnnotation";
169
170// Attribute annotations.
171constexpr const char *attributeAnnoClass = "firrtl.AttributeAnnotation";
172
173// Module Prefix Annotations.
174constexpr const char *modulePrefixAnnoClass = "chisel3.ModulePrefixAnnotation";
175
176} // namespace firrtl
177} // namespace circt
178
179#endif // CIRCT_DIALECT_FIRRTL_ANNOTATIONDETAILS_H
constexpr const char * excludeFromFullResetAnnoClass
Annotation that marks a module as not belonging to any reset domain.
constexpr const char * injectDUTHierarchyAnnoClass
constexpr const char * augmentedVectorTypeClass
constexpr const char * extractCoverageAnnoClass
constexpr const char * elaborationArtefactsDirectoryAnnoClass
constexpr const char * augmentedBundleTypeClass
constexpr const char * extractGrandCentralClass
constexpr const char * blackBoxAnnoClass
constexpr const char * fullResetAnnoClass
Annotation that marks a reset (port or wire) and domain.
constexpr const char * sitestBlackBoxAnnoClass
constexpr const char * convertMemToRegOfVecAnnoClass
constexpr const char * dontObfuscateModuleAnnoClass
constexpr const char * metadataDirectoryAttrName
constexpr const char * extractBlackBoxAnnoClass
constexpr const char * fullAsyncResetAnnoClass
Annotation that marks a reset (port or wire) and domain.
constexpr const char * testBenchDirAnnoClass
constexpr const char * sitestBlackBoxLibrariesAnnoClass
constexpr const char * sitestTestHarnessBlackBoxAnnoClass
constexpr const char * outputDirAnnoClass
constexpr const char * augmentedGroundTypeClass
constexpr const char * traceAnnoClass
constexpr const char * mustDedupAnnoClass
constexpr const char * loadMemoryFromFileAnnoClass
constexpr const char * dutAnnoClass
constexpr const char * rawAnnotations
constexpr const char * extractSeqMemsAnnoClass
constexpr const char * attributeAnnoClass
constexpr const char * wiringSinkAnnoClass
constexpr const char * loadMemoryFromFileInlineAnnoClass
constexpr const char * forceNameAnnoClass
constexpr const char * memTapClass
constexpr const char * noDedupAnnoClass
constexpr const char * conventionAnnoClass
constexpr const char * dedupGroupAnnoClass
constexpr const char * viewAnnoClass
constexpr const char * serializedViewAnnoClass
constexpr const char * enumDefAnnoClass
constexpr const char * enumVecAnnoClass
constexpr const char * wiringSourceAnnoClass
constexpr const char * traceNameAnnoClass
constexpr const char * enumComponentAnnoClass
constexpr const char * extractAssertAnnoClass
constexpr const char * testHarnessPathAnnoClass
constexpr const char * verifBlackBoxAnnoClass
constexpr const char * addSeqMemPortAnnoClass
constexpr const char * blackBoxPathAnnoClass
constexpr const char * addSeqMemPortsFileAnnoClass
constexpr const char * retimeModulesFileAnnoClass
constexpr const char * retimeModuleAnnoClass
constexpr const char * runFIRRTLTransformAnnoClass
constexpr const char * companionAnnoClass
constexpr const char * blackBoxTargetDirAnnoClass
constexpr const char * ignoreFullAsyncResetAnnoClass
Annotation that marks a module as not belonging to any reset domain.
constexpr const char * modulePrefixAnnoClass
constexpr const char * blackBoxInlineAnnoClass
constexpr const char * verbatimBlackBoxAnnoClass
constexpr const char * decodeTableAnnotation
constexpr const char * extractClockGatesAnnoClass
constexpr const char * inlineAnnoClass
constexpr const char * flattenAnnoClass
constexpr const char * extractAssumeAnnoClass
constexpr const char * grandCentralHierarchyFileAnnoClass
constexpr const char * typeLoweringAnnoClass
constexpr const char * dontTouchAnnoClass
constexpr const char * testHarnessHierAnnoClass
constexpr const char * moduleHierAnnoClass
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.