Pin Spacing and Blockage Commands
Pin Spacing and Blockage Commands
After placing pin and routing blockages, fix ports using 'set_fixed_objects [get_terminals -of_objects [get_ports [get_selection ]]]'. This command resets ports to a fixed state, preventing further movement .
Saving macro placements in a DEF file involves selecting the macros from the GUI and executing 'write_def -objects [get_selection ] /home/shared/t_araza/macros.def'. This saves the current macro placements to '/home/shared/t_araza/macros.def'. Ensure correctness by checking the macro name hierarchy using 'get_sel' and renaming as necessary in the DEF file .
To resize port dimensions, utilize the command 'resize_objects -height 0.775 [get_terminals -of_objects [get_ports *]] -quiet'. This command adjusts the height (or width, if specified) of all terminals associated with ports to 0.775 units while operating silently to avoid console output .
The command 'set_individual_pin_constraints -allowed_layers {M4 M6 M8} -side 1 -ports [get_ports [get_selection ]] -pin_spacing 1' sets individual pin constraints on layers M4, M6, and M8 with a specified pin spacing of 1 .
Execute the full floorplan process in Fusion Compiler by using 'create_placement -floorplan', followed by 'legalize_placement' and 'compile_fusion -from final_place -to final_opto'. These steps are scripted and run in sequence for comprehensive floorplan execution .
To initiate the GDS workflow, run 'make gds START=clock_opt_cts END=route_opt'. This command starts the GDS process from clock optimization (CTS) to route optimization .
To use the script editor effectively, write the commands 'create_placement -floorplan legalize_placement compile_fusion -from final_place -to final_opto'. This sequence finalizes pin placement and optimizes circuits. Once processes are complete, save the block with 'save_block', exit the GUI, and proceed to GDS workflow .
To remove all pin and routing blockages before calculating pin spacing on layer M8, the following steps must be taken: First, use the command 'remove_pin_constraints *' to remove all pin constraints. Then, execute 'remove_routing_blockages *' to remove all routine blockages and 'remove_pin_blockages *' for pin blockages. These commands ensure a clean state before adjusting pin spacing .
Timing paths from specific registers are specified using the command 'timing_info [get_timing_paths -from [get_flat_cells -hier * -f "full_name =~*u_fifo_req/data_out_reg*"] -to [get_flat_cells -hier * -f "full_name =~*u_mshr/u_wr_req/pipe_reg*"]]', which extracts timing paths from 'u_fifo_req/data_out_reg' to 'u_mshr/u_wr_req/pipe_reg' .
To unfix ports and terminals for respacing on metal layers, use the command 'set_fixed_objects [get_ports [get_selection ]] -unfix' to unfix selected ports. For terminals associated with ports, apply 'set_fixed_objects [get_terminals -of_objects [get_ports [get_selection ]]] -unfix'. This sequence ensures both ports and their terminals are unfixed, allowing for adjustment of spacing on specified metal layers .