// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
  // The tool sources include the technology setup file,
  // the main synthesis run script and the constraints file
  tool_srcs: ["{proj_root}/hw/foundry/syn/{tool}/setup.tcl"
              "{proj_root}/hw/foundry/syn/{tool}/lib-setup.tcl"
              "{proj_root}/hw/foundry/syn/{tool}/ram-macros-setup.tcl"
              "{proj_root}/hw/syn/tools/{tool}/run-syn.tcl"
              "{sdc_path}/{sdc_file}"]

  // Environment variables that are needed in the synthesis script
  exports: [{"DUT"       : "{dut}"},
            {"CONSTRAINT": "{sdc_file}"},
            {"BUILD_DIR" : "{build_dir}"},
            {"SV_FLIST"  : "{sv_flist}"}]

  // Tool invocation
  build_cmd:  "{job_prefix} dc_shell-xg-t "
  build_opts: ["-f run-syn.tcl"]

  // DC-specific results parsing script that is called after running synthesis
  report_cmd: "{proj_root}/hw/syn/tools/{tool}/parse-syn-report.py "
  report_opts: ["--dut {dut}",
                "--logpath {build_dir} ",
                "--reppath {build_dir}/REPORTS/ ",
                "--outdir {build_dir}"]

  // Restrict the maximum message count in each category
  max_msg_count: 20
  // Do not sanitize regression mails, but do sanitize the published report
  sanitize_email_results:   false
  sanitize_publish_results: true
}
