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 "