CIRCT  20.0.0git
FIRRTLToHW.h
Go to the documentation of this file.
1 //===- FIRRTLToHW.h - FIRRTL to HW conversion pass --------------*- 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 declares passes which together will lower the FIRRTL dialect to
10 // HW and SV dialects.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef CIRCT_CONVERSION_FIRRTLTOHW_FIRRTLTOHW_H
15 #define CIRCT_CONVERSION_FIRRTLTOHW_FIRRTLTOHW_H
16 
17 #include "circt/Support/LLVM.h"
18 #include <memory>
19 
20 namespace mlir {
21 class Pass;
22 } // namespace mlir
23 
24 namespace circt {
25 namespace firrtl {
26 enum class VerificationFlavor {
27  // Use the flavor specified by the op.
28  // TOOD: Drop this option once the migration finished.
29  None,
30  // Use `if(cond) else $fatal(..)` format.
32  // Use immediate form.
33  Immediate,
34  // Use SVA.
35  SVA
36 };
37 } // namespace firrtl
38 
39 #define GEN_PASS_DECL_LOWERFIRRTLTOHW
40 #include "circt/Conversion/Passes.h.inc"
41 
42 std::unique_ptr<mlir::Pass>
43 createLowerFIRRTLToHWPass(bool enableAnnotationWarning = false,
44  firrtl::VerificationFlavor assertionFlavor =
46 
47 } // namespace circt
48 
49 #endif // CIRCT_CONVERSION_FIRRTLTOHW_FIRRTLTOHW_H
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Definition: DebugAnalysis.h:21
std::unique_ptr< mlir::Pass > createLowerFIRRTLToHWPass(bool enableAnnotationWarning=false, firrtl::VerificationFlavor assertionFlavor=firrtl::VerificationFlavor::None)
This is the pass constructor.
Definition: LowerToHW.cpp:586