// 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}"
              "{foundry_sdc_path}/{foundry_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 --depth {area_depth}"
  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
}
