cva6/pd/synth/scripts/dc_setup.tcl
2024-06-04 10:58:09 +02:00

102 lines
4 KiB
Tcl

# Copyright 2021 Thales DIS design services SAS
#
# Licensed under the Solderpad Hardware Licence, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# SPDX-License-Identifier: Apache-2.0 WITH SHL-2.0
# You may obtain a copy of the License at https://solderpad.org/licenses/
#
# Original Author: Jean-Roch COULON - Thales
#
# Variables common to all reference methodology scripts
set PERIOD [getenv PERIOD];
set DESIGN_NAME [getenv DESIGN_NAME] ;# The name of the top-level design
set TARGET [getenv TARGET];
set TECH [getenv TECH_NAME];
set techno [getenv TECH_NAME];
set FOUNDRY_PATH [getenv FOUNDRY_PATH];
set TARGET_LIBRARY_FILES [getenv TARGET_LIBRARY_FILES];
set INPUT_DELAY [getenv INPUT_DELAY];
set OUTPUT_DELAY [getenv OUTPUT_DELAY];
set LOCAL_LIB_PATH [getenv LOCAL_LIB_PATH];
set ADDITIONAL_LINK_LIB_FILES " ";# Extra link logical libraries not included in TARGET_LIBRARY_FILES
# Remove messages
suppress_message LINK-17
suppress_message MWLIBP-300
suppress_message MWLIBP-301
suppress_message MWLIBP-319
suppress_message MWLIBP-319
suppress_message MWLIBP-324
suppress_message MWLIBP-311
suppress_message MWLIBP-032
suppress_message UCN-1
suppress_message UID-282
set ADDITIONAL_SEARCH_PATH " ${FOUNDRY_PATH}/synopsys ${FOUNDRY_PATH} ";
set_app_var search_path ". ${ADDITIONAL_SEARCH_PATH} $search_path"
if {$synopsys_program_name == "dc_shell"} {
set_app_var target_library ${TARGET_LIBRARY_FILES}
set_app_var synthetic_library dw_foundation.sldb
set_app_var link_library "* $target_library $ADDITIONAL_LINK_LIB_FILES $synthetic_library"
}
source -echo -verbose scripts/dc_setup_filenames.tcl
# The following setting removes new variable info messages from the end of the log file
set_app_var sh_new_variable_message false
if {$synopsys_program_name == "dc_shell"} {
#################################################################################
# Design Compiler Setup Variables
#################################################################################
# Use the set_host_options command to enable multicore optimization to improve runtime.
# This feature has special usage and license requirements. Refer to the
# "Support for Multicore Technology" section in the Design Compiler User Guide
# for multicore usage guidelines.
# Note: This is a DC Ultra feature and is not supported in DC Expert.
set_host_options -max_cores 8
# Change alib_library_analysis_path to point to a central cache of analyzed libraries
# to save runtime and disk space. The following setting only reflects the
# default value and should be changed to a central location for best results.
set_app_var alib_library_analysis_path .
# Add any additional Design Compiler variables needed here
define_name_rules verilog \
-target_bus_naming_style "%s\[%d\]" \
-allowed "a-z0-9_" \
-first_restricted "0-9_" \
-replacement_char "_" \
-equal_ports_nets -inout_ports_equal_nets \
-collapse_name_space -case_insensitive -special verilog \
-add_dummy_nets \
-dummy_net_prefix "synp_unconn_%d"
# Eliminate tri-state nets and assign primitives in the output netlist"
set_app_var verilogout_no_tri true
# Preserve FF with not load used as spare"
set_app_var hdlin_preserve_sequential ff+loop_variables
### Power optim
set_app_var power_remove_redundant_clock_gates true
set_app_var power_cg_reconfig_stages true
set_app_var compile_clock_gating_through_hierarchy true
set_app_var power_cg_designware true
set_app_var power_cg_derive_related_clock true
set_app_var do_operand_isolation true
set_app_var power_low_power_placement true
set_app_var power_opto_extra_high_dynamic_power_effort true
### Module name naming style
set_app_var template_parameter_style "%s"
set_app_var template_naming_style "%s"
}