CIRCT 23.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
71// NOLINTNEXTLINE(modernize-use-using)
78
79MLIR_CAPI_EXPORTED CirctFirtoolFirtoolOptions
81MLIR_CAPI_EXPORTED void
82circtFirtoolOptionsDestroy(CirctFirtoolFirtoolOptions options);
83
84MLIR_CAPI_EXPORTED void
85circtFirtoolOptionsSetOutputFilename(CirctFirtoolFirtoolOptions options,
86 MlirStringRef filename);
88 CirctFirtoolFirtoolOptions options, bool disable);
89
91 CirctFirtoolFirtoolOptions options, bool value);
92
94 CirctFirtoolFirtoolOptions options, bool value);
95
96MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetPreserveAggregate(
97 CirctFirtoolFirtoolOptions options,
99
100MLIR_CAPI_EXPORTED void
101circtFirtoolOptionsSetPreserveValues(CirctFirtoolFirtoolOptions options,
103
104MLIR_CAPI_EXPORTED void
105circtFirtoolOptionsSetEnableDebugInfo(CirctFirtoolFirtoolOptions options,
106 bool value);
107
108MLIR_CAPI_EXPORTED void
109circtFirtoolOptionsSetBuildMode(CirctFirtoolFirtoolOptions options,
111MLIR_CAPI_EXPORTED void
112circtFirtoolOptionsSetDisableLayerSink(CirctFirtoolFirtoolOptions options,
113 bool value);
114
115MLIR_CAPI_EXPORTED void
116circtFirtoolOptionsSetDisableOptimization(CirctFirtoolFirtoolOptions options,
117 bool value);
118
119MLIR_CAPI_EXPORTED void
120circtFirtoolOptionsSetVbToBv(CirctFirtoolFirtoolOptions options, bool value);
121
122MLIR_CAPI_EXPORTED void
123circtFirtoolOptionsSetNoDedup(CirctFirtoolFirtoolOptions options, bool value);
124
125MLIR_CAPI_EXPORTED void
126circtFirtoolOptionsSetCompanionMode(CirctFirtoolFirtoolOptions options,
128
129MLIR_CAPI_EXPORTED void
130circtFirtoolOptionsSetNoViews(CirctFirtoolFirtoolOptions options, bool value);
131
133 CirctFirtoolFirtoolOptions options, bool value);
134
135MLIR_CAPI_EXPORTED void
136circtFirtoolOptionsSetLowerMemories(CirctFirtoolFirtoolOptions options,
137 bool value);
138
139MLIR_CAPI_EXPORTED void
140circtFirtoolOptionsSetBlackBoxRootPath(CirctFirtoolFirtoolOptions options,
141 MlirStringRef value);
142
143MLIR_CAPI_EXPORTED void
144circtFirtoolOptionsSetReplSeqMem(CirctFirtoolFirtoolOptions options,
145 bool value);
146
147MLIR_CAPI_EXPORTED void
148circtFirtoolOptionsSetReplSeqMemFile(CirctFirtoolFirtoolOptions options,
149 MlirStringRef value);
150
151MLIR_CAPI_EXPORTED void
152circtFirtoolOptionsSetIgnoreReadEnableMem(CirctFirtoolFirtoolOptions options,
153 bool value);
154
155MLIR_CAPI_EXPORTED void
156circtFirtoolOptionsSetDisableRandom(CirctFirtoolFirtoolOptions options,
158
160 CirctFirtoolFirtoolOptions options, MlirStringRef value);
161
163 CirctFirtoolFirtoolOptions options, bool value);
164
165MLIR_CAPI_EXPORTED void
166circtFirtoolOptionsSetAddMuxPragmas(CirctFirtoolFirtoolOptions options,
167 bool value);
168
169MLIR_CAPI_EXPORTED void
170circtFirtoolOptionsSetVerificationFlavor(CirctFirtoolFirtoolOptions options,
172
174 CirctFirtoolFirtoolOptions options, bool value);
175
176MLIR_CAPI_EXPORTED void
178 CirctFirtoolFirtoolOptions options, bool value);
179
180MLIR_CAPI_EXPORTED void
181circtFirtoolOptionsSetCkgModuleName(CirctFirtoolFirtoolOptions options,
182 MlirStringRef value);
183
184MLIR_CAPI_EXPORTED void
185circtFirtoolOptionsSetCkgInputName(CirctFirtoolFirtoolOptions options,
186 MlirStringRef value);
187
188MLIR_CAPI_EXPORTED void
189circtFirtoolOptionsSetCkgOutputName(CirctFirtoolFirtoolOptions options,
190 MlirStringRef value);
191
192MLIR_CAPI_EXPORTED void
193circtFirtoolOptionsSetCkgEnableName(CirctFirtoolFirtoolOptions options,
194 MlirStringRef value);
195
196MLIR_CAPI_EXPORTED void
197circtFirtoolOptionsSetCkgTestEnableName(CirctFirtoolFirtoolOptions options,
198 MlirStringRef value);
199
200MLIR_CAPI_EXPORTED void
201circtFirtoolOptionsSetExportModuleHierarchy(CirctFirtoolFirtoolOptions options,
202 bool value);
203
204MLIR_CAPI_EXPORTED void
205circtFirtoolOptionsSetStripFirDebugInfo(CirctFirtoolFirtoolOptions options,
206 bool value);
207
208MLIR_CAPI_EXPORTED void
209circtFirtoolOptionsSetStripDebugInfo(CirctFirtoolFirtoolOptions options,
210 bool value);
211
212MLIR_CAPI_EXPORTED void
213circtFirtoolOptionsSetDisableCSEinClasses(CirctFirtoolFirtoolOptions options,
214 bool value);
215
217 CirctFirtoolFirtoolOptions options, bool value);
218
219MLIR_CAPI_EXPORTED void
220circtFirtoolOptionsSetDomainMode(CirctFirtoolFirtoolOptions options,
222
223//===----------------------------------------------------------------------===//
224// Populate API.
225//===----------------------------------------------------------------------===//
226
227MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulatePreprocessTransforms(
228 MlirPassManager pm, CirctFirtoolFirtoolOptions options);
229
230MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateCHIRRTLToLowFIRRTL(
231 MlirPassManager pm, CirctFirtoolFirtoolOptions options);
232
233MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateLowFIRRTLToHW(
234 MlirPassManager pm, CirctFirtoolFirtoolOptions options,
235 MlirStringRef inputFilename);
236
237MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateHWToSV(
238 MlirPassManager pm, CirctFirtoolFirtoolOptions options);
239
240MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateExportVerilog(
241 MlirPassManager pm, CirctFirtoolFirtoolOptions options,
242 MlirStringCallback callback, void *userData);
243
244MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateExportSplitVerilog(
245 MlirPassManager pm, CirctFirtoolFirtoolOptions options,
246 MlirStringRef directory);
247
248MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateFinalizeIR(
249 MlirPassManager pm, CirctFirtoolFirtoolOptions options);
250
251#ifdef __cplusplus
252}
253#endif
254
255#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:219
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:254
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetBuildMode(CirctFirtoolFirtoolOptions options, CirctFirtoolBuildMode value)
Definition Firtool.cpp:104
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetCkgEnableName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition Firtool.cpp:264
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetPreserveAggregate(CirctFirtoolFirtoolOptions options, CirctFirtoolPreserveAggregateMode value)
Definition Firtool.cpp:54
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
CirctFirtoolDomainMode
Definition Firtool.h:72
@ CIRCT_FIRTOOL_DOMAIN_MODE_INFER_ALL
Definition Firtool.h:76
@ CIRCT_FIRTOOL_DOMAIN_MODE_CHECK
Definition Firtool.h:74
@ CIRCT_FIRTOOL_DOMAIN_MODE_INFER
Definition Firtool.h:75
@ CIRCT_FIRTOOL_DOMAIN_MODE_DISABLE
Definition Firtool.h:73
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetCkgModuleName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition Firtool.cpp:249
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetCkgOutputName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition Firtool.cpp:259
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetEmitSeparateAlwaysBlocks(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:239
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetStripFirDebugInfo(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:279
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetDisableCSEinClasses(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:289
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:244
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:138
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:269
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetDisableOptimization(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:128
#define DEFINE_C_API_STRUCT(name, storage)
Definition Firtool.h:15
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetCompanionMode(CirctFirtoolFirtoolOptions options, CirctFirtoolCompanionMode value)
Definition Firtool.cpp:143
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetEnableDebugInfo(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:99
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 circtFirtoolOptionsSetDomainMode(CirctFirtoolFirtoolOptions options, CirctFirtoolDomainMode)
Definition Firtool.cpp:300
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 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:133
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetAddMuxPragmas(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:229
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:123
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetReplSeqMem(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:182
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetNoViews(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:162
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetDisableRandom(CirctFirtoolFirtoolOptions options, CirctFirtoolRandomKind value)
Definition Firtool.cpp:197
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:224
MLIR_CAPI_EXPORTED void circtFirtoolOptionsDestroy(CirctFirtoolFirtoolOptions options)
Definition Firtool.cpp:30
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetPreserveValues(CirctFirtoolFirtoolOptions options, CirctFirtoolPreserveValuesMode value)
Definition Firtool.cpp:77
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:274
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetStripDebugInfo(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:284
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetSelectDefaultInstanceChoice(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:295
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetIgnoreReadEnableMem(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:192