From 33136da7457e0bdfa2148b900ad81f00d13bdc84 Mon Sep 17 00:00:00 2001 From: David Plass Date: Tue, 13 Jan 2026 08:16:31 -0800 Subject: [PATCH] [Proc-scoped channels] Force Codegen 1.5 to be used when proc-scoped channels are generated. PiperOrigin-RevId: 855734644 --- xls/ir/verifier.cc | 14 ++++++++------ xls/tools/codegen.cc | 5 +++++ xls/tools/codegen_main.cc | 5 +++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/xls/ir/verifier.cc b/xls/ir/verifier.cc index 0c1e71c76f..19fae40f1a 100644 --- a/xls/ir/verifier.cc +++ b/xls/ir/verifier.cc @@ -111,7 +111,9 @@ absl::Status VerifyName(FunctionBase* function_base) { // Verify common invariants to function-level constructs. absl::Status VerifyFunctionBase(FunctionBase* function) { - VLOG(2) << absl::StreamFormat("Verifying function %s:", function->name()); + VLOG(2) << "Verifying function " << function->name() << "\n" + << function->DumpIr(); + VLOG(2) << "PSC: " << function->package()->ChannelsAreProcScoped(); XLS_VLOG_LINES(4, function->DumpIr()); XLS_RETURN_IF_ERROR(VerifyName(function)); @@ -600,8 +602,8 @@ absl::Status VerifyPackage( } absl::Status VerifyFunction(Function* function, const VerifyOptions& options) { - VLOG(4) << "Verifying function:\n"; - XLS_VLOG_LINES(4, function->DumpIr()); + VLOG(2) << "Verifying function:\n"; + XLS_VLOG_LINES(2, function->DumpIr()); XLS_RETURN_IF_ERROR(VerifyFunctionBase(function)); @@ -864,7 +866,7 @@ static absl::Status VerifyProcInstantiations(Proc* proc) { } absl::Status VerifyProc(Proc* proc, const VerifyOptions& options) { - VLOG(4) << "Verifying proc:\n"; + VLOG(2) << "Verifying proc:\n"; XLS_VLOG_LINES(4, proc->DumpIr()); XLS_RETURN_IF_ERROR(VerifyFunctionBase(proc)); @@ -1209,8 +1211,8 @@ static absl::Status VerifyDelayLineInstantiation( } absl::Status VerifyBlock(Block* block, const VerifyOptions& options) { - VLOG(4) << "Verifying block:\n"; - XLS_VLOG_LINES(4, block->DumpIr()); + VLOG(2) << "Verifying block:\n"; + XLS_VLOG_LINES(2, block->DumpIr()); XLS_RETURN_IF_ERROR(VerifyFunctionBase(block)); diff --git a/xls/tools/codegen.cc b/xls/tools/codegen.cc index d9d0b43b61..a0071cbd87 100644 --- a/xls/tools/codegen.cc +++ b/xls/tools/codegen.cc @@ -201,6 +201,11 @@ absl::StatusOr CodegenFromMetadata( if (codegen_version == verilog::CodegenOptions::Version::kDefault) { codegen_version = verilog::CodegenOptions::Version::kOneDotZero; } + if (p->ChannelsAreProcScoped()) { + // Force Codegen 1.5 if proc-scoped channels were generated during the IR + // conversion. + codegen_version = verilog::CodegenOptions::Version::kOneDotFive; + } if (codegen_version == verilog::CodegenOptions::Version::kOneDotZero) { if (generator_kind == GENERATOR_KIND_COMBINATIONAL) { diff --git a/xls/tools/codegen_main.cc b/xls/tools/codegen_main.cc index 2cbcdb200d..ec20832e2f 100644 --- a/xls/tools/codegen_main.cc +++ b/xls/tools/codegen_main.cc @@ -73,6 +73,11 @@ absl::Status RealMain(std::string_view ir_path) { XLS_ASSIGN_OR_RETURN(CodegenFlagsProto codegen_flags_proto, GetCodegenFlags()); + if (p->ChannelsAreProcScoped()) { + // Force Codegen 1.5 if proc-scoped channels were generated during the IR + // conversion. + codegen_flags_proto.set_codegen_version(CODEGEN_VERSION_ONE_DOT_FIVE); + } if (codegen_flags_proto.has_reference_residual_data()) { return absl::UnimplementedError( "Reference residual data is not supported in codegen_main; use "