IC Compiler™ Tool Commands Version L-2016.03, March 2016 Copyright Notice and Proprietary Information ©2016 Synopsys, Inc. All rights reserved. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. Destination Control Statement All technical data contained in this publication is subject to the export control laws of the United States of America. Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader's responsibility to determine the applicable regulations and to comply with them. Disclaimer SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Trademarks Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth at http://www.synopsys.com/Company/Pages/Trademarks.aspx. All other product or company names may be trademarks of their respective owners. Third-Party Links Any links to third-party websites included in this document are for your convenience only. Synopsys does not endorse and is not responsible for such websites and their practices, including privacy practices, availability, and content. Synopsys, Inc. 690 E. Middlefield Road Mountain View, CA 94043 www.synopsys.com IC Compiler™ Tool Commands, Version L-2016.03 ii Copyright Notice for the Command-Line Editing Feature © 1992, 1993 The Regents of the University of California. All rights reserved. This code is derived from software contributed to Berkeley by Christos Zoulas of Cornell University. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3.All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors. 4.Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Copyright Notice for the Line-Editing Library © 1992 Simmule Turner and Rich Salz. All rights reserved. This software is not subject to any license of the American Telephone and Telegraph Company or of the Regents of the University of California. Permission is granted to anyone to use this software for any purpose on any computer system, and to alter it and redistribute it freely, subject to the following restrictions: 1.The authors are not responsible for the consequences of use of this software, no matter how awful, even if they arise from flaws in it. 2.The origin of this software must not be misrepresented, either by explicit claim or by omission. Since few users ever read sources, credits must appear in the documentation. 3.Altered versions must be plainly marked as such, and must not be misrepresented as being the original software. Since few users ever read sources, credits must appear in the documentation. 4.This notice may not be removed or altered. IC Compiler™ Tool Commands, Version L-2016.03 iii IC Compiler™ Tool Commands, Version L-2016.03 iv Contents 1 add_buffer_on_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 add_clock_drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 add_distributed_hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 add_drc_error_detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 add_end_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 add_multisource_drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 add_open_drc_error_detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 add_pg_pin_to_db . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 add_pg_pin_to_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 add_port_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 add_power_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 add_pst_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 add_row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 add_tap_cell_array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 add_to_collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 add_to_rp_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 adjust_fp_floorplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 adjust_fp_io_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 adjust_premesh_connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 align_fp_pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 align_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 all_active_scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 v IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_ao_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 all_bounds_of_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 all_cells_in_bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 all_clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 all_connected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 all_connectivity_fanin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 all_connectivity_fanout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 all_critical_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 all_critical_pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 all_designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 all_dont_touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 all_drc_violated_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 all_fanin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 all_fanout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 all_fixed_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 all_high_fanout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 all_ideal_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 all_inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 all_isolation_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 all_level_shifters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 all_macro_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 all_mtcmos_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 all_objects_in_bounding_box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 all_outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 all_physical_only_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 all_physical_only_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 all_physical_only_ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 all_registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 all_rp_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 all_rp_hierarchicals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 all_rp_inclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 all_rp_instantiations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 all_rp_references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Contents vi IC Compiler™ Tool Commands Version L-2016.03 all_scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 all_size_only_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 all_spare_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 all_threestate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 all_tieoff_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 allocate_fp_budgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 analyze_design_violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 analyze_displacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 analyze_fp_rail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 analyze_library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 analyze_logic_connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 analyze_mv_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 analyze_rail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 analyze_subcircuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 append_to_collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 apply_fast_pba_analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 apropos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 archive_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 assign_flip_chip_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 associate_mv_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 associate_supply_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 balance_inter_clock_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 calculate_caa_based_yield2db . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 change_connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 change_fp_soft_macro_to_black_box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 change_link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 change_macro_view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 change_names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 change_selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 change_via_master . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 change_working_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Chapter 1: Contents Contents vii 1-vii IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 change_working_design_stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 characterize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 check_block_abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 check_clock_tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 check_database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 check_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 check_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 check_fp_budget_result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 check_fp_pin_alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 check_fp_pin_assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 check_fp_rail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 check_fp_timing_environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 check_freeze_silicon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 check_interface_optimization_setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 check_isolation_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 check_legality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 check_level_shifters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 check_library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 check_license . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 check_mpc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 check_mv_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 check_noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 check_physical_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 check_physical_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 check_primetime_icc_consistency_settings . . . . . . . . . . . . . . . . . . . . . . . . . . 374 check_rail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 check_reserved_placement_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 check_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 check_routeability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 check_rp_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 check_scan_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 check_scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 check_signoff_correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 Contents viii IC Compiler™ Tool Commands Version L-2016.03 check_timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 check_tlu_plus_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 check_zrt_routability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 clock_opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 clock_opt_feasibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 close_distributed_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 close_mw_cel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 close_mw_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 close_rail_result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 commit_fp_group_block_ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 commit_fp_plan_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 commit_fp_rail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 commit_skew_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 compare_collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 compare_delay_calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 compare_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 compare_rc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 compile_clock_tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 compile_fp_clock_plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 compile_power_plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 compile_premesh_tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 compress_scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 compute_polygons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 connect_logic_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 connect_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 connect_pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 connect_power_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 connect_spare_diode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 connect_supply_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 connect_tie_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 convert_from_polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 Chapter 1: Contents Contents ix 1-ix IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 convert_mw_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 convert_to_polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 convert_wire_ends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 convert_wire_to_pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 copy_collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 copy_floorplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 copy_mim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 copy_mw_cel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 copy_mw_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 copy_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 count_drc_violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 cputime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 create_auto_shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 create_banking_guidance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 create_base_array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 create_block_abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 create_boundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 create_bounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 create_buffer_tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 create_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 create_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 create_clock_mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556 create_command_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 create_connview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 create_custom_wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 create_die_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 create_differential_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 create_drc_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 create_drc_error_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 create_edit_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 create_floorplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 create_fp_block_shielding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 create_fp_blockages_for_child_hardmacro . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 Contents x IC Compiler™ Tool Commands Version L-2016.03 create_fp_group_block_ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 create_fp_pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 create_fp_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 create_fp_plan_group_padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 create_fp_virtual_pad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 create_freeze_silicon_leq_change_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613 create_generated_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 create_lib_track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 create_logic_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624 create_logic_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 create_macro_fram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627 create_mask_constraint_route_guides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 create_mtcmos_switch_cell_sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641 create_mw_cel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 create_mw_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 create_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648 create_net_search_pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 create_net_shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656 create_on_demand_netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662 create_open_drc_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 create_open_locator_drc_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672 create_operating_conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676 create_pad_rings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679 create_partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682 create_pg_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 create_physical_bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687 create_physical_buses_from_patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690 create_pin_guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693 create_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697 create_placement_blockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700 create_plan_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705 create_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708 create_power_domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710 Chapter 1: Contents Contents xi 1-xi IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_power_plan_regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715 create_power_straps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721 create_power_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734 create_power_switch_array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738 create_power_switch_ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745 create_preroute_vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756 create_pst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766 create_qor_snapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768 create_qtm_constraint_arc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772 create_qtm_delay_arc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776 create_qtm_drive_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781 create_qtm_generated_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784 create_qtm_load_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786 create_qtm_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788 create_qtm_path_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790 create_qtm_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793 create_rail_setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795 create_rdl_power_extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798 create_rdl_shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801 create_rectangular_rings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805 create_rectilinear_rings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812 create_register_bank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818 create_route_guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820 create_routing_blockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826 create_routing_corridor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829 create_rp_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831 create_scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840 create_short_drc_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842 create_signoff_setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846 create_site_row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848 create_spacing_drc_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851 create_stack_via_on_pad_pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856 create_supply_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860 Contents xii IC Compiler™ Tool Commands Version L-2016.03 create_supply_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863 create_supply_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865 create_terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869 create_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872 create_track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875 create_user_shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879 create_via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884 create_via_master . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889 create_via_region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893 create_voltage_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896 create_voltage_area_feedthroughs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900 create_zrt_shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905 current_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913 current_design_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915 current_instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916 current_mw_cel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919 current_mw_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922 current_scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924 cut_fp_preroutes_into_plan_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926 cut_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929 cut_row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933 date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935 decrypt_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937 define_antenna_accumulation_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939 define_antenna_layer_ratio_scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941 define_antenna_layer_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943 define_antenna_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946 define_bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951 define_io_antenna_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953 define_io_diode_protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955 define_io_gate_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957 define_name_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959 define_proc_attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 Chapter 1: Contents Contents xiii 1-xiii IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 define_routing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981 define_scaling_lib_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993 define_user_attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995 define_via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998 define_voltage_area_routing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000 define_zrt_redundant_vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 delete_operating_conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007 derive_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009 derive_mpc_macro_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011 derive_mpc_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014 derive_mpc_port_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018 derive_pg_connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021 derive_placement_blockages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028 derive_reserved_placement_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030 disable_double_patterning_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032 disconnect_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033 display_flip_chip_route_flylines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035 display_rdl_route_flylines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1037 distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040 distribute_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042 drive_of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047 echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050 eco_netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052 enable_double_patterning_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058 enable_primetime_icc_consistency_settings . . . . . . . . . . . . . . . . . . . . . . . . . 1060 enable_write_lib_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062 end_fp_trace_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064 error_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065 estimate_fp_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067 estimate_fp_black_boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072 estimate_rc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076 evaluate_macro_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078 exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081 Contents xiv IC Compiler™ Tool Commands Version L-2016.03 expand_flip_chip_cell_locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083 expand_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085 explore_power_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088 export_advanced_technology_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094 export_icc2_frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095 extend_mw_layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1097 extract_blockage_pin_via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099 extract_fp_rail_to_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109 extract_fp_relative_location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113 extract_fram_property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115 extract_hier_antenna_property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121 extract_rc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123 extract_rp_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125 extract_zrt_hier_antenna_property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128 filter_collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130 find_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134 fix_isolated_via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1137 fix_signal_em . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141 flatten_clock_gating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144 flatten_fp_black_boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147 flatten_fp_hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149 flip_mim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153 flip_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155 focal_opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159 foreach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167 foreach_in_collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1169 get_adjusted_endpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1172 get_alternative_lib_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174 get_always_on_logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 get_app_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1180 get_attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184 get_bounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187 get_buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1190 Chapter 1: Contents Contents xv 1-xv IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 get_cell_sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194 get_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1197 get_clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204 get_command_option_values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1207 get_core_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209 get_coupling_capacitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211 get_cts_scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213 get_defined_commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215 get_design_lib_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218 get_die_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 get_dominant_scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222 get_dont_touch_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225 get_dont_touch_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1227 get_drc_errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1230 get_edit_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1233 get_em_max_toggle_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236 get_error_view_property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239 get_fill_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1242 get_flat_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245 get_flat_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1250 get_flat_pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256 get_floorplan_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1261 get_fp_trace_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1263 get_fp_wirelength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1265 get_generated_clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268 get_gui_stroke_bindings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271 get_latch_loop_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1273 get_layer_attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1275 get_layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1277 get_lib_attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1280 get_lib_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 get_lib_pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1286 get_libs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1289 Contents xvi IC Compiler™ Tool Commands Version L-2016.03 get_license . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1293 get_location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1295 get_magnet_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1297 get_matching_nets_for_pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1300 get_message_ids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1303 get_message_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1305 get_mw_cels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1308 get_net_shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1312 get_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1318 get_new_bounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1327 get_object_fixed_edit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1329 get_object_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1331 get_object_snap_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1333 get_path_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1336 get_physical_buses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1339 get_physical_lib_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 get_physical_lib_pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1347 get_physical_libs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1351 get_pin_guides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355 get_pin_shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1358 get_pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1364 get_placement_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1369 get_placement_blockages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1370 get_plan_group_pin_shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374 get_plan_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1378 get_polygon_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1381 get_ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1383 get_power_domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1388 get_power_plan_regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1392 get_power_switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1395 get_rdl_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1399 get_related_supply_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1401 get_route_guides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1403 Chapter 1: Contents Contents xvii 1-xvii IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 get_route_mode_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1406 get_route_opt_zrt_crosstalk_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1407 get_route_zrt_common_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1409 get_route_zrt_detail_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1411 get_route_zrt_global_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1413 get_route_zrt_track_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1415 get_routing_blockages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1417 get_rp_group_keepouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1422 get_rp_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1424 get_rp_groups_net_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1428 get_scan_cells_of_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1430 get_scan_chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432 get_scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1433 get_selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1436 get_si_xtalk_bumps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1440 get_site_rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1442 get_supply_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1448 get_supply_ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1452 get_taps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1456 get_terminals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1458 get_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1463 get_timing_paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1468 get_tracks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1477 get_user_grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1481 get_user_shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1483 get_utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489 get_via_masters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1492 get_via_regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1496 get_vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1501 get_voltage_area_shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1507 get_voltage_areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1510 get_working_design_stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1513 get_zero_interconnect_delay_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1515 Contents xviii IC Compiler™ Tool Commands Version L-2016.03 get_zrt_net_properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1516 getenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1518 group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1520 group_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1526 gui_add_annotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1532 gui_add_missing_vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1538 gui_bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1541 gui_change_error_highlight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1547 gui_change_highlight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1551 gui_check_drc_errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1554 gui_clear_error_data_filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1558 gui_clear_selected_errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1559 gui_close_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1560 gui_create_attrgroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1562 gui_create_clock_graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1564 gui_create_menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1565 gui_create_pref_category . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1570 gui_create_pref_key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1572 gui_create_schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1575 gui_create_toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1577 gui_create_toolbar_item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1579 gui_create_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1581 gui_create_vm_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1584 gui_create_vmbucket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1586 gui_create_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1589 gui_delete_attrgroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1593 gui_delete_menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1595 gui_delete_toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1597 gui_delete_toolbar_item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1599 gui_edit_vmbucket_contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1601 gui_error_browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1603 gui_eval_command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1605 gui_execute_menu_item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1607 Chapter 1: Contents Contents xix 1-xix IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 gui_exist_pref_category . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1609 gui_exist_pref_key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1610 gui_exist_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1611 gui_get_annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1613 gui_get_bucket_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1615 gui_get_bucket_option_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1617 gui_get_current_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1619 gui_get_current_task_item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1620 gui_get_current_task_page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1621 gui_get_current_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1622 gui_get_error_browser_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1625 gui_get_highlight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627 gui_get_highlight_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1629 gui_get_layer_widths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1631 gui_get_loaded_error_views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1633 gui_get_map_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1634 gui_get_map_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1636 gui_get_map_option_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1638 gui_get_menu_roots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1640 gui_get_mouse_tool_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1641 gui_get_pref_keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1642 gui_get_pref_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1643 gui_get_region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1645 gui_get_routes_between_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1646 gui_get_setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1648 gui_get_task_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1650 gui_get_task_page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1651 gui_get_toolbar_names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1653 gui_get_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1654 gui_get_vmbucket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1657 gui_get_window_ids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1660 gui_get_window_pref_categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1662 gui_get_window_pref_keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1664 Contents xx IC Compiler™ Tool Commands Version L-2016.03 gui_get_window_types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1666 gui_hide_palette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1668 gui_hide_toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1670 gui_inspect_violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1672 gui_list_attrgroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1674 gui_load_area_net_connection_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1676 gui_load_cell_density_mm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1678 gui_load_cell_slack_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1680 gui_load_clock_delay_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1682 gui_load_clock_tree_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1684 gui_load_delta_delay_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1686 gui_load_error_view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1688 gui_load_hierarchy_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1690 gui_load_illegal_cell_placement_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1692 gui_load_imported_path_pins_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1693 gui_load_net_capacitance_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1695 gui_load_path_slack_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1697 gui_load_pin_density_mm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 gui_load_power_density_mm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1701 gui_load_relative_placement_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1702 gui_load_scan_chain_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1704 gui_load_static_noise_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1706 gui_load_voltage_area_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1708 gui_mouse_tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1709 gui_overlay_layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1711 gui_query_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1713 gui_remove_all_annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1716 gui_remove_all_rulers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1718 gui_remove_annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1719 gui_remove_pref_key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1721 gui_remove_ruler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1722 gui_remove_selected_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1724 gui_remove_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1726 Chapter 1: Contents Contents xxi 1-xxi IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 gui_remove_vmbucket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1727 gui_report_errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1729 gui_report_hotkeys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1731 gui_schematic_add_logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1733 gui_schematic_remove_logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1735 gui_scroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1737 gui_select_by_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1739 gui_select_vmbucket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1742 gui_set_active_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 gui_set_bucket_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1746 gui_set_cells_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1748 gui_set_clock_sources_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1750 gui_set_connected_cells_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1752 gui_set_current_errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1754 gui_set_current_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1756 gui_set_edit_group_children_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . 1757 gui_set_error_browser_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1759 gui_set_error_data_filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1762 gui_set_error_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1765 gui_set_flat_hierarchy_color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1766 gui_set_highlight_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1769 gui_set_hotkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1771 gui_set_layer_widths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1774 gui_set_layout_layer_visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1776 gui_set_layout_user_command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1778 gui_set_leaf_cells_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 gui_set_map_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1782 gui_set_mouse_tool_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 gui_set_net_flylines_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1786 gui_set_nets_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1788 gui_set_netshapes_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1790 gui_set_physical_buses_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1792 gui_set_pin_shapes_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1794 Contents xxii IC Compiler™ Tool Commands Version L-2016.03 gui_set_plan_group_pin_shapes_of_selected . . . . . . . . . . . . . . . . . . . . . . . . 1796 gui_set_plan_groups_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1798 gui_set_port_and_pins_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 gui_set_pref_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1802 gui_set_rdl_routes_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1804 gui_set_region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1806 gui_set_routes_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 gui_set_select_menu_adds_to_selection . . . . . . . . . . . . . . . . . . . . . . . . . . . 1810 gui_set_selected_errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1811 gui_set_setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 gui_set_terminals_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 gui_set_vias_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 gui_set_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1819 gui_set_vmbucket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1822 gui_set_voltage_areas_of_selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1825 gui_show_form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1827 gui_show_man_page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1829 gui_show_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1831 gui_show_palette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1833 gui_show_toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1836 gui_show_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1838 gui_start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1841 gui_stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1843 gui_trim_dangling_wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1844 gui_unload_error_view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846 gui_unset_flat_hierarchy_color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1848 gui_update_attrgroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1850 gui_update_pref_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1853 gui_update_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1854 gui_update_vm_annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 gui_view_port_history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1861 gui_violation_schematic_add_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1865 gui_wave_add_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1867 Chapter 1: Contents Contents xxiii 1-xxiii IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 gui_write_layout_image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 gui_write_window_image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 gui_zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1873 gui_zoom_all_layouts_to_current_view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1876 gui_zoom_to_selected_errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1877 help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1878 history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1881 hookup_retention_register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1885 identify_clock_gating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1887 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1891 ignore_site_row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1893 import_designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1895 import_fp_black_boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1898 index_collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1901 initialize_rectilinear_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1903 insert_boundary_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1908 insert_buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1915 insert_diode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1922 insert_isolation_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1926 insert_level_shifters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1930 insert_metal_filler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1933 insert_mv_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1939 insert_ng_filler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1941 insert_pad_filler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1945 insert_port_protection_diodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1948 insert_redundant_vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1951 insert_self_gating_dft_logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1955 insert_spare_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1958 insert_stdcell_filler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1962 insert_tap_cells_by_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1969 insert_well_filler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1974 insert_zrt_diodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1978 insert_zrt_redundant_vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981 Contents xxiv IC Compiler™ Tool Commands Version L-2016.03 is_double_patterning_enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1984 is_false . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1985 is_true . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1987 is_zrt_routed_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1989 legalize_fp_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1990 legalize_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1991 legalize_rp_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1994 lib2saif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1996 license_users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1998 link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2000 link_physical_library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2007 list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2009 list_attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2010 list_dont_touch_types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2013 list_drc_error_types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2015 list_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2017 list_floorplan_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2018 list_instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 list_libs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2024 list_licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2026 list_mw_cels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2028 list_partition_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2030 lminus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2035 load_fp_rail_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2037 load_of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 load_upf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2042 ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2047 magnet_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2048 man . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2053 map_freeze_silicon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2055 map_isolation_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2057 map_level_shifter_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2059 map_power_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2061 Chapter 1: Contents Contents xxv 1-xxv IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 map_retention_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2063 map_unit_tiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2066 mark_clock_tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2068 mem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2072 merge_clock_gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2074 merge_flip_chip_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2076 merge_fp_hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2078 merge_net_shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2082 merge_saif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 modify_rp_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2088 move_mw_cel_origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2092 move_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2094 move_pins_on_edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 mw_cel_collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2100 name_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2102 open_mw_cel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2104 open_mw_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2107 open_rail_result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2109 optimize_clock_tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 optimize_dft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2116 optimize_flip_chip_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2118 optimize_fp_timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2120 optimize_power_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2123 optimize_pre_cts_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 optimize_rdl_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 optimize_wire_via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2132 optimize_zrt_wire_via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2134 order_rp_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2136 pack_fp_macro_in_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2139 parse_proc_arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2141 place_eco_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2144 place_flip_chip_array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2153 place_flip_chip_drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2156 Contents xxvi IC Compiler™ Tool Commands Version L-2016.03 place_flip_chip_ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2159 place_fp_pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2162 place_freeze_silicon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167 place_opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172 place_opt_feasibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2176 prepare_mw_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181 preroute_focal_opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183 preroute_instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2190 preroute_standard_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2198 preview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2209 print_message_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2211 print_suppressed_messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2213 printenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2215 printvar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2217 process_particle_probability_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2219 propagate_all_clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2221 propagate_clock_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2223 propagate_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2225 propagate_pin_mask_constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2232 propagate_pin_mask_to_via_metal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2234 propagate_switching_activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2236 psynopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2239 push_down_fp_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2244 push_flip_chip_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2253 push_rdl_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2257 push_up_fp_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2262 pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2267 query_cell_instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2268 query_cell_mapped . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2270 query_map_power_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2272 query_net_ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2274 query_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2276 query_on_demand_netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2279 Chapter 1: Contents Contents xxvii 1-xxvii IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 query_port_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2280 query_port_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2282 query_power_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284 query_pst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286 query_pst_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288 query_qor_snapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2290 quit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2311 read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 read_aif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 read_antenna_violation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 read_aocvm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 read_ddc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 read_def . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 read_drc_error_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 read_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 read_floorplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2333 read_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2335 read_parasitics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2338 read_partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2341 read_pin_pad_physical_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2343 read_power_plan_regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2346 read_rail_maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 read_saif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 read_sdc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2355 read_sdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2361 read_signal_em_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2365 read_stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2367 read_tdf_ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 read_verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 rebuild_mw_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 record_cell_locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 recover_tie_connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 redirect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 Contents xxviii IC Compiler™ Tool Commands Version L-2016.03 redo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2384 reduce_fp_rail_stacked_via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 refine_fp_macro_channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2392 refine_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2394 remove_all_spacing_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2397 remove_annotated_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2399 remove_annotated_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2402 remove_annotated_transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2405 remove_annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2407 remove_antenna_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2409 remove_aocvm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2411 remove_attachment_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2413 remove_attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2417 remove_banking_guidance_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2420 remove_base_arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 remove_bounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2423 remove_buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2425 remove_buffer_tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2428 remove_bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 remove_case_analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2432 remove_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2434 remove_cell_degradation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436 remove_cell_sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 remove_cell_vt_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 remove_checkpoint_designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 remove_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 remove_clock_cell_spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2446 remove_clock_gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 remove_clock_gating_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 remove_clock_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2452 remove_clock_latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2454 remove_clock_mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2457 remove_clock_sense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2460 Chapter 1: Contents Contents xxix 1-xxix IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 remove_clock_transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2462 remove_clock_tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2464 remove_clock_tree_exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2466 remove_clock_tree_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2470 remove_clock_uncertainty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 remove_congestion_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 remove_cts_scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 remove_dangling_wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 remove_data_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 remove_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 remove_die_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 remove_diode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 remove_disable_clock_gating_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2491 remove_disable_timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 remove_distributed_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 remove_dont_touch_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 remove_drc_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2500 remove_driving_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2502 remove_edit_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2504 remove_fast_pba_analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2506 remove_filler_with_violation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2507 remove_flip_chip_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2509 remove_floating_pg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2511 remove_fp_block_shielding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 remove_fp_feedthroughs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 remove_fp_pin_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 remove_fp_pin_overlaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 remove_fp_plan_group_padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 remove_fp_rail_stacked_via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2525 remove_fp_rail_voltage_area_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 remove_fp_relative_location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2528 remove_fp_virtual_pad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2530 remove_fp_voltage_area_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2532 Contents xxx IC Compiler™ Tool Commands Version L-2016.03 remove_from_collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2534 remove_from_rp_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2536 remove_generated_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2538 remove_host_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2540 remove_ideal_latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2542 remove_ideal_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2544 remove_ideal_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2546 remove_ideal_transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2548 remove_ignore_cell_timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 remove_ignored_layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 remove_input_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 remove_io_antenna_properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 remove_isolate_ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 remove_isolation_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2560 remove_keepout_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 remove_left_right_filler_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2564 remove_level_shifters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2566 remove_license . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 remove_link_library_subset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2570 remove_map_power_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 remove_mim_property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 remove_min_pulse_width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 remove_mw_cel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 remove_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2582 remove_net_routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2584 remove_net_routing_corridor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2586 remove_net_routing_layer_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2588 remove_net_search_pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2590 remove_net_shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2592 remove_net_timing_spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2594 remove_noise_immunity_curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2595 remove_noise_lib_pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2597 remove_noise_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2599 Chapter 1: Contents Contents xxxi 1-xxxi IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 remove_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2601 remove_on_demand_netlist_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2602 remove_output_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2603 remove_partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2606 remove_pg_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2607 remove_physical_bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2610 remove_pi_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612 remove_pin_guides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2614 remove_pin_name_synonym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616 remove_pin_pad_physical_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2619 remove_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2621 remove_placement_blockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2623 remove_plan_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2625 remove_pnet_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2627 remove_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629 remove_power_domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2631 remove_power_plan_regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2633 remove_power_plan_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635 remove_power_ring_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2637 remove_power_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2639 remove_preferred_routing_direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2641 remove_propagated_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2643 remove_qor_snapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645 remove_rail_integrity_layout_check_strategy . . . . . . . . . . . . . . . . . . . . . . . . 2647 remove_rail_maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649 remove_reserved_placement_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650 remove_route_by_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652 remove_route_guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655 remove_routing_blockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2657 remove_routing_corridor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2659 remove_routing_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2661 remove_row_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2663 remove_rp_group_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2665 Contents xxxii IC Compiler™ Tool Commands Version L-2016.03 remove_rp_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2668 remove_scaling_lib_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2670 remove_scan_def . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2672 remove_scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2673 remove_sdc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2675 remove_self_gating_logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2677 remove_site_row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2679 remove_skew_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2681 remove_stdcell_filler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2682 remove_steady_state_resistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2684 remove_supply_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2686 remove_supply_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2689 remove_target_library_subset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2691 remove_terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2693 remove_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2695 remove_tie_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2697 remove_track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2700 remove_unconnected_ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2703 remove_user_budgeted_delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2705 remove_user_shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2707 remove_via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2709 remove_via_master . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2711 remove_via_region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2713 remove_voltage_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2716 remove_voltage_area_routing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2718 remove_vt_filler_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2720 remove_well_filler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2722 remove_xtalk_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2724 remove_zrt_filler_with_violation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2725 remove_zrt_redundant_shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2728 rename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2731 rename_mw_cel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2733 rename_mw_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2735 Chapter 1: Contents Contents xxxiii 1-xxxiii IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 replace_cell_reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2737 replace_power_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2739 report_access_preference_route_guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2742 report_adjusted_endpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2744 report_ahfs_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2746 report_annotated_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2748 report_annotated_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2750 report_annotated_transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2753 report_antenna_ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2755 report_antenna_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2757 report_aocvm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2759 report_app_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2764 report_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2766 report_attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2771 report_banking_guidance_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2774 report_block_abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2776 report_bounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2779 report_buffer_tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2781 report_buffer_tree_qor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2784 report_bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2786 report_case_analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2788 report_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2790 report_cell_em . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2794 report_cell_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2796 report_cell_physical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2799 report_cell_vt_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2803 report_channel_capacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2805 report_check_library_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2809 report_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2811 report_clock_cell_spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2816 report_clock_gating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2818 report_clock_gating_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2830 report_clock_timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2833 Contents xxxiv IC Compiler™ Tool Commands Version L-2016.03 report_clock_tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2847 report_clock_tree_optimization_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2860 report_clock_tree_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2862 report_clock_tree_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2866 report_concurrent_clock_and_data_strategy . . . . . . . . . . . . . . . . . . . . . . . . . 2873 report_congestion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2875 report_congestion_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2879 report_constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2881 report_critical_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2890 report_crpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2893 report_cts_batch_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2898 report_delay_calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2900 report_delay_calculation_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2907 report_delay_estimation_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2909 report_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2911 report_design_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2917 report_design_mismatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2919 report_design_physical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2922 report_direct_power_rail_tie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2932 report_disable_timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2934 report_displacement_analysis_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2936 report_distributed_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2938 report_dont_touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2940 report_dont_touch_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2943 report_drc_error_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2946 report_droute_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2948 report_eco_history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2951 report_eco_physical_changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2954 report_edit_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2958 report_em_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2960 report_error_coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2962 report_extraction_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2964 report_fast_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2968 Chapter 1: Contents Contents xxxv 1-xxxv IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 report_fast_pba_analysis_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2969 report_feasibility_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2971 report_filler_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2973 report_fix_hold_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2975 report_flip_chip_bump_attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2977 report_flip_chip_driver_bump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2979 report_flip_chip_flyline_cross . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2981 report_flip_chip_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2984 report_floorplan_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2987 report_fp_clock_plan_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2990 report_fp_feedthroughs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2991 report_fp_macro_array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2999 report_fp_macro_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3001 report_fp_pin_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3003 report_fp_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3005 report_fp_placement_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3007 report_fp_rail_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3010 report_fp_rail_extraction_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3012 report_fp_rail_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3014 report_fp_rail_voltage_area_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3018 report_fp_relative_location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3020 report_fp_shaping_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3022 report_fp_trace_mode_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3024 report_fp_voltage_area_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3025 report_fram_property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3026 report_groute_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3029 report_gui_stroke_bindings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3031 report_gui_stroke_builtins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3033 report_hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3035 report_host_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3037 report_ideal_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3039 report_ignored_layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3043 report_instance_based_routing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3044 Contents xxxvi IC Compiler™ Tool Commands Version L-2016.03 report_inter_clock_delay_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3046 report_interclock_relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3048 report_internal_loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3052 report_io_antenna_properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3054 report_isolate_ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3056 report_isolated_via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3058 report_isolation_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3062 report_keepout_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3066 report_latch_loop_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3069 report_latency_adjustment_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3072 report_left_right_filler_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3073 report_level_shifter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3074 report_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3078 report_link_library_subset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3096 report_matching_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3098 report_metal_density . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3100 report_milkyway_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3103 report_mim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3106 report_min_pulse_width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3108 report_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3110 report_mpc_macro_array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3113 report_mpc_macro_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3115 report_mpc_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3117 report_mpc_pnet_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3119 report_mpc_port_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3121 report_mpc_rectilinear_outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3123 report_mpc_ring_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3125 report_mtcmos_pna_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3127 report_multisource_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3129 report_mw_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3131 report_name_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3133 report_names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3136 report_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3139 Chapter 1: Contents Contents xxxvii 1-xxxvii IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 report_net_changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3144 report_net_fanout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3147 report_net_physical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3150 report_net_routing_corridor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3155 report_net_routing_layer_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3157 report_net_routing_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3159 report_net_search_pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3163 report_net_search_pattern_delay_estimation_options . . . . . . . . . . . . . . . . . 3165 report_net_search_pattern_priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3167 report_noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3169 report_noise_calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3173 report_ocvm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3177 report_on_demand_netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3182 report_opcond_inference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3184 report_operating_conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3186 report_optimization_created_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3188 report_optimization_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3190 report_optimize_dft_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3191 report_optimize_pre_cts_power_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3192 report_parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3193 report_path_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3195 report_pg_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3197 report_physical_bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3199 report_physical_signoff_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3201 report_pi_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3203 report_pin_guides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3205 report_pin_name_synonym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3207 report_pin_pad_physical_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3210 report_pin_shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3212 report_place_opt_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3214 report_placement_utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3216 report_pnet_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3219 report_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3221 Contents xxxviii IC Compiler™ Tool Commands Version L-2016.03 report_port_protection_diodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3227 report_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3229 report_power_calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3237 report_power_domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3243 report_power_gating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3249 report_power_guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3251 report_power_pin_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3253 report_power_plan_regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3257 report_power_plan_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3259 report_power_ring_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3261 report_power_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3263 report_preferred_routing_direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3265 report_preroute_advanced_via_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3267 report_preroute_drc_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3271 report_preroute_focal_opt_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3274 report_primetime_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3276 report_pst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3278 report_qor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3282 report_qor_snapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3287 report_qtm_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3289 report_rail_integrity_layout_check_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . 3292 report_rail_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3294 report_rail_result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3296 report_read_stream_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3298 report_reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3300 report_reference_cell_routing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3303 report_retention_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3305 report_route_opt_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3308 report_route_opt_zrt_crosstalk_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3310 report_route_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3311 report_route_rdl_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3313 report_route_zrt_common_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3315 report_route_zrt_detail_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3316 Chapter 1: Contents Contents xxxix 1-xxxix IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 report_route_zrt_global_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3317 report_route_zrt_track_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3318 report_routing_corridors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3319 report_routing_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3322 report_rp_group_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3324 report_saif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3326 report_scaling_lib_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3330 report_scan_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3333 report_scenario_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3335 report_scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3338 report_separate_process_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3341 report_si_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3342 report_signal_em . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3344 report_signal_em_calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3347 report_size_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3349 report_skew_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3352 report_spacing_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3354 report_split_clock_gates_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3356 report_starrcxt_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3357 report_supply_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3359 report_supply_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3361 report_taps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3363 report_target_library_subset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3365 report_threshold_voltage_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3367 report_tie_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3371 report_tile_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3372 report_timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3375 report_timing_derate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3390 report_timing_histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3394 report_timing_requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3398 report_tlu_plus_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3403 report_top_implementation_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3405 report_total_power_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3407 Contents xl IC Compiler™ Tool Commands Version L-2016.03 report_track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3409 report_transitive_fanin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3411 report_transitive_fanout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3413 report_unit_tiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3416 report_units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3418 report_user_budgeted_delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3420 report_via_master . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3422 report_voltage_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3424 report_voltage_area_routing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3426 report_vt_filler_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3428 report_write_lib_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3430 report_write_stream_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3431 report_xtalk_route_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3433 report_zrt_net_properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3434 report_zrt_shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3436 reset_cell_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3442 reset_clock_tree_optimization_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3444 reset_clock_tree_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3447 reset_clock_tree_references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3454 reset_concurrent_clock_and_data_strategy . . . . . . . . . . . . . . . . . . . . . . . . . 3457 reset_cts_batch_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3458 reset_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3460 reset_fast_pba_analysis_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3462 reset_fp_clock_plan_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3464 reset_instance_based_routing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3466 reset_inter_clock_delay_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3468 reset_latency_adjustment_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3471 reset_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3472 reset_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3474 reset_reference_cell_routing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3478 reset_split_clock_gates_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3479 reset_switching_activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3480 reset_timing_derate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3482 Chapter 1: Contents Contents xli 1-xli IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 reset_upf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3484 resize_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3486 resize_polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3491 restore_design_settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3496 restore_spg_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3498 revert_cell_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3500 rotate_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3502 route_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3506 route_auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3508 route_detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3510 route_differential . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3512 route_eco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3514 route_flip_chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3517 route_fp_proto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3520 route_global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3522 route_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3524 route_htree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3527 route_mesh_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3531 route_opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3534 route_rc_reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3542 route_rdl_differential . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3544 route_rdl_flip_chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3547 route_search_repair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3551 route_spreadwires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3554 route_track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3556 route_widen_wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3557 route_zrt_auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3559 route_zrt_clock_tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3562 route_zrt_detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3563 route_zrt_eco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3566 route_zrt_global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3569 route_zrt_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3572 route_zrt_track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3576 Contents xlii IC Compiler™ Tool Commands Version L-2016.03 rp_group_inclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3578 rp_group_instantiations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3580 rp_group_references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3582 run_distributed_tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3585 run_parallel_jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3587 run_signoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3593 save_design_settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3597 save_mw_cel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3599 save_qtm_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3603 save_upf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3605 select_block_scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3607 select_mim_master_instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3610 send_flow_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3612 set_active_scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3615 set_ahfs_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3617 set_always_on_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3621 set_always_on_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3623 set_annotated_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3625 set_annotated_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3629 set_annotated_transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3633 set_aocvm_coefficient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3636 set_app_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3638 set_attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3640 set_auto_disable_drc_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3642 set_banking_guidance_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3645 set_budgeted_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3651 set_buffer_opt_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3653 set_case_analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3655 set_cell_degradation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3657 set_cell_internal_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3659 set_cell_location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3662 set_cell_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3664 set_cell_row_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3666 Chapter 1: Contents Contents xliii 1-xliii IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 set_cell_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3668 set_cell_vt_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3670 set_check_library_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3672 set_checkpoint_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3688 set_child_terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3691 set_clock_cell_spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3695 set_clock_gating_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3697 set_clock_gating_registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3701 set_clock_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3704 set_clock_latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3708 set_clock_sense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3712 set_clock_transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3715 set_clock_tree_exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3718 set_clock_tree_optimization_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3727 set_clock_tree_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3733 set_clock_tree_references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3743 set_clock_uncertainty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3746 set_combinational_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3751 set_command_option_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3753 set_concurrent_clock_and_data_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . 3756 set_congestion_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3760 set_connection_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3763 set_context_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3766 set_cost_priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3768 set_critical_range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3770 set_cts_batch_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3772 set_cts_scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3774 set_current_command_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3776 set_data_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3778 set_default_drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3781 set_default_driving_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3784 set_default_fanout_load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3788 set_default_input_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3790 Contents xliv IC Compiler™ Tool Commands Version L-2016.03 set_default_load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3792 set_default_output_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3794 set_delay_calculation_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3796 set_delay_estimation_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3799 set_design_attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3803 set_die_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3809 set_direct_power_rail_tie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3810 set_disable_clock_gating_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3812 set_disable_timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3814 set_displacement_analysis_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3817 set_distributed_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3819 set_domain_supply_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3823 set_dont_touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3825 set_dont_touch_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3828 set_dont_touch_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3831 set_dont_use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3832 set_dp_int_round . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3834 set_drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3838 set_driving_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3841 set_droute_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3846 set_em_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3848 set_equal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3852 set_error_view_property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3854 set_extraction_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3856 set_false_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3863 set_fanout_load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3869 set_fast_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3871 set_fast_pba_analysis_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3873 set_fix_hold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3877 set_fix_hold_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3879 set_fix_multiple_port_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3882 set_flip_chip_bump_attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3885 set_flip_chip_cell_site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3887 Chapter 1: Contents Contents xlv 1-xlv IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 set_flip_chip_driver_array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3889 set_flip_chip_driver_island . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3892 set_flip_chip_driver_ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3896 set_flip_chip_driver_strip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3900 set_flip_chip_grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3903 set_flip_chip_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3905 set_fp_base_gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3909 set_fp_black_boxes_estimated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3911 set_fp_black_boxes_unestimated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3912 set_fp_block_ring_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3913 set_fp_clock_plan_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3917 set_fp_flow_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3920 set_fp_macro_array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3923 set_fp_macro_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3926 set_fp_pin_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3930 set_fp_placement_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3947 set_fp_power_pad_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3954 set_fp_rail_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3956 set_fp_rail_extraction_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3962 set_fp_rail_region_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3964 set_fp_rail_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3969 set_fp_rail_voltage_area_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3982 set_fp_relative_location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3994 set_fp_shaping_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3997 set_fp_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4001 set_fp_trace_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4003 set_fp_voltage_area_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4005 set_groute_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4009 set_gui_stroke_binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4011 set_gui_stroke_preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4016 set_hierarchy_color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4019 set_host_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4021 set_ideal_latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4028 Contents xlvi IC Compiler™ Tool Commands Version L-2016.03 set_ideal_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4031 set_ideal_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4033 set_ideal_transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4036 set_ignore_cell_timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4039 set_ignored_layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4041 set_input_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4044 set_input_transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4049 set_instance_based_routing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4052 set_inter_clock_delay_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4054 set_inter_io_ring_spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4057 set_isolate_ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4059 set_isolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4062 set_isolation_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4070 set_isolation_control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4072 set_keepout_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4075 set_latch_loop_breakers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4079 set_latency_adjustment_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4081 set_left_right_filler_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4083 set_level_shifter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4085 set_level_shifter_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4091 set_level_shifter_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4094 set_level_shifter_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4096 set_lib_attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4098 set_lib_cell_spacing_label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4100 set_link_library_subset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4103 set_load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4106 set_local_link_library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4110 set_logic_dc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4112 set_logic_one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4114 set_logic_zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4116 set_macro_cell_bound_spot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4118 set_matching_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4120 set_max_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4122 Chapter 1: Contents Contents xlvii 1-xlvii IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 set_max_capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4124 set_max_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4127 set_max_fanout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4134 set_max_net_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4136 set_max_time_borrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4138 set_max_transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4140 set_mcmm_job_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4143 set_message_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4146 set_min_capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4148 set_min_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4150 set_min_library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4156 set_min_pulse_width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4158 set_minimum_budgeted_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4160 set_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4162 set_mpc_macro_array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4164 set_mpc_macro_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4168 set_mpc_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4173 set_mpc_pnet_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4179 set_mpc_port_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4182 set_mpc_rectilinear_outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4186 set_mpc_ring_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4188 set_mtcmos_pna_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4191 set_multi_vth_constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4195 set_multicycle_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4199 set_multisource_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4207 set_mw_lib_reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4209 set_mw_technology_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4211 set_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4213 set_net_aggressors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4215 set_net_routing_corridor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4217 set_net_routing_layer_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4219 set_net_routing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4223 set_net_search_pattern_delay_estimation_options . . . . . . . . . . . . . . . . . . . . 4226 Contents xlviii IC Compiler™ Tool Commands Version L-2016.03 set_net_search_pattern_priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4228 set_noise_immunity_curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4230 set_noise_lib_pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4233 set_noise_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4235 set_object_boundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4237 set_object_fixed_edit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4240 set_object_shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4242 set_object_snap_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4247 set_opcond_inference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4250 set_operating_conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4253 set_opposite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4258 set_optimization_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4260 set_optimize_dft_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4262 set_optimize_pre_cts_power_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4264 set_output_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4267 set_pad_physical_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4273 set_parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4278 set_partial_on_translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4280 set_partition_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4282 set_path_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4286 set_pg_pin_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4291 set_physical_signoff_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4294 set_physopt_cpulimit_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4298 set_pi_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4302 set_pin_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4305 set_pin_name_synonym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4307 set_pin_physical_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4309 set_place_opt_cts_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4315 set_place_opt_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4317 set_pnet_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4319 set_port_attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4326 set_port_fanout_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4332 set_port_location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4334 Chapter 1: Contents Contents xlix 1-xlix IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 set_power_clock_scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4336 set_power_guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4339 set_power_net_to_voltage_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4342 set_power_plan_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4344 set_power_ring_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4350 set_power_switch_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4355 set_power_switch_place_pattern_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . 4357 set_prefer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4360 set_preferred_routing_direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4362 set_preroute_advanced_via_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4364 set_preroute_drc_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4369 set_preroute_focal_opt_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4374 set_preroute_special_rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4376 set_primetime_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4387 set_propagated_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4390 set_qtm_global_parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4392 set_qtm_port_drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4395 set_qtm_port_load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4398 set_qtm_technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4400 set_rail_integrity_layout_check_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4404 set_rail_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4425 set_read_stream_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4440 set_reference_cell_routing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4446 set_register_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4448 set_related_supply_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4452 set_resistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4454 set_retention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4456 set_retention_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4460 set_retention_control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4462 set_route_flip_chip_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4465 set_route_mode_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4469 set_route_opt_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4470 set_route_opt_zrt_crosstalk_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4474 Contents l IC Compiler™ Tool Commands Version L-2016.03 set_route_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4480 set_route_rdl_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4485 set_route_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4489 set_route_zrt_common_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4491 set_route_zrt_detail_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4514 set_route_zrt_global_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4531 set_route_zrt_track_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4536 set_row_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4538 set_rp_group_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4540 set_scaling_lib_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4548 set_scenario_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4550 set_scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4554 set_separate_process_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4556 set_si_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4558 set_size_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4561 set_skew_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4563 set_spacing_label_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4565 set_split_clock_gates_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4567 set_starrcxt_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4569 set_steady_state_resistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4572 set_stream_layer_map_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4574 set_switched_net_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4578 set_switching_activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4580 set_synlib_dont_get_license . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4586 set_target_library_subset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4588 set_timing_derate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4592 set_timing_ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4597 set_tlu_plus_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4600 set_top_implementation_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4603 set_total_power_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4609 set_true_delay_case_analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4611 set_unconnected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4614 set_undoable_attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4616 Chapter 1: Contents Contents 1-lili IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 set_ungroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4618 set_units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4620 set_user_grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4622 set_via_array_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4625 set_voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4627 set_voltage_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4630 set_vt_filler_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4632 set_write_stream_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4634 set_xtalk_route_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4648 set_zero_interconnect_delay_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4650 set_zrt_net_properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4652 sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4654 shape_fp_blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4656 shell_is_in_upf_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4660 signoff_autofix_drc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4661 signoff_calculate_hier_antenna_property . . . . . . . . . . . . . . . . . . . . . . . . . . . 4670 signoff_drc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4674 signoff_metal_fill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4684 signoff_opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4701 size_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4707 sizeof_collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4710 skew_opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4712 slot_wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4721 snap_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4727 sort_collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4729 sort_fp_pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4731 source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4733 split_clock_gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4735 split_clock_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4737 split_multisource_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4739 split_mw_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4748 split_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4751 split_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4754 Contents lii IC Compiler™ Tool Commands Version L-2016.03 split_rdl_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4757 split_register_bank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4763 split_zrt_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4765 spread_spare_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4769 spread_zrt_wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4773 sub_instances_of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4776 suppress_message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4779 swap_cell_locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4781 synthesize_fp_rail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4784 synthesize_fp_rings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4794 transform_coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4799 trim_fill_eco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4802 unalias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4805 uncommit_fp_soft_macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4806 uncompress_scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4810 undefine_bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4812 undo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4814 undo_config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4816 undo_mark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4818 ungroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4820 uniquify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4825 uniquify_fp_mw_cel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4828 unset_hierarchy_color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4831 unset_power_guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4832 unsetenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4834 unsuppress_message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4836 update_bounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4838 update_clock_latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4840 update_dc_floorplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4841 update_flip_chip_pin_locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4843 update_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4845 update_lib_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4848 update_lib_pg_pin_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4850 Chapter 1: Contents Contents liii 1-liii IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 update_lib_pin_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4853 update_lib_voltage_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4855 update_physical_bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4857 update_power_plan_region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4860 update_routing_corridor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4863 update_timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4866 update_voltage_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4868 upf_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4871 verify_lvs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4873 verify_pg_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4878 verify_rail_integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4881 verify_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4883 verify_zrt_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4886 virtual_ipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4890 which . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4892 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4894 widen_zrt_wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4896 win_select_objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4899 win_set_filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4902 win_set_select_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4904 window_stretch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4905 write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4908 write_aif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4909 write_app_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4914 write_def . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4916 write_design_lib_paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4921 write_design_settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4923 write_environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4926 write_flip_chip_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4929 write_floorplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4931 write_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4938 write_lib_specification_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4940 write_link_library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4942 Contents liv IC Compiler™ Tool Commands Version L-2016.03 write_mw_lib_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4944 write_parasitics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4947 write_physical_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4951 write_physical_script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4953 write_pin_pad_physical_constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4955 write_power_plan_regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4958 write_rail_integrity_strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4960 write_rail_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4962 write_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4964 write_rp_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4966 write_saif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4969 write_sanity_check_point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4972 write_script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4974 write_sdc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4978 write_sdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4982 write_stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4984 write_verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4986 write_via_region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4992 Chapter 1: Contents Contents lv 1-lv IC IC Compiler™ Compiler™ Tool Tool Commands Commands Contents L-2016.03 Version L-2016.03 lvi IC Compiler™ Tool Commands Version L-2016.03 add_buffer_on_route Adds buffers along the route of the specified nets. SYNTAX add_buffer_on_route [-net_prefix prefix] [-cell_prefix prefix] [-inverter_pair] [-location {coordinate_list}] [-user_specified_buffers {user_specified_buffer_list}] [-repeater_distance length | -repeater_distance_length_ratio length_ratio [-first_distance length | -first_distance_length_ratio length_ratio] [-scaled_by_layer {layer_scale_list}] [-scaled_by_width] [-max_distance_for_legalized_location length] [-no_legalize] [-no_eco_route] [-only_global_routed_nets] [-respect_blockages] [-punch_port] [-verbose] list_of_nets [buffer_lib_cell] Data Types prefix coordinate_list user_specified_buffer_list length layer_scale_list list_of_nets buffer_lib_cell string list list float list list collection ARGUMENTS -net_prefix prefix Specifies the prefix to be used for new nets that are created when buffers are inserted in the netlist. The prefix must not contain embedded hierarchical separators. By default, the command uses eco_net as the prefix. Chapter 1: add_buffer_on_route 1 1-1 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -cell_prefix prefix Specifies the prefix to be used for new buffers that are inserted in the netlist. The prefix must not contain embedded hierarchical separators. By default, the command uses eco_cell as the prefix. This option cannot be used with -user_specified_buffers. -inverter_pair Indicates that a pair of inverting library cells has to be inserted instead of a single noninverting library cell. If you specify this option, you need to supply a library cell with an inverting output for the -buffer_lib_cell option. You can use this option when the library cell (buffer) specified has both inverting and noninverting outputs. -location {coordinate_list} Specifies the center point coordinates for the locations of the buffer or inverter pair cells, in the format {x1 y1 layer1 x2 y2 layer2 ...}. You must specify one location per buffer when inserting buffers. You must specify two locations per inverter pair when inserting inverter pairs. These locations can be any valid {x_coordinate y_coordinate layer} triplet that is inside the placement region of the core area and is relative to the chip origin. These locations must be within a region from the route. The region radius is specified by -max_distance_for_legalized_location. Specify the coordinates in units of microns. More than one routing shape can overlap the specified location. The layer is used to decide which shape to pick. • If you specify a valid value for the layer, the location is matched on a routing shape on the specified layer. • If you specify 0 as the layer value, the tool tries to find the nearest routing shape. If there are two routing shapes in different metal layers that are the same distance from the specified location, the tool errors out. For best results, specify the explicit layer instead of 0. -user_specified_buffers {user_specified_buffer_list} Specifies the center point coordinates and layer for the locations of the buffer or inverter pair cells, as well as their names and library cells, in format of {name1 lib_cell1 x1 y1 layer1 name2 lib_cell2 x2 y2 layer2 ...}. You must specify one five-tuple per buffer when inserting buffers or two five-tuples per inverter pair when inserting inverter pairs. They cells must be either all inverters or all buffers. The names should be valid name strings for the buffers or inverters. The library cells should be name strings or collections. The locations can be any valid set of coordinates with layers that are inside the placement region of the core area. These locations must be within the maximum distance specified, by using -max_distance_for_legalized_location option, from the add_buffer_on_route 2 IC Compiler™ Tool Commands Version L-2016.03 route the buffers or inverters are being added to. Specify the coordinates in units of microns. More than one routing shape can overlap the specified location. The layer is used to decide which shape to pick. • If you specify a valid value for the layer, the location is matched on a routing shape on the specified layer. • If you specify 0 as the layer value, the tool tries to find the nearest routing shape. If there are two routing shapes in different metal layers that are the same distance from the specified location, the tool errors out. For best results, specify the explicit layer instead of 0. -repeater_distance length Specifies the distance in microns between each buffer to be introduced along the route. This option always works on the entire physical route underlying the specified nets. -repeater_distance_length_ratio length_ratio Specifies the distance between each buffer that is introduced along the route as a ratio of the total route length. The value range is between 0.0 and 1.0 This option always works on the entire physical route underlying the specified nets. Only one of the -location, -user_specified_buffers, -repeater_distance, or -repeater_distance_length_ratio options should be specified. -first_distance length Specifies the distance in microns between the driver pin and the first buffer introduced along the route. You can use this option only if you also use the -repeater_distance or -repeater_distance_length_ratio option. -first_distance_length_ratio length_ratio Specifies the distance between the driver pin and the first buffer introduced along the route as a ratio of the total route length. The value range is between 0.0 and 1.0 You can use this option only if you also use the -repeater_distance_length_ratio option. -scaled_by_layer {layer_scale_list} Scales the distance between buffers by the scaling factor specified for the layer. Specify the scaling factors by using the following format: Chapter 1: add_buffer_on_route 3 1-3 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 {{layer1 factor1} {layer2 factor2} ...} The command scales the distance on each layer with the following formula: D = d*L_M d:the repeater distance D:the repeater scaled distance L_M:layer scaling factor on metal M Layers that are not in the list use a default factor of 1. You can use this option only if you also use the -repeater_distance option. -scaled_by_width Scales the distance between buffers by the ratio of the default width for the layer and the actual route width. The command scales the distance on each layer with the following formula: D = d*w_M/w_R d:the repeater distance D:the repeater scaled distance w_M:default route width on metal M w_R:actual route width By default, the scaling factor is 1 (w_M=w_R). You can use this option only if you also use the -repeater_distance option. -max_distance_for_legalized_location length Specifies the maximum horizontal or vertical distance in microns between the location found by route tracing and the legalized cell bounding box. The default for this option is five times the height of reference cell. For example, suppose the value for this option 100 microns and the location found by route tracing is (x,y). The legal cell bounding box is then searched within the bounding box with coordinates of (x-100, y-100) and (x+100, y+100). If the tool fails to legalize the buffer within the maximum distance specified, the buffer is not added. This option and the -no_legalize option are mutually exclusive; you can specify only one. add_buffer_on_route 4 IC Compiler™ Tool Commands Version L-2016.03 -no_legalize Disables legalization of the inserted buffer cells. This option and the -max_distance_for_legalized_location option are mutually exclusive; you can specify only one. -no_eco_route Disables rerouting of the nets. -only_global_routed_nets Enable inserting buffers on global routed nets. When this option is on, the specified nets must be only global routed without track assigned or detail routed. -respect_blockages Indicate that no buffer should be added inside (in layout) a placement blockage , soft macro or hard macro. But buffers could be added in reserved placement area. -punch_port When this option is specified, a buffer can be added on a route segment which has a topology that is different from the logical hierarchy connection. In such a situation, the tool punches hierarchical ports to connect the loads of such a buffer. -verbose Shows verbose messages. list_of_nets Specifies the nets to be buffered. If -user_specified_buffers or -location is specified, this option must be only one 1 net. buffer_lib_cell Specifies the library cell object to be used as a buffer. In this case, the object is either a named library cell or a library cell collection. This option cannot be used with -user_specified_buffers. This option must be specified as well, if -location, -repeater_distance or -repeater_distance_length_ratio is specified. DESCRIPTION This command adds buffers along the route of the specified nets. By default, the new buffers are placed and legalized and the original net and the newly created nets connecting the buffers and the original loads are rerouted. To disable legalization of the inserted buffers, Chapter 1: add_buffer_on_route 5 1-5 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 use the -no_legalize option. If you disable legalization, the original net and the newly created nets are not rerouted. The new buffers are placed close to the route of the input net. The new nets follow the original route as much as possible. A library cell with a single input and multiple outputs is a buffer, as long as each output has the same or inverted logic function as the input. By default, each newly added buffer has a name beginning with the prefix eco_cell and ending with a numeric suffix. To override the automatic name generation by the tool, use the -net_prefix and -cell_prefix options. The add_buffer_on_route command uses the following basic rules to check its arguments for validity: • The net cannot be either a PG net or a tie net. • The net must be completely routed (no opens). • The library cell cannot be sequential. • The library cell must be a buffer, as previously defined. • The library cell must have an inverting output if the -inverter_pair option is enabled. The command uses the first inverting output to insert two cells and to preserve the logic of the path. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following examples show the usage of command options. The output of the command is not shown. The following example shows the command usage to add buffers on net1 using the lib/BUF library cell. The repeater distance is 100 and the first distance is 80. prompt> add_buffer_on_route -repeater_distance 100 \ -first_distance 80 net1 lib/BUF The following example shows the command usage to add buffers on net1 using the lib/BUF library cell. One location is specified. prompt> add_buffer_on_route -location {100 200 0} net1 lib/BUF add_buffer_on_route 6 IC Compiler™ Tool Commands Version L-2016.03 The following example shows the command usage to add buffers on net1 by -user_specifeid_buffers prompt> add_buffer_on_route n1 -user_specified_buffers {eco1 bufbd2 70 10 0 eco2 bufbd4 140 10 0} The following example shows the command usage to add buffers on net1 using the lib/BUF library cell without legalizing them. A repeater distance of 100 is used. prompt> add_buffer_on_route -no_legalize -repeater_distance 100 \ net1 lib/BUF The following example shows the command usage to add buffers on net1 using the lib/BUF library cell without legalizing them. Repeater distance of 40% total route length and first distance of 20% total route length is also specified. prompt> add_buffer_on_route -no_legalize \ -repeater_distance_length_ratio 0.4 \ -first_distance_length_ratio 0.2 \ net1 lib/BUF The following example shows the command usage to add buffers on net1 using the lib/BUF library cell without legalizing them. A repeater distance of 100 is used. The distance scaling factor for METAL2 is 0.9 and the distance scaling factor for METAL3 is 0.8. The repeat distance is scaled by route width on each layer. prompt> add_buffer_on_route -no_legalize -repeater_distance 100 \ -scaled_by_width -scaled_by_layer { {METAL2 0.9} {METAL3 0.8} } \ net1 lib/BUF SEE ALSO legalize_placement(2) remove_buffer(2) Chapter 1: add_buffer_on_route 7 1-7 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 add_clock_drivers Adds multiple levels of drivers into your design and connects them together. These drivers are suitable for driving a clock mesh. SYNTAX status add_clock_drivers -load net_or_pins -prefix prefix_string | -remove_display [-configuration list_of_groups | -external_configuration config_file] [-driver_type library_cell] [-avoid cells] [-max_displacement distance] [-offset {x_distance y_distance}] [-use_common_bbox] [-check_only] [-verbose] Data Types net_or_pins prefix_string list_of_groups config_file library_cell cells x_distance y_distance collection string list string string collection float float ARGUMENTS -load net_or_pins Specifies the overall driver pin and the set of overall load pins. When you specify a net, it must have one driver pin and typically has many input (load) pins. If you only want to work on a subset of the pins of a net, use the driving pin of the net and the pins that you want to process as the value of this option. This option and the -remove_display option are mutually exclusive. You must specify one of them. add_clock_drivers 8 IC Compiler™ Tool Commands Version L-2016.03 -prefix prefix_string Specifies the prefix for all newly created nets and cells. All newly created nets and cells also have a suffix that denotes their level and unique ID. You should not use this prefix for any other nets or cells in the design. This is a global option: it impacts all created drivers. There is no default prefix. If you specify the -load option, you must also specify this option. -remove_display Removes the previously annotated tentative mesh drivers from the GUI. This option works only when the GUI is open. -configuration list_of_groups Defines groups of drivers to be added. This option accepts a list of any length. Each element in the list defines a group of drivers to be added, and each element must itself be a Tcl list. For details about the configuration syntax, see the CONFIGURATION STRUCTURE section below. This option and the -external_configuration option are mutually exclusive; you can specify only one. -external_configuration config_file Specifies the configuration in a Tcl text file. Each line of text in the file is considered a Tcl command, and must begin with the add_clock_driver_group command name. The syntax and semantics of this file is identical to the -configuration option. For details about the configuration syntax, see the CONFIGURATION STRUCTURE section below. (Note that the command add_clock_drivers_group is not available unless processed through the -external_configuration option.) This option and the -configuration option are mutually exclusive; you can specify only one. -driver_type library_cell Specifies the default driver cell to use. The specified driver cell must have exactly one input and one output. The configuration can override the default driver cell for a specific group of drivers. If you do not specify this option, each group in the configuration must explicitly specify a driver type. Chapter 1: add_clock_drivers 9 1-9 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -avoid cells Prevents drivers from being inserted at the top of a large macro block. You can specify any number of cells as a list or a collection. -max_displacement distance Specifies the maximum allowed displacement in the x- and y-directions from the position specified in the configuration. The distance value is in library units. When the tool inserts a driver, it starts at the position specified in the configuration and tries to find an unblocked, legal location within the distance specified by this option. If the tool cannot find an unblocked location within this distance, it does not insert that driver. -offset {x_distance y_distance} Specifies the offset to be added to each driver location after positioning the driver, but before searching for an unblocked, legal location. The distance values are in library units. You can use this option to place drivers on a grid so that they are in the center of each horizontal wire or in the middle of each gap in a mesh. If you use both this option and the -offset option for a specific group in the configuration, the two offsets are added together. -use_common_bbox Specifies a single bounding box of load pins for all groups of drivers. Normally each group of drivers in the configuration uses the geometry of the group below as the bounding box for placement. The higher the hierarchy level is, the smaller the bounding box area becomes. For some layouts, it is more convenient to have one common bounding box. You should use this option for H-tree layouts. -check_only Displays a short report of the number of drivers to be created at each level and their fanouts (without creating drivers). The report is done before the legalization of cell locations, so the values are approximate. Use this option to test and tune your configuration without actually inserting drivers. When the GUI is open, this option displays the locations of tentative mesh drivers in the GUI. Use the -remove_display option to undo the display. -verbose Displays additional information about the way drivers are being created and positioned. add_clock_drivers 10 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION If you need to drive a large load of many pins with minimum skew, you generally need to create multiple levels of drivers. You can either manually create such a hierarchy of drivers by using insert_buffer repeatedly, or let command like compile_clock_tree automatically create them. However, if the load pins are uniformly distributed, add_clock_drivers provides some advantages. This command is especially suitable for driving a large clock mesh net. This command accepts one net, usually a high-fanout net. The net must have exactly one driver pin. When the command is done, the clock net is still connected to its original driver pin, but the original load pins are connected to one or more new nets. If you use the command to drive a clock mesh (as opposed to a collection of unconnected input pins), you must use the -short_outputs option at the lowest level. In a mesh, all load pins are connected by wire straps. To design a mesh, you must add the mesh straps before running this command. If you do not use -short_outputs, the loads are connected to the newly created drivers, not to each other. Running this command without this option is appropriate for generating conventional clock tree circuitry where the driver outputs are not shorted together. The specified command options apply globally to the entire hierarchy of drivers. The configuration lets you specify options in more detail. The two sets of options complement each other. The global options specify the root and loads of the driver tree to be created and affect all drivers in the tree, while the configuration specifies how small a group of drivers or individual drivers should be created. You must specify a prefix for naming new nets and cells created by this command. The prefix must not be used by other nets or cells in the design. The names of the newly created cells have the following format: <prefix>_L<level_number>_<group_number>_<column>_<row> For example, clka_L1_1_2_3 driv_L4_3_7_2 Using a unique prefix enables you to perform operations such as legalizing, routing, or removing the nets and cells that are created by this command. You should use a short prefix because the command creates many cells and nets. When nets are created, they share the same name as the cell that drives them. However, if you are driving a mesh, you must specify the name of the large mesh net separately. Chapter 1: add_clock_drivers 11 1-11 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 You can run this command multiple times with the -check_only option to verify that your circuitry has valid inputs and a reasonable structure with legal fanouts and balancing before running the command to insert the drivers and to connect the nets. You can use this command to insert the cells that drive a mesh net (the mesh drivers) and then use a separate command to create the cells that drive the mesh drivers (the premesh tree). For example, use the compile_premesh_tree command after the add_clock_drivers command inserts the mesh drivers. This two-step approach provides the advantage of analyzing the mesh driver circuitry and mesh straps before adding the premesh tree. If the mesh drivers and straps do not meet performance requirement, they should be redesigned. A premesh tree cannot improve a poorly designed mesh or set of premesh drivers. Configuration Structure The configuration is comprised of one or more driver group specifications. Each group of drivers has a "level" and is specified by a list of options. The options all have the form -option_name value, just like a Tcl command. The order of the group specifications is not important. For example, you can specify the level 2 groupings before or after the level 1 groupings. Also, the order of the options with each grouping is not important. For example, you can specify the -boxes option before or after the -driver_type option. More importantly, you can specify multiple groupings at a single level. For example, you could have three groupings at level 5 with different geometries to fit unbalanced loads or avoid obstacles. Each grouping of drivers must be assigned to a level in the driver hierarchy. Level 0 is the original drive pin or port specified with the -load command option. You must not try to define any grouping at level 0. The input pins on the first level (level 1) are connected to the original driving net. The outputs of level 1 drivers are connected to the input pins on level 2, and so forth. Drivers in the highest numbered level drive the original load pins. At least one grouping must appear in the configuration, so there must be at least one grouping at level 1. The clock tree is built from the bottom (the load pins) up. To add drivers, the tool must know what the drivers should drive and where to place them. The level number determines the default set of pins that should be driven. For each level, the default driven pins are all the pins on the level below, and the default driven region for each group is the bounding box of the driven pins. You can change the set of load pins for a group on the lowest level by specifying an explicit -drives option. The default geometric boundary for placing the new drivers is the same as the driven pin region. You can override this boundary for a group by using the -boundary option. You would typically override these specifications only when the design has obstacles or other complex geometry. If you want all the groups in the configuration to use the same boundary, use the -use_common_bbox option at the command level. add_clock_drivers 12 IC Compiler™ Tool Commands Version L-2016.03 When you specify geometries, note that you specify a point as a Tcl list of two distances and a rectangle as a Tcl list of two points. An example of a simple configuration is { { -level 1 -boxes {3 2} } { -level 2 -boxes {6 4} } } This creates two groups of drivers. The first group, on level 1, comprises six drivers (three columns and two rows) connected to the top-level driver. The second group, on level 2, comprises 24 drivers, which are driven by the six drivers on level 1; thus, each of the level 1 drivers has a fanout of 4. The level 2 drivers are arrayed in six columns and four rows. They are spread uniformly over the region defined by the load pins specified in the -load command option, because these load pins are implicitly on level 3. By default, each driver drives those pins that are closest to it. The configuration file provides various options to help create drivers suitable for a variety of common situations. For each driver group, you can specify the following configuration options: -level level_number [-boxes {columns rows} | -auto {columns rows} | -interior {columns rows} | -grid {columns rows} | -single_driver point | -coincident collection | -replicate] [-drives rectangle | -load collection_of_pins] [-boundary rectangle] [-driver_type lib_cell] [-offset {x_offset y_offset}] [-short_outputs [-output_net_name string [-transfer_wires_from net]]] -level level_number Specifies where in the hierarchy to connect the group of drivers. You must specify this option for each grouping. Level 1 is the highest level. The input pins of level 1 drivers are driven by the overall driver pin and are therefore connected directly to the overall clock net. Level 2 drivers with are driven by level 1 drivers. The driver groupings with the highest level number drive the loads specified by the -load command option. Chapter 1: add_clock_drivers 13 1-13 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 There must not be any gaps in the level numbers. Groups must exist for each level from level 1 to your highest level number. If there is a gap, the configuration is rejected and the command returns an error. You can have any number of groups with the same level. This is useful if you have complex geometry and want to specify particular drivers for particular parts of your design. Note that it would be very rare, but not illegal, to have a level number more than about 10, because each level typically has a fanout of approximately 4 to 8, and 10 levels could drive at least 262144 loads. -boxes {columns rows} Specifies an array of drivers that are spread across the rectangle that is the boundary of the group. When you use this option, the drivers are placed at the centers of the boxes that define the loads they serve. For example, to place six drivers at {50 50}, {50 150}, {150 50}, {150 150}, {250 50}, and {250 150}, specify the following options: -level 2 -boundary {{0 0} {300 200}} -boxes {3 2} To picture the result, draw four vertical and three horizontal lines that form six boxes. The drivers are placed at the center of each box. To specify a column of drivers, set the columns argument to 1 and specify the number of drivers that you want in the rows argument. To specify a row of drivers, set the rows argument to 1 and specify the number of drivers that you want in the columns argument. To specify a single driver, set the option argument {1 1}. -auto {columns rows} Specifies an array of drivers that are spread across the rectangle that is the boundary of the group. When you use this option, the tool automatically adjusts the driver positions to even out the distance from a driver to its loads. To picture the result, represent the loads by drawing a pattern of 6 dots wide by 4 dots tall, which are spaced 100 units apart horizontally and vertically, starting at {0 0} and having the upper-right dot at {500 300}. The -auto {3 2} option adds six drivers centered in the middle of symmetrical clusters of 4 dots. The drivers are located at {50 50}, {250 50}, {450 50}, {50 250}, {250 250}, and {450 250}. Each driver drives four loads, with an equal distance to each of them. To specify a column of drivers, set the columns argument to 1 and specify the number of drivers that you want in the rows argument. To specify a row of drivers, set the rows argument to 1 and specify the number of drivers that you want in the columns argument. To specify a single driver, set the option argument {1 1}. -grid {columns rows} add_clock_drivers 14 IC Compiler™ Tool Commands Version L-2016.03 Specifies an array of drivers that are spread on the edges and interior of the rectangle that is the boundary of the group. When you use this option, the drivers are placed on the perimeter of the boundary rectangle. For example, to place six drivers at {0 0}, {150 0}, {300 0}, {0 200}, {150 200}, and {300 200}, specify the following options: -boundary { {0 0} {300 200}} -grid {3 2} To picture the result, draw three vertical and two horizontal lines that form two boxes. Each box is 150 units wide by 200 units tall. The drivers are placed at the intersections of the horizontal and vertical lines. To specify a column of drivers, set the columns argument to 1 and specify the number of drivers that you want in the rows argument. To specify a row of drivers, set the rows argument to 1 and specify the number of drivers that you want in the columns argument. To specify a single driver, set the option argument {1 1}. This option provides more detailed manual specification than the -boxes or -auto options. The -grid option might be more convenient than the -boxes option for placing drivers directly under specific wire segments in the clock wiring mesh. This would be useful for the lowest level that drives the externally specified load. -interior {columns rows} Specifies a regular array of drivers that are spread on the interior of the rectangle that is the boundary of the group. When you use this option, the drivers are placed only in the interior and not along the edges. For example, to place two drivers at {100 100} and {200 100}, enter the following options: -boundary {{0 0} {300 200}} -interior {2 1} To picture the result, draw four vertical lines and three horizontal lines that form six boxes. Each box is 100 units wide by 100 units tall. The two drivers are placed at the four-way intersections of the horizontal and vertical lines in the middle. To specify a column of drivers, set the columns argument to 1 and specify the number of drivers that you want in the rows argument. To specify a row of drivers, set the rows argument to 1 and specify the number of drivers that you want in the columns argument. To specify a single driver, set the option argument {1 1}. The -interior option can be more convenient than the -grid option for placing drivers directly under specific wire intersections in the clock wiring mesh. -single_driver point Inserts a single driver at the specified point. Chapter 1: add_clock_drivers 15 1-15 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -coincident collection Specifies that a new set of drivers should be allocated on a one-to-one basis with members of the specified collection. Typically, this is a collection of vias that are located at the intersections of the clock mesh. If the clock mesh has already been allocated, you can get the vias with the following command: set vias [get_vias -of clock_net] To specify this configuration to the add_clock_drivers command, enter add_clock_drivers -load clk \ -driver_type buffd7 -use_common_bbox -verbose -prefix ccc \ -config [list \ {-level 1 -boxes {1 1}} \ {-level 2 -boxes {2 2}} \ {-level 3 -boxes {4 4}} \ [list -level 4 -coincident $vias -short_outputs \ -output_net_name clk_mesh]] -replicate Specifies that a new set of drivers should be allocated on a one-to-one basis with the drivers on the level below the current level. Typically, this is used for allocating pairs of inverters. -drives rectangle Specifies that the group drives the loads in the specified rectangle. By default, the group drives the loads in the entire bounding box of the load pins on the level below. -load collection_of_pins Specifies that the group drives the specified load pins. You can use this configuration option only for groups at the lowest level that drive a subset of pins specified in the -load command option. By default, the group drives all load pins on the level below. -boundary rectangle Specifies the boundary for the group of drivers. By default, the boundary is determined by the set of load pins that the group serves. For example, if you want to drive loads on the left side of your design with drivers located near the middle of your design, you can use the -drives configuration option to select the loads and the -boundary configuration option to specify where to put the drivers. add_clock_drivers 16 IC Compiler™ Tool Commands Version L-2016.03 The -boundary configuration option directly impacts the operation of the -boxes, -grid, and -auto configuration options. -driver_type lib_cell Specifies the driver cell to use for the group of drivers. By default, the group uses the driver cell specified by the -driver_type command option. If you do not specify the -driver_type command option, you must specify this option for each group in the configuration. -offset {x_distance y_distance} Specifies the distance, in library units, to shift each driver from the location calculated by the tool. The tool calculates a preferred location for each driver in the group. When you use this option, the tool first shifts each location by the specified horizontal and vertical offset before searching for an unblocked location. You can use this configuration option with the -boxes, -single_driver, -replicate, and -grid configuration options. For example, you can use this configuration option with the -replicate configuration option to displace the newly created driver a small distance from the inverter that it drives. If you specify both the -offset configuration option and the -offset command option, the drivers are shifted by the sum of the two offsets. -short_outputs Specifies that the outputs of all the drivers in this group are connected to a single net. This option is typically used when the load pins are joined together by a grid of wires in a mesh. -output_net_name string Specifies the name of the net driven by the driver group. This option is typically used when the load pins are joined together by a grid of wires in a mesh and you want to specify the name of the mesh net. This option can be used only in conjunction with the -short_outputs configuration option. -transfer_wires_from from_net Specifies that all of the wires and vias on the specified net are transferred to the net specified on the -output_net_name option. This option enables you to use the following flow: create_clock_mesh -load clk -net clk -layers {METAL5 METAL4} \ -num_straps {16 16} Chapter 1: add_clock_drivers 17 1-17 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 echo Clock mesh wires are created now add_clock_drivers -load -config { {-level 1 -boxes {1 {-level 2 -boxes {2 -output_net_name } clk -driver_type buffd7 -prefix ccc \ 1}} 2} -short_outputs \ clk_mesh -transfer_wires_from clk} This sequence creates the wires on the original clock net, clk, and then creates a 2-level hierarchy of clock drivers. The second level drives the newly created clk_mesh net and all of the wires and vias that were once on the clk net are now on the clk_mesh net. Note that you can save the design and exit the tool at the point marked "Clock mesh wires are created now". Because the wires are attached to the clk net, which is part of the design with a driver and load, the wires will not be lost during a save and restore cycle. This option can be used only in conjunction with the -output_net_name configuration option. Limitations The quality of results is primarily determined by your specification. If your grouping provides too many or two few drivers or puts the drivers in the wrong location, the tree might be imbalanced or even illegal. Although you can specify the driver groups and levels in any order, the actual construction of the clock tree is bottom up. That is, it starts with the load pins and works toward the root pin. This command does not optimize the overall geometry. The placement legalization process is done after the tree is constructed internally, so the relationship between the drivers and their loads might not be as symmetric as simple geometry would suggest. The presence of large obstructions or irregular geometry can limit the utility of this command. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example generates a hierarchy of drivers connected to a mesh net. You should run the legalize_placement command after running the add_clock_drivers command. add_clock_drivers 18 IC Compiler™ Tool Commands Version L-2016.03 prompt> add_clock_drivers -load clk1 \ -prefix clkd_ -driver_type buf2 \ -configuration { {-level 1 -boxes {6 4} -driver_type buff2} {-level 2 -boxes {3 2} -driver_type buff2 \ -short_outputs -output_net_name clk1mesh} } 1 Report: Level Level Level Level 1 0 1 2 3 (overall driver) was port "clk" had 6 cells, max fanout= 4, min fanout=4 had 24 cells, max fanout= 6, min fanout=4 (overall load) had 100 input pins The following example generates a hierarchy of drivers connected to a large number of input pins, but only reports the result. In this case, two columns of drivers comprise level 1 and one column comprises level 2. The grouping list is created with the Tcl list command, which allows the use of Tcl variables and other tool functions. prompt> set loads [get_pins "fflop*/CP"] prompt> set l2_bound_box [get_bounding_box [get_pins clk2*/CP] prompt> set config [ list { -level 1 -grid { 2 1 } -boundary { 20 400 20 600} } [list -level 2 -grid { 6 1 } -boundary $l2_bound_box ] { -level 2 -boxes { 3 1 } } ] prompt> add_clock_drivers -load [get_net clkd] -prefix clkd_ \ -driver_type buf2 -check_only -configuration $config Report: Level Level Level Level 0 1 2 3 (overall driver) was port "inv2/Y" had 2 cells, max fanout= 5, min fanout=4 had 9 cells, max fanout= 5, min fanout=3 (overall load) had 34 input pins 1 SEE ALSO create_clock_mesh(2) route_mesh_net(2) compile_premesh_tree(2) Chapter 1: add_clock_drivers 19 1-19 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 analyze_subcircuit(2) compile_clock_tree(2) add_clock_drivers 20 IC Compiler™ Tool Commands Version L-2016.03 add_distributed_hosts Adds one or more distributed hosts for distributed jobs. SYNTAX status add_distributed_hosts [-target PrimeTime | StarRCXT | all] [-32bit] [-enable_ssh] -farm lsf | grd | generic | now [-setup_path setup_path] [-num_of_hosts count] [-options string] [-submission_script submission_script] [work_station_name] ARGUMENTS -target PrimeTime | StarRCXT | all Specifies the target application for this configuration. Valid values are PrimeTime, StarRCXT, all. Default is all. -32bit This switch is currently not supported in IC Compiler. -enable_ssh By default, remote processes are run with rsh. Enable this switch will ask IC Compiler to use ssh to launch remote processes. -farm lsf | grd | generic | now This option is used to specify the type of the farm from which the distributed hosts are to be acquired. -setup_path path This option specifies the path to the submission scripts/executables for farms of type lsf/ grd/generic. The path should contain the following scripts/executables. -farm lsf the setup_path should contain "qsub", "qdel" -farm grd the setup_path should contain "bsub", "bkill" -farm generic the setup_path should contain "gsub", "gdel" The -setup_path option is not valid with -farm now Chapter 1: add_distributed_hosts 21 1-21 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -num_of_hosts count The user can specify the number of hosts to use in an lsf, grd, generic, or now compute environment. The number must be at least 1. If this option is not specified then the number of hosts is 1. -options string This option is used only in conjunction with -farm lsf | grd | generic. It is a list of arguments to be passed off to the submission_script used for job submission to a lsf, grd or generic queue. -submission_script The user can explicitly specify the script to call when submitting jobs to farm types grd, lsf or generic using this option. When both the -setup_path and -submission_script options are used simultaneously, the path and submission script specification are combined to define the script used when submit jobs to the compute resource being specified. The -submission_script option is not valid with -farm now work_station_name Specifies a single UNIX machine. This option is used only in conjunction with -farm now. DESCRIPTION The options for add_distributed_hosts depend on whether the user has an on-site load balancing capability and whether they wish to use it or not. If on-site load balanced facilities are available these should be specified using the -farm lsf, -farm grd or -farm generic options, depending on the type of resource available. If no on-site load balancing capabilities are available or there are other compute resources available that are not under load balancing control, these should be specified using the -farm now hostname method. All combinations of resources are concurrently supported by the command, however, each separate type must be specified independently with a separate invocation of the add_distributed_hosts command. Multicorner-Multimode Support This command has no dependency on scenario-specific information. add_distributed_hosts 22 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES In the following example, two hosts are added for a distributed command. The first host, platinum1, is specified to have 2 hosts and the second, platinum2, is specified to have 4 hosts. The processes on platinum1 will be 64 bit where as the processes on platinum2 will be 32 bit. Notice that the actual number of processors in platinum1 and platinum2 is irrelevant but for optimal performance the number or processes allocated should match the processors in each machine i.e. 2 processors in platinum1 and 4 processors in platinum2. prompt> add_distributed_hosts -farm now -num_of_hosts 2 platinum1 1 prompt> add_distributed_hosts -farm now -num_of_hosts 4 platinum2 -32bit 1 To use this command where on-site load balancing capabilities (LSF/GRD/GENERIC) are in place, use options -farm grd, -farm lsf, or -farm generic. In the example below, the distributed hosts list is populated by defining four 32 bit hosts from an lsf farm, and two 64 bit hosts from a grd farm. prompt> add_distributed_hosts -farm lsf -setup_path "/bin/lsf/" \ -options { -R "tmp>300" -q} -num_of_hosts slaves 4 -32bit 1 prompt> add_distributed_hosts -farm grd -setup_path "/bin/grd/" \ -options {-cwd -V -r y -P bnormal -l} -num_of_hosts slaves 2 1 Chapter 1: add_distributed_hosts 23 1-23 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 add_drc_error_detail Adds additional details to an existing error object that is associated with the default error type class. SYNTAX status add_drc_error_detail -error_view mw_error_view -drc_error drc_error -rectangles rectangles | -polygons polygons [-net net] [-layer layer] Data Types mw_error_view drc_error rectangles polygons net layer list list list list list list or collection of one item or collection of one item or collection of one item or collection of one item ARGUMENTS -error_view mw_error_view Specifies the error view that contains the error record to which the details are added. You can specify only a single error view; specifying more than one error view causes an error. This is a required option. -drc_error drc_error Specifies the error object to which to add these details. You can specify a single error object; specifying more than one error object causes an error. You can add error details only to existing error objects. To specify the error object, use the collection returned by the create_drc_error command or the get_drc_errors command. The specified error object must be associated with the default error type class. For more information about error type classes, see the man page for the create_drc_error_type command. add_drc_error_detail 24 IC Compiler™ Tool Commands Version L-2016.03 This is a required option. -rectangles rectangles Specifies the rectangle shapes to add to the error object. You can specify one or more rectangles as a list of rectangles: {rectangle+} where each rectangle is specified as a list of four coordinates: {llx lly urx ury} which represent the x- and y-coordinates of the lower-left and upper-right corners of the rectangle. You can also define a rectangle as a list of two points for the lower-left and upper-right corners, where a point is a list of two coordinates: {{llx lly} {urx ury}} The -rectangles and -polygons options are mutually exclusive; you must specify one of these options. -polygons polygons Specifies the polygon shapes to add to the error object. You can specify one or more polygons as a list of polygons: {polygon+} where each polygon is a list of points {point+} and each point is a list that contains an x- and y-coordinate: {x y} The list of polygons might look like this: {{{ax1 ay1} {ax2 ay2} ... {axn ayn}} {{bx1 by1} {bx2 by2} ... {bxn byn}}} The -rectangles and -polygons options are mutually exclusive; you must specify one of these options. Chapter 1: add_drc_error_detail 25 1-25 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -net net Specifies the net associated with the shapes. You can specify the net by providing a collection that contains the net or by specifying the net name. You cannot use wildcards in the net name. -layer layer Specifies the layer associated with the shapes. You can specify the layer by using the layer name from the technology file or by using the get_layers command. DESCRIPTION This command adds shapes and associated details to an existing error object that is associated with the default error type class. When an error type is created with the create_drc_error_type command, it is associated with one of the following error type classes: default, open, openlocator, short, and spacing. An error object is interpreted based on its error type class. Use this command only for adding details to error objects associated with the default error type class. To add details to error objects associated with the open error type class, use the add_open_drc_error_detail command. For the other error type classes, you specify the details when you create the error object; you cannot add details to an existing error object. The command returns 1 if successful; 0 otherwise. EXAMPLES The following example creates an error record of the type "Pin made fat" in an error view and then adds details to it: prompt> set errId [create_drc_error -error_view "mydesign_mydrc.err" \ -type "Pin made fat"] {25635} prompt> add_drc_error_detail -drc_error $errId \ -error_view "mydesign_mydrc.err" \ -net [get_nets myNetName] -layer [get_layers myLayerName] \ -rectangles {{574.0700 430.3600 578.9700 433.4400}} 1 SEE ALSO create_drc_error(2) create_drc_error_type(2) add_drc_error_detail 26 IC Compiler™ Tool Commands Version L-2016.03 create_open_drc_error(2) create_open_locator_drc_error(2) create_short_drc_error(2) create_spacing_drc_error(2) add_open_drc_error_detail(2) list_drc_error_types(2) report_drc_error_type(2) get_drc_errors(2) Chapter 1: add_drc_error_detail 27 1-27 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 add_end_cap Adds end cap cells to the cell rows in the current design. SYNTAX status add_end_cap -lib_cell lib_cell_name [-vertical_cells lib_cell_names [-fill_corner]] [-mode both | bottom_left | upper_right] [-mirror] [-respect_padding] [-respect_blockage] [-respect_keepout] [-ignore_soft_blockage] [-skip_fixed] [-next_to_fixed] [-at_va_boundary] [-at_plan_group_boundary] Data Types lib_cell_name lib_cell_names collection of one cell collection of one or more cells ARGUMENTS -lib_cell lib_cell_name Specifies the reference library cell to be used as horizontal end caps. You can specify only one cell. This is a required option. -vertical_cells lib_cell_names Specifies the reference library cells to be used as vertical end caps. By default, the tool does not add vertical end cap cells. -fill_corner Fills the corners where vertical and horizontal end caps meet with horizontal end cap cells. You must use this option with the -vertical_cells option. add_end_cap 28 IC Compiler™ Tool Commands Version L-2016.03 By default, the tool does not fill corners. -mode both | bottom_left | upper_right Specifies how to place the end cap cells. The behavior for each mode is • both (the default) Places an end cap cell at both ends of the row. The left end cap in normal orientation and the right end cap is flipped. Note that the -mirror option has no effect when using the both mode. • bottom_left Places an end cap cell at the bottom of a vertical row or to the left of a horizontal row. • upper_right Places an end cap cell at the top of a vertical row or to the right of a horizontal row. -mirror Places the end cap cell in a flipped orientation. This option has no effect when you specify -mode both. By default, the tool places the cell in its normal orientation. -respect_padding Prevents the tool from placing end cap cells in the padding areas around macro cells. By default, the tool can place end cap cells in the padding areas. -respect_blockage Prevents the tool from placing end cap cells inside placement blockages. By default, the tool can place end cap cells inside placement blockages. -respect_keepout Prevents the tool from placing end cap cells inside the keepout margins around macro cells. This option does not apply to keepout margins on other types of cells. -ignore_soft_blockage Ignores soft blockages and honors only hard blockages. You must use this option with the -respect_blockage option. -skip_fixed Prevents the tool from placing end cap cells at locations that are occupied by fixed cells. If placing a horizontal end cap at either end of a row that overlaps a fixed cell, no horizontal end cap is placed. Chapter 1: add_end_cap 29 1-29 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 You must use this option with the -vertical_cells option. This option is mutually exclusive with the -next_to_fixed option. By default, the tool does not respect fixed cells. -next_to_fixed Treats fixed cells that are less than one unit tile from a boundary as a macro and places a horizontal end cap cell next to the fixed cell. Other fixed cells are ignored by this option. This option is mutually exclusive with the -skip_fixed option. -at_va_boundary Places horizontal end cap cells on both sides of the vertical voltage area boundaries. When you use this option, rows are treated as cut by the vertical voltage area boundaries. Therefore, horizontal end cap cells are placed on both sides of a vertical voltage area boundary. If a voltage area does not have guard bands, its boundary is ignored during end cap insertion. By default, voltage area boundaries are ignored during end cap insertion. -at_plan_group_boundary Places horizontal end cap cells on both sides of the vertical plan group boundaries. When you use this option, rows are treated as cut by vertical plan group boundaries. Therefore, horizontal end cap cells are placed on both sides of a vertical plan group boundary. By default, plan group boundaries are ignored during end cap insertion. DESCRIPTION This command allows you to add horizontal end cap cells at both ends of a cell row and, optionally, to add vertical end cap cells along horizontal edges. An end cap cell is typically not a logic cell and is added before placement to serve a special purpose for the row, such as a decoupling capacitor. You should specify a proper end cap cell because the tool can accept any standard cell as an end cap cell. If you use the -vertical_cells option and the remaining gaps are larger than or equal to the smallest vertical end cap cells, the tool inserts the vertical end cap cells in the specified order. If the remaining gaps are smaller than the smallest vertical end cap cells, the tool inserts the next cell in order. To avoid unfilled gaps, carefully consider the size of the vertical end cap cells that you specify. add_end_cap 30 IC Compiler™ Tool Commands Version L-2016.03 Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example adds horizontal end cap cells named MY_END_CAP to the current design. prompt> add_end_cap -lib_cell MY_END_CAP SEE ALSO set_keepout_margin(2) Chapter 1: add_end_cap 31 1-31 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 add_multisource_drivers Sets up the tap drivers for a multisource tree. These are typically driven by a clock mesh and are used by a subsequent split_multisource_clock command. SYNTAX status add_multisource_drivers -mesh_net net [-driver_type lib_cell] -tap_markers vias_port_shapes_cells_net_shapes | -tap_locations list_of_points [-prefix string] [-check_only] [-remove_display] Data Types net lib_cell vias_port_shapes_cells_net_shapes port_shapes, cells, or net_shapes. list_of_points a list of two distances) a collection of one net a collection of one library cell a collection containing vias, a Tcl list of points (each point is ARGUMENTS -mesh_net net The clock mesh net that drives the newly created drivers. This is required for all uses of the command except -remove_display. -driver_type lib_cell Specifies the type of cell to be added. If none is specified, the tool picks one based on heuristics. -tap_markers vias_port_shapes_cells_net_shapes Provides a quick way to specify the locations where you want to place the drivers. Typically this is a collection of all the vias on the mesh net, but other object types can also be used. add_multisource_drivers 32 IC Compiler™ Tool Commands Version L-2016.03 -tap_locations list_of_points If you have the specific XY locations where you would like the cells to go, it can be accepted as a Tcl list of lists with this option. -prefix string Controls the name of newly created cells. The default is "MS_TAP_". The new cells have this prefix followed by an integer. -check_only Does not insert the cells, but puts a white rectangle where they would be placed. Start the GUI before using this option. -remove_display Removes the white rectangles created with the -check_only option from the display. Running the command without -check_only (to actually create the cells) also removes the rectangles. DESCRIPTION The add_multisource_drivers command adds clock buffer cells that are driven by a common net, which is typically a clock mesh net. Their output pins can then be used by the split_multisource_clock command. The split_multisource_clock command need not be run immediately after the add_multisource_drivers command. Note that the add_multisource_drivers command can be run first, independently and then the mesh can be analyzed and characterized electrically. If it is acceptable the split_multisource_clock command can be run subsequently. You can specify the locations of drivers with the -tap_markers and -tap_locations options. If you have specific XY locations in mind, list them explicitly with the -tap_locations options. If you want the drivers to follow a pattern of preexisting objects, including vias, cells, port_shapes, and net_shapes (wires), then use the -tap_markers option. If you use both, the union of these locations is used. To facilitate this process, you might want to look at the locations of the drivers before actually adding them. This can be done with the -check_only option. Be sure the GUI is turned on before running the command this way. After running with -check_only you see small white rectangles marking the proposed locations of drivers. They might not be exactly at the locations you specified, since they have to move to legal locations (avoiding placement blockages, large macros, etc.) To remove these objects from the display, run with the -remove_display option, or rerun the command without check_only. In either case, the rectangles are removed from the display. The new cell names are Chapter 1: add_multisource_drivers 33 1-33 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 <prefix> <tap number> such as "MS_TAP_14." Note that the split_multisource_clock command works best if the names of these driver pins end in sequential integers. If so, it can then create new nets and cells that follow this pattern. EXAMPLES The following example runs the add_multisource_drivers command to create a multisource tree. The original tree is driven by taps_0/Z. prompt> add_multisource_drivers -mesh_net I_CLOCK_GEN/net_sys_clk \ -driver_type tsmc_70_max/drv8x -check_only \ -tap_markers [get_vias -of orca/clock_gen/system_clk -filter {route_type=="Clk Strap"}] 1 SEE ALSO split_multisource_clock(2) create_clock_mesh(2) add_clock_drivers(2) add_multisource_drivers 34 IC Compiler™ Tool Commands Version L-2016.03 add_open_drc_error_detail Adds additional details to an existing error object that is associated with the open error type class. SYNTAX status add_open_drc_error_detail -error_view mw_error_view -drc_error drc_error -node node_number -rectangles rectangles | -polygons polygons [-layer layer] Data Types mw_error_view drc_error node_number rectangles polygons layer list or collection of one item list or collection of one item integer list list list or collection of one item ARGUMENTS -error_view mw_error_view Specifies the error view in which to create the error record. You can specify only a single error view; specifying more than one error view causes an error. This is a required option. -drc_error drc_error Specifies the error object to which to add these details. You can specify only a single error object; specifying more than one error object causes an error. You can add error details only to existing error objects. To specify the error object, use the collection returned by the create_open_drc_error command or the get_drc_errors command or use the object ID of the error object. The specified error object must be associated with the open error type class. For more information about error type classes, see the man page for the create_drc_error_type command. This is a required option. Chapter 1: add_open_drc_error_detail 35 1-35 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -node node_number Identifies the node to which the specified net shapes belong. An open type error is described by two or more disjoint nodes, where a node is a set of connected net shapes. This option uniquely identifies the node, while the -rectangles or -polygons option specifies the net shapes associated with the node. This is a required option. -rectangles rectangles Specifies the rectangle shapes to add to the error object. You can specify one or more rectangles as a list of rectangles: {rectangle+} where each rectangle is specified as a list of four coordinates: {llx lly urx ury} which represent the x- and y-coordinates of the lower-left and upper-right corners of the rectangle. You can also define a rectangle as a list of two points for the lower-left and upper-right corners, where a point is a list of two coordinates: {{llx lly} {urx ury}} The -rectangles and -polygons options are mutually exclusive; you must specify one of these options. -polygons polygons Specifies the polygon shapes to add to the error object. You can specify one or more polygons as a list of polygons: {polygon+} where each polygon is a list of points {point+} and each point is a list that contains an x- and y-coordinate: {x y} The list of polygons might look like this: add_open_drc_error_detail 36 IC Compiler™ Tool Commands Version L-2016.03 {{{ax1 ay1} {ax2 ay2} ... {axn ayn}} {{bx1 by1} {bx2 by2} ... {bxn byn}}} The -rectangles and -polygons options are mutually exclusive; you must specify one of these options. -layer layer Specifies the layer associated with the shapes. You can specify the layer by using the layer name from the technology file or by using the get_layers command. DESCRIPTION This command adds shapes and associated details to an existing error object that is associated with the open error type class. The command returns 1 if successful; 0 otherwise. EXAMPLES The following example opens an error view named mydesign_mydrc.err, creates an error type named "Open Net" in the open error type class, creates an error record of the "Open Net" type, and then adds details to the error record: prompt> set cellId [open_mw_cel -not_as_current mydesign_mydrc.err] {mydesign_mydrc} prompt> set typeId [create_drc_error_type -name "Open Net" -class "open" \ -info "There are opens in the net" -error_view $cellId] 1024 prompt> set openErrId [create_open_drc_error \ -type $typeId -error_view $cellId] {1280} prompt> add_open_drc_error_detail -error_view $cellId \ -drc_err $openErrId -node 1 -layer RV \ -rectangles {{574.0700 430.3600 578.9700 430.3600} \ {574.0700 436.3600 574.0700 453.3600}} 1 SEE ALSO create_open_drc_error(2) create_drc_error_type(2) list_drc_error_types(2) report_drc_error_type(2) Chapter 1: add_open_drc_error_detail 37 1-37 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 get_drc_errors(2) add_open_drc_error_detail 38 IC Compiler™ Tool Commands Version L-2016.03 add_pg_pin_to_db Converts rail or non-pg_pin based logic library (db) into pg_pin based logic library. SYNTAX status add_pg_pin_to_db input_db_filename [-mw_library_name mw_lib_name] [-pg_map_file pg.map] -output pg_db_filename [-fast] [-expanded] [-verbose] [-pg_map_template pg_pin_map_template_filename] [-force_update] ARGUMENTS input_db_filename Specifies the name of the input logic library (.db) file, which is in non-pg_pin-based format. It is mandatory. -mw_library_name mw_lib_name Specifies one or more Milkyway library name(s) (FRAM view) that correspond to the input db file. -pg_map_file pg.map Specifies the file name of mapping between non-pg_pin-based data and pg_pin-based data. -output pg_db_filename Specifies the name of new pg_pin-based db file that is generated after the conversion. It cannot be the same name as the input db file. This option is mandatory. DESCRIPTION Command add_pg_pin_to_db converts rail or non-pg_pin based logic library (db) into pg_pin based logic library. There are three cases: Chapter 1: add_pg_pin_to_db 39 1-39 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 1) with complete Milkyway library If all cells have single P/G rail (1P1G), -pg_map_file option is not required but -mw_library_name should be specified to derive the mapping from the Milkyway Fram view. If some cells have multiple P/G rails, -pg_map_file is required for those cells. 2) without Milkyway library (db only) If you only specify a logic library (.db), no matter if it is a single P/G rail library or not, you must specify -pg_map_file to make the conversion. 3) with partial Milkyway library If some cells exists in both logic library and Milkyway library while others only exist in logic library, -pg_map_file should be specified for the cells that are missing in the Milkyway library. EXAMPLES The following example converts the logic library "old.db" into pg_pin-based "pg.db". prompt> add_pg_pin_to_db old.db -mw_library_name {mw_lib} -pg_map_file pg.map -output pg.db SEE ALSO add_pg_pin_to_lib(2) add_pg_pin_to_db 40 IC Compiler™ Tool Commands Version L-2016.03 add_pg_pin_to_lib converts rail or non-pg_pin based logic library (.lib) into pg_pin based logic library (.lib). SYNTAX status add_pg_pin_to_lib input_lib_filename [-mw_library_name mw_lib_name] [-pg_map_file pg.map] [-pg_map_template template_filename] [-expanded] -output pg_lib_filename [-common_shell_path common_shell_path] [-fast] [-verbose] [-force_update] ARGUMENTS input_lib_filename Specifies the name of the input logic library (.lib) file, which is in non-pg_pin-based format. It is mandatory. -mw_library_name mw_lib_name Specifies one or more Milkyway library name(s) (FRAM view) that correspond to the input db file. -pg_map_file pg.map Specifies the file name for mapping between non-pg_pin-based data and pg_pin-based data including PM attributes. -pg_map_template template_filename Specifies the file name for map template. -expanded Specifies to generate expanded map template with wildcard expanded. By default it is OFF meaning compressed map template using wildcards will be generated. Chapter 1: add_pg_pin_to_lib 41 1-41 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -output pg_lib_filename Specifies the name of new pg_pin-based lib file that is generated after the conversion. It cannot be the same name as the input lib file. This option is mandatory. DESCRIPTION Command add_pg_pin_to_lib converts rail or non-pg_pin based logic library (.lib) into pg_pin based logic library (.lib). There are three cases: 1) with complete Milkyway library If all cells have single P/G rail (1P1G), -pg_map_file option is not required but -mw_library_name should be specified to derive the mapping from the Milkyway Fram view. If some cells have multiple P/G rails, -pg_map_file is required for those cells. 2) without Milkyway library (.lib only) If you only specify a logic library (.lib )and no Milkyway library, for a single P/G rail library or multi-rail library, you must specify -pg_map_file to make the conversion. 3) with partial Milkyway library If some cells exists in both logic library and Milkyway library while others only exist in logic library, -pg_map_file should be specified for the cells that are missing in the Milkyway library and for PM cells. EXAMPLES The following example converts the logic library "old.lib" into pg_pin-based "pg.lib". prompt> add_pg_pin_to_lib old.lib -pg_map_file -output pg.lib pg.map SEE ALSO add_pg_pin_to_db(2) add_pg_pin_to_lib 42 IC Compiler™ Tool Commands Version L-2016.03 add_port_state Adds state information to a supply port. SYNTAX string add_port_state supply_port_name -state {state_name state_value} Data Types supply_port_name state_name state_value string string string ARGUMENTS supply_port_name Specifies the name of the supply port. Hierarchical names are allowed. -state {state_name state_value} Specifies the name and value of a state of the supply port. You can repeat this option. The state value can be one of the following: • A single floating point number that represents the nominal voltage for the specified state. For example, to define a state called s88 with a nominal voltage of 0.88, use the following syntax: -state {s88 0.88} • Three floating point numbers that represent the minimum, nominal, and maximum voltages of the specified state, respectively. For example, to define a state called active_state with a minimum voltage of 0.88, a nominal voltage of 0.90, and a maximum voltage of 0.92, use the following syntax: -state {active_state 0.88 0.90 0.92} Chapter 1: add_port_state 43 1-43 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 • NOTE: It is an error if minimum voltage is greater than (>) the nominal voltage or the nominal voltage is greater than (>) the maximum voltage. • The keyword off, which indicates an inactive state. For example, to define an inactive state called off_state, use the following syntax: -state {off_state off} DESCRIPTION This command adds state information to a supply port. The first occurrence of the supply_port_name option is the default state of the supply port. You can use this to represent off-chip supply sources that are not driven by the testbench. This option defines the voltage level supplied to the chip. It provides a convenient shortcut to facilitate verification and analysis without requiring the creation of a power domain and a supply network within the verification environment. An error occurs if supply_port_name does not already exist before executing this command. This command returns the fully-qualified name from the current scope of the created port or a null string if the port is not created. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example shows the states and voltages of a supply port named VN1: prompt> add_port_state VN1 \ -state {active_state 0.88 0.90 0.92} \ -state {off_state off} SEE ALSO add_pst_state(2) create_pst(2) report_pst(2) add_port_state 44 IC Compiler™ Tool Commands Version L-2016.03 add_power_state Adds state information to a supply set or a group. SYNTAX status add_power_state [-supply | -group] object_name [-simstate {simstate}] [-update] [-state state_name {[-supply_expr {supply_expression}] [-logic_expr {logic_expression}] [-simstate {simstate}] [-illegal]}]* Data Types object_name state_name supply_expression logic_expression simstate update illegal string string string string string flag flag ARGUMENTS object_name Specifies the name of a supply set, or the name of a group created with the create_power_state_group command. The name should be a simple (nonhierarchical) name. -state state_name Specifies the name of the state of the supply set or the group. The name should be a simple (nonhierarchical) name. This option can be specified multiple times in the same command. -supply_expr {supply_expression} This option can only be specified when the object_name is a supply set. This option specifies a Boolean expression in terms of nets and their netstates. The only operator allowed in the Boolean expression is &&. Each subexpression in the Boolean expression Chapter 1: add_power_state 45 1-45 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 specifies the net and netstate definitions. Each subexpression must have the following syntax: net == netstate The net can be power or ground and the netstate syntax must be one of the following: status `{status} `{status, nom} `{status, min, max} `{status, min, nom, max} {status} {status nom} {status min max} {status min nom max} • status can be OFF or FULL_ON • min, nom, and max are floating-point numbers representing the minimum, nominal, and maximum voltages of the specified state, respectively. • NOTE: It is an error if min is greater than (>) nom or if nom is greater than (>) max. • If the status is FULL_ON, at least one voltage must be defined. -logic_expr {logic_expression} If the object_name is a supply set, then this option specifies a SystemVerilog Boolean expression in terms of logic nets and supply nets. The -logic_expr option does not affect implementation and is intended to be used by simulation tools, to read and write transparently. If the object_name is a group, then this option specifies a Boolean expression in terms of supply sets/groups/PSTs and their states. The only operator allowed in the Boolean expression is &&. -simstate {simstate} This option can only be specified when the object_name is a supply set. This option specifies a simstate for the power states associated with a supply set, valid values are NORMAL, CORRUPT_ON_ACTIVITY, CORRUPT and NOT_NORMAL. The -simstate option does not affect implementation and is intended to be used by simulation, so the tool reads and writes the information specified with this option transparently. This option can be specified for every state that is defined with the add_power_state command (as shown below) add_power_state -state state_name {-simstate simstate_value}. add_power_state 46 IC Compiler™ Tool Commands Version L-2016.03 This option can also be specified globally for the entire add_power_state command (as shown below) add_power_state -simstate simstate_value -state state_name {...} However, the latter usage has been discontinued in the UPF standard. This usage has been retained only for backward compatibility purposes and will be gotten rid of in a future release. -update This option is used to add additional power states (supply set states or group states) to an object. In case of supply sets, this option can be used to add incremental information (-logic_expr, -supply_expr, -simstate) to an existing supply set state. Attempt to add information that has already been specified before will result in an error. -illegal This option is used to indicate that the state defined (for a supply set or a group) is an illegal state. DESCRIPTION This command adds state information to a supply set or a group. If the object specified is a supply set, then use this command to set power states on the nets of a supply set and then use them as supplies for the power state table. If the supply set does not already exist, this command issues an error. If the object specified is a group, then use this command to create the power state table by using supply sets, other groups or PSTs in the -logic_expr option. The group should have been previously created using the create_power_state_group command. If the group does not already exist, this command issues an error. To add additional group states to a group, the -update option must be used. EXAMPLES The following example shows the states and voltages of a supply set, SS1: prompt> add_power_state SS1 \ -state HVp {-supply_expr {power == `{FULL_ON, 0.88, 0.90, 0.92}}} prompt> add_power_state SS1 \ -state HPg {-supply_expr {ground == `{OFF}}} Chapter 1: add_power_state 47 1-47 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 The following example defines LV state, but omitting the details on voltages for SS2 supply set: prompt> add_power_state SS2 \ -state LV {} The following example defines a state ON for supply set SS1 where the supply_expression is a Boolean expression of power and ground. prompt> add_power_state -supply SS1\ -state ON {-supply_expr {power == {FULL_ON 0.8} && ground == {FULL_ON 0}}} The following example shows how power states can be added to a group. Here 'GROUP1' is a power state group that has previously been created with the create_power_state_group command. GS1 and GS2 are the names of the group states created. The system is in state GS1 when supply set SS1 is in state ON1, and group GROUP2 defined in scope MID1 is in state ON1, and the PST PST1 defined in scope MID2 is in state ON1. prompt> add_power_state -group GROUP1 \ -state GS1 {-logic_expr {SS1 == ON1 && MID1/GROUP2 == ON1 && MID2/PST1 == ON1}} -state GS2 {-logic_expr {SS1 == ON2 && MID1/GROUP2 == ON2 && MID2/PST1 == ON2}} SEE ALSO create_power_state_group(2) add_pst_state(2) create_pst(2) create_supply_set(2) report_pst(2) add_power_state 48 IC Compiler™ Tool Commands Version L-2016.03 add_pst_state Defines the states of each of the supply nets for one possible state of the design. SYNTAX status add_pst_state state_name -pst table_name -state supply_states Data Types state_name table_name supply_states string string list ARGUMENTS state_name Specifies the name of the power state. -pst table_name Specifies the power state table (PST) to which this state applies. -state supply_states Lists the supply net state names in the corresponding order of the -supplies option listing in the create_pst command. DESCRIPTION The add_pst_state command defines the states of each of the supply nets for one possible state of the design. It is an error if the number of supply state names is different from the number of supply nets within the power state table. Multicorner-Multimode Support This command has no dependency on scenario-specific information. Chapter 1: add_pst_state 49 1-49 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example defines the supply net state names for the s1, s2 and s3 power states: create_pst pt add_pst_state add_pst_state add_pst_state -supplies { PN1 PN2 s1 -pst pt -state { s2 -pst pt -state { s3 -pst pt -state { SOC/OTC/PN3 s08 s08 s08 s08 s08 off s08 s09 off } } } } SEE ALSO add_port_state(2) create_pst(2) report_pst(2) add_pst_state 50 IC Compiler™ Tool Commands Version L-2016.03 add_row Creates a list of rows in the design. SYNTAX status add_row -within {coordinates} [-direction horizontal | vertical] [-flip_first_row] [-no_double_back] [-minimal_channel_height channel_height] [-no_start_from_first_row] [-tile_name tile_name] [-snap_to_row_direction {wire_track | tile_width | none}] [-snap_to_orthogonal_row_direction {existing_row | wire_track | none}] [-left_offset left_offset] [-right_offset right_offset] [-top_offset top_offset] [-bottom_offset bottom_offset] [-allow_overlap] Data Types coordinates channel_height tile_name left_offset right_offset top_offset bottom_offset list float string float float float float ARGUMENTS -within {coordinates} Specifies the boundary within which to create rows. For a rectangular region, specify the coordinates for the lower-left and upper-right corners as {ll_x ll_y} {ur_x ur_y}}. For a rectilinear region, specify a list of rectilinear coordinates in either clockwise or counterclockwise order. Chapter 1: add_row 51 1-51 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -direction horizontal | vertical Specifies the direction of rows to be created. By default, the direction of rows is the same as the direction of the base array where the rows are added. -flip_first_row Flips the bottom row in a horizontal core area or the leftmost row in a vertical core area. The -flip_first_row and -no_double_back options are mutually exclusive. By default, the first row is not flipped. -no_double_back Creates rows without flipping one row in each pair. The -no_double_back and -flip_first_row options are mutually exclusive. By default, the area can contain pairs of rows that are doubled back. -minimal_channel_height channel_height Specifies the amount of channel height to allocate for routing between rows. By default, the minimum channel height is 0.0. -no_start_from_first_row Specifies that the bottom row in a horizontal core area or the leftmost row in a vertical core area is not paired with the second row. By default, the first row can form a row pair with the second row. -tile_name tile_name Specifies the name of the unit tile to use in rows. By default, the tile name is unit. -snap_to_row_direction {wire_track | tile_width | none} Specifies the snapping type in the row direction. If you specify a snapping type of wire_track for a design with horizontal rows, the tool aligns the vertical-layer wire tracks of the tile and the design. For a design with vertical rows, the tool aligns the horizontal-layer wire tracks of the tile and the design. If you specify a snapping type of tile_width for a design with horizontal rows, the tool separates the left edge of the base array boundary and the starting left edge of the row by using a multiple of the tile width. For a design with vertical rows, the tool separates the bottom edge of the base array boundary and the bottom edge of the first row by using a multiple of the tile width. If you specify a snapping type of none for a design with horizontal rows, the tool creates each new row from the left edge as specified by the -within option. For a design with vertical rows, the tool creates each new row from the bottom edge as specified by the -within option. add_row 52 IC Compiler™ Tool Commands Version L-2016.03 By default, the snapping type is wire_track. -snap_to_orthogonal_row_direction {existing_row | wire_track | none} Specifies the snapping type in the orthogonal row direction. If you specify an orthogonal snapping type of existing_row, the tool attempts to align the new row with an existing row that is within one tile height of the specified location. The existing row must have the same tile pattern and orientation as the first new row. If the tool cannot find an existing row that meets the criteria, the tool snaps the new row to a wire track. If you specify a snapping type of wire_track for a design with horizontal rows, the tool aligns the horizontal-layer wire track of the tile and the design. For a design with vertical rows, the tool aligns the vertical-layer wire tracks of the tile and the design. If you specify a snapping type of none for a design with horizontal rows, the tool creates the first row at the bottom edge as specified by the -within option. For a design with vertical rows, the tool creates the first row at the left edge as specified by the -within option. By default, the orthogonal row snap type is existing_row. -left_offset left_offset Specifies the minimum space between the new rows and the left boundary specified by the -within option. By default, the left offset is 0. -right_offset right_offset Specifies the minimum space between the new rows and the right boundary specified by the -within option. By default, the right offset is 0. -top_offset top_offset Specifies the minimum space between the new rows and the top boundary specified by the -within option. By default, the top offset is 0. -bottom_offset bottom_offset Specifies the minimum space between the new rows and the bottom boundary specified by the -within option. By default, the bottom offset is 0. -allow_overlap Specifies that overlapped rows are allowed. By default, overlapped rows are not allowed, whether they are same height or not. Chapter 1: add_row 53 1-53 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 DESCRIPTION This command adds rows to the specified area. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example creates rows in a rectangular region. prompt> add_row -within {{100 100} {300 300}} -tile_name unit1 info: created 6 rows. 1 The following example creates rows in the specified rectilinear region. prompt> add_row -within {{30.0 30.0} {30.0 50.0} \ {40.0 50.0} {40.0 60.0} {50.0 60.0} {50.0 40.0} \ {60.0 40.0} {60.0 30.0} {30.0 30.0}} -tile_name unit2 Info: 18 rows are added. 1 The following example creates rows and sets left/right offset of 5 units and top/bottom offset of 10 units. prompt> add_row -within {{100 100} {300 300}} \ -left_offset 5 -right_offset 5 \ -top_offset 10 -bottom_offset 10 \ Info: 6 rows are added. 1 The following example creates rows with a channel height of 3.69 units between the rows. prompt> add_row -within {{30 148} {30 159} \ {645 159} {645 166} {817 166} \ {817 159} {1432 159} {1432 148}} \ -minimal_channel_height 3.69 Info: created 4 rows. 1 The following example creates rows that overlap with the existing rows in the region. add_row 54 IC Compiler™ Tool Commands prompt> add_row -within {{30 148} {30 159} \ {645 159} {645 166} {817 166} \ {817 159} {1432 159} {1432 148}} -allow_overlap Warning: Existing row (id = 11279) found in the creation region. (MWUI-183) Warning: Existing row (id = 11280) found in the creation region. (MWUI-183) Warning: Existing row (id = 11281) found in the creation region. (MWUI-183) Warning: Existing row (id = 11282) found in the creation region. (MWUI-183) Warning: Existing row (id = 11283) found in the creation region. (MWUI-183) Info: created 5 rows. 1 Version L-2016.03 \ specified new row specified new row specified new row specified new row specified new row SEE ALSO cut_row(2) write_floorplan(2) Chapter 1: add_row 55 1-55 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 add_tap_cell_array Adds tap cells to the design, forming a two-dimensional array structure. SYNTAX status add_tap_cell_array -master_cell_name cell_name -distance tap_cell_distance [-offset distance] [-pattern normal | every_other_row | stagger_every_other_row] [-voltage_area {voltage_area_collection}] [-plan_group plan_group_collection] [-tap_cell_identifier tap_cell_prefix] [-tap_cell_separator tap_cell_separator] [-no_tap_cell_under_layers layer_list] [-well_port_name port_name] [-well_net_name net_name] [-substrate_port_name port_name] [-substrate_net_name net_name] [-connect_power_name power_net_name] [-connect_ground_name ground_net_name] [-fill_boundary_row true | false] [-fill_macro_blockage_row true | false] [-boundary_row_double_density true | false] [-macro_blockage_row_double_density true | false] [-left_macro_blockage_extra_tap by_rule | must_insert | no_insert] [-right_macro_blockage_extra_tap by_rule | must_insert | no_insert] [-left_boundary_extra_tap by_rule | must_insert | no_insert] [-right_boundary_extra_tap by_rule | must_insert | no_insert] [-ignore_soft_blockage true | false] [-at_distance_only true | false] [-skip_fixed_cells true | false | tap] [-respect_keepout] [-remove_redundant_tap_cells] [-no_1x] Data Types cell_name tap_cell_distance distance voltage_area_collection plan_group_collection tap_cell_prefix tap_cell_separator layer_list port_name net_name power_net_name add_tap_cell_array string float float collection collection string string list string string string 56 IC Compiler™ Tool Commands ground_net_name Version L-2016.03 string ARGUMENTS -master_cell_name cell_name Specifies the library reference cell to be used as a tap cell. You can specify only a single library cell. This is a required option. -distance tap_cell_distance Specifies the distance in microns between two tap cells in a row. This distance is referred to as the tap distance. This is a required option. -offset distance Specifies the distance in microns that the tap pattern should be shifted to the right. If the offset distance is a multiple of the tap distance, the effective offset is 0. For example, if the tap distance is 10 microns and the offset is 32 microns, the effective offset is 2 (32 - 3x10). The default is 0. -pattern normal | every_other_row | stagger_every_other_row Specifies the tap cell insertion pattern. The supported patterns are • normal (the default) The tool adds tap cells to every row using the specified tap distance. The tap distance specified for this pattern should be approximately twice the design rule distance limit. • every_other_row The tool adds tap cells to every other row for odd rows only. This reduces the number of required tap cells by approximately half as compared to the normal pattern. The tap distance specified for this pattern should be approximately twice the design rule distance limit. • stagger_every_other_row The tool adds tap cells to every row. The tap cells on even rows are offset with half the tap distance relative to the odd rows, producing a checkerboard-like pattern. This pattern also reduces the number of required tap cells by approximately half as Chapter 1: add_tap_cell_array 57 1-57 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 compared to the normal pattern. The tap distance specified for this pattern should be approximately four times the design rule distance limit. -voltage_area {voltage_area_collection} Inserts tap cells only in the specified voltage areas. By default, the tool inserts tap cells in all voltage areas. If you specify both the -voltage_area and -plan_group options, taps cells are inserted only in those locations that meet both requirements. -plan_group plan_group_collection Inserts tap cells only in the specified plan groups and under the plan group hierarchy. By default, the tool inserts tap cells in all plan groups. If you specify both the -voltage_area and -plan_group options, taps cells are inserted only in those locations that meet both requirements. -tap_cell_identifier tap_cell_prefix Specifies the prefix for the inserted tap cells. By default, no prefix is added. -tap_cell_separator tap_cell_separator Specifies the separator character that is used when composing the instance name of the tap cell. The tap cell instance name consists of a prefix, the library reference cell name, the tap layer number, and a rolling number. For example, the instance name "tapfiller!MY_TAP!98!25" has the tapfiller prefix, the MY_TAP library reference cell name, the tap layer number 98, the rolling number 25, and the tap cell separator !. This naming convention allows you to do pattern matching selection of the tap cells. The default is "!". -no_tap_cell_under_layers layer_list Avoids placing tap cells under the preroutes on the specified metal layers. -well_port_name port_name Specifies the port name of the well tie. -well_net_name net_name Specifies the net name of the well tie. add_tap_cell_array 58 IC Compiler™ Tool Commands Version L-2016.03 -substrate_port_name port_name Specifies the port name of the substrate tie. -substrate_net_name net_name Specifies the net name of the substrate tie. -connect_power_name power_net_name Specifies the net to connect the tap cell's power pin if there is more than one power net in the design, -connect_ground_name ground_net_name Specifies the net to connect the tap cell's ground pin if there is more than one ground net in the design. -fill_boundary_row true | false Specifies the density adjustment of the tap cell array. When you use the -pattern every_other_row option, every other row is empty to reduce the number of tap cells inserted. When set to true (the default), this option instructs the tool to fill the section of a row that is adjacent to the chip boundary to avoid tap rule violations. When set to false, the section of the row adjacent to the chip boundary might need to rely on tap cells outside the boundary to satisfy the tap distance rule. This option is effective only when you also use the -pattern every_other_row option. -fill_macro_blockage_row true | false Specifies the density adjustment of the tap cell array. When you use the -pattern every_other_row option, every other row is empty to reduce the number of tap cells inserted. When set to true (the default), this option instructs the tool to fill the section of a row that is adjacent to the macro or blockage boundary to avoid tap rule violations. When set to false, the section of the row adjacent to the macro or blockage boundary might need to rely on tap cells outside the boundary to satisfy the tap distance rule. This option is effective only when you also use the -pattern every_other_row option. -boundary_row_double_density true | false Specifies the density adjustment of the tap cell array. When you use the -pattern stagger_every_other_row option, every other row is staggered to reduce the number of tap cells inserted. When set to true (the default), this option instructs the tool to double the tap density on the section of a row that is adjacent to the chip boundary to avoid tap rule violations. When set to false, the section of the row Chapter 1: add_tap_cell_array 59 1-59 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 adjacent to the chip boundary might need to rely on tap cells outside the boundary to satisfy the tap distance rule. This option is effective only when you also use the -pattern stagger_every_other_row option. -macro_blockage_row_double_density true | false Specifies the density adjustment of the tap cell array. When you use the -pattern stagger_every_other_row option, every other row is staggered to reduce the number of tap cells inserted. When set to true (the default), this option instructs the tool to double the tap density on the section of a row that is adjacent to the macro or blockage boundary to avoid tap rule violations. When set to false, the section of the row adjacent to the macro or blockage boundary might need to rely on tap cells outside the boundary to satisfy the tap distance rule. This option is effective only when you also use the -pattern stagger_every_other_row option. -left_macro_blockage_extra_tap by_rule | must_insert | no_insert Specifies the density adjustment of the tap cell array. Valid values for this option are • by_rule (the default) If the left row edge is more than the minimum tap distance from the closest tap cell on the same row as the macro or blockage, the tool inserts an extra tap cell at the minimum tap distance from the left edge. Note that the minimum tap distance is half of the spacing specified by the -distance option. • This setting might insert an extra tap cell, but always ensures that the minimum tap distance rule is not violated. • must_insert If there is no tap cell within the minimum tap distance from the left row edge, the tool inserts an extra tap cell at the minimum tap distance from the left edge. • If there is a tap cell within the minimum tap distance from the left row edge, the tool inserts an extra tap cell exactly at the left edge. • Note that the minimum tap distance is half of the spacing specified by the -distance option. • no_insert The tool never inserts an extra tap cell at the left edge of the row. When you use this setting, standard cells near the left side of the row might need to rely on tap cells inside the macro or blockage to satisfy the tap distance rule. add_tap_cell_array 60 IC Compiler™ Tool Commands Version L-2016.03 -right_macro_blockage_extra_tap by_rule | must_insert | no_insert Specifies the density adjustment of the tap cell array. Valid values for this option are • by_rule (the default) If the right row edge is more than the minimum tap distance from the closest tap cell on the same row as the macro or blockage, the tool inserts an extra tap cell at the minimum tap distance from the right edge. Note that the minimum tap distance is half of the spacing specified by the -distance option. • This setting might insert an extra tap cell, but always ensures that the minimum tap distance rule is not violated. • must_insert If there is no tap cell within the minimum tap distance from the right row edge, the tool inserts an extra tap cell at the minimum tap distance from the right edge. • If there is a tap cell within the minimum tap distance from the right row edge, the tool inserts an extra tap cell exactly at the right edge. • no_insert The tool never inserts an extra tap cell at the right edge of the row. When you use this setting, standard cells near the right side of the row might need to rely on tap cells inside the macro or blockage to satisfy the tap distance rule. -left_boundary_extra_tap by_rule | must_insert | no_insert Specifies the density adjustment of the tap cell array. Valid values for this option are • by_rule (the default) If the left edge of a row adjacent to the design's boundary is more than the minimum tap distance from the closest tap cell on the same row, the tool inserts an extra tap cell at the minimum tap distance from the left edge. Note that the minimum tap distance is half of the spacing specified by the -distance option. • This setting might insert an extra tap cell, but always ensures that the minimum tap distance rule is not violated. • must_insert If there is no tap cell within the minimum tap distance from the left row edge, the tool inserts an extra tap cell at the minimum tap distance from the left edge. • If there is a tap cell within the minimum tap distance from the left row edge, the tool inserts an extra tap cell exactly at the left edge. Chapter 1: add_tap_cell_array 61 1-61 IC IC Compiler™ Compiler™ Tool Tool Commands Commands • L-2016.03 Version L-2016.03 no_insert The tool never inserts an extra tap cell at the left edge of the row. When you use this setting, standard cells near the left side of the row might need to rely on tap cells outside the design's boundary to satisfy the tap distance rule. -right_boundary_extra_tap by_rule | must_insert | no_insert Specifies the density adjustment of the tap cell array. Valid values for this option are • by_rule (the default) If the right edge of a row adjacent to the design's boundary is more than the minimum tap distance from the closest tap cell on the same row, the tool inserts an extra tap cell at the minimum tap distance from the right edge. Note that the minimum tap distance is half of the spacing specified by the -distance option. • This setting might insert an extra tap cell, but always ensures that the minimum tap distance rule is not violated. • must_insert If there is no tap cell within the minimum tap distance from the right row edge, the tool inserts an extra tap cell at the minimum tap distance from the right edge. • If there is a tap cell within the minimum tap distance from the right row edge, the tool inserts an extra tap cell exactly at the right edge. • no_insert The tool never inserts an extra tap cell at the right edge of the row. When you use this setting, standard cells near the right side of the row might need to rely on tap cells outside the design's boundary to satisfy the tap distance rule. -ignore_soft_blockage true | false Controls whether soft blockages are ignored during tap cell insertion. The default is false. -at_distance_only true | false Specifies the density adjustment of the tap cell array. By default (false), extra tap cells can be inserted at locations other than the specified distance, distance/2, or distance/4 (stagger mode). When this option is set to true, the tool inserts tap cells only at the specified distance, distance/2, or distance/4 (stagger mode). This could cause DRC violations. This option is effective only when the one or more of the following options are set to by_rule: -left_macro_blockage_extra_tap, -right_macro_blockage_extra_tap, -left_boundary_extra_tap, and -right_boundary_extra_tap. add_tap_cell_array 62 IC Compiler™ Tool Commands Version L-2016.03 -skip_fixed_cells true | false | tap Controls whether existing fixed cells are treated as blockages. When this option is true (the default), existing fixed cells are treated like blockages and tap cells are not placed on top of fixed cells. Extra tap cells might be placed next to fixed cells, using the same rules as those applied to blockages. When this option is set to false, tap cell insertion ignores existing fixed cells and might cause overlaps by placing tap cells on top of fixed cells. This setting cannot be used with the -no_1x option. When this option is set to tap, the tool does not place a tap cell if the location is occupied by a fixed standard cell. The result is similar to setting this option to false, except that the tool does not place a tap cell that would cause an overlap. -respect_keepout Prevents the placement of tap cells inside the keepout margins around macro cells. By default, the tool can place tap cells inside the keepout margins. -remove_redundant_tap_cells Runs a clean-up operation after placing the well tap cells to remove tap cells with the specified master cell name that are not strictly necessary to meet the tap distance for the normal pattern. The clean-up operation removes redundant tap cells regardless of whether they were placed during the same command or earlier in the design process. -no_1x Does not to allow one-unit-tile fillers in the design. When you specify this option, tap cells are not placed at locations that would cause one-unit-tile gaps between a tap cell and fixed cells, macros, blockages, and the chip boundary. The no one-unit-tile spacing rule takes precedence over all other tap rules. The tool first places tap cells and then checks for one-unit-tile gaps. Tap cells that cause single one-unit-tile gaps are either moved (to the left or right) to the next legal location or removed if no legal location is found. Tap cells that do not cause one-unit-tile gaps are not moved. Setting this option might cause tap distance and pattern violations. You need to specify a tighter tap distance to prevent these violations. This option cannot be used with the -skip_fixed_cells false option. Chapter 1: add_tap_cell_array 63 1-63 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 DESCRIPTION This command adds tap cells to the design, forming a two-dimensional array structure. A tap cell is a special nonlogic cell with a well tie, substrate tie, or both. Tap cells are typically used when most or all standard cell in the library contain no substrate or well taps. The design rules typically specify a distance limit from every transistor of a standard cell to a well or substrate tie. This command is used to insert tap cells before global placement so that all standard cells that are subsequently placed can satisfy the distance limit because of the inserted tap cells. You should specify the tap distance and offset based on your specific design rule's distance limit. The command has no knowledge of the design rule's distance limit. A visual check is recommended after running this command to ensure that all standard cell placeable areas are properly protected by tap cells. You can select several tap cell placement patterns. The command can connect a substrate or well port of a tap cell to a specified net. It can also connect a power or ground port of the tap cells to a specified power or ground net. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example creates a tap cell array in the voltage areas whose names start with V. The tap cell array contains instances of the Cell1 cell in the normal pattern. The distance between tap cells is 30 microns. Tap cells are not placed under preroutes on the M1 and M2 metal layers. prompt> add_tap_cell_array -master_cell_name Cell1 \ -distance 30 -pattern normal \ -voltage_area [get_voltage_areas "V*"] \ -no_tap_cell_under_layers {M1 M2} SEE ALSO insert_tap_cells_by_rules(2) set_keepout_margin(2) add_tap_cell_array 64 IC Compiler™ Tool Commands Version L-2016.03 add_to_collection Adds objects to a collection, resulting in a new collection. The base collection remains unchanged. SYNTAX collection add_to_collection [-unique] collection1 object_spec Data Types collection1 object_spec collection list ARGUMENTS -unique Indicates that duplicate objects are to be removed from the resulting collection. By default, duplicate objects are not removed. collection1 Specifies the base collection to which objects are to be added. This collection is copied to the result collection, and objects matching object_spec are added to the result collection. The collection1 option can be the empty collection (empty string), subject to some constraints, as explained in the DESCRIPTION section. object_spec Specifies a list of named objects or collections to add. If the base collection is heterogeneous, only collections can be added to it. If the base collection is homogeneous, the object class of each element in this list must be the same as in the base collection. If it is not the same class, it is ignored. From heterogeneous collections in the object_spec, only objects of the same class of the base collection are added. If the name matches an existing collection, the collection is used. Otherwise, the objects are searched for in the database using the object class of the base collection. Chapter 1: add_to_collection 65 1-65 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 The object_spec has some special rules when the base collection is empty, as explained in the DESCRIPTION section. DESCRIPTION The add_to_collection command allows you to add elements to a collection. The result is a new collection representing the objects in the object_spec added to the objects in the base collection. Elements that exist in both the base collection and the object_spec, are duplicated in the resulting collection. Duplicates are not removed unless you use the -unique option. If the object_spec is empty, the result is a copy of the base collection. If the base collection is homogeneous, the command searches in the database for any elements of the object_spec that are not collections, using the object class of the base collection. If the base collection is heterogeneous, all implicit elements of the object_spec are ignored. When the collection1 argument is the empty collection, some special rules apply to the object_spec. If the object_spec is non-empty, there must be at least one homogeneous collection somewhere in the object_spec list (its position in the list does not matter). The first homogeneous collection in the object_spec list becomes the base collection and sets the object class for the function. The examples show the different errors and warnings that can be generated. The append_to_collection command has similar semantics as the add_to_collection command; however, the append_to_collection command can be much more efficient in some cases. For more information about the command, see the man page. For background on collections and querying of objects, see the collections man page. EXAMPLES The following example from PrimeTime uses the get_ports command to get all of the ports beginning with 'mode' and then adds the "CLOCK" port. prompt> set xports [get_ports mode*] {mode[0] mode[1] mode[2]} prompt> add_to_collection $xports [get_ports CLOCK] {mode[0] mode[1] mode[2] CLOCK} The following example from PrimeTime adds the cell u1 to a collection containing the SCANOUT port. prompt> set so [get_ports SCANOUT] add_to_collection 66 IC Compiler™ Tool Commands Version L-2016.03 {SCANOUT} prompt> set u1 [get_cells u1] {u1} prompt> set het [add_to_collection $so $u1] {u1} prompt> query_objects -verbose $het {port:SCANOUT cell:u1} The following examples show how the add_to_collection command behaves when the base collection is empty. Adding two empty collections yields the empty collection. Adding an implicit list of only strings or heterogeneous collections to the empty collection generates an error message, because no homogeneous collections are present in the object_spec list. Finally, as long as one homogeneous collection is present in the object_spec list, the command succeeds, even though a warning message is generated. The example uses the variable settings from the previous example. prompt> sizeof_collection [add_to_collection "" ""] 0 prompt> set A [add_to_collection "" [list a $het c]] Error: At least one homogeneous collection required for argument 'object_spec' to add_to_collection when the 'collection' argument is empty (SEL-014) prompt> add_to_collection "" [list a $het $sp]] Warning: Ignored all implicit elements in argument 'object_spec' to add_to_collection because the class of the base collection could not be determined (SEL-015) {SCANOUT u1 SCANOUT} SEE ALSO append_to_collection(2) collections(2) query_objects(2) remove_from_collection(2) sizeof_collection(2) Chapter 1: add_to_collection 67 1-67 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 add_to_rp_group Adds a cell, hierarchical group, or keepout to an existing relative placement group. SYNTAX for Leaf Cells status add_to_rp_group rp_groups -leaf cell_names [-column integer] [-row integer] [-pin_align_name pin_name] [-orientation direction] [-alignment bottom-left | bottom-right] [-num_rows integer] [-num_columns integer] [-free_placement] Data Types rp_groups cell_names pin_name direction list or collection cells string list of strings SYNTAX for Hierarchical Groups status add_to_rp_group rp_groups -hierarchy group_name [-instance instance_name] [-column integer] [-row integer] [-orientation direction] [-alignment bottom-left | bottom-right] Data Types group_name instance_name add_to_rp_group list or collection cell 68 IC Compiler™ Tool Commands Version L-2016.03 SYNTAX for Keepouts status add_to_rp_group rp_groups -keepout keepout_name [-column integer] [-row integer] [-width integer] [-height integer] [-type hard | soft | space] Data Types keepout_name string ARGUMENTS rp_groups Specifies the relative placement groups in which to add an item. The groups must all be in the same design. -leaf cell_names Specifies the name of a cell to add to the relative placement groups in rp_groups. The specified cell must be in the design that contains the relative placement groups in rp_groups. Multiple cells are accepted when the -free_placement option is specified. -column integer Specifies the column position in which to add the item. If you do not specify the column position, the default is zero. -row integer Specifies the row position in which to add the item. If you do not specify the row position, the default is zero. -pin_align_name pin_name Specifies the name of the pin to use for pin alignment of this cell with other cells in a group. This overrides the default pin name specified for the relative placement group into which it is being added. This option can only be used when adding a leaf cell with the -leaf option. Chapter 1: add_to_rp_group 69 1-69 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -orientation direction Specifies the placement orientation of the cell or relative placement group being added. The option functions differently for cells from for relative placement groups. For cells, specify the orientation with respect to the group to which the cell is being added. You can specify a list of possible orientations, and the tool chooses the first legal orientation for the cell. For relative placement groups, the orientation you specify overrides any group orientation that was specified. You can specify the direction using DEF syntax: DEF syntax: N, W, S, E, FN, FW, FS, FE This option can only be used to add a leaf cell with the -leaf option or hierarchical instance with the -hierarchy and -instance options. -alignment bottom-left | bottom-right Specifies the alignment to use when placing the cell or group with respect to its parent group. If you do not specify this option, IC Compiler uses the alignment method defined for the parent group. If a relative placement group has the -compress option set, and you add an element in that group with the -alignment bottom-right option, then the alignment type of that element is ignored. -num_rows integer Specifies the number of rows to which you add the leaf cell. You can specify multiple rows, ranging from 1 to 255. The default is 1 if you do not specify this option. -num_columns integer Specifies the number of columns to which you add the leaf cell. You can specify multiple columns, ranging from 1 to 255. The default is 1 if you do not specify this option. You cannot use the bottom-right and bottom-pin alignment settings for a leaf cell that occupies multiple columns. -free_placement Specifies that the cells being provided using -leaf option must be placed randomly, that is, similar to the cells of a bound. These cells can be added in multiple locations using the -num_rows and -num_columns options. The width and height of the placement area is automatically calculated for free placement cells placed inside relative placement group. You might need to specify the -width option when free placement cells are being added to boundary columns and the -height option when cells are being added to boundary rows. The cell being added should not belong to any other bound. add_to_rp_group 70 IC Compiler™ Tool Commands Version L-2016.03 -hierarchy group_name Specifies the relative placement group to be added hierarchically to the relative placement groups in rp_groups. -instance instance_name Specifies the hierarchical cell in which to instantiate the relative placement group specified with the -hierarchy option. The cell must be an instance of the reference design that contains the relative placement group specified with -hierarchy and must be in the design containing the relative placement groups specified in rp_groups. This option can be used only when adding a relative placement group with the -hierarchy option. -keepout keepout_name Specifies the name of the keepout to be added to the relative placement groups in rp_groups. Although the keepout is not a design object, you name the keepout to refer to it after it is created. -width integer Specifies the width of the keepout being added when used with -keepout. Unit for keepout width is the width of the site row for a particular library. If you do not specify the width, the keepout defaults to the width of the column into which the keepout is being added. It also specifies the width of the placement area for multiple cells being added with the -free_placement option. The unit is the width of one site of site row. -height integer Specifies the height of the keepout being added when used with the -keepout option. Unit for keepout height is the height of the site row for a particular library. If you do not specify the height, the default value is height of the row of relative placement group to which the keepout is added. It also specifies the height of the placement area for multiple cells being added with the -free_placement option. The unit is the height of the site row. -type hard | soft | space Specifies whether a keepout is hard, soft, or space. • A hard keepout keeps everything out of a location during legalization. This is the default. • A soft keepout allows non-relative-placement cells to come into its location during the legalization stage. Chapter 1: add_to_rp_group 71 1-71 IC IC Compiler™ Compiler™ Tool Tool Commands Commands • L-2016.03 Version L-2016.03 A space keepout allows non-relative-placement cells to come into its location during placement. DESCRIPTION This command adds an item to the specified relative placement groups. The relative placement groups must have been previously defined by using the create_rp_group command. The item can be either a leaf cell, a relative placement group, or a keepout. The item is placed in a particular lattice position of the group as specified by a row and column. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example uses add_to_rp_group to add a cell to an existing relative placement group and then adds that group hierarchically to another existing group: prompt> get_rp_groups ripple::grp_ripple {ripple::grp_ripple} prompt> add_to_rp_group ripple::grp_ripple -leaf carry_in_1 {ripple::grp_ripple} prompt> add_to_rp_group example3::top_group -hier grp_ripple -instance U2 {example3::top_group} prompt> add_to_rp_group example3::top_group -leaf { U1 U2 U3 U4 U5 } \ -row 0 -column 1 -num_rows 2 -num_columns 3 -free_placement {example3::top_group} SEE ALSO create_rp_group(2) remove_rp_groups(2) write_rp_groups(2) add_to_rp_group 72 IC Compiler™ Tool Commands Version L-2016.03 adjust_fp_floorplan Adjusts an existing floorplan. SYNTAX status adjust_fp_floorplan [-bottom_io2core distance] [-core_aspect_ratio ratio] [-core_height height] [-core_utilization utilization] [-core_width width] [-die_height height] [-die_origin {x y}] [-die_width width] [-fc_in_core number | -fc_periphery number] [-flip_first_row true | false] [-left_io2core distance] [-maintain_placement] [-min_pad_height true | false] [-no_double_back true | false] [-number_rows rows] [-remove_filler_io] [-right_io2core distance] [-row_core_ratio ratio] [-sm_utilization utilization] [-start_first_row true | false] [-top_io2core distance] [-use_vertical_row true | false] Data Types distance ratio height utilization width x y number rows Chapter 1: adjust_fp_floorplan float float float float float float float float float 73 1-73 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 ARGUMENTS -bottom_io2core distance Specifies the distance in microns from the core bottom edge to top edge of the largest bottom pad. If you specify the -min_pad_height true option, the distance is measured from the smallest bottom pad to the core. -core_aspect_ratio ratio Specifies the core aspect ratio. The core aspect ratio is the core height divided by the core width. If you specify this option, the core is resized to achieve this aspect ratio while maintaining the current placement area. -core_height height Specifies the core height in microns. The core is resized to achieve the specified height while maintaining the current core width. This option is usually combined with -core_width or -number_rows (for vertical rows) options. -core_utilization utilization Specifies the core utilization. Core utilization is the core physical area divided by the core placement area. The core is resized to achieve this new placement area which maintaining the current aspect ratio. -core_width width Specifies the core width in microns. The core is resized to achieve the specified width while maintaining the current core height. This option is usually combined with the -core_height or -number_rows (for horizontal rows) options. -die_height height Specifies the die height in microns. The die is resized to achieve the specified height while maintaining the current die width. This option is usually combined with -die_width. -die_origin {x y} Specifies the die origin. By default, the origin is at (0,0). -die_width width Specifies the die width in microns. The die is resized to achieve the specified width while maintaining the current die height. adjust_fp_floorplan 74 IC Compiler™ Tool Commands Version L-2016.03 This option is usually combined with -die_height option. -fc_in_core number Specifies the number of flip-chip pads or drivers inside the core. Use the string "all" to capture all flip-chip pads or drivers inside the core. All flip chip pads in the core affect the utilization calculations. This option cannot be combined with the -fc_periphery option. -fc_periphery number Specifies the number of flip-chip pads or drivers in the periphery, outside the core area. Use the string "all" to capture all flip-chip pads or drivers in the periphery. Any flip-chip pads or drivers not in the periphery are assumed to be in the core and affect the utilization calculations. This option cannot be combined with the -fc_in_core option. -flip_first_row true | false Specifies that the first cell row is flipped. By default, the first row is not flipped. -left_io2core distance Specifies the distance in microns from the core left edge to the right edge of the largest pad on the left side. If you specify the -min_pad_height true option, the distance is measured from the smallest pad on the left side to the core. -maintain_placement Keeps the current standard cell and hard macro placement inside the core. By default, the command moves standard cells and hard macros outside the core. -min_pad_height true | false Specifies whether the core to pad distances are to the smallest pad on the corresponding side instead of the largest pad. If you do not specify this option, the tool calculates distances to the largest pad. -no_double_back true | false Specifies that cell rows are not double backed. Double backed rows only have gaps between each flipped and non-flipped row pair. Non-double backed rows have gaps between each row. Chapter 1: adjust_fp_floorplan 75 1-75 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -number_rows rows Specifies the required number of rows. The core is resized to achieve the specified number of rows. The current core width is maintained for horizontal rows. The current core height is maintained for vertical rows. -remove_filler_io Removes filler I/O pads. -right_io2core distance Specifies the distance in microns from the core right edge to the left edge of the largest right pad. If you specify the -min_pad_height true option, the distance is measured from the smallest pad on the right to the core. -row_core_ratio ratio Specifies row core ratio. The ratio is the ratio of row height to core height for horizontal rows, or row width to core width for vertical rows. -sm_utilization utilization Specifies individual soft macro utilizations as a list of strings. Each string in the list uses the following syntax. sm_name sm_utilization [fc_area_factor] You can supply the optional flip chip pad and driver area factor only if the design contains flip chip pads and drivers. -start_first_row true | false Specifies that cell rows begin with a complete row pair containing flipped and non-flipped rows. -top_io2core distance Specifies the distance in microns from core top edge to bottom edge of the largest top pad. If you specify the -min_pad_height true option, the distance is measured from the smallest top pad to the core. -use_vertical_row true | false Specifies that the command places cell rows vertically. adjust_fp_floorplan 76 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION This command modifies the current die and core sizes by changing one or more values while maintaining as much of the current settings as closely possible to their original settings. You can change the following characteristics by using the specified option: . absolute die size (-die_width or -die_height) . absolute core size (-core_width or -core_height) . core size based on number of rows (-number_rows, -core_width, or -core_height depending on row direction . core utilization (-core_utilization or -core_aspect_ratio) . row geometry (direction, double_back, start_first_row, flip_first_row, row_core_ratio) . core to pads distances (-bottom_io2core, -left_io2core, -right_io2core, and -top_io2core) . die origin (-die_origin) . core to pad distance based on minimum pad height (-min_pad_height) For all core resizes the die is resized to maintain the core to pad spacing. For all die resizes the core is resized to maintain the core to pad spacing. By default, changing the die or core size invalidates the placement. As a result, all standard cells and macros are unplaced and moved out of the core area. Use the -keep_placement option to retain the current cell and macro placement. After placement blockages and filler pads might be invalid after resizing the core. The tool automatically removes blockages. You can remove filler pads by using the -remove_filler_io option. By default, the total physical area of all standard cells and hard macros is used to calculate the placement area. If the design contains soft macros or flip-chip pads and drivers, you can adjust the utilization calculation to also consider these cells. You can specify the utilization of each soft macro. This increases the physical size of the soft macro from just the total physical size of all its child standard cells and hard macros to the physical size divided by the utilization. For example, a utilization of 0.5 doubles the physical area of the soft macro. Some flip-chip drivers and pads might be within the core area, while others are outside the core area. Flip-chip drivers and pads in the core decrease the placement area and must be taken into account in the utilization calculation. You can set the number by specifying either the number within the core or the number within the periphery. You can use the string "all" to specify all flip-chip pads and drivers. By default, the tool considers that all flip-chip drivers and pads are in the core. A number of flip-chip pads and drivers might overlap soft macros. This number is automatically estimated for each soft macro based on the soft macro size and number of Chapter 1: adjust_fp_floorplan 77 1-77 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 flip-chip drivers and pads in the core. You can apply an extra scale factor to the area to adjust the number. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following command resize the core to 1000 x 1000 microns and maintains the core to pad spacing. prompt> adjust_fp_floorplan -core_width 1000 -core_height 1000 The following command changes rows to vertical orientation with a row core ratio of 0.9. prompt> adjust_fp_floorplan -use_vertical_row true -row_core_ratio 0.9 The following example changes the core utilization to 0.9 with soft macro alu1 utilization of 0.5. prompt> adjust_fp_floorplan -core_util 0.9 -sm_utilization { "alu1 0.5" } SEE ALSO adjust_fp_floorplan 78 IC Compiler™ Tool Commands Version L-2016.03 adjust_fp_io_placement Adjusts I/O pad placement. SYNTAX int adjust_fp_io_placement [-side l | r | t | b] [-spacing spacing] [-pitch pitch] [-offset offset] [-undo] [list_of_IO_cells] Data Types spacing pitch offset list_of_IO_cells float float float list ARGUMENTS -side l | r | t | b Indicates the of the chip where I/O cells are to be adjusted. This option is mutually exclusive with the list_of_IO_cells argument. -spacing spacing Specifies the spacing in microns between adjacent I/Os. This option is mutually exclusive with -pitch. -pitch pitch Specifies the distance from the center of an I/O cell to the center of the adjacent I/O cell in microns. This option is mutually exclusive with -spacing. -offset offset The distance (in microns) between the bottom-most (for left and right I/Os) or the left-most (for top and bottom I/Os) point of all the adjusted I/O cells and the bottom edge or left edge of the chip. If no -offset is specified, the command packs the I/O cells in the center of the appropriate side. Chapter 1: adjust_fp_io_placement 79 1-79 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -undo Undoes the movements made by the previous adjust_fp_io_placement command. This option is mutually exclusive with all other options. Only one level of undo is supported. list_of_IO_cells The I/O cells whose placement are to be adjusted. All the selected I/Os must be on the same side of the chip. This is mutually exclusive with the -side option. DESCRIPTION This command adjusts the spacing and location of I/O cells. The adjust_fp_io_placement command moves cells only with the I/O pad type. The I/O cells that are moved are marked as FIXED. Any cell-to-cell overlaps for I/O cells after the adjustment are reported. EXAMPLES The following command adjusts the I/O placement on the left side of the chip with a spacing of 1 micron between adjacent I/Os. prompt> adjust_fp_io_placement -side l -spacing 1 SEE ALSO set_pad_physical_constraints(2) adjust_fp_io_placement 80 IC Compiler™ Tool Commands Version L-2016.03 adjust_premesh_connection Connects the load pins in the specified clock tree or subtree either as mesh loads or as part of the premesh tree. If you specify the -premesh option, it balances the first-level loads of the premesh tree. SYNTAX status adjust_premesh_connection -root root_name [-premesh | -exclude_pins list_of_pins] [-operating_condition min | max | min_max] Data Types root_name list_of_pins net, port, or pin list ARGUMENTS -root root_name Specifies the name of the root of the clock tree or subtree. You can specify a clock net, clock port, or pin that drives a clock tree or subtree. If you specify a clock net, the command considers all the load pins of that net. If you specify a pin or a port, the command considers the load pins in the fanout of the specified port or pin. A pin is a load pin if it is either a macro pin or has a nonzero phase delay. This is a required option. -premesh Balances the first-level load pins of the specified clock tree or subtree with the isolation buffers that drive the load pins below the mesh. Use this option only after running the analyze_subcircuit command. This option and the -exclude_pins option are mutually exclusive. Chapter 1: adjust_premesh_connection 81 1-81 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -exclude_pins list_of_pins Excludes the specified pins from consideration. The specified pins are connected above the mesh. By default, all load pins in the fanout of the specified clock root are considered. This option and the -premesh option are mutually exclusive. -operating_condition min | max | min_max Specifies the operating condition to be used by the clock tree synthesis engine. If you do not specify this option, the maximum operating condition is used. DESCRIPTION This command either adjusts the specified load pins (default behavior) or balances the first-level loads of the specified clock tree or subtree (-premesh option). In default mode, the set of load pins is determined by removing the pins specified in the -exclude_pins option from the set of pins derived from the -root option. The command connects these load pins either below the mesh or to the premesh tree. If the load pin is a flip-flop clock pin, drives a flip-flop clock pin, or is a macro pin with a large capacitance, the pin is connected below the mesh. If the load pin has a nonzero phase delay, the phase delay is compared to the maximum delay of all branches associated with flip-flops. If the phase delay is greater than the maximum branch delay, the pin is connected to the premesh tree. If the clock tree has a macro pin with nonzero phase delay and split_clock_net -isolate_float_pins is used. The command decides whether to connect the pin to the premesh tree or below the mesh based on the capacitance value and phase delay of the pin. If the macro pin has high capacitance value, the pin is connected below the mesh because the mesh has high drive strength. If the pin has nominal capacitance value and nonzero phase delay, the pin is connected to the premesh tree. If you need to set the phase delay of the macro pin, use the set_clock_tree_exceptions command. When connecting load pins after the mesh, the command inserts an isolation buffer after the specified clock root and inserts the load pins after the isolation buffer, so that the clock root drives the isolation buffer and the isolation buffer drives the load pins below the mesh. When connecting load pins to the premesh tree, the command connects the pins to the specified clock root. In premesh mode, the command uses the compile_clock_tree and optimize_clock_tree commands to balance the first-level load pins of the specified clock tree. adjust_premesh_connection 82 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLE The following command analyzes the load pins connected to the clknet1 net and either connects them to the premesh tree or below the mesh. prompt> adjust_premesh_connection -root clknet1 SEE ALSO optimize_clock_tree(2) split_clock_net(2) analyze_subcircuit(2) Chapter 1: adjust_premesh_connection 83 1-83 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 alias Creates a pseudo-command that expands to one or more words, or lists current alias definitions. SYNTAX string alias [name] [def] Data Types name def string string ARGUMENTS name Specifies a name of the alias to define or display. The name must begin with a letter, and can contain letters, underscores, and numbers. def Expands the alias. That is, the replacement text for the alias name. DESCRIPTION The alias command defines or displays command aliases. With no arguments, the alias command displays all currently defined aliases and their expansions. With a single argument, the alias command displays the expansion for the given alias name. With more than one argument, an alias is created that is named by the first argument and expanding to the remaining arguments. You cannot create an alias using the name of any existing command or procedure. Thus, you cannot use alias to redefine existing commands. Aliases can refer to other aliases. Aliases are only expanded when they are the first word in a command. alias 84 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES Although commands can be abbreviated, sometimes there is a conflict with another command. The following example shows how to use alias to get around the conflict: prompt> alias q quit The following example shows how to use alias to create a shortcut for commonly-used command invocations: prompt> alias include {source -echo -verbose} prompt> alias rt100 {report_timing -max_paths 100} After the previous commands, the command include script.tcl is replaced with source -echo -verbose script.tcl before the command is interpreted. The following examples show how to display aliases using alias. Note that when displaying all aliases, they are in alphabetical order. prompt> alias rt100 rt100report_timing -max_paths 100 prompt> alias includesource -echo -verbose qquit rt100report_timing -max_paths 100 SEE ALSO unalias(2) Chapter 1: alias 85 1-85 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 align_fp_pins Aligns a set of soft macro, black box, or plan group pins with a set of reference pin objects. These can be terminals or pins on hard macros, I/O pad cells, standard cells, internal child hard macros, or another soft macro, black box or plan group. SYNTAX status align_fp_pins [-align_with_child_hm_pins] [-change_layer_width] [-direction {center | left | right | top | bottom}] [-fixed] [-order_type {low_to_high | high_to_low | net_connection}] [-propagate_single_pins] [-reference object] objects Data Types object objects collection of one item collection ARGUMENTS -align_with_child_hm_pins Aligns pins with child hard macro pins. The reference pins are hard macro pins inside a soft macro. -change_layer_width Changes pin metal layer to match the reference pin. The final width of the aligned pin is the default width of the target layer, not the width of the reference pin. By default, the aligned pin retains its original layer and width. -direction {center | left | right | top | bottom} Specifies the direction for pin alignment. The center keyword aligns pins to the horizontal or vertical central axis passing through the bounding box of the reference pin object. If the pin to be aligned is located on a horizontal edge, the center of the aligned pin is aligned to the vertical central axis. The align_fp_pins 86 IC Compiler™ Tool Commands Version L-2016.03 horizontal central axis is used instead if the aligned pin sits on a vertical edge. By default, center alignment is used to align pins. If the reference pin object is a terminal, or a pin on an I/O cell or standard cell, a central axis (horizontal or vertical) of the reference pin object is used regardless of the -direction value you specify. The left, right, top, and bottom keywords indicate the reference pin edges to be used as the axis of alignment. For example, if the reference pin sits on the bottom edge of a hard macro and you specify the -direction left option, the left edge of the pin to be aligned is made flush with the left edge of the reference pin. The difference in placement results between the -direction left option and the -direction right option depends on the width of the reference pin and aligned pin. The results are different only if the reference pin and the aligned pin have different widths. Furthermore, the central axis (horizontal or vertical) of the reference pin is used if the -direction option value is incompatible with the location of the aligned pin. Using the previous example, the center of the aligned pin is aligned with the vertical central axis of the reference pin if you specify either the -direction top option or the -direction bottom option. -fixed Fixes pins in place after alignment. By default pins are marked "movable" after alignment. -order_type {low_to_high | high_to_low | net_connection} Specifies the method used to align pins with reference pins. You can specify the following values: net_connection, low_to_high, and high_to_low. By default, the command uses the net_connection keyword. The net_connection keyword specifies that an aligned pin is moved into alignment with the reference pin that is logically connected to it by a net. The command uses net connectivity to automatically determine the reference pins. In many cases, this can eliminate the need to specify the reference pins in the argument collection. For example, if the pin to be aligned is connected to a net, and the only other connection for the net is to another soft macro or plan group pin, then the latter pin is assumed to be the reference pin if you provide the first (but not the second) pin in the argument collection. If a reference pin object cannot be uniquely determined because the net connected to the pin to be aligned is connected to multiple other objects, a multilevel priority scheme determines the reference pin object: 1. Pin in the argument list 2.Pin on the reference object specified with -reference 3.Fixed soft macro, black box or plan group pin Chapter 1: align_fp_pins 87 1-87 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 4.Other soft macro, black box or plan group pin 5.Hard macro pin 6.I/O pad cell pin 7.Terminal 8.Other standard cell pin When multiple pin objects exist within the same level, preference is given to the closest pin object. If the net is not connected to any other soft macro, black box or plan groups but is connected to two hard macro pins and an I/O pad pin, the reference pin is assumed to be the hard macro pin closer to the pin to be aligned. However, the I/O pad pin is used as the reference if you explicitly include the I/O pad pin in the argument collection or specifies the I/O pad cell as the argument for the -reference argument. The low_to_high keyword aligns pins in pairs starting from pins that have the lowest original horizontal coordinate. For example, in the case where alignment is done on a horizontal edge with four reference pins and three pins on the other macro to be aligned, the fourth reference pin with the largest horizontal coordinate is not used in the alignment. Pins on vertical edges are placed according to their vertical coordinates. The high_to_low keyword aligns pins in pairs starting from pins that have the highest original horizontal coordinate. In a case where alignment is done on a horizontal edge with four reference pins and three pins on the other macro to be aligned, the fourth reference pin with the smallest horizontal coordinate is not used in the alignment. If the number of reference and aligned pins is the same, there is no difference in results between the -order_type low_to_high option and the -order_type high_to_low option. Note that the tool preserves the original pin order of the aligned pins when using either option. The aligned pin with the lowest original coordinate still has the lowest coordinate among the aligned pins. NOTE: This option is not used if you use the -align_with_child_hm_pins option, or if the reference pin object is a terminal or a pin of an I/O cell or standard cell. In these cases the net_connection keyword is the only available alignment method. -propagate_single_pins Corrects single-pin violations in abutted designs if possible. When this option is used, the objects list must contain pins only, or an empty object list. If the object list is empty (the only option in which an empty object list is allowed) then all pins are checked for single pin violation and fixed if possible. The -propagate_single_pins option is mutually exclusive with all other options. This option is intended only to be used in an abutted design. When you use this option, the align_fp_pins 88 IC Compiler™ Tool Commands Version L-2016.03 command identifies single-pin violations in an abutted design, and checks the abutted soft macro or plan group and adds a pin to that abutted soft macro or plan group if a logical connection exists to that soft macro or plan group instance. The command also checks if single-pin violations exist which result from misaligned pins along a macro edge. If violations exist, the command moves the pins on non-MIM instances to correct the single-pin violation. When this option is used, the "objects" argument should be a collection of pins. As suggested above, in the context of single pin violations resulting from mis-aligned pins, where one of the blocks is a MIM instance and the other block is not a MIM instance, the pin on the MIM instance acts as a reference pin, and the other pin acts as a slave pin that gets moved to align with the MIM pin. The moved non-reference pin inherits the layer and width and height properties of the reference pin. In the context of single pin violations on abutted edges of 2 MIM instances, the command will not attempt to modify either MIM pin placement because this can cause new violations on other instances of either MIM. -reference object Specifies a reference object. The object is used to resolve ambiguity in cases where the command is unable to determine the reference pin. For example, a specified net connected to a soft macro pin to be aligned is connected to more than one hard macro. In this case the hard macro whose pin is to be used as a reference can be used as the argument to this option. You can omit this option if the reference macro can be uniquely determined from the arguments supplied without resorting to the multilevel reference pin selection process. See the -order_type net_connection argument description for details. Note that the command uses the object provided by this option only as a source of information of last resort. Information provided by this option is silently ignored if the command can uniquely determine the reference pin or terminal, whether or not the argument given is relevant or specified incorrectly. The argument can be any one of the following: soft macro, black box, plan group, hard macro, I/O pad cell, terminal, or standard cell. objects Specifies the collection of pins, nets, or reference terminals. At a minimum, the collection consists of the set of soft macro, black box or plan group pins to be aligned. Reference pins or terminals can be added if they are needed to resolve any ambiguity regarding designation of reference pins. If you specify the -order_type net_connection option, or do not specify -order_type, the command attempts to determine the reference pins via net connection. See the -order_type argument description for details. You must supply reference pins or terminals as arguments only when absolutely necessary, or when using the -order_type Chapter 1: align_fp_pins 89 1-89 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 low_to_high or the -order_type high_to_low option, since a net connection is not used as the basis for alignment and reference pins can not be determined from net connectivities. Net arguments are also acceptable but they can not be mixed with pins or reference terminals; the collection should be a homogeneous set of nets. Also note that any terminal supplied is used as a reference. This command does NOT align terminals; terminals are considered fixed. DESCRIPTION The align_fp_pins command aligns a set of unfixed soft macro, black box or plan group pins with a set of reference terminals or pins on soft macros, hard macros, plan groups, I/O pad cells, or standard cells. Fixed pins are not aligned. Aligned pins are automatically snapped to the closest current snap type. Use the get_object_snap_type -type port_shape command to report the current snap type. The default snap type is wiretrack. For this reason, pins might not be perfectly aligned if the reference pins and aligned pins are of different sizes, or if they are on different layers and the wiretrack grids of these layers are not aligned. To create a perfect alignment, set the current snap type to the minimum grid by using the set_object_snap_type -type port_shape -snap litho command. Perfect alignment is impossible if the reference pins are not snapped to the minimum grid. NOTE: The command aligns pins even if the alignment creates a short between the aligned pin and another pin. A warning is issued by the command if a short is created. No other pin position legality check is performed. Note that aligning terminals or off-edge pins is not supported. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES Suppose "mac1" and "mac2" are to soft macros (or black boxes, plan groups), the following example aligns the specified pins using "mac1" as the reference. prompt> align_fp_pins -reference mac1 \ [get_pins "mac1/A mac1/B mac1/C mac2/A mac2/B mac2/C"] align_fp_pins 90 IC Compiler™ Tool Commands Version L-2016.03 SEE ALSO set_object_snap_type(2) get_object_snap_type(2) Chapter 1: align_fp_pins 91 1-91 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 align_objects Aligns one or more objects to an anchor object or position. SYNTAX status align_objects [{-anchor object | -parent | -to value_point_rect}] [-side alignment_side] [-offset float] [-resize] [-keep_area] [-ignore_fixed] objects Data Types alignment_side objects string collection ARGUMENTS -anchor object Specifies the object to which other objects are aligned. -parent Specifies that objects are aligned to the parent edge. For terminals and io pads the parent object will be the die. For soft macro pins the parent object will be the soft macro. For all other objects the parent will be the core. -to value_point_rect Specifies that objects are aligned to the position specified by value_point_rect. This position can be a single value (x for left/right, y for top/bottom), a point, or a rectangle. -side alignment_side Specifies the side of the object and anchor object to be aligned. align_objects 92 IC Compiler™ Tool Commands Version L-2016.03 The valid value is one of left, right, top, bottom, hcenter, and vcenter. The description of the valid values are as follows: left right top bottom hcenter vcenter - indicates indicates indicates indicates indicates indicates to to to to to to use use use use use use the the the the the the left side right side top side bottom side horizontal center vertical center The default depends on the aspect ratio (height/width) of the object's surrounding bbox. If the aspect ratio is less than or equal to 1, then left is the default, otherwise, bottom is the default. -offset float Specifies the offset from the specified anchor object's side. The default value is 0.0. -resize Specifies to resize the object when aligning. -keep_area Specifies to keep the original object's area when resizing. By default, the command does not keep the object's area. -ignore_fixed Specifies to align fixed objects as well as unfixed objects. By default, the command does not align fixed objects. objects Specifies a list of objects to align. DESCRIPTION This command aligns a list of unfixed objects so that their left, right, top, or bottom edges are coincident with, or at a specified offset from, an anchor object or anchor position. The user can specify an anchor object or anchor position, or allow the command to automatically determine the anchor object from the supplied list of objects by using the following algorithm: Chapter 1: align_objects 93 1-93 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 • If any objects are marked as fixed then the anchor object is selected from the set of fixed objects. The rightmost, leftmost, bottommost, or topmost fixed object for alignment of left, right, top, and bottom, respectively. • If no objects are marked as fixed, then the anchor object is taken as the leftmost, rightmost, topmost, or bottommost object for alignment of left, right, top, and bottom, respectively. When aligning an object, the position of the opposite edge can be retained so that the object is resized rather than moved e.g. when left aligning the position of the right edge of the object can be retained while the left edge is moved as normal. The position of the other sides of the object is also retained unless you specify that the area is to be kept, in which case the other sides are moved to achieve the original object area. When you do not specify the -resize option, any movable object can be aligned. If you do specify it, only resizable objects can be aligned. The tool automatically performs snapping of the origin, bounding box, or points using global snap settings unless you specify the -no_snap option. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example moves the currently selected objects so that their left edges are 20 units from the left edge of the core. prompt> align_objects [get_selection] -parent -offset 20 SEE ALSO distribute_objects(2) expand_objects(2) flip_objects(2) get_object_snap_type(2) move_objects(2) remove_objects(2) resize_objects(2) rotate_objects(2) set_object_snap_type(2) align_objects 94 IC Compiler™ Tool Commands Version L-2016.03 all_active_scenarios Lists the active scenarios available in memory. SYNTAX string all_active_scenarios ARGUMENTS This command has no arguments. DESCRIPTION This command displays all active scenarios currently in memory. This list excludes scenarios that are inactive. Multicorner-Multimode Support This command uses information from all active scenarios. EXAMPLES The following example uses the all_active_scenarios command to list the active scenarios. prompt> create_scenario MODE1 prompt> create_scenario MODE2 prompt> create_scenario MODE3 prompt> set_active_scenarios {MODE1 MODE3} prompt> all_active_scenarios MODE1 MODE3 SEE ALSO all_scenarios(2) create_scenario(2) current_scenario(2) Chapter 1: all_active_scenarios 95 1-95 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 remove_scenario(2) set_active_scenarios(2) all_active_scenarios 96 IC Compiler™ Tool Commands Version L-2016.03 all_ao_cells Returns a collection of always-on cells available in the design. SYNTAX collection all_ao_cells ARGUMENTS The all_ao_cells command has no arguments. DESCRIPTION The all_ao_cells command returns a collection of existing always-on cells in the design. If the design has dual-powered marked always-on cells, they are returned by this command. However, if the design has always-on power guides that contain regular cells, those cells are also returned by this command. Multicorner-Multimode Support This command has no dependency on scenario-specific information. SEE ALSO get_always_on_logic(2) Chapter 1: all_ao_cells 97 1-97 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_bounds_of_cell Returns the collection of all bounds in the specified list of cells from the design. SYNTAX collection all_bounds_of_cell cell_list Data Types cell_list list ARGUMENTS cell_list Specifies the list of all cells for which to determine the bounds. This can be a simple list or it can be an entire collection manipulation command, enclosed in square brackets [], that returns a collection of cells. DESCRIPTION This command returns the collection of all the group or move bounds of a specified cell list. You can use wild cards, such as an asterisk (*) or question mark (?), when specifying the input cell list. A standard Tcl collection is returned. All of the generic collection manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, can be performed on this collection. Multicorner-Multimode Support This command has no dependency on scenario-specific information. all_bounds_of_cell 98 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following example shows the returned collection of all bounds of cells named cell1, cell2, and cell3. prompt> all_bounds_of_cell {cell1 cell2 cell3} {cell_bound1 cell_bound2 cell_bound3} The following example shows the returned collection of all bounds of cells in the u* cell list. In this case, the command returns the collection specified by the get_cells command operating on u*. prompt> all_bounds_of_cell [get_cells u*] {my_bound1 my_bound2} Following example shows the returned collection of all the bounds of cells in the SBLK subdesign. In this case, the command returns the collection specified by the get_cells command operating on SBLK. prompt> all_bounds_of_cell [get_cells SBLK/*] {bound1 bound2} SEE ALSO create_bounds(2) foreach_in_collection(2) get_cells(2) remove_bounds(2) report_bounds(2) sizeof_collection(2) Chapter 1: all_bounds_of_cell 99 1-99 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_cells_in_bound Returns the collection of all cells in the specified list of group bounds and move bounds from the design. SYNTAX collection all_cells_in_bound {bound_list} Data Types bound_list list ARGUMENTS {bound_list} Specifies all the lists of bounds for which to determine cells. The tool returns the collection of the bounds. DESCRIPTION This command returns the collection of all the cells from the specified group and move bounds. These bounds are created by using the create_bound command. This command inputs a list of multiple bounds and returns a collection of cells from all of them. The tool searches the entire design hierarchy. It returns cells from the entire design, not just from the top level. A standard Tcl collection is returned. All of the generic collection manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, can be performed on this collection. Multicorner-Multimode Support This command has no dependency on scenario-specific information. all_cells_in_bound 100 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following example shows the returned collection of all cells in the my_bound1 bound, which was created by using the create_bound command. prompt> all_cells_in_bound {my_bound1] {cell1 top/cell2 top/cell4 cell10} The following example shows the returned collection of all cells from multiple bounds given as a list. The list is composed of my_bound1 and my_bound2. prompt> all_cells_in_bound {my_bound1 my_bound2} {cell1 cell2 cell3 cell4 cell5} SEE ALSO all_bounds_of_cell(2) create_bounds(2) foreach_in_collection(2) remove_bounds(2) report_bounds(2) sizeof_collection(2) Chapter 1: all_cells_in_bound 101 1-101 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_clocks Returns a collection of all clocks in the current design. SYNTAX collection all_clocks ARGUMENTS This command has no arguments. DESCRIPTION Returns a collection containing all clocks in the current design. The clocks must be defined in the design before running this command. To create clocks, use the create_clock command. To remove clocks, use the remove_clock command. To list detailed information about all clocks in the design, use the report_clock command. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example applies the set_dont_touch_network command to all clocks in the current design: prompt> set_dont_touch_network [all_clocks] SEE ALSO create_clock(2) remove_clock(2) all_clocks 102 IC Compiler™ Tool Commands Version L-2016.03 report_clock(2) set_dont_touch_network(2) Chapter 1: all_clocks 103 1-103 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_connected Returns the objects connected to a net, port, pin, net instance, or pin instance. SYNTAX collection all_connected [-leaf] object Data Types object string ARGUMENTS -leaf Specifies that only leaf pins are returned for a hierarchical net. For nonhierarchical nets, there is no difference in output. object Specifies the object whose connections are returned. The object must be a net, port, pin, net instance, or pin instance. DESCRIPTION The all_connected command returns a collection of objects connected to the specified net, port, pin, net instance, or pin instance. A net instance is a net in the hierarchy of the design. A pin instance is a pin on a cell in the hierarchy of a design. If the -leaf option is used, a list of leaf pins of the net is returned. To connect nets to ports or pins, use the connect_net command. To break connections, use the disconnect_net command. Multicorner-Multimode Support This command has no dependency on scenario-specific information. all_connected 104 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following example uses all_connected to return the objects connected to MY_NET: prompt> all_connected MY_NET prompt> connect_net MY_NET OUT3 Connecting net 'MY_NET' to port 'OUT3'. prompt> connect_net MY_NET U65/Z Connecting net 'MY_NET' to pin 'U65/Z'. prompt> all_connected MY_NET {OUT3 U65/Z} prompt> all_connected OUT3 {MY_NET} prompt> all_connected U65/Z {MY_NET} This example uses all_connected to associate net load capacitance with the net n47, which is connected to the pin instance C/Z: prompt> set_load 0.147 [all_connected [get_pins U0/U1/C/Z]] Set "load" attribute to 0.147 for net "U0/U1/n47" SEE ALSO all_inputs(2) all_outputs(2) connect_net(2) create_net(2) current_design(2) disconnect_net(2) remove_net(2) Chapter 1: all_connected 105 1-105 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_connectivity_fanin Reports pins, ports, or cells in the fanin of specified sinks. SYNTAX list all_connectivity_fanin -to sink_list [-startpoints_only] [-only_cells] [-flat] [-levels count] Data Types sink_list count list int ARGUMENTS -to sink_list Reports a list of sink pins, ports, or nets in the design and connectivity based fanin of each sink in the sink_list. If you specify a net, the effect is the same as listing all driver pins on the net. -startpoints_only Returns only the connectivity startpoints. -only_cells Results in a set of all the cells in the connectivity fanin of the sink_list. -flat Specifies to function in the flat mode of operation. The two major modes in which all_connectivity_fanin functions are hierarchical (default) and flat. When in hierarchical mode, only objects from the same hierarchy level as the current sink are returned. Thus, pins within a level of hierarchy lower than that of the sink are used for traversal but they will not be reported. all_connectivity_fanin 106 IC Compiler™ Tool Commands Version L-2016.03 -levels count Stops traversal when reaching the perimeter of the search of count hops, where counting is performed over the layers of cells that are of equidistant from the sink. DESCRIPTION This command reports the connectivity fanin of specified sink pins, ports, or nets in the design. A pin is considered to be in the connectivity fanin of a sink if there is a path through combinational logic from the pin to that sink. The fanin report stops at the clock pins of registers (sequential cells). NOTE: This command reports same results as all_fanin except the cases 1. false paths are not considered in this commands 2. manually created clocks are not treated as paths start points Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following examples show the connectivity fanin of a port in the design. The design comprises three inverters in a chain named iv1, iv2, and iv3. The iv1 and iv2 inverters are hierarchically combined in a larger cell named ii2. prompt> all_connectivity_fanin -to tout {ii2/hin iv3/in iv3/out tin ii2/hout tout} prompt> all_connectivity_fanin -to tout -flat {"ii2/iv1/U1/a", "ii2/iv2/U1/z", "tin", "iv3/U1/a", "ii2/iv1/U1/z", "ii2/iv2/U1/a", "iv3/U1/z", "tout"} SEE ALSO all_fanin(2) all_fanout(2) report_transitive_fanin(2) Chapter 1: all_connectivity_fanin 107 1-107 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_connectivity_fanout Returns a set of pins, ports, or cells in the fanout of the specified sources. SYNTAX list all_connectivity_fanout -from source_list [-endpoints_only] [-only_cells] [-flat] [-levels count] Data Types source_list count list int ARGUMENTS -from source_list Specifies a list of source pins, ports, or nets in the design. The connectivity fanout of each source in source_list is reported. If a net is specified, the effect is the same as listing all load pins on the net. -endpoints_only Returns only connectivity endpoints as a result. -only_cells Results in a set of all cells in the connectivity fanout of the source_list, rather than a set of pins or ports. -flat Specifies to function in the flat mode of operation. The two major modes in which all_connectivity_fanout functions are hierarchical (default) and flat. When in hierarchical mode, only objects from the same hierarchy level as the current source are returned. Thus, pins within a level of hierarchy lower than that of the source are used for traversal but are not reported. all_connectivity_fanout 108 IC Compiler™ Tool Commands Version L-2016.03 -levels count Stops traversal when reaching the perimeter of the search of count hops, where counting is performed over the layers of cells that are of equidistant from the source. DESCRIPTION This command reports the connectivity fanout of specified source pins, ports, or nets in the design. A pin is considered to be in the connectivity fanout of a sink if there is a path through combinational logic from that source to the pin. The fanout report stops at the inputs to registers (sequential cells). NOTE: This command reports same results as all_fanout except the cases 1. false paths are not considered in this commands 2. manually created clocks are not treated as paths start points Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example shows the connectivity fanout of a port in the design. The design comprises three inverters in a chain named iv1, iv2, and iv3. The iv1 and iv2 inverters are hierarchically combined in a larger cell named ii2. prompt> all_connectivity_fanout -from tin {iv3/out tout iv3/in ii2/hin ii2/hout tin} prompt> all_connectivity_fanout -from tin -flat {"tout", "ii2/iv2/U1/z", "ii2/iv1/U1/a", "iv3/U1/z", "iv3/U1/a", "ii2/iv2/U1/a", "ii2/iv1/U1/z", "tin"} prompt> all_connectivity_fanout -from tin -levels 1 -only_cells {iv3 ii2} SEE ALSO all_fanout(2) all_fanin(2) all_connectivity_fanin(2) report_transitive_fanout(2) Chapter 1: all_connectivity_fanout 109 1-109 IC IC Compiler™ Compiler™ Tool Tool Commands Commands all_connectivity_fanout L-2016.03 Version L-2016.03 110 IC Compiler™ Tool Commands Version L-2016.03 all_critical_cells Returns a collection of critical leaf cells in the top hierarchy of the current design. SYNTAX collection all_critical_cells [-slack_range range_value] Data Types range_value float ARGUMENTS -slack_range range_value Specifies a margin of slack for searching top-hierarchy leaf cells in paths whose slacks are in the specified range_value relative to the worst slack of the current design. A top-hierarchy leaf cell is a cell in the top hierarchy and with no hierarchy underneath. The range_value must be expressed in the same units as the technology library used during optimization. In addition, the range_value must be positive or 0.0. If no range_value is specified, the default is 0.0. A range_value of 0.0 means that top-hierarchy leaf cells in the most critical paths (those with the worst violations) are returned. If a positive range_value is specified, all top-hierarchy leaf cells are returned if they are in near-critical paths with slacks in the range_value relative to the worst slack of the current design. DESCRIPTION The all_critical_cells command returns a collection of leaf cells that are in the top hierarchy and in some path with a slack in the range_value relative to the worst slack of the current design. This command returns only those cells with no hierarchy underneath. If all timing paths passing through a cell are unconstrained, the cell is assumed to be non-critical, and is not returned. You can use this command, along with the group command, to group together into a new subhierarchy those cells in the most critical paths. Then you can try various optimization techniques on the new subhierarchy. Chapter 1: all_critical_cells 111 1-111 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example lists all top-hierarchy leaf cells in the worst critical paths of the current design: prompt> all_critical_cells The following example lists all top-hierarchy leaf cells in those paths within range 5.0 relative to the worst slack of the current design: prompt> all_critical_cells -slack_range 5.0 The following example groups all top-hierarchy leaf cells in the worst critical paths into a new hierarchy, called CRIT, under the top hierarchy of the current design: prompt> group [all_critical_cells] -design_name CRIT The following example reports cell connections of all top-hierarchy leaf cells in the worst critical paths of the current design. prompt> report_cell -connections [all_critical_cells] SEE ALSO all_critical_pins(2) current_design(2) group(2) report_cell(2) all_critical_cells 112 IC Compiler™ Tool Commands Version L-2016.03 all_critical_pins Returns a collection of critical endpoints or startpoints in the current design. SYNTAX collection all_critical_pins [-type endpoint | startpoint] [-slack_range range_value] Data Types range_value float ARGUMENTS -type endpoint | startpoint Specifies that the pins or ports to be searched are either timing endpoints or timing startpoints. The default is endpoint. -slack_range range_value Specifies a margin of slack for searching timing endpoints (or startpoints) in paths whose slacks are in the specified range_value relative to the worst slack of the current design. The range_value must be expressed in the same units as the technology library used during optimization. In addition, the range_value must be positive or 0.0. If no range_value is specified, the default is 0.0. A range_value of 0.0 means that endpoints (or startpoints) in the most critical paths (those with the worst violations) will be returned. If a positive range_value is specified, endpoints (or startpoints) in near-critical paths with slacks in the range_value relative to the worst slack of the current design will be returned. DESCRIPTION The all_critical_pins command returns a collection of endpoints (or startpoints) that are in some timing path with a slack in the range_value relative to the worst slack of the current design. For a pin, if all timing paths passing through it are unconstrained, it is assumed to be non-critical, and it will not be returned. Chapter 1: all_critical_pins 113 1-113 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 This command may be used together with the all_fanin or all_fanout command to report useful information; for example, cells in the transitive timing fanin cone of the most critical endpoints. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example lists all endpoints in the worst critical paths of the current design: prompt> all_critical_pins The following example lists all startpoints in those paths within range 5.0 relative to the worst slack of the current design: prompt> all_critical_pins -type startpoint -slack_range 5.0 The following example reports cells in the 3-level transitive fanin timing cone of endpoints in the worst critical paths: prompt> report_cell [all_fanin -to [all_critical_pins] \ -only_cells -levels 3 -flat] The following example reports the logic in the transitive fanin of endpoints in the worst critical paths of the current design: prompt> report_transitive_fanin -to [all_critical_pins] SEE ALSO all_critical_cells(2) all_fanin(2) current_design(2) group(2) report_cell(2) report_transitive_fanin(2) report_transitive_fanout(2) all_critical_pins 114 IC Compiler™ Tool Commands Version L-2016.03 all_designs Returns a collection containing all designs in the current design. SYNTAX collection all_designs ARGUMENTS There are no arguments to this command. DESCRIPTION The all_designs command returns a collection containing the designs in the current design hierarchy in bottom-up order. You must set the current design using the current_design command before using all_designs. Multicorner-Multimode Support This command has no dependency on scenario-specific information. SEE ALSO current_design(2) Chapter 1: all_designs 115 1-115 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_dont_touch Returns a collection of dont_touch cells or nets from the current design or from the specified input collection. SYNTAX collection all_dont_touch -cells | -nets [input_coll] Data Types input_coll string ARGUMENTS -cells Specifies that all cells with the dont_touch attribute are to be returned. The -cells and -nets options are mutually exclusive. -nets Specifies that all nets with the dont_touch attribute are to be returned. The -cells and -nets options are mutually exclusive. input_coll Searches the specified input collection and returns the collection of cells or nets having the dont_touch attribute. Objects are to be searched only from the content of input_coll rather than from the entire design. By default, this option is off. DESCRIPTION This command returns the collection of cells or nets that have the dont_touch attribute from the design or from a list that you specify. You can use wildcard characters, such as an asterisk (*) or question mark (?), when specifying the input cell list. all_dont_touch 116 IC Compiler™ Tool Commands Version L-2016.03 The command returns a standard Tcl collection. You can perform all of the generic collection-manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, on this collection handle. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example shows the collection of all cells with the dont_touch attribute in the design: prompt> all_dont_touch -cells {U20 U21 U23 SBLK/U1 SBLK/U2} The following example shows the collection of all nets with the dont_touch attribute from an existing collection where COLL is its handle: prompt> all_dont_touch -nets $COLL {n2 n5 SBLK/n2} SEE ALSO foreach_in_collection(2) get_attribute(2) get_cells(2) get_nets(2) report_attribute(2) set_attribute(2) set_dont_touch(2) set_dont_touch_network(2) set_dont_touch_placement(2) sizeof_collection(2) Chapter 1: all_dont_touch 117 1-117 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_drc_violated_nets Returns a collection of DRC-violated nets from the current design or from the specified input collection. SYNTAX collection all_drc_violated_nets -max_capacitance | -max_transition | -max_fanout [input_coll] [-bound upper] [-threshold threshold] Data Types input_coll upper threshold collection float float ARGUMENTS -max_capacitance Returns the collection of maximum capacity nets that violate design rule checking (DRC), as designated by drc_violated_nets. -max_transition Returns the collection of maximum transition nets that violate DRC, as designated by drc_violated_nets. -max_fanout Returns the collection of maximum fanout nets that violate DRC, as designated by drc_violated_nets. input_coll Searches the specified input collection and returns the requested collection of nets that violate DRC constraints. Objects are searched only from the contents of the specified input collection, rather than from the design. all_drc_violated_nets 118 IC Compiler™ Tool Commands Version L-2016.03 -bound upper Captures all DRC-violated nets that have values less than or equal to the bound specified by upper. By default, this option is off. -threshold threshold Captures all DRC-violated nets that have values greater than or equal to the threshold specified by threshold. By default, this option is off. DESCRIPTION The all_drc_violated_nets command returns a collection of DRC-violated nets from the current design or from the specified input collection. The tool can search the entire design hierarchy. It returns DRC-violated nets from the entire design, not just from the top level. This command returns the 3 most common types of DRC violations: max_capacitance, max_transition, and max_fanout. You can specify each of the violations separately in this command. If you do not specify an option, a collection of all three types of DRC-violated nets is returned. The command returns a standard Tcl collection. You can perform all of the generic collection manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, on this collection handle. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example shows the collection of all maximum capacity DRC-violated nets from the design: prompt> all_drc_violated_nets -max_cap {n1 n2 n3 abc/n14} The following example shows the collection of all -max_fanout DRC-violated nets from an existing collection stored in $COLL: prompt> all_drc_violated_nets -max_fanout $COLL {n1 n3 abc/n14} Chapter 1: all_drc_violated_nets 119 1-119 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 SEE ALSO foreach_in_collection(2) sizeof_collection(2) all_drc_violated_nets 120 IC Compiler™ Tool Commands Version L-2016.03 all_fanin Reports pins, ports, or cells in the fanin of specified sinks. SYNTAX collection all_fanin -to sink_list [-startpoints_only] [-exclude_bboxes] [-break_on_bboxes] [-only_cells] [-flat] [-levels count] [-trace_arcs arc_type] Data Types sink_list count list int ARGUMENTS -to sink_list Reports a list of sink pins, ports, or nets in the design and a timing fanin of each sink in the sink_list. If you specify a net, the effect is the same as listing all driver pins on the net. -startpoints_only Returns only the timing startpoints. -exclude_bboxes Excludes black boxes from the final result. -break_on_bboxes Stops timing fanin traversal on black boxes. -only_cells Results in a set of all cells in the timing fanin of the sink_list. Chapter 1: all_fanin 121 1-121 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -flat Specifies to function in the flat mode of operation. The two major modes in which all_fanin functions are hierarchical (the default) and flat. When in hierarchical mode, only objects from the same hierarchy level as the current sink are returned. Thus, pins within a level of hierarchy lower than that of the sink are used for traversal but are not reported. -levels count Stops traversal when reaching the perimeter of the search of count hops, where counting is performed over the layers of cells that are equidistant from the sink. -trace_arcs arc_type Specifies the type of combinational arcs to trace during the traversal. Allowed values are timing, which permits the tracing only of valid timing arcs (arcs that are neither disabled nor invalid due to case analysis), and all, which permits tracing of all combinational arcs regardless of either case analysis or arc disabling. The default is timing. You can change the default by setting the fanin_fanout_trace_arcs variable to the desired value. DESCRIPTION The all_fanin command reports the timing fanin of specified sink pins, ports, or nets in the design. A pin is considered to be in the timing fanin of a sink if there is a timing path through combinational logic from the pin to that sink. The fanin report stops at the clock pins of registers (sequential cells). Multicorner-Multimode Support Depending on the options used, this command either uses the current scenario or has no dependency on scenario-specific information. EXAMPLES The following examples show the timing fanin of a port in the design. The design comprises three inverters in a chain named iv1, iv2, and iv3. The iv1 and iv2 inverters are hierarchically combined in a larger cell named ii2. prompt> all_fanin -to tout {ii2/hin iv3/in iv3/out tin ii2/hout tout} prompt> all_fanin -to tout -flat {ii2/iv1/U1/a ii2/iv2/U1/z tin iv3/U1/a ii2/iv1/U1/z all_fanin 122 IC Compiler™ Tool Commands Version L-2016.03 ii2/iv2/U1/a iv3/U1/z tout} SEE ALSO all_fanout(2) report_transitive_fanin(2) Chapter 1: all_fanin 123 1-123 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_fanout Returns a set of pins, ports, or cells in the fanout of the specified sources. SYNTAX collection all_fanout -clock_tree -from source_list [-endpoints_only] [-exclude_bboxes] [-break_on_bboxes] [-only_cells] [-flat] [-levels count] [-trace_arcs arc_type] Data Types source_list count list int ARGUMENTS -clock_tree Uses all clock source pins and/or ports in the design as the list of sources. Clock sources are specified by using the create_clock command. If there are no clocks, or if the clocks have no sources, the report is empty. Use the report_clock command to list the sources for all clocks in the design. The -clock_tree option generates a report that displays the clock trees or networks in the design. The -clock_tree and -from options are mutually exclusive. -from source_list Specifies a list of source pins, ports, or nets in the design. The timing fanout of each source in the source_list is reported. If a net is specified, the effect is the same as listing all load pins on the net. The -clock_tree and -from options are mutually exclusive. -endpoints_only Returns only timing endpoints as a result. all_fanout 124 IC Compiler™ Tool Commands Version L-2016.03 -exclude_bboxes Excludes black boxes from the final result. -break_on_bboxes Stops timing fanout traversal on black boxes. -only_cells Results in a set of all cells in the timing fanout of the source_list, rather than a set of pins or ports. -flat Specifies to function in the flat mode of operation. The two major modes in which all_fanout functions are hierarchical (the default) and flat. When in hierarchical mode, only objects from the same hierarchy level as the current source are returned. Thus, pins within a level of hierarchy lower than that of the source are used for traversal but are not reported. -levels count Stops traversal when reaching the perimeter of the search of count hops, where counting is performed over the layers of cells that are equidistant from the source. -trace_arcs arc_type Specifies the type of combinational arcs to trace during the traversal. Allowed values are timing, which permits the tracing only of valid timing arcs (arcs that are neither disabled nor invalid due to case analysis), and all, which permits tracing of all combinational arcs regardless of either case analysis or arc disabling. The default in IC Compiler and Design Compiler (both in topographical mode and non-topographical mode) is timing. The default in DC Explorer is all. The default can be changed by setting the fanin_fanout_trace_arcs variable to the desired value. DESCRIPTION The all_fanout command reports the timing fanout of specified source pins, ports, or nets in the design. A pin is considered to be in the timing fanout of a sink if there is a timing path through combinational logic from that source to the pin. The fanout report stops at the inputs to registers (sequential cells). The source pins or ports are specified by using the -clock_tree or -from source_list option. Multicorner-Multimode Support Depending on the options used, this command either uses the current scenario or has no dependency on scenario-specific information. Chapter 1: all_fanout 125 1-125 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example shows the timing fanout of a port in the design. The design comprises the following three inverters in a chain named iv1, iv2, and iv3. The iv1 and iv2 inverters are hierarchically combined in a larger cell named ii2. prompt> all_fanout -from tin {iv3/out tout iv3/in ii2/hin ii2/hout tin} prompt> all_fanout -from tin -flat {tout ii2/iv2/U1/z ii2/iv1/U1/a iv3/U1/z iv3/U1/a ii2/iv2/U1/a ii2/iv1/U1/z tin} prompt> all_fanout -from tin -levels 1 -only_cells {iv3 ii2} SEE ALSO all_fanin(2) create_clock(2) report_clock(2) report_transitive_fanout(2) all_fanout 126 IC Compiler™ Tool Commands Version L-2016.03 all_fixed_placement Returns the collection of all fixed-placement cells or ports in the design or from a list of objects in the input collection. SYNTAX collection all_fixed_placement -cells | -ports [input_coll] Data Types input_coll collection ARGUMENTS -cells Specifies that the collection of fixed-placement cells is to be returned. If you specify this option, you must not specify the -ports option: They are mutually exclusive. -ports Specifies that the collection of fixed-placement ports is to be returned. If you specify this option, you must not specify the -cells option: They are mutually exclusive. All the ports which are either having implicit is_fixed attribute or valid location are treated as fixed-placement ports input_coll Specifies the input collection to search and return the collection of fixed-placement objects. Objects are to be searched only from the content of the specified input collection rather than from the design. DESCRIPTION This command can return the collection of all fixed-placement objects in the design. The tool searches the entire design hierarchy. It returns fixed-placement objects from the entire design, not just from the top level. Chapter 1: all_fixed_placement 127 1-127 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 If you specify a value for input_coll, the command searches for fixed-placement objects only from the specified collection, rather than from the entire design. If you do not specify either the -cells or -ports option, the all_fixed_placement command returns an error. A standard Tcl collection is returned. All of the generic collection manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, can be performed on this collection. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example shows the collection of all fixed-placement cells from the design. prompt> all_fixed_placement -cells {ii2/hin iv3/in iv3/out tin ii2/hout tout} The following example shows the collection of all fixed-placement ports from the design. prompt> all_fixed_placement -ports {hin in out tin hout tout} The following example shows the collection of all fixed-placement cells from an existing collection stored in $COLL. prompt> all_fixed_placement -cells $COLL {ii2/hin iv3/in iv3/out tin ii2/hout tout} SEE ALSO foreach_in_collection(2) remove_dont_touch_placement(2) set_dont_touch_placement(2) sizeof_collection(2) all_fixed_placement 128 IC Compiler™ Tool Commands Version L-2016.03 all_high_fanout Returns a collection of high-fanout nets from the current design or from the specified input collection. SYNTAX collection all_high_fanout -nets [-threshold value] [input_coll] [-through_buf_inv] Data Types value input_coll float collection ARGUMENTS -nets Returns the collection of high-fanout nets. -threshold value Specifies a threshold value used to determine if a net is a high-fanout net. The value is a user-specified value. By default, the high_fanout_net_threshold variable value is used to determine if a net is a high-fanout net. input_coll Searches the specified input collection for high-fanout nets. Objects are to be searched only from the contents of the specified input collection, rather than from the design. -through_buf_inv Indicates to treat a buffer tree as transparent. The leaf loads of the buffer tree are treated as the fanouts of the net. Chapter 1: all_high_fanout 129 1-129 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 DESCRIPTION The all_high_fanout command returns a collection of all high-fanout nets in the design. The tool searches the entire design hierarchy. It returns nets from the entire design, not just from the top level. To determine if a net is a high-fanout net, use the high_fanout_net_threshold variable value as the threshold value. The command returns all nets with a fanout count higher than this threshold as high-fanout nets. You can also specify the threshold by using the -threshold option. If you specify a value for input_coll, the command searches for high-fanout objects only from the specified collection, rather than from the entire design. A standard Tcl collection is returned. All of the generic collection manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, can be performed on this collection handle. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example shows the collection of all high-fanout nets from the design: prompt> all_high_fanout -nets {ii2/hin iv3/in iv3/out tin ii2/hout tout} The following example shows the collection of all high-fanout nets from an existing collection stored in $COLL: prompt> all_high_fanout -nets $COLL {ii2/hin iv3/in iv3/out tin ii2/hout tout} The following example shows the collection of all high-fanout nets from the design having a fanout count of more than 100: prompt> all_high_fanout -nets -threshold 100 {ii2/hin iv3/in iv3/out tin ii2/hout tout} all_high_fanout 130 IC Compiler™ Tool Commands Version L-2016.03 SEE ALSO all_fanin(2) all_fanout(2) foreach_in_collection(2) report_net_fanout(2) sizeof_collection(2) Chapter 1: all_high_fanout 131 1-131 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_ideal_nets Returns a collection of ideal nets from the current design or from the specified input collection. SYNTAX collection all_ideal_nets [input_coll] Data Types input_coll collection ARGUMENTS input_coll Specifies the input collection to search for ideal nets. If you do not specify this argument, the command searches for ideal nets in the current design. DESCRIPTION The all_ideal_nets command returns a collection of ideal nets. If you specify a value for input_coll, the command searches for ideal nets only in the specified collection. If you do not specify a collection, the command searches for ideal nets in the current design. The tool searches the entire design hierarchy. The command returns ideal nets from the entire design, not just from the top level. A standard Tcl collection is returned. All of the generic collection manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, can be performed on this collection handle. all_ideal_nets 132 IC Compiler™ Tool Commands Version L-2016.03 Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example returns a collection of all ideal nets from the design: prompt> all_ideal_nets {ii2/hin iv3/in iv3/out tin ii2/hout tout} The following example returns a collection of all ideal nets from an existing collection stored in $COLL: prompt> all_ideal_nets $COLL {ii2/hin iv3/in iv3/out tin ii2/hout tout} SEE ALSO all_fanout(2) foreach_in_collection(2) sizeof_collection(2) Chapter 1: all_ideal_nets 133 1-133 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_inputs Returns a collection of input or inout ports in the current design. SYNTAX collection all_inputs [-clock clock_name] [-edge_triggered | -level_sensitive] Data Types clock_name string ARGUMENTS -clock clock_name Limits the search to ports that have input delay relative to clock_name. -edge_triggered Limits the search to ports that have edge-triggered input delay as specified by the set_input_delay command with the -clock option. -level_sensitive Limits the search to ports that have level-sensitive input delay as specified by the set_input_delay command with the -level_sensitive option. DESCRIPTION The all_inputs command returns a collection of all input or inout ports in the current design, unless one of the options limits the search. The all_inputs command is usually used with a command that places attributes on input ports. To get detailed information on ports in the current design, use the report_port command. Multicorner-Multimode Support This command has no dependency on scenario-specific information. all_inputs 134 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following example lists all input ports in the current design: prompt> all_inputs {A1 A2 BIDIR1} The following example sets the drive value of all the input ports on the current design to 10: prompt> set_drive 10.0 [all_inputs] The following example marks with a multicycle value of 0 all paths from inputs having level-sensitive input delay relative to PHI1 to level-sensitive registers clocked by PHI1: prompt> set_multicycle_path 0 \ -from [all_inputs -clock PHI1 -level_sensitive] \ -to [all_registers -data_pins -clock PHI1] SEE ALSO all_outputs(2) current_design(2) report_port(2) set_drive(2) set_input_delay(2) set_multicycle_path(2) Chapter 1: all_inputs 135 1-135 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_isolation_cells Returns a collection of isolation cells available in the design. SYNTAX collection all_isolation_cells ARGUMENTS The all_isolation_cells command has no arguments. DESCRIPTION The all_isolation_cells command returns a collection of the existing isolation cells in the design. The enabled level shifters also work as isolation cells, but that type of cell is not returned by this command. Multicorner-Multimode Support This command has no dependency on scenario-specific information. SEE ALSO all_level_shifters(2) check_mv_design(2) all_isolation_cells 136 IC Compiler™ Tool Commands Version L-2016.03 all_level_shifters Returns a collection of level-shifter cells available in the design. SYNTAX collection all_level_shifters [-type els | simple] ARGUMENTS -type els | simple Specifies the type of level-shifter cells to include in the collection. If you specify -type els, the command returns only the enabled level-shifter cells. If you specify -type simple, the command returns only regular level-shifter cells. If you do not specify this option, the command returns all level-shifter cells. DESCRIPTION The all_level_shifters command returns a collection of existing level-shifter cells in the design. You can restrict the types of level-shifter cells returned in the collection by using the -type option. Multicorner-Multimode Support This command has no dependency on scenario-specific information. SEE ALSO check_level_shifters(2) Chapter 1: all_level_shifters 137 1-137 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_macro_cells Returns a collection of all macro cells in the design or from a list of objects in the input collection. SYNTAX collection all_macro_cells [input_coll] Data Types input_coll collection ARGUMENTS input_coll Specifies the input collection to search and return the collection of macro cells. Objects are to be searched only from the content of the specified input collection rather than from the design. DESCRIPTION This command can return the collection of all macro cells from the design. The tool searches the entire design hierarchy. It returns cells from the entire design, not just from the top level. This command uses the same definition as used in the legalizing process to determine if a cell is a macro cell. If you specify a value for input_coll, the command searches for macro cells only from the specified collection, rather than from the entire design. A standard Tcl collection is returned. All of the generic collection manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, can be performed on this collection. Multicorner-Multimode Support This command has no dependency on scenario-specific information. all_macro_cells 138 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following example shows the collection of all macro cells from the design. prompt> all_macro_cells {macro1 top/macro2 top/macro4 macro10} The following example shows the collection of all macro_cells from an existing collection stored in $COLL. prompt> all_macro_cells $COLL {macro1 macro2} SEE ALSO foreach_in_collection(2) sizeof_collection(2) set_cell_type(2) Chapter 1: all_macro_cells 139 1-139 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_mtcmos_cells Returns a collection of MTCMOS cells available in the design. SYNTAX collection all_mtcmos_cells [-type coarse | fine] ARGUMENTS -type coarse | fine Specifies the type of the MTCMOS cell to include in the collection. If you specify -type coarse, the command returns only the coarse-grained MTCMOS cells. If you specify -type fine, the command returns only the fine-grained MTCMOS cells. If you do not specify this option, the command returns all MTCMOS cells. DESCRIPTION The all_mtcmos_cells command returns a collection of existing MTCMOS cells in the design. You can restrict the types of MTCMOS cells returned in the collection by using the -type option. all_mtcmos_cells 140 IC Compiler™ Tool Commands Version L-2016.03 all_objects_in_bounding_box Returns the collection of all cells and nets in the specified bounding box in the design or from a list of objects in the input collection. SYNTAX collection all_objects_in_bounding_box -cells | -nets [-phys_cells] -coordinates {llx lly urx ury} [-flat] [input_coll] Data Types llx lly urx ury input_coll integer integer integer integer collection ARGUMENTS -cells Specifies that all the cells from the bounding box are to be returned. The -cells and -nets options are mutually exclusive; you can use only one. -nets Specifies that all the nets from the bounding box are to be returned. The -cells and -nets options are mutually exclusive; you can use only one. -phys_cells Returns only physical-only cells. -coordinates {llx lly urx ury} Specifies the coordinates of the area from which the objects are to be returned. -flat Gets cells or nets inside physically hierarchical blocks. Chapter 1: all_objects_in_bounding_box 141 1-141 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 input_coll Specifies the input collection to search and from which to return the collection of cells or nets from the specified bounding box. Objects are to be searched only from the content of the specified input collection, rather than from the design. DESCRIPTION This command can return the collection of all objects from the rectangular area (bounding box) specified by the coordinates described by the -coordinates option. The tool searches the entire design hierarchy. It returns objects from the entire design, not just from the top level. If you do not specify the -cell or -nets option, the command returns a collection of both objects together from the specified bounding box. If you specify a value for input_coll, the command searches for objects only from the specified collection, rather than from the entire design. You must specify bounding box coordinates; this command does not provide a default. A standard Tcl collection is returned. All of the generic collection-manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, can be performed on this collection. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example shows the collection of all cells in the bounding box described by the 10 10 90 90 coordinates from the design. prompt> all_objects_in_bounding_box -cells \ -coordinate {10 10 90 90} {u1 u2 u3 abc/u14} The following example shows the collection of all nets in the bounding box described by the 10 10 90 90 coordinates from the design. prompt> all_objects_in_bounding_box -nets \ -coordinate {10 10 90 90} {n1 n2 n3 abc/n14} all_objects_in_bounding_box 142 IC Compiler™ Tool Commands Version L-2016.03 SEE ALSO foreach_in_collection(2) sizeof_collection(2) Chapter 1: all_objects_in_bounding_box 143 1-143 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_outputs Returns a collection of output or inout ports in the current design. SYNTAX collection all_outputs [-clock clock_name] [-edge_triggered | -level_sensitive] Data Types clock_name string ARGUMENTS -clock clock_name Limits the search to ports that have output delay relative to clock_name. -edge_triggered Limits the search to ports that have edge-triggered output delay as specified by the set_output_delay command with the -clock option. -level_sensitive Limits the search to ports that have level-sensitive output delay as specified by the set_output_delay command with the -level_sensitive option. DESCRIPTION The all_outputs command returns a collection of all output or inout ports in the current design, unless one of the options limits the search. This command is usually used with a command that places attributes on output ports. To get detailed information on ports in the current design, use the report_port command. Multicorner-Multimode Support This command has no dependency on scenario-specific information. all_outputs 144 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following example lists all output ports: prompt> all_outputs {OUT1 OUT2 BIDIR1} The following example sets a capacitive load of 3.5 on each output port: prompt> set_load 3.5 [all_outputs] The following example sets paths leading to output ports clocked by TSTCLK to be false. prompt> set_false_path -to [all_outputs -clock TSTCLK] SEE ALSO all_inputs(2) current_design(2) report_port(2) set_false_path(2) set_load(2) set_output_delay(2) Chapter 1: all_outputs 145 1-145 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_physical_only_cells Returns a collection of all the physical-only cells from a design or from a list of objects in an input collection. SYNTAX collection all_physical_only_cells [-lib_cells lib_list | -cell_name list] [-coordinates {llx lly urx ury}] [input_coll_handle] Data Types lib_list list llx lly urx ury input_coll_handle list list float float float float collection ARGUMENTS -lib_cells lib_list Specifies a list of library cells. The tool searches for physical-only cells in the specified library cell list. The default behavior returns all physical-only cells from the entire design. -cell_name list Specifies the base instance name of the filler cells to be searched for in the design. The default behavior returns all physical-only cells from the entire design. -coordinates {llx lly urx ury} Specifies the coordinates of the area to search for physical-only cells. Returns a collection of the physical-only cells contained within the specified area. The default behavior returns all physical-only cells from the entire design. all_physical_only_cells 146 IC Compiler™ Tool Commands Version L-2016.03 input_coll_handle Specifies the name of a collection from which to search for physical-only cells. Returns a collection of physical-only cells that are contained within the specified input collection. The default behavior returns all physical-only cells from the entire design. DESCRIPTION This command returns a collection of all the physical-only cells in the design. The tool searches the entire design hierarchy. It returns physical-only cells from the entire design, not just from the top level. You can use wild cards, such as an asterisk (*) or question mark (?), when specifying cell instance names. A standard Tcl collection is returned. All of the collection-manipulating commands, such as the foreach_in_collection and sizeof_collection commands, can be performed on the collection of physical-only cells. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example collects all the physical-only cells from the design. prompt> all_physical_only_cells {fill1 fill2 fill3 abc/fill4} The following example collects all the physical-only cells from the design that have a library cell of type OKOAFILLER. prompt> all_physical_only_cells -lib_cell OKOAFILLER {hin in out tin hout tout} The following example collects all the physical-only cells from an existing collection stored in $COLL. prompt> all_physical_only_cells $COLL {ii2/hin iv3/in iv3/out tin ii2/hout tout} Chapter 1: all_physical_only_cells 147 1-147 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 The following example collects all the physical-only cells from the design that have an instance name starting with fill. prompt> all_physical_only_cells -cell_name fill* {fill1 fill2 fill3} SEE ALSO all_physical_only_nets(2) all_physical_only_ports(2) foreach_in_collection(2) sizeof_collection(2) all_physical_only_cells 148 IC Compiler™ Tool Commands Version L-2016.03 all_physical_only_nets Returns a collection of all physical-only nets in the design or from a list of objects in the input collection. SYNTAX collection all_physical_only_nets [input_coll] Data Types input_coll collection ARGUMENTS input_coll Specifies the input collection to search and return the collection of physical-only nets. Objects are to be searched only from the content of the specified input collection rather than from the design. DESCRIPTION This command can return the collection of physical-only nets from the design. The tool searches the entire design hierarchy. It returns physical-only nets from the entire design, not just from the top level. It returns power and ground nets together: They are not returned separately. If you specify a value for input_coll, the command searches for physical-only nets only from the specified collection, rather than from the entire design. A standard Tcl collection is returned. All of the generic collection manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, can be performed on this collection. Multicorner-Multimode Support This command has no dependency on scenario-specific information. Chapter 1: all_physical_only_nets 149 1-149 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example returns a collection of all physical-only nets from the design. prompt> all_physical_only_nets {pnet1 pnet2 gnd vcc} The following example returns a collection of all the physical-only nets from an existing collection stored in $COLL. prompt> all_physical_only_nets $COLL {vcc vdd gnd vcc5} SEE ALSO all_physical_only_cells(2) all_physical_only_nets(2) foreach_in_collection(2) sizeof_collection(2) all_physical_only_nets 150 IC Compiler™ Tool Commands Version L-2016.03 all_physical_only_ports Returns a collection of all physical-only ports in the design or from a list of objects in the input collection. SYNTAX collection all_physical_only_ports [input_coll] Data Types input_coll collection ARGUMENTS input_coll Specifies the input collection to search and return the collection of physical-only ports. Objects are to be searched only from the content of the specified input collection rather than from the design. DESCRIPTION This command can return the collection of all physical-only ports from the design. The tool searches the entire design hierarchy. It returns physical-only ports from the entire design, not just from the top level. If you specify a value for input_coll, the command searches for physical-only ports only from the specified collection, rather than from the entire design. A standard Tcl collection is returned. All of the generic collection manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, can be performed on this collection. Multicorner-Multimode Support This command has no dependency on scenario-specific information. Chapter 1: all_physical_only_ports 151 1-151 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example returns a collection of all physical-only ports from the design. prompt> all_physical_only_ports {port1 port2 port3} The following example returns a collection of all the physical-only ports from an existing collection stored in $COLL. prompt> all_physical_only_ports $COLL {pport portp1 pport2} SEE ALSO all_physical_only_cells(2) all_physical_only_nets(2) foreach_in_collection(2) sizeof_collection(2) all_physical_only_ports 152 IC Compiler™ Tool Commands Version L-2016.03 all_registers Returns a collection of sequential cells or pins in the current design. SYNTAX collection all_registers [-no_hierarchy] [-clock clock_name] [-rise_clock rise_clock_name] [-fall_clock fall_clock_name] [-cells] [-data_pins] [-clock_pins] [-slave_clock_pins] [-output_pins] [-level_sensitive | -edge_triggered] [-master_slave] Data Types clock_name rise_clock_name fall_clock_name string string string ARGUMENTS -no_hierarchy Limits the search to only the current level of hierarchy. Subdesigns are not searched. By default, the entire hierarchy is searched. -clock clock_name Considers only sequential cells clocked by the specified clock. By default, all sequential cells in the current design are considered. -rise_clock rise_clock_name Considers only sequential cells triggered by the rising edge of the specified clock. By default, all sequential cells in the current design are considered. Chapter 1: all_registers 153 1-153 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -fall_clock fall_clock_name Considers only sequential cells triggered by the falling edge of the specified clock. By default, all sequential cells in the current design are considered. -cells Returns a collection of sequential cells that meet the search criteria. If you do not specify any of the object type options, the command returns a collection of sequential cells. -data_pins Returns a collection of data pins of the sequential cells that meet the search criteria. -clock_pins Returns a collection of clock pins of the sequential cells that meet the search criteria. -slave_clock_pins Returns a collection of slave clock pins of master-slave registers that meet the search criteria. Slave clock pins are specified as clocked_on_also in the library. -output_pins Returns a collection of output pins of the sequential cells that meet the search criteria. -level_sensitive Limits the search to level-sensitive cells. -edge_triggered Limits the search to edge-triggered cells. -master_slave Limits search to master_slave cells. DESCRIPTION The all_registers command returns a collection of sequential cells or pins in the current design, filtered as specified by the options. By default, the command returns a collection of all sequential cells in the design. If you specify clock_name, it considers only the sequential cells in the transitive fanout of the sources of the clock. You can use one or more of the -cells, -data_pins, -clock_pins, -slave_clock_pins, and -output_pins options to return a collection containing the respective types of objects. For all_registers 154 IC Compiler™ Tool Commands Version L-2016.03 example, if you use -data_pins, the command returns a collection containing the only the data pins of the sequential cells that meet the search criteria. If you use both -cells and -data_pins, the command returns a collection containing both the sequential cells and their data pins. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example sets max_delay targets for timing paths leading to data pins of all registers clocked by PHI2: prompt> set_max_delay 10.0 -to [all_registers -clock PHI2 -data_pins] The following example returns a list of data pins for all master-slave registers clocked by clockB: prompt> all_registers -master_slave -data_pins -clock clockB The following example returns a list of all level-sensitive cells and their clock (enable) pins: prompt> all_registers -level_sensitive -cells -clock_pins The following example shows how to push into an instance named U1 and find level-sensitive cells without searching subdesigns of that instance: prompt> current_instance U1 prompt> all_registers -no_hierarchy SEE ALSO create_clock(2) current_design(2) current_instance(2) remove_clock(2) set_max_delay(2) Chapter 1: all_registers 155 1-155 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_rp_groups Returns a collection of specified relative placement groups and all groups in their hierarchy. SYNTAX collection all_rp_groups [rp_groups] Data Types rp_groups list or collection ARGUMENTS rp_groups Specifies the relative placement groups for which to search. If you do not specify this argument, the command returns a collection that contains all relative placement groups currently loaded in memory. DESCRIPTION The all_rp_groups command returns a collection of the specified groups and all subgroups in their hierarchy. If you do not specify the rp_groups argument, the command returns all relative placement groups currently loaded in memory. If no relative placement groups are found, the command returns an empty string. This command is supported only for designs that do not contain multiply-instantiated designs. Multicorner-Multimode Support This command has no dependency on scenario-specific information. all_rp_groups 156 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following example uses the all_rp_groups command: prompt> get_rp_groups {mul::grp_mul ripple::grp_ripple example3::top_group} prompt> all_rp_groups {mul::grp_mul ripple::grp_ripple example3::top_group} prompt> all_rp_groups ripple::grp_ripple {ripple::grp_ripple mul::grp_mul} prompt> remove_rp_groups -all -quiet 1 prompt> all_rp_groups SEE ALSO add_to_rp_group(2) all_rp_hierarchicals(2) all_rp_inclusions(2) all_rp_instantiations(2) all_rp_references(2) create_rp_group(2) remove_rp_groups(2) Chapter 1: all_rp_groups 157 1-157 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_rp_hierarchicals Returns a collection of hierarchical relative placement groups that contain the specified groups in their hierarchy. The specified groups can be either included or instantiated in their parent group. SYNTAX collection all_rp_hierarchicals [rp_groups] Data Types rp_groups list or collection ARGUMENTS rp_groups Specifies the relative placement groups whose ancestor groups are to be in the collection returned by this command. The specified groups can be either included or instantiated in their parent group. If you do not specify this argument, this command returns a collection that contains all hierarchical relative placement groups currently loaded in memory. DESCRIPTION The all_rp_hierarchicals command returns a collection of hierarchical groups that are ancestors of the relative placement groups specified in the rp_groups argument. If you do not specify the rp_groups argument, the command returns a collection that contains all hierarchical relative placement groups currently loaded in memory. If no relative placement groups are found, the command returns an empty string. This command is supported only for designs that do not contain multiply-instantiated designs. all_rp_hierarchicals 158 IC Compiler™ Tool Commands Version L-2016.03 Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example uses the all_rp_hierarchicals command: prompt> get_rp_groups {b::top a0::a0_group b::u_top/a1_group b::u_top/a1_group_include b::u_nxt/a1_group b::a1_group_include a1::a1_group} prompt> all_rp_hierarchicals {b::a1_group_include b::u_nxt/a1_group b::u_top/a1_group_include b::u_top/a1_group b::top} prompt> all_rp_hierarchicals b::u_top/a1_group_include {b::u_top/a1_group} prompt> remove_rp_groups -all -quiet 1 prompt> all_rp_hierarchicals SEE ALSO add_to_rp_group(2) all_rp_groups(2) all_rp_inclusions(2) all_rp_instantiations(2) all_rp_references(2) create_rp_group(2) remove_rp_groups(2) Chapter 1: all_rp_hierarchicals 159 1-159 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_rp_inclusions Returns a collection that contains the hierarchical relative placement groups that include the specified groups. SYNTAX collection all_rp_inclusions [rp_groups] Data Types rp_groups list or collection ARGUMENTS rp_groups Specifies the included relative placement groups whose parent groups are to be included in the collection returned by this command. If you do not specify this argument, this command returns a collection that contains all hierarchical relative placement groups in the design that contain included groups. DESCRIPTION The all_rp_inclusions command returns a collection that contains the hierarchical groups that include the relative placement groups specified in the rp_groups argument. If you do not specify the rp_groups argument, the command returns a collection that contains all hierarchical relative placement groups currently in memory that include other relative placement groups. If no relative placement groups are found, the command returns an empty string. This command is supported only for designs that do not contain multiply-instantiated designs. all_rp_inclusions 160 IC Compiler™ Tool Commands Version L-2016.03 Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example uses the all_rp_inclusions command: prompt> get_rp_groups {mul::grp_mul mul::big_grp ripple::grp_ripple example3::g2 example3::top_group} prompt> all_rp_inclusions {mul::big_grp example3::g2} prompt> all_rp_inclusions mul::grp_mul {mul::big_grp} prompt> remove_rp_groups -all -quiet 1 prompt> all_rp_inclusions SEE ALSO add_to_rp_group(2) all_rp_groups(2) all_rp_hierarchicals(2) all_rp_instantiations(2) all_rp_references(2) create_rp_group(2) remove_rp_groups(2) Chapter 1: all_rp_inclusions 161 1-161 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_rp_instantiations Returns a collection of hierarchical relative placement groups that instantiate the specified groups. SYNTAX collection all_rp_instantiations [rp_groups] Data Types rp_groups list or collection ARGUMENTS rp_groups Specifies the instantiated relative placement groups whose parent groups are to be included in the collection returned by this command. If you do not specify this argument, this command returns a collection that contains all hierarchical relative placement groups in the design that contain instantiated groups. DESCRIPTION The all_rp_instantiations command returns a collection of hierarchical relative placement groups that instantiate the groups specified in the rp_groups argument. If you do not specify the rp_groups argument, the command returns a collection that contains all hierarchical relative placement groups currently in memory that instantiate other relative placement groups. If no relative placement groups are found, the command returns an empty string. This command is supported only for designs that do not contain multiply-instantiated designs. all_rp_instantiations 162 IC Compiler™ Tool Commands Version L-2016.03 Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example uses the all_rp_instantiations command: prompt> get_rp_groups {mul::grp_mul ripple::grp_ripple example3::top_group} prompt> all_rp_instantiations {ripple::grp_ripple example3::top_group} prompt> all_rp_instantiations ripple::grp_ripple {example3::top_group} prompt> remove_rp_groups -all -quiet 1 prompt> all_rp_instantiations SEE ALSO add_to_rp_group(2) all_rp_groups(2) all_rp_hierarchicals(2) all_rp_instantiations(2) all_rp_references(2) create_rp_group(2) remove_rp_groups(2) Chapter 1: all_rp_instantiations 163 1-163 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_rp_references Returns a collection of relative placement groups that directly contain the specified cells, which are either leaf cells or hierarchical cells that contain instantiated relative placement groups. SYNTAX collection all_rp_references [cell_list] [-design design_name] Data Types cell_list design_name list string ARGUMENTS cell_list Specifies the cells (either leaf cells or hierarchical cells that contain instantiated relative placement groups) whose parent groups are to be included in the collection returned by this command. If you do not specify this argument, the command returns a collection that contains all relative placement groups that directly contain any leaf cells in the specified design. -design design_name Specifies the design in which to locate the specified cells. If you do not specify this option, the tool looks for the cells in the current design. DESCRIPTION The all_rp_references command returns a collection of relative placement groups that directly contain the cells (either leaf cells or hierarchical cells that contain instantiated relative placement groups) specified in the cell_list argument. all_rp_references 164 IC Compiler™ Tool Commands Version L-2016.03 If you do not specify the cell_list argument, the command returns a collection that contains all relative placement groups that directly contain any leaf cells in the specified design. A group directly contains a leaf cell if the cell was added to the group by using the -leaf option of the add_to_rp_group command. A group directly contains a hierarchical cell if the cell was used to hierarchically instantiate another group by using the -instance option of the add_to_rp_group command. This command is supported only for designs that do not contain multiply-instantiated designs. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example uses the all_rp_references command: prompt> get_rp_groups {mul::grp_mul ripple::grp_ripple example3::ripple example3::top_group} prompt> all_rp_references {mul::grp_mul ripple::grp_ripple example3::ripple} prompt> all_rp_references U1 -design mul {mul::grp_mul} prompt> remove_rp_groups -all -quiet 1 prompt> all_rp_references SEE ALSO add_to_rp_group(2) all_rp_groups(2) all_rp_inclusions(2) all_rp_instantiations(2) create_rp_group(2) remove_rp_groups(2) Chapter 1: all_rp_references 165 1-165 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_scenarios Lists all defined scenarios available in memory. SYNTAX string all_scenarios ARGUMENTS The all_scenarios command has no arguments. DESCRIPTION The all_scenarios command displays the scenarios currently defined in memory. This list includes both active and inactive scenarios. Multicorner-Multimode Support This command uses information from both active and inactive scenarios. EXAMPLES The following example uses all_scenarios to list the available scenarios: prompt> create_scenario MODE1 prompt> create_scenario MODE2 prompt> all_scenarios MODE1 MODE2 SEE ALSO all_active_scenarios(2) create_scenario(2) current_scenario(2) all_scenarios 166 IC Compiler™ Tool Commands Version L-2016.03 remove_scenario(2) set_active_scenarios(2) Chapter 1: all_scenarios 167 1-167 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_size_only_cells Returns a collection of cells that have the size_only attribute on them. SYNTAX collection all_size_only_cells [cell_list] Data Types cell_list collection ARGUMENTS cell_list Specifies the cells from which the size-only cells are returned. By default, all cells in the design are considered. DESCRIPTION This command returns the collection of size-only cells from the specified cells. You can use wild cards, such as an asterisk (*) or question mark (?), when specifying the input cells. A standard Tcl collection is returned. You can use all of the generic collection manipulating commands, such as foreach_in_collection and sizeof_collection, on this collection. Multicorner-Multimode Support This command uses information from all active scenarios. EXAMPLES The following command returns a collection that contains all of the size-only cells in the current design. prompt> all_size_only_cells all_size_only_cells 168 IC Compiler™ Tool Commands Version L-2016.03 {U20 U21 U23 SBLK/U1 SBLK/U2} The following command returns a collection that contains the size-only cells in the SBLK subdesign. prompt> all_size_only_cells [get_cells SBLK/*] {SBLK/U1 SBLK/U2} SEE ALSO set_size_only(2) get_attribute(2) foreach_in_collection(2) get_cells(2) set_attribute(2) report_attribute(2) sizeof_collection(2) Chapter 1: all_size_only_cells 169 1-169 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_spare_cells Returns a collection of all spare cells in the design or from a list of objects in the input collection. SYNTAX collection all_spare_cells [input_coll] Data Types input_coll collection ARGUMENTS input_coll Specifies the input collection to search and return the collection of spare cells. Objects are to be searched only from the content of the specified input collection, rather than from the design. DESCRIPTION The all_spare_cells command returns the collection of all spare cells in the entire design hierarchy (not just those in the top level of the design). If you specify a value for the input_coll option, the tool searches for spare cells only in the collection this option identifies, rather than in the entire design. The all_spare_cells command looks for an internal attribute placed earlier on existing cells during physical optimization or on additional cells at the end of physical optimization. (For more information, see the man page for the insert_spare_cell command.) The tool returns a standard Tcl-language collection. You can perform all of the generic-collection manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, on this collection. all_spare_cells 170 IC Compiler™ Tool Commands Version L-2016.03 Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example returns a collection of all spare cells in the design. prompt> all_spare_cells {spare1 top/spare2 top/spare4 spare10} The following example returns a collection of all spare cells from an existing collection stored in $COLL. prompt> all_spare_cells $COLL {spare1 spare2} SEE ALSO foreach_in_collection(2) sizeof_collection(2) Chapter 1: all_spare_cells 171 1-171 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_threestate Returns a collection of three-state cells or nets. SYNTAX collection all_threestate -nets [input_coll] Data Types input_coll collection ARGUMENTS -nets Specifies that the collection of three-state nets is to be returned. input_coll Searches the specified input collection and returns a collection of three-state nets. Objects are to be searched only from the content of the specified input collection, rather than from the design. DESCRIPTION The all_threestate command returns a collection of all three-state nets from the design. The tool searches the entire design hierarchy. It returns three-state nets from the entire design, not just from the top level. If you specify a value for input_coll, the command searches for three-state nets only from the specified collection, rather than from the entire design. Only the nets that are driven by a pin that is tristate or bidirectional are returned as three-state nets. If you do not specify the -nets option, the all_threestate command returns an error. all_threestate 172 IC Compiler™ Tool Commands Version L-2016.03 A standard Tcl collection is returned. All of the generic collection manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, can be performed on this collection handle. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example returns a collection of all three-state nets from the design: prompt> all_threestate -nets {ii2/hin iv3/in iv3/out tin ii2/hout tout} SEE ALSO all_fanout(2) foreach_in_collection(2) sizeof_collection(2) Chapter 1: all_threestate 173 1-173 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 all_tieoff_cells Returns a collection of all tie-off cells in the current design or in the input collection. SYNTAX collection all_tieoff_cells ARGUMENTS The all_tieoff_cells command has no arguments. DESCRIPTION The all_tieoff_cells command returns a collection of all tie-off cells from the current design. The tool searches the entire design hierarchy. It returns tie-off cells from the entire design, not just from the top level. Tie-off cells are the constant cells that the tool introduced in the design. To find the value of a tie-off cell, the tool examines the corresponding lib_cell of each cell to determine if it is logic-0 or logic-1. If you specify a value for input_coll, the command searches for tie-off cells or nets only from the specified collection, rather than from the entire design. This command returns a standard Tcl collection. All of the generic collection manipulating commands, such as foreach_in_collection, sizeof_collection, and so on, can be performed on this collection. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example returns a collection of all tie-off cells from the design: prompt> all_tieoff_cells {logic1 logic0} all_tieoff_cells 174 IC Compiler™ Tool Commands Version L-2016.03 The following example returns a collection of all tie-off cells from an existing collection stored in $COLL: prompt> all_tieoff_cells $COLL {logic1} SEE ALSO foreach_in_collection(2) sizeof_collection(2) Chapter 1: all_tieoff_cells 175 1-175 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 allocate_fp_budgets Performs proportional timing budgeting. SYNTAX status allocate_fp_budgets [-cells budget_cell_names] [-black_box_cells bb_cells_list] [-fixed_delay_objects objects] [-file_format_spec file_format_string] [-no_interblock_logic] [-exploration] [-incremental] [-no_split] [-print_partial_constraints] [-create_qtm_models [-qtm_model_path output_directory]] [-add_scenarios] [-host_options host_options_name] [-work_directory dir_name] [-pre_open_cell_script pre_open_cell_script_name] [-post_open_cell_script post_open_cell_script_name] Data Types budget_cell_names bb_cells_list objects file_format_string output_directory host_options_name dir_name pre_open_cell_script_name list list collection string string string string string ARGUMENTS -cells budget_cell_names Specifies a list of cells to budget. By default, the command budgets all plan groups and soft macros in the current design. -black_box_cells bb_cells_list Specifies a list of black box cells to budget. Each black box cell in the list should have a timing model. By default, black box are not rebudgeted. allocate_fp_budgets 176 IC Compiler™ Tool Commands Version L-2016.03 -fixed_delay_objects objects Specifies a collection of objects that are implemented and their related delays do not change. The objects can include one or more soft macro cells, hard macro cells, black box cells, hierarchical cells for plan groups, pins of soft macros with ILMs, and pins of hierarchical cells for plan groups. The budgets allocated to them are equal to the current delay. By default, there are no fixed delay objects. -file_format_spec file_format_string Specifies the directory and naming style of the resulting Synopsys Design Constraints (SDC) files. The file_format_string indicates the directory to write the output SDC files and specifies whether to use the budgeting block instance names or reference names as the file names. Specify output_directory/i.sdc to use the instance name, where output_directory is the name of the output directory. Specify output_directory/m.sdc to use the reference name. For designs with multiply instantiated modules (MIMs), the command generates one SDC file for each module if you use instance name for file name. If you use the reference name for file names, the command generates one master SDC file for each MIM set. -no_interblock_logic Specifies that the top-level delays are considered fixed. There is no proportional budget allocation at the top level. -exploration Specifies that budgeting is called inside the design planning exploration flow. By default, the command operates in the normal design planning flow. -incremental Performs budgeting in incremental mode. In this mode, the budgeter retrieves certain block-level implementation information from the ILMs of the soft macros and budgets the delays using this information. -no_split Retains long command lines in the output file without splitting. By default, the budgeter splits long lines when creating the SDC files and uses a backslash (\) symbol at the end of each line to indicate continuation. -print_partial_constraints Generates partial constraint files for blocks containing partial netlists. This option is valid only in partial netlist flows such as the on-demand-loading flow, re-budgeting with ILM flow, and the trace mode flow. By default, budgeting does not write out partial constraint files. Chapter 1: allocate_fp_budgets 177 1-177 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -create_qtm_models Creates quick timing models (QTM) for the budgeted plan groups or soft macros. The delay arcs and constraint arcs in the generated QTM represent the budgets on the plan groups or soft macros. You can load the QTMs for the soft macros or plan groups after they are committed to soft macros, and check the timing at the top level and verify the budgets. By default, the command does not create quick timing models. -qtm_model_path output_directory Specifies the directory path to write the quick timing model (QTM) files that the tool generates. By default, the files are written to the current work directory. You must also specify the -create_qtm_models option when you specify the -qtm_model_path option. -add_scenarios Adds constraints generated by the current budgeting command to the constraints generated previously for different scenarios. You can use this option only if you previously ran budgeting at least one time without the -add_scenarios option. -host_options host_options_name Specifies the distributed processing configuration to use when running this command. You use the set_host_options command to define the distributed processing configuration. By default, the command does not use distributed processing. -work_directory dir_name Specifies the name of the working directory used to write the files produced by distributed budgeting. The default directory name is TB_work_dir. This directory must be accessible by all the distributed processing workers and should not be on a local disk accessible only to the master process. This option takes effect only when the -host_options option is also specified. -pre_open_cell_script pre_open_cell_script_name Specifies the name of a file containing a script that will be sourced by the distributed processes before opening the design.It can be used to set up some design specific information. This option takes effect only when the -host_options is also specified. -post_open_cell_script post_open_cell_script_name Specifies the name of a file containing a script that will be sourced by the distributed processes immediately after opening the design. It can be used to set up non-default timer behavior or to read parasitic files. This option takes effect only when the -host_options option is also specified. allocate_fp_budgets 178 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION This command performs proportional timing budgeting for all plan groups or soft macros in the design. It writes out the Synopsys Design Constraints (SDC) files which contain timing constraints describing the budgets. By default, the allocate_fp_budgets command disables recovery and removal arcs, similar to the report_timing and timing optimization commands. To enable recovery and removal arcs, set the enable_recovery_removal_arcs variable to true. This variable setting is honored by the allocate_fp_budgets command, the report_timing command, and timing optimization commands such as place_opt. Multicorner-Multimode Support This command uses information from all active scenarios. EXAMPLES The following example performs timing budgeting for a design with three blocks: BlockA, BlockB, and BlockC. It creates three SDC files in the current directory: BlockA.sdc, BlockB.sdc, and BlockC.sdc. These files contain the timing constraints for the corresponding block. prompt> allocate_fp_budgets The following example creates three files named BlockA.sdc, BlockB.sdc, and BlockC.sdc. In this example, the delays internal to the file named BlockA.sdc are considered fixed. This potentially affects all three generated files. prompt> allocate_fp_budgets -fixed_delay_objects [get_cells BlockA] The following example runs distributed budgeting using LSF. The script post.tcl will be sourced in the distributed processes after the design is opened. prompt> set_host_options -name my_host_options -pool lsf \ -submit_options "-q cpu64" prompt> allocate_fp_budgets -host_options my_host_options \ -post_open_cell_script post.tcl SEE ALSO Chapter 1: allocate_fp_budgets 179 1-179 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_fp_budget_result(2) check_fp_timing_environment(2) place_opt(2) report_timing(2) set_host_options(2) allocate_fp_budgets 180 IC Compiler™ Tool Commands Version L-2016.03 analyze_design_violations Analyzes the current design, identifies unfixable violations, and generates a summary report. SYNTAX status analyze_design_violations -type max_trans | hold [-fanout hfn_threshold] [-slack small_violation_threshold] [-output output_dir] [-effort medium | high] [-stage preroute | postroute] [-input input_file] Data Types hfn_threshold small_violation_threshold output_dir input_file integer float string string ARGUMENTS -type max_trans | hold Specifies the type of violation to analyze, either maximum transition (max_trans) or hold time (hold). This is a required option. -fanout hfn_threshold Specifies the high-fanout threshold; nets with a fanout larger than this value are considered high-fanout nets. By default, the high-fanout threshold is 30. -slack small_violation_threshold Specifies the slack threshold in picoseconds for violations to be considered small. Other analysis will not be performed on small violations. By default, any slack violation less than 5 ps (-slack 5.0) is considered small. Chapter 1: analyze_design_violations 181 1-181 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -output output_dir Specifies the output directory name. Before starting analysis, the analyze_design_violations command runs the report_constraint command and writes the violating endpoints or nets to a file in the specified directory. A detailed report file and all category files are written to the same directory. If the specified directory exists, the command overwrites the files in that directory. By default, the output directory name is analyze_design_violations. -effort medium | high Specifies the analysis effort. The default is medium. If you set this option to high, the command performs setup conflict checking, which significantly increases the runtime. You should use this option with the -input option to focus on a few violations instead of the whole design. -stage preroute | postroute Specifies the routing stage used for analysis. The default is postroute and the command uses the route_length attribute to determine the wire lengths. If you set this option to preroute, the command uses the x_length and y_length attributes to determine the wire lengths. -input input_file Specifies the name of the input file used to specify the endpoints or nets to analyze. By default, the command analyzes all violations in the design. To reduce the runtime or to focus on specific violations, you can provide a file that contains the endpoints or nets to analyze. The file must be generated by the report_constraint command with required options. To generate a file used to analyze maximum transition violations, use the following command: report_constraint -max_transition -all_violators \ -nosplit -significant_digits 5 If this is a multicorner-multimode design, you must also use the -scenarios [all_active_scenarios] option. analyze_design_violations 182 IC Compiler™ Tool Commands Version L-2016.03 To generate a file used to analyze hold time violations, use the following command: report_constraint -min_delay -all_violators \ -nosplit -significant_digits 5 If this is a multicorner-multimode design, you must also use the -scenarios [all_active_scenarios] option. After you have generated the output file, you can copy and paste the violations of interest into the input file. Do not modify the contents for a violation, such as changing lines or spacing, as this command analyzes the file based on syntax. For maximum transition violations, the input should include the violated net with the complete pin or port lines. You cannot provide an input file with only violated pin or port lines. DESCRIPTION This command analyzes maximum transition or hold time violations in the current design and generates a summary report for the unfixed violations. Multicorner-Multimode Support This command supports multicorner-multimode designs. EXAMPLES The following example analyzes the maximum transition violations in the current design: prompt> analyze_design_violations -type max_trans The following example analyzes the hold time violations in the current design. It considers any net with more than 10 fanouts as a high-fanout net and any violation with slack less than 50 ps as a small violation. It writes the output to a directory named my_report. prompt> analyze_design_violations \ -type hold -fanout 10 -slack 50 \ -output my_report Assume that you want to generate a maximum transition report only for the worst maximum transition violation in the design. You could edit the report generated by the report_constraint command so that it contains only that violation and use that report as input to the analyze_design_violations command. Note that you do not need to remove Chapter 1: analyze_design_violations 183 1-183 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 the header and title, as the analyze_design_violations command automatically filters these out. The following is the edited maximum transition report used as input to the analyze_design_violations command: **************************************** Report : constraint -all_violators -max_transition Design : demo Version: G-2012.06-ICC Date : Wed May 2 13:48:53 2012 **************************************** Parasitic source Parasitic mode Extraction mode Extraction derating : : : : LPE RealRC MIN_MAX 0/0/0 max_transition Required Actual Net Transition Transition Slack ----------------------------------------------------------------LA_LINK0[16] 0.50000 552.96002 -552.46002 (VIOLATED) PORT : LA_LINK0[16] 0.50000 552.96002 -552.46002 (VIOLATED) When you run the analyze_design_violations command using this file as the input, it generates the following maximum transition report. WNS: 11.74 TNS: 13456.76 Number of Violating Paths: 43745 (with Crosstalk delta delays) Nets with DRC Violations: 3382 Total moveable cell area: 736083.9 Total fixed cell area: 213675072.0 Total physical cell area: 214411152.0 Core area: (30000 30000 17169980 17169200) (Hold) WNS: 0.57 TNS: 110.48 Number of Violating Paths: 773 (with Crosstalk delta delays) ************************************************************************* ** Product version: G-2012.06-ICC Product root: /product/synopsys/tool/ICC Current design: demo Script version: 2.5 Options: verbose: off, 0 type: max_trans fanout: 30 analyze_design_violations 184 IC Compiler™ Tool Commands Version L-2016.03 slack: 5 ps effort: medium, setup conflict check will be excluded stage: postroute input: ./my_input output: analyze_design_violations ************************************************************************* ** Phase 1: Analyzing optimization setup and current log......Thu Jun 14 13:40:02 2012 --> using default set_cost_priority --> using user's critical_range { 0.200000 } --> found RCEX-060 in icc_output.txt --> variable "physopt_cpu_limit" is 0 --> variable "routeopt_disable_cpulimit" is false --> variable "focalopt_endpoint_margin" is true --> variable "compile_no_new_cells_at_top_level" is false --> checking report_route_opt_strategy --> checking report_route_opt_zrt_crosstalk_options --> found 320 placement blockage(s) --> no routing blockage Phase 2: Generating all temporary files......Thu Jun 14 13:40:03 2012 Phase 3: Analyzing max_trans violations left in the design......Thu Jun 14 13:40:03 2012 --> real time progress is at "/testcase/project/ analyze_design_violations/max_trans.summary"...... Analyzing specific violated max trans net LA_LINK0[16] ...... ****** Category Of Violated Nets ****** * Category 1 : Entire net is dont_touch * * Category 2 : Nets connect to pad cell * LA_LINK0[16] 0.50000 552.96002 (VIOLATED) PORT : LA_LINK0[16] 0.50000 552.96002 (VIOLATED) -552.46002 -552.46002 * Category 3 : Clock nets * * Category 4 : Constant nets * * Category 5 : Nets have within_ilm attribute * * Category 6 : Nets have within_block_abstraction attribute * * Category 7 : Multi-driven nets * * Category 8 : High fanout * * Category 9 : Driver cell is {dont_touch or macro or is_fixed} AND driver pin is violating AND net is < 100u * * Category 10 : Nets with small violated slack * * Category 11 : Nets are highly blocked * Chapter 1: analyze_design_violations 185 1-185 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 * Category 12 : Violated nets are not included in above catelogy, or may be fixable (small violated slack or high fanout) * * Category 13 : Setup conflict with driver on violated net or endpoint * ****** End Of Category of Violated Nets ****** Phase 4: Generating summary report......Thu Jun 14 13:40:08 2012 ************************************************************************* ** Total violated max transition nets: 1, 1 are unfixable Within 0 violated nets not found in unfixable categories, 0 are less than 5.0 ps Unfixable categories: ---------------------------------------------------Entire net is dont_touch: 0 Nets connect to pad cell: 1 Clock nets: 0 Constant nets: 0 Nets have within_ilm attribute: 0 Nets have within_block_abstraction attribute: 0 Multi-driven nets: 0 Driver cell is {dont_touch or macro or is_fixed} AND driver pin is violating AND net is < 100u: 0 Nets are highly blocked: 0 Information: ---------------------------------------------------High fanout (>= 30 load pins): 0 Nets with small violated slack (<= 5.0 ps): 0 Found RCEX-060 warning in log and optimization will not fix those nets Setup conflict with driver or endpoint: No check with effort medium Violated Violated Violated Violated slack slack slack slack (<= 5.0 ps): 0 (> 5.0 AND <= 10.0 ps): 0 (> 10.0 AND <= 20.0 ps): 0 (> 20.0 ps): 0 ************************************************************************* ** Information: check "/slowfs/disk/user/demo/analyze_design_violations/ max_trans.summary" for all details SEE ALSO report_constraint(2) report_timing(2) analyze_design_violations 186 IC Compiler™ Tool Commands Version L-2016.03 analyze_displacement Reports and analyzes the displacement information for the feasibility flow. SYNTAX status analyze_displacement -input filename [-checkpoints checkpoint_list] [-displacement_threshold distance] [-cells cell_collection] [-timing_path filename] [-slack_threshold slack] [-move_back checkpoint_index] [-compare_timing] [-commit_change] Data Types filename checkpoint_list distance cell_collection slack checkpoint_index string list integer collection float integer ARGUMENTS -input filename Reads the cell location history report file, and reports the displacement in the GUI if the GUI is open. It also displays the displacement list from each checkpoint accordingly. This is a required option. -checkpoints checkpoint_list You can specify two or more checkpoints from the flow. By default, the analyze_displacement command looks at all the checkpoints in the input file. Checkpoints specified will be the starting and end compare points. For example, if you specify -checkpoints {2 3}, the analyze_displacement command compares cell positions between checkpoints 2 and 3 and reports the cells with displacement greater than the displacement threshold. Some commands, such as the optimization command, can remove cells from the design. Only cells that are in both start and end checkpoints will be reported. Chapter 1: analyze_displacement 187 1-187 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 This option cannot be used with the -move_back option. -displacement_threshold distance Specifies the displacement threshold in unit of cell row height. This option filters any cells that have displacement less than the specified threshold value. The displacement distance is calculated by Euclidean distance; that is, sqrt(deltaX**2 + deltaY**2). The default value is 10. -cells cell_collection Specifies a collection of cells to filter the reporting of large displacement. You use this option to restrict reporting and the -move_back option to focus on a specific set of cells. When this option is used together with the -timing_path option, the -cells option selects the cells that are present in both the timing paths and cell list. -timing_path filename Specifies the critical timing paths where the command finds cells with large displacement. The filename is a timing report file from the report_timing command. You can specify the -slack_threshold option for the command to find the timing paths. You can use the -timing_path option with the -cell option to further restrict the cells to the specified lists of both options. -slack_threshold slack Specifies the minimum negative slack threshold value of the timing paths where the command finds cell displacement. For example, a -1.0 value means that the paths with slack worse than -1.0 are considered in the analysis. The default is 0.0. Use this option with the -timing_path option to filter most of the timing paths. -move_back checkpoint_index Moves the cells with large displacement to the specified checkpoint. This option must be followed by the -compare_timing option, the -commit_change option, or both options. This option cannot be used with the -checkpoints. By default, the process of the -move_back option is temporary, and it does not change the placement of the design. The RC data can be unsynchronized. -compare_timing Specifies a timing report file associated with cell displacement. Use this option with the -move_back option. If you specify the -timing_path option, the command generates another timing report for the specified timing paths with large cell displacement. You can compare the timing of the two reports and examine the timing impact on the same timing paths. analyze_displacement 188 IC Compiler™ Tool Commands Version L-2016.03 -commit_change This option only takes effect when used with the -move_back option, and keeps the cells at the locations after the move back. By default, all the move back actions of the cells are reversed after the analysis. DESCRIPTION The place_opt_feasibility flow records the cell movement history by using specific checkpoints, such as before and after the legalization step, and a new report is generated. By default, this feature is enabled during the place_opt_feasibility and clock_opt_feasibility flow. The resulting output file is named feas_cell_history. If this file is not available, a new file name is used instead. The tool uses the naming convention feas_cell_history.<n>, where <n> is the index number. You need to specify a report file for the command to determine how many checkpoints have been executed, and the command displays the cells with the associated displacement information. If the appropriate GUI window is open, the command plots the displacement as an overlay by using different color for each checkpoint. To analyze large displacement cells in critical timing paths, you can provide an up-to-date timing report file as the input. The command analyzes the timing report and finds the cells with large displacement. The command reports the cell displacement and displays the cell displacement in the GUI if the appropriate window is open. You can use the -move_back option to analyze the timing impact. The command moves the cells back to the original locations before the specified checkpoint, estimates RC data, updates timing, and regenerates the timing report file for the specified timing paths. To preserve the results, you can use the -commit_change option. By default, the timing analysis after the moving back is not preserved, but the RC data is left as is and you should update the data. You can also specify the cell names for the tool to report cells that have large displacement. It provides flexibility compared to the time_report format input that is supported by this feature. The following example uses the -timing_path option. It is a timing report file. You can provide your timing report file for the tool to analyze. You can then specify the -slack_threshold option for the tool to skip the non-critical paths. Startpoint: mi_wrap/ms_top_inst/u_MS_TOP/u_CLKGEN4/ u_CLKGEN_SUB_ODEN_ub_clk/u_CLK_DIV_ODEN/clk_even_reg (rising edge-triggered flip-flop clocked by PLL_CLK4) Endpoint: mi_wrap/ms_top_inst/u_MS_TOP/u_CLKGEN4/ u_CLKGEN_SUB_ODEN_ub_clk/u_CLK_DIV_ODEN/clk_shift_reg (rising edge-triggered flip-flop clocked by CLK3') Scenario: sys_main Chapter 1: analyze_displacement 189 1-189 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Path Group: CLK3 Path Type: max Attributes: d - dont_touch u - dont_use mo - map_only so - size_only i - ideal_net or ideal_network Point Path Trans Delta Incr Location / Load --------------------------------------------------------------------------------------------------------------clock PLL_CLK4 (rise edge) 140.000 140.000 clock network delay (ideal) 0.000 140.000 ... data arrival time 140.279 clock CLK3' (rise edge) 140.400 140.400 clock network delay (ideal) 0.000 140.400 clock reconvergence pessimism 0.000 140.400 clock uncertainty -0.300 140.100 library setup time -0.231 139.869 data required time 139.869 -------------------------------------------------------------------------------------------------------------data required time 139.869 data arrival time -140.279 ------------------------------------------------------------------------------------------------------------slack (VIOLATED) -0.410 EXAMPLES The following example shows the typical output. prompt> analyze_displacement -input feas_cell_history **************************************** Report : analyze_displacement analyze_displacement 190 IC Compiler™ Tool Commands Version L-2016.03 Design : TOP -input feas_cell_history -displacement_threshold 10 Version: D-2010.03-ICC **************************************** Minimal cell row height: 5.040. Summary of analysis Result --------------------------------------------------Checkpoint 1: Start_legalizer 39 new large displacement to next checkpoint Checkpoint 2: End_legalizer 0 new large displacement to next checkpoint Checkpoint 3: Start_legalizer 42 new large displacement to next checkpoint Checkpoint 4:End_legalizer 0 new large displacement to next checkpoint Checkpoint 5: Current 1 The following example reports the displacement of cells between checkpoints 1 and 4. Notice that the value is not the sum of displacement of checkpoint 1-2 and 3-4 from the previous example. The discrepancy is due to cells that were removed from the design during optimization. Only cells existing in both checkpoints are reported. prompt> analyze_displacement -input feas_cell_history -checkpoints {1 4} **************************************** Report : analyze_displacement Design : TOP -input feas_cell_history -displacement_threshold 10 Version: D-2010.03-ICC **************************************** Minimal cell row height: 5.040. Summary of analysis Result --------------------------------------------------Checkpoint 1: Start_legalizer 39 new large displacement to next checkpoint Checkpoint 2: End_legalizer 1 The following example uses the -move_back and -compare_timing options. prompt>analyze_displacement -input feas_cell_history \ -move_back 3 -compare_timing -timing_path report.tim **************************************** Report : analyze_displacement Design : TOP -input feas_cell_history -displacement_threshold 10 Version: D-2010.03-ICC Chapter 1: analyze_displacement 191 1-191 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 **************************************** Minimal cell row height: 5.040. Summary of analysis Result --------------------------------------------------Checkpoint 1: Start_legalizer 4 new large displacement to next checkpoint Checkpoint 5: Current Summary of Cell Movement --------------------------------------------------Move cell U740 back from {374.880 519.120} to {372.900 423.360} Move cell U719 back from {349.800 327.600} to {350.638 420.901} Move cell U407 back from {347.820 327.600} to {350.029 420.837} Move cell U728 back from {331.980 327.600} to {333.912 421.000} Total 4 cells moved. Summary of timing analysis after cells moving back --------------------------------------------------Estimate RC .... Update timing .... Report timing .... Saved timing report file after moving cells back as ./timing_report_27199 Saved timing paths impacted by cell displacement as ./timing_path_27199 Startpoint: INSTANCE_2/CK Endpoint: REG/D Slack change 0.85: from -1.940 to -1.09 Info: Cancelled the cell move_back action. 1 analyze_displacement 192 IC Compiler™ Tool Commands Version L-2016.03 analyze_fp_rail Analyzes a complete or partial power network for voltage (IR) drop and electromigration (EM) on the specified power and ground nets. SYNTAX status analyze_fp_rail -nets nets [-power_budget power] [-analyze_power] [-voltage_supply voltage] [-pad_masters pad_masters] [-read_pad_instance_file file_name] [-read_pad_master_file file_name] [-use_pins_as_pads] [-top_level_only] [-create_virtual_rails layer] [-ignore_blockages] [-ignore_conn_view_layers layer] [-read_power_compiler_file file_name] [-read_prime_power_file file_name] [-read_default_power_file file_name] [-output_directory directory_name] Data Types nets power voltage pad_masters file_name layer directory_name collection or list float float string string collection or list string ARGUMENTS -nets nets Specifies the names of the power or ground nets on which to perform power network analysis. The default is to perform it on all power and ground nets. -power_budget power Specifies a total power budget for the analyzed design on which to perform constraint-driven power network analysis. The power budget is divided among the Chapter 1: analyze_fp_rail 193 1-193 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 instances according to their sizes. For hard macros or standard cells, the power budget is computed based on the percentage of the total area. For a hierarchical block, the it is computed based on the sum of all cells and blocks inside it. The power unit is in milliwatts. The default is 1000. For example, if the power budget for the entire design is 500 milliwatts, the total area of the top-level blocks is 500,000 square microns, and one of the blocks has an area of 25,000 square microns, power network analysis allocates the power for that 25,000-square-micron block as follows: 500mW * (25,000/50,000) = 25mW -analyze_power Specifies the power network analysis|synthesis (PNA|PNS) engine to analyze power for each instance from ICC. Before using this tcl option for power analysis, the default toggle rate (default as 0.1) and default static probability (default 0.5) for primary inputs and black box outputs can be set using set power_default_toggle_rate and set power_default_static_probability commands. The toggle rate and/or static probability for a specified object, e.g. a net, pin or port can be set using set_switching_activity. The switching activity interchange format (SAIF) file may also be read using read_saif command. set_cell_internal_power can be used to set the power value of a pin per toggle. Please refer to report_power command for more detailed information. report_power -cell -flat -nosplit is recommended to be run first prior to PNA with -analyze_power. -analyze_power can be used concurrently with option -power_budget. If a power budget is specified using -power_budget together with -analyze_power and the power budget is larger than the sum of instance power calculated by -analyze_power, the difference between power budget and the total power by -analyze_power will be assigned to those instances that are not assigned in -analyze_power if there is any such instances. Otherwise, the power budget is ignored. Power budget is set to 0 by default with "-analyze_power". -analyze_power can also be used concurrently with -read_default_power_file. The power specified in the default power file has a higher priority than that calculated by -analyze_power option, i.e. if the power value is calculated and read from the default power file for one instance, the instance will be assigned with the power from the default power file. "-analyze_power" is mutually exclusive with "-read_power_compiler_file" and "-read_prime_power_file". By default, power is NOT calculated from ICC unless this option is explicitly used. analyze_fp_rail 194 IC Compiler™ Tool Commands Version L-2016.03 -voltage_supply voltage Specifies at the power pad the voltage of the net to be analyzed. The voltage unit is volts. The default is 1.5. -pad_masters pad_masters Specifies the pad masters and the associated net as follows net_name:pad_master_name If net name is not specified, the pad master is used for both power and ground nets. By default, PNA will assume all the pads logically connected to signal 1 or 0 as power pads. -read_pad_instance_file file_name Specifies the pad instance file name and (optionally) the net name. If you do not specify the net name, the command assumes that the specified pad instance is used for both power and ground nets. The instance_and_net format is as follows: instance_name [net_name] For example, a valid instance_and_net value might be VDD1 VDD. By default, this option is off. -read_pad_master_file file_name Specifies the pad master file name and (optionally) the net name. If you do not specify the net name, the command assumes that the specified pad master is used for both power and ground nets. The master_name_and_net format is as follows: master_name [net_name] For example, a valid master_name_and net value might be VDD.FRAM VDD. By default, this option is off. -use_pins_as_pads Specifies to regard pins as pads in block level simulation. -top_level_only Specifies for the power network analysis (PNA) engine to ignore cells inside soft macros, but to consider all the power and ground net wires and vias in the design. By default, the PNA engine analyzes the design as if it were flat. Chapter 1: analyze_fp_rail 195 1-195 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -create_virtual_rails layer Allows Power network analysis to create virtual pseudo straps that represent the metal 1 straps for the standard cell pin connections because, during floorplanning stages, metal 1 straps for the standard cell pin connections usually are not available. During power planning, Power network analysis then analyzes the IR (voltage) drop and electromigration to predict what the effects might be when the metal 1 straps are available. This option creates pseudo horizontal straps with specified layers for standard cell pin connections based on the row information in the database. By default, this option is off. -ignore_blockages Ignores blockages for virtual pads. By default, this option is off. -ignore_conn_view_layers layer Ignores all metal layers (select the All option) or the specified metal layer(s) (select the Specified option) in connectivity (.CONN) views. By default, this option is off and none of metal layers are ignored. -read_power_compiler_file file_name Obtains the power calculation source from a Power Compiler report file. By default, this option is off. -read_prime_power_file file_name Obtains the power calculation source from a Prime Power/Prime Time PX report file. By default, this option is off. -read_default_power_file file_name Uses the PNA default format to obtain a power calculation. The power_name_and_value format is as follows, where power_value is given in mW: instance_or_master_name [power_value] For example, a valid power_name_and_value value might be as follows: instance X1 0.2 master abc.FRAM 0.1 By default, the command also reads a power information file generated from AstroRail by using the poDumpPowerInfo command. analyze_fp_rail 196 IC Compiler™ Tool Commands Version L-2016.03 -output_directory directory_name The specified directory stores the IR/EM results with the file name design_name. net_name.pw_hl.pna and the power allocation results with the file name design_name. net_name.power. The default is pna_output. DESCRIPTION This command allows user to perform a power network analysis (PNA) in a complete or partially built power/ground network at design planning stage. If the power ports in standard cells and/or hard macros are yet to be connected to the P/G network, the PNA will make virtual connection to those unconnected power ports and analyze the IR drop and EM in the power network based on user provided power budget and voltage supply. Multicorner-Multimode Support This command is not supported in a multi-scenario design flow. EXAMPLES The following example shows how to analyze the voltage drop on net VDD and VSS in the power network. The total power budget in the design is 1000mW, the voltage supply is 1.2V, and the pad master is pvdi.FRAM for net VDD and pvdo.FRAM for net VSS. prompt> analyze_fp_rail\ -nets {VDD VSS}\ -power_budget 1000\ -voltage_supply 1.2\ -pad_masters "VDD:pvdi.FRAM VSS:pvdo.FRAM" The following example shows how to analyze the voltage drop on net VDD in the power network. The power is analyzed by ICC and the voltage supply is 1.2V. prompt> analyze_fp_rail\ -nets VDD\ -analyze_power\ -voltage_supply 1.2 SEE ALSO create_fp_virtual_pad(2) Chapter 1: analyze_fp_rail 197 1-197 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 load_fp_rail_map(2) analyze_fp_rail 198 IC Compiler™ Tool Commands Version L-2016.03 analyze_library Provides library cell analysis according to the specified parameters. SYNTAX analyze_library [-multi_vth] [-ignore_dont_use_attribute] [-graph filename] [list_of_libraries] Data Types filename list_of_libraries file list ARGUMENTS -multi_vth Specifies that the analysis should report the multiple-threshold-voltage characteristics of the libraries. -ignore_dont_use_attribute Specifies that the library analysis should ignore the don't-use attributes when excluding the cells for analysis. -graph filename Specifies the file name for the graph which represent the library analysis. The graph is written in SVG format. list_of_libraries Specifies a list of .db files of libraries to be analyzed. The command assumes that each library is completely setup, which means the .db file location is included in the search_path variable setting, the don't-use cells are identified, the threshold voltage groups are labeled, etc. If a list of libraries is not specified, all target libraries, specified by using the target_library variable, are used by default. Chapter 1: analyze_library 199 1-199 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 DESCRIPTION This command allows you to compare the characteristics of different libraries. The -multi_vth option generates a report which compares the leakage per area versus timing characteristics of the cells of each threshold-voltage group in the specified libraries, excluding macros, black box cells, ICG cells, library cells flagged as don't-use, library cells with unknown LEF IDs, and library cells with a LEF ID that is not supported by all the main threshold-voltage groups among the libraries. If a cell does not have a threshold-voltage group label and it belongs to a library without a default threshold-voltage group label, the cell is classified by its parent library name. The command analyzes all the libraries that are loaded from the list of libraries provided with the command. If this list is empty, it loads the libraries specified by the target_library variable. The command reports the geometric average of the leakage power per area and timing of the valid cells in each threshold-voltage group, normalized by the values obtained for the threshold-voltage group with the smallest leakage power per area (flagged as Baseline). At the same time, for each threshold-voltage group, it reports the number of library cells flagged as don't-use cells, together with the total number of library cells classified as part of the threshold-voltage group. If a threshold-voltage group has all its cells flagged as don't-use cells, the command reports only its name. All the library cells are excluded from the report. If there is no or only one VT group defined each library file will be treated as a single VT group.If the command is not able to identify more than one VT groups,it will exit without reporting anything. : EXAMPLES The following example shows an analysis report generated by the analyze_library -multi_vth command: prompt> analyze_library -multi_vth ******************************************************************* Multi-VT Library Analysis Report Vth Group/Library Name Avg. Avg. (dont_use cells/total cells) Leakage Timing ******************************************************************* LVT31 (0/998) 1.83 1.57 SVT31 (0/998) 1.00 1.00 (Baseline) ULVT31 (0/998) 4.88 3.75 ******************************************************************* analyze_library 200 IC Compiler™ Tool Commands Version L-2016.03 SEE ALSO set_dont_use(2) remove_attribute(2) Chapter 1: analyze_library 201 1-201 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 analyze_logic_connectivity Invokes the Design Planning Data Flow Analyzer to assist in improving macro placement through connectivity tracing and analysis. SYNTAX status analyze_logic_connectivity ARGUMENTS This command has no arguments. DESCRIPTION This command launches the Design Planning Data Flow Analyzer, a macro-to-macro and macro-to-I/O connectivity analysis tool. The tool helps you determine the strength of connection between macros and between macros and I/Os as you navigate through the design with the GUI. For instance, you can run the "Macro or IO Weight Virtual Flyline Analysis" utility under the Display menu to open the tracing initialization window. After tracing is complete, you can select macros or I/Os in the layout window and display flylines with weight values. Flylines with the largest weight have the strongest connection between the objects. The Design Planning Data Flow Analyzer supports manual modification of the macro placement. You can perform a connectivity analysis and use the macro tool box or macro array editor to create a better macro placement. Before using the Design Planning Data Flow Analyzer, you should run the link, initialize_floorplan, and create_fp_placement commands on your design. Use the connectivity analysis results from the Design Planning Data Flow Analyzer to determine the macro-to-macro and macro-to-I/O connection strength. Refining the macro placement can produce a better standard cell placement, resulting in improved design timing and congestion. EXAMPLES The following command invokes the Design Planning Data Flow Analyzer: analyze_logic_connectivity 202 IC Compiler™ Tool Commands Version L-2016.03 prompt> analyze_logic_connectivity SEE ALSO create_fp_placement(2) Chapter 1: analyze_logic_connectivity 203 1-203 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 analyze_mv_design Analyzes multivoltage design connections. SYNTAX status analyze_mv_design [-level_shifter | -always_on] [-from_pin from_pin_list] [-to_pin to_pin_list] [-net target_net] [-verbose] Data Types from_pin_list to_pin_list target_net list list list ARGUMENTS -level_shifter Enables level-shifter analysis, which is based on load-to-driver pin arguments. -always_on Enables always-on analysis, which is based on the target net argument. -from_pin from_pin_list Specifies the driver (leaf cell pin or top-level port) for level-shifter analysis. -to_pin to_pin_list Specifies the loads (leaf cell pins or top-level ports) for level-shifter analysis. -net target_net Specifies the net for always-on analysis. -verbose Generates detailed information in the report. analyze_mv_design 204 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION The analyze_mv_design command performs multivoltage analysis and reports design details that can help you understand multivoltage-related issues. You can perform either level-shifter or always-on analysis by using the -level_shifter or -always_on option. The level-shifter analysis lists variable settings, power state table information, signal connections, and library availability information. The input for the level-shifter analysis is a pin-to-pin connection, which can be derived easily from the output of the check_mv_design command. The following variable settings are reported in the level-shifter analysis output: • Level Shifters on clock nets: • This setting is controlled by the auto_insert_level_shifters_on_clocks variable. It specifies the list of clock nets considered for automatic level shifter insertion. If the value is "all", every clock net it considered. The default is "all". • Level shifter on top nets: • This setting is controlled by the compile_no_new_cells_at_top_level variable. It controls the capability of the tool to insert level-shifter cells at top level. When the variable value is set to true, no new level-shifter cells are accepted. The default is false. • Level shifters allowed on leaf pin boundary: • This setting is controlled by mv_allow_ls_on_leaf_pin_boundary variable. When the setting is true, the tool is allowed to insert level shifters at any driver or load pins of a net, even if the pins are not on a power domain boundary. The default is false. The always-on analysis reports details about always-on constraints, related supply nets, relevant power state table settings, and library cell availability for the target net. EXAMPLES The following command analyzes a specified level-shifter connection: prompt> analyze_mv_design -level_shifter \ -from_pin gprs_nrestore -to_pin GPRs/A_reg_reg[0]/NRESTORE ... Level Shifter Analysis (1/1) from driver pin 'gprs_nrestore', to load pin 'GPRs/A_reg_reg[31]/ NRESTORE' ************************************* Level Shifter Analysis - Settings ************************************* Chapter 1: analyze_mv_design 205 1-205 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Level Shifters on clock nets: Level Shifters on top nets: Level Shifters allowed leaf pin boundary: all TRUE FALSE ******************************************************** Level Shifter Analysis - Driver and Load Related PST ******************************************************** Current Scope: ChipTop Supply Names: VDD, VSS, VDDG, Resulting Power States in this Scope: VDD| VSS|VDDG| drv: HV| GND| HV| drv: HV| GND| LV| ******************************************************** Level Shifter Analysis - Drive to Load Pins and Nets ******************************************************** From Pin: gprs_nrestore Related Supplies: VDD; VSS; To Pin: GPRs/A_reg_reg[31]/NRESTORE Related Supplies: VDDG; VSS; -------------------------------------------------------Pin: =domain boundary= Type: Constraint: gprs_nrestore; Design Port; Domain Boundary; not defined Net: gprs_nrestore; Domain: TOP; Local Fanout: 1; Primary Supply Nets: VDD, VSS, Available Supply Nets: VDD, VSS, VDDI, VDDIS, VDDG, VDDM, - Driver pin related supply nets (VDD, VSS) and load pin related supply nets (VDDG, VSS) are available in the domain 'TOP' - Driver pin related supply nets (VDD, VSS) are the primary supplies in the domain 'TOP' Pin: =domain boundary= Type: Constraint: GPRs/gprs_ret1; Hierarchical Port; Domain Boundary; not defined Net: GPRs/gprs_ret1; Domain: GPRS; Local Fanout: 608; Primary Supply Nets: VDDGS, VSS, Available Supply Nets: VSS, VDDG, VDDGS, - Neither driver pin related supply nets (VDD, VSS) nor load pin related supply nets (VDDG, VSS) are primary supplies in the domain 'GPRS' Pin: Type: GPRs/A_reg_reg[31]/NRESTORE; Cell Input Pin; Lib Cell: RSDFCSRHD2BWP; ********************************************* Level Shifter Analysis - Target Libraries ********************************************* analyze_mv_design 206 IC Compiler™ Tool Commands Version L-2016.03 Required pin-to-pin level shifter type: H2L All level shifters cells found in the target libraries: 12 Usable level shifter cells: 12 Usable level shifter cells of type H2L: 4 Lib Cell 'mylib_wc09072/LVHL' works in the required voltage range: Input voltage range [0.700 - 1.300] Output voltage range [0.700 - 1.300] Lib Cell 'mylib_wc0909/LVHL' works in the required voltage range: Input voltage range [0.700 - 1.300] Output voltage range [0.700 - 1.300] Lib Cell 'mylib_bc11088/LVHL' works in the required voltage range: Input voltage range [0.700 - 1.300] Output voltage range [0.700 - 1.300] Lib Cell 'mylib_bc1111/LVHL' works in the required voltage range: Input voltage range [0.700 - 1.300] Output voltage range [0.700 - 1.300] 1 SEE ALSO check_mv_design(2) Chapter 1: analyze_mv_design 207 1-207 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 analyze_rail Performs the targeted rail analysis on the specified nets using the PrimeRail tool. SYNTAX status analyze_rail nets [-integrity] [-voltage_drop] [-electromigration] [-inrush] [-min_path_resistance] [-primerail_script_file primerail_script | -script_only] [-result result_name] [-replace_result] [-decap] Data Types nets primerail_script result_name collection or list string string ARGUMENTS nets Specifies the power and ground nets to be analyzed. The tool considers all the switched or internal power nets of the specified power nets in the analysis. You do not need to explicitly specify the internal power nets. -integrity Performs connectivity checking on the specified power and ground nets. When enabled, the tool checks for missing vias, floating shapes, dangling vias, and floating pin shapes. It reports power and ground network integrity violations in a Milkyway error view. -voltage_drop Performs voltage drop analysis on the specified power and ground nets. analyze_rail 208 IC Compiler™ Tool Commands Version L-2016.03 When enabled, the tool checks for voltage drop violations. It generates a voltage drop map, parasitics map, and power map. In addition, it reports the voltage drop violations in a text file and in a Milkyway error view. -electromigration Performs electromigration analysis on the specified power and ground nets. When enabled, the tool analyzes the current density on the specified nets and identifies the segments with potential electromigration issues. It also calculates the electromigration violations based on the default rules that are loaded in the Milkyway design library. It generates an electromigration map and reports the electromigration violations in a Milkyway error view. -inrush Performs inrush current analysis on the specified power and ground nets. When enabled, the tool generates a Fast Signal Database (FSDB) file, voltage drop map, and parasitics map. -min_path_resistance Performs minimum path resistance analysis on the specified power and ground nets. When enabled, the tool generates a minimum path resistance map. -primerail_script_file primerail_script Specifies and uses an existing PrimeRail script to perform the PrimeRail run. This script is usually generated from an earlier analyze_rail run. When you use this option, all other options are ignored. For example, if you run the analyze_rail -voltage_drop -primerail_script_file myscript.tcl command, the tool ignores the -voltage_drop option. This option and the -script_only option are mutually exclusive. -script_only Generates the PrimeRail script and the input data for the target analysis, such as integrity, voltage drop, or electromigration, without actually executing the analysis run. This allows you to modify and reuse the run script as desired. This option and the -primerail_script_file option are mutually exclusive. -result result_name Specifies the name for the generated rail results cache. The default is RAIL_RESULT. Chapter 1: analyze_rail 209 1-209 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -replace_result Enables the tool to overwrite an existing rail results cache. If the specified rail results cache exists and you do not use this option, the command fails. DESCRIPTION This command prepares the data needed for PrimeRail rail analyses, and then calls PrimeRail to perform the specified rail analysis run. The supported rail analyses are voltage drop analysis, electromigration analysis, inrush current analysis, minimum path resistance analysis, and integrity checking. You can also use a previously generated PrimeRail command script to perform the analyses. The PrimeRail tool generates results data that can be queried in the IC Compiler tool, as well as map data that can be viewed in the IC Compiler GUI. The map files are saved to the output_dir/rail_map_data directory at the end of the run. PrimeRail also generates error views that capture violations found during the analysis. You can display the errors in the error browser, depending on the analysis options you chose. You can perform multiple analyses, such as voltage drop and electromigration, in a single run. When the -analysis_mode option is set to static with the set_rail_options command, the analyze_rail command performs static voltage drop and electromigration analyses and generates the following information: • Average voltage drop values in a map file • Average electromigration values in a map file • An error cell with average electromigration values Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example performs static voltage drop analysis: prompt> set_rail_options -default prompt> analyze_rail {VDD VDDV} analyze_rail 210 IC Compiler™ Tool Commands Version L-2016.03 The following example performs power and ground network integrity analysis: prompt> set_rail_options -user_defined_taps VDD_tap.txt prompt> analyze_rail VDD -integrity The following example performs power and ground network integrity analysis and voltage drop analysis: prompt> analyze_rail {VDD VSS} -integrity -voltage_drop The following example performs minimum path resistance analysis: prompt> set_rail_options -user_defined_taps VDD_tap.txt prompt> analyze_rail VDD -min_path_resistance EXAMPLES The following example performs static voltage drop analysis and stores the results in a rail result cache named static. prompt> analyze_rail {VDD VSS} -voltage_drop -result static The following example performs static voltage drop analysis and stores the results in a rail result cache named static. If there is an existing rail result cache named static, the tool replaces the results with the new results. prompt> analyze_rail {VDD VSS} -voltage_drop \ -result static -replace_result SEE ALSO report_rail_options(2) set_rail_options(2) remove_rail_integrity_layout_check_strategy(2) report_rail_integrity_layout_check_strategy(2) set_rail_integrity_layout_check_strategy(2) verify_rail_integrity(2) write_rail_options(2) open_rail_result(2) close_rail_result(2) rail_indesign_shell_mode(3) Chapter 1: analyze_rail 211 1-211 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 analyze_subcircuit Invokes circuit simulation on a subcircuit of the current design. This command is suitable for analyzing clock meshes. SYNTAX status analyze_subcircuit [-name string] [-to net_or_pins] [-analysis_mode max | min | max_then_min] [-effort low | medium | high] [-simulator name_of_simulator] [-spice_header_files list_of_files] [-driver_subckt_files list_of_files] [-starrcxt_map_file file_name] [-configuration list_of_scenario_configurations] [-output_directory directory] [-input_rise_transition transition_time] [-input_fall_transition transition_time] [-period pulse_duration] [-clock clock_name] [-no_extraction] [-from pins] [-tie_high pins_or_nets] [-tie_low pins_or_nets] [-zero_resistance nets] [-reset_annotation] [-purge_all_annotations] [-projected_loads load_configuration] [-projected_drivers driver_configuration] [-projected_input_skew input_skew_configuration] [-probe_wires net] [-verbose] [-starrcxt_nxtgrd_file ] Data Types string net_or_pins pins name_of_simulator list_of_files list_of_scenario_configurations directory transition_time clock_name pins pins_or_nets nets analyze_subcircuit name_of_simulator collection of one net or multiple string list list path float > 0.0 string collection collection collection 212 IC Compiler™ Tool Commands load_configuration driver_configuration input_skew_configuration Version L-2016.03 list list list ARGUMENTS -name string Specifies the name of this subcircuit, which is used to distinguish it from other subcircuits in the same design. The string is used to construct both circuit elements and file names, so it must only contain alphanumeric characters and underscores. With that restriction, you can use any name, but if a clock is being analyzed you should use the name of the clock (if this is unique). Many files are generated based on this name. -to net_or_pins Specifies a collection of input pins that are driven by the circuit. If you specify a single net, the input pins associated with the net are included as load pins. (In earlier releases, the option was known as -load.) -analysis_mode max | min | max_then_min Specifies how buffer delays are calculated. If set to max, the delays for the buffers are calculated using their maximum delay value. If set to min, their minimum delay value is used. If set to max_then_min, maximum analysis is performed, followed by minimum analysis. You can use this option only if the TLUPlus specifies two corners. -effort low | medium | high Specifies the precision of the analysis done by the simulator. The effort setting is reformatted to suit the input syntax of the circuit simulator and sent as a parameter to the circuit simulation engine to control the precision of its analysis. The default is low. -simulator name_of_simulator Specifies which simulator to use. Only hsim, hspice, hspice64, and nanosim simulators are supported. The default is nanosim. The simulator you want to use must be available as a working, and properly licensed Linux command in your shell path. You may need to adjust the path in your .cshrc or .login file. -spice_header_files list_of_files Specifies the locations of the spice device models of the transistors. Spice device models are needed for all the transistors. You specify the device models with the file path, and the file paths are copied into the simulator input. If you specify multiple files, they are included in the order specified. Note that file locations are relative to the current working directory (not relative to the temporary working directory, as was done in some earlier versions of mesh analysis). Chapter 1: analyze_subcircuit 213 1-213 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -driver_subckt_files list_of_files Specifies the locations of the subcircuit models of the buffers in the clock mesh tree. The circuit simulator requires a subcircuit model for all the buffers in the clock mesh tree. You specify the subcircuit models with the file path, and the file paths are copied into the simulator input. If you specify multiple files, they are included in the order specified. Note that file locations are relative to the current working directory. -starrcxt_map_file file_name Specifies the file name that contains the physical layer mapping information between the input database and the nxtgrd file. This file maps every TCAD process layer to a corresponding layer of layout database. This is a mandatory option if you want to use StarRC for extraction. -configuration list_of_scenario_configurations Specifies the SPICE settings for each scenario to be analyzed. The list can be of any length. The format of the list_of_scenario_configurations argument is -configuration { {-scenario_name scenario [-max_driver_subckt_files max_files] [-max_spice_header_files header_max] [-min_driver_subckt_files min_files] [-min_spice_header_files header_min] } ... } The -scenario_name option is a required option and the specified name must be the same as the name used in the create_scenario command that created the scenario. If you do not specify the -max_driver_subckt_files or -min_driver_subckt_files option for a scenario, that scenario uses the files specified in the -driver_subckt_files command option. If you do not specify the -max_spice_header_files or -min_spice_header_files option for a scenario, that scenario uses the files specified in the -spice_header_files command option. -output_directory directory Specifies the directory used to contain the simulation driving files and the results of the simulation. If you do not specify this option, the -name option is used for the name of the output directory. If no directory by this name exists, one is created. Because many files are created in this directory, you must specify a directory with write permissions and sufficient disk space. analyze_subcircuit 214 IC Compiler™ Tool Commands Version L-2016.03 -input_rise_transition transition_time Specifies the rise transition time for the root of the subcircuit. This value must be greater than zero. The parameter overrides any rise transition time otherwise observable in the circuit. If you do not specify this option, the tool considers all the clocks found at the root of the subcircuit, and uses the slowest rise transition time. -input_fall_transition transition_time Specifies the fall transition time for the root of the subcircuit. This value must be greater than zero. The parameter overrides any fall transition time otherwise observable in the circuit. If you do not specify this option, the tool considers all the clocks found at the root of the subcircuit, and uses the slowest fall transition time. -period pulse_duration Controls the waveform (width of the pulse) applied at the root node. This value must be greater than zero. If you do not specify this option, the tool uses a pulse with half the width of the relevant clock period. In general, you should not have to change this option. -clock clock_name Specifies for which clock domain the analysis should be done. This especially helps to select the appropriate clock path when multiple clocks arrive at pins of a cell in the clock mesh circuitry. -no_extraction Controls whether the tool runs the extract_rc command to extract parasitics before writing the simulation driving files. By default, the tool runs the extract_rc command. If your design already has current parasitic information written in the output directory from a previous run, you can suppress extraction to save time. -from pins Specifies the startpoint to analyze a circuit. If you do not specify this option, the command automatically determines a single driving point of a clock tree based on the load of the clock tree. If you design the tree from the loads up, specify the pins to be driven for timing purposes. You must specify this option if you are analyzing circuits with complex cells such as AND gates, multiplexers, and integrated clock-gating (ICG) cells. (In earlier releases, This option was known as -inputs.) Chapter 1: analyze_subcircuit 215 1-215 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -tie_high pins_or_nets Holds the specified nets (or the nets attached to the specified pins) at logic 1 during simulation. If you specify a net, it is equivalent to specifying all the pins on that net. This option is for advanced users only and might be useful for enable pins. -tie_low pins_or_nets Holds the specified nets (or the nets attached to the specified pins) at logic 0 during simulation. If you specify a net, it is equivalent to specifying all the pins on that net. This option is for advanced users only and might be useful for disable pins. -zero_resistance nets Sets the wire resistance for the specified nets to zero to perform "what if" analysis. This option is for advanced users and can be used to estimate the amount of skew that has been introduced by wire resistance. -reset_annotation Removes the mesh timing annotation data from the previous analyze_subcircuit session from a single net. You must use this option together with the -to option. -purge_all_annotations Removes the mesh timing annotation data from the previous analyze_subcircuit session from the entire design. -projected_loads load_configuration Specifies additional loads that are to be included in the simulation in accordance with the configuration list. The configuration list defines projected load groups that are included in the simulation. You can define any number of projected load groups in the configuration list. The format of the projected loads configuration list is -projected_loads { {-within rectangle [-capacitance capacitance_value] [-load_pin library_pin -number_of_loads positive_integer] [-load_wire_capacitance capacitance_value] }... } The -within option is required for each projected load group. It defines the mesh elements to which additional capacitance is added. Only mesh elements within the specified rectangle are in the load group. analyze_subcircuit 216 IC Compiler™ Tool Commands Version L-2016.03 You can specify the additional capacitance in the following ways: * Use the -capacitance option to specify a capacitance value. This value is added to all mesh elements in the load group. * Use the -load_pin option to specify a load pin. This is typically the name of a buffer or an integrated clock-gating cell (ICG). The tool multiplies the capacitance attribute of the specified pin by the value of the -number_of_loads option and adds this value to all mesh elements in the load group. The -number_of_loads option estimates the number of integrated clock-gating cells (ICGs) and buffer loads found within the specified region. * Use the -load_wire_capacitance option to specify a small capacitance value that is added to the value associated with each load pin to model the comb routing to the pin. The specified capacitance is added to the load pin capacitance, which is calculated by adding the load pin capacitance to the wire capacitance times the number of loads. This capacitance is modeled as being distributed uniformly over the mesh straps in the specified region. If you specify multiple projected load region statements, their effect is cumulative. That is, the capacitance at a point is impacted by the sum of all the projected load statements that overlap it. When constructing the projected groups configuration for a hierarchical design, you can get the bounding box of a cell or soft macro from its bbox attribute. You can get the capacitance of a library pin, for your own reference, from its capacitance attribute. For example, you can define two projected load regions with this syntax: analyze_subcircuit -name testc ... -projected_loads { {-within {{100.0 300.5} {800.0 440.6}} -capacitance 0.3e-12 -load_pin tcbn90ghphvtwc/BUFFHVTD24 -load_wire_cap 0.001e-12 -number_of_loads 1000} {-within {{l900.0 2300.5} {3800.0 2440.6}} -load_pin tcbn90ghphvtwc/BUFFHVTD24 -number_of_loads 1000} } -projected_drivers driver_configuration Specifies additional drivers that are to be included in the simulation in accordance with the configuration list. The configuration list defines projected drivers that are included in the simulation. You can define any number of projected drivers in the configuration list. To run analyze_subcircuit, your design must first have a mesh driver at each location where a driver might be needed. With this option, you can change the number and type of drivers seen by the simulation. This allows you to experiment with various drivers to Chapter 1: analyze_subcircuit 217 1-217 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 get the set of drivers that is sufficient to drive your design reliably without overdriving the mesh and wasting power and area. The configuration list defines the projected drivers that are included in the simulation. You can define any number of projected drivers in the configuration list. The format of the projected drivers configuration list is -projected_drivers { {-within rectangle | -nearest point [-replicate integer] [-projected_lib_cell lib_cell] }... } To identify the affected mesh drivers, you must specify either the -within option or -nearest option for each driver group. When you use the -within option, the specification affects the mesh drivers within the specified rectangle. When you use the -nearest option, the specification affects the mesh driver that is nearest to the specified point. The -nearest option might be effective for tuning the design based on the results of a previous analysis. You can use the following options to specify additional drivers: * -replicate When you use this option, the simulation model includes the specified number of drivers in parallel for each affected mesh driver. For example, if you specify -replicate 4, the SPICE simulation sees your original mesh driver plus three new ones in parallel. Note that these driver cells are not actually added to the design and they do not have locations or routing associated with them. The only tool that sees them is the SPICE simulation. You should not specify a value of 0. If you do, the SPICE simulation does not see the original cell; that is, part of the mesh that is not driven. However, any routing parasitics associated with the comb route from its output pin are retained regardless of the value of this parameter. Because mesh drivers are typically close to the mesh and are therefore short and of low capacitance, this should not be a major inaccuracy. * -projected_lib_cell lib_cell When you use this option, the simulation uses the specified library cell instead of the actual mesh driver. If you specify multiple projected driver groups and their geometric regions overlap on a driver, they are processed in the order they appear, and only the final one impacts the driver. This can be used to specify a projected driver for the entire design in one large region and to specify additional driver sizing in a series of small regions. For example, you can define two projected driver groups with this syntax: analyze_subcircuit 218 IC Compiler™ Tool Commands Version L-2016.03 analyze_subcircuit -name testc ... -projected_drivers { {-within {{100.0 300.5} {800.0 440.6}} -replicate 4} {-within {{l900.0 2300.5} {3800.0 2440.6}} -projected_lib_cell tcbn90ghphvtwc/BUFFHVTD24} } -projected_input_skew input_skew_configuration Specifies that simulation is to model skew on the input pins of the mesh drivers. One of the major motivations for using a clock mesh is to reduce skew in the presence of on-chip variation (OCV) or other imperfections in a standard clock tree. Because the premesh tree design flow generally produces a low-skew tree, to determine how effective the mesh would be at skew reduction is difficult. Because skew reduction is determined mainly by the width and pitch of the mesh, you are likely to create excess mesh straps unless you perform OCV analysis. You can use the -projected_input_skew option to calibrate the effectiveness of the mesh by simulating the effect of delay on the mesh driver inputs in one or more regions. The worst case OCV probably occurs when a clock tree driver is close to the root of the premesh tree that has a very large additional delay, which might make half of what the chip sees as a large mesh driver input delay. If you consider this case too pessimistic, you might want to take only one quarter of the chip; that is, probably the quadrant with the largest load. Add delays to the mesh driver inputs in that quadrant by one typical gate delay. The skew configuration list defines the delay to simulate on the mesh driver inputs in a region. You can define any number of input skew groups in the configuration list. The format of the skew configuration list is -projected_input_skew { {-within rectangle -rise_delay time -fall_delay time [-rise_transition time] [-fall_transition time] }... } The -within option is required for each input skew group. It defines the mesh drivers for which to model skew. Only mesh drivers within the specified rectangle are in the input skew group. If you specify multiple input skew groups, the specified geometric regions must not overlap. You can specify the following delay values for each input skew group: * -rise_delay Delays the input waveform for the rising edge by the specified time. You must specify this value for each input skew group. Chapter 1: analyze_subcircuit 219 1-219 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 * -fall_delay Delays the input waveform for the falling edge by the specified time. You must specify this value for each input skew group. * -rise_transition Specifies the rising transition time for the input waveform. If you do not specify this option, the simulation uses the rising transition time of the root of the tree. * -fall_transition Specifies the falling transition time for the input waveform. If you do not specify this option, the simulation uses the falling transition time of the root of the tree. For example, if the mesh has an active area of 3000 by 4000 microns with the largest loads in the lower right quadrant and a gate delay is 0.025 ns, define the input skew group as follows: analyze_subcircuit -name testc ... -projected_input_skew { {-within {{1500.0 0.0} {3000.0 2000}} -rise_delay 0.025 -fall_delay 0.020 -rise_transition 0.1 -fall_transition 0.08} } -probe_wires net Specifies that extraction is to insert probe points at regular intervals along the wires of the specified net, which is typically a clock mesh net. You can specify only a single net. These probe points allow analysis to separate the skew on the mesh from the skew on the loads, which is typically larger and more random, so each can be addressed and minimized appropriately. Circuit performance in a clock mesh is determined by the efficacy of the drivers, mesh straps, and the routing from the mesh straps to the loads. Sometimes it is useful to distinguish between the delays and skew on the mesh straps and the skew induced by the comb routing to the load pins. The -probe_wires option causes the extraction to insert probe points along the long wires associated with the specified net. Short wires do not have probe points added. The spacing between probe points is determined by the tool. After simulation, the tool prints out a summary of the maximum, minimum, and average latency and transition times observed on these probe points. This summary might be useful for tuning the distribution of mesh drivers and adjusting the widths of the mesh straps. Only one net might be so instrumented. You can use this option only when you use StarRC for extraction. -verbose Displays the extraction and circuit simulation messages to the console. By default, these messages are redirected into log files in the output directory. analyze_subcircuit 220 IC Compiler™ Tool Commands Version L-2016.03 -starrcxt_nxtgrd_file Specifies the tcad grd file that contains conductor sheet resistance and models for 3-D parasitic capacitance calculation for StarRC. This is a mandatory option if you want to use StarRC for extraction. You need to specify one file for every scenario corner in the proper order in the list. DESCRIPTION Within IC Compiler, timing prediction is generally done with static timing analysis. But for some purposes, such as clock meshes, it is necessary or desirable to use circuit simulation. This command generates the necessary files to run a circuit simulator, invokes the simulator, and reads the output of simulation back into your design as annotations for delay and transition times. By default, the analyze_subcircuit command extracts and simulates the circuit as it stands. You can also use this command to perform "what if" analysis to see how the mesh would behave with additional loads or different drivers. This is especially important in large hierarchical designs where the turnaround time of physical synthesis can be long and the need for upfront analysis is greater. For details about specifying additional loads, see the description for the -projected_loads option. For details about specifying additional drivers, see the description for the -projected_drivers option. For details about modeling input skew, see the description for the -projected_input_skew option. Files Inputs required: You must have a circuit-level model for each of the buffer gates in your clock tree, and a transistor model for each of the transistors in the circuit models. Files generated: This command creates the output directory if it is not already present, and populates it with files for simulation and annotation. These include the circuit files, command files, and measurement files. One of these files is a shell script that is used to invoke the circuit simulator. Simulation produces many output and log files, which also populates the directory. This command then processes those output files and generates an annotation file. This file can be sourced into your design, to update the delays and transition times of your subcircuit to match the circuit simulation results. Limitations The subcircuit to be is analyzed is modeled as being by a single signal. That signal is applied at the unique point, determined automatically by traversing the circuit from the load pins, Chapter 1: analyze_subcircuit 221 1-221 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 through any buffers, and stopping at an input port or a multiple input gate. The circuit to be simulated must not have any "side inputs." It does timing from one point to many. If you want to analyze a set of mesh drivers whose inputs are not yet connected, you can do this by using the -from option and listing all the mesh driver input pins. For the purpose of simulation, these are all driven in parallel, with no skew among them. This type of simulation is only for early exploration, before the clock tree "above" the mesh drivers has been designed. Buffers that are "shorted together" in a mesh or other structure are supported. The resistance and capacitance of the mesh is determined by extraction, and is expressed in a parasitic input file with values obtained the IC Compiler extractor or StarRC. The entire subcircuit must be in the top level of the current Milkyway design. It must not extend into a block or subdesign. The underlying circuit simulator is not case-sensitive, so elements "buff_27" and "BUFF_27" are indistinguishable, and the design must not contain both names. For similar reasons, circuit elements should not contain the dot character ".". NanoSim simulator generally models coupling among the elements of the clock tree itself. The simulation of the tree accepts a transition time for the root gate. If the tree is driven by multiple clocks and the input signal has widely divergent transition times when operating in the various modes, this effect are not modeled. The loads of the flip-flops are modeled by lump capacitance, not by active transistor models. If this operation is done before the signal nets have been routed, which would normally be the case, the final gate placement, routing geometry and detailed placement might not match the geometry in the final chip. There is no modeling of IR drop in the power or ground wires. The actual VSS and VDD used for each buffer gate is assumed to be static and is determined before simulation starts. For more information on simulation see the NanoSim User Guide the HSIM User Guide, or HSPICE documentation. Multicorner-Multimode Support This command uses information from all active scenarios. EXAMPLES In the following example, a clock tree called clk1 has been implemented with a set of specified library references to be used as buffers, driving a clock mesh net called mesh_net. After this command has been run, the report_timing and report_clock_tree commands reflects the delays and transitions observed in the circuit simulation. prompt> analyze_subcircuit -name clk1 -to mesh_net \ analyze_subcircuit 222 IC Compiler™ Tool Commands Version L-2016.03 -output_directory clk_working \ -spice_header_file original/models.sp \ -driver_subckt_file {original/drivers.sp extra_cells.sp} The following command uses the HSIM simulator for analysis. prompt> analyze_subcircuit -name clk1 -to mesh_net \ -output_directory clk_working \ -spice_header_file original/models.sp \ -simulator hsim \ -driver_subckt_file {original/drivers.sp extra_cells.sp} In the following example, a clock tree called clk2 has been implemented with a set of specified library references used as buffers driving a set of pins, but not using a mesh net. prompt> set load_pins \ [get_pins {addr_reg[27]/CP S45_reg[6]/CP S47_reg[13]/CP \ S37_reg[10]/CP}] prompt> analyze_subcircuit -name addr -to $load_pins \ -spice_header_file original/models.sp \ -driver_subckt_file original/drivers.sp -effort high If each scenario has a different SPICE file or header file, you should use the -configuration option to specify these files, as shown in the following example. prompt> analyze_subcircuit -to clk \ -driver_subckt_files max_spice_model \ -spice_header_files header_file \ -config { {-scenario_name scenario1 -max_driver_subckt_files max_spice_model_1 -max_spice_header_file max_header_file_1} {-scenario_name scenario2 -max_spice_header_file max_header_file_2} } SEE ALSO create_clock_mesh(2) add_clock_drivers(2) compile_premesh_tree(2) route_mesh_net(2) create_scenario(2) compile_clock_tree(2) set_extraction_options(2) report_clock_tree(2) set_annotated_delay(2) set_annotated_transition(2) Chapter 1: analyze_subcircuit 223 1-223 IC IC Compiler™ Compiler™ Tool Tool Commands Commands analyze_subcircuit L-2016.03 Version L-2016.03 224 IC Compiler™ Tool Commands Version L-2016.03 append_to_collection Adds objects to a collection and modifies a variable. SYNTAX collection append_to_collection [-unique] var_name object_spec Data Types var_name object_spec collection list ARGUMENTS -unique Indicates that duplicate objects are to be removed from the resulting collection. By default, duplicate objects are not removed. var_name Specifies a variable name. The objects matching object_spec are added into the collection referenced by this variable. object_spec Specifies a list of named objects or collections to add. DESCRIPTION The append_to_collection command allows you to add elements to a collection. This command treats the variable name given by the var_name option as a collection, and it appends all of the elements in object_spec to that collection. If the variable does not exist, it is created as a collection with elements from the object_spec as its value. If the variable does exist and it does not contain a collection, it is an error. The result of the command is the collection that was initially referenced by the var_name option, or the collection created if the variable did not exist. Chapter 1: append_to_collection 225 1-225 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 The append_to_collection command provides the same semantics as the common use of the add_to_collection command; however, this command shows significant improvements in performance. An example of replacing the add_to_collection command with the append_to_collection command is provided below. For example, set var_name [add_to_collection $var_name $objs] Using the append_to_collection command, the command becomes: append_to_collection var_name $objs The append_to_collection command can be much more efficient than the add_to_collection command if you are building up a collection in a loop. The arguments of the command have the same restrictions as the add_to_collection command. For more information about these restrictions, see the add_to_collection man page. EXAMPLES The following example from PrimeTime shows how a collection can be built up using the append_to_collection command: prompt> set xports Error: can't read "xports": no such variable Use error_info for more info. (CMD-013) prompt> append_to_collection xports [get_ports in*] {in0 in1 in2} prompt> append_to_collection xports CLOCK {in0 in1 in2 CLOCK} SEE ALSO add_to_collection(2) foreach_in_collection(2) index_collection(2) remove_from_collection(2) sizeof_collection(2) append_to_collection 226 IC Compiler™ Tool Commands Version L-2016.03 apply_fast_pba_analysis Performs fast path-based slack adjustment to reduce pessimism during timing analysis using advanced on-chip variation (AOCV) analysis. SYNTAX status apply_fast_pba_analysis [-check_only file_name] Data Types file_name string ARGUMENTS -check_only file_name Writes the set_path_margin timing exceptions to the specified file without executing the command or applying any timing adjustments to the design. You can source the generated file to actually apply the timing adjustments. DESCRIPTION This command performs fast path-based advanced on-chip variation (AOCV) analysis to reduce pessimism of the timing analysis. Advanced on-chip variation (AOCV) analysis is an optional method of pessimism reduction that applies varying timing derating factors for different paths. It applies higher derating values to short paths and lower derating values to long paths. To invoke AOCV, you set the timing_aocvm_enable_analysis variable to true and read in a set of derating tables with the read_aocvm command. By default, AOCV considers the shortest path leading up to each endpoint to determine the derating value for that endpoint. It applies that same derating value to all paths leading up to that endpoint, including longer paths, giving pessimistic results for those paths. When you use AOCV, you can further reduce pessimism by invoking the fast path-based option of AOCV after you have used the route_opt command. This option selects a limited number of worst paths leading up to each endpoint for analysis, and calculates a separate (less pessimistic) derating value for each path in isolation from other paths, based on the Chapter 1: apply_fast_pba_analysis 227 1-227 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 actual number of stages in the path. The resulting slack from this calculation is larger (or less negative) than for the default AOCV calculation. The fast path-based option then executes a set_path_margin on each path, which adjusts the slack to a less pessimistic value for the analyzed path. You can apply the fast path-based option of AOCV by executing the apply_fast_pba_analysis command. By default, the command applies the set_path_margin commands immediately. Alternatively, you can use -check_only file_name option to write the set_path_margin commands to a file, without applying them. You can then examine the file and possibly execute it as a script using the source command. The generated margin values, if applied to the design, are reported by the report_timing command. You can see the path_margin values in the timing report if they have been applied. Another way to invoke fast path-based AOCV analysis is to enable it with the set_route_opt_strategy -fast_pba_analysis true command. In that case, the analysis and timing adjustment occur during execution of the route_opt -incremental or focal_opt command. The reduced pessimism comes at a cost of runtime and memory. You can control the tradeoff between accuracy and runtime/memory by setting the analysis options using the set_fast_pba_analysis_options command. To remove all the generated margin values, you can use remove_fast_pba_analysis command. Multicorner-Multimode Support This command uses information from all active scenarios. EXAMPLES The following example performs fast path-based AOCV analysis on the 20 worst paths for each of the 5000 worst violating endpoints. prompt> set_fast_pba_analysis_options -num_endpoints 5000 -paths_per_endpoint 20 prompt> apply_fast_pba_analysis The following example performs fast path-based analysis and writes the resulting set_path_margin commands to a file, without applying them to the design. prompt> apply_fast_pba_analysis -check_only my_margin_setings.tcl apply_fast_pba_analysis 228 IC Compiler™ Tool Commands Version L-2016.03 SEE ALSO remove_fast_pba_analysis(2) set_fast_pba_analysis_options(2) set_path_margin(2) read_aocvm(2) timing_aocvm_enable_analysis(3) Chapter 1: apply_fast_pba_analysis 229 1-229 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 apropos Searches the command database for a pattern. SYNTAX string apropos [-symbols_only] pattern Data Types pattern string ARGUMENTS -symbols_only Searches only command and option names. pattern Searches for the specified pattern. DESCRIPTION The apropos command searches the command and option database for all commands that contain the specified pattern. The pattern argument can include the wildcard characters asterisk (*) and question mark (?). The search is case-sensitive. For each command that matches the search criteria, the command help is printed as though help -verbose was used with the command. Whereas help looks only at command names, apropos looks at command names, the command one-line description, option names, and option value-help strings. The search can be restricted to only command and option names with the -symbols_only option. When searching for dash options, do not include the leading dash. Search only for the name. apropos 230 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES In the following example, assume that the get_cells and get_designs commands have the -exact option. Note that without the -symbols_only option, the first search picks up commands which have the string "exact" in the one-line description. prompt> apropos exact get_cells # Create a collection of cells [-exact] (Wildcards are considered as plain characters) patterns (Match cell names against patterns) get_designs [-exact] patterns # Create a collection of designs (Wildcards are considered as plain characters) (Match design names against patterns) real_time # Return the exact time of day prompt> apropos exact -symbols_only get_cells # Create a collection of cells [-exact] (Wildcards are considered as plain characters) patterns (Match cell names against patterns) get_designs [-exact] patterns # Create a collection of designs (Wildcards are considered as plain characters) (Match design names against patterns) SEE ALSO help(2) Chapter 1: apropos 231 1-231 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 archive_design Archives the specified designs to a new location. SYNTAX status archive_design -source library_path -design design_names -archive archive_directory [-complete] [-overwrite] [-include views | -exclude views] [-include_ref_lib paths | -exclude_ref_lib paths] [-update_archive] Data Types library_path design_names archive_directory views paths string string string string string ARGUMENTS -source library_path Specifies the path to the Milkyway library that contains the specified designs. This is a required option. -design design_names Specifies the Milkyway designs to archive. To archive multiple designs, enclose the list of design names in quotation marks and separate the names with space characters. To archive all designs in the main library, use the asterisk character (*). This is a required option. archive_design 232 IC Compiler™ Tool Commands Version L-2016.03 By default, the latest version of the design is archived, but you can specify a specific version. For example, to archive version 3 of the top_design Milkyway design, use the following option: -design top_design;3 -archive archive_directory Specifies the path to the new archive directory. This is a required option. -complete Archives all designs in the reference libraries, even if they are not used in the specified designs. Using this option allows the archived design to be further optimized later, if needed, using the additional cells saved in the archive. By default, the command archives cells in the reference libraries only if they are used by the designs being archived. This option cannot be used with the -include, -exclude, or -update_archive options. -overwrite Overwrites the existing archive destination. This option cannot be used with the -update_archive option. -include views Specifies the views of the design to archive. You can use this option to reduce the runtime and disk usage for archiving when you do not need all the views. For example, to save only the FRAM view, use the following option: -include FRAM By default, all views of a design are archived. This option cannot be used with the -complete or -exclude options. -exclude views Specifies the views of the design not to archive (all other views are archived). You can use this option to reduce the runtime and disk usage for archiving when you do not need all the views. For example, to save all views except the err view, use the following option: -exclude err Chapter 1: archive_design 233 1-233 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 By default, all views of a design are archived. This option cannot be used with the -complete or -include options. -include_ref_lib paths Specifies the reference libraries to be included in the archive. All others are excluded. You specify the references libraries as a list of paths separated by either commas or spaces. Paths that do not exist or that do not point to directories trigger a warning message and are ignored. Reference libraries that are located in or under one of the valid paths are included in the archive directory. All other reference libraries are excluded. You can use this option to reduce runtime and disk usage of this command when not all reference libraries need to be copied. If you do not specify this option or the -exclude_ref_lib option, all reference libraries that contain designs used by the top-level design being archived are copied. This option is mutually exclusive with the -exclude_ref_lib option. -exclude_ref_lib paths Specifies the reference libraries to be excluded from the archive. You specify the references libraries as a list of paths separated by either commas or spaces. Paths that do not exist or that do not point to directories trigger a warning message and are ignored. Reference libraries that are located in or under one of the valid paths are excluded from the archive directory. All other reference libraries that contain designs used by the top-level design being archived are included. If you do not specify this option or the -include_ref_lib option, all reference libraries that contain designs used by the top-level design being archived are copied. This option is mutually exclusive with the -include_ref_lib option. -update_archive Updates an existing archive. When you specify this option, new or modified cells since the previous archive operation are copied over to the existing archive, while cells that have not been modified remain unchanged. This option cannot be used with the -complete or -overwrite options. DESCRIPTION This command copies the specified Milkyway design, logic libraries, and TLUPlus files and creates a design_setup.tcl file in the specified archive directory. The purpose is to extract one or more designs of interest from a library that contains many designs, leaving you with a smaller, self-contained set of files for that design. archive_design 234 IC Compiler™ Tool Commands Version L-2016.03 Unless otherwise specified, the archive_design command copies the latest version of all views of the designs being archived, and any subdesigns that are referenced directly or indirectly by these designs. Note that the LM view is not archived. If you specify the -complete option, all designs contained in the archived reference libraries are copied. The main library and all needed reference libraries are placed in separate directories under the design subdirectory. The library references maintained in the archived libraries are updated to reflect the new locations of the reference libraries in the archive location. The archive_design command uses the search_path, target_library, and link_library variables to determine the logic .db libraries. The command also copies the minimum libraries that are set by using the set_min_library command. If the variables are not set or the files are not found, the logic libraries are not copied to the archive location. The logic libraries are stored in the logic_db subdirectory. The archive_design command archives the TLUPlus files that are defined with the set_tlu_plus_files command. If no values have been specified or the files are not found, the TLUPlus files are not copied. The TLUPlus files are stored in the tlu_plus subdirectory. The design_setup.tcl file contains variable initializations that you can be sourced by the user. It contains the values of the application variables from the current session, similar to the output of the write_app_var command. The variable settings in the design_setup.tcl file can be modified from the current session values to reflect the new archive location. This file is stored in the root directory of the archive location. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example shows a typical usage of the archive_design command: prompt> source ~/my_designs/ORCA/orig_data/design_setup.tcl prompt> archive_design -source ~/my_designs/ORCA/design \ -design "icc_top_route icc_top_place" -archive my_archive \ -include "FRAM" The following example includes any reference libraries under the /work/ref_libs/ macro_cell_libraries directory and the A.ref.mw reference library if they define cells used in the design being archived. All other reference libraries are not included in the archive directory. Because the -complete option is specified, the included reference libraries are copied with all of their cells. Chapter 1: archive_design 235 1-235 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 prompt> archive_design -source ~/my_designs/ORCA/design \ -design "icc_top_route icc_top_place" \ -archive my_archive -complete \ -include_ref_lib "/work/ref_libs/macro_cell_libraries \ ../ref_libs/A.ref.mw" SEE ALSO set_tlu_plus_files(2) search_path(3) target_library(3) link_library(3) set_min_library(2) write_app_var(2) archive_design 236 IC Compiler™ Tool Commands Version L-2016.03 assign_flip_chip_nets Creates or reconnects nets between flip-chip drivers to bumps. SYNTAX status assign_flip_chip_nets [-matching_type matching_type_list] [-prefix prefix] [-uniquify num_to_uniquify] [-multiple_terminal_pins pin_name_or_collection] [-terminal_layers layer_name_or_collection] [-terminal_names terminal_name_list] [-eco] Data Types matching_type_list prefix num_to_uniquify pin_name_or_collection layer_name_or_collection terminal_name_list list string integer collection collection list ARGUMENTS -matching_type matching_type_list Specifies a list of matching types for matching the flip-chip driver and bump pins. Only driver and bump pins with identical personalities are matched. Each matching type is a string name. By default, the tool processes all matching types. -prefix prefix Specifies a prefix string name. Use this option when a new net must be generated to connect a flip-chip driver and a bump. The default prefix is "fcNet". -uniquify num_to_uniquify Specifies whether to and how to uniquify the driver nets inside a driver group. A driver group contains multiple drivers with flip-chip ports that are connected to the same net. The num_to_uniquify argument accepts integers from -n to 0 to n. n means n-to-1 uniquify and to assign one bump for every n flip-chip driver ports. Chapter 1: assign_flip_chip_nets 237 1-237 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 1 means one-to-one uniquify and to assign one bump for each flip-chip driver port. The tool creates new nets by using the original net name followed by "_#". For example, VDD net will be uniquely named to VDD, VDD_1, VDD_2, and so on. 0 means "do not uniquify" and to assign only one bump for the multiple flip-chip driver ports. The original driver net is reused. -n means 1-to-n connection and to assign n bumps for each flip-chip driver port. The default behavior is one-to-one uniquify. To form a 1-to-n connection, first specify the assign_flip_chip_nets -uniquify 1 command, followed by the assign_flip_chip_nets -uniquify -n command. -multiple_terminal_pins pin_name_or_collection Specifies the pins that have multiple terminals. The tool assigns one bump to each terminal of the specified pins. Specify the pins either by using an object access command, such as get_pins, or by specifying the pin name patterns in a Tcl list. -terminal_layers layer_name_or_collection Specifies the layers to use in the multiple terminal pin assignment. Only the terminals on the given layers will be assigned a bump, the rest will not be assigned. This option is only effective when used together with the -multiple_terminal_pins option. By default, all terminals of the multiple terminal pins are assigned a bump. Specify the layer by using either the get_layers command or by specifying the name of the layer. -terminal_names terminal_name_list Specifies specific terminals of flip-chip driver pins to be assigned. This option cannot be used together with the -multiple_terminal_pins or -terminal_layers options. Each terminal name must be specified by using the following syntax: "cell_instance_name/ pin_name:terminal_name". Pattern matching with wildcards is not supported. If you use this option, each specified terminal is counted as an individual driver pin. The flip-chip driver pins that do not occur in the list are assigned as usual. -eco Assigns flip-chip nets only for unconnected drivers or bumps or both, and keeps the existing flip-chip connections. DESCRIPTION Based on the current placement results, you can use this command to locate the nearest unassigned bumps, match them to flip-chip drivers using the shortest wire length method, and automatically assign new logical nets or reconnect the nets between the flip-chip bumps assign_flip_chip_nets 238 IC Compiler™ Tool Commands Version L-2016.03 and drivers. According to the -uniquify style you specify, the matching can be one-to-one or n-to-one (n drivers to 1 bump) or one-to-n (1 driver to n bumps). A flip-chip driver pin can have multiple terminals. If each of the terminals needs one bump to be assigned, use the -multiple_terminal_pins option to specify the pin list. If only some of the terminals on specific layers need to be assigned, use the -terminal_layers option to specify which layers to use. If only some specific terminals need to be assigned, use the -terminal_names option. By default, one bump will be assigned to each pin. For bumps with an existing logical connection, the previous connection to the bump is removed and a new bump is assigned. The newly matched bump is reconnected to the matching flip-chip driver. The new bump net inherits the net name from the flip-chip driver pad to which the bump is now connected. A new net is created only if the flip-chip driver pad has no existing net connection. The driver-to-bump matching is processed by matching types previously defined by the set_flip_chip_type command. Only drivers and bumps with identical matching types are matched. The tool does not process unspecified matching types if you use the -matching_type option. Prerequisites Use the set_attribute command to specify a port of the flip-chip driver cell as the designated flip-chip port. This identifies the port that is used to connect to a bump. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example performs driver-to-bump matching of the matching types red and yellow. prompt> assign_flip_chip_nets -matching_type {"red" "yellow"} The following example performs 3-to-1 driver-to-bump matching prompt> assign_flip_chip_nets -uniquify 3 Matching 8 POWER flip chip driver ports to 3 bumps using Munkres algorithm... Initializing Munkres Matrix... Solving Munkres Matrix... >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Storing the matching result... Clearing up Munkres... Chapter 1: assign_flip_chip_nets 239 1-239 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Uniquified net vdd_1 being created from original net vdd Uniquified net vdd_2 being created from original net vdd Total 8 drivers-bumps match of all prompt> report_flip_chip_driver_bump BUMP_CELL NET DRIVER_CELL(S) "BUMP1" "vdd_1" "VDDPST_1" "VDDPST_2" "VDDPST_3" "BUMP2" "vdd_2" "VDDPST_4" "VDDPST_5" "VDDPST_6" "BUMP3" "vdd" "VDDPST_7" "VDDPST_8" The following example performs multiple-terminal-aware assignment prompt> assign_flip_chip_nets -matching_type "A" -multiple_terminal_pins DI/* Matching 4 A flip chip driver ports to 16 bumps using Munkres algorithm... Initializing Munkres Matrix... Solving Munkres Matrix... >>>>>>>>>>>>>>>>>>>>>>>>> Storing the matching result... Clearing up Munkres... Reporting the multiple terminal pin matching property on bump cell AREAPAD_S_120 [0] pin name: DI/VSS_TEST terminal name: VSS_TEST 3 Reporting the multiple terminal pin matching property on bump cell AREAPAD_S_121 [0] pin name: DI/VSS_TEST terminal name: VSS_TEST 2 Reporting the multiple terminal pin matching property on bump cell AREAPAD_S_63 [0] pin name: DI/VSS_TEST terminal name: VSS_TEST Reporting the multiple terminal pin matching property on bump cell AREAPAD_S_64 [0] pin name: DI/VSS_TEST terminal name: VSS_TEST 1 Total 4 drivers-bumps match of A 1 The following example performs multiple-terminal-aware assignment by specifying terminal names prompt> assign_flip_chip_nets -matching_type "A" -terminal_names \ {DI/VSS_TEST:VSS_TEST "DI/VSS_TEST:VSS_TEST 2"} Matching 2 A flip chip driver ports to 16 bumps using Munkres algorithm... Solving Munkres Matrix... >>>>>>>>>>>>>>>>>>>>>>>>> Storing the matching result... Clearing up Munkres... Reporting the multiple terminal pin matching property on bump cell assign_flip_chip_nets 240 IC Compiler™ Tool Commands AREAPAD_S_121 [0] pin name: DI/VSS_TEST Version L-2016.03 terminal name: VSS_TEST 2 Reporting the multiple terminal pin matching property on bump cell AREAPAD_S_64 [0] pin name: DI/VSS_TEST terminal name: VSS_TEST Total 2 drivers-bumps match of A SEE ALSO set_matching_type(2) merge_flip_chip_nets(2) Chapter 1: assign_flip_chip_nets 241 1-241 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 associate_mv_cells Associates the UPF strategies to the power management cells in the current design, and reports the correlation between power management cells in the netlist and the UPF strategies. SYNTAX status associate_mv_cells [-level_shifters] [-isolation_cells] [-retention_registers] [-power_switches] [-verbose] ARGUMENTS -level_shifters Reports the correlation and discrepancies between level-shifter cells and level-shifting strategies. -isolation_cells Reports the correlation and discrepancies between isolation cells and isolation strategies. -retention_registers Reports the correlation and discrepancies between retention cells and retention strategies. -power_switches Reports the correlation and discrepancies between power switches and UPF power-switch strategies. -verbose Reports the association information in the design in detail. associate_mv_cells 242 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION The associate_mv_cells command analyzes the current design and associates existing power-management cells according to the UPF strategies. It also checks and reports the correlation between the power-management cells in the netlist and the corresponding UPF strategies. The checking is based only on the UPF strategies. This command does not check for electrical violations. The associate_mv_cells command does not support the post-optimization flow in which optimization has been applied to the power-management cells and their related connections. If none of the power-management cell types are specified, this command reports all types of the power-management cells in the design. If the -verbose option is specified, details of all association information is reported. EXAMPLES The following example shows the report from the associate_mv_cells command when you do not specify any argument. All types of power-management cells are reported. prompt> associate_mv_cells \ ------------------------------------------------------------------------------Retention Cells ------------------------------------------------------------------------------Information: Retention strategy retention_inst in power domain InstDecode/PD is associated with 1 retention cell(s). (UPF-511) ------------------------------------------------------------------------------Isolation Cells ------------------------------------------------------------------------------Information: Isolation strategy iso_stra_2 in power domain InstDecode/PD is associated with 1 isolation cell(s). (UPF-512) ------------------------------------------------------------------------------Power Switches ------------------------------------------------------------------------------Information: Power switch InstDecode/inst_sw is associated with 3 power switch instance(s). (UPF-513) Information: Power switch Multiplier/mult_sw is associated with 2 power switch instance(s). (UPF-513) ------------------------------------------------------------------------------Level Shifters ------------------------------------------------------------------------- Chapter 1: associate_mv_cells 243 1-243 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 ------1 SEE ALSO check_mv_design(2) report_isolation_cell(2) report_level_shifter(2) report_power_switch(2) report_retention_cell(2) associate_mv_cells 244 IC Compiler™ Tool Commands Version L-2016.03 associate_supply_set Associates a supply set handle to another supply set handle or supply set reference. SYNTAX status associate_supply_set supply_set_name -handle supply_set_handle Data Types supply_set_name supply_set_handle string string ARGUMENTS supply_set_name Specifies the name of the supply set to which the supply set handle is associated. The name can be the name of a supply set or a supply set handle. This is a required argument. -handle supply_set_handle Specifies the supply set handle on which the action is performed. This is a required argument. DESCRIPTION The associate_supply_set command associates the supply set handle specified with the -handle option to the specified supply set. After the association, the tool treats corresponding functions in each supply set to be virtually connected. So, the supply sets inherit common switching behavior and must eventually be resolved to the same physical supply net. A supply set supports the following functions: Power Chapter 1: associate_supply_set 245 1-245 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Ground Multicorner-Multimode Support This command has no dependency on scenario specific information. EXAMPLES The following example associates primary supply handle of domain PD1 to a supply set SS1 prompt> associate_supply_set SS1 \ -handle PD1.primary 1 SEE ALSO create_power_domain(2) create_supply_set(2) associate_supply_set 246 IC Compiler™ Tool Commands Version L-2016.03 balance_inter_clock_delay Performs interclock delay balancing. SYNTAX status balance_inter_clock_delay [-clock_trees list_of_clocks] [-max_target_delay float_value] [-operating_condition min | max | min_max] Data Types list_of_clocks float_value list float ARGUMENTS -clock_trees list_of_clocks Performs interclock delay balance on the clocks specified in the list_of_clocks. When this option is omitted and no balance group defined, the balancing is performed on all clocks in the design. When this option is omitted and any balance group defined through set_inter_clock_delay_options, the balancing is performed on clocks defined in balance groups. When this option is specified and one or more balance groups defined through set_inter_clock_delay_options, the balancing is performed on clocks specified in this option. -max_target_delay float_value Specifies the maximum target delay using a positive float value. The tool balances all of the clocks' longest paths up to the -max_target_delay value if no other higher priority options are specified. -max_target_delay is not supported by MCMM ICDB engine. -operating_condition min | max | min_max Sets the operating condition to reflect the worst case (such as long delays, low voltage, or high temperatures). This option can be combined with another operating condition. If no operating condition option is specified (min, max or min_max) is set, the default is -max. Chapter 1: balance_inter_clock_delay 247 1-247 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 DESCRIPTION The balance_inter_clock_delay command performs interclock delay balance by inserting delay cells at the root of the clock to meet the clock insertion delay requirements. If timing violations occur due to an unbalanced clock insertion delay in a different clock domain, set a clock delay requirement with a small longest path delay value and run the balance_inter_clock_delay command. This minimizes the differences between the longest paths among the clocks. Multicorner-Multimode Support This command uses information from the clock tree synthesis scenarios. All scenarios enabled as clock tree synthesis scenarios are activated for clock tree synthesis and are returned to their current state (active or inactive) after clock tree synthesis. The clocks that need to be balanced need to be specified as scenario_name@clock_name in -clock_trees option to correctly perform the balancing where, scenario_name: Scenario with cts_mode set to true. clock_name: Clock present in that scenario. EXAMPLES The following command performs interclock delay balancing using the maximum target delay options: prompt> balance_inter_clock_delay \ -max_target_delay 0.5 The following command performs interclock delay balancing for the CLK1 clock tree to 0.5ns and the CLK2 clock tree to 0.8ns by using the set_inter_clock_delay_options command and the balance_inter_clock_delay command: prompt> set_inter_clock_delay_options \ -target_delay_clock CLK1 \ -target_delay_value 0.5 prompt> set_inter_clock_delay_options \ -target_delay_clock CLK2 \ -target_delay_value 0.8 prompt> balance_inter_clock_delay The following command performs interclock delay balancing for the CLK1 clock tree, which lags the CLK2 clock tree by 0.5ns, by using the set_inter_clock_delay_options command and the balance_inter_clock_delay command: balance_inter_clock_delay 248 IC Compiler™ Tool Commands Version L-2016.03 prompt> set_inter_clock_delay_options \ -delay_offset 0.5 \ -offset_to CLK1 -offset_from CLK2 prompt> balance_inter_clock_delay The following command performs interclock delay balancing only on the CLK4 and CLK5 clocks under the worst and the best operating conditions, even though the design might have additional clocks: prompt> balance_inter_clock_delay \ -clock_trees [get_clocks {CLK4 CLK5}] \ -operating_condition min_max The following command performs interclock delay balancing on the CLK6 and CLK7 clocks for the scenario scene01 prompt> balance_inter_clock_delay \ -clock_trees [get_clocks {scene01@CLK6 scene01@CLK7}] SEE ALSO set_inter_clock_delay_options(2) Chapter 1: balance_inter_clock_delay 249 1-249 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 break Immediately exits a loop structure. SYNTAX int break ARGUMENTS None DESCRIPTION The break command immediately exits the innermost loop structure. Use the break command to terminate a while loop, rather than waiting until the loop evaluates to zero. The break command returns the integer 1, indicating successful operation. A syntax error is reported if break is used outside a loop structure. EXAMPLES In the following example, a list of file names is scanned until the first file name that is a directory is encountered. The break command is used to terminate the foreach loop when the first directory name is encountered. foreach f [which {VDD.ave GND.tech p4mvn2mb.idm}] { echo -n "File $f is " if { [file isdirectory $f] == 0 } { echo "NOT a directory" } else { echo "a directory" break } } break 250 IC Compiler™ Tool Commands Version L-2016.03 SEE ALSO continue(2) while(2) Chapter 1: break 251 1-251 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 calculate_caa_based_yield2db Calculates critical-area-analysis-based yield and adds it to the .db library. SYNTAX status calculate_caa_based_yield2db library_name_or_db_file_name -particle_distr_func_file file_name] [-data_kit_type tsmc | tsmc_encr] [-layer_alias_dsd_format {x y z r t}] [-output db_file_name] ARGUMENTS library_name_or_db_file_name Specifies the input library using either the library name or the .db file name. If you specify the library name, it must be a library that is already loaded in memory. To see the libraries loaded in memory, use the get_libs command. If you specify that .db file name, ensure that it is a valid file name. This is a required argument. -particle_distr_func_file file_name Specifies the particle distribution function file. You can define the shrinkage factor in this file for half-node support. The shrinkage factor impacts the total critical area in the Poisson equation, and therefore impacts the cell yield. If the shrinkage factor is not specified, the default is 1. This is a required option. -data_kit_type tsmc | tsmc_encr Specifies the data kit type. The valid values are tsmc and tsmc_encr (the default). Use tsmc if the particle distribution function file from TSMC is in plain text format. Use tsmc_encr if the particle distribution function file from TSMC is in encrypted format. calculate_caa_based_yield2db 252 IC Compiler™ Tool Commands Version L-2016.03 -layer_alias_dsd_format {x y z r t} Specifies the metal scheme that will be used for the tapeout. The order is {Mx My Mz Mt Mr}. For example, {5 2 1 0 0} means that M2, M3, M4, M5, and M6 are Mx layers; M7 and M8 are My; and M9 is Mz. Use this option when there are multiple routing layers defined in the library and the critical area analysis tables. For more details about the metal scheme, consult the TSMC manual. -output db_file_name Specifies the name of the generated .db file that contains the critical-area-analysis-based yield data if the calculation finished successfully. This option is not required when you specify a library name as the input library because you can use the write_lib command to write out the critical-area-analysis yield .db file. This option is required if you specify a .db file name as the input library. DESCRIPTION The calculate_caa_based_yield2db command calculates critical-area-analysis-based yield using the critical area table defined in the input library, the particle distribution function, the routing layer alias dsd format, and then adds the cell yield model to the library .db file. This data can be used to improve yield in many stages of the design flow by various methods, such as yield-based cell swapping and optimization. The cell yield data is stored as a cell attribute in the format of a failure rate. You can determine the relationship from the Poisson equation: Cell_CA_Yield = exp (-Cell_FR); If the library is generated from a .lib file, you can report the cell failure rate by using the report_lib -yield command. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example calculates CAA-based yield for the library read from test.lib and writes out the yield.db file, which contains the yield data. Chapter 1: calculate_caa_based_yield2db 253 1-253 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 prompt> read_lib test.lib prompt> calculate_caa_based_yield2db test \ -particle_distr_func_file ddk_1.txt \ -data_kit_type tsmc caa_yield -layer_alias_dsd_format {1 2 1 2 1} prompt> write_lib test -output yield.db prompt> report_lib -yield test SEE ALSO report_critical_area(2) calculate_caa_based_yield2db 254 IC Compiler™ Tool Commands Version L-2016.03 cd Changes the current directory. SYNTAX status cd [directory] Data Types directory string ARGUMENTS directory Specifies an existing directory name. DESCRIPTION The cd command changes the current directory to the specified directory. If you do not specify directory, your login or home directory becomes the new current directory. By default, the current directory is the directory where the shell is invoked. A file specification of dot (.) is shorthand for the current directory. Dot is commonly included in the search_path variable. Changing the current directory changes the interpretation of "." in the search_path variable. Note that the sh command cannot be used to change directories. EXAMPLES The following are examples of using the cd command: prompt> cd /usr/designer prompt> pwd /usr/designer prompt> cd joe Chapter 1: cd 255 1-255 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 prompt> pwd /usr/designer/joe prompt> cd ../bob prompt> pwd /usr/designer/bob prompt> cd ~ prompt> pwd /usr/designer/joe prompt> cd ~doug prompt> pwd /usr/designer/doug prompt> cd prompt> pwd /usr/designer/joe prompt> cd /usr/designer prompt> ls bob designs doug joe one.ddc two.ddc prompt> cd designs prompt> ls one.ddc other.ddc prompt> set_app_var search_path ". ~" prompt> read_ddc {one.ddc two.ddc} Loading ddc file '/usr/designer/designs/one.ddc' Loading ddc file '/usr/designer/joe/two.ddc' prompt> cd /tmp prompt> read_ddc one.ddc Loading ddc file '/usr/designer/joe/one.ddc' SEE ALSO ls(2) pwd(2) cd 256 IC Compiler™ Tool Commands Version L-2016.03 change_connection Disconnects the nets on the specified pins and connects these pins to the desired network that is determined by the specified net. SYNTAX status change_connection [-net netName] pin_list Data Types pin_list collection of pins ARGUMENTS -net netName Specifies the net to be connected. If this option is not specified, the specified pins will be disconnected. pin_list Specifies a list of pins to be connected by the desired network that is defined by the specified net. The net segment of the network must exist in the same hierarchical level of each target pin. DESCRIPTION This command first disconnects the target pins and then connects these pins to the desired network. A network is the set of nets connected across hierarchy. The specified input net is on the segment of the network. EXAMPLES The following example uses the change_connection command to connect net new_net to pin U1/SE, net A/new_net to pin A/U2/SE and net A/B/new_net to pin A/B/U3/SE. The nets Chapter 1: change_connection 257 1-257 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 U1/new_net, A/new_net and A/B/net_net share the same network through the hierarchical port. prompt> change_connection -net new_net {U1/SE A/U2/SE A/B/U3/SE} The following example uses the change_connection command to disconnect net old_net from pin U1/SE, net A/old_net from pin A/U2/SE and net A/B/old_net from pin A/B/U3/SE. The command then connects net new_net to pin U1/SE, net A/new_net to pin A/U2/SE and net A/B/new_net to pin A/B/U3/SE. prompt> change_connection -net new_net {U1/SE A/U2/SE A/B/U3/SE} SEE ALSO all_connected(2) connect_net(2) disconnect_net(2) change_connection 258 IC Compiler™ Tool Commands Version L-2016.03 change_fp_soft_macro_to_black_box Converts the specified soft macros to black boxes. SYNTAX status change_fp_soft_macro_to_black_box black_boxes ARGUMENTS black_boxes Specifies the soft macros to convert. DESCRIPTION Converts the specified soft macros to black boxes (the original soft macro is removed and replaced with an empty one). All instantiated subdesigns and leaf cells in the specified soft macro are removed from the logical (hierarchy preservation) information in the database. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example converts the soft macro alu1 to a black box. prompt> change_fp_soft_macro_to_black_box [get_cell alu1] SEE ALSO estimate_fp_black_boxes(2) get_cells(2) Chapter 1: change_fp_soft_macro_to_black_box 259 1-259 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 change_link Changes the design to which a cell is linked. SYNTAX status change_link object_list design_name [-view view_name] [-freeze_silicon] Data Types object_list design_name view_name list string string ARGUMENTS object_list Specifies the cells or references in the current design for which to change the link. design_name Specifies the name of the design to which to link the cells or references in the object list. -view view_name Specifies the Milkyway view of the reference design to which to link the cells or references in the object list. -freeze_silicon Used for the ECO freeze silicon flow. After you run this command, the cell instances are in the transitional state. You must run the place_freeze_silicon or map_freeze_silicon command to swap the cell instances with the available spare cells of the specified reference library cell. change_link 260 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION The change_link command specifies a design for which to change the link for a cell or reference. If you specify a cell in the object list, the command changes it to one occurrence of the specified design. If you specify a reference in the object list, the command changes all cells of the specified reference type to occurances of the design. You can change the cell or reference link only to a compatible design. For example, the design must have the same number of ports with the same name and direction as the cell or reference. You can also use this command to change the reference of a physical-only cell to another physical-only library cell. Physical-only cells and standard cells are not compatible, so you can only change a physical-only cell's reference to another physical-only library cell. Similarly, references of standard cells can only be changed to logical library cells. The -view option allows the reference to be changed to a Milkyway view other than the FRAM view. Be careful when using this option, as the tool performs only minimal checking when it is used. This option also triggers a complete link of the design, even if it is already linked. Although the design_name argument accepts names in the format library/library_cell, it does not imply that the actual library cell used for the new cell will be from the specified library. The actual library cell used is determined by the current link library settings. After running the change_link command, link the design with the link -force command. EXAMPLES The following example shows an improper use of the change_link command. The specified cell does not have the same number of ports as the design to which it is being linked. prompt> change_link U3 HALF_ADDER Error: Number of pins on cell 'U3' don't equal design 'HALF_ADDER' The following example shows the use of change_link to change the reference of the U1 cell from INVX3 to BUFX3: prompt> get_attribute [get_cells U1] ref_name INVX3 1 Chapter 1: change_link 261 1-261 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 prompt> change_link [get_cells U1] BUFX3 1 prompt> get_attribute [get_cells U1] ref_name BUFX3 1 SEE ALSO current_design(2) link(2) map_freeze_silicon(2) place_freeze_silicon(2) change_link 262 IC Compiler™ Tool Commands Version L-2016.03 change_macro_view Changes the view of the macro that is used. SYNTAX status change_macro_view -reference cell_reference_name -view view_name [-quiet] Data Types cell_reference_name view_name string string ARGUMENTS -reference cell_reference_name Specifies the cell reference name for which to change the reference view. All instances of the cell reference will use the view specified by the -view option with the view_name value. -view view_name Specifies the view name to be used. Valid values for view_name are FRAM and CEL. -quiet Suppresses the messages. DESCRIPTION The change_macro_view command changes the macro's view. All instances of the cell reference are affected by this command. Chapter 1: change_macro_view 263 1-263 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example replaces the existing CEL view with the FRAM view for the mem_ctrl macro: prompt> change_macro_view -reference mem_ctrl -view FRAM The following example specifies that the CEL view is to be used for the mem256x16 reference cell: prompt> change_macro_view -reference mem256x16 -view CEL SEE ALSO create_macro_fram(2) change_macro_view 264 IC Compiler™ Tool Commands Version L-2016.03 change_names Changes the names of ports, cells, and nets in a design. SYNTAX status change_names [-rules name_rules] [-hierarchy] [-verbose] [-names_file names_file] [-log_changes log_file] [-restore] [-dont_touch object_list] [-instance instance] [-new_name new_name] [-skip_inactive_constraints] Data Types name_rules names_file log_file object_list instance new_name string string string list string or instance object string ARGUMENTS -rules name_rules Specifies a name rule set that details the rules to which the object names must conform. The name_rules file is defined by using the define_name_rules command. By default, this value is the name_rules file specified by the default_name_rules variable. The tool ignores the -rules option if you specify the -names_file option. -hierarchy Modifies all names in the design hierarchy. By default, the tool changes only objects in the current design. Chapter 1: change_names 265 1-265 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -verbose Reports every name change. By default, the tool provides only a summary of the number of name changes in the design. -names_file names_file Specifies a file of manual name changes. These name changes are not subject to any name rules, but an error is reported if any name changes are not unique. By default, the command automatically makes name changes based on the naming rules. If you specify this option, the tool ignores the -rules option. -log_changes log_file Specifies the log file in which to record all name changes. If you run multiple change_names commands, the log_file must be empty before running the first change_names command. -restore Reverses the changes recorded in the names_file during the current session and restores the contents of the file to the state it was in when opened. -dont_touch object_list Specifies the designs on which the change_names command is not to be applied. You can specify any design under the hierarchy of the current design in the object list to ensure that the change_names command does not apply any changes to them. The dot (.) character represents the current design. By default, there are no designs in the list. -instance instance Specifies the instance on which to apply the change_names command. This option must be used with the -new_name option to specify a new instance name. This option is mutually exclusive with all other options except -new_name and -verbose. -new_name new_name Specifies the new instance name when the -instance option is used. The new name must consist of only alphanumeric characters and the underscore (_) and must start with an alphabetical character. The new name cannot be a reserved word used by Verilog, change_names 266 IC Compiler™ Tool Commands Version L-2016.03 SystemVerilog, or VHDL. The new name must not conflict with an existing instance, port, and net name within the same design. The leading backslash will be removed from the new name. -skip_inactive_constraints When you specify this option, the inactive constraints (that are part of the non-current design or part of inactive scenarios) are not preserved when you use the -instance option with change_names. This option has no impact when you do not specify the -instance option. DESCRIPTION The change_names command changes the names of ports, cells (including physical-only cells), and nets in a design to conform to specified name rules. This command cannot be used to change the name of library cells or bus ports. To change the name of bus ports, you must first use the undefine_bus command to remove the bus property from the port. If an object name does not conform to the specified rules, the tool changes the name and ensures that the new name is unique within the design. By default, the tool changes the names of bus members to force them to use the same base name as their owning bus. If you do not want the names of bus members, set the change_names_dont_change_bus_members variable to true before running the change_names command. To show the effects of running this command without actually making the changes, use the report_names command. There are two primary reasons for using the change_names command: • It enables you to modify design object names in the tool so that the names match those that are ultimately created for a saved design. The names the tool displays in reports and in other information match those used in your target system. • It enables you to define naming rules specific to your target system. For example, you might be using VHDL as a design transfer mechanism, but the naming rules of your system might be more restrictive than those supported by the true VHDL format. To obtain a list of available name rules, use the report_name_rules command. For information about naming rules that can be affected during the execution of the change_names file, see the define_name_rules man page. Chapter 1: change_names 267 1-267 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 When you run the change_names command with no options, it operates on the ports, cells, and nets in the current design. When you specify the -hierarchy option, changes are expanded to include all design objects within the current design hierarchy. For runtime reasons, it's best to use the -instance option only when you have a small list of instances to be renamed. If you have a big list of instances to be renamed, you must use the -rule option with change_names or use the -skip_inactive_constraints option and apply the constraints after running change_names -instance. Names File Format To specify a name change, you must specify the following four fields: design_name object_type object_name new_name The design_name field is a design currently read into the tool. The object_type field is port, cell, or net. The object_name field is the name of an object within the specified design. The new_name field is the name that replaces the existing name. If the file contains a report bar formed by a dashed line (--------), the tool ignores all information above the report bar. The tool parses all lines after the report bar (or all lines, if the file does not contain a report bar). By default, the tool parses each line into four fields, which are separated by whitespace characters, such as blanks, tabs, or new lines. This format matches the format of the report_names command output, which allows you to redirect the output of the report_names command to a file, edit it, and then use it as input to the change_names command. The tool also supports the use of a semicolon (;) as a delimiter to separate the name change specifications in the file. If you use a delimiter, you must add the following line above the report bar formed by the dashed line (--------): use delimiter:true The following example shows a names file without a delimiter: **************************************** Report : names -rules MY_RULES Design : TOP Version: v3.0 Date : Tue Aug 13 14:24:23 2007 **************************************** Design Type Object New Name ------------------------------------------------------------- change_names 268 IC Compiler™ Tool Commands TOP TOP cell net TOP net Version L-2016.03 U$1 U_1 NET_NAME_IS_WAY_TOO_LONG NET_NAME_IS_WAY_TOO 12345 N12345 The following example shows a names file with a delimiter: use delimiter:true Design Type Object New Name ------------------------------------------------------------TOP cell U$1 U_1 ; TOP net NET_NAME_IS_WAY_TOO_LONG NET_NAME_IS_WAY_TOO ; TOP net 12345 N12345 ; Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example shows how to change the names in the current design to conform to the rules defined by the default_name_rules variable: prompt> list default_name_rules default_name_rules = "EXAMPLE" prompt> change_names Information: Using name rules 'EXAMPLE'. Information: 4 names changed in design 'TOP'. The following example shows how to use the -verbose option to show each name changed by the change_names command. prompt> change_names -verbose Information: Using name rules 'EXAMPLE'. Design Type Object New Name ------------------------------------------------------------TOP port A1 a_ TOP port A2 a_a TOP port A3 a_b TOP port A4 a_c Chapter 1: change_names 269 1-269 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 The following example shows how to use the -hierarchy option to change names throughout the design hierarchy. Typically, you want to change the names of all designs in the hierarchy to conform to your name rules. prompt> change_names -hierarchy Information: Using name rules 'EXAMPLE'. Information: 12 names changed in design 'HALF_ADDER'. Information: 35 names changed in design 'SUBTRACTOR'. Information: No names changed in design 'TOP'. The following example shows how to use the define_name_rules command to create a set of simple name rules. In this example, the name rules require that all names use uppercase characters or numerals. prompt> define_name_rules CAPS_ONLY -allow "A-Z 0-9" prompt> change_names -rules CAPS_ONLY -verbose Information: Using name rules 'CAPS_ONLY'. Design Type Object New Name ------------------------------------------------------------MY_BUFFER port a1 A1 MY_BUFFER port a2 A2 MY_BUFFER port b1 B1 MY_BUFFER port b2 B2 MY_BUFFER cell u1 U1 MY_BUFFER cell u2 U2 The following example shows how to make manual name changes to design objects by using the report_names and change_names commands. First, redirect a report of all the original design objects to a file and edit the file to make manual changes. Use the edited names file to direct the name changes made by the change_names command. In this case, the tool ignores the name rules and makes only the specified changes. prompt> report_names -original > TOP.names /* Edit the TOP.names names file */ prompt> change_names -names_file TOP.names Information: 15 names changed using names file 'TOP.names' The following example shows how to use the -instance option to change one instance name: prompt> change_names -instance a1 -new_name a2 The following example shows how to rename a bus port by first removing the bus property and then using the change_names command to change the name. change_names 270 IC Compiler™ Tool Commands Version L-2016.03 prompt> undefine_bus -type port -name my_bus prompt> change_names -names_file name.change -verbose SEE ALSO define_name_rules(2) report_name_rules(2) report_names(2) default_name_rules(3) Chapter 1: change_names 271 1-271 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 change_selection Changes the selection in the GUI, taking a collection of objects and changing the selection according to the type of change specified. SYNTAX status change_selection [-name slct_bus] [-replace] [-add] [-remove] [-toggle] [-type object_type] [-clock_trees clock_tree_list] collection Data Types slct_bus object_type clock_tree_list collection string list list list ARGUMENTS -name slct_bus Specifies to change the selection bus by using the value of slct_bus. By default, the command changes the selection bus by using the name global. -replace Replaces the current selection with the objects in the collection. This is the default behavior when no options are specified. -add Adds the objects in the collection to the current selection. By default, this option is off. -remove Removes the objects that are specified in the collection from the current selection. By default, this option is off. change_selection 272 IC Compiler™ Tool Commands Version L-2016.03 -toggle Adds each item that is specified in the collection to the selection bus if it is not currently contained in the selection bus. If it is currently contained in the selection bus, it is removed. By default, this option is off. -type object_type Specifies the type to change. Only those items from the collection that are of the type specified by object_type are used to change the selection. The valid values are design, port, net, cell, pin, and path (timing path). By default, the command uses the entire collection. -clock_trees clock_tree_list Specifies a list of clock trees for changing the selection. By default, this option is off. collection Specifies the collection of objects to use to change the selection. The type of change that is applied to the current selection with the collection is specified by the options listed above. By default, this option is off. DESCRIPTION The change_selection command changes the selection in the GUI. When selections are changed, the GUI updates all relevant windows to reflect it. A collection of objects and the type of change are given as input to the command. The collection of objects might be returned as the result of another command, such as the get_designs command. If the collection is empty and you use the -replace option (or let the command default by specifying no option), the current selection is cleared. If you use the -type option, only the type of objects specified are used to change the current selection. For example, if you use -type design, the command uses only the design objects in the collection to change the current selection. If you do not use the -type option, all objects in the collection are used to change the current selection. For example, if you use the -add option without using the -type option, all objects, regardless of their type, are added to the current selection. For information about collections, see the collections man page. Multicorner-Multimode Support This command has no dependency on scenario-specific information. Chapter 1: change_selection 273 1-273 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example replaces the current selection with the collection of design objects, regardless of type: prompt> change_selection [get_designs] The following example adds a cell named U5 to the selection made in the example above: prompt> change_selection -add [get_cells U5] The following example removes all pin objects from the current selection: prompt> change_selection -remove -type pin [get_selection] The following example clears the selection: prompt> change_selection "" The following example creates a new selection bus and adds a net named n1 to the selection: prompt> set slct [create_selection_bus] prompt> change_selection -name $slct [get_nets 1] SEE ALSO collections(2) filter_collection(2) get_selection(2) query_objects(2) change_selection 274 IC Compiler™ Tool Commands Version L-2016.03 change_via_master Changes the via master of via objects in a collection. SYNTAX collection change_via_master via_objects -via_master via_master_name Data Types via_objects via_master_name collection string ARGUMENTS via_objects Specifies the via objects in the design to be assigned a new via master. This is a required argument. -via_master via_master_name Specifies the name of the via master for the specified via objects. This is a required option. DESCRIPTION This command changes the via master for one or more specified via objects in the design to a new via master and returns a collection of the specified vias, including both the vias whose master has changed and those that are unchanged. If the via_objects argument is a collection variable and the tool issues an MWUI-1018 message during the change, the original via collection is invalidated. You must use the returned via collection instead of the original via collection if any further processing is needed on the vias. Multicorner-Multimode Support This command has no dependency on scenario-specific information. Chapter 1: change_via_master 275 1-275 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example changes the via master according to the specified collection of objects and via master name. prompt> change_via_master [get_vias VIA#512*] \ -via_master [get_via_masters VIA12B] Information: Changed the via master from VIA12A to VIA12B for via VIA#5121. (MWUI-1017) Information: Changed the via master from VIA12C to VIA12B for via VIA#5122. (MWUI-1017) {VIA#5121 VIA#5122} In following example, the tool issues MWUI-1018 warning messages during the change, which indicates that the object ID of vias has changed and therefore the via_col_1 input collection is invalid. The via_col_2 collection must be used instead of the via_col_1 collection in the foreach_in_collection command. prompt> set via_col_1 [get_vias {VIA#235012 VIA#235013 VIA#235014}] prompt> set via_col_2 [change_via_master -via_master VIA1 $via_col_1] Warning: Change the object ID of the via from 235012 to 173568. (MWUI-1018) Information: Changed the via master from via1 to VIA1 for via VIA#173568. (MWUI-1017) Warning: Changed the object ID of the via from 235013 to 173568. (MWUI-1018) Information: Changed the via master from via1 to VIA1 for via VIA#173569. (MWUI-1017) Warning: Changed the object ID of the via from 235014 to 173568. (MWUI-1018) Information: Changed the via master from via1 to VIA1 for via VIA#173570. (MWUI-1017) {VIA#173568 VIA#173569 VIA#173570} prompt> foreach_in_collection via $via_col_2 \ {puts "Via master for [get_attribute $via] is [get_attribute $via via_master]"} Via master for VIA#173568 is VIA1 Via master for VIA#173569 is VIA1 Via master for VIA#173570 is VIA1 The following example causes an MWUI-1019 error, which indicates that the via master cannot be changed. prompt> change_via_master [get_vias VIA_ARRAY#5377] -via_master VIA15A Error: Cannot change via master to VIA15A for via VIA_ARRAY#5377. (MWUI-1019) {VIA_ARRAY#5377} change_via_master 276 IC Compiler™ Tool Commands Version L-2016.03 SEE ALSO get_vias(2) create_via_master(2) get_via_masters(2) create_via(2) Chapter 1: change_via_master 277 1-277 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 change_working_design Changes the working design in a cell hierarchy by moving down or up a hierarchy of soft macro cells. SYNTAX status change_working_design -push cell [-readonly] | -pop [-discard] Data Types cell collection of one cell ARGUMENTS -push cell Specifies a soft macro cell in the current design. You can specify the cell by name or as a collection containing one cell object. The command makes the specified cell the current working design and displays the design in the context of the higher-level design. The cell name is pushed onto a stack. -readonly Opens the lower-level design in read-only mode. This option works only with the -push option. -pop Reverses the effects of the most recent usage of the change_working_design -push command. It pops the most recent cell pushed onto the stack and restores the previous higher-level cell as the current working design. You must use either the -push or -pop option in the command. -discard Discards the recent modifications on the current working design when popping the design off of the stack. This option works only with the -pop option. change_working_design 278 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION This command changes the working design in a cell hierarchy by moving down or up a hierarchy of soft macro cells. Use the -push option to move down the hierarchy or the -pop option to move up the hierarchy. When you move down the hierarchy, the GUI displays the new lower-level working design in the context of the higher-level design. This command is similar to opening the child design with the open_mw_cel command. However, the GUI shows the lower-level soft macro in the context of the parent design, with the surrounding uneditable higher-level layout information dimmed. The change_working_design command works only in a design organized as a hierarchy of soft macros. You can "push" the view down to a soft macro implemented as a CEL view, but not down to a logical hierarchical block that has been implemented as "flat" along with other lower-level blocks. When you use the change_working_design command, the tool maintains a stack of working designs. The -push option saves the current working design on the stack before it changes the working design to the specified cell, whereas the -pop option restores the most recent working design stored on the stack and removes it from the stack. You can use the get_working_design_stack command to check the stack and the change_working_design_stack command to switch between different stacks. The current_mw_cel command also changes the working design, but it ignores and clears out the stack. For more information, see the current_mw_cel man page. When pushing into a child design, this command implicitly opens the child Milkyway design if it is not already open. For a reference to a CEL view, you can use the -readonly option to open the cell in read-only mode if the tool would otherwise allow read-write access. If the child design is already open, its current read/write accessibility is not affected. After you finish editing the child Milkyway design, you can run the change_working_design -pop command to pop the child Milkyway design from the stack and return to its parent Milkyway design. The changes to the child design are automatically reflected in its ancestor designs. If you do not want to save the changes to the child design, you can use the -discard option with the -pop option. To save all changes to the top-level Milkyway design and its child Milkyway designs, you must use the save_mw_cel -hierarchy command. To close all Milkyway designs in the stack, use the close_mw_cel -hierarchy command. EXAMPLES The following example sets the current working design to a child Milkyway design, BLENDER_2, which is instantiated by the I_ORCA_TOP/I_BLENDER_4 soft macro cell. Chapter 1: change_working_design 279 1-279 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 After performing some operations, the example pops the child Milkyway design from the stack and returns to the parent Milkyway design, ORCA. prompt> change_working_design -push I_ORCA_TOP/I_BLENDER_4 1 prompt> current_mw_cel {BLENDER_2} (some operations performed ...) prompt> change_working_design -pop 1 prompt> current_mw_cel {ORCA} SEE ALSO change_working_design_stack(2) close_mw_cel(2) current_mw_cel(2) get_working_design_stack(2) open_mw_cel(2) save_mw_cel(2) change_working_design 280 IC Compiler™ Tool Commands Version L-2016.03 change_working_design_stack Changes the current working design stack. SYNTAX collection change_working_design_stack design Data Types design collection ARGUMENTS design Specifies the Milkyway design whose stack is set as the current design stack. You can specify the design by name, name pattern, or a collection. If you specify a collection, the collection must contain only one design. This is a required argument. DESCRIPTION This command changes the current working design stack by specifying a top-level Milkyway design. The command returns a collection that contains the current working design stack. The current working design is changed to the top of target stack, which is the latest design pushed onto that stack. If the stack contains more than one design, the current working design is not the top-level design. See the current_mw_cel man page for information about how to switch to the target top-level design and clear the stack. EXAMPLES The following example shows that the change_working_design_stack command changes the working design stack without clearing it. Chapter 1: change_working_design_stack 281 1-281 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 prompt> current_mw_cel {TOP} prompt> change_working_design_stack ORCA {ORCA BLENDER_2} prompt> current_mw_cel {BLENDER_2} SEE ALSO change_working_design(2) get_working_design_stack(2) current_mw_cel(2) change_working_design_stack 282 IC Compiler™ Tool Commands Version L-2016.03 characterize Captures information about the environment of specific cell instances and assigns the information as attributes on the design to which the cells are linked. SYNTAX status characterize cell_list [-no_timing] [-constraints] [-connections] [-power] [-verbose] Data Types cell_list list ARGUMENTS cell_list Specifies the cells in the current design whose designs are to be characterized. -no_timing Indicates not to characterize the timing characteristics of the design. Attributes representing the timing environment or requirements are not placed on the subdesigns. -constraints Places area, power, connection class, and design rule constraint information on the subdesigns. -connections Characterizes the connection attributes of the design. -power Uses the switching activity information of the specified cells to annotate the corresponding subdesigns. Chapter 1: characterize 283 1-283 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -verbose Echoes the equivalent commands that are applied to the subdesign being characterized. DESCRIPTION The characterize command places on a design the information and attributes that characterize its environment in the context of a specified instantiation in another design. The primary purpose of the characterize command is to capture the timing environment of the subdesign. This occurs if the characterize command is run without the -no_timing option. The command derives and asserts the following on the design to which the instance is linked: • Unless the -no_timing option is used, the characterize command places on the subdesigns any timing characteristics previously set by the following commands: create_clock group_path read_sdf read_clusters set_annotated_check set_annotated_delay set_auto_ideal_net set_disable_timing set_drive set_driving_cell set_false_path set_ideal_latency set_ideal_net set_ideal_transition set_input_delay set_load set_max_delay set_min_delay set_multicycle_path set_operating_conditions set_output_delay set_resistance set_timing_ranges set_wire_load_model set_wire_load_mode set_wire_load_selection_group set_wire_load_min_block_size • If the -constraint option is used, the characterize command places on the subdesigns any area, power, connection class, and design rule constraints previously set by the following commands: characterize 284 IC Compiler™ Tool Commands Version L-2016.03 set_cell_degradation set_connection_class set_dont_touch_network set_fanout_load set_fix_multiple_port_nets set_ideal_network set_ideal_net set_max_area set_max_capacitance set_max_fanout set_max_power set_max_transition set_min_capacitance set_min_porosity • If the -connections option is used, the characterize command places on the subdesigns any connection attributes previously set by the following commands: set_equal set_logic_one set_logic_zero set_logic_dc set_opposite set_unconnected • Note that connection class information is applied only if the -constraint option is used. • If the -power option is used, the characterize command places on the subdesigns any switching activity information, toggle rates, and static probability previously set, calculated, or saved by the following commands: report_power set_switching_activity • In most cases, characterizing a design removes the effects of any previous characterization and replaces all relevant information. However, in the case of back-annotation (the set_load, set_resistance, read_sdf, set_annotated_delay, an set_annotated_check commands), the annotations are moved during the characterize step, and cannot overwrite existing annotations made on the subdesign. In this case, annotations must be explicitly removed from the subdesign by using the reset_design command before running the characterize command the next time. Multicorner-Multimode Support This command uses information from the current scenario only. Chapter 1: characterize 285 1-285 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example characterizes the top-level design. prompt> characterize TOP SEE ALSO create_clock(2) current_design(2) group_path(2) link(2) read_sdf(2) remove_annotated_check(2) remove_annotated_delay(2) reset_design(2) set_annotated_check(2) set_annotated_delay(2) set_cell_degradation(2) set_connection_class(2) set_disable_timing(2) set_dont_touch(2) set_dont_touch_network(2) set_drive(2) set_driving_cell(2) set_equal(2) set_false_path(2) set_fanout_load(2) set_fix_multiple_port_nets(2) set_ideal_latency(2) set_ideal_net(2) set_ideal_network(2) set_ideal_transition(2) set_input_delay(2) set_load(2) set_logic_one(2) set_logic_zero(2) set_logic_dc(2) set_min_capacitance(2) set_max_area(2) set_max_capacitance(2) set_max_delay(2) set_max_fanout(2) set_max_transition(2) set_min_delay(2) set_multicycle_path(2) set_operating_conditions(2) set_opposite(2) set_output_delay(2) set_resistance(2) set_target_library_subset(2) set_timing_ranges(2) characterize 286 IC Compiler™ Tool Commands Version L-2016.03 set_unconnected(2) uniquify(2) Chapter 1: characterize 287 1-287 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_block_abstraction Checks the readiness of a block abstraction for usage in a top-level design at various stages of the flow. SYNTAX status check_block_abstraction [-stage stage_value] Data Types stage_value string ARGUMENTS -stage stage_value Specifies the stage for which the readiness of the blocks is checked. The checks performed by thecheck_block_abstraction command depend on the specified stage. Ensure that the block contents are relevant to the specified stage. You can specify one of the following values: • pre_place_opt Use this stage when the top-level design is ready for placement. • pre_clock_opt Use this stage when the top-level design is ready for clock tree synthesis. • pre_route_opt Use this stage when the top-level design is ready for routing. If this option is not specified, the command runs some general checks. DESCRIPTION The check_block_abstraction command checks if the blocks linked to the top-level design are ready for various stages of the top-level flow such as placement, clock tree synthesis, and routing. If you do not specify a stage, the following general checks are performed: check_block_abstraction 288 IC Compiler™ Tool Commands • Block leaf-cell location check • Multicorner-multimode checks • CEL and FRAM view consistency check • PG boundary pin consistency check • dont_touch attribute check Version L-2016.03 The pre_place_opt checks include the general checks and a block location check. The pre_clock_opt checks include the general checks, the pre_place_opt checks, and a clock tree synthesis check. The pre_route_opt checks include the general checks, the pre_place_opt checks, the pre_clock_opt checks, a parasitic data check, and a signal integrity aggressor data check. If any error messages are reported by this command, you should resolve them before proceeding further. If any warning messages are reported by this command, you should review them before proceeding further. Multicorner-Multimode Support This command uses information from active scenarios only. EXAMPLES The following example checks the blocks in the current design in the pre_route_opt stage. prompt> check_block_abstraction -stage pre_route_opt Warning: Master cell of macro blk is not blk.FRAM. (TL-35) Error: Net 'blk/net1' is not clock tree synthesized. (TL-125) Error: Block 'blk' does not have required (SI aggressor info) file. (TL-32) 0 SEE ALSO create_block_abstraction(2) set_top_implementation_options(2) report_block_abstraction(2) Chapter 1: check_block_abstraction 289 1-289 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_physical_design(2) check_block_abstraction 290 IC Compiler™ Tool Commands Version L-2016.03 check_clock_tree Checks the clock trees of the current design for common problems that can adversely impact clock tree synthesis. SYNTAX status check_clock_tree [-clocks clock_list] [-solution_template file_name [-solution_for option_list]] Data Types clock_list file_name option_list list string list ARGUMENTS -clocks clock_list Checks only those clock trees that appear in the clock_list. By default, the command checks all clocks in the design. -solution_template file_name Writes out a file containing commands that resolve clock tree issues identified by the command. You can source the file to resolve the warnings. The file is saved in the current working directory. Some violations might contain multiple solutions. For these cases, the solution file contains more than one solution for a given violation. The default solution is the suggested solution. Alternative solutions have a comment character (#) before each command line. Before sourcing the file, you must remove the comment to enable that solution. -solution_for option_list Limits the solution template output file to only the specified violation types. You can also select the default solution or alternate solution in the option list. You must also specify the -solution_template option when you specify -solution_for. Chapter 1: check_clock_tree 291 1-291 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 For example, the command creates two solutions for a CTS-823 warning: create a generated clock (default solution), or set an exclude pin. If you specify check_clock_tree -solution_template -solution_for {cts-823-1}, the command writes out the default solution to resolve the warning. If you specify check_clock_tree -solution_template -solution_for {cts-823-2} the command writes out the alternate solution. You can also specify multiple violation types in the option list. For example, specify the following command to write out a solution file for the specified violations. check_clock_tree -solution_template solution.tcl -solution_for {cts-823-1 cts-861-1 cts-835-2} By default, the solution file contains all violation types. DESCRIPTION Use the check_clock_tree command before clock tree synthesis to check for common problems that might impact clock tree synthesis. The command performs the following checks: *: The command writes a solution to the solution template file CTS-821 A master clock does not propagate to a generated clock CTS-822 Improperly specified master clock CTS-823* A master clock terminates at a multiclock pin CTS-831 A clock has no synchronous pins CTS-832 A clock loops to itself CTS-834* Multiple clocks per register CTS-835* Exceptions defined on output pins CTS-837* Dont_touch nets/cells not defined by set_clock_tree_exceptions CTS-838 Clock nets are routed prior to clock tree synthesis CTS-841* Ignored exceptions CTS-850* No buffer available for clock tree synthesis CTS-851 Multiple arc between input and out pins CTS-852 Case analysis set on a pin CTS-853 Disable timing set at a pin CTS-855 No reference can be used CTS-858* Clock tree exception defined on a clock source CTS-859* max_fanout is smaller than its default value CTS-860* NonMCMM conflicting balancing requirement check CTS-861* MCMM master clock terminates at a multi_clock pin CTS-862* MCMM conflicting balancing requirement check CTS-866* Different offset values defined for ICDB CTS-867* Different target_delay value set for ICDB CTS-868* Conflicting requirement set for clocks for ICDB CTS-869* Cyclic offset values specified for ICDB CTS-871* Phase delay skew of etm/ilm entrance pin larger than threshold check_clock_tree 292 IC Compiler™ Tool Commands CTS-875* CTS-876 data pin CTS-877 CTS-878 issue CTS-982 Version L-2016.03 Possible cap/fanout violation on dont_touch net Generated clock defined in the output cone of a Cell has output_output arcs A possible balance conflict at pin due to unknown A clock root is in fanin cone of another root Some checks are specific to overlapping clock domains; these require that you set the timing_enable_multiple_clocks_per_reg shell variable to true to enable the timing engine to propagate multiple clocks per register. If the variable is set to false, the command performs an extra check to detect and warn about overlapping clocks (CTS-834). When check_clock_tree encounters a problem, the command prints a warning or informational message. The message might by followed by additional information to aid debugging and repair. There is a man page available for each message type; the page explains the problem in detail and what you can do to solve it. Multicorner-Multimode Support This command uses information from the clock tree synthesis scenarios. All scenarios enabled as clock tree synthesis scenarios are activated for clock tree checking and are returned to their current state (active or inactive) after checking. The check_clock_tree command performs the following checks for all clock tree synthesis scenarios: Per-clock exception conflicts for each scenario: CTS-860 Conflicting exceptions for different clocks on same pin The conflicts covered are : Stop(sink) Float value (vice versa) Float value Different float value (vice versa) Stop(sink) nonstop (vice versa) Float value nonstop (vice versa) Cross-scenario checks : CTS-861 Missing gen clock definitions across scenarios CTS-862 Conflicting float/stop nonstop exception across scenarios Interclock delay balancing settings: CTS-866 Conflicting offset values for same root across scenarios CTS-867 Different target_delay setting for same root across scenarios CTS-868 Roots in balance group in one scenario have offset values in another scenario CTS-869 Cyclic offset setting checking across scenarios Chapter 1: check_clock_tree 293 1-293 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES In the following example, the check_clock_tree command is used to check all of the clocks in the current design: prompt> check_clock_tree In the following example, the check_clock_tree command is used to check a specific list of clocks in the current design: prompt> check_clock_tree -clocks [list clock1 clock2] When using the solution_template option, the command writes a file with a suggestion on how to resolve the warning. For example, the CTS-871 warning, which warns about poor skew at ETM/ILM entrance pin, can be resolved by either setting a float_pin or by setting an exclude exception. The command writes both solutions to the file by commenting the second solution as follows: prompt> check_clock_tree -solution_template suggestion.txt The file suggestions.txt has: ###############CTS-871 Solution File############### set_clock_tree_exception -float_pins [get_pins u_ETM/CLK] -float_pin_max_delay_rise 0.2 -float_pin_min_delay_rise 0.2 -float_pin_max_delay_fall 0.2 -float_pin_min_delay_fall 0.2 #--------------------#set_clock_tree_exceptions -exclude_pins [get_pins u_ETM/CLK] #---------------------- Using solution_for option, you can select which of the two suggestions provided to the solution file without "#". The following command: prompt> check_clock_tree -solution_template -solution_for {CTS-871-2} suggestion.txt \ produces: ###############CTS-871-2 Solution File############### set_clock_tree_exceptions -exclude_pins [get_pins u_ETM/CLK] #---------------------- If you specify an incorrect solution id, the command issues a warning as follows: check_clock_tree 294 IC Compiler™ Tool Commands Version L-2016.03 prompt> check_clock_tree -solution_template solution.out -option {cts-860-3} Warning: your input of check cts-860-3 is incorrect: either wrong input format or wrong option ID Please enter your solution option list as {cts-823-1 cts-835-2 cts-871-1 cts-862-1 ...} No solution is provided for this check The complete list of supported values and solutions for the -solution_for option is as follows: Cts-823-1 Define a missing generate clock to resolve the warning by default CTS-823-2 Define an exclude pin on the conflict pin to resolve the warning by default CTS-834-1 Set multiple clocks per register by default CTS-835-1 Remove exception from output pin by default CTS-835-2 Move exception from output pin to input pin by default CTS-837-1 set_clock_tree_exceptions on those clock tree synthesis ignored dont_touch/size_only by default CTS-841-1 Remove blocked exceptions by default CTS-850-1 Add cells to reference list by default CTS-858-1 Remove exception from clock source by default CTS-859-1 Remove max_buffer_level/max_fanout setting by default CTS-860-1 Reset conflict floating value with larger one by default CTS-860-2 Reset conflict floating value with smaller one by default CTS-861-1 Define a missing generate clock to resolve the warning by default CTS-861-2 Define an exclude pin on the balance conflict pin to resolve the warning by default CTS-862-1 Set clock tree exception on balance conflict sinks by default CTS-862-2 Remove the exception which causes the balance conflict by default CTS-866-1 Remove ICDB conflict offset with bigger value by default CTS-867-1 Remove ICDB option with smaller target delay value by default CTS-868-1 Remove ICDB conflict offset option by default CTS-869-1 Remove ICDB root with bigger conflict offset value by default CTS-869-2 Remove ICDB root with smaller conflict offset value by default CTS-871-1 Define a float_pin value on entrance pin of ILM/ETM with skew issue by default CTS-871-2 Define an exclude pin on entrance pin of ILM/ ETM with skew issue by default CTS-875-1 Remove the exception to allow clock tree synthesis to buffer the nets. Chapter 1: check_clock_tree 295 1-295 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 SEE ALSO compile_clock_tree(2) report_clock_timing(2) report_clock_tree(2) set_clock_tree_exceptions(2) check_clock_tree 296 IC Compiler™ Tool Commands Version L-2016.03 check_database Checks the integrity of the design database to ensure that the design information has been correctly stored. SYNTAX status check_database [library_name] [-verbosity low | medium | high] [-physical] [-netlist] Data Types library_name string ARGUMENTS library_name Specifies the name of a Milkyway design library to check; the command checks all cells in the library. By default, the command checks only the currently open cell. -verbosity low | medium | high Specifies the level of detail in the report. The default is low. Set this option to medium or high to get more detailed messages. -physical Specifies checking of physical information, which includes (but is not limited to) the floorplan, physical wiring, and UPF data. If neither -physical nor -netlist is specified, all information is checked. -netlist Specifies checking of logical netlist information, which includes (but is not limited to) netlist connectivity data. If neither -physical nor -netlist is specified, all information is checked. Chapter 1: check_database 297 1-297 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 DESCRIPTION This command checks the database integrity and reports any database problems found. It evaluates how the data is stored and whether this meets the database rules of construction. However, it does not determine whether the design information is correct or whether a legal, valid design can be constructed. EXAMPLES The following commands check the database consistency for the currently open cell. prompt> open_mw_lib orca_lib.mw {orca_lib.mw} prompt> open_mw_cel signal_route1 {signal_route1} prompt> check_database ****************************************************** CHECK_DATABASE RESULTS FOR CELL : signal_route1.CEL ****************************************************** Warning: The hierarchical net 'VDD' is inconsistent with the flat net 'VDD'. Warning: The via "via12Fat_3_4" data is corrupted. prompt> check_database -verbosity high ... Warning: The hierarchical net 'VDD' is inconsistent with the flat net 'VDD'. The hierarchical net 'VDD' is power, while the flat net 'VDD' is signal. The hierarchical net 'VDD' is connected to leaf pin 'U1/A', but the flat net 'VDD' is not. The hierarchical net 'VDD' is connected to leaf pin 'U2/A', but the flat net 'VDD' is not. Warning: The via "via12Fat_3_4" data is corrupted. Via instance 0xF0 has a lower enclosure wire 0xC0 that does not match the via master enclosure size. Via instance 0xF8 has a lower enclosure wire 0xC8 that does not match the via master enclosure size. prompt> check_database -verbosity high -physical ... Warning: The via "via12Fat_3_4" data is corrupted. Via instance 0xF0 has a lower enclosure wire 0xC0 that does not match the via master enclosure size. Via instance 0xF8 has a lower enclosure wire 0xC8 that does not match the via master enclosure size. prompt> check_database -verbosity high -netlist ... Warning: The hierarchical net 'VDD' is inconsistent with the flat net 'VDD'. The hierarchical net 'VDD' is power, while the flat net 'VDD' is signal. The hierarchical net 'VDD' is connected to leaf pin 'U1/A', but the flat net 'VDD' is not. check_database 298 IC Compiler™ Tool Commands Version L-2016.03 The hierarchical net 'VDD' is connected to leaf pin 'U2/A', but the flat net 'VDD' is not. SEE ALSO open_mw_cel(2) check_design(2) check_physical_design(2) report_design(2) Chapter 1: check_database 299 1-299 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_design Checks the current design for consistency. SYNTAX status check_design [-summary] [-no_warnings] [-one_level] [-multiple_designs] [-no_connection_class] [-post_layout | -only_post_layout] [-nosplit] [-unmapped] [-cells] [-ports] [-designs] [-nets] [-tristates] [error-ids] [-html_file_name html_file] ARGUMENTS -summary Displays a summary of the warning messages instead of one message per warning. This does not affect the way error messages are issued. The -summary option used along with the -post_layout or the -only_post_layout option only displays a summary of the missing back-annotation information. -no_warnings Suppresses warning messages, so only error messages are printed. -one_level Performs checks at only the current level of hierarchy. By default, check_design checks the current level and all designs below the current level. -multiple_designs Reports warning messages related to multiply-instantiated designs. With this option, the tool lists all multiply-instantiated designs along with instance names and associated attributes, such as dont_touch, black_box, and ungroup. By default, these messages are suppressed. check_design 300 IC Compiler™ Tool Commands Version L-2016.03 -no_connection_class Suppresses connection class warning messages. This switch is useful while working on GTECH designs and netlists on which connection class violations are expected. By default, these messages are reported. -post_layout Checks the design for annotated information in a links-to-layout flow. The information is annotated on the design after the design has been placed and routed by the backend tool. This includes delay back-annotation, resistance back-annotation, capacitance back-annotation, and PDEF back-annotation; for example, clusters, cell locations, and so on. The -post_layout option lists designs or instances that have any of these annotations missing. This option must be used at least once for a design flow to validate the back-annotation part of the links-to-layout flow. -only_post_layout Checks only the annotated information in a links-to-layout flow. The information includes delay back-annotation, resistance back-annotation, capacitance back-annotation, and PDEF back-annotation; for example, clusters, cell locations, and so forth. This option lists designs or instances that have any of these annotations missing. The -only_post_layout option can be used instead of the -post_layout option to validate the back-annotation part of the links-to-layout flow. -nosplit Prevents lines from being split when column fields overflow. Most of the design information is listed in fixed-width columns. If the information for a given field exceeds the column width, the next field begins on a new line in the correct column. -unmapped Reports warning messages for unmapped cells when the cells are being checked. By default, these messages are suppressed. -cells Reports the following warning messages for cells: LINT-0, LINT-1, LINT-10, LINT-32, LINT-33, LINT-58, LINT-59, LINT-60, and LINT-61 (if the -unmapped option is used). -ports Reports the following warning messages for ports: LINT-5, LINT-6, LINT-8, LINT-28, LINT-29, LINT-31, and LINT-52. -designs Reports the following warning messages for designs: LINT-25, LINT-46, and LINT-55. Chapter 1: check_design 301 1-301 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -nets Reports the following warning messages for nets: LINT-2, LINT-3, LINT-4, LINT-35, LINT-38, LINT-47, and LINT-54. -tristates Reports the following warning messages for tristates: LINT-34 and LINT-63. error-ids Reports warning messages for specified error IDs, such as LINT-2. -html_file_name html_file Generates a report for the check_design command in HTML format. By default, the check_design command writes reports in standard output. The -html_file_name option redirects the output to a specified HTML file. DESCRIPTION The check_design command checks the internal representation of the current design for consistency, and issues error and warning messages as appropriate. Error messages indicate design problems of such severity that the compile command does not accept the design; for example, recursive hierarchy in a design (when a design references itself) is an error. Warning messages are informational and do not necessarily indicate design problems. However, these messages should be investigated. The check_design command flags multiple instances of a design within a system. If a design is instantiated in two different designs, a warning message is issued. For information on how to respond to error messages dealing with multiple instances, see the uniquify command man page. The check_design -summary command automatically runs on every design that is compiled. However, you can use the check_design command explicitly to see warning messages. Potential problems detected by this command include unloaded input ports or undriven output ports, nets without loads or drivers or with multiple drivers, cells or designs without inputs or outputs, mismatched pin counts between an instance and its reference, tristate buses with non-tristate drivers, wire loops (timing loops with no cells in them) across hierarchies, and so forth. Multicorner-Multimode Support This command has no dependency on scenario-specific information. check_design 302 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following command checks the current design for problems and issues error and warning messages: prompt> check_design The following command checks only the current level of the design: prompt> check_design -one_level SEE ALSO check_library(2) check_timing(2) current_design(2) set_dont_touch(2) uniquify(2) check_design_allow_non_tri_drivers_on_tri_bus(3) check_design_check_for_wire_loop(3) Chapter 1: check_design 303 1-303 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_error Reports extended information on message IDs from the last command. SYNTAX status check_error [-verbose] [-reset] ARGUMENTS -verbose Displays the list of message IDs found during previous commands. By default, the command only returns the error status. -reset Resets the list of previously found message IDs. After resetting the error list, the check_error -verbose command returns an empty list. By default, the command does not modify the message list. DESCRIPTION The check_error command is used to compare error, warning, or informational messages issued by previous commands to the list of message IDs specified by the check_error_list variable. While it is most commonly used for error messages, the variable may contain error, warning, or informational message IDs. If the check_error command finds message IDs that are specified in the check_error_list variable, the command returns 1. If the check_error command does not find any messages that are specified by the check_error_list variable, the command returns 0. Messages that are suppressed by the suppress_message command are reported by check_error. If you want suppressed messages to be ignored by check_error then you must remove their message IDs from the check_error_list variable. Multicorner-Multimode Support This command has no dependency on scenario-specific information. check_error 304 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following example shows how to use the check_error command to check if execution errors are specified by the check_error_list variable: prompt> printvar check_error_list check_error_list = "UID-3 UID-4 EQN-18 EQN-19" prompt> check_error 0 prompt> link Error: Current design is not defined. (UID-4) 0 prompt> check_error 1 prompt> check_error -verbose {UID-4} 1 The following command resets the error list: prompt> check_error -reset -verbose {UID-4} 1 prompt> check_error -verbose 0 To use the check_error command in a script to see if specified errors occurred in the previous commands, use the following command: prompt> if { [check_error] } { echo failure_message exit } else { echo success_message } SEE ALSO check_error_list(3) suppress_message(2) Chapter 1: check_error 305 1-305 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_fp_budget_result Performs post-budgeting timing analysis. SYNTAX status check_fp_budget_result -file_name output_design_report [-blocks block] [-pins pin] [-html] [-html_dir dir_name] Data Types output_design_report block pin dir_name string string string string ARGUMENTS -file_name output_design_report Specifies the name of the ASCII format output timing budgeting report file to write. Use the -html and -html_dir options to write an HTML format report. This option is required. -blocks block Specifies name of the plan groups to include in the timing budgeting report. You can specify the block argument by specifying a collection generated by the get_cells command. By default, the command generates the budgeting analysis report for all pins on all plan groups. -pins pin Specifies name of a pin on a plan group to include in the timing budgeting report. You can specify the value of pin by using a collection generated by the get_pins command. By default, the command generates the budgeting analysis report for all pins on all plan groups. -html Generates an HTML-format report in addition to the ASCII-format report. check_fp_budget_result 306 IC Compiler™ Tool Commands Version L-2016.03 -html_dir dir_name Specifies the name of the directory in which to generate the HTML-format report. If you do not specify this option, the tool writes the HTML-format report to the check_budget_result_html directory. DESCRIPTION This command generates a report containing budgeted and actual delays through a hierarchical block. A timing path starts at a startpoint and ends at an endpoint. For this report, hierarchical pins separate timing paths into timing path segments. This report contains the actual and budgeted delay for each of timing path segment. You can use this report to analyze the timing budgeting process. For each pin on the block, the report lists the worst-case timing paths per clock domain passing through the pin. The report shows the budgeted and actual delays for each path segment on the timing path. This command can be run only after running the IC Compiler Timing Budgeter. If you do not specify the -blocks or -pins options, the command writes out the information for the entire design. You can specify the -blocks or -pins option to restrict the information written. The information in the report file is divided by soft macro or plan group. All the timing path information related to one soft macro or plan group is grouped together. If you specify the -html option, the command generates an HTML-format report in addition to the ASCII-format report file. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example creates a report file named Ib1.rpt that contains timing budgeting information about the B1 block. prompt> check_fp_budget_result -blocks B1 -file_name b1.rpt The following example creates a report file named all.rpt that contains timing budgeting information about the entire design. Chapter 1: check_fp_budget_result 307 1-307 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 prompt> check_fp_budget_result -file_name all.rpt SEE ALSO allocate_fp_budgets(2) check_fp_timing_environment(2) get_cells(2) get_pins(2) check_fp_budget_result 308 IC Compiler™ Tool Commands Version L-2016.03 check_fp_pin_alignment Checks the soft macro or plan group pin alignment QoR. SYNTAX status check_fp_pin_alignment [-detour] [-tolerance real] [-report_nets] [-nets collection] ARGUMENTS -detour Generates a detour report for soft macro or plan group pins. Note that unlike pin alignment checking, pin detour checking is performed on all two-pin and multi-pin nets connected to soft macros or plan groups. The detour measure of a net is calculated as dividing the estimated routing length of the whole net by the estimated routing length of the standard cell pins on this net. If you specify this option, the tool computes a count of the number of nets in which such a detour exists. When used in conjunction with the -report_nets option, the tool generates an actual list of nets with detours. To suppress reporting of nets that are slightly detoured, use the -tolerance option. -tolerance real Specifies the percentage tolerance for the detour report. This option allows you to specify the percentage in which the perimeter of the first bounding box is allowed to be larger than the perimeter of the second bounding box, before the net is flagged as having a detour. It is useful for suppressing reporting of slightly detoured nets by supplying it with a small tolerance value, such as 0.1. The valid range for tolerance is from 0 through 100 percent. A tolerance value greater than 100 is reset to 100. A tolerance value less than 0 is reset to 0. The default value for tolerance is 0. -report_nets Prints out the individual net names in the pin detour and pin alignment report. Chapter 1: check_fp_pin_alignment 309 1-309 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 By default, the tool outputs only the detoured net count. -nets collection Specifies the nets for which soft macro or plan group pin alignment and pin detour checks are performed. DESCRIPTION This command checks the soft macro or plan group pin alignment QoR. If you do not specify the -detour option, the tool performs normal alignment checking. Alignment checking is limited to two-pin nets with at least one connection to a soft macro or a plan group. Nets not connected to a soft macro nor a plan group or those with more than two connections of any kind are not checked. In particular, a net connected to a top-level pin (that is, a terminal) is not checked unless it is connected to a soft macro or a plan group on the other end. A text report like the following is produced at the end of the alignment checking: ****************************************************************** Report: check_fp_pin_alignment pin alignment check Design: RISC_CORE Version: F-2011.09 Date: Thu Oct 27 20:10:35 2011 ****************************************************************** All numbers cited pertain only to two-connection nets with at least one soft macro connection 186 total two-connection nets 176 alignable two-connection nets (176 non-blocked) 23 unaligned alignable two-connection nets (23 non-blocked) 66 aligned two-connection nets on different metal layers 0 aligned two-connection nets on different metal layers (soft macro -> soft macro connections) The definitions for terms used in this report are as follows: alignable nets A two-pin net with only a single soft macro or a plan group pin is considered alignable if the non-soft-macro non-plan-group pin (a terminal, a standard cell pin, or a hard macro pin) is located within the projection of the soft macro or plan group edge on which the soft macro or plan group pin is located. A two-pin net connected to soft macros or plan groups at both ends is considered alignable if the projections of the soft macro or plan group edges on which the soft macro or plan group pins sit overlap. non-blocked A two-pin net is considered "non-blocked" if the flyline connecting the two pins is not interrupted by any soft macro, plan group or hard macro not connected to the net. check_fp_pin_alignment 310 IC Compiler™ Tool Commands Version L-2016.03 If you specify the -report_nets option, the names of all nets that are alignable but are unaligned are printed out. If you specify the -detour option, a detour report is generated. A detour is caused by an invalid soft macro or plan group pin placement, which causes routing from the source to targets to be longer than is necessary. The detour report consists of a simple count of the number of nets with a detour measure exceeding the tolerance specified by the -tolerance option. Detour measures of interconnected feedthrough nets created by IC Compiler during pin cutting or top-down pin placement are computed as a single net. If you specify both the -report_nets option and the -detour option, the individual nets that fail the detour test are listed in the detour report. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example checks the soft macro pin alignment using a detour report. prompt> check_fp_pin_alignment -detour ****************************************************************** Report: check_fp_pin_alignment detour check Design: TOP Version: F-2011.09 Date: Thu Oct 27 20:10:35 2011 ****************************************************************** 106 pin detours. prompt> check_fp_pin_alignment -report_nets -detour ****************************************************************** Report: check_fp_pin_alignment detour check Design: RISC_CORE Version: F-2011.09 Date: Thu Oct 27 20:10:36 2011 ****************************************************************** 2 pin detours. /****************** Nets with pin detour, tolerance = 0.000000 *************** OUT_VALID Oprnd_A[11] ******************************************************************* SEE ALSO check_fp_pin_assignment(2) Chapter 1: check_fp_pin_alignment 311 1-311 IC IC Compiler™ Compiler™ Tool Tool Commands Commands check_fp_pin_alignment L-2016.03 Version L-2016.03 312 IC Compiler™ Tool Commands Version L-2016.03 check_fp_pin_assignment Performs pin placement checks. SYNTAX status check_fp_pin_assignment [-block_level [-net_routing_constraints]] [-layers] [-macro_type soft_macros | hard_macros | all] [-match_pin_shapes] [-missing] [-nets net_collection] [-no_stacking] [-off_edge] [-outside_pin_guide] [-pin_mask_constraint] [-pin_size] [-pin_preroute_spacing] [-pin_spacing] [-pin_type signal_pins | pg_pins | all] [-shorts] [-single_pin connected | unconnected | all] [-wiretrack [-preferred_wiretrack_only] [-allow_half_wiretrack]] [objects] Data Types net_collection objects collection collection ARGUMENTS -block_level Checks block-level pin placement. The tool performs the tests you specify on top-level pins. By default, the command checks soft macro pins. -net_routing_constraints Checks if the soft macro pins, plan group pins, or top-level terminals comply with the constraints set by using the set_net_routing_rule command or the set_net_routing_layer_constraints command. The tool checks the pin layer, pin width, and pin spacing against the specified constraints. You must use this option with Chapter 1: check_fp_pin_assignment 313 1-313 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 the -block_level option; otherwise, it is ignored. By default, the command does not check net routing constraints. -layers Determines if pins are placed on legal metal layers as specified by the -allowed_layers option of the set_fp_pin_constraints command. For information about the default minimum and maximum metal layers used for pin placement, see the set_fp_pin_constraints man page. By default, the command does not perform this check. -macro_type soft_macros | hard_macros | all Specifies the types of macros for pin checking. Accepted values are • soft_macros Checks soft macro pins. • hard_macros Checks hard macro pins. Hard macro pin checks are limited to the -match_pin_shapes, -single_pin, -shorts, -missing, and -off_edge options. All other checks specified with the -macro_type hard_macros option are silently ignored. • all Checks both soft and hard macro pins. By default, the tool checks only soft macro pins and pins specified by the -single_pin option. The pins checked by the -single_pin option depend on the setting of the -pin_type option. -match_pin_shapes Checks if the macro pins or plan group pins on overlapping or abutted edges match. This option applies to pins placed on or straddling an abutted edge. Only pins that touch each other without shorting are tested. In the case of abutting pins, every abutting edge of a pin must be fully abutted with an abutting edge of one or more pins. That is, an abutting edge should not have any part of the edge that is not covered by an edge of the abutting pin. In the case of overlapping pins, their boundaries must match exactly. The command checks macro or plan group pins that overlap terminals. Pins that fail to satisfy either one of the two criteria are flagged. The command ignores this option if you use the -block_level option. By default, the command does not perform this check. -missing Determines if any pins are missing. By default, the command does not perform this check. check_fp_pin_assignment 314 IC Compiler™ Tool Commands Version L-2016.03 -nets net_collection Specifies the collection of nets for pin placement checking. If you specify this option, the command checks pin placement only on the soft macro pins and relevant hard macro pins connected to the specified nets. If your design contains plan groups, the command checks pin placement only on plan group pins connected to the specified nets if plan groups are given in the objects argument. If you do not specify this option, but specify macros for the objects argument, the command checks all relevant pins on the specified soft and hard macros. Similarly, if you do not specify this option, but specify plan groups for the objects argument, the command checks all relevant pins on the specified plan groups. If you do not specify either this option or the objects argument, the command checks all relevant soft and hard macro pins. -no_stacking Checks for stacking constraint violations set by the -no_stacking option of the set_fp_pin_constraints command. The stacking constraints specify the proper conditions for overlapping pins on different layers. Valid values for this constraint are stacking_allowed, pg_pins_only, signal_pins_only, or all. For more information about these constraints, see the set_fp_pin_constraints man page. By default, the command does not perform this check. The command does not check stacking constraints if you did not set them by using the set_fp_pin_constraints command. If you did set stacking constraints, each macro or specified plan group is checked based on the assigned stacking constraint. For example, if a design contains macros A, B, and C with the following stacking constraints: • Macro A: Pin stacking is allowed for both power and ground (PG) pins and signal pins. • Macro B: Pin stacking is not allowed on either PG pins or signal pins. • Macro C: Pin stacking is allowed only for signal pins. The command performs the following tests by using the check_fp_pin_assignment -no_stacking command: • Macro A: The command does not check for pin stacking and allows both types of stacking for this macro. • Macro B: The command checks stacking on both PG and signal pins. • Macro C: The command checks stacking only on PG pins. The -no_stacking option also turns on the -shorts option. Chapter 1: check_fp_pin_assignment 315 1-315 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 If you use the -block_level option, the command performs terminal checks based on the stacking setting assigned in an earlier call to the set_fp_pin_constraints -block_level command. -off_edge Determines if part of a pin outline coincides with an edge. A soft macro pin or plan group pin is flagged if none of the pin edges coincide with its block edges. If you use the -block_level option, the command flags a terminal if none of its edges coincide with an edge of the top-level cell. By default, the command does not perform this check. -outside_pin_guide Checks if the center of a pin is outside the associated pin guide. By default, the command does not perform this check. -pin_mask_constraint Checks if abutted pins have conflicting mult pattern mask constraints. The mult pattern mask constraint for the pin is set by the user or the tool. The constraint allows the mask to be decomposed easily during manufacturing using mult patterning technology. The following combinations of double pattern mask constraints values for abutted pins are considered illegal: • mask1_hard vs. mask2_hard • mask1_hard vs. mask2_soft • mask1_soft vs. mask2_hard • mask1_soft vs. mask2_soft • Any nonzero double pattern mask constraint vs. zero -pin_size Checks if pins honor their width and depth constraints. If the pins do not have width or depth constraints, but are on the double patterning layers, this option checks if the pins honor the default double patterning pin depth requirement. If pins have width and depth constraints and are also on double patterning layers, this option checks only if the width and depth constraints are honored. -pin_preroute_spacing Determines if any signal pin is closer to a preroute than the number of wire tracks specified by the -pin_preroute_spacing option of the set_fp_pin_constraints command. By default, the command does not perform this check. check_fp_pin_assignment 316 IC Compiler™ Tool Commands Version L-2016.03 -pin_spacing Determines if any two signal pins are closer than the number of wire tracks specified by the -pin_spacing option of the set_fp_pin_constraints command. By default, the command does not perform this check. -pin_type signal_pins | pg_pins | all Specifies the types of pins to be checked. Valid values are • signal_pins Checks signal pins. • pg_pins Checks power and ground pins. Power and ground pin checks are limited to the -match_pin_shapes, -single_pin, -shorts, -layer, -missing, and -off_edge options. All other checks specified with the -pin_type pg_pins option are silently ignored. • all Checks both signal pins and power and ground pins. If you do not specify this option, only signal pins are checked. -shorts Checks for shorts that are caused by two pins on the same layer that touch or overlap each other. By default, the command does not perform this check. -single_pin connected | unconnected | all Checks for unroutable pins on abutted edges. Valid values for this option are: • connected A macro or plan group pin is flagged as a single (unroutable) pin if any one of the following are true: The macro or plan group pin is placed on a block edge that abuts another block • ❍ edge and the macro or plan group pin does not abut the other block pin on the same metal layer. The macro or plan group pin is placed on a block edge that coincides with the • ❍ top-level cell boundary and connects to anything other than a terminal (top-level pin), unless the pin connects only to other pins on the same block and those pins are stacked on top of the pin. The macro or plan group pin is placed on a block edge that coincides with the • Chapter 1: check_fp_pin_assignment 317 1-317 IC IC Compiler™ Compiler™ Tool Tool Commands Commands ❍ • L-2016.03 Version L-2016.03 top-level cell boundary and the macro or plan group pin is connected only to a terminal, but the terminal is not stacked on top of the macro or plan group pin on the same metal layer. unconnected A macro or plan group pin is flagged as a single (unroutable) pin if either one of the following is true: The macro or plan group pin is logically unconnected to any pin or terminal and is • ❍ placed on a part of the block edge that abuts another block edge. The macro or plan group pin is logically unconnected to any pin or terminal and is • ❍ placed on a part of the block edge that coincides with the top-level cell boundary. • When you specify -single_pin unconnected, the command also checks terminals. A terminal is flagged if it is logically unconnected and is located on a top-level cell boundary that abuts a macro edge. • all A macro or plan group pin is flagged as a single (unroutable) pin if any of the scenarios described for connected or unconnected occur. This option performs routability checks on soft macro and hard macro pins. No other checks are performed on hard macro pins unless you use the -macro_type hard_macro option. For more details, see the descriptions for the -macro_type and -single_pin options. If hard macro pins are detected which are off of the hard macro boundary, it is interpreted as a "center" pin, and it is reported as a single pin if there is not a top-level terminal stacked on top of the pin. This option is ignored if you specify the -block_level option. By default, the command does not perform this check. -wiretrack Determines if pins are centered on wire tracks. A vertical wire track on the same layer as the pin must coincide with the vertical central axis of the pin for pins on a horizontal edge. A horizontal wire track must coincide with the horizontal central axis of a pin on a vertical edge. For an off-edge pin, the pin's vertical and horizontal central axes must coincide with a horizontal and a vertical wire track, respectively, unless you use the -preferred_wiretrack_only option. By default, the command does not perform this check. check_fp_pin_assignment 318 IC Compiler™ Tool Commands Version L-2016.03 -preferred_wiretrack_only Determines if off-edge pins are centered on preferred wire tracks only. Use this option with the -wiretrack option for verification of off-edge pins. When this option is used, the command verifies that off-edge pins are centered on wire tracks in the preferred direction of the metal layer of the pins. The pins are not checked against the wire tracks in the nonpreferred direction. You must use this option together with the -wiretrack option; otherwise the -preferred_wiretrack_only option is silently ignored. -allow_half_wiretrack Allow pins to be centered on half wire tracks. A pin on a vertical half wire track is defined as a pin where the vertical central axis of the pin coincides with a center line halfway between adjacent vertical wire tracks of the same layer. Similarly, a pin on a horizontal half wire track is defined as a pin where the horizontal central axis of the pin coincides with a center line halfway between adjacent horizontal wire tracks of the same layer. This option must be used in conjunction with the -wiretrack option. If you specify both the -wiretrack -allow_half_wiretrack options, the command does not flag pins that are on the half wire track and only reports pins that are not centered on wire track and half wire track. By default, this option is off. objects Specifies the collection of macros or plan groups for pin placement checking. Either soft macros or plan groups, or a mixture of both can be in the objects argument. The command checks pin placement only on the macros or plan groups you specify. By default, if no macros or plan groups are specified, the command checks the pins on all soft and relevant hard macros. DESCRIPTION This command performs the selected pin placement checks using the constraint values set by the set_fp_pin_constraints command. The command uses default pin constraints if you have not set pin constraints. You can review the pin constraints with the report_fp_pin_constraints command. If you use the -block_level option, the command performs checks on terminals (top-level pins). Multicorner-Multimode Support This command has no dependency on scenario-specific information. Chapter 1: check_fp_pin_assignment 319 1-319 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example checks a soft macro named blockA for shorted and missing pins. It also determines if any two signal pins are closer than the number of wire tracks previously specified by the -pin_spacing option of the set_fp_pin_constraints command. prompt> check_fp_pin_assignment -shorts -missing \ -pin_spacing [get_cells blockA] The following example checks that soft macro pins are placed on wire tracks. prompt> check_fp_pin_assignment -block_level -wiretrack SEE ALSO check_fp_pin_alignment(2) report_fp_pin_constraints(2) set_fp_pin_constraints(2) set_net_routing_rule(2) set_net_routing_layer_constraints(2) check_fp_pin_assignment 320 IC Compiler™ Tool Commands Version L-2016.03 check_fp_rail Checks the integrity of the power network created by power network synthesis, early in the design planning stage. SYNTAX status check_fp_rail -nets nets [-ring] [-floating_segment] [-power_switch_connection] Data Types nets collection or list ARGUMENTS -nets nets Specifies the net name(or names) of the power network for integrity checking. If no power straps exist with the specified net name, the command fails and issues an error message. You can specify a single net name or multiple net names separated by a comma or a space. -ring Checks only the core rings of the power network. If a core ring segment is broken, a warning message is issued. By default this option is off. -floating_segment Checks only the floating segments in the power network. If a floating segment is detected, a warning message is issued. By default, this option is off. -power_switch_connection Checks only the connection between power switch cell input pin and the permanent power/ground straps. If there are unconnected power switch input pins, a warning message is issued. Use this option in a multivoltage design with power-down voltage areas. By default, this option is off. Chapter 1: check_fp_rail 321 1-321 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 DESCRIPTION This command allows you to check the integrity of the power network created by the synthesize_fp_rail and the commit_fp_rail commands early in the design stage. If there are broken core rings, floating segments, or unconnected power switch input pins in the power mesh, a warning message is issued. EXAMPLES The following example shows how to check the VDD ring of a power plan. prompt> check_fp_rail -net {VDD} -ring WARNING: Core ring is broken at (123.400 227.900) SEE ALSO synthesize_fp_rail(2) commit_fp_rail(2) check_fp_rail 322 IC Compiler™ Tool Commands Version L-2016.03 check_fp_timing_environment Performs timing environment analysis. SYNTAX int check_fp_timing_environment [-block_pin_stats] [-unbudgetable_pins] [-unconstrained_pins] [-exception_pins] [-static_logic_pins] [-delay_violators percent] [-num_pin_connections connections] [-block_name block_name] [-pin_name pin_name] [-zero_wire_delay negative_slack_percent] [-bottleneck slack_limit] [-bottleneck_max_cell num_cells] [-bottleneck_no_vipo] [-vipo_timing slack_percent] [-format_report] Data Types connections block_name pin_name negative_slack_percent slack_limit num_cells slack_percent integer string string float float integer float ARGUMENTS -block_pin_stats Specifies whether to print block pin statistics. It prints the number of budgetable pins, the number of unbudgetable pins, and the total number of pins on the block. -unbudgetable_pins Specifies whether to print block pins that cannot be budgeted. It prints the reason each pin cannot be budgeted: Chapter 1: check_fp_timing_environment 323 1-323 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 * Pin is not connected to net* Pin is not connected to a top-level net, but is connected to an internal net* Pin is not connected to an internal net, but is connected to a top-level net* Only fixed delay exists on one side of the pin* Timing paths through the pins are not constrained* Pin is an input or output clock port* Pin is connected to power or ground net, or has set_case_analysis on it -unconstrained_pins Specifies whether to print unconstrained block pins. A pin is unconstrained if it has no timing paths through it. -exception_pins Specifies whether to print block pins touched by an exception. The exception can be set_false_path, set_multicycle_path, set_min_delay, or set_max_delay. -static_logic_pins Specifies whether to print block pins that are set to static logic state. It prints whether a block pin is tied to high or low by a power or ground net in the input netlist. It also reports if a block pin is set to specific state by set_case_analysis, set_logic_one, or set_logic_zero. -delay_violators percent Specifies whether to print cells with delays greater than the specified percentage of the capture clock period. The percent argument must be greater than or equal to zero. The command traverses all critical paths per clock domain through a block pin. -num_pin_connections connections Specifies whether to print the number of net connections from this block to other blocks, top-level standard cells, pad cells, or to top-level ports. The connections argument must be greater than zero. This option also specifies the number of connections to be displayed in the GUI for each type of net connection. -block_name block_name Specifies whether to print a budgeting report for a particular block only. The name of block could be a plan group, instance name, or master name. -pin_name pin_name Specifies whether to print a budgeting report for a particular pin only. The name of pin must exactly match a pin on the plan group. -zero_wire_delay negative_slack_percent Specifies whether to perform timing analysis with zero wire delays and print the paths that have slack less than the negative percentage of the capture clock period. The check_fp_timing_environment 324 IC Compiler™ Tool Commands Version L-2016.03 negative_slack_percent argument must be less than zero. Both the path and the number of logic levels on the path are printed. -bottleneck slack_limit Specifies whether to report bottleneck cells. It prints the leaf cells that contribute to multiple timing violations. It lists the leaf cell, its reference, and the number of paths through the leaf cell that have timing violations. Based on this report, you can check the fanin and fanout logic to determine the possible cause of the timing bottleneck. It also specifies the slack limit for reporting bottleneck cells. Only timing paths having slack less than slack_limit are explored for finding bottleneck cells. -bottleneck_max_cell num_cells Specifies the number of bottleneck cells to report. The num_cells argument must be greater than zero. If this option is not specified, a maximum of 20 bottleneck cells are reported. -bottleneck_no_vipo Specifies whether to perform virtual in-place optimization (VIPO) before reporting bottleneck cells. The default is to run virtual in-place optimization. -vipo_timing slack_percent Specifies whether to report timing analysis results based on virtual in-place optimization (VIPO). This report can help visualize the timing analysis report after the actual in-place optimization has been run. It also specifies the slack limit for timing paths in the virtual in-place optimization timing report. Only the paths having slack less than slack_percent of the capture clock period are reported. -format_report Specifies whether to format the report in table form. If this option is not specified, the report is printed in a single line format. The report in table form is easier to look at, but might be difficult to parse using automated tools. DESCRIPTION This command generates a report that contains additional design information that helps you analyze the budgets assigned to each block. The block can be a plan group or a soft macro. The report can be used to debug the budgets generated by the IC Compiler design planning timing budgeter. Chapter 1: check_fp_timing_environment 325 1-325 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 The additional design information includes, but is not limited to, timing constraints in the design, timing exceptions in the design, delay distribution on the worst timing path through a block port, pins tied to high or low, high negative slack on a timing path, and so on. This command can be run before or after calling the IC Compiler design planning timing budgeter. All of the command options are optional. The options determine the type of information put in the output report. If no options are specified, no information is written out. You must provide at least one option to have something in the output report. In the output, the following information is printed for the whole design: * zero wire delay based negative slack paths * bottleneck cells * virtual in-place optimization timing report The rest of the report is divided by soft macro or plan group. All the timing environment information related to one soft macro or plan group is printed together. The -bottleneck_max_cell and -bottleneck_no_vipo options are ignored if the -bottleneck option is not specified. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following command creates a report file, stat.rpt, that contains summary information about budgetable, unbudgetable and total block pins in the design. prompt> check_fp_timing_environment -block_pin_stats > stat.rpt The following command creates a report file, violators.rpt, that contains cell delay violators. The cells are printed if they have a delay of more than 50 percent of the related clock period. prompt> check_fp_timing_environment -delay_violators 50 > violators.rpt The following example reports block pins that are unconstrained or have timing exceptions on them. prompt> check_fp_timing_environment -unconstrained_pins \ -exception_pins check_fp_timing_environment 326 IC Compiler™ Tool Commands Version L-2016.03 The output has the following format: ===================================================== Plan Group Name: <PG Name>, Master Name: <Reference Name> ===================================================== ##### Information regarding block pins without constraint or delay information Plan Group Port = <port name1>: is not constrained. Plan Group Port = <port name2>: is not constrained. ##### Information regarding blocks pins that are touched by an exception Plan Group Port = <port name3>: Port touched by set_false_path exception. Plan Group Port = <port name4>: Port touched by set_multicycle_path exception. SEE ALSO allocate_fp_budgets(2) check_fp_budget_result(2) Chapter 1: check_fp_timing_environment 327 1-327 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_freeze_silicon Performs an eco cell to spare cell mapping feasibility analysis on the design. This command is typically used in a freeze silicon ECO flow. SYNTAX status check_freeze_silicon ARGUMENTS The check_freeze_silicon command has no arguments. DESCRIPTION The check_freeze_silicon command performs an eco cell to spare cell mapping feasibility analysis on the design. The report includes the number of eco cells and spare cells in the design, and the eco cells mapping feasibility analysis, and other useful information about the lib cell, such as threshold voltage group, drive strength and power leakage. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example shows feasibility check report. prompt> check_freeze_silicon **************************************** Report : feasibility check Design : CORE Version: G-2012.06-SP4 Date : Mon Sep 24 20:45:23 2012 **************************************** // Check freeze silicon report summary ======================================================= check_freeze_silicon 328 IC Compiler™ Tool Commands Version L-2016.03 Type Eco Number Spare Number Total: 13 60 ======================================================= // ECO CELLs mapping feasibility: ======================================================= // These references don't have spare cells: OAI31X1 DLY4X4 INVX3 AND4XL OAI2BB2X1 // These references don't have enough spare cells: Type Eco Number Spare Number NAND4XL 3 2 INVXL 3 1 ======================================================= // Eco vs Spare detail report ========================================================================= =============================== Type Eco Number Spare Number Vth_group Drive_strength Power_leakage INVX8 -4 -0.859444 8823.709961 BUFX6 1 2 -- 1 2 -- 1 -- -- 3 1 -- NOR3X8 -13190.655273 3 -- AND3XL -8040.989746 2 -- XOR2X1 -17071.150391 2 -- BUFX8 -19169.406250 2 -- AND4X2 -7329.886719 2 -- OR2XL -15510.257812 3 -- XOR3XL -27894.359375 3 -- 0.839473 16106.979492 AND3X8 0.940156 16749.720703 OAI31X1 0.077852 2839.916260 INVXL 0.059397 557.142517 0.553695 0.052200 0.087977 1.112450 0.216134 0.063906 0.038241 Chapter 1: check_freeze_silicon 329 1-329 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 XOR2XL -20550.919922 2 -- AND2XL -7234.810059 3 -- 0.042525 0.059008 1 -- -- 0.253915 DLY4X4 10905.224609 CLKMX2X6 0.564671 -40903.886719 3 -- NAND4XL 0.063678 3 2 -- 2177.355713 -56905.968750 3 -- 1 -- -- -28681.214844 3 -- 1 -- -- 1 -- -- AND2X8 -17233.214844 3 -- 1.030519 XNOR3XL 0.038401 -27853.902344 2 -- OR3X1 -20829.560547 3 -- OR3X2 -14829.480469 2 -- NOR3XL -884.248291 3 -- AND4X1 -5172.642578 2 -- CLKMX2X8 0.836803 -33615.250000 3 -- XOR3X4 0.355980 OAI2BB2X1 0.085834 OR2X8 1.001016 6651.741699 AND4XL 0.047527 8035.480957 INVX3 0.317955 3221.233887 0.107236 0.233281 0.035706 0.094153 Type Eco Number Spare Number Vth_group Drive_strength Power_leakage ========================================================================= =============================== Feasibility check completed. check_freeze_silicon 330 IC Compiler™ Tool Commands Version L-2016.03 1 SEE ALSO place_freeze_silicon(2) map_freeze_silicon(2) create_freeze_silicon_leq_change_list(2) Chapter 1: check_freeze_silicon 331 1-331 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_interface_optimization_setup Checks the setup for performing interface optimization by using the route_opt command. SYNTAX status check_interface_optimization_setup [-distributed_hosts] [-initialization] ARGUMENTS -distributed_hosts Checks only the distributed processing setup specified for parallel execution of block update during interface optimization by using the route_opt command. When you specify this option, the tool: 1) Identifies the blocks and host options specified by using the set_top_implementation_options command 2) Checks the directory and file permissions 3) Tests distributed processing using options that are specified by using the set_host_options and set_top_implementation_options commands. If you do not specify either the -distributed_hosts or -initialization option, the tool performs both the distribution host and initialization checks. -initialization Checks only the consistency of the blocks floorplan data, which is loaded during interface optimization with the top-level floorplan data. This check is done for each of the blocks opened for interface optimization. The consistency checks are performed for site arrays, VA, bounds, routing layers loaded from the blocks. If you do not specify either the -distributed_hosts or -initialization option, the tool performs both the distribution host and initialization checks. DESCRIPTION The check_interface_optimization_setup command checks whether the setup for interface optimization is correct. It is recommended to run this command after using the check_interface_optimization_setup 332 IC Compiler™ Tool Commands Version L-2016.03 set_hosts_options and set_top_implementation_options commands and before running the route_opt command with interface optimization. This helps you find any issues with the set up for interface optimization without actually running the route_opt command. If the command reports any error or warning messages, review these messages and resolve them before proceeding. Multicorner-Multimode Support This command uses information from active scenarios only. EXAMPLES The following example checks the interface optimization related setup: prompt> set_host_options -pool lsf -name LSF_hosts prompt> set_top_implementation_options -optimize_block_interface true \ -block_references {ALU} \ -host_options LSF_hosts prompt> check_interface_optimization_setup # Resolve errors/warnings reported by above commands and run route_opt with interface optimization. prompt> route_opt SEE ALSO set_host_options(2) set_top_implementation_options(2) check_block_abstraction(2) check_physical_design(2) route_opt(2) Chapter 1: check_interface_optimization_setup 333 1-333 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_isolation_cells Reports the existing isolation cells in the current design. It also reports if any isolation cell is redundant or might be required. SYNTAX status check_isolation_cells [-input] [-output] [-inside] [-outside] [objects] Data Types objects list ARGUMENTS -input Checks the isolation cells only on the input nets of the top-level logical hierarchies or voltage areas. -output Checks the isolation cells only on the output nets of the top-level logical hierarchies or voltage areas. -inside Checks the isolation cells that are inside the top-level logical hierarchies or voltage areas. -outside Checks the isolation cells that are outside the top-level logical hierarchies or voltage areas. objects Specifies a list of voltage areas (in physical context) or top-level logical hierarchies (in logical context) that are for which the query is run. check_isolation_cells 334 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION The check_isolation_cells command reports the isolation cells that are associated with the top-level logical hierarchies or voltage areas in the design. The top-level logical hierarchies can be given as inputs only from dc_shell and voltage areas can be given as inputs only from psyn_shell. This command also reports if there are possible redundant isolation cells in the design. When in dc_shell, this command reports about the possible requirement of an isolation cell on a net if that nets crosses two logical hierarchies without any isolation cell. In psyn_shell, if a net is sourced in a voltage area and sinked into another, the command reports that there might be a requirement of an isolation cell on that net. If no logical hierarchies are given in this command in dc_shell, the command looks all of the top-level logical hierarchies and reports on the isolation cells based upon the given switches. In psyn_shell, if no voltage areas are specified, the command looks at all existing voltage areas, except the default voltage area, and reports about the isolation cells according to the given switches. The command does not accept default voltage area as an input from psyn_shell. This command works both for multisupply and multivoltage designs. In the case of a multivoltage design, this command treats enabled level-shifter cells also as isolation cells. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following is an example report from the check_isolation_cells command: prompt> check_isolation_cells ********************************************* Information : Output vdd_region_2/state_out[31] state_out_iso31 outside vdd_region_2 Information : Output vdd_region_2/state_out[30] state_out_iso30 outside vdd_region_2 Information : Output vdd_region_2/state_out[29] state_out_iso29 outside vdd_region_2 Information : Output vdd_region_2/state_out[28] state_out_iso28 outside vdd_region_2 Information : Output vdd_region_2/state_out[27] state_out_iso27 outside vdd_region_2 Information : Output vdd_region_2/state_out[26] state_out_iso26 outside vdd_region_2 Chapter 1: check_isolation_cells has an isolation cell has an isolation cell has an isolation cell has an isolation cell has an isolation cell has an isolation cell 335 1-335 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Information : Output vdd_region_2/state_out[25] has an isolation cell state_out_iso25 outside vdd_region_2 Information : Output vdd_region_2/state_out[24] has an isolation cell state_out_iso24 outside vdd_region_2 Information : Output vdd_region_2/state_out[23] has an isolation cell state_out_iso23 outside vdd_region_2 Total number of isolation cell(s) : 9 ********************************************* 1 SEE ALSO check_level_shifters(2) check_library(2) check_isolation_cells 336 IC Compiler™ Tool Commands Version L-2016.03 check_legality Checks the legality of the current placement. SYNTAX int check_legality [-verbose] ARGUMENTS -verbose Prints a detailed report of all possible violations. By default, the command reports only a summary of all violations. DESCRIPTION The check_legality command checks the legality of the current placement and prints out a report of violation statistics. The violations can be classified as: 1. Cells that are not on rows 2. Cells overlapping each other 3. Cells overlapping with blockages in the design 4. Cells with orientation that is not allowed for the row on which a cell is placed 5. Cells with a core site type not equal to that of the row on which cells are placed 6. Cells overlapping with power straps in the design Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example shows the command for printing out a summary of all violations. prompt> check_legality Chapter 1: check_legality 337 1-337 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 SEE ALSO create_placement(2) legalize_placement(2) check_legality 338 IC Compiler™ Tool Commands Version L-2016.03 check_level_shifters Checks the design for all existing level shifters and nets against the specified level-shifter strategy and threshold. SYNTAX status check_level_shifters [-verbose] ARGUMENTS -verbose Prints a detailed report of all possible violations. By default, only a summary of all violations is printed. DESCRIPTION This command checks the design for all existing level shifters and nets against the specified level-shifter strategy and threshold. It prints out complete statistics of the design regarding existing and required voltage adjustments containing the following information: • Level shifter strategy and threshold • Nets that need level shifters • Nets that need level shifters but are dont_touched • Nets that have multiple driver pins at different operating voltages • Total number of level shifters in the design • Total number of violating level shifters in the design • Total number of violating nets in the design. Multicorner-Multimode Support This command uses information from the current scenario only. Chapter 1: check_level_shifters 339 1-339 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example prints out a summary of all violations: prompt> check_level_shifters **************************************************** Check Level Shifters and Nets Summary **************************************************** Level shifter strategy :low_to_high Level shifter threshold voltage :0 Level shifter threshold percent :0 Number of violating nets (dont_touch) :2 Number of violating nets (multiple driver) :0 Number of violating nets (total) :2 Number of violating level shifters :32 **************************************************** The following example shows the command using the -verbose option: prompt> check_level_shifters -v ---------------------------------------------------------------------Net Driver Pin Input Volt Load Pin Output Volt ---------------------------------------------------------------------n1 U1/out1 0.9 LS1/A 1.08 ========================================================================= == Level Shifter Reference Input Output Violation Reason Opcond Volt Volt ========================================================================= == LS1 LVL2 0.9 0.7 TRUE Lib Cell max_v9 ========================================================================= == SEE ALSO check_library(2) insert_level_shifters(2) remove_level_shifters(2) set_level_shifter_strategy(2) set_level_shifter_threshold(2) check_level_shifters 340 IC Compiler™ Tool Commands Version L-2016.03 check_library Performs consistency checks between logic and physical libraries, across logic libraries, and within physical libraries. SYNTAX status check_library [-mw_library_name phys_library_name_list] [-logic_library_name logic_library_name_list] [-cells cell_list] Data Types phys_library_name_list logic_library_name_list cell_list list list list ARGUMENTS -mw_library_name phys_library_name_list Specifies the Milkyway reference libraries to be checked. If you do not specify this option, the command uses the reference libraries from the open Milkyway design library. If there is no open Milkyway design library, the command uses the reference libraries specified in the mw_reference_library variable. -logic_library_name logic_library_name_list Specifies the logic libraries (.db) to be checked. Other types of libraries such as .ILM are not supported. For logic versus logic library checking, specify two or more libraries, such as the minimum and maximum libraries. If you have set the -compare or -validate options of the set_check_library_options command, specify only two libraries. If you do not specify this option, the command determines the logic libraries in the following order: • Chapter 1: check_library The minimum and maximum libraries that were set with the set_min_library command. 341 1-341 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 • If you have set the -scaling option of the set_check_library_options command, the scaling libraries that were set with the define_scaling_lib_group command. • The link libraries that were set with the link_library and search_path variables. For logic versus logic library checking, the command first groups the link libraries by cell set, and within each group or family the command checks consistencies across all libraries in the same group. The grouping is by majority (> 50%) of same name cells. For example, if lib1 has 9 cells and lib2 has 6, and 5 of them are the same, then they are grouped together. This option is ignored for physical library checking. -cells cell_list Specifies a list of cell names to be checked. If not specified, all cells in the libraries are checked. DESCRIPTION The check_library command checks and reports the items described below, based on the settings of the set_check_library_options command. If you do not run the set_check_library_options command and do not specify any options with the check_library command, the check_library command checks logic versus physical library consistency for the libraries that are set up for the current design. If there are no libraries set up for the current design, the command does not perform any checks. During logic library checking, to report the delay, power, and noise characterization values in the libraries, the Liberty-format description of the libraries must have the library_features attribute set to the respective values: report_delay_calculation, report_power_calculation, and report_noise_calculation. Use the check_library command to verify the libraries before reading in a design. This command checks library qualities in three main areas: • Physical library quality • Logic versus physical library consistency • Logic versus logic library consistency Physical Library Quality Checking Physical library qualities are checked as follows: • Technology data consistency between the specified main library and each linked reference library check_library 342 IC Compiler™ Tool Commands Version L-2016.03 • CEL view versus FRAM view in the library for missing views and mismatched views • Cells with identical names in different reference libraries and the specified main library • Signal electromigration rules • Antenna rules and missing antenna properties • Rectilinear cells • Physical-only cells • Physical properties for place and route including unit tiles for the libraries • Pin routability • Technology data quality • DRC for each cell in the library Logic Versus Physical Library Consistency Checking The command performs the following consistency checks between logic and physical libraries: • Missing cells in the logic or physical library If you specify multiple logic libraries and no cells are found in any of the libraries that match the physical library, the cells are counted as missing in the logic library unless they are physical-only cells. Otherwise, if the cells are found in any of the logic libraries, such as the first library, they are counted as consistent in cell names. • • Missing or mismatched pins (pin names, directions, and types) in the logic and physical library. Note that the input pin direction keyword in a logic cell versus the Input keyword in a physical cell is not a mismatch. • Area values of each standard cell between the logic (.lib or .db) model and FRAM view (PRBoundary and CellBoundary) • Cell footprint (cell_footprint attribute) • Bus character naming style in logic and physical libraries. By default, missing cells and pins and mismatched pins are checked. For logic versus physical library checking, at the end of checking the command reports a cross-check summary that includes the following information: • Number of cells missing in the logic library (excluding physical-only cells) Chapter 1: check_library 343 1-343 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 • Number of cells missing in the physical library • Number of cells with missing or mismatched pins in libraries, if any • The logic versus physical library quality checking PASSED or the logic library is INCONSISTENT with the physical library Logic Versus Logic Library Consistency Checking Logic versus logic library consistency checks include: • General checking at library, cell, pin, and timing group levels for missing cells, missing and mismatched pins or pg_pins, and timing arcs. • Special checking for timing, noise, and power scaling • Special checking for the UPF or multivoltage flow, such as pg_pins, power management cells, and power data • Special checking for the multicorner-multimode flow, such as operating conditions and power-down functions • Library characterization and validation For logic versus logic library checking, at the end of checking the command reports a summary for each specified option. For example, for the -mcmm option, it reports: Logic library consistency check FAILED for MCMM. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES In the following example, the lib1.db and lib2.db logic libraries are checked against the phys_lib physical libraries for missing cells and pins, mismatched pins, the cell footprint, and the bus delimiter: prompt> set_check_library_options -cell_footprint -bus_delimiter 1 prompt> check_library -mw_library_name {phys_lib} \ -logic_library_name {lib1.db lib2.db} #BEGIN_XCHECK_LIBRARY Logic Library: check_library lib1 lib2 344 IC Compiler™ Tool Commands Version L-2016.03 Physical Library: phys_lib check_library options: -cell_footprint -bus_delimiter Version: E-2010.12 Check date and time: Tue Sep 28 20:34:26 2010 List of logic library and file names -------------------------------------------------------------------Logic library name Logic library file name -------------------------------------------------------------------lib1 /usr/lib/lib1.db lib2 /usr/lib/lib2.db -------------------------------------------------------------------#BEGIN_XCHECK_LOGICCELLS Number of cells missing in logic library: 3 (out of 3348) Information: List of cells missing in logic library (LIBCHK-210) -------------------------------------------------------------------Cell name Cell type Physical library -------------------------------------------------------------------AND2 Core phys_lib NOR1 Core phys_lib XOR3 Core phys_lib -------------------------------------------------------------------List of physical only cells -------------------------------------------------------------------Cell name Cell type Physical library -------------------------------------------------------------------GFILL Filler phys_lib GFILL10 Filler phys_lib FILL8 Filler phys_lib -------------------------------------------------------------------#END_XCHECK_LOGICCELLS #BEGIN_XCHECK_PHYSICALCELLS Number of cells missing in physical library: 0 (out of 846) #END_XCHECK_PHYSICALCELLS #BEGIN_XCHECK_PINS Number of cells with missing or mismatched pins in libraries: 1 Error: List of pins mismatched in logic and physical libraries (LIBCHK-213) Logic library: lib1 Physical library: phys_lib ------------------------------------------------------------------Pin direction Pin type Cell name Pin name Logic Physical Logic Physical ------------------------------------------------------------------pnl123 VSSO output Output signal ground SGND input Input signal ground Chapter 1: check_library 345 1-345 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 ------------------------------------------------------------------#END_XCHECK_PINS #BEGIN_XCHECK_BUS Information: List of bus naming styles (LIBCHK-214) ----------------------------------------------------------------Library name Library type Bus naming style ----------------------------------------------------------------phys_lib Physical library _<%d> lib1 Logic library ----------------------------------------------------------------#END_XCHECK_BUS #BEGIN_XCHECK_FOOTPRINT Number of footprints: 1 Warning: List of cells with cell_footprint attribute (LIBCHK-215) ------------------------------------------------------------------Footprint Logic library name Cell name PR boundary ------------------------------------------------------------------TIEH lib1 GTIEH (0,0)(0.8,1.8) lib1 TIEH (0,0)(0.6,1.8) ------------------------------------------------------------------#END_XCHECK_FOOTPRINT Logic vs. physical library check summary: Number of cells missing in logic library: 3 Number of cells with missing or mismatched pins in libraries: 1 Information: Logic library is INCONSISTENT with physical library. (LIBCHK-220) #END_XCHECK_LIBRARY 0 SEE ALSO open_mw_lib(2) report_check_library_options(2) set_check_library_options(2) link_library(3) mw_reference_library(3) check_library 346 IC Compiler™ Tool Commands Version L-2016.03 check_license Checks the availability of a license for a feature. SYNTAX status check_license feature_list Data Types feature_list list ARGUMENTS feature_list Specifies the list of features to be checked. If more than one feature is specified, they must be enclosed in curly braces ({}). By looking at your key file, you can determine all of the features licensed at your site. DESCRIPTION The check_license command checks on a license for the named features. It does not check out the license. The list_licenses command provides a list of the features that you are currently using. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES This example checks on the license for the multivoltage feature: prompt> check_license {Galaxy-MV} Chapter 1: check_license 347 1-347 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 SEE ALSO get_license(2) license_users(2) list_licenses(2) remove_license(2) check_license 348 IC Compiler™ Tool Commands Version L-2016.03 check_mpc Checks the result of the minimum physical constraints options on the design after running the design through the minimum physical constraints flow. SYNTAX int check_mpc [-macros] [-ports] [-conflicting] [-verbose] [object_list] Data Types object_list collection or list ARGUMENTS -macros Checks the constraints for macro objects only. Set the constraints with the set_mpc_macro_options command and the set_mpc_macro_array command. -ports Checks the constraints for port objects only. Set the constraints with the set_mpc_port_options command. -conflicting Reports only the conflicting constraints, such as constraints that are failing. -verbose Includes the values used to check the minimum physical constraints against the final placement in the report. This option produces a more detailed than without the switch. object_list Specifies a list of designs, macros, ports, or group_names that are specified in the design. Chapter 1: check_mpc 349 1-349 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 DESCRIPTION The check_mpc command verifies the design level physical constraints against the actual floorplan created after the minimum physical constraints flow, which consists of the create_placement -mpc, compile_physical -mpc, and the physopt -mpc flows. Use check_mpc to verify and debug the constraints, and to determine if any constraints were or were not met and the reason why. The constraints and the actual floorplan are read in from the .db file. Multicorner-Multimode Support This command is not supported in a multi-scenario design flow. EXAMPLES After reading in a .db file that contains the constraints and placement information, you can check the constraints on the current_design, as shown in the following example: prompt> check_mpc [current_design] Current design is 'MRISC'. set_mpc_options -aspect_ratio 1.500 -left_port_limit 10 -right_port_limit 10 -top_port_limit 10 -bottom_port_limit 100 -min_port_pitch 1 1 1.510 10 10 10 67 560 Not Met Met Met Met Met Met The following example checks the constraints on port objects only: prompt> check_mpc -port set_mpc_port_options -side set_mpc_port_options -side set_mpc_port_options -side 1 Instrn[8] top Instrn[7] top Instrn[6] top top Met top Met top Met The following example checks constraints on macro objects only: prompt> check_mpc -macro set_mpc_macro_options I_MBOX_QTM_core1 -legal_orientations N S FN FS -anchor_bound r 276.360) Met check_mpc N Met (215.520 176.360 315.520 350 IC Compiler™ Tool Commands -x_offset -align_pins set_mpc_macro_options -legal_orientations -anchor_bound 476.360) Met -y_offset 1 Version L-2016.03 2.000 {PSW[10] Y[0]} I_MBOX_QTM_core2 N S FN FS t 2.000 3.000 3.000 Met Met N Met (3.170 376.360 103.170 Met The following example includes the values used to check the minimum physical constraints of the I_MBOX_QRT_core1 object against the final placement in the report: prompt> check_mpc -verbose I_MBOX_QTM_core1 set_mpc_macro_options I_MBOX_QTM_core1 -legal_orientations N S FN FS N Met -anchor_bound r (215.520 176.360 315.520 276.360) Met The Bound for this region 'r' is [215.520 0.000 315.520 479.360] -x_offset 2.000 2.000 Met -align_pins {PSW[10] Y[0]} Met The location of the pin Y[0] on macro I_MBOX_QTM_core1 is {315.020 196.860} The location of the port PSW[10] is {317.380 196.840} 1 The following examples show how run check_mpc on specific object lists: prompt> check_mpc [all_macro_cells] prompt> check_mpc [get_ports ALL_OUTS*] prompt> check_mpc -verbose prompt> check_mpc [list [current_design] [get_ports In*]] \ [all_macro_cells] SEE ALSO create_placement(2) report_mpc_macro_options(2) report_mpc_options(2) report_mpc_port_options(2) set_mpc_macro_array(2) set_mpc_macro_options(2) set_mpc_port_options(2) Chapter 1: check_mpc 351 1-351 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_mv_design Checks for violations in a multivoltage design. SYNTAX status check_mv_design [-verbose] [-isolation] [-target_library_subset] [-opcond_mismatches] [-connection_rules] [-level_shifters] [-power_nets] [-clock_gating_style] [-diode_cells] [-max_messages message_count] [-output output_file_name] Data Types message_count output_file_name unsigned integer string ARGUMENTS -verbose Reports the violations in detail. When this option is not used, only a summary of the violations is reported in the log file. -isolation Reports electrical isolation issues: • Nets that require isolation, but the isolation cell is missing • Nets that do not require isolation, but an isolation cell is present • Isolation cells that do not cross a power domain boundary -target_library_subset Checks for inconsistent settings between the target library, target library subset, and operating conditions. This option reports the following conditions: check_mv_design 352 IC Compiler™ Tool Commands Version L-2016.03 • Conflicts between the target library subset and the global target_library variable setting. The target library subset must be a subset of the library set specified by the target_library variable. • Conflicts between the operating condition and target library subset. There must be at the least one library from the target library subset that has the same process, voltage, and temperature as the operating condition being used on a block. • Conflicts between a cell and the target library subset specification on the parent design of the cell. This check ensures that the cells from the specified target library subset are used. -opcond_mismatches Reports the technology cells instantiated in the design with incompatible operating conditions. The option checks for conflicts between a cell and the operating condition specified on the parent design of the cell. This check ensures that the operating condition at which the cell is characterized matches the operating condition specified on the design. -connection_rules Reports violations in the always-on synthesis and pass-gate connections: • Always-on net driven by a normal cell • Always-on net or a net from an always-on domain driving a pass gate • Always-on cell driving a normal net • Two pass gates connected to each other -level_shifters Reports level shifter violations: • Net requiring level-shifting with no level-shifter cell • Net on which a level-shifter cell cannot be added because either the net is marked as dont_touch or the net is driven by a pin operating at a different voltage • Level-shifter cell shifting an incorrect voltage difference • Input pin of a level-shifter cell driven by a pin operating at a different voltage • Output pin of a level-shifter cell driving pins operating at a different voltage • Level-shifter cell that violates level-shifter strategy settings -power_nets Reports power and ground pin connections, including the following information: Chapter 1: check_mv_design 353 1-353 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 • PG pin mismatch between the logical library and FRAM library • Power and ground connection summary • Power and ground pins whose connections cannot be derived and the reason that the derivation fails • Power and ground pins whose existing connections do not match with the derived connection from the power domains. A mismatch between an existing PG connection and the connection derived from the power domains can occur for any of the following reasons: • "Unknown power pin type" indicates either the power pin does not have a type or the pin has a type without connection semantics. Automatic power connection supports the following power pin types: primary_power_pin, primary_ground_pin, backup_power_pin, backup_ground_pin, internal_power_pin, and internal_ground_pin. • "Invalid pin type for the cell or the cell's power domain" indicates that the cell's power domain does not have a power net connection with the matching type for the power pin type. For example, this situation occurs when a regular cell has a backup ground pin, but the cell's power domain does not have a backup ground net connection. • "No signal pin that uses this PG pin as the related_power_pin/related_ground_pin." This issue occurs only on level-shifter and isolation cells. The power connection of a power pin on a level-shifter or isolation cell is obtained through tracing cells connected to related signal pins of the power pin. The power connection fails if a power pin has no related signal pin, for example, when no signal pin uses the power pin as the related_power_pin or related_ground_pin in the logical library cell definition. • "Cells connected to the related signal pins of the level shifter or isolation cell requiring different PG nets." This issue occurs only on level-shifter and isolation cells. The tool cannot derive a proper power net for a specific pin because different nets are needed for the same pin, based on cells connected to the related signal pins. • "Back-to-back connection of level-shifter and isolation cell" occurs when a level-shifter or isolation cell is directly connected to another level-shifter or isolation cell. The automatic connection of a power pin on such level-shifter or isolation cells might fail if the tracing of related signal connections reaches only other level-shifter or isolation cells. This option also reports bias pin connections, when a supply net and its connected supply nets through supply ports or power switches are used as the power/nwell/ deepnwell net, and also as the ground/pwell/deeppwell net. check_mv_design 354 IC Compiler™ Tool Commands Version L-2016.03 -clock_gating_style Reports hierarchical blocks for which there is no library cell that meets its operating condition and specified clock-gating style. Clock-gate insertion cannot be performed. -diode_cells Checks for and reports multivoltage violations related to diodes cells. -max_messages message_count Sets a maximum limit on the number of messages written into the log file and output file. -output output_file_name Writes the output of the check_mv_design command to a file specified by the file name argument. If a file of the specified name already exists, it is over-written. This file can be opened in the MV Advisor browser in the Design Vision GUI. Alternatively, the same file can be opened in an HTML browser by using the absolute path of the file. The output file contains the details of all violations reported, even when the -verbose option is not used. DESCRIPTION The check_mv_design command checks the design, multivoltage constraints, electrical isolation requirements, and connection rules. It issues error and warning messages as appropriate. The checker options can be combined to adjust the level of detail in the final report. If the command is used without any checker options, it reports only a summary of all violations found. If the -verbose option is used, the command reports details of all violations in the log file. The -max_messages option limits the number of violations reported. When other checker options are specified, the message count specified by the -max_messages option applies to each type of check performed. If no specific checker is specified, the message count applies to the total number of messages generated by all types of checks performed. If -max_messages is not specified, the command writes out all messages without limit. Multicorner-Multimode Support This command uses information from the current scenario only. Chapter 1: check_mv_design 355 1-355 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following command reports all multivoltage violations in the design: prompt> check_mv_design -verbose -----------------------------------------------------------------------Target Library Subset Checks -----------------------------------------------------------------------No Errors/Warnings Found. -----------------------------------------------------------------------Power Domain Checks -----------------------------------------------------------------------Warning: Isolation cell is required on net A_INST/OUTPUT connecting A_INST and B_INST. (MV-042) Warning: Isolation cell is required on net B_INST/OUTPUT connecting B_INST and top. (MV-042) Warning: Isolation cell A_INST/iso1 is used to isolate a net that is not crossing power domain boundary. (MV-044) -----------------------------------------------------------------------Power Domain Checks Summary -----------------------------------------------------------------------Warning: Found 2 net(s) without isolation. (MV-046) Warning: Found 1 isolation cell(s) on net(s) not crossing power domain boundaries. (MV-048) -----------------------------------------------------------------------Cell Operating Condition Checks -----------------------------------------------------------------------No Errors/Warnings Found. -----------------------------------------------------------------------Power Domain and Operating Condition Consistency Checks -----------------------------------------------------------------------No Errors/Warnings Found. The following command generates a summary of all violations in the design: prompt> check_mv_design -----------------------------------------------------------------------Target Library Subset Checks ------------------------------------------------------------------------ check_mv_design 356 IC Compiler™ Tool Commands Version L-2016.03 No Errors/Warnings Found. -----------------------------------------------------------------------Power Domain Checks -----------------------------------------------------------------------Warning: Found 2 net(s) without isolation. (MV-046) Warning: Found 1 isolation cell(s) on net(s) not crossing power domain boundaries. (MV-048) -----------------------------------------------------------------------Cell Operating Condition Checks -----------------------------------------------------------------------No Errors/Warnings Found. -----------------------------------------------------------------------Power Domain and Operating Condition Consistency Checks -----------------------------------------------------------------------No Errors/Warnings Found. The following example reports violations related to electrical isolation: prompt> check_mv_design -verbose -isolation -----------------------------------------------------------------------Power Domain Checks -----------------------------------------------------------------------Warning: Isolation cell is required on net A_INST/OUTPUT connecting A_INST and B_INST. (MV-042) Warning: Isolation cell is required on net B_INST/OUTPUT connecting B_INST and top. (MV-042) Warning: Isolation cell A_INST/iso1 is used to isolate a net that is not crossing power domain boundary. (MV-044) -----------------------------------------------------------------------Power Domain Checks Summary -----------------------------------------------------------------------Warning: Found 2 net(s) without isolation. (MV-046) Warning: Found 1 isolation cell(s) on net(s) not crossing power domain boundaries. (MV-048) The following example reports violations related to power nets: prompt> check_mv_design -verbose -power_nets ------------------------------------------------------------------------------- Chapter 1: check_mv_design 357 1-357 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Power/Ground Pin Connection Checks ------------------------------------------------------------------------------Error: Supply net sn1 and its connected supply net(s) are used as both power/nwell/deepnwell net and ground/pwell/deepnwell net. (MV-601) Error: Supply net sn2 and its connected supply net(s) are used as both power/nwell/deepnwell net and ground/pwell/deepnwell net. (MV-601) Error: Power net hookup for power domains is not specified properly. (MV-503) ------------------------------------------------------------------------------- The following example shows how to use the -output option of the check_mv_design command. prompt> check_mv_design -verbose -output my_file.cmvd SEE ALSO check_library(2) insert_level_shifters(2) remove_target_library_subset(2) set_operating_conditions(2) set_target_library_subset(2) check_mv_design 358 IC Compiler™ Tool Commands Version L-2016.03 check_noise Checks whether there are necessary data available to run noise analysis in the current design. SYNTAX status check_noise [-verbose] [-nosplit] [-include check_list] Data Types check_list list ARGUMENTS -verbose Enables verbose mode showing detailed information and pin names. -nosplit Most of the design information is listed in fixed-width columns. If the information in a given field exceeds the column width, the next field begins on a new line, starting in the correct column. The -nosplit option prevents line-splitting and facilitates writing software to extract information from the report output. -include check_list Specifies the types of checking. Available values are noise_driver and noise_immunity. The default is noise_immunity. DESCRIPTION It is possible to have invalid noise models in a library and run noise analysis without detecting them. This may result in inaccurate results. If the design is large, and it takes long time to finish the noise analysis, it will also cause longer turn around time. Moreover, it is very important that all pins in the design have correct noise immunity information. Chapter 1: check_noise 359 1-359 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Otherwise, when the noise analysis is over, violations wouldn't be reported even if noise bumps are large enough to create violations. The check_noise command can be executed before the noise analysis to validate the correctness of a design with respect to noise analysis. It checks for the presence of any invalid noise model, and any pin without a model from the library and from the design. It verifies that all pins in the design are 'noise constrained', i.e., their noise immunity can be calculated. In a verbose mode, the command shows the names of cells and pins that have no model or an invalid model. EXAMPLES The following example shows a noise immunity check: prompt> check_noise Information: Checking noise immunity on load pins... Noise immunity type above_low below_high -------------------------------------------------------library immunity table 0 0 library immunity curve 0 0 library CCS noise immunity 3245 3245 global threshold 0 0 The following example shows a noise driver check: prompt> check_noise -include {noise_driver} Information: Checking noise models on driver pins... Noise driver type above_low below_high -------------------------------------------------------- library set iv curve 0 0 library set CCS noise 520 520 estimation set value 0 0 SEE ALSO report_noise(2) check_noise 360 IC Compiler™ Tool Commands Version L-2016.03 check_physical_constraints Checks the physical constraints and provides feedback about possible errors in input. SYNTAX int check_physical_constraints [-narrow_placement_area no_of_sites] [-rc_check rc_variation_margin] [-verbose] [-analyze_legality [-nworst no_of_worst_cells] [-design] [-lib_cell lib_cell_name]] Data Types no_of_sites rc_variation_margin no_of_worst_cells lib_cell_name integer float integer string ARGUMENTS -narrow_placement_area no_of_sites Issues warnings about narrow placement areas in the floorplan. It is defined in terms of base site widths. The default is the maximum width of the cells in the library. Using a value of 0 for this switch causes the narrow placement area check to be skipped. The narrow placement area threshold width is same for both the vertical and the horizontal direction. -rc_check rc_variation_margin Issues warnings if the resistance or capacitance varies by more than the rc_variation_margin across different metal layers. This option detects invalid layers, such as POLY. However, such a variation is possible because of differing metal widths in different layers. Also checks for width, pitch, and spacing for all route metal layers. Default is 5.0. Note that rc_variation_margin value is a multiplier and not an absolute value. Chapter 1: check_physical_constraints 361 1-361 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -verbose Prints more information. When used with the -analyze_legality switch, it prints the legal site rates for each library cell and the reason for non-legal sites. -analyze_legality Analyzes each cell of a physical library against a floorplan (with power structures) and reports the success rate for legalization on all sites. The legal rate printed prints the legal sites for the library cell after evaluating them against the power straps. It shows the total number of available sites for the library cell so you can determine whether or not you want to use that cell. Default is off. -nworst no_of_worst_cells Prints no_of_worst_cells for all cells in the physical library in terms of legal site rates. This is the default mode of the -analyze_legality switch. If it is used with -verbose or -lib_cell, it is ignored. This option is only used with -analyze_legality. Default is 10. -design Performs -analyze_legality on the library cells that are in design only. Default is false. -lib_cell lib_cell_name Specifies a particular library cell for -analyze_legality. DESCRIPTION The check_physical_constraints command checks several physical constraints and provide information about possible errors in input. It checks for cell areas in hard bound, correct layers in the library against those in the floorplan, resistance and capacitance for different route layers, narrow placement areas in the floorplan, legal sites for library cells in floorplan, etc. Check all of the warnings and error messages to avoid erroneous input to the tool. Use this command early in the flow to detect errors in input. Refer to the -check_only option to the physopt for further information. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example checks the physical constraints. The rc_variation_margin is 2.1. check_physical_constraints 362 IC Compiler™ Tool Commands Version L-2016.03 prompt> check_physical_constraints -verbose -rc_check 2.1 SEE ALSO PSYN-469(n) report_placement_utilization(2) Chapter 1: check_physical_constraints 363 1-363 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_physical_design This command checks the readiness of the current design for IC Compiler. SYNTAX status check_physical_design -stage stage_value | -input_log log_file | -design_statistics [-include_clock_tree_report] [-check_timing] [-analyze_legality] [-continue_on_missing_scandef] [-placement_constraints_min_distance distance] [-placement_constraints_solution_file filename] [-output directory] [-display] Data Types stage_value log_file distance filename directory string string float string string ARGUMENTS -stage stage_value Specifies which stage to check. The checks performed by the check_physical_design command depend on the specified stage. Make sure the design contents make sense for the specified stage; otherwise, the report might be meaningless. You can specify one of the following values: • pre_place_opt This stage requires that the floorplan and netlist data are ready and the design constraints are set. • post_initial_placement This stage meant to run placement constraints checks and requires that the design is placed, but not buffered, and the placement design constraints are set. check_physical_design 364 IC Compiler™ Tool Commands Version L-2016.03 • pre_clock_opt This stage requires the same items as pre_place_opt. In addition, the design must be placed and the clock constraints must be set. • pre_route_opt This stage should be called when the design is ready for routing. You must specify one of the following options: -stage, -input_log, or -design_statistics. -input_log log_file Specifies the log file to analyze. When you specify this option, the command analyzes the specified log file; it does not perform any checks. You must specify one of the following options: -stage, -input_log, or -design_statistics. -design_statistics Performs statistical analysis on various aspects of the design, such as cells, nets, and area and generates ASCII and HTML report files. The report files are written to a directory named cpd_design_statistics_<year><month><day><hour><minutes><seconds>, which is created in the current working directory. You can view the individual report files, or view the HTML report by opening the index.html file in a browser. This analysis can be done at any stage in the design cycle. When you specify this option, the command does only analysis and does not perform any checks. If you specify the -include_clock_tree_report option with the -design_statistics option, the design statistics include a clock-tree report. If you specify the -stage option with the -design_statistics option, the tool issues an error message. You must specify one of the following options: -stage, -input_log, or -design_statistics. -include_clock_tree_report Includes a clock-tree report with the design statistics. You can use this option only with the -design_statistics option. -check_timing Performs timing checks, including timing checks related to abstracted blocks. If you do not specify this option, the check_physical_design command determines whether to perform timing checks based on the value of the cpd_skip_timing_check Chapter 1: check_physical_design 365 1-365 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 variable, whose default is true. Skipping the timing checks reduces runtime, especially for large, complex designs. -analyze_legality Performs more detailed cell analysis for all the library cells used in the current design. By default, only brief analysis is done. This option is most useful when one or more reference libraries are used by IC Compiler for the first time. This option has a runtime penalty. -continue_on_missing_scandef Continues with placement checks when the design contains scan chains but no SCANDEF data. By default, missing SCANDEF data causes the command to exit with an error message. If you specify this option, the command issues a warning but continues the placement checks and considers the scan chains without the missing SCANDEF. -placement_constraints_min_distance distance This option valid only while using -stage post_initial_placement. When we run placement constraints checking, this option allows user to control what is the minimal distance of a constraint cell to be checked. If this option is not used, the check uses default value of 200 micron. -placement_constraints_solution_file filename This option valid only while using -stage post_initial_placement. When we run placement constraints checking, the check creates placement constraints solution statements, which are Tcl commands that adjust the placement constraints that could cause suboptimal placement. This option allows user decide if these statements will be written out as solution script into a file, and to specify the output file name. If this option is not used, the placement constraints checking prints out the solution statements on the screen and no file are generated. -output directory Specifies the directory in which to save the report. By default, the report is saved in a directory called cpd_<stage>_<time>_<pid>. The generated HTML report is called index.html. If the specified directory already exists, a unique directory named directory.n is created and used. -display Displays the result in the Web browser defined by the gui_online_browser variable. check_physical_design 366 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION The check_physical_design command performs one of the following checks: • When you use the -stage option, the tool checks the readiness of the current design for IC Compiler by performing specific checks and analysis based on the options you specify. • When you use the check_physical_design -stage post_initial_placement, the tool performs a check for problematic placement constraints. The constraints set on certain cells in the design can force wrong locations for cells which can cause later for run time and QOR issues. Please note, this check could take some runtime especially for large design, but it's important to find any bad placement constraints to avoid wrong cell placement and sub optimal QoR. • Problematic Cell placement constraints are: • When a Cell is member of bound, while none of its connected cells is member of the bound, and they are located far away from the cell in the bound. • When a cell in one bound connected to a cell in another bound that is far away. • When a cell in one bound connected to a fixed cell that is far away. • When a Cell is member of bound and connected to a port which located far away from the cell in the bound. • When a cell is fixed, and all of the cells connected to located far away from the fixed cell. • When a fixed cell connected to a fixed cell that is far away. • When the checker identifies cells with Problematic placement constraints, it reports them out, and suggest corrective action, based on the specific constraints. These corrective statements could use to solve the problems. • This new stage can come with default run. But we allow user to control 2 aspects of this check with 2 options: -placement_constraints_min_distance This option allows user to control what is the minimal distance of a constraint cell to be checked. If this option is not used, the check uses default value of 200 microns. • -placement_constraints_solution_file This option allows user decide if these statements will be written out as solution script into a file, and the output file name for this. The solution script contains Tcl commands that adjust the placement constraints that could cause suboptimal placement. If this option is not used, the placement constraints checking prints out the solution statements on the screen and no file is generated. • These two options are relevant only with check_physical_design -stage post_initial_placement, other ways tool issues error. Expected usage flow: Chapter 1: check_physical_design 367 1-367 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 • remove_buffer_tree all • create_placement [options] | create_fp_placement [options] | place_opt_feasibility stage initial_placement [options] • check_physical_design -stage post_initial_placement • When you use the -input_log option, the tool checks the readiness of the current design for IC Compiler by analyzing the specified log file. • When you use the -design_statistics option, the tool performs statistical analysis on various aspects of the design, such as cells, nets, DRC violations, and area. If you also specify the -include_clock_tree_report option, the tool includes a clock-tree report with the design statistics. If you specify the -design_statistics or -stage option, you must load the floorplan and open the Milkyway design before running the command; otherwise, the checking will not work. In addition, some of the checks require the CEL view to be writable. If you specify the -stage or -input_log option, the command analyzes and reports all the error messages and other customizable messages from the checking results or the input log file and provides the final report in an easy-to-use HTML format. The HTML file contains information about what to do next, hyperlinks to man pages, and the line number in the log file for each message. The command supports Web browsers such as Internet Explorer and Firefox. By default, this command tries to open the result in the Web browser. Configuration File You can customize the behavior of the check_physical_design command by using a configuration file, which is called .icc_report_config. The tool looks for this file in your home directory and the current working directory. Settings in the configuration file in the current working directory override those in the configuration file in your home directory. The configuration file can contain the following commands: set maxMessageCount integer This variable controls how many detailed messages are displayed for the same message ID in the HTML file. The default is 10. set linkToLogMode integer This variable controls the algorithm used to link the log file in the HTML file. If set to 0, the HTML file uses JavaScript to automatically generate the partial log file and highlights the desired message line when you click on the hyperlink to the log file. If set to 1, multiple partial log files are generated during command execution and the links point directly to the saved files. A setting of 1 has a small runtime and disk space penalty, due to saving extra check_physical_design 368 IC Compiler™ Tool Commands Version L-2016.03 files on disk, but the speed of opening the links should be better than with a setting of 0. If your browser does not support JavaScript inside the HTML, use a setting of 1. The default is 0. add_keyword keyword This command allows you to specify keywords that you want the tool to be aware of. The tool creates an HTML table with the results of "grepping" for this keyword. When you use this setting, your operating system path must be set up so that it can directly find the grep command. config_message options This command defines how the check_physical_design command treats messages during analysis. Note that error messages are always considered important messages. The supported options for the config_message command are: • -id message id Specifies the message ID to be reconfigured. • -title message_id_title Specifies the title of the message, which is displayed in the HTML table. • -ignore Specifies that the check_physical_design command should treat this message ID as an unimportant message. • -stage stage_name Specifies the stage to which this configuration applies. If not specified, the configuration applies to all stages. This option allows you to treat the same message differently at different stages. For example, you can define the messages from checking ideal clock nets as unimportant at the pre_clock_opt stage, but define them as important at the pre_route_opt stage. config_check options This command adds user-defined checks to the check_physical_design command. The checks are executed one-by-one after the embedded checks. The supported options for the config_check command are • -cmd tcl_procedure_name Specifies the Tcl procedure that contains the user-defined check. • -stage stage_name Specifies the stage to which this configuration applies. If not specified, the configuration applies to all stages. This option allows you to add the same check at different stages. config_drive options Chapter 1: check_physical_design 369 1-369 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 This command defines the values that influence the size categories in the drive strength reports in the design statistics report generated by the check_physical_design -design_statistics command. The supported options for the config_drive command are: • -id label_string Specifies the label given to the size categories, which describe the specified drive strength to which the new values belong. Supported values are XS, S, M, L, and XL. You must specify one of these labels. The label XXL defaults to net length and fanout values greater than the XL values. • -fanout pin_count Specifies the maximum number of pins that can be driven by the library cell. You must specify an integer value. The default value varies for each label and is defined below. • -net net_length Specifies the total wire length associated with the pins that are driven by the library cell. The unit is the length unit of the design library. The default value varies for each label and is defined below. To produce a meaningful drive strength report, the values for the -net and -fanout options should increase for each label from XS to XL. If one or both values do not incrementally increase in value from XS to XL, a warning is issued when creating the drive strength table. If you do not specify values for a label, the tool uses the following default values: config_drive config_drive config_drive config_drive config_drive -id -id -id -id -id XL -fanout 150 -net 700 L -fanout 100 -net 500 M -fanout 50 -net 300 S -fanout 10 -net 100 XS -fanout 5 -net 50 Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example checks the design readiness for placement and saves the result in the cpd_result directory. The log file lists the checks that were performed and the result summary. An HTML file is also generated, which you can read by using the Web browser. prompt> check_physical_design -stage pre_place_opt -output cpd_result checking tluplus... checking link... checking logic objects... check_physical_design 370 IC Compiler™ Tool Commands Version L-2016.03 checking physical objects... checking timing... checking HFN/ideal/dont_touch nets... checking placement constraints... ************************************************** Report : check_physical_design Design : RISC_CHIP Version: B-2008.09-ICC-SP Date : Wed Oct 8 10:55:22 2008 ************************************************** Total messages: 0 errors, 270 warnings ----------------------------------------------Other Warning Summary for check_physical_design -----------------------------------------------------------------------------------------------------------------------ID Occurrences Title -------------------------------------------------------------------------FEAS-002 1 High Fanout Synthesis has not been performed LINT-1 3 cell does not drive any nets LINT-2 129 Net driven by pin has no loads LINT-3 4 Net has no drivers. LINT-5 4 In design '%s', output port '%s' is not driven. LINT-8 88 Input port unloaded LINT-32 5 In design '%s', a pin on submodule '%s' is conn... LINT-33 1 In design '%s', the same net is connected to mo... LINT-63 32 Net '%s' has a single tri-state driver. PNR-156 2 macro cell has no keepout margin defined PSYN-261 1 Capacitance of layer %s varies more than the sp... -------------------------------------------------------------------------dump check_physical_design result to file cpd_result/index.html 1 prompt> sh firefox cpd_result/index.html The following example analyzes the results in the pre_place_log log file. It does not perform any checks on the design. prompt> check_physical_design -input_log pre_place_log The following example checks the design readiness for placement, including timing checks, which are disabled by default. This might cause longer runtime. The log file lists the checks Chapter 1: check_physical_design 371 1-371 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 that were performed and the result summary. An HTML file is also generated, which you can read by using the Web browser. prompt> check_physical_design -stage pre_place_opt \ -check_timing The following example runs placement constraints checks when minimal distance to be checked is 300u and if any violation found, the corrective actions will be written into file solution.tcl. prompt> fBcheck_physical_design -stage post_initial_placement \ -placement_constraints_min_distance 300.0\ -placement_constraints_solution_file ./solutions.tcl The following example generates a design statistics report. It does not perform any checks on the design. prompt> check_physical_design -design_statistics The following example generates a design statistics report with clock-tree reporting. It does not perform any checks on the design. prompt> check_physical_design -design_statistics \ -include_clock_tree_report The following example shows a sample configuration file: % cat ~/.icc_report_config add_keyword drc config_message -stage pre_clock_opt -id CTS-810 -ignore config_check -stage pre_clock_opt -cmd "report_design -physical" set maxMessageCount 5 config_drive -id S -fanout 5 -net 50 SEE ALSO check_design(2) check_physical_constraints(2) check_error(2) check_timing(2) get_message_info(2) print_message_info(2) print_suppressed_messages(2) suppress_message(2) unsuppress_message(2) check_physical_design 372 IC Compiler™ Tool Commands Version L-2016.03 gui_online_browser(3) cpd_skip_timing_check(3) Chapter 1: check_physical_design 373 1-373 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_primetime_icc_consistency_settings SYNTAX int check_primetime_icc_consistency_settings [-html_output_path path_name] Data Types path_name string ARGUMENTS -html_output_path path_name Writes out the consistency report in HTML format in the specified directory path. Without this option, the command writes the report to the console in plain text format. DESCRIPTION The check_primetime_icc_consistency_settings command checks IC Compiler and PrimeTime settings for good timing correlation between the two tools. It reports an error for each setting that is different from recommended and tells you the proper setting in the applicable tool. Before you can use this command, you must run the set_primetime_options command to set up the PrimeTime executable location and setup script. You can query the PrimeTime option settings by using the report_primetime_options command. Multicorner-Multimode Support This command applies to current scenario only. EXAMPLES The following example demonstrates usage of the check_primetime_icc_consistency_settings command. Before running this command, check_primetime_icc_consistency_settings 374 IC Compiler™ Tool Commands Version L-2016.03 the set_primetime_options command sets up the PrimeTime executable location and PrimeTime setup script, pt.tcl. prompt> set_primetime_options \ -exec_dir $install_dir/bin -common_file pt.tcl prompt> check_primetime_icc_consistency_settings Error: The timing_remove_clock_reconvergence_pessimism setting is inconsistent between IC Compiler and PrimeTime. The IC Compiler value is TRUE; the PrimeTime value is "false". (CORR-803) Error: The timing_remove_clock_reconvergence_pessimism PrimeTime variable should be set to TRUE. (CORR-800) SEE ALSO report_primetime_options(2) set_primetime_options(2) Chapter 1: check_primetime_icc_consistency_settings 375 1-375 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_rail Checks the integrity of the power network in preparation for running the analyze_rail command. SYNTAX status check_rail [-report_file file_name] Data Types file_name string ARGUMENTS -report_file file_name Specifies the report file name. The set_rail_options -output_dir command sets the output directory for the report file. The command report_rail_options reports the current output directory setting. The default report file name is check_rail_report.txt. DESCRIPTION This command checks the integrity of the power network. Use the check_rail command prior to running the analyze_rail command. The check_rail command checks all power and ground nets in the Milkyway design. If there are floating power pins, supply nets which do not have instance connection, or supply nets without supply voltage assigned, the command outputs warning messages to the report file and a writes a brief summary to the log file. By default, the check_rail command purges and rebuilds the RAIL view to ensure consistency between the Milkyway design and the RAIL view. To use the existing RAIL view generated by the analyze_rail command without purging, use the command set_rail_options -reuse setup_variable. See the set_rail_options man page for more information. The check_rail command creates a new Milkyway session to avoid interfering with the current session. If the power or ground network has changed, save the cell before invoking the check_rail command to ensure the new Milkyway session uses the most recent data. check_rail 376 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following example checks the integrity of the power network and saves the report to the file report.txt: prompt> check_rail -report_file report.txt SEE ALSO set_rail_options(2) report_rail_options(2) analyze_rail(2) Chapter 1: check_rail 377 1-377 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_reserved_placement_area Checks the consistency of the reserved placement areas between the top and child levels. SYNTAX status check_reserved_placement_area [-objects rows_or_placement_blockages] [soft_macros] Data Types rows_or_placement_blockages soft_macros collection collection ARGUMENTS -objects rows_or_placement_blockages Specifies one or more reserved placement site rows or placement blockages for checking. The check_reserved_placement_area command runs at the top level of the design, but you can check the child-level reserved placement blockages by selecting the appropriate reserved placement blockages inside the block, assigning the selection to a variable, and executing the command at the top level on the selected objects defined by the variable. By default, the command checks the consistency of all the top-level reserved placement site rows and child-level reserved placement blockages. soft_macros Specifies the soft macros to be checked for reserved placement areas. By default, the tool processes all soft macros in the current design. DESCRIPTION This command checks the reserved placement area in both the top design and the child design levels. The reserved placement areas are the site rows or placement blockages with the "is_reserved_placement_area" attribute. For each top-level reserved placement site row, the command checks whether there are child-level reserved placement blockages whose bounding box fully covers the bounding box of the site row. The command reports check_reserved_placement_area 378 IC Compiler™ Tool Commands Version L-2016.03 inconsistencies if no such child-level reserved placement blockage exists. For each child-level reserved placement blockage, the command checks whether there are reserved placement site rows at the top level that are fully inside the bounding box of the child-level reserved placement blockage. The command reports an inconsistency if there are no reserved top-level site rows fully inside the bounding box. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example checks all reserved placement areas in the current design. prompt> check_reserved_placement_area SEE ALSO derive_reserved_placement_area(2) remove_reserved_placement_area(2) Chapter 1: check_reserved_placement_area 379 1-379 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_route Checks and reports the violations of a routed design. SYNTAX status check_route [-drc] [-opens] [-antenna] [-top_layer_probe_constraints] [-num_cpus num] ARGUMENTS -drc Check DRC Violations. -opens Check Opens. -antenna Check Charge-Collecting Antenna violations. -top_layer_probe_constraints Check Top-Layer Probe Constraints. -num_cpus num Number of cpus for DRC checking. Number must be >= 1. DESCRIPTION This command checks and reports the following about a routed design: DRC Violations, Opens, Charge-Collecting Antenna violations and Top-Layer Probe Constraints. Design rule checking can also be done using the Distributed Routing option. Multicorner-Multimode Support This command has no dependency on scenario-specific information. check_route 380 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES prompt> check_route -drc SEE ALSO Chapter 1: check_route 381 1-381 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_routeability Verifies that the current design is routable. SYNTAX int check_routeability [-error_cell cell_name] Data Types cell_name string ARGUMENTS -error_cell cell_name Enter the error cell you want or use the default name provided. The default name is <top_cell_name>.err. When there are errors in the design, an error cell is generated with this given name. An error cell is not be generated unless errors exist. DESCRIPTION Checks pin access points, cell instance wire tracks, pin out of boundaries, min-grid and pin design rules and blockages to ensure they meet the design requirements. It performs a check of the design for optimization in order to substantiate any errors in the design that might need to be fixed or what could help to improve the design. This must currently be run on a placed design. You can use this command at every stage between placement and detail routing. Verify errors in the generated error cell or log file. Multicorner-Multimode Support This command has no dependency on scenario-specific information. check_routeability 382 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following example dump out the design error to a specified file, dumpErr.err. prompt> check_routeability -error_cell dumpErr.err The following example dump out the design error to a default cell. prompt> check_routeability SEE ALSO create_route_guide(2) Chapter 1: check_routeability 383 1-383 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_rp_groups Checks the relative placement constraints and reports any failures. SYNTAX collection check_rp_groups {rp_groups | -all} [-output filename] [-critical] [-verbose] Data Types rp_groups filename list or collection string ARGUMENTS rp_groups Specifies the relative placement groups that will be checked for failures. This option and the -all option are mutually exclusive. -all Specifies that all relative placement groups will be checked. This option and the rp_groups argument are mutually exclusive. -output filename Specifies the name of the output file for the report. If you do not specify this option, the report is written to the standard output. -critical Specifies to report the specified relative placement groups that cannot be placed. -verbose Reports relative placement cell orientation failures that are not reported otherwise. It also returns more detailed alignment and utilization failure messages that include the exact location details of the failures. check_rp_groups 384 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION The check_rp_groups command checks any violations of relative placement constraints for the specified relative placement groups. The violations include failing to place the specified relative placement groups and the placed relative placement groups not meeting relative placement constraints. The command returns a collection containing the relative placement groups that are checked. If no groups are checked, an empty string is returned. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following examples use check_rp_groups to check for relative placement failures: prompt> get_rp_groups {compare::g1 compare::g2 compare::g4 compare::g7} prompt> check_rp_groups -all -out failures {compare::g7 compare::g4 compare::g2 compare::g1} prompt> check_rp_groups compare::g4 -out g4_failures {compare::g4} prompt> check_rp_groups compare::g4 ******************************************** Report: The relative placement groups not meeting all constraints but placed. Version: B-2008.09 Date: Mon Sep 11 04:44:34 2008 Number of relative placement groups: 1 ******************************************** relative placement GROUP: compare::g4 --------------------------------------Warning: Possible placement failure of relative placement group 'compare::g4' (RPGP-027) {compare::g4} prompt> check_rp_groups compare::g1 **************************************** Report: The relative placement groups that could not be placed. Version: B-2008.09 Date: Mon Sep 11 04:47:25 2008 Number of relative placement groups: 1 **************************************** Chapter 1: check_rp_groups 385 1-385 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 relative placement GROUP: compare::g1 --------------------------------------Warning: Possible placement failure of relative placement group 'compare::g1' (RPGP-027) {compare::g14} SEE ALSO add_to_rp_group(2) create_rp_group(2) remove_rp_groups(2) check_rp_groups 386 IC Compiler™ Tool Commands Version L-2016.03 check_scan_chain Allows scan chain structural consistency checking based on the scan chain information stored in the current design. SYNTAX status check_scan_chain [-chain_name chain_name] Data Types chain_name string ARGUMENTS -chain_name chain_name Displays detailed information about the structural checking of the specified scan chain, including location of inconsistency. DESCRIPTION This command performs a scan chain structural checking based on the scan chain information stored in the current CEL. If the scan chain passes all the structural checks, then the scan chain status is "VALIDATED"/V and the chain can be physically design-for-test (DFT) optimized. If the scan chain fails the structural checks then the scan chain status is "FAILED"/F and the chain cannot be physically optimized. By default, the command generates a summary report. To generate a detailed report for a specific scan chain, use the -chain_name option. Multicorner-Multimode Support This command has no dependency on scenario-specific information. Chapter 1: check_scan_chain 387 1-387 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example checks for scan chain structural consistency. prompt> check_scan_chain Checking SCANDEF... Checking scan cell correspondence between SCANDEF and netlist... Start scan chain checking... All checks completed. Warning: There are 2 scan chains with no PARTITION label which can result in lower QoR. (PSYN-1019) **************************************** Report : Design : Version: Date : Scan DEF check E2080_cpu I-2013.12-DEV Mon Jul 22 21:56:52 2013 **************************************** Information from SCANDEF file: Number of SCANCHAINS: 2 Checking between SCANDEF file and design: Total SCANCHAINS checked: 2 VALIDATED : 2 FAILED : 0 Chain name ---------1 U381/A 2 Status -----V #cells -----98 #bits ----62 PARTITION --------no_partition Scan IN ------U10/C Scan OUT -------alu1/ V 74 61 no_partition U11/C U9/B 1 The following example checks for the scan chain structural consistency of scan chain 2. prompt> check_scan_chain -chain 2 Checking SCANDEF... Checking scan cell correspondence between SCANDEF and netlist... Checking scan chain checking... All checks completed. **************************************** Report : Design : Version: Date : Scan DEF check E2080_cpu Z-2007.03-ICC-BETA1 Tue Jan 9 14:38:37 2007 **************************************** check_scan_chain 388 IC Compiler™ Tool Commands Version L-2016.03 Information from SCANDEF file: Number of SCANCHAINS: 2 Checking between SCANDEF file and design: Total SCANCHAINS checked: 2 VALIDATED : 2 FAILED : 0 Information on SCANCHAIN 2: STATUS: V Examining design SCANCHAIN 2: STOP: U9/B thru: statemachine1/counter_reg_3_/SI thru: statemachine1/counter_reg_2_/SI thru: statemachine1/counter_reg_1_/SI thru: statemachine1/counter_reg_0_/SI START: U11/C 1 SEE ALSO read_def(2) optimize_dft(2) report_scan_chain(2) Chapter 1: check_scan_chain 389 1-389 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_scenarios Performs consistency checks between the scenarios, for scenario specific information such as TLUplus files, operating conditions on the libraries, clocks and so on. SYNTAX status check_scenarios [-output ] [-display] ARGUMENTS -output Specifies the directory to store the output. By default output is stored in HTML format in the directory, design_dir/check_scenarios_mmddyyyy_pid -display Opens a HTML browser to display the data. The browser to be used is defined by the Tcl variable, gui_online_browser. DESCRIPTION The check_scenarios command checks and reports issues with the scenarios. The command performs the following checks: TLUplus, clock related information such as clock periods, default versus nominal PVT on libraries, PVT from blocks versus parent, and PVT of library cells. Multicorner-Multimode Support This command uses information from all active scenarios. This command also supports designs that are not multicorner-multimode designs. EXAMPLES The following is an example of the check_scenarios command: prompt> check_scenarios check_scenarios 390 IC Compiler™ Tool Commands Version L-2016.03 check_scenarios Warning: The complexity of the scenario (s1) might cause long runtime and high memory usage. (MCMM-212) Warning: Scenario (s1) has instances which referenced library cells that are marked as "dont_use". (MCMM-225) Warning: Scenario (s2) has a library setup issue with regard to the PVT values and the operating condition. (MCMM-213) Information: HTML report can be found at /WORKING_DIRECTORY/run/check_scenarios_7132009_21451/ check_scenarios_0.html SEE ALSO gui_online_browser(3) Chapter 1: check_scenarios 391 1-391 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 check_signoff_correlation Performs correlation checking in IC Compiler, PrimeTime, and StarRC. SYNTAX status check_signoff_correlation [-setup] [-spef_out] [-pt_only] [-star_only] [-preroute] [-keep_signoff_mode] [-output directory] [-html] Data Types directory string ARGUMENTS -setup Performs setup correlation checks between IC Compiler and PrimeTime and between IC Compiler and StarRC. This is the default option if you do not specify any options. -spef_out Writes out an SPEF file from both IC Compiler and StarRC and a compare script. The compare script is used to perform parasitic correlation from the two SPEF files. -pt_only Performs only the correlation check between IC Compiler and PrimeTime. The parasitic correlation check between IC Compiler and StarRC is not performed. -star_only Performs only the correlation check between IC Compiler and StarRC. The timing correlation check between IC Compiler and PrimeTime is not performed. check_signoff_correlation 392 IC Compiler™ Tool Commands Version L-2016.03 -preroute Assumes that the design is a preroute design and performs only the preroute correlation checks. By default, the check_signoff_correlation command assumes that the design is a postroute design You cannot use this option with the -spef_out option. -keep_signoff_mode Keeps the tool in sign-off mode after running the correlation. By default, the check_signoff_correlation command exits sign-off mode after the command is finished. You can use this option with the -spef_out option, but you should not use it with the -preroute option or when only setup correlation checks are performed. -output directory Specifies the name of the output directory for the saved scripts and files. If the specified directory does not exist, the command creates it. By default, the check_signoff_correlation command saves the scripts and files in a directory whose name is based on the timestamp of the run. -html Generates an HTML correlation report in addition to the scripts. You can use a Web browser to review the reports, to get a summary of all warnings and errors, and to get additional information by clicking on the message ID values. The -html option supports multicorner-multimode designs. By default, the check_signoff_correlation command generates only the recommended script for setup. DESCRIPTION The check_signoff_correlation command performs sign-off correlation checks between IC Compiler and PrimeTime and between IC Compiler and StarRC. It generates correlation reports and IC Compiler script files for correlation improvement. In a multicorner-multimode design, you can source the script files to fix all correlation issues in all scenarios once and then run the update_timing command at the end. If you use the -spef_out option, the command also generates SPEF files from IC Compiler and StarRC. Chapter 1: check_signoff_correlation 393 1-393 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Before running this command, you need to provide PrimeTime settings with the set_primetime_options command and StarRC settings with the set_starrcxt_options command. Multicorner-Multimode Support This command uses information from all active scenarios. SEE ALSO run_signoff(2) set_primetime_options(2) set_starrcxt_options(2) report_primetime_options(2) report_starrcxt_options(2) check_signoff_correlation 394 IC Compiler™ Tool Commands Version L-2016.03 check_timing Checks for possible timing problems in the current design. SYNTAX status check_timing [-overlap_tolerance minimum_distance] [-override_defaults check_list] [-multiple_clock] [-retain] [-include check_list] [-exclude check_list] Data Types minimum_distance check_list float list ARGUMENTS -overlap_tolerance minimum_distance Specifies the minimum distance allowed between the master close edge and the slave open edge. If the distance is less than this value, the tool issues a warning. Use this option to check for the master-slave clock overlap. By default, this option is off. -override_defaults check_list Overrides the checks in timing_check_defaults by using the argument specified in check_list. If the -override_defaults option is used with a check list, the final list of checks to be performed is the one in the check_list argument of the -override_defaults option. -multiple_clock Issues a warning when multiple clocks reach a register clock pin. If more than one clock signal reaches a register clock pin, and the timing_enable_multiple_clocks_per_reg variable is set to false, then the clock to use for analysis is undefined, and the tool generates a warning message. In this case, use either the set_case_analysis or set_disable_timing command so that only one clock can propagate from the sources to the register clock pin. By default, this option is off. Chapter 1: check_timing 395 1-395 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -retain Provides a warning if any of the RETAIN values is larger than its corresponding delay value. The RETAIN values should be less than their corresponding delay values so that they can be considered for hold violations. Otherwise, the RETAIN values might be considered for setup violations. By default, this option is off. -include check_list Adds the checks listed in check_list to the checks defined by the timing_check_defaults variable. -exclude check_list Subtracts the checks listed in check_list from the checks defined by the timing_check_defaults variable. DESCRIPTION This command checks the timing attributes placed on the current design and issues warning messages as needed. The messages provide information that identifies and corrects potential errors. The warnings do not necessarily indicate design problems. This command without any options performs the checks defined by the timing_check_defaults variable. Redefine this variable to change the value. If the -override_defaults option is not used, the final list of checks to be performed is the list of checks specified by the timing_check_defaults variable, plus the list of checks given by the -include option, minus the list of checks given by the -exclude option. If the -override_defaults option is used with a check_list, the final list of checks to be performed is the checks in the check_list given by the option. The alphabetically ordered list below shows the meaning of each check: clock_crossing Checks clock interactions when there are multiple clock domains. If a clock launches one or more paths that are captured by other clocks, it will have an entry in the clock crossing report. If all paths between two clocks are false paths or they are exclusive or asynchronous clocks, the path is marked with an asterisk (*). If only some of the paths are set as false paths, the path is marked by a number sign (#). clock_no_period Warns if clocks with no period are specified. data_check_multiple_clock check_timing 396 IC Compiler™ Tool Commands Version L-2016.03 Warns if multiple clocked signals reach a data check register reference pin. The analysis is done separately for each of the clocked domains. If the timing_enable_multiple_clock_per_reg variable is set to false, only one of the clocked signals is analyzed. data_check_no_clock Warns if no clocked signal reaches a data check register reference pin. In this case, no setup or hold checks are performed on the constrained pin. gated_clock Warns about the gated clocks. Disable the gating timing arcs only if the propagated_clock attribute is set on that clock. generated_clock Checks the generated clock network. Three types of issues are reported: • The source pin (master point) is not the clock source. • The definition point of the generated clock has no path to the source point. • The generated clocks form a loop. generic Warns about generic (unmapped) cells in the design. The timing of paths through generic cells is inaccurate because generic cells have zero delay. ideal_clocks Warns about any clock networks that are ideal. Generally, all clocks should be propagated so that the clock network timing is accurately calculated. Especially in the presence of crosstalk, the delay changes induced by other nets on the clock network will not reflected in the calculated slacks in the design. ideal_timing Warns that user_defined ideal transition or latency is set on a normal pin (not ideal). loops Warns of combinational feedback loops. If the feedback loop is not broken by the set_disable_timing command, it is automatically broken by disabling one or more timing arcs. multiple_clock This item should also be specified by the -multiple_clock option. net_no_driving_info Chapter 1: check_timing 397 1-397 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Warns about any net that does not have driving pins or that there are no timing arcs on the driver pins. The warning is issued only when the net has coupled parasitic. no_driving_cell Warns about any port that does not have a driving cell. The warning is issued only when the net connected to the port has parasitic. When no driving cell is specified, that net is assigned a strong driver for modeling aggressor effects, which can be pessimistic. Also, a port with no driving cell could act as a strong victim, which could underestimate the crosstalk effect. no_input_delay Warns if no clock-related delay is specified on an input port, where it propagates to a clocked latch or output port. If the timing_input_port_default_clock variable is set to true, a default clock is assumed for the input port. Otherwise, it will not be clocked, and the paths are unconstrained. In this case, if there is no input delay specified, check_timing does not generate warnings. partial_input_delay Warns about any ports have partially defined input delay; only the minimum or only the maximum delay defined with set_input_delay. As a result, some paths starting from the port with partially defined input delay may become unconstrained and some potential violations could be missed. pulse_clock_cell_type Warns if an instance cell has a mismatched pulse type defined from its library cell. retain This check item should also be specified by the -retain option. unconstrained_endpoints Warns about unconstrained timing endpoints. This warning identifies timing endpoints that are not constrained for maximum delay (setup) checks. If the paths to the endpoint are all false paths, endpoints are not reported as unconstrained endpoints. The warning messages that can occur when using this command are described below. • The warning message shown below occurs when the waveforms applied to a master-slave register are overlapping or have different periods. Use the create_clock command to modify one of the waveforms. • The overlap check first determines the intended master-slave waveform relationships based on the ideal clock waveforms. Then the clock network delay and uncertainty is applied to the waveforms and if the distance between the related edges is less than the overlap tolerance, the tool issues a warning. check_timing 398 IC Compiler™ Tool Commands Version L-2016.03 WARNING: The following master-slave registers have overlapping clock violations. The waveforms or periods may be invalid. • The warning message shown below identifies timing endpoints (output ports and register data pins) that are not constrained. If the endpoint is a register data pin, use the create_clock command for the appropriate clock source to constrain the pin. Use the set_output_delay or set_max_delay command to constrain output ports. The set_output_delay command constrains only the path when the delay is relative to a clock. WARNING: The following endpoints are not constrained for maximum delay. • The warning message shown below identifies gated clocks. Disable the gating timing arcs only if the propagated_clock attribute is set on that clock. WARNING: The clock network starting at "clk" is gated by the following input pins. The gating timing arcs might need to be disabled for clocks with the "propagated_clock" attribute. • The warning message shown below occurs when the design contains unmapped cells (generic logic), which causes the timing of the paths through the generic cells to be inaccurate because generic cells have zero delay. WARNING: Design "design_name" contains unmapped cells. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example checks the timing of the current design and issues warnings as needed: prompt> check_timing Information: Checking Information: Checking Information: Checking Information: Checking Information: Checking 'unexpandable_clocks'... 'generic'... 'latch_fanout'... 'loops'... 'generated_clocks'... SEE ALSO check_design(2) check_library(2) create_clock(2) Chapter 1: check_timing 399 1-399 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 current_design(2) set_case_analysis(2) set_disable_timing(2) set_max_delay(2) set_output_delay(2) timing_enable_multiple_clocks_per_reg(3) check_timing 400 IC Compiler™ Tool Commands Version L-2016.03 check_tlu_plus_files Checks the files used for TLUPlus extraction. SYNTAX status check_tlu_plus_files ARGUMENTS This command has no arguments. DESCRIPTION The check_tlu_plus_files command performs consistency checks on the TLUPlus files used for virtual route and postroute extraction, which are specified by using the set_tlu_plus_files command. If the TLUPlus files are from a Milkyway design library attachment, this command does not do any checking because the attachment was already checked when it was attached. The following items are checked for consistency: • Layer names The consistency check ensures that the conductor and via layer names are consistent across the Milkyway, ITF, and mapping files. The tool also checks that the number of layers are consistent between the ITF files and the Milkyway technology files. The tool issues error messages if there are inconsistencies. • Etch values The tool checks that the etch values in the ITF files are consistent with the delta width values in the Milkyway technology files under minimum, nominal, and maximum conditions. The signs used to indicate expand and shrink are opposite in the ITF files and the Milkyway technology files. The tool issues warning messages if there are inconsistencies. • Minimum width and minimum spacing The tool checks that the minimum width and minimum spacing are consistent between the ITF files and the Milkyway technology files, and among different minimum, nominal, and maximum ITF files. The tool issues warning messages if there are inconsistencies. Chapter 1: check_tlu_plus_files 401 1-401 IC IC Compiler™ Compiler™ Tool Tool Commands Commands • L-2016.03 Version L-2016.03 Conductor thickness The tool checks that the conductor thicknesses are consistent between the ITF files and the Milkyway technology files. The tool issues warning messages if there are inconsistencies. Multicorner-Multimode Support This command uses information from all scenarios. EXAMPLES The following example runs the consistency checks: prompt> check_tlu_plus_files SEE ALSO check_library(2) set_tlu_plus_files(2) check_tlu_plus_files 402 IC Compiler™ Tool Commands Version L-2016.03 check_zrt_routability Locates and reports design obstructions that can prevent clean routing. The main function of this command is to identify blocked ports. It also performs out-of-boundary checks and minimum-grid checks. SYNTAX status check_zrt_routability [-error_view view_name] [-check_standard_cell_blocked_ports true | false] [-check_non_standard_cell_blocked_ports true | false] [-check_pg_blocked_ports true | false] [-check_frozen_net_blocked_ports true | false] [-check_min_grid true | false] [-check_out_of_boundary true | false] [-obey_access_edges true | false] [-access_edge_whole_side true | false] [-report_no_access_edge true | false] [-obey_direction_preference true | false] [-blocked_range integer] [-blocked_range_via_side integer] [-standard_cell_search_range integer] [-allow_via_rotation true | false] [-connect_standard_cells_within_pins true | false] [-check_no_net_pins true | false] [-honor_layer_constraints true | false] Data Types view_name integer string integer ARGUMENTS -error_view view_name Specifies the name of the generated error view. The default is top_cell_name.err. If there is an existing error view with the specified (or default) name, the tool overwrites it. Chapter 1: check_zrt_routability 403 1-403 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -check_standard_cell_blocked_ports true | false Controls whether the command checks for blocked standard cell ports. By default (true), the standard cell ports are checked. -check_non_standard_cell_blocked_ports true | false Controls whether the command checks for blocked macro, top-level, and non-standard-cell ports. By default (true), the macro, top-level, and non-standard-cell ports are checked. -check_pg_blocked_ports true | false Controls whether the command checks for blocked power and ground ports. By default (false), the power and ground ports are not checked. -check_frozen_net_blocked_ports true | false Controls whether the command checks for blocked frozen net ports. By default (false), the frozen net ports are not checked. -check_min_grid true | false Controls whether the command checks and reports design objects that are not on the user (manufacturing) minimum grid. By default (true), the minimum-grid checks are performed. -check_out_of_boundary true | false Controls whether the command checks and reports the pins that are outside of the design boundary. The design boundary is the same as the "die size." By default (true), the out-of-boundary checks are performed. -obey_access_edges true | false Controls whether pins can be connected only at their access edges. By default (false), pins can be connected at any point. -access_edge_whole_side true | false Controls the access points when access edges are obeyed (-obey_access_edges true). An access edge is marked by a narrow rectangle, a short line, or even by a single point. The access edge mark either fully or partially overlaps one of the port edges. When the check_zrt_routability 404 IC Compiler™ Tool Commands Version L-2016.03 overlap is not full, such as when the access edge mark is a single point, there are two possible interpretation of the connection rule. By default (true), the connection can be made to any point on the marked port edge. If set to false, only the exact access edge mark can be used. -report_no_access_edge true | false Controls whether the command reports the unconnected pins without predefined access edges. By default (false), pins without access edges are not reported. -obey_direction_preference true | false Controls whether only preferred direction access is allowed. By default (false), access is allowed in both the horizontal and vertical directions. When set to true, access is allowed only in the preferred direction. This option applies only to non-standard-cell ports. (Standard-cell ports are usually accessed only by vias. When a wire on the port layer is needed, it can be in any direction.) -blocked_range integer Specifies the number of pitches for the same-layer accessibility check for macro and top-level ports. The default is 10. -blocked_range_via_side integer Specifies the number of pitches for the accessibility check on the other side of an access via. The default is 10. This check applies only to macro and top-level ports. -standard_cell_search_range integer Specifies the number of pitches for the same-layer accessibility search of standard cell pins. The default is 2. -allow_via_rotation true | false Controls whether pin connections can use rotated vias. By default (true), pin connections can use rotated vias. Chapter 1: check_zrt_routability 405 1-405 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -connect_standard_cells_within_pins true | false Controls whether via connections to standard cell pins must be fully inside the pins. By default (false), the via connections do not need to be fully inside the pins. -check_no_net_pins true | false Controls whether the command checks the accessibility for pins without an assigned net. By default (false), the command does not check pins without nets. -honor_layer_constraints true | false Controls whether the command considers the layer constraints when checking the accessibility of ports and the connectivity of nets. The layer constraints include the global minimum and maximum routing layer constraints set by the -min_routing_layer and -max_routing_layer options of the set_ignored_layers command; the net-specific minimum and maximum routing layer constraints set by the -min_layer_name and -max_layer_name options of the set_net_routing_layer_constraints command; and the freeze layer constraints set by the -freeze_layer_by_layer_name and -freeze_via_to_frozen_layer_by_layer_name options of the set_route_zrt_common_optiona command. By default (true), the command considers the layer constraints when checking for blocked ports and nets. DESCRIPTION The check_zrt_routabilty command identifies blocked ports, out-of-boundary ports, and minimum-grid violations for all design objects. The results are reported as part of the standard output and in an error view. The error view can be accessed by the GUI error browser. A logical port can have several physical pins. A port is considered blocked if none of its pins is accessible. A top-level or macro pin is considered accessible if a legal path can be extended from the pin to a certain distance around it. This path can be only on the pin layer or can extend to a neighboring layer by a single via. The required distance on the pin layer and on the layer at the other side of the via are set by the -blocked_range and -blocked_range_via_side options. A standard cell pin is considered accessible if there is a legal path that extends to the next layer or a path on the pin layer that extends to the distance set by the check_zrt_routability 406 IC Compiler™ Tool Commands Version L-2016.03 -standard_cell_search_range option or a shorter path on the pin layer ended by a via to a neighboring layer. To get DRC-clean routing, you must fix all reported violations. • You can fix blocked ports by removing or modifying the blockages, by moving or modifying the ports, or by modifying the netlist. • You can fix out-of-boundary ports by moving them or, if appropriate, by fully removing them. • You can either fix minimum-grid violations or intentionally accept them. You can run the check_zrt_routability command at any stage of the routing flow. However, it is most useful when run before global routing. It can be useful to run the command after routing to identify the root cause of certain routing failures. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following command performs accessibility checks, out-of-boundary checks, and minimum-grid checks. You should run it before global routing and, if needed, modify the design according to the generated report. prompt> check_zrt_routability The command writes a report to the standard output. The report includes either "no violation" messages or a detailed list of the violations. The following example shows a report for a design with violations: ======================================= == Check for min-grid violations == == (At data load stage) == ======================================= >>> X MinGrid Violation in via cell instance inst_name at (85.432 62.100) >>> Y MinGrid Violation in via center at (43.500 60.137) >>>>>> Found 2 min-grid violations ======================================= == Check for out-of-boundary ports == ======================================= >>> Port (chip4 clkin) at [-0.40, 50.500...0.20, 50.700] M3,M4 out of boundary >>>>>> Found 1 out-of-bound ports Chapter 1: check_zrt_routability 407 1-407 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 ======================================= == Check for blocked ports == ======================================= >>>>>> Port blocked by layer constraints- min/max and freeze layer settings >>> Port at [328.095,34.485..328.270,35.915] M1 is blocked by layer constraints. Inst=driveB Master=ADR1 Port=Out2 Net=net123 >>>>>> Port blocked by check port access >>> Port at [20.400,40.750..20.450,40.850] M1 is blocked. Inst=driveA Master=BufAA2 Port=Out1 Net=setoo >>>>>> The design cannot be cleanly routed because it has 2 completely blocked ports >>>>>> Net blocked by layer constraints- min/max and freeze layer settings >>> Net netA at [328.095,34.205..339.300,35.915] is blocked with its ports isolated by layer constraints. >>> Net netB at [328.095,34.205..339.300,35.915] is blocked with its ports isolated by layer constraints and the shapes on freeze layer can't be accessed. >>>>>> The design cannot be cleanly routed because it has 2 blocked Nets The following command performs only out-of-boundary and minimum-grid checks: prompt> check_zrt_routability \ -check_standard_cell_blocked_ports false \ -check_non_standard_cell_blocked_ports false The following command does not report minimum-grid violations: prompt> check_zrt_routability -check_min_grid false SEE ALSO route_zrt_global(2) route_zrt_detail(2) route_zrt_auto(2) set_ignored_layers(2) set_route_zrt_common_options(2) set_net_routing_layer_constraints(2) check_zrt_routability 408 IC Compiler™ Tool Commands Version L-2016.03 clock_opt Performs clock tree synthesis, routing of clock nets, extraction, optimization, and hold time violation fixing on the design. There is also an option to perform interclock delay balancing. SYNTAX status clock_opt [-only_psyn] [-fix_hold_all_clocks] [-inter_clock_balance] [-update_clock_latency] [-operating_condition min | max | min_max] [-only_cts] [-clock_trees name_of_clocks] [-optimize_dft] [-continue_on_missing_scandef] [-no_clock_route] [-only_hold_time] [-area_recovery] [-size_only | -in_place_size_only] [-power] [-insert_self_gating] [-congestion] [-concurrent_clock_and_data] [-incremental_concurrent_clock_and_data] ARGUMENTS -only_psyn Performs optimization only. -fix_hold_all_clocks Performs hold time violation fixing for all clocks during incremental optimization. By default, the clock_opt command does not perform hold fixing. -inter_clock_balance Performs interclock delay balancing. By default, the clock_opt command does not perform interclock delay balancing. Chapter 1: clock_opt 409 1-409 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -update_clock_latency Updates the latencies on real and virtual clock objects after clock tree synthesis, clock tree optimization, interclock delay balancing (if enabled), and clock tree detail routing. This option effectively executes the set_clock_latency command internally for the clock objects and uses the insertion delay of the clock tree as the latency value. If you run the set_latency_adjustment_options command before the clock_opt command, the directives are obeyed. If you do not specify any directives, only the latencies of real clock objects are updated. The update mechanism uses the insertion delay of the clock tree as the latency value. -operating_condition min | max | min_max Specifies the operating condition. The default is max. -only_cts Performs only clock tree synthesis, clock tree optimization, and clock tree routing. -clock_trees name_of_clocks Performs clock tree synthesis and optimization on the clocks specified in the order specified. -optimize_dft Enables clock-aware scan reordering. The reordering tries to minimize the number of buffer crossings in the scan chains. Minimizing the number of buffer crossings can reduce hold time violations in the scan chains. When you specify this option, you must load the SCANDEF data that defines the scan chains before running the clock_opt command. You can use the get_scan_chains command to check if the SCANDEF data is available. For best results, first use the place_opt -optimize_dft command to perform placement-aware scan reordering. By default, the clock_opt command does not perform scan reordering. -continue_on_missing_scandef Continues placement when the design contains scan chains but no SCANDEF data. By default, missing SCANDEF data causes the command to exit with an error message. If you specify this option, the command continues with a warning and results in reduced quality-of-results. clock_opt 410 IC Compiler™ Tool Commands Version L-2016.03 -no_clock_route Disables routing of clock nets. -only_hold_time Performs only hold time fixing after clock tree synthesis. If you specify the -fix_hold_all_clocks option, the tool fixes hold time violations for all clocks. Otherwise, the tool fixes hold time violations only for the clocks specified with the set_fix_hold command. -area_recovery Enables area recovery for the cells not on the timing critical paths. -size_only Restricts post clock tree synthesis optimization to sizing changes only. Optimization procedures that insert new cells and remove cells are disabled. See the description for the -in_place_size_only option for information about how to further constrain sizing changes. The -size_only and -in_place_size_only options are mutually exclusive. -in_place_size_only Restricts post clock tree synthesis optimization to in-place sizing changes only. Optimization procedures that insert new cells and remove cells are disabled. With the -in_place_size_only option, sizing changes are further constrained for minimal engineering change order (ECO) placement changes. For example, a cell is sized to improve timing or design rule costs only if the newly-sized cell can fit into any available space adjacent to the original cell location. The resulting transformation is verified to ensure that it is legal. The -size_only and -in_place_size_only options are mutually exclusive. -power Performs the enabled clock tree power optimizations before clock tree synthesis, as well as power-aware timing optimization and leakage-power optimization after clock tree synthesis. The supported clock tree power optimizations are power-aware placement and clock gate restructuring. To enable power-aware placement, use the set_optimize_pre_cts_power_options command to set the -low_power_placement option to true. When you enable power-aware placement, the tool performs incremental switching-activity-based power-aware placement. For the best results from Chapter 1: clock_opt 411 1-411 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 power-aware placement, you should specify the same coarse placement setup, such as the placer_max_cell_density_threshold variable, used in the place_opt command before running the clock_opt command. To enable clock gate restructuring, use the set_optimize_pre_cts_power_options command to set the -merge_clock_gates option to true. The clock_opt command can perform leakage-power optimization based on either the multiple-threshold-voltage constraint or the leakage values of the library cells. To perform leakage-power optimization based on the multiple-threshold-voltage constraint, use the set_multi_vth_constraint command to define this constraint before running the clock_opt command. If this constraint is not defined, the tool bases the leakage-power optimization on the leakage values of the library cells. When you specify this option for a multicorner-multimode design, you must use the set_scenario_options command to select the leakage scenarios before running the clock_opt command. When you use the -power option with the -only_cts option, the enabled clock tree power optimizations are performed before clock tree synthesis; leakage-power optimization is not performed. When you use the -power option with the -only_psyn option, power-aware timing optimization and leakage-power optimization are performed but the clock tree power optimizations are not performed. To perform only power-aware-timing optimization and not clock-tree-power or leakage-power optimization, do not use the -power option. Instead, set the icc_preroute_power_aware_optimization variable to true before running the clock_opt command. -insert_self_gating Inserts XOR self-gating logic during clock tree synthesis before clock tree construction. For best results, you should provide the clock activity information by reading a SAIF file with the read_saif command before running the clock_opt command. -congestion Performs congestion-driven incremental placement during the post clock tree synthesis optimization stage. By default, the clock_opt command does not consider congestion during incremental placement. -concurrent_clock_and_data When -only_cts option is used along with -concurrent_clock_and_data option, the tool synthesizes the clock trees, performs data-path optimization, and computes useful skew clock_opt 412 IC Compiler™ Tool Commands Version L-2016.03 for improving the setup WNS and TNS, and rebuilds the clock trees to implement the useful skew. When -concurrent_clock_and_data is used along with only_cts option, clock_opt command accepts other data-path optimization options such as area_recovery, congestion, etc to guide the data-path optimization that is performed inside. When -only_psyn option is used along with -concurrent_clock_and_data option, the tool performs data-path optimization, WNS improvement driven clock tree optimization, and finally performs an additional data-path optimization. When -concurrent_clock_and_datai is used without only_cts or only_psyn, it is equivalent to clock_opt -only_cts -concurrent_clock_and_data followed by clock_opt -only_psyn -concurrent_clock_and_data. -incremental_concurrent_clock_and_data Performs incremental data-path optimization and timing improvement driven clock tree optimization. The optimization at this stage improves timing in all active scenarios. Options -area_recovery and -continue_on_missing_scandef can be used with -incremental_concurrent_clock_and_data. When this option is given, no clock detail route is called even there is no -no_clock_route given. It is recommended to use -incremental_concurrent_clock_and_data only after clock_opt -only_cts -concurrent_clock_and_data and clock_opt -only_psyn -concurrent_clock_and_data have already been run. DESCRIPTION The clock_opt command performs clock tree synthesis, routing of clock nets, extraction, optimization, and optionally hold time violation fixing on the current design. If clock tree synthesis or the routing of the clock nets fails, the command returns with a value of 0. If you specify the -only_psyn option, the tool performs only extraction and optimization on a clock-routed design. This option can be used in a customized clock tree synthesis flow where clock tree synthesis is performed outside of the clock_opt command. Before running the clock_opt command, use the set_clock_tree_options command to control the compile_clock_tree command. Use the set_latency_adjustment_options command to issue directives to control the adjustment of latency on clock objects that belong to virtual and real clocks. If no directives are given, the default clock_opt command flow updates the latencies of real clocks with their insertion delays obtained after the compile_clock_tree, optimize_clock_tree, and optionally balance_inter_clock_delay Chapter 1: clock_opt 413 1-413 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 commands. Use the set_inter_clock_delay_options command to control the behavior of interclock delay balancing within the clock_opt command. Briefly, the clock_opt command • Runs the optimize_pre_cts_power command, if enabled • Runs the compile_clock_tree command • Runs the optimize_clock_tree command • Runs the set_propagated_clock command for all clocks from the root pin, but keeps the clock object as ideal • Performs interclock delay balancing, if enabled • Performs detail routing of the clock nets • Performs RC extraction of the clock nets and computes accurate clock arrival times • Updates the latency on clock objects, if enabled • Reduces congestion, if enabled • Optimizes the scan chains, if enabled • Fixes the placement of the clock tree buffers and inverters • Runs the psynopt command • Fixes hold time violations, if enabled Multicorner-Multimode Support This command uses information from the clock tree synthesis scenarios. All scenarios enabled as clock tree synthesis scenarios are activated for clock tree synthesis and are returned to their current state (active or inactive) after clock tree synthesis. If you enable clock_opt 414 IC Compiler™ Tool Commands Version L-2016.03 power optimization, you must select the leakage scenarios before running the clock_opt command. EXAMPLES The following command performs clock tree synthesis, routing of all clock nets, extraction, and optimization: prompt> clock_opt SEE ALSO extract_rc(2) psynopt(2) place_opt(2) read_saif(2) route_opt(2) set_clock_tree_options(2) set_inter_clock_delay_options(2) set_latency_adjustment_options(2) set_multi_vth_constraint(2) set_scenario_options(2) icc_preroute_power_aware_optimization(3) skew_opt(2) set_concurrent_clock_and_data_strategy(2) reset_concurrent_clock_and_data_strategy(2) report_concurrent_clock_and_data_strategy(2) Chapter 1: clock_opt 415 1-415 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 clock_opt_feasibility Performs optimization feasibility analysis on the design after clock tree synthesis. SYNTAX status clock_opt_feasibility [-congestion] [-clock_route] [-only_psyn] [-fix_hold_all_clocks] [-inter_clock_balance] [-update_clock_latency] [-operating_condition min | max | min_max] [-only_cts] [-optimize_dft] [-continue_on_missing_scandef] [-no_clock_route] [-only_hold_time] [-area_recovery] [-size_only] [-in_place_size_only] [-power] [-no_legalize_large_displacement] [-large_displacement_threshold number_of_cell_rows] Data Types number_of_cell_rows int ARGUMENTS -congestion Performs congestion removal during the optimization feasibility flow. By default, the command does not perform congestion removal. -clock_route Performs clock net routing after optimization. By default, the command does not perform clock routing. clock_opt_feasibility 416 IC Compiler™ Tool Commands Version L-2016.03 -only_psyn Performs optimization only. -fix_hold_all_clocks Performs hold time violation fixing for all clocks during incremental optimization. By default, the command does not perform hold fixing. -inter_clock_balance Performs interclock delay balancing. By default, the command does not perform interclock delay balancing. -update_clock_latency Updates the latencies on real and virtual clock objects after clock tree synthesis, clock tree optimization, interclock delay balancing (if enabled), and clock tree detail routing. This effectively executes the set_clock_latency command internally for the clock objects and uses the insertion delay of the clock tree as the latency value. If you run the set_latency_adjustment_options command before the clock_opt_feasibility command, the directives are obeyed. If you do not specify any directives, only the latencies of real clock objects are updated. The update mechanism uses the insertion delay of the clock tree as the latency value. -operating_condition min | max | min_max Specifies the operating condition. The default is max. -only_cts Performs only clock tree synthesis and clock tree optimization. -optimize_dft Enables clock-aware scan reordering. The reordering tries to minimize the number of buffer crossings in the scan chains. Minimizing the number of buffer crossings can reduce hold time violations in the scan chains. When you specify this option, you must load the SCANDEF data that defines the scan chains before running the clock_opt command. You can use the get_scan_chains command to check if the SCANDEF data is available. For best results, first use the place_opt -optimize_dft command to perform placement-aware scan reordering. Chapter 1: clock_opt_feasibility 417 1-417 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -continue_on_missing_scandef Continues placement when the design contains scan chains but no SCANDEF data. By default, missing SCANDEF data causes the command to exit with an error message. If you specify this option, the command continues with a warning and results in reduced quality-of-results (QoR). -no_clock_route Disables routing of clock nets. This is the default behavior. -only_hold_time Performs only hold time fixing after clock tree synthesis. If you specify the -fix_hold_all_clocks option, the tool fixes hold time violations for all clocks. Otherwise, the tool fixes hold time violations only for the clocks specified with the set_fix_hold command. -area_recovery Enables area recovery for the cells not on the timing critical paths. -size_only Restricts post clock tree synthesis optimization to sizing changes only. Optimization procedures that insert new cells and remove cells are disabled. The -size_only and -in_place_size_only options are mutually exclusive. See the description for the -in_place_size_only option for additional information about how to further constrain sizing changes. -in_place_size_only Restricts post clock tree synthesis optimization to in-place sizing changes only. Optimization procedures that insert new cells and remove cells are disabled. With the -in_place_size_only option, sizing changes are further constrained for minimal engineering change order (ECO) placement changes. For example, a cell is sized to improve timing or design rule costs only if the newly-sized cell can fit into any available space adjacent to the original cell location. The resulting transformation is verified to ensure that it is legal. -power Performs the enabled clock tree power optimizations before clock tree synthesis, as well as leakage-power optimization after clock tree synthesis. The supported clock tree power optimizations are power-aware placement and clock gate restructuring. To enable power-aware placement, use the clock_opt_feasibility 418 IC Compiler™ Tool Commands Version L-2016.03 set_optimize_pre_cts_power_options command to set the -low_power_placement option to true. When you enable power-aware placement, the tool performs incremental switching-activity-based power-aware placement. For the best results from power-aware placement, you should specify the same coarse placement setup, such as the placer_max_cell_density_threshold variable, used in the place_opt command before running the clock_opt_feasibility command. To enable clock gate restructuring, use the set_optimize_pre_cts_power_options command to set the -merge_clock_gates option to true. The clock_opt_feasibility command can perform leakage-power optimization based on either the multiple-threshold-voltage constraint or the leakage values of the library cells. To perform leakage-power optimization based on the multiple-threshold-voltage constraint, use the set_multi_vth_constraint command to define this constraint before running the clock_opt_feasibility command. If this constraint is not defined, the tool bases the leakage-power optimization on the leakage values of the library cells. When you specify this option for a multicorner-multimode design, you must use the set_scenario_options command to select the leakage scenarios before running the clock_opt_feasibility command. When you use the -power option with the -only_cts option, the enabled clock tree power optimizations are performed before clock tree synthesis; leakage-power optimization is not performed. When you use the -power option with the -only_psyn option, leakage-power optimization is performed but the clock tree power optimizations are not performed. -no_legalize_large_displacement Does not move cells beyond the distance threshold specified by the -large_displacement_threshold option during legalization. Those cells that are not legalized are kept at their illegal location. You can run the legalize_placement command after feasibility analysis to legalize these illegal cells. -large_displacement_threshold number_of_cell_rows Specifies the displacement threshold for the -no_legalize_large_displacement option. The unit for this option is the cell row height. By default, the displacement threshold is the height of 10 cell rows. DESCRIPTION The clock_opt_feasibility command performs optimization feasibility analysis after clock tree synthesis. You should run the feasibility flow during the early stages of the design flow Chapter 1: clock_opt_feasibility 419 1-419 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 to debug the design constraints. Both the setup and hold timing optimization engines are designed for fast runtimes and are less exhaustive. Run this command on a design with initial constraints, such as latency settings, and cross-clock-domain-related timing issues. The clock_opt_feasibility flow runs faster than the comparable clock_opt flow and produces reasonable QoR correlation. By default, the clock_opt_feasibility command does not perform congestion removal to save runtime. You can specify the -congestion option to perform the congestion removal step or you can run the psynopt -congestion command separately. By default, the clock_opt_feasibility command does not perform clock routing to save runtime. You can specify the -clock_route option to perform clock routing or you can run the route_zrt_group -all_clock_nets command separately. By default, the clock_opt_feasibility command does not change the placer_max_cell_density_threshold variable if it is already set. If it is not set, the clock_opt_feasibility command uses a value of 0.8 for the variable when you use the -congestion option. Set the placer_max_cell_density_threshold variable to its default of -1 if you do not want to use the variable. Multicorner-Multimode Support This command uses information from the clock tree synthesis scenarios. All scenarios enabled as clock tree synthesis scenarios are activated for clock tree synthesis and are returned to their current state (active or inactive) after clock tree synthesis. If you enable power optimization, you must select the leakage scenarios before running the clock_opt_feasibility command. EXAMPLES The following command performs optimization for feasibility analysis: prompt> clock_opt_feasibility -only_psyn SEE ALSO clock_opt(2) read_saif(2) set_clock_tree_options(2) set_inter_clock_delay_options(2) set_latency_adjustment_options(2) set_multi_vth_constraint(2) set_scenario_options(2) clock_opt_feasibility 420 IC Compiler™ Tool Commands Chapter 1: clock_opt_feasibility Version L-2016.03 421 1-421 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 close_distributed_route Closes all of the sockets and shuts down the daemons. SYNTAX integer close_distributed_route DESCRIPTION Closes all of the sockets and shuts down the daemons on the slave machines. Multicorner-Multimode Support This command has no dependency on scenario-specific information. SEE ALSO set_distributed_route(2) report_distributed_route(2) remove_distributed_route(2) close_distributed_route 422 IC Compiler™ Tool Commands Version L-2016.03 close_mw_cel Closes the specified Milkyway designs. SYNTAX status close_mw_cel [-save] [-hierarchy] [-all_views] [-all_versions] [mw_cel_list] Data Types mw_cel_list list ARGUMENTS -save Indicates that the specified Milkyway designs are to be saved before closing. By default, the command discards any changes made to the Milkyway design and closes the specified Milkyway design. -hierarchy Closes the specified top design and all opened child designs. By default, the command closes only the specified Milkyway designs. When -hierarchy is specified, mw_cel_list can only specify the top design. The -hierarchy argument cannot be used with -all_views and -all_versions. -all_views Closes all opened views of specified Milkyway designs. By default, the command closes only the specified Milkyway designs. If this option is used with -save, only views supported by save_mw_cel will be saved first and then all opened views will be closed. If specifying this option without -all_versions, only the latest versions of all views will be closed. The -all_views argument cannot be used with -hierarchy. Chapter 1: close_mw_cel 423 1-423 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -all_versions Closes all versions of specified Milkyway designs. If specifying this option with -all_views, all views and all versions of the specified Milkway designs will be closed, or else only all versions of the specified views will be closed. The -all_versions argument cannot be used with -hierarchy. mw_cel_list Specifies Milkyway designs to be closed. You can specify Milkyway designs by name, name pattern, or by the Milkyway design collection's name. For example, specifying top matches a Milkyway design named top in the current library. Specifying top* matches all Milkyway designs having names beginning with top. The command close_mw_cel [get_mw_cels *] closes all Milkyway designs in the current library. By default, the command uses the current Milkyway design. DESCRIPTION This command saves or discards specified Milkyway designs or the current Milkyway design and then closes them. If the closed Milkyway design appears in any design stack, it will be poped out from those stacks first. If the current working design is poped out of stack or is closed, we will switch current working design to the top of most recently used stack. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example discards and closes the current Milkyway design. prompt> close_mw_cel 1 The following example saves and closes a list of Milkyway designs. prompt> close_mw_cel -save {test1 test2} Information: Saved design named test1.CEL;1. Information: Saved design named test2.CEL;1. 1 close_mw_cel 424 IC Compiler™ Tool Commands Version L-2016.03 The following example discards and closes a list of Milkyway designs. prompt> close_mw_cel {test1 test2} 1 The following example saves and closes all views of the specified Milkyway design. prompt> close_mw_cel -save -all_views test1 Information: Saved design named test1.CEL;1. Information: Saved design named test1.FILL;2. 1 The following example saves and closes all versions of the specified Milkyway design. prompt> close_mw_cel -save -all_versions {test1.FILL} Information: Saved design named test1.FILL;1. Information: Saved design named test1.FILL;2. 1 The following example saves and closes all views and all versions of the specified Milkyway design. prompt> close_mw_cel -save -all_views -all_versions test1 Information: Saved design named test1.CEL;1. Information: Saved design named test1.FILL;1. Information: Saved design named test1.FILL;2. 1 The following example saves and closes the specified top design and its opened child designs. prompt> close_mw_cel -hierarchy Information: Saved design named Information: Saved design named Information: Saved design named 1 -save RISC_CORE ALU.CEL;1. (UIG-5) DATA_PATH.CEL;1. (UIG-5) RISC_CORE.CEL;1. (UIG-5) SEE ALSO copy_mw_cel(2) create_mw_cel(2) current_mw_cel(2) get_mw_cels(2) open_mw_cel(2) Chapter 1: close_mw_cel 425 1-425 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 remove_mw_cel(2) rename_mw_cel(2) mw_cel_collection(2) list_mw_cels(2) close_mw_cel 426 IC Compiler™ Tool Commands Version L-2016.03 close_mw_lib Closes the current Milkyway library. SYNTAX status close_mw_lib [-save] ARGUMENTS -save Saves all Milkyway CEL views opened in this library. By default, the command discards changes of Milkyway CEL views in this library. DESCRIPTION This command closes the current Milkyway library. It returns a status indicating success or failure. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example closes the current Milkyway library: prompt> close_mw_lib 1 SEE ALSO open_mw_lib(2) Chapter 1: close_mw_lib 427 1-427 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 close_rail_result Closes the current rail result. SYNTAX status close_rail_result DESCRIPTION This command closes the current rail result. After the rail result is closed, you cannot access any rail analysis result information such as taps, voltage drop attributes, and power attributes. EXAMPLE The following example closes the current rail result. prompt> open_rail_result static prompt> get_attribute [ get_cell U35 ] total_power 1.0876e-06 prompt> close_rail_result 1 SEE ALSO analyze_rail(2) open_rail_result(2) close_rail_result 428 IC Compiler™ Tool Commands Version L-2016.03 collections Describes the methodology for creating collections of objects and querying objects in the database. DESCRIPTION Synopsys applications build an internal database of objects and attributes applied to them. These databases consist of several classes of objects, including designs, libraries, ports, cells, nets, pins, clocks, and so on. Most commands operate on these objects. By definition: A collection is a group of objects exported to the Tcl user interface. Collections have an internal representation (the objects) and, sometimes, a string representation. The string representation is generally used only for error messages. A set of commands to create and manipulate collections is provided as an integral part of the user interface. The collection commands encompass two categories: those that create collections of objects for use by another command, and one that queries objects for viewing. The result of a command that creates a collection is a Tcl object that can be passed along to another command. For a query command, although the visible output looks like a list of objects (a list of object names is displayed), the result is an empty string. An empty string "" is equivalent to the empty collection, that is, a collection with zero elements. To illustrate the usage of the common collection commands, the man pages have examples. Most of the examples use PrimeTime as the application. In all cases, the application from which the example is derived is indicated. Homogeneous and Heterogeneous Collections A homogeneous collection contains only one type of object. A heterogeneous collection can contain more than one type of object. Commands that accept collections as arguments can accept either type of collection. Lifetime of a Collection Collections are active only as long as they are referenced. Typically, a collection is referenced when a variable is set to the result of a command that creates it or when it is passed as an argument to a command or a procedure. For example, in PrimeTime, you can Chapter 1: collections 429 1-429 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 save a collection of design ports by setting a variable to the result of the get_ports command: pt_shell> set ports [get_ports *] Next, either of the following two commands deletes the collection referenced by the ports variable: pt_shell> unset ports pt_shell> set ports "value" Collections can be implicitly deleted when they go out of scope. Collections go out of scope for various reasons. An example would be when the parent (or other antecedent) of the objects within the collection is deleted. For example, if our collection of ports is owned by a design, it is implicitly deleted when the design that owns the ports is deleted. When a collection is implicitly deleted, the variable that referenced the collection still holds a string representation of the collection. However, this value is useless because the collection is gone, as illustrated in the following PrimeTime example: pt_shell> current_design {"TOP"} pt_shell> set ports [get_ports in*] {"in0", "in1"} pt_shell> remove_design TOP Removing design 'TOP'... pt_shell> query_objects $ports Error: No such collection '_sel26' (SEL-001) Iteration To iterate over the objects in a collection, use the foreach_in_collection command. You cannot use the Tcl-supplied foreach iterator to iterate over the objects in a collection, because the foreach command requires a list, and a collection is not a list. In fact, if you use the foreach command on a collection, it destroys the collection. The arguments of the foreach_in_collection command are similar to those of foreach: an iterator variable, the collection over which to iterate, and the script to apply at each iteration. Note that unlike the foreach command, the foreach_in_collection command does not accept a list of iterator variables. The following example is an iterative way to perform a query in PrimeTime. For more information, see the foreach_in_collection man page. collections 430 IC Compiler™ Tool Commands Version L-2016.03 pt_shell> \ foreach_in_collection s1 $collection { echo [get_object_name $s1] } Manipulating Collections A variety of commands are provided to manipulate collections. In some cases, a particular command might not operate on a collection of a specific type. This is application-specific. Consult the man pages from your application. • add_to_collection - This command creates a new collection by adding a list of element names or collections to a base collection. The base collection can be the empty collection. The result is a new collection. In addition, the add_to_collection command allows you to remove duplicate objects from the collection by using the -unique option. • append_to_collection - This command appends a set of objects (specified by name or collection) to an existing collection. The base collection is passed in through a variable name, and the base collection is modified directly. It is similar in function to the add_to_collection command, except that it modifies the collection in place; therefore, it is much faster than the add_to_collection command when appending. • remove_from_collection - This command removes a list of element names or collections from an existing collection. The second argument is the specification of the objects to remove and the first argument is the collection to have them removed from. The result of the command is a new collection. For example, in PrimeTime: pt_shell> set dports \ [remove_from_collection [all_inputs] CLK] {"in1", "in2", "in3"} • compare_collections - This command verifies that two collections contain the same objects (optionally, in the same order). The result is "0" on success. • copy_collection - This command creates a new collection containing the same objects in the same order as a given collection. Not all collections can be copied. • index_collection - This command extracts a single object from a collection and creates a new collection containing that object. The index operation is done in constant time - it is independent of the number of elements in the collection, or the specific index. Not all collections can be indexed. • sizeof_collection - This command returns the number of objects in a collection. Chapter 1: collections 431 1-431 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Filtering In some applications, you can filter any collection by using the filter_collection command. This command takes a base collection and creates a new collection that includes only those objects that match an expression. Some applications provide a -filter option for their commands that create collections. This allows objects to be filtered out before they are ever included in the collection. Frequently this is more efficient than filtering after the they are included in the collection. The following examples from PrimeTime filters out all leaf cells: pt_shell> filter_collection \ [get_cells *] "is_hierarchical == true"] {"i1", "i2"} pt_shell> get_cells * -filter "is_hierarchical == true" {"i1", "i2"} The basic form of a filter expression is a series of relations joined together with AND and OR operators. Parentheses are also supported. The basic relation contrasts an attribute name with a value through a relational operator. In the previous example, is_hierarchical is the attribute, == is the relational operator, and true is the value. The relational operators are == != > < >= <= =~ !~ Equal Not equal Greater than Less than Greater than or equal to Less than or equal to Matches pattern Does not match pattern The basic relational rules are • String attributes can be compared with any operator. • Numeric attributes cannot be compared with pattern match operators. • Boolean attributes can be compared only with == and !=. The value can be only true or false. Additionally, existence relations determine if an attribute is defined or not defined, for the object. For example, (sense == setup_clk_rise) and defined(sdf_cond) The existence operators are collections 432 IC Compiler™ Tool Commands Version L-2016.03 defined undefined These operators apply to any attribute as long as it is valid for the object class. See the appropriate man pages for complete details. Sorting Collections In some applications, you can sort a collection by using the sort_collection command. It takes a base collection and a list of attributes as sort keys. The result is a copy of the base collection sorted by the given keys. Sorting is ascending, by default, or descending when you specify the -descending option. In the following example from PrimeTime, the command sorts the ports by direction and then by full name. pt_shell> sort_collection [get_ports *] \ {direction full_name} {"in1", "in2", "out1", "out2"} Implicit Query of Collections In many applications, commands that create collections implicitly query the collection when the command is used at the command line. Consider the following examples from PrimeTime: pt_shell> set_input_delay 3.0 [get_ports in*] 1 pt_shell> get_ports in* {"in0", "in1", "in2"} pt_shell> query_objects -verbose [get_ports in*] {"port:in0", "port:in1", "port:in2"} pt_shell> set iports [get_ports in*] {"in0", "in1", "in2"} In the first example, the get_ports command creates a collection of ports that is passed to the set_input_delay command. This collection is not the result of the primary command (set_input_delay), and as soon as the primary command completes, the collection is destroyed. The second example shows how a command that creates a collection automatically queries the collection when that command is used as a primary command. The third example shows the verbose feature of the query_objects command, which is not available with an implicit query. Finally, the fourth example sets the variable iports to the result of the get_ports command. Only in the final example does the collection persist to future commands until iports is overwritten, unset, or goes out of scope. Chapter 1: collections 433 1-433 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 SEE ALSO add_to_collection(2) append_to_collection(2) compare_collections(2) copy_collection(2) filter_collection(2) foreach_in_collection(2) index_collection(2) query_objects(2) remove_from_collection(2) sizeof_collection(2) sort_collection(2) collections 434 IC Compiler™ Tool Commands Version L-2016.03 commit_fp_group_block_ring Commits the power ground group block ring and/or straps based on the results from the create_fp_group_block_ring command. SYNTAX status commit_fp_group_block_ring ARGUMENTS none DESCRIPTION Generates a real power ground group block ring and/or straps based on group block ring creation results from the create_fp_group_block_ring command. Vias along with wires are also created at each intersection of two wires (For example, a ring or strap) in opposite directions. EXAMPLES The following example commits the group block ring. prompt> commit_fp_group_block_ring SEE ALSO create_fp_group_block_ring(2) Chapter 1: commit_fp_group_block_ring 435 1-435 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 commit_fp_plan_groups Transforms the specified plan groups into soft macros. SYNTAX status commit_fp_plan_groups [-push_down_power_and_ground_straps] [-new_top_cell new_cell_name] [plan_groups] Data Types new_cell_name plan_groups string collection ARGUMENTS -push_down_power_and_ground_straps Specifies that the command pushes down global power and ground preroutes into the soft macro and removes them from the top level. This option only pertains to power and ground nets that are outside the scope of the plan group. Any routing associated with a power or ground net that is defined within the plan group will be pushed down automatically along with any other net route objects that are owned by the plan group. The use of this option is equivalent to the combination of running commit_fp_plan_groups (without this option) and subsequently running push_down_fp_objects and specifying routing as the type and specifying a collection of power and ground nets. -new_top_cell new_cell_name Specifies that the command creates a new top cell where the top-level changes occur. When this option is used, a new top cell is created and the current cell is changed to the new top cell and plan groups within this new top cell are committed. This is equivalent to internally calling "current_mw_cel new_cell_name". When the user calls "save_mw_cell -hier" after commit when using this option, then the new top cell is saved and all soft macros created by commit are saved also. plan_groups Specifies the plan groups that are committed to soft macros. commit_fp_plan_groups 436 IC Compiler™ Tool Commands Version L-2016.03 If you do not specify this option, all plan groups are committed to soft macros. DESCRIPTION This command transforms the specified plan groups into soft macros. For each plan group processed, the tool creates a soft macro to replace the plan group. The soft macro uses the plan group's placement. The soft macro's port instances are connected to their corresponding nets. The plan group's cells are disconnected and deleted, along with the plan group. On the soft macro level, the cells that correspond to the plan group's master-level cells are created in the child, placed relative to their master-level placement, and connected to the corresponding macro-level nets. When used with the "-new_top_cell" option, the user has the benefit of the changes made to a new top layout cell without modifying the currently open cell. If a UPF power domain is detected which is defined completely within the plan group's hierarchical cell instance, and the power domain lists the hierarchical cell instance as an element of that power domain, all UPF objects related to that power domain will be pushed into the soft macro and removed from the top cell. Any embedded UPF power domain and voltage area whose scope is a child of the plan group's hierarchical cell instance will also be pushed down into the soft macro and removed from the top cell. All routing associated with plangroup-owned nets (nets in the top cell that are internal to the plan groups) is automatically removed from the top cell and instantiated in the soft macro cell, both signal and power/ground (as long as they are owned by the plan group). Global power and ground nets do not get pushed down automatically, as they are not "owned" uniquely by the plan group. Such global power and ground nets must be pushed down after commit using push_down_fp_objects. Hard move bounds and relative placement groups which overlap the plan group or which logically are members of the plan group are pushed down to the soft macro and removed from the top cell. Multiply-instantiated modules (MIMs) are supported in commit_fp_plan_groups. For plan groups which represent MIM modules, it is necessary to have uniquified the design prior to running commit_fp_plan_groups. This should be done using uniquify_fp_mw_cel and the -store_mim_property option. It is also advisable to run select_mim_master_instance before running commit_fp_plan_groups in order to identify to commit just which plan group to treat as the physical master plan group. If this is done, then commit_fp_plan_groups will properly process the master of the MIM groups of plan groups. If your design contains scan chains and SCANDEF, please issue check_scan_chain after all design planning steps and before commit_fp_plan_group. Multicorner-Multimode Support This command has no dependency on scenario-specific information. Chapter 1: commit_fp_plan_groups 437 1-437 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example commits the specified plan groups to soft macros. prompt> commit_fp_plan_groups $PG_List The following example commits all plan groups to soft macros and makes the changes in a new cell named TOP_NEW. prompt> commit_fp_plan_groups -new_top_cell TOP_NEW The following example commits all plan groups in the current design to soft macros and pushes down the global power and ground net straps. prompt> commit_fp_plan_groups -push_down_power_and_ground_straps SEE ALSO uncommit_fp_soft_macros(2) push_down_fp_objects(2) uniquify_fp_mw_cel(2) select_mim_master_instance(2) commit_fp_plan_groups 438 IC Compiler™ Tool Commands Version L-2016.03 commit_fp_rail Commits the power network (power/ground wires and vias) based on power network synthesis (PNS) results. SYNTAX int commit_fp_rail ARGUMENTS none DESCRIPTION Generates a real power network (power/ground wires and vias) based on PNS results, when the IR (voltage) drop map meets target IR drop constraints. Power/ground pins might also be created on the chip boundary. Multicorner-Multimode Support This command is not supported in a multi-scenario design flow. EXAMPLES The following example commits a real power network after PNS is done. prompt> commit_fp_rail SEE ALSO synthesize_fp_rail(2) Chapter 1: commit_fp_rail 439 1-439 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 commit_skew_group Checks the skew groups defined in the design for common problems that can adversely impact clock tree synthesis. If no problem is found, the command modifies clock tree structure to isolate skew groups. SYNTAX status commit_skew_group [-check_only] ARGUMENTS -check_only Causes the command only to check skew groups for common problems but not modifies the clock tree structure to isolate skew groups. DESCRIPTION Use the commit_skew_group command after defining skew groups for a linked design to check for common problems that adversely impact clock tree synthesis. The following classes of checks are performed: CTS-924 CTS-925 CTS-926 CTS-927 CTS-928 CTS-929 CTS-930 CTS-931 pins in a skew group from different master clocks pins in a skew group with upstream/downstream relation looping dependencies between skew groups more than one level of dependency between skew groups pins in a skew group with no clocks reaching them skew group spreading across more than one sub-tree incompatible options pins beyond exceptions When commit_skew_group encounters a problem, the tool displays a warning or information message, which is sometimes followed by additional information to help solve the problem. Refer to the man page for each message that explains the problem in detail and shows how to solve it. When no problem is found, the command modifies clock tree structure to isolate skew groups. commit_skew_group 440 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES In the following example, the commit_skew_group command checks all skew groups in the currently linked design and isolates skew groups if no problem is found: prompt> commit_skew_group In the following example, the commit_skew_group command checks all skew groups in the currently linked design. Clock tree structure is not modified to isolate skew groups: prompt> commit_skew_group -check_only SEE ALSO set_skew_group(2) remove_skew_group(2) report_skew_group(2) compile_clock_tree(2) Chapter 1: commit_skew_group 441 1-441 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 compare_collections Compares the contents of two collections. If the same objects are in both collections, the result is "0" (like string compare). If they are different, the result is nonzero. The order of the objects can optionally be considered. SYNTAX int compare_collections [-order_dependent] collection1 collection2 Data Types collection1 collection2 collection collection ARGUMENTS -order_dependent Indicates that the order of the objects is to be considered; that is, the collections are considered to be different if the objects are ordered differently. collection1 Specifies the base collection for the comparison. The empty string (the empty collection) is a legal value for the collection1 argument. collection2 Specifies the collection with which to compare to collection1. The empty string (the empty collection) is a legal value for the collection2 argument. DESCRIPTION The compare_collections command is used to compare the contents of two collections. By default, the order of the objects does not matter, so that a collection of cells u1 and u2 is the same as a collection of the cells u2 and u1. By using the -order_dependent option, the order of the objects is considered. compare_collections 442 IC Compiler™ Tool Commands Version L-2016.03 Either or both of the collections can be the empty string (the empty collection). If two empty collections are compared, the comparison succeeds (that is, compare_collections considers them identical), and the result is "0". EXAMPLES The following example from PrimeTime shows a variety of comparisons. Note that a result of "0" from compare_collections indicates success. Any other result indicates failure. prompt> compare_collections [get_cells *] [get_cells *] 0 prompt> set c1 [get_cells {u1 u2}] {u1 u2} prompt> set c2 [get_cells {u2 u1}] {u2 u1} prompt> set c3 [get_cells {u2 u4 u6}] {u2 u4 u6} prompt> compare_collections $c1 $c2 0 prompt> compare_collections $c1 $c2 -order_dependent -1 prompt> compare_collections $c1 $c3 -1 The following example builds on the previous example by showing how empty collections are compared. prompt> set c4 "" prompt> compare_collections $c1 $c4 -1 prompt> compare_collections $c4 $c4 0 SEE ALSO collections(2) Chapter 1: compare_collections 443 1-443 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 compare_delay_calculation Compares the Arnoldi-based delays with the Elmore delays in the current design. SYNTAX status compare_delay_calculation [-verbose] [-ccs] ARGUMENTS -verbose Creates histogram-style reports showing the distribution of the delay differences when using the Arnoldi-based and Elmore delay models. -ccs Creates histogram-style reports showing the delay differences when using Composite Current Source (CCS) models and nonlinear delay models (NLDM). DESCRIPTION The compare_delay_calculation command calculates and compares the timing results of the current design using the Arnoldi-based and Elmore delay models. This command reports pin-to-pin delays, max transition, several DRC violations and the worst slack within each path group for both delay models. In the verbose mode this command creates histogram-style reports showing the distribution of the Arnoldi-based and Elmore delay differences on the paths with negative slacks. The distribution of the differences is represented by the two histograms showing the delay differences in the library units and in the percentage. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following is an example of an Arnoldi-based and Elmore delay calculation report: compare_delay_calculation 444 IC Compiler™ Tool Commands Version L-2016.03 prompt> compare_delay_calculation -verbose Percent of Arnoldi-based delays = 66.67% +====================+=======================+=======================+ | | Elmore | Arnoldi | |--------------------|-----------------------|-----------------------| |Max Transition | 0.195 | 0.521 | |DRC Violations | 1 | 1 | |--------------------|-----------+-----------|-----------+-----------| |Group | WNS | TNS | WNS | TNS | |--------------------|-----------|-----------|-----------|-----------| |CLK1 | 1.71 | 3.96 | 1.46 | 2.64 | |default | 0.00 | 0.00 | 0.00 | 0.00 | +--------------------+-----------+-----------+-----------+-----------+ Histograms for Delays with Negative Slack +======================+=====================+=====================+ |Difference (%) | Count | % | |----------------------|---------------------|---------------------| | 0 - 1 | 2 | 8.33 | | 1 - 5 | 5 | 20.83 | | 5 - 10 | 3 | 12.50 | | 10 - 50 | 10 | 41.67 | | 50 - 100 | 4 | 16.67 | | 100+ | 0 | 0.00 | +======================+=====================+=====================+ |Difference(lib_units) | Count | % | |----------------------+---------------------+---------------------| | 0.0 - 0.001 | 0 | 0.00 | | 0.001- 0.01 | 3 | 12.50 | | 0.01 - 0.05 | 7 | 29.17 | | 0.05 - 0.1 | 0 | 0.00 | | 0.1 - 1.0 | 14 | 58.33 | | 1.0+ | 0 | 0.00 | +----------------------+---------------------+---------------------+ Histograms for Slews with Negative Slack +======================+=====================+=====================+ |Difference (%) | Count | % | |----------------------|---------------------|---------------------| | 0 - 1 | 0 | 0.00 | | 1 - 5 | 8 | 33.33 | | 5 - 10 | 9 | 37.50 | | 10 - 50 | 3 | 12.50 | | 50 - 100 | 4 | 16.67 | | 100+ | 0 | 0.00 | +======================+=====================+=====================+ |Difference(lib_units) | Count | % | |----------------------+---------------------+---------------------| | 0.0 - 0.001 | 0 | 0.00 | | 0.001- 0.01 | 12 | 50.00 | | 0.01 - 0.05 | 0 | 0.00 | | 0.05 - 0.1 | 0 | 0.00 | | 0.1 - 1.0 | 12 | 50.00 | Chapter 1: compare_delay_calculation 445 1-445 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 | 1.0+ | 0 | 0.00 | +----------------------+---------------------+---------------------+ SEE ALSO read_parasitics(2) report_delay_calculation(2) report_timing(2) compare_delay_calculation 446 IC Compiler™ Tool Commands Version L-2016.03 compare_lib Performs a cross-reference check between a technology library and a symbol library or between a technology library and a physical library. SYNTAX status compare_lib library1 library2 Data Types library1 library2 string string ARGUMENTS library1 Specifies the name of a technology library. library2 Specifies the name of a symbol library or physical library to be compared with the technology library. DESCRIPTION The compare_lib command compares the specified libraries consistency. The first library is a technology library and the second library is a symbol or physical library. For this command to run successfully, the libraries to be compared must be in the Synopsys internal database format and must also exist in memory. To compile a library, use the read_lib command. To load a compiled library, use the read_file command. The compare_lib command performs the following checks: • First, it ensures that each component in the technology library has a corresponding definition in the symbol or physical library. Chapter 1: compare_lib 447 1-447 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 • Second, it crosschecks the pin names of each component in the technology library against the pin names defined for its corresponding symbol or physical representation. • Third, it ensures that each component in the symbol or physical library has a corresponding definition in the technology library. • Fourth, it crosschecks the pin names of each component in the symbol or physical library against the pin names defined for its corresponding technology cell. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example compares a technology library and a symbol library: prompt> compare_lib tech_lib.db sym_lib.sdb SEE ALSO read_file(2) read_lib(2) report_lib(2) write_lib(2) compare_lib 448 IC Compiler™ Tool Commands Version L-2016.03 compare_rc Compares annotated net capacitance with estimated net capacitance and reports the percentage differences in a table. SYNTAX int compare_rc [-worst_nets integer_nets] [-threshold min_float_capacitance] [-bound max_float_capacitance] [-min] [-net net_list] Data Types integer_nets min_float_capacitance max_float_capacitance net_list integer float float list ARGUMENTS -worst_nets integer_nets Specifies the number of worst nets to report based on the difference between the estimated capacitance and the back-annotated capacitance. The default is 10. If the specified number is higher than 500 or a negative number, all nets are reported, without ordering. -threshold min_float_capacitance Specifies the minimum back-annotated capacitance considered. Only nets having this capacitance value or more are reported. -bound max_float_capacitance Specifies the maximum back-annotated capacitance considered. Only nets having this capacitance value or less are reported. -min Reports the net capacitance at the minimum condition. By default, the command reports the net capacitance at the maximum condition. Chapter 1: compare_rc 449 1-449 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -net net_list Compares only those nets in net_list. If you also use either the -threshold or -bound option, only those nets that meet the criteria in the current instance are used. When you use the -net option, the command ignores the -worst_nets option. DESCRIPTION This command compares the back-annotated capacitance with the estimated capacitance for nets in the design and reports the percentage difference between the two values for each net, sorted from most to least difference. It also generates a histogram plot of the percentage differences. The worst deviation reported is 200 percent; any deviation above that is truncated to 200 percent. Before running this command, you must back-annotate the design with capacitance data, either by running one or more set_load scripts or by reading in a postroute database with capacitance values set on the nets in the design. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example shows the results of the compare_rc command. prompt> compare_rc -threshold 0.0001 -worst_nets 25 Loading target library 'ssc_core' Loading design 'address' Information: The distance unit in Capacitance and Resistance is 1 micron. (GR-7) Information: Library Derived Horizontal Cap : 0.0001 (GR-10) Information: Library Derived Vertical Cap : 0.00011 (GR-10) Information: Library Derived Horizontal Res : 0.00016 (GR-10) Information: Library Derived Vertical Res : 0.00014 (GR-10) Information: Using region-based R and C coefficients. (GR-13) ----------------------------------------------------------------Net Estimated Back-annotated %age-diff fanout Cap Cap ----------------------------------------------------------------n3331 0.00123256 0.00049 151.543 2 n3325 0.000762279 0.00031 145.896 2 N87AC 0.000726195 0.00031 134.256 2 N37AH 0.000726195 0.00031 134.256 2 n5490 0.000822903 0.00036 128.584 2 n4532 0.000701367 0.00031 126.247 2 n4187 0.00105752 0.00049 115.82 2 compare_rc 450 IC Compiler™ Tool Commands n6545 N111AI N86AH N63AE n2000 N125A N2AD n6933 n1849 N49AF n6051 n6718 n3222 n3119 n4704 n3628 n2597 n3191 100 90 80 70 Chapter 1: compare_rc 0.000873081 0.000820671 0.000812273 0.000812273 0.000814395 0.000812273 0.000812273 0.000983985 0.00115294 0.000781043 0.000797972 0.000957085 0.000949579 0.000775716 0.000777002 0.000777554 0.000775716 0.000777554 Version L-2016.03 0.00041 0.0004 0.0004 0.0004 0.0004 0.0004 0.0004 0.00049 0.00058 0.0004 0.00041 0.0005 0.0005 0.00041 0.00041 0.00041 0.00041 0.00041 + | | | | | | | | | + | | | | | | | | | + | | | | | | | | | + | | | * | | | | | 112.946 105.168 103.068 103.068 103.599 103.068 103.068 100.813 98.7828 95.2607 94.6273 91.4169 89.9158 89.1991 89.5128 89.6473 89.1991 89.6473 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 451 1-451 IC IC Compiler™ Compiler™ Tool Tool Commands Commands 60 50 40 30 20 10 compare_rc L-2016.03 Version L-2016.03 + | | | | | | | | | + | | | | | | | | | + | | | | | | | | | + | | | | | | | | | + | | | | | | | * | | + | | | | * | * | | 452 IC Compiler™ Tool Commands Version L-2016.03 | * * | * 0 --------------****--+----***********----| | | | | | | | | -200 -150 -100 -50 0 50 100 150 200 SEE ALSO set_load(2) Chapter 1: compare_rc 453 1-453 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 compile_clock_tree Builds a clock tree based on the clock tree definition. SYNTAX status compile_clock_tree [-clock_trees name_or_source_pin_list] [-config_file_read read_filename] [-config_file_write write_filename] [-operating_condition min | max | min_max] [-high_fanout_net net_or_pin_list [-sync_phase rise | fall | both]] [-insert_self_gating] Data Types name_or_source_pin_list net_or_pin_list list list ARGUMENTS -clock_trees name_or_source_pin_list Specifies the clock trees to compile. To specify the clock trees, use either the user-assigned symbolic name or the name of the source (port or pin) of each clock tree. If you use the source to specify a clock tree, it must match the full name of the clock tree root pin or port passed to the set_clock_tree_options command with the -clock_trees option. By default, the command is applied to all currently-defined clock trees. -config_file_read read_filename Specifies the name of the configuration file used to build the clock tree. To learn the format of the clock tree configuration, build the clock tree, and then write out the configuration file. You can edit the file to obtain the desired configuration. If you are already familiar with the format of the clock tree configuration file, you can run clock tree synthesis with a specified configuration file. compile_clock_tree 454 IC Compiler™ Tool Commands Version L-2016.03 The configuration can be soft, meaning that only the number of levels is specified, and the clock tree synthesis engine honors the specification. The number of buffers at each level is determined by clock tree synthesis. The configuration can also be hard, meaning that the number of levels and number of buffers at each level are specified. You can also specify the buffer types. The clock tree synthesis engine honors all configuration specifications. -config_file_write write_filename Writes out the clock tree configuration levels and number of buffers at each level after clock tree synthesis has been completed. -operating_condition min | max | min_max Specifies the operating condition. The default is max. -high_fanout_net net_or_pin_list Inserts a balanced buffer tree for the specified high-fanout signal nets using the same techniques as in clock tree synthesis. You can specify either the net or the nets' driving pins in the net_or_pin_list argument. A common use of this option is to buffer set or reset nets. -sync_phase rise | fall | both Balances skew at rise, fall, or both edges. By default, the tool uses rise in skew calculation. You can use this option only with the -high_fanout_net option. -insert_self_gating Inserts XOR self-gating logic on all clocks during clock tree synthesis prior to clock tree construction. For best results, you should provide the clock activity information by reading a SAIF file with the read_saif command before running the compile_clock_tree command. If per clock synthesis is required, you should use the -insert_self_gating option only during the first run of this command. DESCRIPTION This command synthesizes a clock tree and updates the design database with the compiled clock trees. Chapter 1: compile_clock_tree 455 1-455 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Before running the compile_clock_tree command, • Use the set_clock_tree_options command to specify clock trees to be synthesized. • Use the set_clock_tree_references command to define which clock tree buffers or inverters can be used for those clocks during clock tree synthesis. By default, design rule checking (DRC) violations beyond exception pins are fixed at the end of clock tree synthesis. Multicorner-Multimode Support This command uses information from the clock tree synthesis scenarios. All scenarios enabled as clock tree synthesis scenarios are activated for clock tree synthesis and are returned to their current state (active or inactive) after clock tree synthesis. The clocks that need to be compiled need to be specified as scenario_name@clock_name in -clock_trees option where, scenario_name: Scenario with cts_mode set to true. clock_name: Clock present in that scenario. EXAMPLES The following example shows a clock tree with root CLK1 implemented with a set of specified library references to be used as buffers. Clock CLK1 is compiled and updated in the design netlist. prompt> set_clock_tree_options -clock_trees [get_ports CLK1] prompt> set_clock_tree_references -references {buffer1x buffer2x} The following example shows a command that performs clock tree synthesis for clock CLK1: prompt> compile_clock_tree -clock_trees CLK1 The following example shows a command that reports the structural and timing characteristics of the compiled clock tree: prompt> report_clock_tree -clock_trees CLK1 The following example shows a command that performs clock tree synthesis for clock CLK1 under scenario scene1: prompt> compile_clock_tree -clock_trees scene1@CLK1 compile_clock_tree 456 IC Compiler™ Tool Commands Version L-2016.03 SEE ALSO report_clock_tree(2) set_clock_tree_options(2) set_clock_tree_references(2) read_saif(2) Chapter 1: compile_clock_tree 457 1-457 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 compile_fp_clock_plan Compiles clock trees inside a plan group and builds clock trees at the top level based on the plan group clock trees. SYNTAX status compile_fp_clock_plan [-operation_cond min | max | min_max] [-anchor_only] [-parallel] ARGUMENTS -operation_cond min | max | min_max Specifies the operating condition for clock tree compilation. By default, the operating condition is max. -anchor_only Inserts anchor cells on the plan group input ports, but does not synthesize the clock plan. By default, the tool inserts anchor cells on the plan group input ports and synthesizes the clock plan. -parallel Specifies that the tool generates clock trees inside plan groups by using multiple parallel processes. Multiple parallel processes speed-up the runtime for clock planning. DESCRIPTION The compile_fp_clock_plan command performs the following tasks: 1. Inserts anchor cells on the plan group input ports. 2. Generates the clock trees inside each plan group. 3. Defines the input pin of each anchor cell to be a floating pin. compile_fp_clock_plan 458 IC Compiler™ Tool Commands Version L-2016.03 4. Generates the top-level clock tree. 5. Performs detail routing on the clock interface nets. The log-files and reports are generated in the clock-planning output directory. The plan groups to be synthesized must be defined with the set_fp_clock_plan_options command before using the compile_fp_clock_plan command. The -parallel option provides an increase in performance in large designs that meet the following criteria: 1. The design includes more than 3 plan group 2. The design has most of the clock sinks located within the plan groups 3. The design has limited clock dependency between plan groups; only a small number of clock nets exit the plan group and drive subtrees at the top level or in other plan groups. The -parallel option is not compatible with designs that contain fully abutted floorplans. Because parallel generation of a plan group clock tree does not save the plan group clock trees, the -parallel option is ignored when you specify set_fp_clock_plan_options -keep_block_tree true. Multicorner-Multimode Support This command is not supported in a multi-scenario design flow. EXAMPLES In the following example, the CLKBUF12 anchor cell is inserted in all plan groups and the CLK1 clock net is implemented in all plan groups. prompt> set_fp_clock_plan_options -clock_nets CLK1 -anchor_cell CLKBUF12 prompt> compile_fp_clock_plan \ In the following example, the CLKBUF12 anchor cell is inserted in all plan groups and the CLK1 clock net is implemented in all plan groups by using parallel processing. prompt> set_fp_clock_plan_options -clock_nets CLK1 -anchor_cell CLKBUF12 prompt> compile_fp_clock_plan -parallel Chapter 1: compile_fp_clock_plan \ 459 1-459 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 The following command inserts anchor cells for each plan group, but does not perform clock tree synthesis. prompt> set_fp_clock_plan_options -clock_nets CLK1 \ -anchor_cell CLKBUF12 prompt> compile_fp_clock_plan -anchor_only SEE ALSO set_fp_clock_plan_options(2) compile_fp_clock_plan 460 IC Compiler™ Tool Commands Version L-2016.03 compile_power_plan Creates a power and ground network based on the specified power planning strategy and template. SYNTAX status compile_power_plan [-strategy strategy_name] [-undo] [-verbose] [-write_default_template template_file_name] [-ignore_design_rules] [-ring] Data Types strategy_name template_file_name string string ARGUMENTS -strategy strategy_name Creates a power network based on the specified strategy only. By default, the tool creates a power plan using all specified strategies. The -strategy and -write_default_template options are mutually exclusive. -undo Removes the power and ground straps created by the compile_power_plan command. The compile_power_plan -undo command does not remove the straps created by other commands. The compile_power_plan -undo command also clears the undo command stack. -verbose Writes out additional debugging information regarding where and why some straps are cut. This option also prints out additional design and technology related information. -write_default_template template_file_name Writes out the default template to the specified file in the current working directory. The command overwrites the template_file_name file if it exists. The template contains the Chapter 1: compile_power_plan 461 1-461 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 default values used to create a power plan when no power plan template is specified. You can use this template file as a skeleton to create a new power plan template. No power plan is generated when you specify the -write_default_template option. The -write_default_template is mutually exclusive with -strategy options. -ignore_design_rules Ignores design rule violations during power plan creation. The command prints error messages for any shorted or floating wires. You must correct the violations before creating the power plan. By default, this option is off. -ring Creates the power ring for the specified strategy as defined by the set_power_ring_strategy command. If you specify the compile_power_plan -ring -write_default_template template.tpl command, the tool writes an example power ring template to the template.tpl file and does not implement the power rings. DESCRIPTION This command creates the power network based on the specified strategy and template. EXAMPLES The following example creates a power plan using the strategy example1 only. prompt> compile_power_plan -strategy example1 SEE ALSO remove_power_plan_strategy(2) set_power_plan_strategy(2) report_power_plan_strategy(2) compile_power_plan 462 IC Compiler™ Tool Commands Version L-2016.03 compile_premesh_tree Invokes clock tree synthesis on a net that is driving a clock mesh. SYNTAX status compile_premesh_tree -clock_tree name_or_root_pin Data Types name_or_root_pin string ARGUMENTS -clock_tree name_or_root_pin Specifies the name of the clock tree or the name of the root (a pin, port or net) of the clock mesh. This is a required option. DESCRIPTION This command invokes the compile_clock_tree command to generate a buffer tree with drivers connecting to a clock mesh. Before running compile_premesh_tree, you must first create clock mesh wiring grid and add drivers that are connected to the wiring grid. The inputs of the buffer tree that drives the clock mesh wiring grid are typically connected to the clock root. The outputs of the buffer tree that drives the clock mesh wiring grid are connected to the mesh net. These connections must be set up before the command invokes compile_clock_tree. The root net might be associated with one or more clocks, but this command processes the root net as a single electrical signal. Any multiplexing of clocks must be done in the circuitry that drives the driver pin or port of the root net. This command only generates a buffer tree and does not generate any multi-input gates for gated clocks or integrated clock gating (ICG) cells. See create_clock_mesh for more information on clock net, root net, and mesh net. Chapter 1: compile_premesh_tree 463 1-463 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Multicorner-Multimode Support This command uses information from the clock tree synthesis scenarios. EXAMPLE The following command invokes clock tree synthesis on an ideal clock net that was previously connected to the ideal net clk1. prompt> compile_premesh_tree -clock_tree [get_pins clk1top/Z] 1 SEE ALSO create_clock_mesh(2) add_clock_drivers(2) route_mesh_net(2) analyze_subcircuit(2) compile_clock_tree(2) compile_premesh_tree 464 IC Compiler™ Tool Commands Version L-2016.03 compress_scenarios Compresses the original set of scenarios into a smaller subset of scenarios. The constraints of the smaller subset of scenarios (setup, hold, maximum transition, and leakage) are then modified to capture violations from scenarios that are not in the subset. SYNTAX status compress_scenarios [-max_compression num_scenarios] Data Types num_scenarios int ARGUMENTS -max_compression num_scenarios Specifies the maximum number of scenarios into which the command compresses the original set of active scenarios. If you do not specify this option, at most one setup and one hold scenario is activated for each mode. DESCRIPTION This command compresses the original set of scenarios into a dominant subset. Constraints of these dominant scenarios are modified to account for violations (as seen by optimization) unique to the scenarios not in the dominant set. The command deactivates all scenarios that are not in the compressed subset. It also renames the surviving scenarios to indicate they have been compressed by modifying their constraints. For example, the FUNC_WC scenario is renamed to FUNC_WC__z__ by appending the suffix '__z__'. The command first performs a dominance analysis on the active set of scenarios. For the dominant set, it identifies the unique timing graph (modes). For each mode, one setup and one hold scenario is chosen and their constraints are modified to capture the violations from other scenarios. The compressed scenarios remain active while the others are deactivated. Chapter 1: compress_scenarios 465 1-465 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 To undo the effects of the compression and reactivate the original set of scenarios along with their original names and constraints, run the uncompress_scenarios command. This command is supported only by the route_opt core command. Running other core commands, such as place_opt and clock_opt on compressed scenarios can produce undesired QoR. The command returns 1 if it performs compression successfully, and 0 otherwise. Multicorner-Multimode Support This command uses information from all active scenarios. EXAMPLES The following example illustrates how to use scenario compression in the postroute flow. prompt> prompt> prompt> prompt> prompt> prompt> route_opt -initial_route_only compress_scenarios -max_compression 4 route_opt -skip_initial_route -power route_opt -incremental uncompress_scenarios report_timing SEE ALSO uncompress_scenarios(2) route_opt(2) compress_scenarios 466 IC Compiler™ Tool Commands Version L-2016.03 compute_polygons Returns a list or collection of polygons that exactly cover the region computed by performing a Boolean operation on the input polygons. SYNTAX list compute_polygons -boolean and | or | not | xor poly_list1 poly_list2 Data Types poly_list1 poly_list2 list or collection list or collection ARGUMENTS -boolean and | or | not | xor Specifies the Boolean operation to perform on the two input polygon lists or collections to produce the output polygon list or collection. "and" finds the area occupied by both the first and second input polygon list or collection. "or" finds the area occupied by either the first or second input polygon list or collection, or occupied by both. "not" finds the area occupied by the first input polygon list or collection and not occupied by the second polygon list or collection. "xor" finds the area occupied by either the first or second input polygon list or collection, but not both. poly_list1 Specifies the first list or collection of input polygons. You can specify a single polygon or multiple polygons, representing the first argument for the geometric Boolean operation. To specify a polygon as a list, enter a sequence of X-Y coordinate pairs that represent the successive vertices of the polygon, using the following format: {{x1 y1} {x2 y2} ... {xN yN} {x1 y1}} Chapter 1: compute_polygons 467 1-467 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 The coordinate unit size is specified in the technology file; typically it is microns. Polygons must be rectilinear, so the X coordinate of each data point must match the X coordinate of a neighboring data point, and the Y coordinate must match the Y coordinate of the other neighboring data point. The last point in the list must be the same as the first. Instead of specifying lists of coordinates, you can specify a polygon collection. In that case, the output of the command is also a collection. poly_list2 Specifies the second list or collection of input polygons. The command performs a Boolean operation between the first and the second list or collection of polygons. DESCRIPTION This command performs a Boolean operation (OR, AND, NOT, or XOR) between two polygons or between two sets of polygons, specified as lists of vertices or as polygon collections. It returns the result in the same form as the input polygons, either a list or a polygon collection. The result can be a single polygon or a set of multiple, disjoint polygons. Before using this command, the Milkyway design library containing the input polygons must be open. The input polygons must be rectilinear, consisting of only vertical and horizontal line segments that meet at right angles. You can directly pass the output of this command as a parameter directly to another compute_polygons command, but not to the other polygon commands, convert_from_polygon, resize_polygon, or get_polygon_area. This is because the other polygon commands can only take a single polygon as input. Instead, you must use a Tcl list command such as the foreach or lindex command to extract each polygon from the returned list, and then pass each polygon to the other polygon command. To view the coordinates of a polygon collection stored in a variable, use the following command: prompt> get_attribute $variable_name coordinate EXAMPLES Assume that you have two polygons, A-B-C-D-A and A1-B1-C1-D1-A1, as shown in the following figure: A B +---------------------+ | | compute_polygons 468 IC Compiler™ Tool Commands Version L-2016.03 | | | A1 |E B1 | +--------------+------+ | | | | | | | | | | | | +------+--------------+ | D F| C | | | | | +---------------------+ D1 C1 The following example performs the Boolean OR operation on these input polygons. The result is the B-E-B1-C1-D1-F-D-A-B polygon. prompt> compute_polygons -boolean or \ {{0 30} {30 30} {30 10} {0 10} {0 30}} \ {{10 20} {40 20} {40 0} {10 0} {10 20}} {{30.000 30.000} {30.000 20.000} {40.000 20.000} {40.000 0.000} {10.000 0.000} {10.000 10.000} {0.000 10.000} {0.000 30.000} {30.000 30.000}} The following figure shows the resulting polygon. A B +---------------------+ | | | | | |E B1 | +------+ | | | | | | +------+ | D F| | | | | | +---------------------+ D1 C1 The following example performs the Boolean AND operation on the same input polygons. The result is the A1-E-C-F-A1 polygon. prompt> compute_polygons -boolean and \ {{0 30} {30 30} {30 10} {0 10} {0 30}} \ {{10 20} {40 20} {40 0} {10 0} {10 20}} {{10.000 20.000} {30.000 20.000} {30.000 10.000} {10.000 10.000} {10.000 20.000}} Chapter 1: compute_polygons 469 1-469 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 The following figure shows the resulting polygon. A1 E +--------------+ | | | | | | +--------------+ F C The following example performs the Boolean NOT operation on these input polygons. The result is the B-E-A1-F-D-A-B polygon, which is the region covered by the first polygon, A-B-C-D-A, but not covered by the second polygon, A1-B1-C1-D1-A1. prompt> compute_polygons -boolean not \ {{0 30} {30 30} {30 10} {0 10} {0 30}} \ {{10 20} {40 20} {40 0} {10 0} {10 20}} {{30.000 30.000} {30.000 20.000} {10.000 20.000} {10.000 10.000} {0.000 10.000} {0.000 30.000} {30.000 30.000}} The following figure shows the resulting polygon. A B +---------------------+ | | | | | A1 | | +--------------+ | | E | | | | +------+ D F The following example performs the Boolean XOR operation on these input polygons. The result is two polygons, B-E-A1-F-D-A-B and B1-C1-D1-F-C-E-B1, which are the areas covered by either input polygon, but not both. prompt> compute_polygons -boolean xor \ {{0 30} {30 30} {30 10} {0 10} {0 30}} \ {{10 20} {40 20} {40 0} {10 0} {10 20}} {{30.000 30.000} {30.000 20.000} {10.000 20.000} {10.000 10.000} {0.000 10.000} {0.000 30.000} {30.000 30.000}} {{40.000 20.000} {40.000 0.000} {10.000 0.000} {10.000 10.000} {30.000 10.000} {30.000 20.000} {40.000 20.000}} compute_polygons 470 IC Compiler™ Tool Commands Version L-2016.03 The following figure shows the resulting polygons, moved apart slightly to clearly show the disjoint regions. A B +---------------------+ | | | | | A1 | E B1 | +--------------+ +------+ | | E | | | | | | | | F | | +------+ +-------------+ | D F | C | | | | | +--------------------+ D1 C1 The following script demonstrates how to use the output of the compute_polygons command as input for other polygon commands. set p1 [convert_to_polygon [get_net_shapes RECTANGLE#123]] set p2 [convert_to_polygon [get_net_shapes RECTANGLE#456]] set my_polys [compute_polygons -boolean xor $p1 $p2] foreach poly $my_polys { set my_xor_rect [convert_from_polygon $poly] echo $my_xor_rect } The following example shows how to use a polygon collection as input for the compute_polygons command. prompt> set p1 [convert_to_polygon [get_net_shapes RECTANGLE#123] -collection] prompt> set p2 [convert_to_polygon [get_net_shapes RECTANGLE#456] -collection] prompt> set p3 compute_polygons -boolean or $p1 $p2 {Poly1 Poly2} The following example shows how compute_polygons can accept list of polygons as input. prompt> compute_polygons -boolean or {{{0 0} {10 0} {10 10} \ {0 10} {0 0}} {{20 0} {30 0} {30 10} {20 10} {20 0}}} \ {{10 0} {20 0} {20 10} {10 10} {10 0}} {{0.000 10.000} {30.000 10.000} {30.000 0.000} {0.000 0.000} {0.000 10.000}} Chapter 1: compute_polygons 471 1-471 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 SEE ALSO convert_to_polygon(2) convert_from_polygon(2) resize_polygon(2) compute_polygons 472 IC Compiler™ Tool Commands Version L-2016.03 connect_logic_net IC Compiler parses, but ignores, this command. SYNTAX status connect_logic_net net_name [-ports port_list] Data Types net_name port_list string list ARGUMENTS net_name Specifies the net name. You must use a simple name. -ports port_list Specifies the ports connected to the net. The ports must be on the interface of the active scope or on the design elements that are located in the active scope and its descendants. DESCRIPTION This command has no function in IC Compiler. It is parsed in the UPF file, but ignored. Multicorner-Multimode Support This command has no dependency on scenario-specific information. SEE ALSO connect_net(2) create_logic_port(2) Chapter 1: connect_logic_net 473 1-473 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_logic_net(2) connect_logic_net 474 IC Compiler™ Tool Commands Version L-2016.03 connect_net Connects the specified net to the specified pins or ports. SYNTAX status connect_net net object_list Data Types net object_list string list ARGUMENTS net Specifies the net to connect. The net must be a scalar (single bit) net, and must exist in the current design. object_list Specifies a list of pins and ports to which the net is to be connected. Pins and ports must be at the same hierarchical level as the specified net, and must exist in the current design. If a specified pin or port is already connected, the tool issues an error message. DESCRIPTION This command connects a net to the specified pins or ports at the same hierarchical level. The net can be at any level of hierarchy but the pins or ports must be at the same level. A net can be connected to many pins or ports; however, you cannot connect a pin or port to more than one net. You can use connect_net to connect PG and Tie nets to pins or ports. Only PG nets can be connected to leaf-level PG pins. PG nets can not be connected to leaf-level signal pins. Tie nets can not be connected to leaf-level signal output pins. Tie or PG nets can not be connected to a hierarchical pin that is already connected to a Tie or PG net on the other hierarchical side. Chapter 1: connect_net 475 1-475 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 To disconnect objects on a net, use the disconnect_net command. To display pins and ports on a net, use either the all_connected or get_nets -of $net command. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example uses connect_net to connect net NET0 to ports A1 and A2 and pin U1/A. The all_connected command returns the objects connected to net NET0. prompt> connect_net NET0 [get_ports {A1 A2}] prompt> connect_net NET0 [get_pins U1/A] prompt> all_connected NET0 {A1 A2 U1/A} The following example shows the error message generated when you attempt to connect a pin or port to more than one net: prompt> connect_net MY_NET_1 PORT1 Connecting net 'MY_NET_1' to port 'PORT1'. prompt> connect_net MY_NET_2 PORT1 Error: Object 'PORT1' is already connected to net 'MY_NET_1'. The following example shows how connect_net is used to connect the U1/MY_NET net to the U1/MY_PORT port: prompt> connect_net U1/MY_NET U1/MY_PORT SEE ALSO all_connected(2) create_net(2) current_design(2) disconnect_net(2) remove_net(2) connect_net 476 IC Compiler™ Tool Commands Version L-2016.03 connect_pin Connects pins or ports at any level of hierarchy. SYNTAX status connect_pin -from from_object -to to_list [-port_name port_name] [-verbose] Data Types from_object to_list port_name collection collection string ARGUMENTS -from from_object Specifies the pin or port from which to make the connection. The direction of the pin or port cannot be inout. -to to_list Specifies the pins and ports to which to make the connection. The pins and ports can be at any level of the hierarchy. The direction of the pins or ports cannot be inout. -port_name port_name Specifies the base name to use as the names of ports that are created on subdesigns to make the connection. -verbose Specifies that the tool displays individual netlist operations while making the global connections. Chapter 1: connect_pin 477 1-477 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 DESCRIPTION This command performs global connections between the source object specified in the -from option and the objects specified in the -to option. The specified pins and ports can be at any level of hierarchy. The parent design of the pins and ports must be unique. Leaf-level power and ground pins or hierarchical pins connected to power, ground, or tie nets on one side of the hierarchy cannot be connected by using the connect_pin command. While making the global connections, ports and nets are created in the subdesigns, if needed. Ports in the subdesigns are reused regardless of their names, when the from pin is already connected to a net. Also, a port in a subdesign is reused if it is unconnected and the name is as specified by the -port_name option. Wherever applicable, the name of the net that is created is the name of the connecting port, as long as there is no net with the same name in that design. If there is an existing net with the name, the name of the net is generated. The connect_pin command ensures that multiply-driven nets are not created. The command does not allow a connection from an output pin to an output pin. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example uses the connect_pin command to connect the U1/Z output pin to the mid1/bot1/U3/A input pin. Use the report_net -connections or report_cell -connections command to view the connections. prompt> connect_pin -from [get_pins U1/Z] \ -to [get_pins mid1/bot1/U3/A] prompt> report_net -connections [get_net -of [get_pins U1/Z]] SEE ALSO all_connected(2) connect_net(2) create_port(2) report_cell(2) connect_pin 478 IC Compiler™ Tool Commands Version L-2016.03 report_net(2) Chapter 1: connect_pin 479 1-479 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 connect_power_switch Connects the pins of the power switch cells in the design. SYNTAX int connect_power_switch -source object -port_name port_name -mode hfn | daisy | fishbone [-ack_out object] [-ack_port_name port_name] [-direction horizontal | vertical] [-start_point lower_left | upper_left | lower_right | upper_right] [-verbose] [-auto] [-pattern_name pattern_name] [-pattern_list list_of_patterns] [-voltage_area list_of_voltage_areas] [-object_list objects] [-lib_pin library_pin_names] Data Types object port_name pattern_name list_of_patterns list_of_voltage_areas objects library_pin_names collection string string list list collection string ARGUMENTS -source object Specifies the pin, port or net from which to connect the power switch. The direction of the pin or port cannot be inout. For pin and net with same name situation, pin takes precedence over net. -port_name port_name Specifies the base name to use as names of switch ports when a new port is created on the subdesigns to make the connection. It is a required option. connect_power_switch 480 IC Compiler™ Tool Commands Version L-2016.03 -mode hfn | daisy | fishbone Specifies the type of switch connections: daisy chain, high fanout or fishbone. This option is required. To avoid creating route connections in the orthogonal direction over hard macros during fishbone mode routing, set the mv_mtcmos_detour_obstruction application variable to true. When this variable is true, the tool creates additional connection lines in the primary direction on either side of the hard macro to reduce the routing over the hard macro and create better quality of results. -ack_out object Specifies the pin, port or net that is to be used as acknowledge-out signal. It is optional and is only allowed with -mode daisy or -mode fishbone. For pin and net with same name situation, pin takes precedence over net. -ack_port_name port_name Specifies the base name to use as names of acknowledge ports when a new port is created. This is required with the -ack_out option in -mode daisy or -mode fishbone. -direction horizontal | vertical Specifies the direction for the daisy mode connections. Requires -mode daisy or -mode fishbone. It is used only when the tool tries to infer the daisy chained connections based on the instantiated switch cells. The option can only be used with -mode daisy or -mode fishbone. This option can also be used to specify the direction of connections for branches connected to the main trunk in -mode fishbone. -start_point lower_left | upper_left | lower_right | upper_right Specifies the starting point for the daisy mode connections. Requires -mode daisy or -mode fishbone. It is used to infer the startpoint for daisy or fishbone connections. This is helpful in connecting the source pin to the nearest starting switch cell. For fishbone connections, this option determines the starting point for the trunk of fishbone connections. This option can only be used with -direction. This is not a required option. -verbose Specifies that the tool displays individual netlist operations while making the global connections. -auto Specifies whether the list of power switch cell specified by -object_list objects is to be sorted by the tool. You must also specify the -direction option when you use the -auto option. You can use -start_point to specify more connection options, but it is not required. For -mode fishbone, the -auto option is not needed and the tool sorts the list Chapter 1: connect_power_switch 481 1-481 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 of power switches specified by -object_list into a fishbone structure. By default, the ordering is based on the order you specify in objects. -pattern_name pattern_name Specifies the user-defined pattern name. pattern_name is used to specify a handle for connections being done using connect_power_switch. A pattern_name refers to a collection of switch cells and the mode (hfn or daisy) in which these cells are connected. These pattern_name handles are used as building blocks for later stage connections. You can create a connection configuration using the connect_power_switch command and specify a pattern_name for these connections. At a later stage, you can create complex connections using these patterns or handles as blocks without referring to anything inside these patterns. This gives you the flexibility to make second level connections with these handles. This option can be used for both first-time and second-level connections. The pattern_name must be unique and is saved in the database. -pattern_list list_of_patterns This option provides an input list of patterns or objects to be connected using the connect_power_switch command. This list specifies the handles or patterns that are already created by the user or the tool. These handles or patterns are then connected again using the connect_power_switch command. The tool internally collects the associated cells at the head and tail of the pattern specified by list_of_patterns. These patterns are connected in mode specified by -mode option. -voltage_area list_of_voltage_areas Specifies the voltage areas in which to connect power switch cells. The patterns can be a collection handle of voltage areas or name patterns. The command tries to collect the switches in the specified voltage area and connect them. If you specify the -object_list option, the command ignores the switches in the object_list that are not in the specified voltage areas. Switches are connected in the order the voltage areas are specified by this option. -object_list objects Specifies the ordered list of cells on which to perform the connections. In -mode daisy, the connections are made in the order in which they are specified. To ignore the ordering of the objects list and sort the list, use the -auto and -direction options. -lib_pin library_pin_names Specifies the list of library input and output pins that should be used in both -mode daisy and -mode hfn. This is a required option for switch cells that have multiple switch and acknowledge pins. The command issues an error message if a switch cell with multiple input or output is used but does not have its library pins specified in this option. This can be used with both -mode daisy and -mode hfn. For a fine grain macro, you must specify connect_power_switch 482 IC Compiler™ Tool Commands Version L-2016.03 the library pin name of switch and acknowledge pins even if you have only one switch pin and one acknowledge pin. DESCRIPTION The connect_power_switch command connects power switch cells that are instantiated and placed in the design. Connection mode and ordering for the switches are specified by options. The command can identify the switch cells in the design based on Liberty syntax and can connect them in either high-fanout style or daisy-chain style. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example connects the switches in the daisy-chain mode. prompt> connect_power_switch \ -source enable \ -port_name enable_va_0 \ -mode daisy \ -direction horizontal \ -voltage_area voltage_area_2 -verbose 1 prompt> connect_power_switch \ -source [get_nets enable] \ -port_name enable_va_0 \ -mode daisy \ -direction horizontal \ -object_list $switch_list1 \ -auto \ -start_point lower_right \ -verbose 1 prompt> connect_power_switch \ -source enable \ -port_name enable_va_0 \ -mode fishbone \ -direction horizontal \ -object_list $switch_list1 \ -auto \ -verbose 1 prompt> connect_power_switch \ -source enable \ -pattern_name HFN1 \ -port_name enable_va_0 \ -mode daisy \ Chapter 1: connect_power_switch 483 1-483 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -direction horizontal \ -object_list {Header_switch1 Header_switch100} \ -verbose 1 prompt> connect_power_switch \ -source enable \ -pattern_name HFN2 \ -port_name enable_va_0 \ -mode daisy \ -direction horizontal \ -object_list {Header_switch101 Header_switch200} \ -verbose 1 prompt> connect_power_switch \ -source enable \ -pattern_name DAISY1 \ -port_name enable_va_0 \ -mode daisy \ -direction horizontal \ -pattern_list {HFN1 HFN2} \ -verbose 1 SEE ALSO create_power_domain(2) create_voltage_area(2) mv_mtcmos_detour_obstruction(3) connect_power_switch 484 IC Compiler™ Tool Commands Version L-2016.03 connect_spare_diode Uses the spare diode ports found in the design to fix antenna violations. SYNTAX status connect_spare_diode [-exclude_nets collection_of_nets] [-antenna_check_engine internal | hercules] [-internal_check_option all | top_layer_only] [-routing skip | route] [-distance distance_number] [-signal_route_options ignore_lower_layers | include_lower_layers | include_all_lower_layers | advanced] [-max_ratio max_ratio_number] Data Types collection_of_nets distance_number max_ratio_number collection integer integer ARGUMENTS -exclude_nets collection_of_nets Specifies a collection of nets that should not be connected to diodes. If you do not specify this option, all nets will be connected to diodes. -antenna_check_engine internal | hercules Specifies either the internal antenna checker or Hercules. The default is internal. -internal_check_option all | top_layer_only Specifies to report either all antenna rule violations or only the top-layer antenna violations. The default is all. This option applies only when -antenna_check_engine internal is specified. -routing skip | route Specifies the extent of the routing process. Using skip stops routing. Using route invokes the detail router in ECO mode to route diode ports. The default is route. Chapter 1: connect_spare_diode 485 1-485 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -distance distance_number Specifies the maximum distance to search for spare diodes. The default value is 10 times the global route cell size. -signal_route_options ignore_lower_layers | include_lower_layers | include_all_lower_layers | advanced Specifies the HPO signal route options for checking a charge-collecting antenna. The default is the value of the doAntennaConx detail routing option. -max_ratio max_ratio_number Specifies the maximum allowable ratio of wiring area and gate area for checking a charge-collecting antenna. DESCRIPTION This command uses spare diodes in the design to fix antenna violations. First, the tool runs the internal antenna checker or uses Hercules output to identify antenna violations. For each antenna violation, this command searches the neighborhood of the antenna for spare diodes. The number of required diode ports is determined by define_antenna_rule and define_antenna_layer_rule. When enough diode ports are found to fix an antenna violation, it sets the net ID of all the selected diode ports to be the same as the net ID of the antenna to establish the net connectivity. Finally, you might choose to complete the routing of the connected diode ports. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following is an example of the connect_spare_diode command. prompt> connect_spare_diode -antenna_check_engine -internal_check_option top_layer_only\ -signal_route_options include_all_lower_layer\ -max_ratio 1000 internal\ The following is an example of the connect_spare_diode command. prompt> connect_spare_diode -route skip -distance 10 connect_spare_diode 486 IC Compiler™ Tool Commands Version L-2016.03 SEE ALSO insert_diode(2) define_antenna_rule(2) define_antenna_layer_rule(2) Chapter 1: connect_spare_diode 487 1-487 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 connect_supply_net Connects the supply net to specified supply ports and pins. SYNTAX status connect_supply_net supply_net_name -ports list [-vct vct_name] Data Types supply_net_name list vct_name string list string ARGUMENTS supply_net_name Specifies the name of the supply net to be connected, which must be an existing simple (nonhierarchical) supply net name. -ports list Specifies the supply ports or pins that are to be connected with the supply net. Each item in the list is the hierarchical name of a supply port or pin. -vct vct_name Specifies the value conversion table (VCT) to be used in this connection. The tool supports only the following 14 predefined VCT names: UPF2VHDL_SL ; UPF_GNDZERO2VHDL_SL ; UPF2SV_LOGIC ; UPF_GNDZERO2SV_LOGIC ; VHDL_TIED_HI ; SV_TIED_HI ; VHDL_TIED_LO ; SV_TIED_LO ; VHDL_SL2UPF ; VHDL_SL2UPF_GNDZERO ; SV_LOGIC2UPF ; SV_LOGIC2UPF_GNDZERO ; SV_LOGIC2UPF_MD ; SV_LOGIC2UPF_GNDZERO_MD. connect_supply_net 488 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION The connect_supply_net command makes an explicit connection of a supply net to specified supply ports or pins. It overrides (has higher precedence than) the automatic connection semantics that might otherwise apply. If a design element is not connected explicitly to any supply net using the connect_supply_net command, it shares the primary power or ground supply net with the power domain to which it belongs. Before they can be connected, the supply net must be created in the same power domain as the supply port. The instance that contains the pin must also be in the extent of the same power domain. The command can be used to connect a supply net to bias pins. Bias pins that meet following conditions are supported: • The bias pin is from a macro cell • The bias pin direction is "input" or "inout" • The bias pin physical_connection is "routing_pin" Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example connects a supply net named VSS with the supply port VSS: prompt> PD1 prompt> VSS prompt> VSS prompt> 1 create_power_domain PD1 -elements INST_1 create_supply_net VSS -domain PD1 create_supply_port VSS -domain PD1 connect_supply_net VSS -ports VSS The following example shows how to connect a supply set with a supply port: prompt> connect_supply_net sset.power -ports VDD 1 prompt> connect_supply_net sset.ground -ports VSS 1 Chapter 1: connect_supply_net 489 1-489 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 SEE ALSO create_supply_net(2) report_supply_net(2) connect_supply_net 490 IC Compiler™ Tool Commands Version L-2016.03 connect_tie_cells Instantiates tie-high and tie-low cells and connects them to the specified cell ports. SYNTAX status connect_tie_cells -objects {object_coll} -obj_type port_inst | cell_inst | lib_cell [-tie_high_lib_cell lib_cell -tie_low_lib_cell lib_cell] [-tie_highlow_lib_cell lib_cell -tie_high_port_name port -tie_low_port_name port] [-max_fanout number] [-max_wirelength number] [-incremental true | false] Data Types object_coll lib_cell port number collection string string integer ARGUMENTS -objects {object_coll} Specifies the objects from which the tool infers the ports to which the tie-high and tie-low cells are connected. The objects can be cell instances, port instances, or reference cells. This is a required option. -obj_type port_inst | cell_inst | lib_cell Identifies the type of object specified in the -objects option. This is a required option. -tie_high_lib_cell lib_cell Specifies the reference cell used to instantiate the tie-high cells. The tool determines the number of tie-high cells to instantiate. If you use this option, you must also use the -tie_low_lib_cell option. Chapter 1: connect_tie_cells 491 1-491 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -tie_low_lib_cell lib_cell Specifies the reference cell used to instantiate the tie-low cells. The tool determines the number of tie-low cells to instantiate. If you use this option, you must also use the -tie_high_lib_cell option. -tie_highlow_lib_cell lib_cell Specifies the reference cell used to instantiate the tie-highlow cells. The tool determines the number of tie-highlow cells to instantiate. If you use this option, you must also use the -tie_high_port_name and -tie_low_port_name options. -tie_high_port_name port Specifies the name of the port that is logic high on the tie-highlow cell. This option is required if you use the -tie_highlow_lib_cell option. -tie_low_port_name port Specifies the name of the port that is logic low on the tie-highlow cell. This option is required if you use the -tie_highlow_lib_cell option. -max_fanout number Specifies the maximum number of ports that can be driven by a single tie-high or tie-low cell. If you do not specify this option, the maximum fanout is 8. -max_wirelength number Specifies the maximum Manhattan wire length in microns from a tie-high or tie-low cell to each driven cell port. If you do not specify this option, the maximum wire length is 100. -incremental true | false Specifies whether to run in incremental mode. By default (false), the command removes all existing tie cells of the specified ports. In incremental mode, existing tie cells that satisfy the wire length and fanout constraints are not removed. This provides minimum disruption to the existing placement and routing. connect_tie_cells 492 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION This command specifies the cell ports to which to connect to tie-high and tie-low cells. It instantiates the tie-high and tie-low cells and makes the necessary connections. Before you run this command, the design must be fully placed and connected to power and ground. A tie-high cell is a special standard cell whose output pin is always at logic high. A tie-low cell is a special standard cell whose output pin is always at logic low. A tie-highlow cell is a combination cell with two output pins, one at logic high and the other at logic low. In some designs, unused input pins cannot be tied directly to the power or ground net and tie-high, tie-low, or tie-highlow cells must be used. You can specify the library reference cells for the tie-off cells in the following ways: • You can specify the library reference cells associated with the tie-high and tie-low cells. In this case, the ports that are tied off to power or ground are connected to the specified tie cells. Note that you must specify both the tie-high and tie-low library reference cells. • You can specify the library reference cell of a tie-highlow cell. If you specify a two-pin tie-highlow cell, you must also specify the port names of the pins that are logic high and low. In this case, the ports tied off to power or ground are connected to the high or low port, respectively, of the tie-highlow cell. • You can specify both one output tie-high and tie-low library reference cells and a two output tie-highlow library reference cell. In this case, in regions of the chip where ports are tied off to both power and ground, the tool uses tie-highlow cells; otherwise, the tool uses tie-high or tie-low cells. The cell ports to connect to the tie-high and tie-low cells are inferred from the specified list of cell instances, port instances, or reference cells. You can specify maximum fanout (the maximum number of ports that can be driven by a single tie-high or tie-low cell) and maximum wire length (the maximum Manhattan wire length between a tie-high or tie-low cell and a driven port) constraints. The command can also be run in incremental mode. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLE In the following example, all input ports of the BONUS_SET_*/* cells that are tied off to power or ground are connected to new tie-high and tie-low cells. Chapter 1: connect_tie_cells 493 1-493 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 prompt> connect_tie_cells -objects [get_cells "BONUS_SET_*/*"] \ -obj_type cell_inst \ -tie_high_lib_cell TIEH -tie_low_lib_cell TIEL In the following example, all input ports named A of the BONUS_SET_*/* cells that are tied off to power or ground are connected to new or existing tie-high and tie-low cells that are at most 64 microns of Manhattan distance away. prompt> connect_tie_cells -objects {"BONUS_SET_*/*/A"} \ -obj_type port_inst \ -tie_high_lib_cell TIEH -tie_low_lib_cell TIEL \ -max_wirelength 64 -incremental true In the following example, all input ports of the BONUS_SET_*/* cells that are tied off to power or ground are connected to new tie-highlow cells. Ports that are tied off to power are connected to the OUT1 port on the TIEHL cell. Ports that are connected to ground are connected to the OUT0 port on the TIEHL cell. prompt> connect_tie_cells -objects [get_cells "BONUS_SET_*/*"] \ -obj_type cell_inst \ -tie_highlow_lib_cell TIEHL \ -tie_high_port_name OUT1 \ -tie_low_port_name OUT0 connect_tie_cells 494 IC Compiler™ Tool Commands Version L-2016.03 continue Begins the next loop iteration. SYNTAX int continue ARGUMENTS None DESCRIPTION This command begins the next iteration of the innermost loop. To immediately reevaluate the condition of a while loop, use the continue command, rather than executing the remaining statements to the end. The continue command always returns the integer 1, indicating successful operation. A syntax error is reported if the continue command is used outside a loop structure. EXAMPLES The following example plots the first 10 sheets of the current design, except for sheet 5: set p 0 while {$p <= 10} { if {$p % 2} { incr p continue } echo "$p squared is: [expr $p * $p]"; incr p SEE ALSO break(2) while(2) Chapter 1: continue 495 1-495 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 convert_from_polygon Converts each polygon into a list or collection of mutually exclusive rectangles. SYNTAX list convert_from_polygon polygons [-format polygon | rectangle] Data Types polygons polygon list or collection ARGUMENTS polygons Specifies the list or collection of input polygons to be decomposed into rectangles. You can specify a single polygon or multiple polygons. To specify a polygon as a list, enter a sequence of X-Y coordinate pairs that represent the successive vertices of the polygon, using the following format: {{x1 y1} {x2 y2} ... {xN yN} {x1 y1}} The coordinate unit size is specified in the technology file; typically it is microns. Polygons must be rectilinear, so the X coordinate of each data point must match the X coordinate of a neighboring data point, and the Y coordinate must match the Y coordinate of the other neighboring data point. The last point in the list must be the same as the first. Instead of specifying lists of coordinates, you can specify a polygon collection. In that case, the output of the command is also a collection. -format polygon | rectangle Specifies the output format of the resulting rectangles. By default, each resulting rectangle is represented as two data points at opposite corners of the rectangle: {x1 y1} {x2 y2} convert_from_polygon 496 IC Compiler™ Tool Commands Version L-2016.03 If you specify -format polygon, each resulting rectangle is represented in polygon format, using five data points for the round trip around the perimeter of the rectangle: {{x1 y1} {x2 y1} {x2 y2} {x1 y2} {x1 y1}} DESCRIPTION This command converts a polygon into a list of mutually exclusive rectangles. The returned rectangles are represented as a list of coordinates or a collection. Before using this command, the Milkyway design library must be open. Note that this command might return a list of disjoint polygons. Because the polygon commands take a single polygon as input, you cannot directly pass the result as a parameter to another polygon command. Instead, you must use a Tcl list command, such as the foreach or lindex command, to extract each polygon from the returned list, and then pass each polygon to the polygon command. EXAMPLES The following example converts the A-B-C-D-E-F-G-H-A polygon to three rectangles, K-F-G-H, E-I-C-D, and A-B-I-K. A B +---------------------+ | | | | | | K+- - - +-------+ - - -+I | |F E| | | | | | | | | | +------+ +------+ H G D C prompt> convert_from_polygon {{0 20} {30 20} {30 0} \ {20 0} {20 10} {10 10} {10 0} {0 0} {0 20}} {{0.000 0.000} {10.000 10.000}} {{20.000 0.000} {30.000 10.000}} {{0.000 10.000} {30.000 20.000}} The following example shows how to use a polygon collection as input. prompt> set p1 [convert_to_polygon [get_net_shapes RECTANGLE#*] -collection] {Poly1} prompt> convert_from_polygon $p1 -format polygon {Poly2 Poly3 Poly4} Chapter 1: convert_from_polygon 497 1-497 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 SEE ALSO convert_to_polygon(2) compute_polygons(2) resize_polygon(2) convert_from_polygon 498 IC Compiler™ Tool Commands Version L-2016.03 convert_mw_lib Converts a Milkyway library's cell data. SYNTAX status convert_mw_lib mw_lib [-cell_name cell_name] [-all] [-check_only] Data Types mw_lib cell_name string string ARGUMENTS mw_lib Specifies the library containing the cells to be converted. -cell_name cell_name Specifies the name of cell to be converted. If the option is specified, all child soft macro cells referred by the current cell will be converted along with the current cell. -all If the option is specified, all cells under the design lib will be converted. -check_only This option lists the names of the cells that need to be converted, together with their library names, without actually performing the conversion. This option can be used only with the -cell_name or -all option. The list generated by the -check_only option includes cells that belong to reference libraries. To convert such cells, you need to apply the convert_mw_lib command directly to the library containing the cells, because the convert_mw_lib command only converts cells contained in the specified library, not cells in reference libraries. Chapter 1: convert_mw_lib 499 1-499 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 DESCRIPTION This command converts cells of the specified library. It does not convert cells in the reference libraries. If a cell was created by a prior release, it is old and must be updated before it is opened by the current release. Once updated, the cells may be used by any tool from the current release. It is recommended to convert all cells once using this convert_mw_lib command. This minimizes run-time and memory consumption for conversion and would have less impact to the ICC flow. If an old cell is not converted, the open_mw_cel command will open the old cell and automatically convert it in memory. If the user does not save the cell, the cell will be automatically converted again during the next open_mw_cel command call. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES convert_mw_lib foo_library -cell_name top 1 SEE ALSO open_mw_cel(2) save_mw_cel(2) convert_mw_lib 500 IC Compiler™ Tool Commands Version L-2016.03 convert_to_polygon Returns a polygon list or collection for the specified objects. SYNTAX list convert_to_polygon [-quiet] [-collection] object_spec Data Types object_spec object collection or polygon list ARGUMENTS -quiet Suppresses the reporting of error and warning messages. -collection Returns a polygon collection. By default, the command returns a list. object_spec Specifies the input object collection or polygon list. If you specify an object collection, the object class must be cell, shape, placement blockage, or route guide. If you specify a list of polygon vertex coordinate pairs, the command converts the list to a polygon collection. DESCRIPTION This command returns polygons calculated from the input objects. By default, the returned polygon is represented as a list of polygon vertex coordinates. To return a polygon collection instead, use the -collection option. polygon collection Chapter 1: convert_to_polygon 501 1-501 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example returns a polygon list from the RECTANGLE#123 net shape. prompt> convert_to_polygon [get_net_shapes RECTANGLE#123] {{99.490 111.340} {117.590 111.340} {117.590 112.620} {99.490 112.62} {99.490 111.340}} The following example returns a polygon collection from all the net shapes in the current design. prompt> convert_to_polygon [get_net_shapes] -collection {Poly1 Poly2 Poly3 Poly4 Poly5 Poly6 Poly7 Poly8} The following example converts a polygon list into a polygon collection. prompt> convert_to_polygon {{16 26} {198 26} {198 16} {16 16} {16 26}} {Poly9} SEE ALSO convert_from_polygon(2) compute_polygons(2) resize_polygon(2) convert_to_polygon 502 IC Compiler™ Tool Commands Version L-2016.03 convert_wire_ends Converts the currently opened cell's signal wire ends. SYNTAX status_value convert_wire_ends ARGUMENTS no arguments DESCRIPTION This command searches the currently opened cell for signal wires having zero length extensions. Each of these wires is converted into a wire having half width extensions. If the wire is not convertible (i.e., the wire length is less than the width), the wire is deleted. This command only modifies wires having a signal route type. The command returns a status indicating success or failure. EXAMPLES The following example converts the "top" cell's zero length extension wires into half width extension wires. prompt > open_mw_lib myLib {myLib} prompt > open_mw_cel top {top} prompt > convert_wire_ends Warning: Removed net shape (VWIRE#1796726). (MWUI-140) Warning: Removed net shape (VWIRE#1687148). (MWUI-140) Warning: Removed net shape (VWIRE#1687150). (MWUI-140) 1 prompt > save_mw_cel Information: Saved design named top.CEL;1. (UIG-5) 1 prompt > close_mw_cel 1 prompt > close_mw_lib Chapter 1: convert_wire_ends 503 1-503 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 1 convert_wire_ends 504 IC Compiler™ Tool Commands Version L-2016.03 convert_wire_to_pin Converts wires to pins for either all nets or specified nets in the selected wire set. SYNTAX status convert_wire_to_pin [-net_names net_names] objects Data Types net_names objects collection collection ARGUMENTS -net_names net_names Specifies net names to filter selected wires. The net_names argument is a collection of net names. objects Specifies a selected wire set as a collection of wires. DESCRIPTION This command searches the specified nets and converts the selected wires of the nets into pins. You must manually select the wires by GUI first. The successive command create_macro_fram can extract those detailed pins converted from wires in the FRAM view. If the net_names argument is NULL, all selected wires are converted to their corresponding pins. Otherwise, only the selected wires that belong to the specified net_names are converted to pins. NOTES Only the wire section connecting to a pin is converted to a pin. If no corresponding pin of selected wires exists in the top cell, nothing is converted. That is, no new pin is created in the top cell (no net list changes). Chapter 1: convert_wire_to_pin 505 1-505 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example converts user-selected wires of the nets named OR and SCEN) to pins. prompt> convert_wire_to_pin -net_names {OR SCEN} [get_selection] SEE ALSO create_macro_fram(2) get_selection(2) convert_wire_to_pin 506 IC Compiler™ Tool Commands Version L-2016.03 copy_collection Duplicates the contents of a collection, resulting in a new collection. The base collection remains unchanged. SYNTAX collection copy_collection collection1 Data Types collection1 collection ARGUMENTS collection1 Specifies the collection to be copied. If an empty string is used for the collection1 argument, the command returns the empty string (a copy of the empty collection is an empty collection). DESCRIPTION This command is no longer needed and is provided only to make old scripts work without modification. EXAMPLES The following example from PrimeTime shows the result of copying a collection. Functionally, it is not much different that having multiple references to the same collection, except it is slower. prompt> {U1 U10 prompt> {U1 U10 prompt> prompt> Chapter 1: copy_collection set c1 [get_cells "U1*"] U11 U12} set c2 [copy_collection $c1] U11 U12} unset c1 query_objects $c2 507 1-507 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 {U1 U10 U11 U12} SEE ALSO collections(2) copy_collection 508 IC Compiler™ Tool Commands Version L-2016.03 copy_floorplan Copies floorplan data from a specified design to the current design in a Milkyway design library. SYNTAX status copy_floorplan [-library design_library_name] -from design_name [-macro] [-filler] [-pad] [-power_plan] [-verbose] [-incremental] Data Types design_library_name design_name string string ARGUMENTS -library design_library_name Specifies the name of the Milkyway design library for the source and destination designs. If this option is not specified, the current open library is used. If no library is currently open, this option is required. -from design_name Specifies the name of the source design. The source design must be specified, otherwise, the copy_floorplan command will not execute. -macro Copy placement of macros. Placement here includes position, orientation, fixed or placed status and so on. -filler Copy placement of filler cells. Placement here includes position, orientation, fixed or placed status and so on. Chapter 1: copy_floorplan 509 1-509 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -pad Copy placement of I/O pads, corner pads and flip chip pads. Placement here includes position, orientation, fixed or placed status and so on. -power_plan Copy power net connections and routing. -verbose Print detailed message and statistics on data copied and not copied. -incremental Do not update the existing named objects in the destination design. Can be combined with all other options. DESCRIPTION The copy_floorplan command copies floorplan data from a specified design to the current design in a Milkyway design library, and the current design must be opened before the command is executed. Floorplan data includes die area, core area, rows, wire tracks, placement and routing obstructions, bounds, groups and regions, power domains and voltage areas, the XY coordinates of cell instances and top level pins, routes, and power net connections. Use this command after floorplanning is done, but before standard cell placement and routing is done, which is an early stage in an implementation flow. The source design and the current design are Milkyway cells and must exist in the same design library. And you must specify the -from option to indicate the source design. If you do not specify the type of data to copy (-macro, -filler, -pad, or -power), the command copies all existing floorplan data from the source design to the current design. Otherwise, only the data specified by the options is copied. The command does not do a complete netlist comparison. It goes through the netlist of the source design and looks for the objects by name in the destination design. By default, if a cell instance or net does not exist in the destination design, it is skipped. The command returns 1 on success, 0 on failure. Multicorner-Multimode Support This command has no dependency on scenario-specific information. copy_floorplan 510 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following example copies the macro and pad placement information from design A to the current design in design library mwlib. prompt> copy_floorplan -library mwlib -from A -macro -pad The following example copies all floorplan information from design A to the current open design, printing detailed information about the copy process. prompt> copy_floorplan -from A -verbose SEE ALSO write_floorplan(2) Chapter 1: copy_floorplan 511 1-511 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 copy_mim Copies cell placement, blockages, or shape from one multiply instantiated module (MIM) plan group to others in same group. SYNTAX status copy_mim [-type placement | blockage] [-restore_placement] collection Data Types collection list containing one plan group ARGUMENTS -type placement | blockage Identifies the type of copy to perform. The placement argument copies the cell placement of the given MIM to all other MIMs in the same group. The blockage argument copies all types of placement blockages overlapping the given MIM to all other MIMs in the same group. The default is placement. -restore_placement Restores the placement of cells in the MIM group of the MIM specified by placement. This option undoes the result of the previously-executed copy_mim -type placement command. This option restores the placement, even if you exit and restart the tool, because the original placement before the copy_mim -type placement is saved to the database. collection Specifies a collection containing one MIM plan group. This is the source MIM to copy to all other MIMs in the same group. copy_mim 512 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION This command performs various manipulations on MIMs. MIMs are modules that have the same reference cell. A set of these modules is called an MIM group. A design can have more than one MIM group. For example, if modules A1 and A2 have reference A and modules B1 and B2 have reference B, they form two MIM groups. The command performs manipulations during the virtual flat stage. This is the period when MIMs are physically represented in the design as plan groups. You can use this command to create MIMs with the same cell placement, blockages, and shapes. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example copies the placement of a MIM plan group, M1, to MIM plan groups M2 and M3. prompt> copy_mim -type placement M1 The following example copies placement blockages in M1 to M2 and M3. prompt> copy_mim -type blockage M1 The following example undoes the placement of M1, M2, and M3. Placement is restored to the state before the copy_mim -type placement M1 command. prompt> copy_mim -restore_placement M1 Note that this command undoes only the placement, not the blockage copy. SEE ALSO flip_mim(2) report_mim(2) Chapter 1: copy_mim 513 1-513 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 copy_mw_cel Copies Milkyway designs from a source design library to a target design library. SYNTAX status copy_mw_cel -from source_mw_cel_name [-to target_mw_cel_name] [-from_library source_library_name] [-to_library target_library_name] [-hierarchy] [-check_only] [-overwrite] Data Types source_mw_cel_name target_mw_cel_name source_library_name target_library_name collection string string string ARGUMENTS -from source_mw_cel_name Specifies the Milkyway designs to be copied. If you use the -hierarchy option, you can specify only a single design. If you do not use the -hierarchy option, you can specify a single design or multiple designs. You can specify a Milkyway design by name, pattern, or collection. For example, "top" matches a Milkyway design named "top" in the current design library; "top*" matches all Milkyway designs whose names start with "top"; and "*" specifies all Milkyway designs in the current design library. If you specify a version number in the source file name, only that version of the Milkyway design is copied. If you do not specify a version number in the source file name, the latest version of the Milkyway design is copied. -to target_mw_cel_name Specifies a new name for the target Milkyway design. By default, the command copies the design to the target library without changing its name. copy_mw_cel 514 IC Compiler™ Tool Commands Version L-2016.03 If you specify multiple source Milkyway designs in the -from option, the tool assumes that you want to copy them without changing the names, so it ignores this option. The -to and -hierarchy options are mutually exclusive. -from_library source_library_name Specifies the design library that contains the source Milkyway designs. If you do not specify this option, the tool uses the current design library as the source library. -to_library target_library_name Specifies the target library to which the Milkyway designs are copied. Generally, you do not need to open the target library before running this command. If you do not specify this option, the tool uses the current design library as the target library. If you use both the -to_library option and the -hierarchy option, and the specified target design library does not exist, the tool creates a new library and copies the hierarchical design into it. -hierarchy Copies the source Milkyway design and its subdesigns to the target design library. Without this option, the command copies only the specified design, not its subdesigns. -check_only Reports the list of Milkyway designs, views, and versions but does not copy the designs. This option is valid only when used with the -hierarchy option. -overwrite Overwrites the target Milkyway design when copying. This option cannot be used with the -hierarchy option. DESCRIPTION This command copies the specified Milkyway designs from the source design library to the target design library. You must have write permission for the target design library. Only read permission is required for the source design library. You can use the -hierarchy option to copy both the top-level design and its subdesigns. Subdesigns that are instantiated from the reference library stay in the reference library and are not copied to the target design library. The target library sets the reference path to those reference libraries. The latest version of any open and unsaved Milkyway design in the hierarchical tree is saved from memory into the target design library. If the open Milkyway design is not the latest version, the Milkyway design is copied from disk instead of memory. If the Milkyway design is not open, the Milkyway design on disk is copied. Chapter 1: copy_mw_cel 515 1-515 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 The copied Milkyway designs include all information from the original Milkyway design. The copied Milkyway designs have their versions set to 1 if the target library is a new library. If the target library is not a new library, the version of the copied Milkyway design is incremented by 1 from the latest version before the copy, unless you use the -overwrite option. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example copies all Milkyway designs from the current library to another library named new_lib. prompt> copy_mw_cel -from * -to_library new_lib 1 The following example copies the design named ORCA and all of its subdesigns from the current library to a library named lib1. prompt> copy_mw_cel -hierarchy -to_library lib1 -from ORCA Copied Library Files From: /orca/orca_lib To: lib1 Copied Cells From: /orca/orca_lib To: lib1 Copying cell: ORCA.CEL;1 Copying cell: BLENDER_2; 1 SEE ALSO close_mw_cel(2) create_mw_cel(2) current_mw_cel(2) get_mw_cels(2) open_mw_cel(2) remove_mw_cel(2) rename_mw_cel(2) mw_support_hier_fill_view(3) copy_mw_cel 516 IC Compiler™ Tool Commands Version L-2016.03 copy_mw_lib Copies a Milkyway library to another location. SYNTAX status copy_mw_lib [-from mw_lib] -to lib_name Data Types mw_lib lib_name string string ARGUMENTS -from mw_lib Specifies the name of the source Milkyway library to be copied. The mw_lib value can be a library name or a collection of libraries. By default, the command uses the current Milkyway library. -to lib_name Specifies the destination Milkyway library name. DESCRIPTION The copy_mw_lib command copies a Milkyway library to another location. It returns a status indicating success or failure. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example copies a Milkyway library design to another location: Chapter 1: copy_mw_lib 517 1-517 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 prompt> copy_mw_lib -from design -to design.bak 1 SEE ALSO rename_mw_lib(2) copy_mw_lib 518 IC Compiler™ Tool Commands Version L-2016.03 copy_objects Copies one or more objects. SYNTAX collection copy_objects [{-delta vector | -to point}] [-x_times integer] [-y_times integer] [-x_pitch float] [-y_pitch float] [-use_same_net] objects Data Types objects collection ARGUMENTS -delta vector Specifies the horizontal and vertical displacement, in database units, from the locations of the original (specified) objects to the locations of their copies. This option cannot be combined with the -to option. If neither the -delta option nor the -to option is specified then a delta of (0,0) is assumed i.e. the first copied object will be coincident to the original. Units are in microns. -to point Specifies the location, in absolute coordinates, for the copies of the specified objects. This option cannot be combined with the -delta option. Units are in microns. -x_times integer Creates multiple copies of each specified object, and specifies the number of copies in the x-direction. Chapter 1: copy_objects 519 1-519 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Use the -x_pitch option to optionally specify the distance between each copied object. If the -x_pitch option is not specified then the pitch is assumed to be the width of the object. If this is not specified then one copy is assumed. -y_times integer Creates multiple copies of each specified object, and specifies the number of copies in the y-direction. Use the -y_pitch option to optionally specify the distance between each copied object. If the -y_pitch option is not specified then the pitch is assumed to be the height of the object. If this is not specified then one copy is assumed. -x_pitch float Specifies the distance in the x-direction between adjacent copies of the same object. This option must only be specified in conjunction with the -x_times option. Units are in microns. -y_pitch float Specifies the distance in the y-direction between adjacent copies of the same object. This option must only be specified in conjunction with the -y_times option. Units are in microns. -use_same_net Controls whether the copies are assigned the same net connections as the original objects. If this option is not specified, the copies are unconnected. This option applies only to objects that can have net connections. objects Specifies the objects to be copied. DESCRIPTION This command copies one or more objects and returns a collection of the copies. copy_objects 520 IC Compiler™ Tool Commands Version L-2016.03 You can place the copies at a specific location or specify a delta from the location of the original object. You can create multiple copies of each specified object, and you can specify the pitch between adjacent copies of the same object. All the attributes of an original object are applied to its copies, with the following exceptions: • The database ID for a copy is different from the ID for the original object because each object must have a unique database ID. • The copy of an object is not connected to a net by default. If you specify the -use_same_net option, the copy is connected to the same net as the original object. • The copy of an object is placed at a different location from the location of the original object if you specify either the -delta option or the -to option. Note that if object snapping is enabled, each copy is snapped to its new location automatically based on the global snap settings. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example copies the selected object and places the copy 100 database units to the right and 200 database units above the original object: prompt> copy_objects -delta {100 200} [get_selection] The following example creates 8 copies of the selected object placed in a 2 by 4 grid with origin at (100,100) with no space between the objects. prompt> copy_objects -to {100 100} [get_selection] -x_times 2 -y_times 4 SEE ALSO move_objects(2) remove_objects(2) resize_objects(2) rotate_objects(2) align_objects(2) distribute_objects(2) Chapter 1: copy_objects 521 1-521 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 expand_objects(2) flip_objects(2) set_object_snap_type(2) get_object_snap_type(2) copy_objects 522 IC Compiler™ Tool Commands Version L-2016.03 count_drc_violations Returns the number of design rule constraint (DRC) violations. SYNTAX int count_drc_violations [-intersect bbox] [-ignoring bbox] [-include_types types] [-ignore_types types] [-include_layers layers] [-ignore_layers layers] [-use_new_drc] [-drc_cell_name drc_cell_name] [-return_error_type] [-verbose] Data Types bbox types layers drc_cell_name bounding box string or list of strings string or list of strings string ARGUMENTS -intersect bbox Include DRC violations within or touching this bounding box. -ignoring bbox Ignore DRC violations completely within this bounding box. -include_types types Include DRC violations of these types. Use -verbose to find type names. -ignore_types types Ignore DRC violations of these types. Use -verbose to find type names. -include_layers layers Include DRC violations on these layers. Use -verbose to find layer names. Chapter 1: count_drc_violations 523 1-523 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -ignore_layers layers Ignore DRC violations on these layers. Use -verbose to find layer names. -use_new_drc Use the geNewdrc DRC error cell. This is already the default. -drc_cell_name drc_cell_name Specify a particular DRC error cell name. Use topCellName for the verify_route results. Use topCellName_aDRC.err for the verify_drc results. -return_error_type Returns the name of the error type found (if there are multiple errors , it returns the first one). -verbose Report all the DRC violations in full form. DESCRIPTION This command reports the number of DRC errors of the specified types, on the specified layers, within the given domain. It also lists the DRC error if -verbose is selected. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES prompt> count_drc_violation -verbose SEE ALSO verify_route(2) count_drc_violations 524 IC Compiler™ Tool Commands Version L-2016.03 cputime Reports the CPU time in seconds. SYNTAX status cputime [-all] [-verbose] ARGUMENTS -all Reports the total CPU time of the main process and its child processes. This is the default; this option is kept for backward compatibility. -verbose Reports in detail the CPU time and elapsed (wall-clock) time of the main process and each child process, including placement, extraction, and routing. DESCRIPTION The cputime command reports the CPU time in seconds. If you specify -verbose, it reports the CPU time and elapsed (wall-clock) time for the main process and each child process. The runtime numbers are collected from the operating system. When you use the set_host_options command, the tool runs multiple threads. Currently the operating system measures the CPU time by adding the usage for all threads. It does not take into account parallelization of the threads. This means that the report might show a larger CPU time than elapsed time when you use set_host_options. The elapsed time (wall-clock time) is more appropriate for measuring multicore runtime. The elapsed time depends on many external factors and can vary for every session. It depends on factors such as the I/O traffic, the network traffic, RAM and swap usage, and the other processes running on the same machine. When the elapsed time is much longer than the CPU time, it might point out an inefficiency of the computing environment, such as insufficient memory, too many processes running on the same machine, or a slow network. The only way to make the elapsed time close to the CPU time is to run only one session on a machine with enough RAM and using the local disk. Chapter 1: cputime 525 1-525 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example shows the default command output: prompt> cputime 1202 The following example shows the output when using the -verbose option: prompt> cputime -verbose Main process CPU: 1202 s (0.33 hr) Elapse: 1800 s (0.50 hr) Child "placement" called 3 times, total CPU: 200 s (0.06 hr) Elapse: 250 s (0.07 hr) Child "extraction" called 2 times, total CPU: 100 s (0.03 hr) Elapse: 150 s (0.04 hr) Total CPU: 1502 s ( 0.42 hr) Elapse: 1800 s ( 0.50 hr) 1523 SEE ALSO mem(2) set_host_options(2) monitor_cpu_memory(3) PSYN-508(n) cputime 526 IC Compiler™ Tool Commands Version L-2016.03 create_auto_shield Performs automatic shield routing using the classic router. SYNTAX status create_auto_shield [-with_ground net_name] [-nets collection_of_nets] [-ignore_shielding_net_pins] [-ignore_shielding_net_rails] [-coaxial_below] [-coaxial_above] Data Types net_name collection_of_nets string collection ARGUMENTS -with_ground net_name Specifies which power or ground net to tie the shielding wires to. By default, the shielding wires are tied to the ground net. If the design contains multiple ground nets, you must use this option to specify the ground net. -nets collection_of_nets Specifies the nets to be shielded. If the specified nets do not have shielding rules defined, the tool uses the default width and minimum spacing for the layer as defined in the technology file. By default, this command performs shielding on all nets with defined shielding rules. To define the shielding rules, use the define_routing_rule and set_net_routing_rule commands. -ignore_shielding_net_pins Prevents connection of the shielding wires to the standard cell power or ground (PG) pins. By default, the shielding wires are connected to the standard cell PG pins. Chapter 1: create_auto_shield 527 1-527 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -ignore_shielding_net_rails Prevents connection of the shielding wires to the standard cell rails. By default, the shielding wires are connected to the standard cell rails. -coaxial_below Creates coaxial shielding below the shielded net segment layer. By default, this command does not perform coaxial shielding below the shielded net segment layer. -coaxial_above Creates coaxial shielding above the shielded net segment layer. By default, this command does not perform coaxial shielding above the shielded net segment layer. DESCRIPTION The create_auto_shield command uses the classic router to shield nets based on the associated shielding rules. By default, the command performs same-layer shielding on all nets with predefined shielding rules. The router routes shielding wires based on the shielding widths and spacing defined in the shielding rules. The shielding wires are tied to the ground net, standard cell ground pins, and standard cell rails. To explicitly specify the nets on which to perform shielding, use the -nets option. To tie the shielding wires to a named power or ground net, use the -with_ground option. To prevent connections to the standard cell PG pins, use the -ignore_shielding_net_pins option. To prevent connections to the standard cell rails, use the -ignore_shielding_net_rails option. By default, the command does not perform coaxial shielding. To perform coaxial shielding above the shielded net segment layer, use the -coaxial_above option. To perform coaxial shielding below the shielded net segment layer, use the -coaxial_below option. When the tool performs coaxial shielding, the coaxial shielding segments • Are routed in the preferred layer direction • Use the defaultWidth layer attribute from the technology file • Are spaced such that they leave at least one signal routing resource on each layer create_auto_shield 528 IC Compiler™ Tool Commands Version L-2016.03 Prerequisites Before you run this command, you must first define the shielding rules with the define_routing_rule command and assign these rules to the nets to be shielded with the set_net_routing_rule command. This requirement applies when you do not specify the -nets option, you want to use a nondefault width or minimum spacing, or you want to snap the shielding segments to the grid. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example defines the shielding rules; assigns these shielding rules to all clock nets; and then uses the classic router to shield the CLK_B1 clock net with the VSS ground net, the CLK_B2 clock net with the GND ground net, and the CLK_B3 and CLK_B4 clock nets with the VDD power net. The shielding wires are not connected to the standard cell PG pins. prompt> define_routing_rule clock_net_shielding \ -default_reference_rule -taper_level 0 -snap_to_track \ -widths { METAL1 0.16 METAL2 0.2 METAL3 0.2 METAL4 0.2 } \ -spacing { METAL1 0.18 METAL2 0.21 METAL3 0.21 METAL4 0.21 } \ -shield_width { METAL1 0.16 METAL2 0.2 METAL3 0.2 METAL4 0.2 } \ -shield_spacing { METAL1 0.18 METAL2 0.21 METAL3 0.21 METAL4 0.21 } \ -via_cuts { via1 1X1 via2 1X1 via3 1X1 } prompt> set clock_nets [get_nets -filter "net_type == Clock" -hier] prompt> set_net_routing_rule -rule clock_net_shielding $clock_nets prompt> create_auto_shield -with_ground VSS -nets {CLK_B1} \ -ignore_shielding_net_pins prompt> create_auto_shield -with_ground GND -nets {CLK_B2} \ -ignore_shielding_net_pins prompt> create_auto_shield -with_ground VDD -nets {CLK_B3 CLK_B4} \ -ignore_shielding_net_pins SEE ALSO define_routing_rule(2) Chapter 1: create_auto_shield 529 1-529 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 set_net_routing_rule(2) create_auto_shield 530 IC Compiler™ Tool Commands Version L-2016.03 create_banking_guidance Generates output file having create_register_bank commands to replace single-bit registers with multibit register. SYNTAX status create_banking_guidance DESCRIPTION The command create_banking_guidance uses the strategy set by set_banking_guidance_strategy to identify groups of single-bit registers which can be replaced by multibit registers and generates an output file having create_register_bank commands. You can source the output file back into the tool to replace single-bit registers with multibit register. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example uses the create_banking_guidance command to generate the output file having create_register_bank commands. prompt> create_banking_guidance SEE ALSO set_banking_guidance_strategy(2) remove_banking_guidance_strategy(2) report_banking_guidance_strategy(2) create_register_bank(2) Chapter 1: create_banking_guidance 531 1-531 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_base_array Creates a base array record in the design. SYNTAX status create_base_array [-tile_name tile_name] -coordinate rectangle [-direction direction] Data Types tile_name rectangle direction string list string ARGUMENTS -tile_name tile_name Specifies the name of unit tile used in the base array record. If -tile_name is not specifies, by default it creates a base array using "unit" as its unit tile. -coordinate rectangle Specifies the lower left corner and the upper right corner of the base array. The values are specified in microns relative to the chip origin. -direction direction Specifies the direction of the base array record. The validated values of direction can be: horizontal and vertical. By default, the direction is set to horizontal. DESCRIPTION The create_base_array command allows you to create a base array record into database. This command returns 1 if succeeds. create_base_array 532 IC Compiler™ Tool Commands Version L-2016.03 Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example creates a base array record. prompt> create_base_array -coordinate {{200 200} {1800 1800}} \ -direction horizontal -tile_name unit 1 SEE ALSO remove_base_arrays(2) Chapter 1: create_base_array 533 1-533 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_block_abstraction Generates a block abstraction for the current design. The command identifies the interface logic of the current design and annotates the design in memory with the interface logic. SYNTAX status create_block_abstraction [-include objects] Data Types objects collection ARGUMENTS -include objects Specifies the additional leaf cells and nets that are to be included in the block abstraction. Logical hierarchical cells and pins are ignored. If either one of the following conditions exist, the entire block is included in the block abstraction: • The number of leaf cells included exceeds 95 percent of the total leaf cells in the block. • The number of nets included exceeds 95 percent of the total nets in the block. DESCRIPTION This command creates a block abstraction of the current design and annotates the design in memory with the interface logic. You must save the block abstraction on disk by using the save_mw_cel command. Creating a block abstraction by using the create_block_abstraction command allows you to perform transparent interface optimization on the block in the top-level flow. create_block_abstraction 534 IC Compiler™ Tool Commands Version L-2016.03 At the top level, use the set_top_implementation_options command to specify which blocks should be integrated with the top-level design as block abstractions. The create_block_abstraction command first determines the interface logic. The following netlist objects are part of the interface logic: • All cells, pins, and nets in timing paths from input ports to registers or output ports. • All cells, pins, and nets in timing paths to output ports from registers or input ports. • The following clock-gating circuitry: • ❍ Any logic in the connection from the master clock to the generated clocks. ❍ The clock trees that drive interface registers, including any logic in the clock tree. ❍ The longest and shortest clock paths from the clock ports. The side-load cells of all nonideal and non-DRC disabled nets. By default, the create_block_abstraction command ignores an input or inout port during interface logic identification, if the percentage of the total registers in the transitive fanout of the port is greater than or equal to the threshold percentage specified in the abstraction_ignore_percentage variable. (The default is 25.) The ports that are ignored are then connected to already-identified interface logic. Also, minimum and maximum critical timing paths are retained for these ignored ports. This default helps to identify the test enable and reset ports of your design. Examine the current value of the abstraction_ignore_percentage variable and change it, if needed. The default might potentially ignore ports you do not want to ignore or fail to ignore ports that you do want to ignore. Carefully read the messages that the create_block_abstraction command issues when you use the default to see which ports have been ignored and to what percentage of registers they fanned out. The create_block_abstraction command implicitly performs an update_timing on the design, if required. The create_block_abstraction command ignores case analysis settings, if any, during interface logic identification. You must specify the appropriate case analysis settings at the top level. This is done to make the block abstraction more context independent. The create_block_abstraction command assumes all latches found in the interface logic are potential borrowers; thus, all logic from I/O ports to flip-flops or output ports are identified as belonging to the interface logic. Multicorner-Multimode Support This command uses information from all scenarios. Chapter 1: create_block_abstraction 535 1-535 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 For a multicorner-multimode design, • The create_block_abstraction command automatically detects the presence of multiple scenarios (multiple modes or corners) and determines the interface logic for each scenario. The interface logic identified for each scenario is retained as the interface logic of the block abstraction. If an interface timing path is disabled in one scenario but enabled in another, the path is included in the interface logic. • Detailed parasitics are extracted and stored as part of abstraction information for each specified TLUPlus file and temperature. • Signal integrity and coupling capacitance information are stored for each scenario when the design is track assigned or detail routed. • Power consumption of the design is calculated for each scenario. The calculated power data is stored in attributes in the design and can be used by the report_power command during the final assembly step of the entire chip. EXAMPLES The following example shows how to create and save a block abstraction: prompt> open_mw_cel MY_DES prompt> create_block_abstraction prompt> save_mw_cel SEE ALSO open_mw_cel(2) save_mw_cel(2) abstraction_ignore_percentage(3) abstraction_max_active_scenarios(3) check_block_abstraction(2) report_block_abstraction(2) set_top_implementation_options(2) create_block_abstraction 536 IC Compiler™ Tool Commands Version L-2016.03 create_boundary Creates a boundary for a design or library cell. SYNTAX status create_boundary [-coordinate rectangle | -poly {point point ...} | -by_terminal] [-core] [-left_offset l_offset] [-right_offset r_offset] [-top_offset t_offset] [-bottom_offset b_offset] [design | -lib_cell_type type] ARGUMENTS -coordinate rectangle Creates a boundary using the specified bounding box. This option is mutually exclusive with -poly and -by_terminal; you can only use one of them. If you do not specify any of these options, the boundary is created according to current boundary. You cannot specify this argument with the -lib_cell_type option. -poly {point point ...} Creates a rectilinear boundary with n points. This option is mutually exclusive with -coordinate and -by_terminal; you can only use one of them. If you do not specify any of these options, the boundary is created according to current boundary. You cannot specify this argument with the -lib_cell_type option. -by_terminal Creates a boundary based on the bounding box of all the terminals in the design (if you specify design) or the library cells (if you specify -lib_cell_type). -core Indicates that -coordinate also defines the core area for design planning. -left_offset l_offset Specifies the distance to adjust the left side of the boundary. Chapter 1: create_boundary 537 1-537 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -right_offset r_offset Specifies the distance to adjust the right side of the boundary. -top_offset t_offset Specifies the distance to adjust the top of the boundary. -bottom_offset b_offset Specifies the distance to adjust the bottom of the boundary. design Specifies the design for which to create a boundary. This option and the -lib_cell_type option are mutually exclusive. If you do not specify either design or -lib_cell_type, the boundary is created for the current design. -lib_cell_type type Specifies the type of library cell for which to create boundaries. If you also specify -by_terminal, the boundary is created based on the terminal locations; otherwise the boundary is created based on the current boundary. This option and the design argument are mutually exclusive. You cannot use this option when you specify the -coordinate or -poly options. DESCRIPTION The create_boundary command allows you to create a boundary for a design or library cells. If you specify -lib_cell_type, a boundary is created for all library cells of the specified type. If you specify design, a boundary is created for the specified design. If you do not specify either -lib_cell_type or design, a boundary is created for the current design. For a design, you can specify the boundary by using the -coordinate, -poly, or -by_terminal option. If you do not specify how to create the boundary, the boundary is created based on the current boundary. For library cells, you can specify the boundary only by using the -by_terminal option. You can also adjust the boundary by using the -left_offset, -right_offset, -top_offset, and -bottom_offset options. However, these four options cannot be used with -poly. Multicorner-Multimode Support This command has no dependency on scenario-specific information. create_boundary 538 IC Compiler™ Tool Commands Version L-2016.03 EXAMPLES The following command creates a boundary for the current design by specifying a bounding box. prompt> create_boundary -coordinate {{0 0} {100 100}} 1 The following command creates a boundary for the current design by specifying a point array. prompt> create_boundary -poly {{0 0} {100 0} \ {100 100} {50 100} {50 50} {0 50}} 1 The following command creates a boundary for the current design based on its terminal locations and adjusts the left side of the boundary. prompt> create_boundary -by_terminal -left_offset 10 1 The following command creates a boundary for all io_pad cells in the reference library. prompt> create_boundary -lib_cell_type io_pad 1 SEE ALSO Chapter 1: create_boundary 539 1-539 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_bounds Creates a fixed move bound or floating group bound in the design. SYNTAX status create_bounds [-name bound_name] [-coordinate {llx1 lly1 urx1 ury1 ...}] [-dimension bound_dimension] [-diamond central_object] [-effort low | medium | high | ultra] [-type soft | hard] [-exclusive] [-color color] [-cycle_color] object_list Data Types bound_name llx1 lly1 urx1 ury1 bound_dimension central_object color object_list string float float float float list object integer or string list ARGUMENTS -name bound_name Specifies the name of the bound. -coordinate {llx1 lly1 urx1 ury1 ...} Specifies rectangular move bounds by specifying the coordinates of the lower-left and upper-right corners for each rectangle. The coordinates are in microns relative to the chip origin. Each combination of {llx lly urx ury} defines a target placement area for the objects. The coarse placement engine can place cells in any of the rectangles. These placeable areas can overlap or be disjoint. create_bounds 540 IC Compiler™ Tool Commands Version L-2016.03 You can specify rectilinear move bounds by dividing the rectilinear region into individual rectangular bounds and specifying the rectangles in the coordinate list. -dimension bound_dimension Specifies the dimension of a group bound or diamond bound in microns. The dimension of a group bound is specified as {width height}, while the dimension of a diamond bound is specified as extent. -diamond central_object Creates a diamond bound centered on the specified object, which can be a port, cell, or pin. The objects in the bound are constrained to lie within the distance specified by the -dimension option (measured as a Manhattan distance) of the specified object. A diamond bound is always a soft bound. If you specify this option, you must also specify the -dimension option. -effort low | medium | high | ultra Specifies the effort to bring cells closer inside a group bound. The default is medium. This option is mutually exclusive with the -coordinate and -dimension options. -type soft | hard Specifies the type of the bound to be either hard or soft. To use this option, you must also specify either the -coordinate or -dimension option. The bound type cannot be set for automatically generated group bounds or diamond bounds. The default is soft. -exclusive Creates an exclusive move bound. Exclusive move bounds require all of their cells to be placed inside them and prohibit the placement of other cells in the same area. Exclusive move bounds are respected by both coarse placement and legalization. -color color Specifies the move bound color. You can specify the color either by specifying an integer value between 0 and 63 or by specifying one of the following keywords: black, blue, green, cyan, brown, purple, red, magenta, salmon, orange, yellow, or white. Chapter 1: create_bounds 541 1-541 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 The default is no_color, meaning that no color is specified. -cycle_color Allows the tool to automatically assign a move bound color. By default, this option is off. object_list Specifies a list of cells, ports, and pins to be included in the bound. If a cell is a hierarchical cell, the bound applies to all cells in the subdesign. If a port is a hierarchical port, the corresponding port is attached to the bound instead. If a pin is a leaf pin, the lower-left point of the first geometry of the pin is marked on the cell of the pin, and the cell is added to the bound. If a pin is a hierarchical pin, it is ignored. A cell can be assigned to only one move bound; an error occurs if a specified cell already belongs to another move bound. This argument is optional; you can create an empty move bound and later associate cells with it by using the update_bounds command. DESCRIPTION The create_bounds command allows you to define region-based placement constraints for coarse placement. There are three types of bounds: move bounds, group bounds, and diamond bounds. • Move bounds restrict the placement of cells to a specific region of the core area. • To create a move bound, use the -coordinate option. • Group bounds are floating region constraints. Cells in the same group bound are placed within a specified bound but the absolute coordinates are not fixed. Instead, they are optimized by the placer. • To create a group bound, use the -dimension option. • Diamond bounds are region constraints centered on a specific object, which can be fixed or floating. Other objects in the same diamond bound are placed within the specified Manhattan distance from the central object but their absolute coordinates are not fixed. Instead, they are optimized by the placer. • To create a diamond bound, use the -diamond option together with the -dimension option. If you do not use any of these options, the tool creates a group bound with a bounding box computed internally by the tool. In this case, you can use the -effort option to specify the create_bounds 542 IC Compiler™ Tool Commands Version L-2016.03 effort level used to bring the cells closer. All automatically generated bounds are soft bounds; you cannot use the -type option to change the bound type for these group bounds. Generally, there is no guarantee that cells are placed completely within the bounds. For instance, coarse placement can violate the bounds if the quality of its primary placement objectives would otherwise be destroyed. In these situations, you should revisit the bounds and floorplan to ensure that the design is not overconstrained. Alternatively, you can use the -type hard option to specify the bound type to be hard (the default is soft). The coarse placer tries to honor the hard bound as hard constraints while sacrificing other objectives, such as timing and routability. You should not use many hard bounds because this can lead to inferior placement solutions. The bounds created by the create_bounds command are persistent and do not need to be re-created when the design is reloaded. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example constrains the placement of the INST_1 instance to lie within the rectangle with its lower-left corner at (100, 100) and its upper-right corner at (200, 200): prompt> create_bounds -name "temp" -coordinate {100 100 200 200} INST_1 The following example creates a hard rectilinear move bound on a hierarchical instance named INST2. The rectilinear move bound is created as a set of two rectangles: one with its lower-left corner at (10, 10) and its upper-right corner at (30, 20), and one with its lower-left corner at (20, 20) and its upper-right corner at (30, 30). prompt> create_bounds -name "temp2" \ -coordinate {10 10 30 20 20 20 30 30} \ -type hard INST_2 The following example creates a diamond bound centered on the pin MOD/U1/A. The cells MOD/INST1 and MOD/INST2 are constrained to lie at most 64 microns of Manhattan distance away from MOD/U1/A. prompt> create_bounds -name "temp3" \ -dimension 64 \ -diamond MOD/U1/A \ {MOD/INST1 MOD/INST2} Chapter 1: create_bounds 543 1-543 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 SEE ALSO create_placement(2) remove_bounds(2) report_bounds(2) set_cell_location(2) set_dont_touch_placement(2) update_bounds(2) create_bounds 544 IC Compiler™ Tool Commands Version L-2016.03 create_buffer_tree Creates a buffer tree for the specified driver pins and nets. SYNTAX status create_buffer_tree [-from pin_net_list] [-incremental] [-no_legalize] [-on_route [-skip_detail_route]] [-align_hierarchy_for_long_nets] Data Types pin_net_list collection ARGUMENTS -from pin_net_list Specifies the driver pins and nets for which the tool creates buffer trees. When the -from option is not specified, the create_buffer_tree command works on all drivers with a transitive fanout of 5 or more. The -from option can be used with the -on_route option. If they are used together, the nets are required to be routed. The create_buffer_tree command runs post route based optimization only when the -on_route and -from options are used together. You have to run subsequent routing to make sure that all nets are fully routed for the next operation. -incremental Sets the scope of creating the buffer tree for the specified nets rather than the entire buffer tree driven by the specified nets. When this option is specified, the create_buffer_tree command constructs a buffer tree, if needed, on each net specified by the -from option to reduce the high fanout of each net, but it does not remove any existing buffers or inverters. So, the scope of creating buffer trees is a single specified net. -no_legalize Disables placement legalization at the end of buffering. Chapter 1: create_buffer_tree 545 1-545 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -on_route Perform the postroute optimization flow, where it fixes DRC violations by using the route_opt command and then the focal_opt command. It focuses mainly on fixing maximum net length, so you need to specify the max_net_length constraint by using the set_max_net_length command, before using this option. The final database is a detail routed database. It is recommended to use the -align_hierarchy_for_long_nets option with the -on_route option to ensure that optimization occurs for long nets crossing logical hierarchies. You can use the -from option with this option to fix DRC violations for the concentrated nets. However, if you use the -from option, the design must be detail routed and you cannot use the -skip_detail_route or -align_hierarchy_for_long_nets options. -skip_detail_route Skips detail routing when used with the -on_route option. By default the -on_route option triggers full detail routing after topology-based DRC optimization. This option can reduce runtime of the on_route option by skipping the final detail route. This option can only be used with the -on_route option. This option cannot be combined with the -from option. -align_hierarchy_for_long_nets Enables additional optimizations and port punching for long nets that crosses multiple hierarchies. Long nets are those nets that violate the maximum net length constraint for the design. You can specify max_net_length constraint via command set_max_net_length before using this option. If you use this option and the design does not have a maximum net length constraint, the command fails with an error message. When you use this option, the tool first performs high-fanout net fixing and also fixing DRC violations, such as maximum transition and capacitance, for low fanout nets. It then performs preroute topology-based buffering and port punching for the nets that violate the maximum net length constraint and crosses multiple hierarchies. If both of these conditions are not met, this additional optimization is not performed. This option does not fix all maximum net length constraint. You have to rely on the -on_route option to fix the remaining violations. This option can be used alone or with the -on_route option, but it cannot be used with the -from options. create_buffer_tree 546 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION The create_buffer_tree command creates a buffer tree for each specified driver pin and for the driver pin of each specified net. The create_buffer_tree command generates a hierarchical buffer tree, and buffers are inserted across hierarchical boundaries. The command is location-based. Therefore, the specified driver pin should not be a hierarchical pin because a hierarchical pin does not have a location. Use this command on a placed design only. The command requires the following libraries and information: • The physical libraries that correspond to the specified logic libraries. • The capacitance and resistance per unit length derived from the physical library or user-specified. Multicorner-Multimode Support This command uses information from all active scenarios. EXAMPLES The following example creates a buffer tree that is implemented at driver a/O: prompt> create_buffer_tree -from [get_pins a/O] The following example creates buffer trees for driver a/O and net n1: prompt> create_buffer_tree -from {[get_pins a/O] [get_nets n1]} SEE ALSO remove_buffer_tree(2) report_buffer_tree(2) report_ahfs_options(2) report_net_fanout(2) set_ahfs_options(2) Chapter 1: create_buffer_tree 547 1-547 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_cell Creates leaf or hierarchical cells in the current design or its subdesigns. SYNTAX status create_cell cell_list [reference_name] [-hierarchical] [-view view_name] [-freeze_silicon] Data Types cell_list reference_name view_name list string string ARGUMENTS cell_list Specifies the names of cells created in the current design. Each cell name must be unique within the current design. reference_name Specifies the design or library cell that new cells reference. Ports on the reference determine the name, number, and direction of pins on the new cell. -hierarchical Creates hierarchical cell instances and designs with the name given by cell_list if the reference_name is not specified. If you specify the reference_name, the cell_list must have a single element. The command creates the hierarchical cell instance with the name given by the single cell_list and also creates the design with the name given by reference_name. This option is mutually exclusive with the -view option. create_cell 548 IC Compiler™ Tool Commands Version L-2016.03 -view view_name Specifies the Milkyway view of the reference design used for creating the new cell. Using this option triggers a link of the design and can increase runtime. When creating the cell, the tool verifies that the specified view exists for the reference cell. Do not use this option for creating standard cells, which always use the FRAM view of the reference cell. Note that all cells in the design must have a FRAM view in the reference library, regardless of the view used when creating a new cell. The create_cell command currently verifies only the existence of the specified view. If you specify -view CEL and a FRAM view does not exist for the reference design, you might receive errors later in the design flow. To create a FRAM view for a reference design, use the create_macro_fram command. -freeze_silicon Creates cell instances in a transitional state to support the ECO freeze silicon flow. The place_freeze_silicon or map_freeze_silicon command deletes the instances and replaces them with existing spare cells of the same reference library cell. This option has no impact on cell creation for hierarchical cells. DESCRIPTION This command creates new leaf or hierarchical cells in the current design or its subdesigns based on the cell_list argument. New leaf cells are the instantiation of an existing design or library cell. New hierarchical cells are the instantiation of a new design. The created cells are placed just outside the core area on the lower right corner, if the core area is defined. The attribute "is_placed", is still FALSE, as this is not a legal location. To remove cells from the current design, use the remove_cell command. Although the reference_name argument accepts names in the format library/library_cell, the command might not instantiate the actual library cell from the specified library. The actual library cell to be used is determined by the current link library settings. EXAMPLES The following example creates a cell named cell1 under the subdesign corresponding to the mid1 cell: prompt> create_cell {mid1/cell1} my_lib/AND2 Chapter 1: create_cell 549 1-549 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Creating cell 'cell1' in design 'mid'. The following example creates leaf cells using library cells as references. prompt> create_cell {U3 U4} my_lib/NAND2 prompt> create_cell "U5" my_lib/NOR2 The following example creates hierarchical cell H1 with the new design name DESIGN1, and creates leaf cell U2 under the new hierarchical cell using library cells as references: prompt> create_cell -hierarchical H1 DESIGN1 prompt> create_cell H1/U2 my_lib/NAND2 The following example creates hierarchical cells H2 and H3 with the design name H2 and H3 separately. Also, it creates leaf cell U3 under the new hierarchical cell H2 using library cells as references. prompt> create_cell -hierarchical {H2 H3} prompt> create_cell H2/U3 my_lib/NAND2 In IC Compiler, reference cells in the physical library can be used without the need for a logical library reference if the physical cell reference has only power and ground pins. This allows you to create some cells (such as filler, power pad, tap, and cap cells) without having logical library references for them. The following example creates a power pad using a physical library reference. No slash is used to designate a library, since there is only one physical library. prompt> create_cell my_power_pad pvdd The following example creates a FRAM view before using the -view option: prompt> create_macro_fram -library_name logo -cell_name cell_logo \ -identify_macro_pin_by_pin_text prompt> close_mw_library logo prompt> open_mw_library design prompt> open_mw_cell routed prompt> create_cell -view FRAM cell_logo my_logo create_cell 550 IC Compiler™ Tool Commands Version L-2016.03 SEE ALSO create_macro_fram(2) map_freeze_silicon(2) place_freeze_silicon(2) remove_cell(2) report_cell(2) set_cell_location(2) Chapter 1: create_cell 551 1-551 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_clock Creates a clock object and defines its waveform in the current design. SYNTAX status create_clock [-name clock_name] [-add] [source_objects] [-period period_value] [-waveform edge_list] [-comment comment_string] Data Types clock_name source_objects period_value edge_list comment_string string list float list string ARGUMENTS -name clock_name Specifies the name of the clock being created. If you do not use this option, the clock is given the same name as the first clock source specified in source_objects. If you do not use source_objects, you must use this option, which creates a virtual clock not associated with a port or pin. Use this option along with source_objects to give the clock a more descriptive name than that of the pin or port where it is applied. If you specify the -add option, you must use the -name option and the clocks with the same source must have different names. -add Specifies whether to add this clock to the existing clock or to overwrite the existing clock. Use this option to capture the case where multiple clocks must be specified on the same source for simultaneous analysis with different clock waveforms. When you specify this option, you must also use the -name option. Defining multiple clocks on the same source pin or port causes longer runtime and higher memory usage than a single clock, because the synthesis timing engine must explore all possible combinations of launch create_clock 552 IC Compiler™ Tool Commands Version L-2016.03 and capture clocks. Use the set_false_path command to disable unwanted clock combinations. This option is ignored (the default), unless multiple clocks analysis is enabled by setting the timing_enable_multiple_clocks_per_reg variable to true. source_objects Specifies a list of pins or ports on which to apply this clock. If you do not use this option, you must use -name clock_name, which creates a virtual clock not associated with a port or pin. If you specify a clock on a pin that already has a clock, the new clock replaces the old clock unless you use the -add option. -period period_value Specifies the period of the clock waveform in library time units. -waveform edge_list Specifies the rise and fall edge times, in library time units, of the clock over an entire clock period. The first time in the list is a rising transition, typically the first rising transition after time zero. There must be an even number of increasing times, and they are assumed to be alternating rise and fall times. The numbers must represent one full clock period. If -waveform edge_list is not specified, but -period period_value is, a default waveform with a rise edge of 0.0 and a fall edge of period_value/2 is assumed. -comment comment_string Allows the command to accept a comment string. The tool honors the annotation and preserves it with the SDC object so that the exact string is written out when the constraint is written out when you use the write_sdc or write_script command. The comment remains intact through the synthesis, place-and-route, and timing-analysis flows. DESCRIPTION The create_clock command creates a clock object in the current design. The command defines the specified source_objects as clock sources in the current design. A pin or port can be a source for a single clock. If source_objects is not specified, but a clock_name is given, a virtual clock is created. A virtual clock can be created to represent an off-chip clock for input or output delay specification. For more information about input and output delay, refer to the set_input_delay and set_output_delay command man pages. Clock objects hold attributes that affect the clock network, such as dont_touch_network, fix_hold, and propagated_clock. Using create_clock on an existing clock object overwrites the attributes previously set on the clock object. The create_clock command also defines the waveform for the clock. The clock can have multiple pulses per period. Setup and hold path delays are automatically derived from the clock waveforms of the path Chapter 1: create_clock 553 1-553 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 startpoint and endpoint. The fix_hold attribute (set by the set_fix_hold command) directs compile to fix hold violations for a clock. By default, a new path group is created for the clock. This groups together the endpoints related to this clock for cost function calculation. To remove the clock from its assigned group, use the group_path command to reassign the clock to another group or to the default path group. For more information, refer to the group_path command man page. The new clock has ideal timing, so no propagation delay through the clock network is assumed. To enable propagation delay through the clock network, use the set_propagated_clock command. To add skew or uncertainty to the ideal waveform, use the set_clock_latency or set_clock_uncertainty command. To show information about all clock sources in a design, use the report_clock command. To get a list of clock sources, use the get_clocks command. To return sequential cells related to a given clock, use the all_registers command. To undo create_clock, use the remove_clock command. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example creates a clock on port PHI1 with a period of 10.0, rise at 5.0, and fall at 9.5: prompt> create_clock "PHI1" -period 10 -waveform {5.0 9.5} In the following example, the clock has a falling edge at 5 and a rising edge at 10, with a period of 10. Because the -waveform option expects the edges to be ordered first rise then fall, and to increase in value, the fall edge can be given as 15; that is, the next falling edge after the first rise edge at 10. prompt> create_clock "PHI2" -period 10 -waveform {10 15} The following example creates a clock named CLK on pin u13/Z, with a period of 25, fall at 0.0, rise at 5.0, fall at 10.0, rise at 15.0, and so forth: prompt> create_clock "u13/Z" -name "CLK" -period 25 -waveform {5 10 15 25} The following example creates a virtual clock named HI2 with a period of 10.0, rise at 0.0, and fall at 5.0: create_clock 554 IC Compiler™ Tool Commands Version L-2016.03 prompt> create_clock -name "PHI2" -period 10 -waveform {0.0 5.0} The following example creates a clock with multiple sources and a complex waveform: prompt> create_clock -name "clk2" -period 10 -waveform {0.0 2.0 4.0 6.0} \ {clkgen1/Z clkgen2/Z clkgen3/Z} SEE ALSO all_clocks(2) all_registers(2) check_timing(2) current_design(2) get_clocks(2) group_path(2) remove_clock(2) report_clock(2) reset_design(2) set_clock_latency(2) set_clock_uncertainty(2) set_dont_touch_network(2) set_fix_hold(2) set_max_delay(2) set_min_delay(2) set_output_delay(2) set_propagated_clock(2) Chapter 1: create_clock 555 1-555 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_clock_mesh Creates a grid of horizontal and vertical straps that are joined by vias for clock mesh implementation. SYNTAX status create_clock_mesh [-net net] [-layers {horizontal_layer vertical_layer}] [-num_straps {horizontal_count vertical_count} | -pitches {horizontal_pitch vertical_pitch} | -max_pitches {horizontal_pitch vertical_pitch} | -relative_pitches {horizontal_pitch vertical_pitch}] [-widths {horizontal_width vertical_width} | -relative_widths {horizontal_width vertical_width}] [-keepouts list_of_points] [-ring] [-bounding_box rectangle] [-lower_left {llx lly}] [-upper_right {urx ury}] [-max_displacement {horizontal_disp vertical_disp}] [-load net_or_pins] [-avoid instances] [-no_snap] [-check_only] [-remove_display] [-verbose] [-offset {horizontal_offset vertical_offset}] [-full_pitch_perimeter] Data Types net horizontal_layer vertical_layer horizontal_count vertical_count horizontal_pitch vertical_pitch horizontal_width vertical_width list_of_points rectangle llx lly urx ury horizontal_disp vertical_disp create_clock_mesh list or collection of one item string string integer integer float float float float list float float float float float float float 556 IC Compiler™ Tool Commands net_or_pins instances horizontal_offset vertical_offset Version L-2016.03 collection collection of instances float float ARGUMENTS -net net Connects new straps to the existing net that you specify. Use the create_net command if necessary. -layers {horizontal_layer vertical_layer} Specifies the horizontal and vertical layers to use for the mesh. -num_straps {horizontal_count vertical_count} Specifies the number of horizontal and vertical straps to create. Both numbers should be positive integers. A mesh created by using the -num_straps {2 2} option has an outer ring only if the -ring option is specified. The mesh has a hash shape (#) if the -ring option is not specified. High strap numbers result in a dense mesh. If you to not specify the -pitches or a -num_straps option, the command synthesizes a mesh based on internal experimental values. -pitches {horizontal_pitch vertical_pitch} Specifies the horizontal and vertical pitches of the mesh. The first distance is the vertical distance between horizontal straps, and the second is the horizontal distance between vertical straps. This option is mutually exclusive with the -num_straps option. This is a hard constraint. -max_pitches {horizontal_pitch vertical_pitch} Specifies the maximum horizontal and vertical pitches of the mesh. The first distance is the maximum vertical distance between horizontal straps, and the second is the horizontal distance between vertical straps. This option is mutually exclusive with the -num_straps option. This is a soft constraint. If the pitch does not divide the effective bounding box evenly, the command adds additional straps to create an even distribution of straps. You can use the electrical or physical limits as a base for the settings of this option. -relative_pitches {horizontal_pitch vertical_pitch} Specifies the relative horizontal and vertical pitches of the mesh. The pitches are represented as multiples of the default minimum wire spacing for the chosen layers. The first distance controls the minimum vertical distance between horizontal straps, and the second controls the horizontal distance between vertical straps. This option is mutually Chapter 1: create_clock_mesh 557 1-557 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 exclusive with the -num_straps option. This is a soft constraint. If the pitch does not divide the effective bounding box evenly, the command adds additional straps to create an even distribution of straps. You can use the electrical or physical limits as a base for the settings of this option. -widths {horizontal_width vertical_width} Specifies the widths of horizontal and vertical straps. If you do not specify this option, the command selects widths based on internal experimental values. -relative_widths {horizontal_width vertical_width} Specifies the widths of horizontal and vertical straps that are multiples of the default minimum wire width for the specified layers. -keepouts list_of_points Specifies a list of explicit locations of placement blockages or cells rather than design objects. The tool does not generate straps and vias that intersect these blocks. -ring Encloses the mesh with a rectangular ring that connects the ends of horizontal and vertical straps. This option adds routing overhead, capacitance, and power, but the ring might be more effective for reducing impedance among drivers and loads near the perimeter of the mesh. Note that the ring cannot be completed if the mesh is blocked. -bounding_box rectangle Specifies the bounding fox for the mesh. If you specify both the -load and -bounding_box options, the -bounding_box option takes precedence. -lower_left {llx lly} Specifies the X location of the leftmost vertical strap and the Y location of the lowest horizontal strap. Use this option to specify the point where the lowest horizontal strap crosses the leftmost vertical strap. The horizontal straps are limited on the left by the left edge of the implied or specified bounding box. The vertical straps is limited on the bottom edge by the bottom edge of the implied or specified bounding box. -upper_right {urx ury} Specifies the point where the highest horizontal strap crosses the rightmost vertical strap. This option can only be used with the -lower_left option. No vertical strap is allowed to the right of urx, and no horizontal strap is allowed above ury. -max_displacement {horizontal_disp vertical_disp} Sets the maximum allowed horizontal displacement of vertical straps and the maximum allowed vertical displacement of horizontal straps. Normally, the command places straps at the exact geometric location according to the specified options, but the command can create_clock_mesh 558 IC Compiler™ Tool Commands Version L-2016.03 displace straps within the maximum allowable values to avoid obstructions. The default value of displacement is determined internally by the tool, you can override the internal displacement calculation by using the -max_displacement option. A large horizontal_disp value allows vertical straps to move greater distances horizontally. A zero value eliminates any vertical straps that encounter a obstruction. See also the -no_snap option. -load net_or_pins Uses the bounding box of the specified pins as the bounding box for the mesh. If a net is present, the command considers all pins on that net. -avoid instances Specifies a collection of instances, typically large blocks. The command does not generate straps and vias that intersect these blocks. -no_snap Disables snapping to available routing tracks. Normally, the command adjusts the position and spacing of the straps to coincide with available routing tracks. Use the -no_snap option to avoid snapping to available routing tracks. The -no_snap option is useful early in the design process to help verify the -bounding_box, -offset, or other options. The option allows you to see where the straps are placed without adjustment. -check_only Prevents straps from being inserted. Use this option to report the number of straps created and their properties. If the GUI is active, the GUI displays the horizontal and vertical strap positions, without inserting the straps, after removing any previously annotated temporary straps. -remove_display Removes from the GUI the temporary mesh straps added by the -check_only option. This option is valid only if the GUI is active. -verbose Generates additional debugging messages during strap creation. This option is off by default. -offset {horizontal_offset vertical_offset} Moves the newly created vertical straps to the right by the specified horizontal offset, and moves the vertical straps up by the specified vertical offset. Use this option to align with power and ground straps, but avoid intersections. Chapter 1: create_clock_mesh 559 1-559 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -full_pitch_perimeter Adjusts spacing so that the four straps on the right, left, top, and bottom sides are away from the perimeter by a full grid pitch. The default is half a pitch. DESCRIPTION This command builds a grid of horizontal and vertical straps suitable for a clock mesh. Use this command as one of the first steps in clock mesh tree creation. Alternatively, you can create a clock mesh by using create_net_shape and create_via commands. However, the create_clock_mesh command is specifically designed for creating the clock mesh. The mesh covers a rectangular area which can be specified directly with the -bounding_box option, or indirectly with the -load option. If you specify the -load option, the mesh covers all of the pins specified in the load. Typically, it is easiest to specify the ideal clock net by using the -load option. If neither -bounding_box nor -load is specified, the command chooses an area based on the site arrays in the current design. The layers of the straps are specified as a list with the -layers option, with the first element in the list being the horizontal layer and the second being the layer to used for vertical straps. The widths can be omitted, in which case heuristic width straps are used. If -widths are used, the first element is the width for horizontal straps and the second for vertical straps. Alternatively, widths can be specified relative to the minimum width for the layer with the -relative_widths options. Note that for the options that accept lists, the order of the elements in the list is important. For the following command skeleton: create_clock_mesh -layers {M7 M8} -num_straps {7 8} The first element in the -layers list is the horizontal layer, M7, and corresponds to the first element in the -num_straps options, 7. The command generates 7 horizontal straps on layer M7. The second element in the -layers list is M8 and the second element in the -num_straps option is 8, the command generates 8 straps on layer M8. The mesh covers the entire rectangle defined by the bounding box, unless you use -avoid or -keepouts to specify one or more blocks where the mesh should not be created. Use this option with care: it is possible to construct meshes with poor electrical connectivity, or even disconnected straps by using this option. To create a ring around the perimeter of your mesh, use the -ring option. A mesh created with the -ring option using the following options: -ring -num_straps {2 2} has a square shape. A mesh created without the -ring option using the following option: create_clock_mesh 560 IC Compiler™ Tool Commands Version L-2016.03 -num_straps {2 2} has a hash shape ("#"). The number of straps can be any nonnegative number. The following option: -num_straps {1 1} creates two straps shaped like a cross "+". The following option -num_straps {8 0} adds 8 horizontal straps and no vertical straps. Note that when 0 straps are specified in one dimension, the calculations are done internally as if two or more straps were specified in the other dimension, and then those straps are suppressed. This is important because the length of the horizontal straps, for example, is dependent on the vertical straps. The following option: -num_straps {2 0} places two horizontal straps directly on top of the two horizontal straps created by the following option: -num_straps {2 7} This allows you to create complex meshes by running the create_clock_mesh command multiple times. By default, the spacing between straps are equal in the interior of the mesh, but only half as wide around the perimeter. This is done so that each strap horizontal-vertical crossing is surrounded by the same area. To create evenly spaced straps, use the -full_pitch_perimeter option. For example, if you specify a bounding box of {{0 0} {120.0 240.0}} and specify the following options: -num_straps {2 4} -full_pitch_perimeter to generate 2 horizontal straps and 4 vertical straps, the vertical straps are 48 microns apart and 48 microns from the right and left sides. (240 divided by 5). Without the -full_pitch_perimeter option, the interior pitch would be adjusted to 60 microns, and the leftmost mesh strap is placed 30 microns (one half pitch) away from the bounding box, and the rightmost mesh strap is 30 microns (one half pitch) away from the right side of the bounding box. Similar calculations apply for the top and bottom straps. This style is preferred if you intend to place a driver at each interior intersection (in this case, 8 drivers), because then each driver is in the center of a rectangle with the same dimensions, and all drivers would serve similar loads. If you know exactly where you want to place the wires, you might want to use the -lower_left and -pitch options. The argument to the -lower_left option is the exact position of the center Chapter 1: create_clock_mesh 561 1-561 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 of the crossing of the leftmost vertical wire with the bottommost horizontal wire. Using the -pitch option lets you specify the precise distance between wires. If you do this, you cannot specify the -num_straps option, the number of straps is determined for you. To create fewer straps, you can limit the grid by specifying the -upper_right option. No vertical wires are added to the right of this point, nor any horizontal wires above this point. The following command: create_clock_mesh -layers {M5 M6} -lower_left {15.125 76.015} -pitches {100 200} creates vertical wires with X coordinates 15.125, 215.125, 415.125, etc and horizontal wires with Y coordinates of 76.015, 176.015, 276.015, etc. Note the following terminology used to define nets relevant to all the clock mesh commands: The commands that deal with clock meshes distinguish among three types of important nets. The term "clock net" refers to a net normally associated with the original ideal clock. Typically it is connected to an input port, or it can be marked in SDC as a derived clock. Generally, a clock starts out as an ideal net connected to a port or a clock driver and many loads. The "root net" is the net at the apex of the tree of buffers that drive the mesh. The "root net" is often the same net as the "clock net", but this is not required. If several clocks are distributed by the same mesh, the root net is a common point for their distribution, but the root net is not required to be uniquely associated with one clock. The "mesh net" is the net of the wiring grid. In the methodology illustrated here, the mesh net is created using the create_net command before creating the mesh itself. Because each of these nets is important in understanding and analyzing the circuit, it is advisable to assign them evocative names. If there is only one clock involved, perhaps called "clk" connected to a port called "clk", then the net associated with the mesh might be called "clk_mesh." and the root net is also net "clk." The create_clock_mesh command could use -load clk and -net clk_mesh. Later, the add_clock_drivers command would take the pins that are on the net called clk, disconnect them from net "clk" and connect them to net clk_mesh, and add drivers that start from the net clk and drive clk_mesh. If you chose to use the analyze_subcircuit command, it would model the circuit starting from net "clk" through all the pins connected to net "clk_mesh". If there are two distinct clocks, "clk1" and "clk2" that are gated together into the root of the tree, the root might be called "clk1_clk2_root", and the mesh that is driven might be "clk1_clk2_mesh". The create_clock_mesh command could use -load clk1_clk2_root and -net clk1_clk2_mesh. Later, the add_clock_drivers command would take the pins that are on the net called clk1_clk2_root, disconnect them from clk1_clk2_root and connect them to net clk1_clk2_mesh, and add drivers that start from the net clk1_clk2_root and drive clk1_clk2_mesh. The add_clock_drivers command would not deal with the nets "clk1" or "clk2". The analyze_subcircuit command would model the circuit starting from net create_clock_mesh 562 IC Compiler™ Tool Commands Version L-2016.03 "clk1_clk2_root" through all the pins connected to net "clk1_clk2_mesh". The analyze_subcircuit command would not begin its analysis at net clk1 or clk2, because the analyze_subcircuit command requires a single net at its root. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES This example creates a grid with horizontal straps on M7 and vertical straps on M8. It includes the top and bottom straps that form a ring around the mesh, and it connects the load pins to the net of the mesh, which is called "clk1_mesh". The command inserts just enough horizontal straps so that the distance between them is not more than 100 times the minimum pitch for layer M7. It adds just enough vertical straps so that the pitch between them is not be more than 150 times the minimum pitch for layer M8. Since the widths of the straps are not specified, the command chooses the widths internally. prompt> create_net clk1_mesh 1 prompt> set_attribute [get_net clk_mesh] net_type "Clock" 1 prompt> create_clock_mesh -net [get_net clk1_mesh] \ -load [get_pins -of clk] -ring \ -relative_pitches {100 150} -layers {M7 M8} 1 SEE ALSO add_clock_drivers(2) analyze_subcircuit(2) compile_clock_tree(2) compile_premesh_tree(2) route_mesh_net(2) Chapter 1: create_clock_mesh 563 1-563 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_command_group Creates a new command group. SYNTAX string create_command_group [-info info_text] group_name ARGUMENTS -info info_text Help string for the group group_name Specifies the name of the new group. DESCRIPTION The create_command_group command is used to create a new command group, which you can use to separate related user-defined procedures into functional units for the online help facility. When a procedure is created, it is placed in the "Procedures" command group. With the define_proc_attributes command, you can move the procedure into the group you created. The group_name can contain any characters, including spaces, as long as it is appropriately quoted. If group_name already exists, create_command_group quietly ignores the command. The result of create_command_group is always an empty string. EXAMPLES The following example demonstrates the use of the create_command_group command: prompt> create_command_group {My Procedures} -info "Useful utilities" prompt> proc plus {a b} { return [expr $a + $b] } prompt> define_proc_attributes plus -command_group "My Procedures" create_command_group 564 IC Compiler™ Tool Commands Version L-2016.03 prompt> help My Procedures: plus ... SEE ALSO define_proc_attributes(2) help(2) proc(2) Chapter 1: create_command_group 565 1-565 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_connview Invokes the Hercules connectivity engine to generate a connectivity (CONN) view and current source files for nonstandard cells. The generated CONN view and current source files can be used during IR drop analysis. SYNTAX status create_connview -library library_name -design design_name [-power_nets net_names] [-ground_nets net_names] [-generate_csf] [-skip_via mask_names] [-connview_skip_cell cell_names] [-csf_skip_cell cell_names] [-layer_text mask_names_text] Data Types library_name design_name net_names mask_names cell_names mask_names_text string string string string string string ARGUMENTS -library library_name Specifies the name of the library. The library is the one in the Milkyway database. This is a required option. There is no default for this option. -design design_name Specifies the name of the single cell in the specified Milkyway library for which you want to generate a CONN view. This is a required option. There is no default for this option. create_connview 566 IC Compiler™ Tool Commands Version L-2016.03 -power_nets net_names Specifies the names of the top-level power nets to be extracted. You must specify at least one of the following options: -power_nets or -ground_nets. -ground_nets net_names Specifies the names of the top-level ground nets to be extracted. You must specify at least one of the following options: -power_nets or -ground_nets. -generate_csf Generates current source files for the specified design and then attaches them to the CONN view during CONN view generation. The files are used during rail analysis functions such as power network analysis or PrimeRail to improve accuracy by placing current sinks of hard macros into the locations described in the current source files. By default, this command does not generate current source files. -skip_via mask_names Does not extract the connectivity through the specified vias. By default, the command extracts the connectivity through via1 to via11 (metal1 to metal12). -connview_skip_cell cell_names Specifies the child cells to be excluded from CONN view generation. By default, all child cells are included. -csf_skip_cell cell_names Specifies the child cells to be excluded from current source file generation. By default, all child cells are included. -layer_text mask_names_text Specifies the metal mask names with the name or number of the layers used for text that identify the corresponding metal layer geometries. If all text layers match the geometry layers, this option is not needed. The format of the layer text is mask_name:layer_name_or_number For example, to use layer 32 to identify metal2 geometries and layer 31 to identify metal3 geometries, use the following option: Chapter 1: create_connview 567 1-567 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -layer_text {metal2:32 metal3:31} DESCRIPTION This command invokes the Hercules connectivity engine to generate the connectivity (CONN) view and current source files for nonstandard cells. Nonstandard cells, such as hard macros, can have significant effects on voltage drop and electromigration at the full-chip level. The power consumption of these cells or the power and ground routing that exists inside these cells could allow voltage to flow through the cells to other regions of the chip. It is therefore necessary to be able to consider the internal power and ground network and power consumption of these types of cells during IR drop analysis. This command combines the values of the routing and power usage into a single construct that rail analysis tools such as power network analysis or PrimeRail can access. The construct consists of the following two parts: • Connectivity (CONN) view The CONN view represents the power and ground networks inside the cell. • Current source file The current source file is an ASCII file that records where current (and therefore power) is drawn inside the cell. Note: You should close the library and cell of interest before running this command. The number of cells printed in each Hercules command is limited to 300 to prevent the Hercules parser from breaking. Multicorner-Multimode Support This command is not supported in a multi-scenario design flow. EXAMPLES The following example generates a CONN view and current source files for the TS1GE256X16M4 design in the ts1ge256x16m4_lib library, using the VDD power net and the VSS ground net. prompt> create_connview -library ts1ge256x16m4_lib \ -design TS1GE256X16M4 -power_nets VDD -ground_nets VSS \ -generate_csf create_connview 568 IC Compiler™ Tool Commands Version L-2016.03 The following example shows generates a CONN view and current source files for the TS1GE256X16M4 in the ts1ge256x16m4_lib library, using the VDD power net. During CONN view generation, the tool skips vias via2 and via3, skips child cells S1B100W10_V4 and S1B100W10_V1_5, and uses layer 5 as metal1 and layer 12 as metal2. prompt> create_connview -library ts1ge256x16m4_lib \ -design TS1GE256X16M4 -power_nets VDD -skip_via {via2 via3} \ -connview_skip_cell {S1B100W10_V4 S1B100W10_V1_5} \ -layer_text {metal1:5 metal2:12} SEE ALSO analyze_fp_rail(2) synthesize_fp_rail(2) Chapter 1: create_connview 569 1-569 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_custom_wire Creates custom wires for the specified nets. SYNTAX status create_custom_wire [-start_command | -add_point point | -delete_point | -end_points | -end_command | -undo] [-nets collection_of_nets] [-horizontal_layer layer] [-horizontal_width distance] [-horizontal_pitch distance] [-vertical_layer layer] [-vertical_width distance] [-vertical_pitch distance] [-set_of_layers list_of_layers_with_options] [-override filename] [-mark_as strap | ring] [-start_at low_end | high_end] [-switch_end_at_turning true | false] [-skip_count int] [-multi_via_size int] [-extend_first true | false] [-extend_last true | false] [-snap_to_track true | false] [-look_inside_std_cell true | false] [-reverse_net_order true | false] [-draw_bbox_vias true | false] [-show_detailed_info true | false] [-honor_route_guides true | false] [-extend_first_to_boundaries true | false] [-extend_last_to_boundaries true | false] Data Types collection_of_nets mark_type start_type list_of_layers_with_options layer file_name distance create_custom_wire collection string string list string string distance 570 IC Compiler™ Tool Commands Version L-2016.03 ARGUMENTS -start_command Starts the mouse interaction mode. -add_point point Adds a mouse point to process. -delete_point Deletes the last mouse point. -end_points Commits the point input and enables the undo operation. -end_command Ends the command. -undo Removes the last committed wires and vias. -nets collection_of_nets Specifies the nets. You can specify a maximum of 2 nets. -horizontal_layer layer Specifies the name or number of the horizontal metal layer. If you do not specify this option, the tool uses first horizontal metal layer in the technology file. -horizontal_width distance Specifies the minimum width for the horizontal layer. -horizontal_pitch distance Specifies the pitch of the horizontal layer. -vertical_layer layer Specifies the name or number of the vertical metal layer. If you do not specify this option, the tool uses first vertical metal layer in the technology file. Chapter 1: create_custom_wire 571 1-571 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -vertical_width distance Specifies the minimum width for the vertical layer. -vertical_pitch distance Specifies the pitch of the vertical layer. -mark_as strap | ring Marks the created wires and vias as the specified type. The default is ring. -set_of_layers list_of_layers_with_options Specifies the layers on which to create wires. You specify the list of layers with options in the following format: {layer horizontal|vertical width true|false ...} The parameter is a list of layer, horizontal or vertical flags, width, and boolean flags, which tell the tool to search targets on the specified layers. You specify the layer either with the layerNumber or maskName from the technology file. -override file_name Specifies the name of the file that defines override values for the width and pitch values specified by other options. An override must be specified on one single line and has one of the following formats: net_number width pitch (net_number1 netnumber2 ...) width pitch -start_at low_end | high_end Specifies whether to start at the low or high end of the net when creating a wire. The default is low_end. -switch_end_at_turning true | false Specifies whether to switch ends when turning. The default is false. -skip_count int Specifies the number of nets that are skipped during a direction change. create_custom_wire 572 IC Compiler™ Tool Commands Version L-2016.03 -multi_via_count int Specifies the minimum number of via cuts. The default is 1. -extend_first true | false Specifies whether to extend the wire from the first point entered. The default is false. -extend_last true | false Specifies whether to extend the last bit of a bus. The default is false. -snap_to_track true | false Specifies whether to create the wire on the wire track. The default is false. -look_inside_std_cell true | false Specifies whether to create vias to connect wires to pins inside standard cells. The default is false. -reverse_net_order true | false Specifies whether to reverse the order of the bus bits. The default is false. -draw_bbox_vias true | false Specifies whether to draw only the bounding box of the via. The default is true. -show_detailed_info true | false Specifies whether to show the width and increasing length number dynamically for each net. The default is false. -honor_route_guides true | false Specifies whether to consider the variable routing rule defined for the nets. The default is false. Chapter 1: create_custom_wire 573 1-573 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -extend_first_to_boundaries true | false Specifies whether to extend the first created wire and generate a pin at the boundary. The default is false. -extend_last_to_boundaries true | false Specifies whether to extend the last created wire and generate a pin at the boundary. The default is false. DESCRIPTION Creates a wire between the specified points. Because this is an interactive command, you must start the GUI before using it. To start the GUI, use the gui_start command. You can change the internal application of DRC rules by using the set_preroute_drc_strategy command. To remove wire segments, use the create_custom_wire -undo command. EXAMPLES The following example creates a custom wire shape and then uses the undo operation to remove it. prompt> gui_start prompt> create_custom_wire -start_command prompt> set_preroute_drc_strategy -drc_off \ -min_layer METAL -max_layer METAL5 prompt> create_custom_wire -add_point {100.00 100.100} prompt> create_custom_wire -add_point {200.00 100.100} prompt> create_custom_wire -end_points prompt> create_custom_wire -undo prompt> create_custom_wire -end_command SEE ALSO set_preroute_drc_strategy(2) gui_start(2) create_custom_wire 574 IC Compiler™ Tool Commands Version L-2016.03 create_die_area Creates the die area for the current design. SYNTAX status create_die_area -boundary {boundary_points_list} Data Types boundary_points_list list ARGUMENTS -boundary {boundary_points_list} Specifies the boundary of the die area. If the points list is two elements, the points define the lower-left and upper-right coordinates of a rectangular die area. The format is {{llx lly} {urx ury}}. If there are more than two points, the points define a polygon. The format is {{x_0 y_0} {x_1 y_1} ... {x_0 y_0}} The coordinate unit size is specified in the technology file. DESCRIPTION The create_die_area command creates the die area for the current design. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example creates the die area with an L-shape by defining a polygon: Chapter 1: create_die_area 575 1-575 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 prompt> create_die_area -boundary {{0 0} {0 400} {200 400} {200 200} \ {400 200} {400 0} {0 0}} SEE ALSO get_die_area(2) remove_die_area(2) create_die_area 576 IC Compiler™ Tool Commands Version L-2016.03 create_differential_group Defines a differential group of nets. SYNTAX status create_differential_group -group group_name -nets nets Data Types group_name nets string collection ARGUMENTS -group group_name Specifies the name of the differential group. -nets nets Specifies the nets to associate with the differential group. DESCRIPTION Defines a differential group with the specified name that contains the specified nets. Each group can have two or more nets. After you define the differential groups, you can route them by using the route_differential or route_rdl_differential command. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example creates a differential group named "dgroup" that contains nets that begin with the prefix "net_diff". Chapter 1: create_differential_group 577 1-577 IC IC Compiler™ Compiler™ Tool Tool Commands Commands prompt> create_differential_group -group dgroup -nets [get_nets net_diff*] L-2016.03 Version L-2016.03 \ SEE ALSO route_differential(2) route_rdl_differential(2) create_differential_group 578 IC Compiler™ Tool Commands Version L-2016.03 create_drc_error Creates an error record for an error type in the default error type class, for the purpose of creating an error view. SYNTAX collection create_drc_error -error_view error_view -type error_type [-status error | fixed | ignored | waived] [-info description] -rectangles rectangles | -polygons polygons [-net net] [-layer layer] [-required required] [-actual actual] [-route_types route_types] Data Types error_view error_type description rectangles polygons net layer required actual route_types list or collection of one item string string list list list or collection of one item list or collection of one item float float list ARGUMENTS -error_view error_view Specifies the error view in which to create the error record. You must specify exactly one error view. -type error_type Specifies the error type for the new error object. This is a required argument. You can specify the error type by using the ID or name of the error type. Although the command accepts error types from any error type class, you should use this command Chapter 1: create_drc_error 579 1-579 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 only for error types in the default error type class. For error types in nondefault error type classes, you should use the class-specific error object creation commands. For more information, see the DESCRIPTION section. -status error | fixed | ignored | waived Sets the current status of this error. If you do not specify this option, the status is set to error. -info description Provides a full description of this error. The description string must have a length of less than 1024. If the description contains space characters, enclose it in quotation marks. If you do not specify this option, the description is left empty. -rectangles rectangles Specifies the rectangle shapes to add to the error object. The coordinates for the rectangle shapes are in microns. You can specify one or more rectangles as a list of rectangles: {rectangle rectangle rectangle ...} where each rectangle is specified as a list of four coordinates: {llx lly urx ury} which represent the x- and y-coordinates of the lower-left and upper-right corners of the rectangle. You can also define a rectangle as a list of two points for the lower-left and upper-right corners, where a point is a list of two coordinates: {{llx lly} {urx ury}} The -rectangles and -polygons options are mutually exclusive; you must specify exactly one of these options. -polygons polygons Specifies the polygon shapes to add to the error object. The coordinates for the polygon shapes are in microns. You can specify one or more polygons as a list of polygons: {polygon polygon polygon ...} where each polygon is a list of points {point point point ...} and each point is a list that contains the x and y coordinates: create_drc_error 580 IC Compiler™ Tool Commands Version L-2016.03 {x y} The list of polygons might look like this: {{{ax1 ay1} {ax2 ay2} ... {axn ayn}} {{bx1 by1} {bx2 by2} ... {bxn byn}}} The -rectangles and -polygons options are mutually exclusive; you must specify exactly one of these options. -net net Specifies the net associated with the shapes. You can specify the net by providing a collection that contains the net or by specifying the net name. You cannot use wildcards in the net name. If you do not specify this option, the error has no associated net. -layer layer Specifies the layer associated with the shapes. You can specify the layer by using the layer name from the technology file or by using the get_layers command. If you do not specify this option, the error has no associated layer. -required required Specifies the required value in microns, if applicable. The required value is the value expected by DRC checker, but violated in the error. For example, for a minimum spacing violation, the required value is DRC required spacing value that is violated. The argument is ignored if it is less than or equal to 0.0. If you do not specify this option, it is undefined. -actual actual Specifies the actual value in microns, if applicable. The actual value is the real value that violates the required value in the error. For example, for a minimum spacing violation, the actual value is the real spacing value that violates the DRC required spacing. The argument is ignored if it is less than 0.0. If you do not specify this option, it is undefined. -route_types route_types Specifies the route types associated with the error. You can specify one or more of the following route type keywords: user_enter, signal_route, signal_route_global, pg_ring, clk_ring, pg_strap, clk_strap, Chapter 1: create_drc_error 581 1-581 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 pg_macro_io_pin_conn, pg_std_cell_pin_conn, clk_zero_skew_route, bus, shield, shield_dynamic, and clk_fill_track. If you do not specify this option, the route type is undefined for the error. DESCRIPTION This command creates a new error object of the specified error type, for the purpose of creating an error view. Every error object must be associated with exactly on error type. The error type association is made when the error object is created and cannot be changed. Therefore, you must create an error type before you can create error objects of that type. When an error type is created with the create_drc_error_type command, it is associated with one of the following error type classes: default, open, openlocator, short, or spacing. An error object is interpreted based on its error type class. In addition to the create_drc_error command, the tool also provides the following error object creation commands, which are specific to the nondefault error type classes: create_open_drc_error, create_open_locator_drc_error, create_short_drc_error, and create_spacing_drc_error. To ensure that the error objects are correct-by-construction, you should use the create_drc_error command only to create error objects with the default error type class. To create error objects with a nondefault error type class, use the appropriate class-specific error object creation command. If successful, the create_drc_error command returns a collection that contains the new error object. EXAMPLES The following example opens an error view named mydesign_mydrc.err, creates an error type named Overlap, and then creates an error record of the Overlap type, which is associated with one shape on the RV layer: prompt> set cellId [open_mw_cel -not_as_current mydesign_mydrc.err] {mydesign_mydrc} prompt> set typeId [create_drc_error_type -name Overlap \ -info "Metal and blockage overlap" -error_view $cellId] 1024 prompt> create_drc_error -type $typeId -error_view $cellId \ -layer RV -rectangles {{574.0700 430.3600 578.9700 433.4400}} {1280} create_drc_error 582 IC Compiler™ Tool Commands Version L-2016.03 SEE ALSO add_drc_error_detail(2) create_drc_error_type(2) create_open_drc_error(2) create_open_locator_drc_error(2) create_short_drc_error(2) create_spacing_drc_error(2) get_drc_errors(2) list_drc_error_types(2) remove_drc_error(2) report_drc_error_type(2) Chapter 1: create_drc_error 583 1-583 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_drc_error_type Creates an error type record for custom error reporting, in preparation for error object creation with the create_drc_error or similar command. SYNTAX integer create_drc_error_type -name type_name -error_view mw_error_view [-class default | open | openlocator | short | spacing] [-info description] [-status error | fixed | ignored | waived] [-level err_type_level] Data Types type_name mw_error_view description err_type_level string list or collection string string ARGUMENTS -name type_name Specifies the name of the error type. The specified name must be unique in a case-insensitive comparison with existing names. This is a required argument. -error_view mw_error_view Specifies the error view in which to create the error type record. You must specify exactly one error view. -class default | open | openlocator | short | spacing Specifies the error class for the created error type. The class name keywords are case-insensitive. The open error type class is for violations where routed shapes for a net are not fully connected and is described as two or more disjoint nodes of connected net shapes. create_drc_error_type 584 IC Compiler™ Tool Commands Version L-2016.03 The openlocator error type class is for violations that describe opens in nets, not as disjoint nodes of connected net shapes, but as the potential connection flyline for an open. The short error type class is for violations where routed shapes overlap in the same area in a layer. The spacing error type class is for violations where two routed shapes in the same layer violate a spacing rule. If you specify this option, error objects of this type receive the data interpretation specific to the error class. If you do not specify this option or if you specify default, error objects of this type receive the default data interpretation. -info description Provides a full text description of the created error type. If the description string contains space characters, enclose it in quotation marks. If you do not specify this option, the description is left empty. -status error | fixed | ignored | waived Sets the default status for errors of the created error type. If you do not specify this option, the default status is error. -level err_type_level Specifies the severity level of the created error type. The value must be one of Error, "Critical Error", "Major Error", "Moderate Error", "Minor Error", or Recommendation. If you do not specify this option, the severity level is Error. DESCRIPTION This command creates a new error type with the specified type name. Every error object must be associated with exactly one error type. The error type association is made when the error object is created and cannot be changed. Therefore, you must create an error type before you create error objects of that type. If successful, the command returns the data object ID of the new error type record. Otherwise, the command returns 0. You can use the returned ID for the error type record in the -type option that identifies the type when you create an error object of that type. You can also identify the error type by using the type name specified as the argument to the -name option. The IC Compiler error browser allows you to display error objects grouped by type. Error objects can also be sorted or filtered by type. Error types can be declared to be in a type Chapter 1: create_drc_error_type 585 1-585 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 class. Error objects of a type in a type class receive the data interpretation that is specific to that type class. The nondefault type classes are open, openlocator, short, and spacing. To create an error type in a nondefault type class, use the -class option. The error type association with a type class is made when the error type is created, and cannot be changed. EXAMPLES The following example opens an error view named mydesign_mydrc.err and creates an error type named Overlap in the default type class: prompt> set cellId [open_mw_cel -not_as_current mydesign_mydrc.err] {mydesign_mydrc} prompt> create_drc_error_type -name Overlap \ -info "Metal and blockage overlap" -error_view $cellId 1024 The following example adds a type named "Via Spacing" that is in the spacing type class to an error view named mydesign_err.err: prompt> create_drc_error_type -name "Via Spacing" -class "spacing" \ -error_view "mydesign_err.err" \ -info "Via corner spacing" -error_view $cellId 1025 SEE ALSO list_drc_error_types(2) report_drc_error_type(2) create_drc_error(2) create_open_drc_error(2) create_open_locator_drc_error(2) create_short_drc_error(2) create_spacing_drc_error(2) get_drc_errors(2) create_drc_error_type 586 IC Compiler™ Tool Commands Version L-2016.03 create_edit_group Creates a new edit group from the specified objects. SYNTAX collection create_edit_group [-name string] objects ARGUMENTS -name string Specifies the optional name of the edit group. The name must be unique if specified. If you do not specify a name, the tool generates a unique name for the edit group. objects Specifies the collection of objects to be placed in the edit group. Objects are limited to those objects that are movable and do not already belong to another edit group. If any specified object is invalid, no edit group is created. DESCRIPTION Creates a new edit group from the specified objects. If the command completes successfully, a collection containing the created edit group is returned. EXAMPLES The following example creates an edit group from the current selection. prompt> set gr [create_edit_group [get_selection]] Chapter 1: create_edit_group 587 1-587 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 SEE ALSO get_edit_groups(2) remove_edit_groups(2) report_edit_groups(2) create_edit_group 588 IC Compiler™ Tool Commands Version L-2016.03 create_floorplan Creates a floorplan with a chip boundary, core, rows, and wire tracks. SYNTAX status create_floorplan [-control_type aspect_ratio | width_and_height | boundary] [-core_aspect_ratio ratio] [-core_utilization ratio] [-core_width width] [-core_height height] [-use_vertical_row] [-no_double_back] [-start_first_row] [-flip_first_row] [-left_io2core distance] [-right_io2core distance] [-bottom_io2core distance] [-top_io2core distance] [-keep_macro_place] [-keep_std_cell_place] [-min_pad_height] [-pad_limit] [-keep_io_place] Data Types ratio width height distance float float float float ARGUMENTS -control_type aspect_ratio | width_and_height | boundary Specifies how the command sizes the core area of the floorplan. The aspect_ratio control type specifies the area based on the ratio of the core height divided by the core width. The width_and_height control type specifies the area based on the true dimensions of the core. The boundary control type specifies the area based on the place and route boundary of the current design. The default control type is aspect_ratio. Chapter 1: create_floorplan 589 1-589 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -core_aspect_ratio ratio Specifies the aspect ratio for the floorplan. The aspect ratio is the height divided by the width. For example, an aspect ratio of 1.00 specifies a square core area with equal width and height. An aspect ratio of 3.00 specifies a height that is three times the width. An aspect ratio of 0.50 specifies a width that is two times the height. Note that the specified aspect ratio is only a target. The tool creates the floorplan with the actual core area perimeter as close as possible to the specified aspect ratio. -core_utilization ratio Specifies the utilization for the core area. The utilization is the total area of the core occupied by all standard cells and macro cells divided by the total core area. You can specify a utilization value between 0 and 1. The cell area includes all standard and macro cells. For example, a core utilization of 0.8 specifies that 80 percent of the core area is used for cell placement and 20 percent is available for routing. This option is only valid when you specify the -control_type option. -core_width width Specifies the width of the core area. The unit is in microns. This option is only valid when you specify the -control_type width_and_height option. -core_height height Specifies the height of the core area. The unit is in microns. This option is only valid when you specify the -control_type width_and_height option. -use_vertical_row Specifies that the command places cell rows vertically in the core area. If you do not specify this option, the command places cell rows horizontally in the core area. -no_double_back Specifies that the command places pairs of cell rows without flipping one row in each pair. By default, the command flips one cell row in each cell row pair. -start_first_row Specifies that cell row pairing begins at the bottom of the core area for horizontally placed cell rows or the left side of the core area for vertically placed cell rows. This option is mutually exclusive with the -no_double_back option. If this option is not used, cell row pairing might or might not begin at the very first row. The cell row pairing does not begin at the very first row when the wire track creation forces to have gaps between row pairs. create_floorplan 590 IC Compiler™ Tool Commands Version L-2016.03 -flip_first_row Specifies that the command flips the first row at the bottom of the core area for horizontally placed cell rows, or the leftmost row for vertically placed cell rows. This option is mutually exclusive with the -no_double_back option. -left_io2core distance Specifies the distance between the left side of the core area and the right side of the closest terminal or pad. The unit is in microns. -right_io2core distance Specifies the distance between the right side of the core area and the left side of the closest terminal or pad. The unit is in microns. -bottom_io2core distance Specifies the distance between the bottom side of the core area and the top side of the closest terminal or pad. The unit is in microns. -top_io2core distance Specifies the distance between the top side of the core area and the bottom side of the closest terminal or pad. The unit is in microns. -keep_macro_place Specifies that the command keeps the placement of macro cells and does not move them. -keep_std_cell_place Specifies that the command keeps the placement of standard cells and does not move them. -min_pad_height Specifies that the die area is based on the minimum pad height. Generally speaking, die area becomes smaller because bigger pads will overlap the core. -pad_limit Specifies that the command places pads with no space between pads. -keep_io_place Specifies that the command keeps the location of terminals and pads, even if you previously specified I/O constraints by using theread_io_constraints command. Chapter 1: create_floorplan 591 1-591 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 DESCRIPTION The create_floorplan command performs floorplanning on the current design. Before running this command, you must open a physical design by using the open_mw_cel command. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example creates a floorplan using the default settings: prompt> open_mw_cel top -lib design {top} prompt> create_floorplan -control_type aspect_ratio \ -core_utilization 0.7 1 SEE ALSO set_pad_physical_constraints(2) create_floorplan 592 IC Compiler™ Tool Commands Version L-2016.03 create_fp_block_shielding Creates signal shielding for plan groups and soft macros. SYNTAX status create_fp_block_shielding [-inside_boundary] [-outside_boundary] [-side_list {left | right | top | bottom}] [-metal_layers layer_list] [-shielding_width factor_or_distance] [-width_in_microns] [-tie_to_net net] [-block_level] [objects] Data Types layer_list factor_or_distance net objects collection float collection of one collection ARGUMENTS -inside_boundary Creates shielding on the inside of plan groups and/or soft macros. If you do not specify the -inside_boundary and -outside_boundary options, the command creates shielding on both the interior and exterior sides of the plan groups and/or soft macros. By default, this option is off (false). -outside_boundary Creates shielding on the outside of the plan groups and/or soft macros. If you do not specify the -inside_boundary and -outside_boundary options, the command creates shielding on both the interior and exterior sides of the plan groups and/or soft macros. By default, this option is off (false). -side_list {left | right | top | bottom} Indicates the sides on which to create shielding rectangles. By default, the command creates shielding on all sides of the plan groups and/or soft macros. In the case of a Chapter 1: create_fp_block_shielding 593 1-593 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 rectilinear boundary, all boundary edges which are along the top of the boundary (face up) will be shielded with "top" rectangles, and those edges which are along the left side (and face left) will be shielded with "left" shielding rectangles, etc. etc.. -metal_layers layer_list Specifies a layer object collection indicating the metal layers on which to create shielding. By default, the command determines the appropriate layers for shielding on each side. See the explanation in DESCRIPTION for detailed information on automatic layer selection by the command. -shielding_width factor_or_distance Specifies the factor or distance by which the shielding width is multiplied. The shielding width is determined by a metal layer's pitch, unless you use the -width_in_microns option, in which case the command interprets the value of factor_or_distance as an absolute distance in microns. By default, the factor_or_distance value is 3.0. -width_in_microns Interprets the value of the -shielding_width option as an absolute distance value in micron units. By default, this option is off (false). -tie_to_net net All shielding rectangles are tied logically to the single net represented by the net collection. This must be a single net (VSS, VSS1, GND, VDD, etc...) in the collection, that is, what would be returned by [get_nets -all {VSS}]. By default, all shielding rectangles are logically floating. -block_level This option is for creating block shielding from the inside of a soft macro cell opened for edit. This will only create shielding around the inside of the cell boundary outline. No shielding will be created outside of the cell boundary outline. The options -inside_boundary and -outside_boundary are meaningless and disregarded in the context of the use of this option. Also, the object_list object collection is meaningless and disregarded when this option is specified. All other options may be used in combination with this option. By default, this option is off (false). objects Specifies a collection of plan groups and/or soft macros on which to apply route blockages for signal integrity shielding. By default, the command processes all plan groups and soft macros. create_fp_block_shielding 594 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION This command creates signal shielding for plan groups and soft macros. The shielding is used to maintain signal integrity when routing a design. Shielding takes the form of metal rectangles around the boundary of a block. These rectangles are regular route metal rectangles, subject to all metal layer rules. When shielding would block access to pins along a side edge on the same layer as the shielding, the shielding is segmented to allow access to the pins. You can specify a list of plan groups/soft macros for the command to process. By default, it processes all plan groups/soft macros. The command can create shielding on the inside and/or outside of a plan group/soft macro. When the command creates inside shielding for soft macros, it is created at the child level. The command accepts a list of sides indicating on where to create shielding. By default, the command creates shielding on all sides, based on the rules provided below. You can specify the metal layers on which to create shielding. By default, the command creates shielding on each metal layer and uses each layer's preferred direction to determine on which sides to create the shielding. For example, if metal 2's preferred direction is horizontal, the command creates metal 2 blockage rectangle blockages on the top and bottom sides of the plan group/soft macro. The argument to this option is a collection of layer objects returned by the get_layer command (for example, [get_layer {metal1 metal2}]). You can specify the width of the shielding to the command. By default, the command uses a width of 3 times the route pitch for each respective metal layer. The pitch is multiplied by the multiplier that you specify by using the -shielding_width option or by the default multiplier of 3. You can flag the command to use an absolute width of microns instead of the multiplier by specifying the -width_in_microns option. The rectangles the command creates are marked in the database, so that they can be recognized for deletion by the remove_fp_block_shielding command. If it is desired for the shielding rectangles to be tied to a particular power or ground net, then the -tie_to_net option may be used to specify which power or ground net to use. This option may be used by passing a single net name or a net collection of 1, such as may be returned by the [get_nets -all {VSS}] command. This functionality only logically ties the rectangles to a particular power or ground net. It is beyond the scope of this option to physically connect to power or ground. To create shielding from inside of a soft macro that is opened in IC Compiler for edit, the -block_level option may be called to create block shielding around the inside of the opened-for-edit soft macro's inside cell outline boundary. Multicorner-Multimode Support This command has no dependency on scenario-specific information. Chapter 1: create_fp_block_shielding 595 1-595 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 EXAMPLES The following example creates metal route blockages (shielding) on the top and left interior sides on metal layers 2, 6, and 7. prompt> create_fp_block_shielding inside_boundary \ -side_list {top left} \ -metal_layers [get_layer {metal2 metal6 metal7}] The following example creates exterior metal route blockages (shielding) of width 5 microns on the specified list of soft macro and plan groups. This example allows the command to determine on which metal layers and sides to create shielding. prompt> create_fp_block_shielding -outside_boundary \ -shielding_width 5.0 -width_in_microns [get_cells \ {macro1 macro2 plan_group2 plan_group_8}] This example creates shielding rectangles on inside and outside boundaries of all plan groups and soft macros and assigns them to the ground net VSS. This example allows the command to determine on which metal layers and sides to create shielding. prompt> create_fp_block_shielding outside_boundary \ -tie_to_net [get_nets -all {VSS}] This example creates shielding rectangles on the inside of the cell boundary outline of the cell that is opened for edit. This example allows the command to determine on which metal layers and sides to create shielding. prompt> create_fp_block_shielding -block_level SEE ALSO get_layers(2) remove_fp_block_shielding(2) create_fp_block_shielding 596 IC Compiler™ Tool Commands Version L-2016.03 create_fp_blockages_for_child_hardmacro Creates routing blockages for hard macros within soft macros. SYNTAX status create_fp_blockages_for_child_hardmacro list_of_softmacros Data Types list_of_softmacros collection ARGUMENTS list_of_softmacros This is a collection of the soft macros which will be processed. If not supplied all soft macros will be processed. DESCRIPTION For each soft macro processed each hard macro within that soft macro will have a placement blockage created in the top level. This placement blockage will have the same boundary as the hard macro. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES Create placement blockages for hard macros in all soft macros. create_fp_blockages_for_child_hardmacro Chapter 1: create_fp_blockages_for_child_hardmacro 597 1-597 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_fp_group_block_ring Creates a block ring for a group of hard macro blocks. SYNTAX status create_fp_group_block_ring -nets nets [-horizontal_ring_layer layer] [-horizontal_ring_offset offset] [-horizontal_ring_spacing spacing] [-horizontal_ring_width width] [-vertical_ring_layer layer] [-vertical_ring_offset offset] [-vertical_ring_spacing spacing] [-vertical_ring_width width] [-horizontal_strap_width width] [-horizontal_strap_layer layer] [-vertical_strap_width width] [-vertical_strap_layer layer] [-output_directory directory] [-skip_strap] Data Types nets layer offset spacing width directory collection of list string float float float string ARGUMENTS -nets nets Specify the power or ground nets to perform group block ring creation. This is a required option. -horizontal_ring_layer layer Specify the horizontal ring layer, where the default is the top-most horizontal layer. create_fp_group_block_ring 598 IC Compiler™ Tool Commands Version L-2016.03 -horizontal_ring_offset offset Specify the horizontal ring offset in microns, where the offset is measured from the block boundary but not from the PNS region. The default is the minimum spacing between hard macro blocks and the ring defined in the technology file. -horizontal_ring_spacing spacing Specify the horizontal ring spacing in microns between power and ground nets. The default is minimum spacing defined in the technology file. -horizontal_ring_width width Specify the horizontal ring width in microns. The default is the minimum width defined in the technology file. -vertical_ring_layer layer Specify the vertical ring layer, where the default is the top-most vertical layer. -vertical_ring_offset offset Specify the vertical ring offset in microns, where the offset is measured from the block boundary but not from the PNS region. The default is the minimum spacing between hard macro blocks and the ring defined in the technology file. -vertical_ring_spacing spacing Specify the vertical ring spacing in microns between power and ground nets. The default is minimum spacing defined in the technology file. -vertical_ring_width width Specify the vertical ring width in microns. The default is the minimum width defined in the technology file. -horizontal_strap_width width Specify the horizontal strap width, where the default is the minimum width defined in the technology file. The straps are inserted inside the narrow regions between neighboring macro blocks. -horizontal_strap_layer layer Specify the horizontal strap layer, where the default is the top-most horizontal layer. -vertical_strap_width width Specify the vertical strap width, where the default is the minimum width defined in the technology file. The straps are inserted inside the narrow regions between neighboring macro blocks. Chapter 1: create_fp_group_block_ring 599 1-599 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -vertical_strap_layer layer Specify the vertical strap layer, where the default is the top-most vertical layer. -output_directory directory Specify the directory in which to store the group block ring creation results. The default is ./pna_output. -skip_strap Specify not to insert straps between hard macro blocks; only rings are created around the group of macro blocks. DESCRIPTION This command creates power and ground rings around a set of hard macro blocks with either rectangular or rectilinear boundaries. Straps are also inserted between neighboring blocks unless the -skip_strap option is specified. A PNS region must first be created by using the set_fp_rail_region_constraints command. This PNS region provides a guideline for the group block ring contour. For example, a rectilinear region is needed as a guideline if a rectilinear ring is desired for a group of hard macro blocks. The specified PNS region is first shrunk based on all hard macro blocks inside this region to obtain the group block boundary while maintaining the region topology. Next, a ring is created around the group block boundary. Channels between neighboring blocks are identified for strap insertion. The straps are inserted in the middle of each channel unless it is too narrow. Sandwich-type rings (multiple rings in one layer) are supported by specifying multiple nets, for example -net {VDD VDD VSS}. Straps in channels are still created as a pair of power and ground straps in this case. You can preview the group block ring result before actually committing the group block ring by using the commit_fp_group_block_ring command. Remove the PNS region constraint after group block ring creation and before power network synthesis. EXAMPLES The following example shows how to create power (VDD) ground (VSS) group block ring for those hard macro blocks inside the predefined PNS region. The rings are created on horizontal layer METAL5 with a ring width of 1.0 micron and an offset of 0.6 micron and on vertical layer METAL6 with a ring width of 1.0 micron and an offset of 0.6 microns. The create_fp_group_block_ring 600 IC Compiler™ Tool Commands Version L-2016.03 spacing between horizontal (or vertical) power and ground rings is 0.5 micron. The straps between neighboring blocks are created on horizontal layer METAL3 with a strap width of 0.5 micron and on vertical layer METAL4 with a strap width of 0.5 micron. prompt> create_fp_group_block_ring -nets {VDD VSS} -horizontal_ring_layer METAL5 -horizontal_ring_offset 0.6 -horizontal_ring_spacing 0.5 -horizontal_ring_width 1.0 -vertical_ring_layer METAL6 -vertical_ring_offset 0.6 -vertical_ring_spacing 0.5 -vertical_ring_width 1.0 -horizontal_strap_width 0.5 -horizontal_strap_layer METAL3 -vertical_strap_width 0.5 -vertical_strap_layer METAL4 SEE ALSO set_fp_rail_region_constraints(2) commit_fp_group_block_ring(2) Chapter 1: create_fp_group_block_ring 601 1-601 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_fp_pins Creates pins for the specified list of child ports, or creates plan group pins for the specified list of plan group hierarchical ports. SYNTAX collection create_fp_pins -layer layer [-side side_num_or_name] [-width width] [-step step_num] [-at location | -offset offset] ports Data Types layer side_num_or_name width step_num location offset ports layer string real integer point real collection ARGUMENTS -layer layer Specifies the layer name on which to create the pin. -side side_num_or_name Specifies a side number or name. If you do not specify the -side option, you must specify the -at option to create off-edge pins at or near the specified location. If the value specified is a number (not a name), then it must be a positive integer that starts from 1. Given any shape (rectangular or rectilinear), the lower left-most vertical edge is the starting edge (side number 1). The side number of the next edge, going clockwise, is 2, and so on. -width width Specifies the pin width of a pin to be created. create_fp_pins 602 IC Compiler™ Tool Commands Version L-2016.03 If user specifies a width that is smaller than the minimum width defined in the technology file, the tool will enlarge the pin width to honor minimum width rule in the technology file. At the same time, a warning will be issued to indicate that the pin width has been revised to honor the minimum width rule. The pin depth will be the same as the pin width, unless this value violates the minimum length or minimum area defined in the technology rule. In the latter case, the pin depth will be enlarged to honor both rules. -step step_num Specifies a wire track step for multiple pins to be created. The default is 1. -at location Specifies the location of the first pin to be created. For multiple off-edge pin creation, the first pin is located at the wiretrack intersection closest to the -at location, other pins are distributed clockwise around the first pin. The -at and -offset options are mutually exclusive. The location coordinate is the center of the pin. -offset offset Specifies the offset from the start of an edge. The -at and -offset options are mutually exclusive. The offset value is measured from the start point of the edge to the center of the pin. ports Specifies child ports or plan group hierarchical ports for which to create pins. The ports argument is a collection of pins. DESCRIPTION This command creates pins for the specified list of child ports or plan group hierarchical ports. Snapping is done automatically using global snap settings. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example creates pins for all child ports of soft macro u2_large on layer M1. Chapter 1: create_fp_pins 603 1-603 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 prompt> set pins [get_pins -of [get_cell u2_large]] prompt> set layer [get_layer M1] prompt> create_fp_pins -side 1 -layer $layer -offset 10 $pins The following example creates plan group pin plangroup1/p1 for hierarchical port p1 on the plangroup1 plan group on the metal3 layer with a width of 0.24 at location {100.00 100.00}. prompt> set pins [get_pins plangroup1/p1] prompt> set layer [get_layer metal3] prompt> create_fp_pins -layer $layer -at {100.00 100.00} -width 0.24 $pins SEE ALSO get_nets(2) get_pins(2) create_fp_pins 604 IC Compiler™ Tool Commands Version L-2016.03 create_fp_placement Places hard macros and leaf cells. SYNTAX status create_fp_placement [-effort low | high] [-max_fanout positive_integer] [-no_hierarchy_gravity] [-no_legalize] [-incremental placement_string] [-congestion_driven] [-timing_driven] [-num_cpus number_of_cpus] [-plan_groups collection_of_plan_groups] [-voltage_areas collection_of_voltage_areas] [-optimize_pins] [-consider_scan] [-write_placement_blockages] [-exploration] Data Types positive_integer placement_string number_of_cpus collection_of_plan_groups collection_of_voltage_areas integer string integer collection collection ARGUMENTS -effort low | high Sets the level of effort to apply to creating the virtual flat placement. Use this option to tradeoff the quality of virtual flat placement results (QoR) and the amount of CPU runtime spent performing a flat placement. Valid values for this option are low and high. For fast results that provide good, nonoverlapping hard macro locations, set the effort to low. For higher quality placement, but with an increase in CPU runtime, set the effort to high. The default is low. Chapter 1: create_fp_placement 605 1-605 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -max_fanout positive_integer Specifies that placement ignores nets having a fanout higher than the number specified by positive_integer. The wire length of nets with a fanout greater than the specified value are not considered in placement. The default is 512. -no_hierarchy_gravity Prevents the grouping of cells within the same hierarchal block. The default is to group together cells of the same hierarchal block. In general, grouping by using hierarchy gravity results in better placement because designs tend to partition well along the hierarchy boundaries. However, you can specify -no_hierarchy_gravity if you know that the partitioning by hierarchy should be prevented. -no_legalize Creates a placement that is not legalized. The default is to create a legalized placement. -incremental placement_string Performs an incremental placement of the current placement. The valid values are all, top_level_cells, plan_groups, and voltage_areas. Use all to perform an incremental placement on the entire design. Use top_level_cells to run an incremental placement on top-level cells that do not belong to any plan group or voltage area. Use the plan_groups keyword together with the -plan_groups option to perform incremental placement to the cells within the specified plan groups. Use voltage_areas together with the -voltage_areas option to perform incremental placement to cells within the specified voltage areas. The default is for the command to run placement without using previous placement results. -congestion_driven Enables congestion-driven placement mode. By default, the command runs with congestion-driven placement mode off. -timing_driven Enables timing-driven placement mode. By default, the command runs with timing-driven placement mode off. -num_cpus number_of_cpus Specifies the number of CPUs used in parallel during coarse placement. The number_of_cpus is an integer value that is less than or equal to the number of free CPUs on your machine and greater than or equal to 1. By default, the command uses 1 CPU. Only one IC Compiler-PSYN license is checked out. create_fp_placement 606 IC Compiler™ Tool Commands Version L-2016.03 -plan_groups collection_of_plan_groups Refines the placement for the specified plan groups. This option is valid only for plan groups placed inside the core area when you specify the -incremental plan_groups option. -voltage_areas collection_of_voltage_areas Performs refine placement for the specified voltage areas. This option is valid only for voltage areas placed inside the core area when you specify the -incremental voltage_areas option. -optimize_pins Performs simultaneous placement and pin assignment for block level designs. When you specify this option, IC Compiler performs two iterations of placement and pin assignment to obtain the best quality placement and pin assignment. -consider_scan Considers scan chain connections during placement. -write_placement_blockages Writes all the internally-computed blockages during placement to a file named design_planning_blockages.tcl in the working directory. The file includes blockages due to channels that are narrower than the sliver size and macro padding blockages. If the design_planning_blockages.tcl file already exists in the working directory, it is overwritten. -exploration Performs very fast placement intended for hierarchical floorplan exploration. The goal of this placement is to provide good initial locations of hierarchies during the flat placement stage and good quality placement of the top level, interface and macros cells during the hierarchical placement stage when plan groups are in the core. All other cells are placed very coarsely. Placement is not legalized. This option is incompatible with the -timing_driven, -congestion_driven and -incremental options. DESCRIPTION This command performs a virtual flat placement of standard cells and hard macros. It provides you with an initial placement for creating a floorplan to determine the relative locations and shapes of the top-level physical blocks of a flat design with no placed plan groups or voltage areas. For designs with plan groups or voltage areas placed, it provides you with a refined placement that honors the exclusive plan groups and voltage areas. Chapter 1: create_fp_placement 607 1-607 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 When you use the -optimize_pins option, the result is a virtual flat placement as described above, and a pin assignment that respects the pin constraints. In this mode, the placer understands the pin constraints such as side constraints. The overall quality of placement and pin assignment is better than running each placement separately. Use this option at the block level, not at the chip level or with I/O pads. To further control how the tool performs course placement, set the placer_max_cell_density_threshold variable. The variable specifies whether cells are evenly distributed or more tightly clustered together. Support for Relative Placement Groups This command places relative placement groups. Both macros and standard cells are supported in the relative placement groups. For more information about relative placement groups, see the man page for the create_rp_group command. Multicorner-Multimode Support This command uses information from all active scenarios. EXAMPLES The following example command creates congestion-driven placement. prompt> create_fp_placement -congestion_driven SEE ALSO set_fp_placement_strategy(2) report_fp_placement(2) set_fp_macro_options(2) set_fp_macro_array(2) create_rp_group(2) add_to_rp_group(2) placer_max_cell_density_threshold(3) create_fp_placement 608 IC Compiler™ Tool Commands Version L-2016.03 create_fp_plan_group_padding Creates padding for the specified plan groups. SYNTAX status create_fp_plan_group_padding [-internal_widths {left right top bottom}] [-external_widths {left right top bottom}] [plan_groups] Data Types left right top bottom plan_groups float float float float collection or list ARGUMENTS -internal_widths {left right top bottom} Specifies the explicit per-side widths of the internal paddings in microns. You can use this option if you want to specify non-uniform internal padding widths. Specify all 4 sides in the indicated sequence. By default, this option is {1 1 1 1}. -external_widths {left right top bottom} Specifies the explicit per-side widths of the external paddings in microns. You can use this option if you want to specify non-uniform external padding widths. Specify all 4 sides in the indicated sequence. By default, this option is {0 0 0 0}. plan_groups Applies padding to the specified plan groups. By default, the tool applies padding to all plan groups in the current design. DESCRIPTION This command performs plan group padding, which sets placement blockages on the internal and external edges of the boundary. The internal padding is equivalent to the Chapter 1: create_fp_plan_group_padding 609 1-609 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 core-to-boundary spacing of the committed block. External padding is equivalent to macro padding. Internal padding should be set to at least 1 on all blocks to allow room for pins and pin routing. You can use the -internal_widths and -external_widths options to create non-uniform padding widths on a per-side basis. All values are in microns. To remove plan group padding, use the remove_fp_plan_group_padding command. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example creates internal plan group padding on a per-side basis: prompt> create_fp_plan_group_padding\ -internal_widths {2 3 4 5}\ -external_widths {6 7 8 9} SEE ALSO remove_fp_plan_group_padding(2) create_fp_plan_group_padding 610 IC Compiler™ Tool Commands Version L-2016.03 create_fp_virtual_pad Creates virtual power or ground pads for power network analysis and power network synthesis. SYNTAX status create_fp_virtual_pad [-nets nets] [-layer layer] [-point {x y}] [-load_file pad_file] [-save_file output_pad_file] Data Types nets layer x y pad_file output_pad_file collection string float float string string ARGUMENTS -nets nets Specifies the name of the power or ground nets on which to perform network analysis. You can specify only one net at a time. -layer layer Specifies the layer name of a pad that you want to create. -point {x y} Specifies a virtual pad point {x y} to place. The x and y values are float numbers. Units are microns. -load_file pad_file Specifies the file name containing a list of virtual power pads. Chapter 1: create_fp_virtual_pad 611 1-611 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -save_file output_pad_file Specifies the file name to save virtual power pads. DESCRIPTION Creates virtual power or ground pads based on the specified net or based on the contents of the virtual pads file. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following command creates virtual pads based on the net names contained in the file named pads.txt prompt> create_fp_virtual_pad -load_file pads.txt SEE ALSO create_fp_virtual_pad 612 IC Compiler™ Tool Commands Version L-2016.03 create_freeze_silicon_leq_change_list Maps ECO cells that do not have a matching spare cell to logically equivalent spare cells and writes out an ECO change list for these cells. This command can be used only in a freeze silicon ECO flow. SYNTAX status create_freeze_silicon_leq_change_list -cells sorted_eco_cells -output leq_file_name [-vth_groups vth_group_list | -drive_strength higher | lower] Data Types sorted_eco_cells leq_file_name vth_group_list collection string list ARGUMENTS -cells sorted_eco_cells Specifies the ECO cells to map to logically equivalent spare cells. The specified ECO cells must have an eco_status attribute of eco_add. The order in which you specify the ECO cells sets the priority of the ECO cell to spare cell mapping. This is a required option. -output leq_file_name Specifies the name of the generated ECO change list file. This is a required option. -vth_groups vth_group_list Maps to spare cells in the specified threshold voltage groups. If there are several spare cells available with a threshold voltage in the specified groups, the tool chooses the spare cell closest to the ECO cell. Chapter 1: create_freeze_silicon_leq_change_list 613 1-613 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 This option is mutually exclusive with the -drive_strength option; you can specify only one. If you do not specify either option, the tool selects the closest logially equivalent spare cell. -drive_strength higher | lower Maps to spare cells with higher or lower driver strength. If there are several spare cells available, the tool chooses the spare cell closest to the ECO cell. This option is mutually exclusive with the -vth_groups option; you can specify only one. If you do not specify either option, the tool selects the closest logially equivalent spare cell. DESCRIPTION The create_freeze_silicon_leq_change_list command first runs a fast placement of the ECO cells and then maps the ECO cells that do not have a matching spare cell to logically equivalent spare cells and writes out an ECO change list for these cells. The default mapping cost is distance. To change the mapping cost, use the -vth_groups or -drive_strength option. This command is used in user-driven freeze silicon QoR tuning flow. The typical usage is as follows: 1. Apply the ECO changes. 2. Analyze the ECO cells and spare cells by using the check_freeze_silicon command. 3. Map the ECO cells that do not have exactly matching spare cells to logically equivalent spare cells and generate a change list file by using the create_freeze_silicon_leq_change_list command. 4. Apply the change list by using the source or eco_netlist command. 5. Get the modified ECO cells. 6. Map the ECO cells to spare cells by using the place_freeze_silicon command. You can use the -vth_groups or -drive_strength option to find alternative logically equivalent spare cells that have a different threshold voltage or driver strength, respectively, based on your timing requirements. This command does not support gate array ECO cells. PREREQUISITES Before running this command, you must apply the ECO changes and insert and place the spare cells. create_freeze_silicon_leq_change_list 614 IC Compiler™ Tool Commands Version L-2016.03 Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example shows the usage of the command. prompt> create_freeze_silicon_leq_change_list -cells $sorted_eco_cells \ -output leq.tcl prompt> source leq.tcl prompt> set modified_eco_cells \ [get_cells -hier -filter "eco_status==eco_add"] prompt> place_freeze_silicon -trial_map_spare_cells \ -cells $modified_eco_cells prompt> place_freeze_silicon -map_spare_cells_only The following example shows a generated change list file. ****************************************************************** # ICC create_freeze_silicon_leq_change_list leq change list # Design : CORE # Version: G-2012.06-SP4 # Date : Mon Sep 24 20:45:23 2012# ****************************************************************** ################# # Cell cell_inst ################ #map reference: NAND2 to module: NAND2_leq # #Verilog equivalent: # module NAND2_leq ( A, B, X ) ; # input A, B; # output X; # wire n; # AND2 leq_cell_1 ( .A(A), .B(B), .X(n) ); # INV2 leq_cell_2 ( .A(n), .X(X) ); #endmodule remove_cell freeze_silicon cell_inst create_cell hier cell_inst NAND2_leq current_instance cell_inst create_port dir “in” { A, B } create_port dir “out” { X } create_cell freeze_silicon leq_cell_1 AND2 create_cell freeze_silicon leq_cell_2 INV2 create_net { A, B, X, n } connect_net A { A leq_cell_1/A } connect_net B { B leq_cell_1/B } connect_net X { leq_cell_2/X } connect_net n { leq_cell_1/X, leq_cell_2/A } current_instance connect_net $org_net_A cell_inst/A Chapter 1: create_freeze_silicon_leq_change_list 615 1-615 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 connect_net $org_net_B cell_inst/B connect_net $org_net_X cell_inst/X ###################### # Cell $instance_name2 ###################### ... The following example shows the usage of the -vth_groups and -drive_strength options. prompt> create_freeze_silicon_leq_change_list -cells $eco_cells \ -output leq_vth_higher.tcl -vth_groups high_vth prompt> create_freeze_silicon_leq_change_list -cells $eco_cells \ -output leq_ds_higher.tcl -drive_strength higher SEE ALSO place_freeze_silicon(2) map_freeze_silicon(2) check_freeze_silicon(2) create_freeze_silicon_leq_change_list 616 IC Compiler™ Tool Commands Version L-2016.03 create_generated_clock Creates a generated clock object. SYNTAX string create_generated_clock [-name clock_name] [-add] source_objects -source master_pin [-master_clock clock] [-divide_by divide_factor | -multiply_by multiply_factor] [-duty_cycle percent] [-invert] [-preinvert] [-edges edge_list] [-edge_shift edge_shift_list] [-combinational] [-comment comment_string] Data Types clock_name source_objects master_pin clock divide_factor multiply_factor percent edge_list edge_shift_list comment_string string list list string integer integer float list list string ARGUMENTS -name clock_name Specifies the name of the generated clock. If you do not use this option, the clock receives the same name as the first clock source specified in the -source option. If you specify the -add option, you must use the -name option and the clocks with the same source must have different names. Chapter 1: create_generated_clock 617 1-617 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -add Specifies whether to add this clock to the existing clock or to overwrite. Use this option to capture the case where multiple generated clocks must be specified on the same source, because multiple clocks fan into the master pin. Ideally, one generated clock must be specified for each clock that fans into the master pin. If you specify this option, you must also use the -name option. Defining multiple clocks on the same source pin or port causes longer runtime and higher memory usage than a single clock, because the synthesis timing engine explores all possible combinations of launch and capture clocks. Use the set_false_path command to disable unwanted clock combinations. This option is ignored by default, unless multiple clocks analysis is enabled by setting the timing_enable_multiple_clocks_per_reg variable to true. source_objects Specifies a list of ports or pins defined as generated clock source objects. -source master_pin Specifies the master clock pin, which is either a master clock source pin or a pin in the fanout of the master clock and driving the generated clock definition pin. The clock waveform at the master pin is used for deriving the generated clock waveform. -master_clock clock Specifies the master clock to be used for this generated clock if multiple clocks fan into the master pin. -divide_by divide_factor Specifies the frequency division factor. If the divide_factor is 2, the generated clock period is twice as long as the master clock period. -multiply_by multiply_factor Specifies the frequency multiplication factor. If the multiply_factor is 3, the period is one third as long as the master clock period. -duty_cycle percent Specifies the duty cycle (in percent), if frequency multiplication is used. This is a number between 0 and 100. The duty cycle is the high pulse width. -invert Inverts the generated clock signal regardless of whether the sense of the source clock on the master pin is unate or non-unate (in case of frequency multiplication and division). create_generated_clock 618 IC Compiler™ Tool Commands Version L-2016.03 -preinvert Creates a generated clock based on the inverted clock signal only when the source clock on the master pin has a non-unate sense, or the generated clock will not be inverted just as this option has not been specified. The difference between the -invert option and the -preinvert option is that the -invert option first creates the generated clock, then inverts the signal, and the -preinvert option first inverts the signal, and then creates the generated clock signal. -edges edge_list Specifies a list of positive integers that represents the edges from the source clock that are to form the edges of the generated clock. The edges are interpreted as alternating rising and falling edges and each edge must be not less than its previous edge. The number of edges must be an odd number and not less than 3 to make one full clock cycle of the generated clock waveform. The first edge must be greater than or equal to 1. For example, 1 represents the first source edge, 2 represents the second source edge, and so on. -edge_shift edge_shift_list Specifies a list of floating-point numbers that represents the amount of shift, in library time units, that the specified edges are to undergo to yield the final generated clock waveform. The number of edge shifts specified must be equal to the number of edges specified. The values can be positive or negative, with positive indicating a shift later in time, and negative a shift earlier in time. For example, 1 indicates that the corresponding edge is to be shifted by 1 library time unit. -combinational Specifies that the source latency paths for this type of generated clock only includes the logic where the master clock propagates along combinational paths. The source latency paths will not flow through sequential element clock pins, transparent latch data pins, or the source pins of other generated clocks. -comment comment_string Allows the command to accept a comment string. The tool honors the annotation and preserves it with the SDC object so that the exact string is written out when the constraint is written out when you use the write_sdc or write_script command. The comment remains intact through the synthesis, place-and-route, and timing-analysis flows. DESCRIPTION The create_generated_clock command creates a generated clock object in the current design. This command defines a list of objects as generated clock sources in the current Chapter 1: create_generated_clock 619 1-619 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 design. You can specify a pin or a port as a generated clock object. The command also specifies the clock source from which it is generated. The advantage of using this command is that whenever the master clock changes, the generated clock changes automatically. The generated clock can be created as a frequency-divided clock with the -divide_by option, a frequency-multiplied clock with -multiply_by, or an edge-derived clock with -edges. In addition, the frequency-divided or frequency-multiplied clock can be inverted with the -invert option. The shifting of edges of the edge-derived clock is specified with the -edge_shift option. The -edge_shift option is used for intentional edge shifts and not for clock latency. If a generated clock is specified with a divide_factor that is a power of 2 (1, 2, 4, ...), the rising edges of the master clock are used to determine the edges of the generated clock. If the divide_factor is not a power of 2, the edges are scaled from the master clock edges. Using create_generated_clock on an existing generated_clock object overwrites the attributes of the generated_clock object. The generated_clock objects are expanded to real clocks at the time of analysis. The following commands can reference the generated_clock: set_clock_latency set_clock_uncertainty set_propagated_clock set_clock_transition To display information about generated clocks, use the report_clock command. Multicorner-Multimode Support This command uses information from the current scenario only. EXAMPLES The following example creates a frequency -divide_by 2 generated clock: prompt> create_generated_clock -divide_by 2 \ -source CLK [get_pins test] The following example creates a frequency -divide_by 3 generated clock. If the master clock period is 30, and the master waveform is {24 36}, the generated clock period is 90 with waveform {72 108}. prompt> create_generated_clock -divide_by 3 \ -source CLK [get_pins div3/Q] create_generated_clock 620 IC Compiler™ Tool Commands Version L-2016.03 The following example creates a frequency -multiply_by 2 generated clock with a duty cycle of 60%: prompt> create_generated_clock -multiply_by 2 \ -duty_cycle 60 -source CLK [get_pins test1] The following example creates a frequency -multiply_by 3 generated clock with a duty cycle equal to the master clock duty cycle. If the master clock period is 30, and the master waveform is {24 36}, the generated clock period is 10 with waveform {8 12}. prompt> create_generated_clock -multiply_by 3 \ -source CLK [get_pins div3/Q] The following example creates a generated clock whose edges are edges 1, 3, and 5 of the master clock source. If the master clock period is 30, and the master waveform is {24 36}, the generated clock period is 60 with waveform {24, 54}. prompt> create_generated_clock -edges {1 3 5} \ -source CLK [get_pins test2] The following example shows the generated clock in the previous example with each derived edge shifted by 1 time unit. If the master clock period is 30, and the master waveform is {24 36}, the generated clock period is 60 with waveform {25, 55}. prompt> create_generated_clock -edges {1 3 5} \ -edge_shift {1 1 1} -source CLK [get_pins test2] The following example creates an inverted clock: prompt> create_generated_clock -divide_by 2 -invert SEE ALSO check_timing(2) create_clock(2) get_generated_clocks(2) remove_generated_clock(2) report_clock(2) set_clock_latency(2) set_clock_transition(2) set_clock_uncertainty(2) set_propagated_clock(2) timing_enable_multiple_clocks_per_reg(3) Chapter 1: create_generated_clock 621 1-621 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_lib_track Creates wire tracks for a library. SYNTAX status create_lib_track [-lib lib_name] [-tile tile_name] [-dir dir_list] [-offset offset_list] Data Types lib_name tile_name dir_list offset_list string string list list ARGUMENTS -lib lib_name Specify library where wire track is created. If not specified, the wire tracks will be created in current open library. -tile tile_name Specifies the tile where the wire track information is stored. Default value is "unit" and therefore the information will stored in unitTile.CEL. -dir dir_list Specifies preferred routing direction for each routing layer one by one. The list is enclosed in parenthesis {}. The format is -dir {poly V/H metal1 V/H metal2 V/H ...} Where 'V' for "vertical"and 'H' for"horizontal". Both mask name and user-defined layer name of routing layers can be used in the list. -offset offset_list Specifies offset for each routing layer one by one. The list is enclosed in parenthesis {}. The format is -offset {poly value metal1 value metal2 value ...} The unit of value is micron. Both mask name and user-defined layer name of routing layers can be used in the list. create_lib_track 622 IC Compiler™ Tool Commands Version L-2016.03 DESCRIPTION This command creates wire tracks for a library. If some routing directions or offsets in routing layers and poly layer are not set, Default value will be used. Incremental setting mode is supported. The recommended value of offset is one half of the pitch. A status indicating success or failure is returned. Multicorner-Multimode Support This command has no dependency on scenario-specific information. EXAMPLES The following example sets routing directions and offset for opened library "design", which has 9 routing layers. unitTile will store the wire track information. prompt> open_mw_lib design prompt> create_lib_track -dir {poly metal3 H metal4 V metal5 H metal6 V metal9 H} -offset {poly 0.00 metal1 metal3 0.14 metal4 0.14 metal5 0.14 metal8 0.14 metal9 0.14 1 V metal1 H metal2 V \ metal7 H metal8 V \ 0.14 metal2 0.16 \ metal6 0.14 metal7 0.14 \ SEE ALSO create_mw_lib(2) open_mw_lib(2) Chapter 1: create_lib_track 623 1-623 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 create_logic_net IC Compiler parses, but ignores, this command. SYNTAX status create_logic_net net_name Data Types net_name string ARGUMENTS net_name Specifies the name of the net to create. You must use a simple name. DESCRIPTION This command has no function in IC Compiler. It is parsed in the UPF file, but ignored. Multicorner-Multimode Support This command has no dependency on scenario-specific information. SEE ALSO create_net(2) create_logic_port(2) connect_logic_net(2) create_logic_net 624 IC Compiler™ Tool Commands Version L-2016.03 create_logic_port IC Compiler parses, but ignores, this command. SYNTAX string create_logic_port port_name [-direction in | out | inout] Data Types port_name string ARGUMENTS port_name Specifies the name of the port to create. You must use a simple name. -direction in | out | inout Specifies the direction of the port. The default is in. DESCRIPTION This command has no function in IC Compiler. It is parsed in the UPF file, but ignored. Multicorner-Multimode Support This command has no dependency on scenario-specific information. SEE ALSO create_port(2) create_logic_net(2) connect_logic_net(2) Chapter 1: create_logic_port 625 1-625 IC IC Compiler™ Compiler™ Tool Tool Commands Commands create_logic_port L-2016.03 Version L-2016.03 626 IC Compiler™ Tool Commands Version L-2016.03 create_macro_fram Creates a FRAM view of a macro cell by extracting blockage, pin, and via information from the CEL view. SYNTAX status create_macro_fram [-library_name library_name] [-cell_name cell_name] [-preserve_all_metal_blockage] [-routing_blockage_output_layer metBlk | rGuide | zeroG] [-treat_all_blockage_as_thin_wire] [-treat_metal_blockage_as_thin collection_of_layers] [-extract_blockage_by_block_core_with_margin {layer_and_margin_value_pairs}] [-extract_blockage_by_merge_with_threshold {layer_thresholdtriplets}] [-identify_macro_pin_by_pin_text] [-extract_pin_connectivity_through collection_of_layers] [-poly_pin_text_layers {list_of_layers}] [-m1_pin_text_layers {list_of_layers}] [-m2_pin_text_layers {list_of_layers}] [-m3_pin_text_layers {list_of_layers}] [-m4_pin_text_layers {list_of_layers}] [-m5_pin_text_layers {list_of_layers}] [-m6_pin_text_layers {list_of_layers}] [-m7_pin_text_layers {list_of_layers}] [-m8_pin_text_layers {list_of_layers}] [-m9_pin_text_layers {list_of_layers}] [-m10_pin_text_layers {list_of_layers}] [-m11_pin_text_layers {list_of_layers}] [-m12_pin_text_layers {list_of_layers}] [-m13_pin_text_layers {list_of_layers}] [-m14_pin_text_layers {list_of_layers}] [-m15_pin_text_layers {list_of_layers}] [-nwell_pin_text_layers {list_of_layers}] [-pwell_pin_text_layers {list_of_layers}] [-deep_nwell_pin_text_layers {list_of_layers}] [-deep_pwell_pin_text_layers {list_of_layers}] [-bm1_pin_text_layers {list_of_layers}] [-bm2_pin_text_layers {list_of_layers}] [-bm3_pin_text_layers {list_of_layers}] [-pin_must_connect_area_layer_number {layer_and_number_name_pairs}] [-auto_pin_must_connect_area_threshold {layer_and_threshold_pairs}] [-extract_via_within_pin_area_only] [-extract_via_on_layer collection_of_layers] [-feedthrough_layers {layer_and_number_name_pairs}] [-create_mask_constraint_route_guides true | false] Chapter 1: create_macro_fram 627 1-627 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 Data Types library_name cell_name collection_of_layers layer_and_margin_value_pairs list_of_layers layer_and_number_name_pairs layer_and_threshold_pairs string string collection list list list list ARGUMENTS -library_name library_name Specifies the name of the library containing the macro cell. If this option is not used, then the currently open library is used. -cell_name cell_name Specifies the name of the macro cell for which to create a FRAM view. The CEL view must already exist in the library. If this option is not used, then the currently open cell is used. -preserve_all_metal_blockage Preserves all system metal blockage layers as they exist in the CEL view and converts all system metal blockage layers to real metal layers. By default, the extraction process trims system metal blockages around pins as needed to prevent design rule violations. Using this option, the system metal blockages are retained exactly, so be sure that the preserved system metal blockages do not violate the design rules. -routing_blockage_output_layer metBlk | rGuide | zeroG Specifies the type of output layer produced in the FRAM view to represent routing blockages: metBlk (system metal blockage), rGuide (route guide), or zeroG (zero spacing route guide). The router recognizes all three types of layers as blockage and will not route over them. The default output layer is metBlk (system metal blockage). The router treats system metal blockage as thin metal for all design rule checking. -treat_all_blockage_as_thin_wire This option works only for non-standard cells. It causes real metal blockages to be treated as thin wire for design rule checking purposes. By default, real metal blockages are treated as fat wire if fat or thin wire if thin. The spacing rules can be different for thin versus fat wire, which affects the spacing required between routes and real metal blockages. This option setting also affects the trimming of real metal blockages during extraction. The extraction process trims real metal blockages around pin areas to allow create_macro_fram 628 IC Compiler™ Tool Commands Version L-2016.03 connections to be routed to the pins without violating the spacing to the real metal blockage areas. -treat_metal_blockage_as_thin collection_of_layers Use this option when system metal blockage covers all of the cell in a specific layer and you want the router to keep a spacing of at least minSpacing between the route wire and the macro cell boundary in that layer. With this option, the command shrinks the system metal blockage by (max value in fatTblSpacing) - (minSpacing) and converts it to real metal blockage. This option still treats the real metal blockage as fat metal but reshapes the real metal blockage to cause the router to keep a spacing of at least minSpacing between the route wire and the macro cell boundary in that layer. These are the mask layers that can specified in this option: poly m1 m2 m3 ... m15 -extract_blockage_by_block_core_with_margin {layer_and_margin_value_pairs} Causes each specified layer to be extracted with a core blockage that covers the whole macro area for that layer, with a specified margin between the blockage area and the macro cell boundary. The extraction process trims back the blockage away from pins in the same layer, leaving space between the pins and blockage according to the spacing rule for that layer, treated as either thin or fat wire, depending on the related option settings. Specify each layer name with a single value as in the following example: {poly 0 m1 -1 m2 0 m3 0.45 ... } The value for each layer can be -1, 0, or a positive number. The value -1 means do not create a core blockage; this is the same as omitting the layer name from the list. The number 0 means use the default margin, which is calculated as twice the spacing value defined for the layer in the technology file. (This spacing value is the largest of the following values in the technology file: MinSpacing, fatThinMinSpacing, and the largest value in the fatTblSpacing table.) A positive number sets the margin explicitly to that value. The margin is the distance between the blockage and the macro boundary. These are the mask layers that can specified in this option: poly m1 m2 m3 ... m15 If neither -extract_blockage_by_block_core_with_margin nor -extract_blockage_by_merge_with_threshold is used to specify the type of blockage to generate for a layer, the command creates a core blockage that covers the whole Chapter 1: create_macro_fram 629 1-629 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 macro area for that layer, except for the trimming of blockage away from pins in the same layer according to the spacing rules for the layer. This type of blockage extraction is called "Block All". -extract_blockage_by_merge_with_threshold {layer_thresholdtriplets} Causes each specified layer to be extracted as it exists in the CEL view, but with merging of geometries that are close together. If two nearby geometries are within the specified spacing threshold, the extraction process fills in the space between the two shapes, thereby creating a single larger shape for the blockage in the FRAM view. Specify each layer name with two values. The first value is the X (horizontal) spacing threshold and the second value is the Y (vertical) spacing threshold. For example, {m1 3 3 m2 4 4 m3 4 4 ... } One possible value to use for the spacing thresholds is (2*MinSpacing + MinWidth), which is the narrowest space that could allow a single route to pass between two shapes in that layer. If both thresholds are set to zero for a layer, the geometries are extracted as they exist in the CEL view without merging. These are the mask layers that can specified in this option: poly m1 m2 m3 ... m15 -identify_macro_pin_by_pin_text Identifies macro pins by considering the text layers associated with the pin layers. By default, when this option is not used, the extraction process assumes that the macro cell was created by Synopsys tools and already contains pin data. When this option is used, the following create_macro_fram command options are also used to further specify the pin extraction process: -extract_pin_connectivity_through -poly_pin_text_layers -m1_pin_text_layers -m2_pin_text_layers -m3_pin_text_layers ... -m15_pin_text_layers -nwell_pin_text_layers -pwell_pin_text_layers -deep_nwell_pin_text_layers -deep_pwell_pin_text_layers -bm1_pin_text_layers -bm2_pin_text_layers -bm3_pin_text_layers Otherwise, these options have no effect. create_macro_fram 630 IC Compiler™ Tool Commands Version L-2016.03 -extract_pin_connectivity_through collection_of_layers Specifies the cut layers through which to extract pin connectivity. Using this option causes the command to traverse connectivity through the specified cut and via layers to identify connections between pins on different layers. By default, the tool does not traverse connectivity through cut layers. These are the mask layers that can specified in this option: polyCont v1 v2 v3 ... v14 bv1 bv2 -poly_pin_text_layers {list_of_layers} Specifies the text layers associated with poly-silicon pins. If the pin text is on the same layer as the pin geometry, you do not need to use this option. However, if the pin text is on one or more layers different from the pin geometry layer, use this option to identify the associated text layers. The layers can be identified by the layer name or layer number. -m1_pin_text_layers {list_of_layers} Specifies the text layers associated with m1 pins. If the pin text is on the same layer as the pin geometry, you do not need to use this option. However, if the pin text is on one or more layers different from the pin geometry layer, use this option to identify the associated text layers. The layers can be identified by the layer name or layer number. -m2_pin_text_layers {list_of_layers} Specifies the text layers associated with m2 pins. -m3_pin_text_layers {list_of_layers} Specifies the text layers associated with m3 pins. -m4_pin_text_layers {list_of_layers} Specifies the text layers associated with m4 pins. -m5_pin_text_layers {list_of_layers} Specifies the text layers associated with m5 pins. -m6_pin_text_layers {list_of_layers} Specifies the text layers associated with m6 pins. -m7_pin_text_layers {list_of_layers} Specifies the text layers associated with m7 pins. -m8_pin_text_layers {list_of_layers} Specifies the text layers associated with m8 pins. Chapter 1: create_macro_fram 631 1-631 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -m9_pin_text_layers {list_of_layers} Specifies the text layers associated with m9 pins. -m10_pin_text_layers {list_of_layers} Specifies the text layers associated with m10 pins. -m11_pin_text_layers {list_of_layers} Specifies the text layers associated with m11 pins. -m12_pin_text_layers {list_of_layers} Specifies the text layers associated with m12 pins. -m13_pin_text_layers {list_of_layers} Specifies the text layers associated with m13 pins. -m14_pin_text_layers {list_of_layers} Specifies the text layers associated with m14 pins. -m15_pin_text_layers {list_of_layers} Specifies the text layers associated with m15 pins. -nwell_pin_text_layers {list_of_layers} Specifies the text layers associated with N-well bias Power/Ground pins. If the pin text is on the same layer as the pin geometry, you do not need to use this option. However, if the pin text is on one or more layers different from the pin geometry layer, use this option to identify the associated text layers. The layers can be identified by the layer name or layer number. -pwell_pin_text_layers {list_of_layers} Specifies the text layers associated with P-well bias Power/Ground pins. -deep_nwell_pin_text_layers {list_of_layers} Specifies the text layers associated with deep N-well bias Power/Ground pins. -deep_pwell_pin_text_layers {list_of_layers} Specifies the text layers associated with deep P-well bias Power/Ground pins. -bm1_pin_text_layers {list_of_layers} Specifies the text layers associated with bm1 (backside metal 1) pins. create_macro_fram 632 IC Compiler™ Tool Commands Version L-2016.03 -bm2_pin_text_layers {list_of_layers} Specifies the text layers associated with bm2 (backside metal 2) pins. -bm3_pin_text_layers {list_of_layers} Specifies the text layers associated with bm3 (backside metal 3) pins. -pin_must_connect_area_layer_number {layer_and_number_name_pairs} Specifies for each connection layer the associated spare layer being used to designate the required via connection area within the pin geometry. By default, the router can connect a wire to any part of a large pin. To restrict the connection to a subarea of a large pin, specify the subarea polygon on a spare layer and specify the spare area associated with each connection layer using this option. List the connection layers and associated spare layers as in the following example: {m1 31 m2 32 m3 33 ...} You can specify each layer by its layer number or layer name. These are the mask layers that can specified in this option: poly m1 m2 m3 ... m15 -auto_pin_must_connect_area_threshold {layer_and_threshold_pairs} Specifies the width threshold (in unit defined in the technology file) for automatic determination of the required via connection area within the pin geometry. By default, the router can connect a wire to any part of a large pin. To automatically restrict the connection to a subarea of a pin with an irregular shape, use this option and specify each layer and its associated width threshold. For example, {m1 0.56 m2 0.63 m3 0.63 ... } Areas within a pin having a width smaller than the threshold are excluded from allowing a via connection to be made. For a fat pin, the first-dimension fat contact threshold is used to calculate the allowed connection area, so that the router does not drop a fat contact on the thin part of a fat pin. These are the mask layers that can specified in this option: poly m1 m2 m3 ... m15 -extract_via_within_pin_area_only Causes the extraction process to extract vias existing in pin areas in the CEL view. By default, no vias are extracted from the CEL view. Use this option when you want the router to be aware of any vias existing in a pin when it makes a connection to the pin. Chapter 1: create_macro_fram 633 1-633 IC IC Compiler™ Compiler™ Tool Tool Commands Commands L-2016.03 Version L-2016.03 -extract_via_on_layer collection_of_layers Specifies the mask layer or layers from which to extract vias. By default, no vias are extracted from the CEL view. Use this option when you want the router to be aware of any vias on the corresponding mask layer when it makes a connection to the pin. These are the mask layers that can specified in this option: polyCont v1 v2 ... v14 bv1 bv2 -feedthrough_layers {layer_and_number_name_pairs} Specifying a feedthrough layer for a metal layer causes the create_macro_fram command to keep the metal la