CIRCT 22.0.0git
Loading...
Searching...
No Matches
Firtool.h
Go to the documentation of this file.
1//===-- circt-c/Firtool/Firtool.h - C API for Firtool-lib ---------*- C -*-===//
2//
3//===----------------------------------------------------------------------===//
4
5#ifndef CIRCT_C_FIRTOOL_FIRTOOL_H
6#define CIRCT_C_FIRTOOL_FIRTOOL_H
7
8#include "mlir-c/Pass.h"
9#include "mlir-c/Support.h"
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#define DEFINE_C_API_STRUCT(name, storage) \
16 struct name { \
17 storage *ptr; \
18 }; \
19 typedef struct name name
20
21DEFINE_C_API_STRUCT(CirctFirtoolFirtoolOptions, void);
22
23#undef DEFINE_C_API_STRUCT
24
25// NOLINTNEXTLINE(modernize-use-using)
32
33// NOLINTNEXTLINE(modernize-use-using)
40
41// NOLINTNEXTLINE(modernize-use-using)
47
48// NOLINTNEXTLINE(modernize-use-using)
54
55// NOLINTNEXTLINE(modernize-use-using)
62
63// NOLINTNEXTLINE(modernize-use-using)
70
71MLIR_CAPI_EXPORTED CirctFirtoolFirtoolOptions
73MLIR_CAPI_EXPORTED void
74circtFirtoolOptionsDestroy(CirctFirtoolFirtoolOptions options);
75
76MLIR_CAPI_EXPORTED void
77circtFirtoolOptionsSetOutputFilename(CirctFirtoolFirtoolOptions options,
78 MlirStringRef filename);
80 CirctFirtoolFirtoolOptions options, bool disable);
81
83 CirctFirtoolFirtoolOptions options, bool value);
84
86 CirctFirtoolFirtoolOptions options, bool value);
87
89 CirctFirtoolFirtoolOptions options, bool value);
90
91MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetPreserveAggregate(
92 CirctFirtoolFirtoolOptions options,
94
95MLIR_CAPI_EXPORTED void
96circtFirtoolOptionsSetPreserveValues(CirctFirtoolFirtoolOptions options,
98
99MLIR_CAPI_EXPORTED void
100circtFirtoolOptionsSetEnableDebugInfo(CirctFirtoolFirtoolOptions options,
101 bool value);
102
103MLIR_CAPI_EXPORTED void
104circtFirtoolOptionsSetBuildMode(CirctFirtoolFirtoolOptions options,
106MLIR_CAPI_EXPORTED void
107circtFirtoolOptionsSetDisableLayerSink(CirctFirtoolFirtoolOptions options,
108 bool value);
109
110MLIR_CAPI_EXPORTED void
111circtFirtoolOptionsSetDisableOptimization(CirctFirtoolFirtoolOptions options,
112 bool value);
113
114MLIR_CAPI_EXPORTED void
115circtFirtoolOptionsSetVbToBv(CirctFirtoolFirtoolOptions options, bool value);
116
117MLIR_CAPI_EXPORTED void
118circtFirtoolOptionsSetNoDedup(CirctFirtoolFirtoolOptions options, bool value);
119
120MLIR_CAPI_EXPORTED void
121circtFirtoolOptionsSetCompanionMode(CirctFirtoolFirtoolOptions options,
123
125 CirctFirtoolFirtoolOptions options, bool value);
126
127MLIR_CAPI_EXPORTED void
128circtFirtoolOptionsSetLowerMemories(CirctFirtoolFirtoolOptions options,
129 bool value);
130
131MLIR_CAPI_EXPORTED void
132circtFirtoolOptionsSetBlackBoxRootPath(CirctFirtoolFirtoolOptions options,
133 MlirStringRef value);
134
135MLIR_CAPI_EXPORTED void
136circtFirtoolOptionsSetReplSeqMem(CirctFirtoolFirtoolOptions options,
137 bool value);
138
139MLIR_CAPI_EXPORTED void
140circtFirtoolOptionsSetReplSeqMemFile(CirctFirtoolFirtoolOptions options,
141 MlirStringRef value);
142
143MLIR_CAPI_EXPORTED void
144circtFirtoolOptionsSetExtractTestCode(CirctFirtoolFirtoolOptions options,
145 bool value);
146
147MLIR_CAPI_EXPORTED void
148circtFirtoolOptionsSetIgnoreReadEnableMem(CirctFirtoolFirtoolOptions options,
149 bool value);
150
151MLIR_CAPI_EXPORTED void
152circtFirtoolOptionsSetDisableRandom(CirctFirtoolFirtoolOptions options,
154
156 CirctFirtoolFirtoolOptions options, MlirStringRef value);
157
159 CirctFirtoolFirtoolOptions options, bool value);
160
161MLIR_CAPI_EXPORTED void
162circtFirtoolOptionsSetAddMuxPragmas(CirctFirtoolFirtoolOptions options,
163 bool value);
164
165MLIR_CAPI_EXPORTED void
166circtFirtoolOptionsSetVerificationFlavor(CirctFirtoolFirtoolOptions options,
168
170 CirctFirtoolFirtoolOptions options, bool value);
171
173 CirctFirtoolFirtoolOptions options, bool value);
174
176 CirctFirtoolFirtoolOptions options, bool value);
177
179 CirctFirtoolFirtoolOptions options, bool value);
180
181MLIR_CAPI_EXPORTED void
183 CirctFirtoolFirtoolOptions options, bool value);
184
185MLIR_CAPI_EXPORTED void
186circtFirtoolOptionsSetCkgModuleName(CirctFirtoolFirtoolOptions options,
187 MlirStringRef value);
188
189MLIR_CAPI_EXPORTED void
190circtFirtoolOptionsSetCkgInputName(CirctFirtoolFirtoolOptions options,
191 MlirStringRef value);
192
193MLIR_CAPI_EXPORTED void
194circtFirtoolOptionsSetCkgOutputName(CirctFirtoolFirtoolOptions options,
195 MlirStringRef value);
196
197MLIR_CAPI_EXPORTED void
198circtFirtoolOptionsSetCkgEnableName(CirctFirtoolFirtoolOptions options,
199 MlirStringRef value);
200
201MLIR_CAPI_EXPORTED void
202circtFirtoolOptionsSetCkgTestEnableName(CirctFirtoolFirtoolOptions options,
203 MlirStringRef value);
204
205MLIR_CAPI_EXPORTED void
206circtFirtoolOptionsSetExportModuleHierarchy(CirctFirtoolFirtoolOptions options,
207 bool value);
208
209MLIR_CAPI_EXPORTED void
210circtFirtoolOptionsSetStripFirDebugInfo(CirctFirtoolFirtoolOptions options,
211 bool value);
212
213MLIR_CAPI_EXPORTED void
214circtFirtoolOptionsSetStripDebugInfo(CirctFirtoolFirtoolOptions options,
215 bool value);
216
217MLIR_CAPI_EXPORTED void
218circtFirtoolOptionsSetDisableCSEinClasses(CirctFirtoolFirtoolOptions options,
219 bool value);
220
222 CirctFirtoolFirtoolOptions options, bool value);
223
224//===----------------------------------------------------------------------===//
225// Populate API.
226//===----------------------------------------------------------------------===//
227
228MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulatePreprocessTransforms(
229 MlirPassManager pm, CirctFirtoolFirtoolOptions options);
230
231MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateCHIRRTLToLowFIRRTL(
232 MlirPassManager pm, CirctFirtoolFirtoolOptions options);
233
234MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateLowFIRRTLToHW(
235 MlirPassManager pm, CirctFirtoolFirtoolOptions options,
236 MlirStringRef inputFilename);
237
238MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateHWToSV(
239 MlirPassManager pm, CirctFirtoolFirtoolOptions options);
240
241MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateExportVerilog(
242 MlirPassManager pm, CirctFirtoolFirtoolOptions options,
243 MlirStringCallback callback, void *userData);
244
245MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateExportSplitVerilog(
246 MlirPassManager pm, CirctFirtoolFirtoolOptions options,
247 MlirStringRef directory);
248
249MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateFinalizeIR(
250 MlirPassManager pm, CirctFirtoolFirtoolOptions options);
251
252#ifdef __cplusplus
253}
254#endif
255
256#endif // CIRCT_C_FIRTOOL_FIRTOOL_H
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetLowerMemories(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:172
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetOutputAnnotationFilename(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition Firtool.cpp:224
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetOutputFilename(CirctFirtoolFirtoolOptions options, MlirStringRef filename)
Definition Firtool.cpp:34
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetCkgInputName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition Firtool.cpp:274
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetBuildMode(CirctFirtoolFirtoolOptions options, CirctFirtoolBuildMode value)
Definition Firtool.cpp:109
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetCkgEnableName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition Firtool.cpp:284
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetPreserveAggregate(CirctFirtoolFirtoolOptions options, CirctFirtoolPreserveAggregateMode value)
Definition Firtool.cpp:59
CirctFirtoolVerificationFlavor
Definition Firtool.h:64
@ CIRCT_FIRTOOL_VERIFICATION_FLAVOR_IF_ELSE_FATAL
Definition Firtool.h:66
@ CIRCT_FIRTOOL_VERIFICATION_FLAVOR_NONE
Definition Firtool.h:65
@ CIRCT_FIRTOOL_VERIFICATION_FLAVOR_IMMEDIATE
Definition Firtool.h:67
@ CIRCT_FIRTOOL_VERIFICATION_FLAVOR_SVA
Definition Firtool.h:68
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetCkgModuleName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition Firtool.cpp:269
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetCkgOutputName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition Firtool.cpp:279
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetEmitSeparateAlwaysBlocks(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:244
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetStripFirDebugInfo(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:299
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetDisableCSEinClasses(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:309
CirctFirtoolCompanionMode
Definition Firtool.h:42
@ CIRCT_FIRTOOL_COMPANION_MODE_BIND
Definition Firtool.h:43
@ CIRCT_FIRTOOL_COMPANION_MODE_DROP
Definition Firtool.h:45
@ CIRCT_FIRTOOL_COMPANION_MODE_INSTANTIATE
Definition Firtool.h:44
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetAddVivadoRAMAddressConflictSynthesisBugWorkaround(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:264
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetBlackBoxRootPath(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition Firtool.cpp:177
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetNoDedup(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:143
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetLowerAnnotationsNoRefTypePorts(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:49
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetCkgTestEnableName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition Firtool.cpp:289
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetDisableOptimization(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:133
#define DEFINE_C_API_STRUCT(name, storage)
Definition Firtool.h:15
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetCompanionMode(CirctFirtoolFirtoolOptions options, CirctFirtoolCompanionMode value)
Definition Firtool.cpp:148
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetEtcDisableRegisterExtraction(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:254
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetEnableDebugInfo(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:104
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetVerificationFlavor(CirctFirtoolFirtoolOptions options, CirctFirtoolVerificationFlavor value)
MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulatePreprocessTransforms(MlirPassManager pm, CirctFirtoolFirtoolOptions options)
Definition Firtool.cpp:325
CirctFirtoolRandomKind
Definition Firtool.h:56
@ CIRCT_FIRTOOL_RANDOM_KIND_MEM
Definition Firtool.h:58
@ CIRCT_FIRTOOL_RANDOM_KIND_NONE
Definition Firtool.h:57
@ CIRCT_FIRTOOL_RANDOM_KIND_REG
Definition Firtool.h:59
@ CIRCT_FIRTOOL_RANDOM_KIND_ALL
Definition Firtool.h:60
MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateExportSplitVerilog(MlirPassManager pm, CirctFirtoolFirtoolOptions options, MlirStringRef directory)
Definition Firtool.cpp:363
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetDisableAggressiveMergeConnections(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:167
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetDisableUnknownAnnotations(CirctFirtoolFirtoolOptions options, bool disable)
Definition Firtool.cpp:39
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetReplSeqMemFile(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition Firtool.cpp:187
MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateLowFIRRTLToHW(MlirPassManager pm, CirctFirtoolFirtoolOptions options, MlirStringRef inputFilename)
Definition Firtool.cpp:339
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetExtractTestCode(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:192
MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateCHIRRTLToLowFIRRTL(MlirPassManager pm, CirctFirtoolFirtoolOptions options)
Definition Firtool.cpp:332
MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateHWToSV(MlirPassManager pm, CirctFirtoolFirtoolOptions options)
Definition Firtool.cpp:347
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetVbToBv(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:138
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetAddMuxPragmas(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:234
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetAllowAddingPortsOnPublic(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:54
MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateExportVerilog(MlirPassManager pm, CirctFirtoolFirtoolOptions options, MlirStringCallback callback, void *userData)
Definition Firtool.cpp:353
MLIR_CAPI_EXPORTED CirctFirtoolFirtoolOptions circtFirtoolOptionsCreateDefault(void)
MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateFinalizeIR(MlirPassManager pm, CirctFirtoolFirtoolOptions options)
Definition Firtool.cpp:371
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetDisableLayerSink(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:128
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetEtcDisableInstanceExtraction(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:249
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetReplSeqMem(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:182
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetDisableRandom(CirctFirtoolFirtoolOptions options, CirctFirtoolRandomKind value)
Definition Firtool.cpp:202
CirctFirtoolPreserveAggregateMode
Definition Firtool.h:26
@ CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_NONE
Definition Firtool.h:27
@ CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_ALL
Definition Firtool.h:30
@ CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_VEC
Definition Firtool.h:29
@ CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_ONE_DIM_VEC
Definition Firtool.h:28
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetDisableAnnotationsClassless(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:44
CirctFirtoolBuildMode
Definition Firtool.h:49
@ CIRCT_FIRTOOL_BUILD_MODE_RELEASE
Definition Firtool.h:52
@ CIRCT_FIRTOOL_BUILD_MODE_DEBUG
Definition Firtool.h:51
@ CIRCT_FIRTOOL_BUILD_MODE_DEFAULT
Definition Firtool.h:50
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetEnableAnnotationWarning(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:229
MLIR_CAPI_EXPORTED void circtFirtoolOptionsDestroy(CirctFirtoolFirtoolOptions options)
Definition Firtool.cpp:30
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetPreserveValues(CirctFirtoolFirtoolOptions options, CirctFirtoolPreserveValuesMode value)
Definition Firtool.cpp:82
CirctFirtoolPreserveValuesMode
Definition Firtool.h:34
@ CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_STRIP
Definition Firtool.h:35
@ CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_ALL
Definition Firtool.h:38
@ CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_NAMED
Definition Firtool.h:37
@ CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_NONE
Definition Firtool.h:36
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetExportModuleHierarchy(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:294
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetStripDebugInfo(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:304
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetSelectDefaultInstanceChoice(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:315
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetEtcDisableModuleInlining(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:259
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetIgnoreReadEnableMem(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:197