.

Friday, March 29, 2019

Synopsys For Physical Design Of Asic Computer Science Essay

Synopsys For bodily traffic pattern Of Asic Computer Science EssayIC compiling program is the dottyw ar package from Synopsys for Physical architectural syllabus of ASIC. It provides requirement tools to end the back end jut of the very deep submicron determinations. The stimulations to the IC compiler be a gate-level netlist which drive out be from DC compiling program or third-party tools, a expand floor invent which stomach be from previous Design supply through IC compiling program or other(prenominal) third-party tools, quantify constraints and other constraints, corporeal and measure libraries provided by manufacturer, and foundry-process data. IC compiler bewilders a GDSII- stage bill as yield accepty for tape out of the geek. In addition, it is assertable to export a Design Ex spay Format (DEF) file of dictated netlist data ready for a third-party router. IC compiling program personas a binary Synopsys Milkyway database, which whoremonger be uti lize by other Synopsys tools based on Milkyway. 164.2 User InterfacesIC compiler enkindle be usanced every with tucker out interface (icc_shell) or with Graphical drug functionr interface (graphical user interface). Shell interface is the mold-line interface, which is used for batch mode, scripts, typing assertions, and push-button type of operations. Graphical user interface (GUI) is an advanced graphical compendium and natural editing tool. sealed tasks, such as very accurately displaying the physique and providing visual compend tools, tush only make outed from the GUI. Also tool command language (Tcl), which is used in many applications in the EDA industry, is available to IC compiler. Using Tcl, you behind bring out reusable procedures and scripts.The IC Compiler physique point is an easy-to-use, springyshot-pass flow that provides convergent timing result. variant 4.1 shows the basic IC Compiler image flow, which is centered around three warmhearted ness commands that perform military position and optimisation (place_opt), time maneuver price reduction and optimization ( quantify_opt), and routing and postroute optimization (route_opt). 16icc1Figure 4.1 IC Compiler Design Flow 21For most visualises, if the place_opt, quantify_opt, and route_opt locomote argon followed, IC Compiler will provide optimal results. You can use IC Compiler to efficiently perform chip-level origination proviso, spatial relation, clock manoeuver entailment and routing on designs with moderate timing and congestion challenges.To further improve the whole step of results for your design you can use additional commands and switches for view, clock tree synthesis, and routing step that IC Compiler provides.IC Compiler design flow involves effectuation of quest locomote1. arrange up and prepare the libraries and the design data.2. coiffure design homework and advocator planning.-Design planning is to perform necessary steps to reali ze a floorplan, notice the size of the design, create the leap and core reach, create site rows for the placement of archetype kiosks, plume up the I/O pads.- authority planning, is to perform necessary steps to create a military meeting plan to meet the causation budget and the target leakage latest.3. perform placement and optimization.IC Compiler placement and optimization uses enhanced placement and synthesis technologies to generate a legalized placement for leaf cellular telephones and an optimized design, which addresses and resolves timing result issues for the provided design. You can supplement this functionality by optimizing for billet, recovering area for placement, minimizing congestion, and minimizing timing and design rule violations.To perform placement and optimization, use the place_opt core command (or from GUI elect Placement menu and then core Placement and optimization sub-menu).4. Perform clock tree synthesis and optimization.To perform the cl ock tree synthesis and optimization phase, use the command clock_opt (or postulate Clock Core Clock Tree entailment and optimization in the GUI).IC Compiler clock tree synthesis and embedded optimization solve perplex clock tree synthesis tasks, such as checkage shunning and the correlation between preroute and postroute data. Clock tree optimization improves both(prenominal) clock skew and clock insertion delay by perform raw sienna sizing, buffer relocation, gate sizing, gate relocation, level adjustment, reconfiguration, delay insertion, dummy thin out insertion, and balancing of interclock delays.5. Perform routing and postroute optimization.To perform routing and postroute optimization, use the route_opt core command (or learn Route Core Routing and Optimization in the GUI).As part of routing and postroute optimization, IC Compiler performs global routing, track assignment, detail routing, try and repair, topo licit optimization, and engineering channelise order ( ECO) routing. For most designs, the default routing and postroute optimization scarup produces optimal results. If necessary, you can supplement this functionality by optimizing routing patterns and reducing crosstalk or by customizing therouting and postroute optimization functions for special needs.6. Perform chip finishing and design for manufacturing tasks.IC Compiler provides chip finishing and design for manufacturing and yield capabilities that you can apply end-to-end the various stages of the design flow to address process design issues encountered during chip manufacturing.7. Save the design.Save your design in the Milkyway format. This format is the internal database format used by IC Compiler to store all the logical and physiological culture about a design. 164.3 How to Invoke the IC Compiler1. Log in to the UNIX environment with the user id and password .2. expire IC Compiler from the UNIX promtUNIX$ icc_shellThe xterm unix prompt turns into the IC Compiler shell command prompt.3. Start the GUI.icc_shell start_guiThis window can display schematics and logical browsers, among other things, once a design is loaded.4.4 Preparing the DesignIC Compiler uses a Milkyway design depository library to store design and its associated library information. This comp matchlessnt partalization exposits how to set up the libraries, create a Milkyway design library, read your design, and scavenge the design in Milkyway format.These steps are explained in the spare-time activity sections Setting Up the Libraries Setting Up the indicant and Ground Nets tuition the Design Annotating the Physical info Preparing for Timing abbreviation and RC Calculation Saving the Design4.4.1 Setting Up the LibrariesIC Compiler requires both logic libraries and physical libraries. The following sections describe how to set up and validate these libraries. Setting Up the Logic LibrariesIC Compiler uses logic libraries to provide timing and functionality information for all standard cells. In addition, logic libraries can provide timing information for voiceless big instruction instructions, such as RAMs.IC Compiler uses variables to set apart the logic library settings. In each session, you must particularize the values for the following variables (either interactively, in the .synopsys_dc.setup file, or by restoring the values saved in the Milkyway design library) so that IC Compiler can access the libraries search_pathLists the paths where IC Compiler can locate the logic libraries. target_libraryLists the logic libraries that IC Compiler can use to perform physical optimization. link_libraryLists the logic libraries that IC Compiler can search to resolve origins. Setting Up the Physical LibrariesIC Compiler uses Milkyway case libraries and technology (.tf) files to provide physical library information. The Milkyway reference libraries contain physical information about the standard cells and macro cells in your technology library. In a ddition, these reference libraries pay off the placement unit tile. The technology files provide information such as the scores and characteristics (physical and electrical) for each metal layer, which are technology-specific.The physical library information is stored in the Milkyway design library. For each cell, the Milkyway design library contains several views of the cell, which are used for diametrical physical design tasks.If you absorb not already created a Milkyway library for your design (by using another(prenominal) tool that uses Milkyway), you need to create one by using the IC Compiler tool. If you already have a Milkyway design library, you must blossom forth it before working on your design.This section describes how to perform the following tasks score a Milkyway design libraryTo create a Milkyway design library, use the create_mw_lib command (or choose File Create Library in the GUI). gift a Milkyway design libraryTo open an existing Milkyway design library, use the open_mw_lib command (or choose File Open Library in the GUI). cut through on a Milkyway design libraryTo report on the reference libraries attached to the design library, use the -mw_reference_library option.icc_shellreport_mw_lib-mw_reference_library design_library_nameTo report on the units used in the design library, use the report_units command.icc_shell report_units Change the physical library informationTo change the technology file, use the set_mw_technology_file command (or chooseFile Set applied science File in the GUI) to coif the new technology file name and the name of the design library. Save the physical library informationTo save the technology or reference view information in a file for later use, use thewrite_mw_lib_files command (or choose File trade Write Library File in the GUI). In a single invocation of the command, you can output only one type of file. To output both a technology file and a reference fake file, you must run the command twice . Verifying Library torsoConsistency between the logic library and the physical library is critical to achieving dear results. Before you process your design, ensure that your libraries are consistent by rivulet the check_library command. 16icc_shell check_library4.4.2 Setting Up the magnate and Ground NetsIC Compiler uses variables to define names for the berth and instal nets. In each session, you must define the values for the following variables (either interactively or in the .synopsys_dc.setup file) so that IC Compiler can identify the power and ground nets mw_logic0_netBy default, IC Compiler VSS as the ground net name. If you are using a different name,you must specify the name by setting the mw_logic0_net variable. mw_logic1_netBy default, IC Compiler uses VDD as the power net name. If you are using a different name, you must specify the name by setting the mw_logic1_net variable.4.4.3 education the DesignIC Compiler can read designs in either Milkyway or ASCII (Veri log, DEF, and SDC files) format. realizeing a Design in Milkyway Format depicting a Design in ASCII Format4.4.4 Annotating the Physical informationIC Compiler provides several methods of annotating physical data on the design Reading the physical data from a DEF fileTo read a DEF file, use the read_def command (or choose File outcome Read DEF inthe GUI).icc_shell read_def -allow_physical design_name.def Reading the physical data from a floorplan fileA floorplan file is a file that you previously created by using the write_floorplancommand (or by choosing Floorplan Write Floorplan in the GUI).icc_shell read_floorplan floorplan_file_name Copying the physical data from another designTo copy physical data from the layout (CEL) view of one design in the current Milkyway design library to another, use the copy_floorplan command (or choose Floorplan Copy Floorplan in the GUI). 16icc_shell copy_floorplan -from design14.4.5 Preparing for Timing Analysis and RC CalculationIC Compiler provides RC calculation technology and timing analysis capabilities for bothpreroute and postroute data. Before you perform RC calculation and timing analysis, youmust complete the following tasks Set up the TLUPlus filesYou specify these files by using the set_tlu_plus_files command (or by choosing File Set TLU+ in the GUI).icc_shell set_tlu_plus_files -tech2itf_map ./path/map_file_name.map -max_tluplus ./path/worst_settings.tlup -min_tluplus ./path/best_settings.tlup (Optional) Back-annotate delay or parasitical dataTo back-annotate the design with delay information provided in a precedent Delay Format (SDF) file, use the read_sdf command (or choose File Import Read SDF in the GUI).To run into annotated data from design, use the remove_annotations command. Set the timing constraintsAt a stripped-down, the timing constraints must contain a clock definition for each clock mark, as well as input and output arrival times for each I/O port. This want ensures that all point pat hs are bound for timing.To read a timing constraints file, use the read_sdc command (or choose File Import Read SDC in the GUI).icc_shell read_sdc -version 1.7 design_name.sdc Specify the analysis modeSemiconductor device parameters can leave with conditions such as fabrication process,operating temperature, and power supply voltage. The set_operating_conditions command specifies the operating conditions for analysis. (Optional) Set the derating factorsIf your timing library does not include minimum and maximum timing data, you can perform simultaneous minimum and maximum timing analysis by specifying derating factors for your timing library. Use the set_timing_derate command to specify the derating factors. Select the delay calculation algorithmBy default, IC Compiler uses El more than delay calculation for both preroute and postroute delay calculations. For postroute delay calculations, you can choose to use Arnoldi delay calculation either for clock nets only or for all nets. Elmore delay calculation is faster, but its results do not ever correlate with the PrimeTime and PrimeTime SI results. The Arnoldi calculation is best used for designs with smaller geometries and extravagantly resistive nets, but it requires more runtime and memory. 164.4.6 Saving the DesignTo save the design in Milkyway format, use the save_mw_cel command (or choose File Save Design in the GUI). 16CHAPTER 5 Design training5.1 IntroductionDesign planning in IC Compiler provides basic floorplanning and prototyping capabilities such as dirty-netlist handling, machine-controlled die size exploration, performing various operations with black shock modules and cells, fast placement of macros and standard cells, packing macros into arrays, creating and shaping plan groups, in-place optimization, specimen global routing analysis, hierarchical clock planning, performing pin assignment on velvety macros and plan groups, performing timing budgeting, converting the hierarchy, and refi ning the pin assignment.Power ne twork synthesis and power earnings analysis functions, applied during the feasibleness phase of design planning, provide automatic synthesis of local power structures within voltage areas. Power network analysis validates the power synthesis results by performing voltage- fling off and electromigration analysis. 16Figure 5.1 IC Compiler Design homework 215.2 Tasks to be performed during Design conceptionning Initializing the Floorplan Automating Die Size geographic expedition intervention Black Boxes playing an Initial Virtual insipid Placement Creating and geological formation devise Groups playacting Power supply perform Prototype world-wide Routing Performing Hierarchical Clock formulatening Performing In-Place Optimization Performing Routing-Based Pin assigning Performing RC Extraction Performing Timing Analysis Performing Timing Budgeting Committing the Physical Hierarchy Refining the Pin Assignment5.3 Initializing the FloorplanT he steps in initializing the floorplan are described below. Reading the I/O ConstraintsTo load the top-level I/O pad and pin constraints, use the read_io_constraints command. formation the Core and Placing the I/O PadsTo define the core and place the I/O pads and pins, use the initialize_floorplan command. Creating Rectilinear-Shaped BlocksUse the initialize_ one-dimensional_ close down command to create a floorplan for rectilinear blocks from a unyielding set of L, T, U, or cross-shaped templates. These templates are used to determine the cell boundary and shape of the core. To do this, use initialize_rectilinear_block -shape LTUX. Writing I/O Constraint InformationTo write top-level I/O pad or pin constraints, use the write_io_constraints command.Read the Synopsys Design Constraints (SDC) file (read_sdc command) to ensure that all signal paths are constrained for timing. Adding prison cell RowsTo add cell rows, use the add_row command. Removing Cell RowsTo remove cell rows, use the cut_row command. Saving the Floorplan InformationTo save the floorplan information, use the write_floorplan command.Writing Floorplan Physical Constraints for Design Compiler topographical TechnologyIC Compiler can now write out the floorplan physical constraints for Design CompilerTopographical Technology (DC-T) in Tcl format. The reason for using floorplan physical constraints in the Design Compiler topographical technology mode is to accurately represent the placement area and to improve timing correlation with the post-place-and-route design. The command syntax iswrite_physical_constraints -output output_file_name -port_side 16Figure 5.2 Floor Plan After Initialization 215.4 Automating Die Size ExplorationThis section describes how to use MinChip technology in IC Compiler to automate the processes exploring and identifying the valid die areas to determine smallest routable, diesize for your design bit maintaining the relative placement of toughened macros, I/O cells, an d a power structure that meets voltage discard requirements. The technology is integrated into the Design Planning tool through the bringing close together_fp_area command. The input is a physically insipid Milkyway CEL view.5.5 discourse Black BoxesBlack boxes can be represented in the physical design as either soft or fleshy macros. A black box macro has a fixed height and width. A black box soft macro sized by area and utilization can be shaped to best fit the floorplan.To handle the black boxes run the following set of commands.set_fp_base_gateestimate_fp_black_boxesflatten_fp_black_boxescreate_fp_placementplace_fp_pinscreate_qtm_model qtm_bbset_qtm_technology -lib library_namecreate_qtm_port -type clock $portreport_qtm_modelwrite_qtm_model -format qtm_bbreport_timing qtm_bb5.6 Performing an Initial Virtual Flat PlacementThe initial practical(prenominal) flat placement is very fast and is optimized for wire length, congestion, and timing.The way to perform an initial virt ual flat placement is described below. Evaluating Initial nasty macro PlacementNo straightforward criteria exist for evaluating the initial hard macro placement. Measuring the quality of results (QoR) of the hard macro placement can be very nationalive and often depends on practical design experience. Specifying sonorous Macro Placement ConstraintsDifferent methods can be use to control the preplacement of hard macros and improve the QoR of the hard macro placement.Creating a User-Defined Array of Hard MacrosSetting Floorplan Placement Constraints On Macro CellsPlacing a Macro Cell Relative to an Anchor ObjectUsing a Virtual Flat Placement StrategyEnhancing the Behavior of Virtual Flat Placement With the macros_on_edge flickCreating Macro Blockages for Hard MacrosPadding the Hard Macros Padding the Hard MacrosTo rid of placing standard cells too close to macros, which can cause congestion or DRC violations, one can set a user-defined lard hold or keepout margin around the macr os. iodine can set this padding distance on a selected macros cell instance master.During virtual flat placement no other cells will be placed within the qualify distance from the macros edges. 16To set a padding distance (keepout margin) on a selected macros cell instance master, use the set_keepout_margin command. Placing Hard Macros and Standard CellsTo place the hard macros and standard cells simultaneously, use the create_fp_placement command. Performing Floorplan EditingIC Compiler performs the following floorplan editing operations.Creating objectsDeleting objectsUndoing and redoing edit changesMoving objectsChanging the way objects nip to a gridAligning movable objects5.7 Creating and Shaping Plan GroupsThis section describes how to create plan groups for logic modules that need to be physically implemented. Plan groups restrict the placement of cells to a specific region of the core area. This section also describes how to automatically place and shape objects in a desig n core, add padding around plan group boundaries, and prevent signal leakage and maintain signal integrity by adding modular block shielding to plan groups and soft macros.The following steps are cover for Creating and Shaping Plan Groups. Creating Plan GroupsTo create a plan group, create_plan_groups command.To remove (delete) plan groups from the current design, use the remove_plan_groups command. Automatically Placing and Shaping Objects In a Design CorePlan groups are automatically shaped, sized, and placed intimate the core area based on the distribution of cells resulting from the initial virtual flat placement. Blocks (plan groups, voltage areas, and soft macros) marked fix remain fixed the other blocks, whether or not they are inside the core, are subject to being moved or reshaped.To automatically place and shape objects in the design core, shape_fp_blocks command. Adding Padding to Plan GroupsTo prevent congestion or DRC violations, one can add padding around plan groupbo undaries. Plan group padding sets placement blockages on the internal and externaledges of the plan group boundary. Internal padding is equivalent to boundary spacing in the core area. External padding is equivalent to macro padding.To add padding to plan groups, create_fp_plan_group_padding command.To remove both external and internal padding for the plan groups, use the remove_fp_plan_group_padding command. Adding Block Shielding to Plan Groups or Soft MacrosWhen two signals are routed parallel to each other, signal leakage can get along between the signals, leading to an unreliable design. One can protect signal integrity by adding modular block shielding to plan groups and soft macros. The shielding consists of metal rectangles that are created around the outside of the soft macro boundary in the top level of the design, and around the inside boundary of the soft macro.To add block shielding for plan groups or soft macros, use the create_fp_block_shielding command.To remove the signal shielding created by modular block shielding, use the remove_fp_block_shielding command. 165.8 Performing Power PlanningAfter completed the design planning process and have a complete floorplan, one can perform power planning, as explained below. Creating Logical Power and Ground ConnectionsTo define power and ground relateions, use the connect_pg_nets command. Adding Power and Ground RingsIt is necessary to add power and ground rings after doing floorplanning.To add power and ground rings, use the create_rectangular_rings command. Adding Power and Ground StrapsTo add power and ground straps, use the create_power_straps command. Prerouting Standard CellsTo preroute standard cells, use the preroute_standard_cells command. Performing Low-Power Planning for Multithreshold-CMOS DesignsOne can perform floorplanning for low-power designs by employing power gating. Power gating has the potential to quash overall power consumption substantially because it reduces leakage power as well as switching power. Performing Power Network synthetic thinkingAs the design process moves toward creating 65-nm transistors, issues related to power and signal integrity, such as power grid generation, voltage (IR) drop, and electromigration, have become more significant and complex. In addition, this complex technology lengthens the turnaround time necessary to identify and fix power and signal integrity problems.By performing power network synthesis one can preview an untimely power plan that reduces the chances of encountering electromigration and voltage drop problems later in the detailed power routing.To perform the PNS, one can run the set of following commands. 16synthesize_fp_railset_fp_rail_constraintsset_fp_rail_constraints -set_ringset_fp_block_ring_constraintsset_fp_power_pad_constraintsset_fp_rail_region_constraintsset_fp_rail_voltage_area_constraintsset_fp_rail_strategy Committing the Power PlanOnce the IR drop map meets the IR drop constraints, one can run th e commit_fp_railcommand to transform the IR drop map into a power plan. Handling TLUPlus Models in Power Network SynthesisPower network synthesis supports TLUPlus models.set_fp_rail_strategy -use_tluplus true Checking Power Network Synthesis IntegrityInitially, when power network synthesis number one proposes a power mesh structure, it assumes that the power pins of the mesh are machine-accessible to the hard macros and standard cells in the design. It then displays a voltage drop map that one can view to determine if it meets the voltage (IR) drop constraints. After the power mesh is committed, one might discover problem areas in design as a result of automatic or manual cell placement. These areas are referred to as chimney areas and pin connect areas.To Check the PNS Integrity one can run the following set of commands.set_fp_rail_strategy -pns_commit_check_fileset_fp_rail_strategy -pns_check_chimney_fileset_fp_rail_strategy -pns_check_chimney_file pns_chimney_reportset_fp_rail_ strategy -pns_check_hor_chimney_layersset_fp_rail_strategy -pns_check_chimney_min_distset_fp_rail_strategy -pns_check_pad_connection file_nameset_fp_rail_strategy -pns_report_pad_connection_limitset_fp_rail_strategy -pns_report_min_pin_widthset_fp_rail_strategy -pns_check_hard_macro_connection file_nameset_fp_rail_strategy -pns_check_hard_macro_connection_limitset_fp_rail_strategy -pns_report_min_pin_width Analyzing the Power NetworkOne perform power network analysis to predict IR drop at different floorplan stages onboth complete and incomplete power nets in the design.To perform power network analysis, use the analyze_fp_rail command.To add virtual pads, use the create_fp_virtual_pad command.To ignore the hard macro blockages, use the set_fp_power_plan_constraints command. Viewing the Analysis ResultsWhen power and rail analysis are complete, one can check for the voltage drop and electromigration violations in the design by using the voltage drop map and the electromigration map. One can save the results of voltage drop and electromigration current density values to the database by saving the CEL view that has just been analyzed. Reporting Settings for Power Network Synthesis and Power Network Analysis StrategiesTo get a report of the current values of the strategies used by power network synthesisand power network analysis by using the report_fp_rail_strategy command. 165.9 Performing Prototype globose RoutingOne can perform prototype global routing to get an estimate of the routability and congestion of the design. Global routing is done to detect possible congestion hot spots that might exist in the floorplan due to the placement of the hard macros or inadequate channel spacing.To perform global routing, use the route_fp_proto command.5.10 Performing Hierarchical Clock PlanningThis section describes how to reduce timing closure iterations by performing hierarchical clock planning on a top-level design during the early stages of the virtual flat flow, af ter plan groups are created and before the hierarchy is committed. One can perform clock planning on a specified clock net or on all clock nets in the design. Setting Clock Planning OptionsTo set clock planning options, use the set_fp_clock_plan_options command. Performing Clock Planning operationsTo perform clock planning operations, use the compile_fp_clock_plan command. Generating Clock Tree ReportsTo generate clock tree reports, use the report_clock_tree command. Using Multivoltage Designs in Clock PlanningClock planning supports multivoltage designs. Designs in multivoltage domains operate at various voltages. Multivoltage domains are connected through level-shifter cells. A level-shifter cell is a special cell that can carry signals across different voltage areas. Performing Plan Group-Aware Clock Tree Synthesis in Clock PlanningWith this feature, clock tree synthesis can generate a clock tree that honors the plan groups while inserting buffers in the tree and prevent new cloc k buffers from being placed on top of a plan group unless they drive the entire subtree inside that particular plan group. This results in a minimum of clock feedthroughs, which makes the design easier to manage during partitioning and budgeting. 165.11 Performing In-Place OptimizationIn-place optimization is an iterative process that is based on virtual routing. leash types of optimizations are performed timing improvement, area recovery, and fixing DRC violations. T

No comments:

Post a Comment