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 *mustDedupAnnoClass =
62 "firrtl.transforms.MustDeduplicateAnnotation";
63constexpr const char *runFIRRTLTransformAnnoClass =
64 "firrtl.stage.RunFirrtlTransformAnnotation";
65constexpr const char *extractAssertAnnoClass =
66 "sifive.enterprise.firrtl.ExtractAssertionsAnnotation";
67constexpr const char *extractAssumeAnnoClass =
68 "sifive.enterprise.firrtl.ExtractAssumptionsAnnotation";
69constexpr const char *extractCoverageAnnoClass =
70 "sifive.enterprise.firrtl.ExtractCoverageAnnotation";
71constexpr const char *testBenchDirAnnoClass =
72 "sifive.enterprise.firrtl.TestBenchDirAnnotation";
73constexpr const char *moduleHierAnnoClass =
74 "sifive.enterprise.firrtl.ModuleHierarchyAnnotation";
75constexpr const char *outputDirAnnoClass = "circt.OutputDirAnnotation";
76constexpr const char *testHarnessHierAnnoClass =
77 "sifive.enterprise.firrtl.TestHarnessHierarchyAnnotation";
78constexpr const char *retimeModulesFileAnnoClass =
79 "sifive.enterprise.firrtl.RetimeModulesAnnotation";
80constexpr const char *retimeModuleAnnoClass =
81 "freechips.rocketchip.util.RetimeModuleAnnotation";
82constexpr const char *verifBlackBoxAnnoClass =
83 "freechips.rocketchip.annotations.InternalVerifBlackBoxAnnotation";
84constexpr const char *metadataDirectoryAttrName =
85 "sifive.enterprise.firrtl.MetadataDirAnnotation";
86constexpr const char *noDedupAnnoClass = "firrtl.transforms.NoDedupAnnotation";
87constexpr const char *dedupGroupAnnoClass =
88 "firrtl.transforms.DedupGroupAnnotation";
89
90// Grand Central Annotations
91constexpr const char *serializedViewAnnoClass =
92 "sifive.enterprise.grandcentral.GrandCentralView$SerializedViewAnnotation";
93constexpr const char *viewAnnoClass =
94 "sifive.enterprise.grandcentral.ViewAnnotation";
95constexpr const char *companionAnnoClass =
96 "sifive.enterprise.grandcentral.ViewAnnotation.companion"; // not in SFC
97constexpr const char *augmentedGroundTypeClass =
98 "sifive.enterprise.grandcentral.AugmentedGroundType"; // not an annotation
99constexpr const char *augmentedBundleTypeClass =
100 "sifive.enterprise.grandcentral.AugmentedBundleType"; // not an annotation
101constexpr const char *augmentedVectorTypeClass =
102 "sifive.enterprise.grandcentral.AugmentedVectorType"; // not an annotation
103constexpr const char *memTapClass =
104 "sifive.enterprise.grandcentral.MemTapAnnotation";
105constexpr const char *extractGrandCentralClass =
106 "sifive.enterprise.grandcentral.ExtractGrandCentralAnnotation";
108 "sifive.enterprise.grandcentral.GrandCentralHierarchyFileAnnotation";
109
110// SiFive specific Annotations
111constexpr const char *dutAnnoClass =
112 "sifive.enterprise.firrtl.MarkDUTAnnotation";
113constexpr const char *injectDUTHierarchyAnnoClass =
114 "sifive.enterprise.firrtl.InjectDUTHierarchyAnnotation";
115constexpr const char *sitestBlackBoxAnnoClass =
116 "sifive.enterprise.firrtl.SitestBlackBoxAnnotation";
118 "sifive.enterprise.firrtl.SitestTestHarnessBlackBoxAnnotation";
119constexpr const char *sitestBlackBoxLibrariesAnnoClass =
120 "sifive.enterprise.firrtl.SitestBlackBoxLibrariesAnnotation";
121constexpr const char *dontObfuscateModuleAnnoClass =
122 "sifive.enterprise.firrtl.DontObfuscateModuleAnnotation";
124 "sifive.enterprise.firrtl.ElaborationArtefactsDirectory";
125constexpr const char *testHarnessPathAnnoClass =
126 "sifive.enterprise.firrtl.TestHarnessPathAnnotation";
127/// Annotation that marks a reset (port or wire) and domain.
128constexpr const char *fullResetAnnoClass = "circt.FullResetAnnotation";
129/// Annotation that marks a module as not belonging to any reset domain.
130constexpr const char *excludeFromFullResetAnnoClass =
131 "circt.ExcludeFromFullResetAnnotation";
132/// Annotation that marks a reset (port or wire) and domain.
133constexpr const char *fullAsyncResetAnnoClass =
134 "sifive.enterprise.firrtl.FullAsyncResetAnnotation";
135/// Annotation that marks a module as not belonging to any reset domain.
136constexpr const char *ignoreFullAsyncResetAnnoClass =
137 "sifive.enterprise.firrtl.IgnoreFullAsyncResetAnnotation";
138
139// MemToRegOfVec Annotations
140constexpr const char *convertMemToRegOfVecAnnoClass =
141 "sifive.enterprise.firrtl.ConvertMemToRegOfVecAnnotation$";
142
143// Instance Extraction
144constexpr const char *extractBlackBoxAnnoClass =
145 "sifive.enterprise.firrtl.ExtractBlackBoxAnnotation";
146constexpr const char *extractClockGatesAnnoClass =
147 "sifive.enterprise.firrtl.ExtractClockGatesFileAnnotation";
148constexpr const char *extractSeqMemsAnnoClass =
149 "sifive.enterprise.firrtl.ExtractSeqMemsFileAnnotation";
150
151// AddSeqMemPort Annotations
152constexpr const char *addSeqMemPortAnnoClass =
153 "sifive.enterprise.firrtl.AddSeqMemPortAnnotation";
154constexpr const char *addSeqMemPortsFileAnnoClass =
155 "sifive.enterprise.firrtl.AddSeqMemPortsFileAnnotation";
156
157// Memory file loading annotations.
158constexpr const char *loadMemoryFromFileAnnoClass =
159 "firrtl.annotations.LoadMemoryAnnotation";
161 "firrtl.annotations.MemoryFileInlineAnnotation";
162
163// WiringTransform Annotations
164constexpr const char *wiringSinkAnnoClass =
165 "firrtl.passes.wiring.SinkAnnotation";
166constexpr const char *wiringSourceAnnoClass =
167 "firrtl.passes.wiring.SourceAnnotation";
168
169// Attribute annotations.
170constexpr const char *attributeAnnoClass = "firrtl.AttributeAnnotation";
171
172// Module Prefix Annotations.
173constexpr const char *modulePrefixAnnoClass = "chisel3.ModulePrefixAnnotation";
174
175} // namespace firrtl
176} // namespace circt
177
178#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 * 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.