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
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
152circtFirtoolOptionsSetExtractTestCode(CirctFirtoolFirtoolOptions options,
153 bool value);
154
155MLIR_CAPI_EXPORTED void
156circtFirtoolOptionsSetIgnoreReadEnableMem(CirctFirtoolFirtoolOptions options,
157 bool value);
158
159MLIR_CAPI_EXPORTED void
160circtFirtoolOptionsSetDisableRandom(CirctFirtoolFirtoolOptions options,
162
164 CirctFirtoolFirtoolOptions options, MlirStringRef value);
165
167 CirctFirtoolFirtoolOptions options, bool value);
168
169MLIR_CAPI_EXPORTED void
170circtFirtoolOptionsSetAddMuxPragmas(CirctFirtoolFirtoolOptions options,
171 bool value);
172
173MLIR_CAPI_EXPORTED void
174circtFirtoolOptionsSetVerificationFlavor(CirctFirtoolFirtoolOptions options,
176
178 CirctFirtoolFirtoolOptions options, bool value);
179
181 CirctFirtoolFirtoolOptions options, bool value);
182
184 CirctFirtoolFirtoolOptions options, bool value);
185
187 CirctFirtoolFirtoolOptions options, bool value);
188
189MLIR_CAPI_EXPORTED void
191 CirctFirtoolFirtoolOptions options, bool value);
192
193MLIR_CAPI_EXPORTED void
194circtFirtoolOptionsSetCkgModuleName(CirctFirtoolFirtoolOptions options,
195 MlirStringRef value);
196
197MLIR_CAPI_EXPORTED void
198circtFirtoolOptionsSetCkgInputName(CirctFirtoolFirtoolOptions options,
199 MlirStringRef value);
200
201MLIR_CAPI_EXPORTED void
202circtFirtoolOptionsSetCkgOutputName(CirctFirtoolFirtoolOptions options,
203 MlirStringRef value);
204
205MLIR_CAPI_EXPORTED void
206circtFirtoolOptionsSetCkgEnableName(CirctFirtoolFirtoolOptions options,
207 MlirStringRef value);
208
209MLIR_CAPI_EXPORTED void
210circtFirtoolOptionsSetCkgTestEnableName(CirctFirtoolFirtoolOptions options,
211 MlirStringRef value);
212
213MLIR_CAPI_EXPORTED void
214circtFirtoolOptionsSetExportModuleHierarchy(CirctFirtoolFirtoolOptions options,
215 bool value);
216
217MLIR_CAPI_EXPORTED void
218circtFirtoolOptionsSetStripFirDebugInfo(CirctFirtoolFirtoolOptions options,
219 bool value);
220
221MLIR_CAPI_EXPORTED void
222circtFirtoolOptionsSetStripDebugInfo(CirctFirtoolFirtoolOptions options,
223 bool value);
224
225MLIR_CAPI_EXPORTED void
226circtFirtoolOptionsSetDisableCSEinClasses(CirctFirtoolFirtoolOptions options,
227 bool value);
228
230 CirctFirtoolFirtoolOptions options, bool value);
231
232MLIR_CAPI_EXPORTED void
233circtFirtoolOptionsSetDomainMode(CirctFirtoolFirtoolOptions options,
235
236//===----------------------------------------------------------------------===//
237// Populate API.
238//===----------------------------------------------------------------------===//
239
240MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulatePreprocessTransforms(
241 MlirPassManager pm, CirctFirtoolFirtoolOptions options);
242
243MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateCHIRRTLToLowFIRRTL(
244 MlirPassManager pm, CirctFirtoolFirtoolOptions options);
245
246MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateLowFIRRTLToHW(
247 MlirPassManager pm, CirctFirtoolFirtoolOptions options,
248 MlirStringRef inputFilename);
249
250MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateHWToSV(
251 MlirPassManager pm, CirctFirtoolFirtoolOptions options);
252
253MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateExportVerilog(
254 MlirPassManager pm, CirctFirtoolFirtoolOptions options,
255 MlirStringCallback callback, void *userData);
256
257MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateExportSplitVerilog(
258 MlirPassManager pm, CirctFirtoolFirtoolOptions options,
259 MlirStringRef directory);
260
261MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateFinalizeIR(
262 MlirPassManager pm, CirctFirtoolFirtoolOptions options);
263
264#ifdef __cplusplus
265}
266#endif
267
268#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:104
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: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: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: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:289
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 circtFirtoolOptionsSetEtcDisableRegisterExtraction(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:254
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:345
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:383
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetDomainMode(CirctFirtoolFirtoolOptions options, CirctFirtoolDomainMode)
Definition Firtool.cpp:320
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:359
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:352
MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateHWToSV(MlirPassManager pm, CirctFirtoolFirtoolOptions options)
Definition Firtool.cpp:367
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:234
MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateExportVerilog(MlirPassManager pm, CirctFirtoolFirtoolOptions options, MlirStringCallback callback, void *userData)
Definition Firtool.cpp:373
MLIR_CAPI_EXPORTED CirctFirtoolFirtoolOptions circtFirtoolOptionsCreateDefault(void)
MLIR_CAPI_EXPORTED MlirLogicalResult circtFirtoolPopulateFinalizeIR(MlirPassManager pm, CirctFirtoolFirtoolOptions options)
Definition Firtool.cpp:391
MLIR_CAPI_EXPORTED void circtFirtoolOptionsSetDisableLayerSink(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:123
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 circtFirtoolOptionsSetNoViews(CirctFirtoolFirtoolOptions options, bool value)
Definition Firtool.cpp:162
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: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: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