CIRCT  18.0.0git
CalyxToFSM.h
Go to the documentation of this file.
1 //===- CalyxToFSM.h - Calyx to FSM 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 lowers a Calyx control schedule to an FSM
10 // representation.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef CIRCT_CONVERSION_CALYXTOFSM_CALYXTOFSM_H
15 #define CIRCT_CONVERSION_CALYXTOFSM_CALYXTOFSM_H
16 
19 #include "circt/Support/LLVM.h"
20 #include <memory>
21 
22 namespace mlir {
23 class Pass;
24 } // namespace mlir
25 
26 namespace circt {
27 
28 namespace calyxToFSM {
29 // Entry and exit state names of the Calyx control program in the FSM.
30 static constexpr std::string_view sEntryStateName = "fsm_entry";
31 static constexpr std::string_view sExitStateName = "fsm_exit";
32 static constexpr std::string_view sGroupDoneInputs =
33  "calyx.fsm_group_done_inputs";
34 static constexpr std::string_view sGroupGoOutputs =
35  "calyx.fsm_group_go_outputs";
36 static constexpr std::string_view sSSAInputIndices = "calyx.fsm_ssa_inputs";
37 static constexpr std::string_view sFSMTopLevelGoIndex =
38  "calyx.fsm_top_level_go";
39 static constexpr std::string_view sFSMTopLevelDoneIndex =
40  "calyx.fsm_top_level_done";
41 
42 } // namespace calyxToFSM
43 
44 std::unique_ptr<mlir::Pass> createCalyxToFSMPass();
45 std::unique_ptr<mlir::Pass> createMaterializeCalyxToFSMPass();
46 std::unique_ptr<mlir::Pass> createRemoveGroupsFromFSMPass();
47 
48 } // namespace circt
49 
50 #endif // CIRCT_CONVERSION_CALYXTOFSM_CALYXTOFSM_H
static constexpr std::string_view sGroupDoneInputs
Definition: CalyxToFSM.h:32
static constexpr std::string_view sFSMTopLevelGoIndex
Definition: CalyxToFSM.h:37
static constexpr std::string_view sExitStateName
Definition: CalyxToFSM.h:31
static constexpr std::string_view sSSAInputIndices
Definition: CalyxToFSM.h:36
static constexpr std::string_view sFSMTopLevelDoneIndex
Definition: CalyxToFSM.h:39
static constexpr std::string_view sEntryStateName
Definition: CalyxToFSM.h:30
static constexpr std::string_view sGroupGoOutputs
Definition: CalyxToFSM.h:34
This file defines an intermediate representation for circuits acting as an abstraction for constraint...
Definition: DebugAnalysis.h:21
std::unique_ptr< mlir::Pass > createCalyxToFSMPass()
Definition: CalyxToFSM.cpp:402
std::unique_ptr< mlir::Pass > createRemoveGroupsFromFSMPass()
std::unique_ptr< mlir::Pass > createMaterializeCalyxToFSMPass()