CIRCT
20.0.0git
|
#include "circt/Dialect/FIRRTL/AnnotationDetails.h"
#include "circt/Dialect/FIRRTL/FIRRTLOps.h"
#include "circt/Dialect/FIRRTL/FIRRTLUtils.h"
#include "circt/Dialect/FIRRTL/Namespace.h"
#include "circt/Dialect/FIRRTL/Passes.h"
#include "circt/Dialect/HW/InnerSymbolNamespace.h"
#include "circt/Dialect/SV/SVOps.h"
#include "circt/Support/Utils.h"
#include "mlir/Pass/Pass.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Mutex.h"
#include "llvm/Support/RWMutex.h"
#include "circt/Dialect/FIRRTL/Passes.h.inc"
Go to the source code of this file.
Classes | |
class | LowerLayersPass |
Namespaces | |
circt | |
The InstanceGraph op interface, see InstanceGraphInterface.td for more details. | |
circt::firrtl | |
Macros | |
#define | DEBUG_TYPE "firrtl-lower-layers" |
#define | GEN_PASS_DEF_LOWERLAYERS |
Typedefs | |
using | InnerRefMap = DenseMap< hw::InnerRefAttr, std::pair< hw::InnerSymAttr, StringAttr > > |
Functions | |
static void | appendName (StringRef name, SmallString< 32 > &output, bool toLower=false, bool verilogSafe=false) |
static void | appendName (SymbolRefAttr name, SmallString< 32 > &output, bool toLower=false, bool verilogSafe=false) |
static SmallString< 32 > | moduleNameForLayer (StringRef moduleName, SymbolRefAttr layerName) |
For a layer @A::@B::@C in module Module, the generated module is called Module_A_B_C . More... | |
static SmallString< 32 > | instanceNameForLayer (SymbolRefAttr layerName) |
For a layerblock @A::@B::@C , the generated instance is called a_b_c . More... | |
static SmallString< 32 > | fileNameForLayer (StringRef circuitName, SymbolRefAttr layerName) |
For all layerblocks @A::@B::@C in a circuit called Circuit, the output filename is layers-Circuit-A-B-C.sv . More... | |
static SmallString< 32 > | macroNameForLayer (ArrayRef< FlatSymbolRefAttr > layerName) |
For a layerblock @A::@B::@C , the verilog macro is A_B_C . More... | |
#define DEBUG_TYPE "firrtl-lower-layers" |
Definition at line 25 of file LowerLayers.cpp.
#define GEN_PASS_DEF_LOWERLAYERS |
Definition at line 29 of file LowerLayers.cpp.
using InnerRefMap = DenseMap<hw::InnerRefAttr, std::pair<hw::InnerSymAttr, StringAttr> > |
Definition at line 58 of file LowerLayers.cpp.
|
static |
Definition at line 65 of file LowerLayers.cpp.
Referenced by appendName(), fileNameForLayer(), instanceNameForLayer(), macroNameForLayer(), and moduleNameForLayer().
|
static |
Definition at line 82 of file LowerLayers.cpp.
References appendName().
|
static |
For all layerblocks @A::@B::@C
in a circuit called Circuit, the output filename is layers-Circuit-A-B-C.sv
.
Definition at line 109 of file LowerLayers.cpp.
References appendName().
Referenced by LowerLayersPass::outputFileForLayer().
|
static |
For a layerblock @A::@B::@C
, the generated instance is called a_b_c
.
Definition at line 101 of file LowerLayers.cpp.
References appendName().
Referenced by LowerLayersPass::runOnModuleBody().
|
static |
For a layerblock @A::@B::@C
, the verilog macro is A_B_C
.
Definition at line 121 of file LowerLayers.cpp.
References appendName().
Referenced by LowerLayersPass::preprocessLayers().
|
static |
For a layer @A::@B::@C
in module Module, the generated module is called Module_A_B_C
.
Definition at line 91 of file LowerLayers.cpp.
References appendName().
Referenced by LowerLayersPass::runOnOperation().