mirror of https://github.com/llvm/circt.git
[FIRRTL] Add OutputFile option GCT Sig. Map.
Add an output file option to the GCT Signal Mappings pass. This pass needs to know this information as it must generate a JSON configuration which includes output file information. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
This commit is contained in:
parent
f0a4b7e48a
commit
202f67c18d
|
@ -78,7 +78,8 @@ std::unique_ptr<mlir::Pass> createGrandCentralPass();
|
|||
|
||||
std::unique_ptr<mlir::Pass> createGrandCentralTapsPass();
|
||||
|
||||
std::unique_ptr<mlir::Pass> createGrandCentralSignalMappingsPass();
|
||||
std::unique_ptr<mlir::Pass>
|
||||
createGrandCentralSignalMappingsPass(StringRef outputFilename = "");
|
||||
|
||||
std::unique_ptr<mlir::Pass> createCheckCombCyclesPass();
|
||||
|
||||
|
|
|
@ -365,6 +365,8 @@ def GrandCentralSignalMappings : Pass<"firrtl-grand-central-signal-mappings",
|
|||
"firrtl::CircuitOp"> {
|
||||
let summary = "Generate signal mappings that force/probe remote signals";
|
||||
let constructor = "circt::firrtl::createGrandCentralSignalMappingsPass()";
|
||||
let options = [Option<"outputFilename", "file", "std::string", "",
|
||||
"Output file for the JSON-serialized OMIR data">];
|
||||
}
|
||||
|
||||
def CheckCombCycles : Pass<"firrtl-check-comb-cycles", "firrtl::CircuitOp"> {
|
||||
|
|
|
@ -258,6 +258,9 @@ void ModuleSignalMappings::instantiateMappingsModule(FModuleOp mappingsModule) {
|
|||
class GrandCentralSignalMappingsPass
|
||||
: public GrandCentralSignalMappingsBase<GrandCentralSignalMappingsPass> {
|
||||
void runOnOperation() override;
|
||||
|
||||
public:
|
||||
std::string outputFilename;
|
||||
};
|
||||
|
||||
void GrandCentralSignalMappingsPass::runOnOperation() {
|
||||
|
@ -282,6 +285,9 @@ void GrandCentralSignalMappingsPass::runOnOperation() {
|
|||
}
|
||||
|
||||
std::unique_ptr<mlir::Pass>
|
||||
circt::firrtl::createGrandCentralSignalMappingsPass() {
|
||||
return std::make_unique<GrandCentralSignalMappingsPass>();
|
||||
circt::firrtl::createGrandCentralSignalMappingsPass(StringRef outputFilename) {
|
||||
auto pass = std::make_unique<GrandCentralSignalMappingsPass>();
|
||||
if (!outputFilename.empty())
|
||||
pass->outputFilename = outputFilename;
|
||||
return pass;
|
||||
}
|
||||
|
|
|
@ -500,7 +500,8 @@ processBuffer(MLIRContext &context, TimingScope &ts, llvm::SourceMgr &sourceMgr,
|
|||
auto &circuitPM = pm.nest<firrtl::CircuitOp>();
|
||||
circuitPM.addPass(firrtl::createGrandCentralPass());
|
||||
circuitPM.addPass(firrtl::createGrandCentralTapsPass());
|
||||
circuitPM.addPass(firrtl::createGrandCentralSignalMappingsPass());
|
||||
circuitPM.addPass(
|
||||
firrtl::createGrandCentralSignalMappingsPass(outputFilename));
|
||||
}
|
||||
|
||||
// Read black box source files into the IR.
|
||||
|
|
Loading…
Reference in New Issue