Semi-Custom Layout Design: Flow, Issues and Solutions Vinay Kr. Ladwal 1 Floorplanning Vinay Kr. Ladwal 2 Stage: Floorplanning Description: Inputs required to start Floorplanning. Solution: Input files to Floorplanning stage are: • • • • • • Gate level Netlist (GLN) extracted from synthesis stage. Technology file Design Library Any (DEF) files (work that has been partially or fully complete and passed via design exchange format (.def ) from top level designers ). Timing Scenarios Settings (Multi Mode Multi Corner Files). Scan_chain.def from DFT unit. Vinay Kr. Ladwal 3 Stage: Floorplanning Description: Netlist Solution: GLN contains only logical connections of a circuit. The devices in the Netlist are logic gates. Vinay Kr. Ladwal 4 Stage: Floorplanning Description: What all constitutes as Design Constraints. Solution: Below things can be termed as Design Constraints: • • • • • Block Shape and Size (predefined core/die area). I/O placement pre-fixed. Top chip-level power plan for Block level design. AOCV/POCV corner files specific to the technology library. Any other tool related preferred settings. Vinay Kr. Ladwal 5 Stage: Floorplanning Description: Multi Mode Multi Scenario Solution: In design that have multiple modes (i.e. more than one and other than functional or more extra functional modes). Such cases a MMMC approach is used to report/analyse design for Timing verification. This is required so that the design perform exceptionally under all the specifications it is designed for. Types of cells Vinay Kr. Ladwal 6 Stage: Floorplanning Description: Rules for Macro arrangement Solution: • • • • • • • Macros talking to each other must be placed together. Try minimizing macro stacking. Pins of macro should be easily accessible. Macros orientation should not be changed for UDSMT. Flipping is allowed in some case. For DSMT flipping/rotation is allowed. Core area must be continuous. Macros should not cover the I/O’s of block may result in congestion. Types of cells Macro pins should face core area. Vinay Kr. Ladwal 7 Stage: Floorplanning Description: Medium for Macro arrangement Solution: • • Data Flow from design manual Fly-line tools Types of cells Vinay Kr. Ladwal 8 Stage: Power Planning Description: What is power planning? Solution: • • • • Adding Metal layers that creates the power grid to supply VDD/VSS to the cells inside the block. Usually top metal layers used for chip level or block level power planning. For Std-cells layer ME1 or ME2 based on structural design of the Std-cells in the library. Final goal is to clear every possible DRC meeting the IR drop target as set by top level designers, based on working voltage, frequency and temperature range of the chip. Types of cells Vinay Kr. Ladwal 9 Stage: Power Planning Description: Site-rows power planning Solution: • • • • • • ME2 layer used for Std-cell power planning. Direction Horizontal. Spacing: 1.26 microns (40nm Node) Pitch: 2.52 microns Width: 0.07 microns (minimum) Offset: 0.00 microns Types of cells Vinay Kr. Ladwal 10 Stage: Power Planning Description: Commands Used! Solution: • create_pg_mesh_pattern L6 \ -parameters { w1 p1 of1 sp1 } \ -layers { \ { width:@w1 } \ Variables Width = w1 Pitch = p1 Offset = of1 Spacing = sp1 { horizontal_layer: ME6 } \ { pitch:@p1 } \ { offset:@of1 } \ } Vinay Kr. Ladwal { spacing:@sp1 ) \ 11 Stage: Power Planning Description: Commands Used! set_pg_strategy SM6 -pattern \ {\ { nets:@w1 } \ Solution: • Variables Width = w1 Pitch = p1 Offset = of1 Spacing = sp1 { name: ME6 } \ }\ { parameters:@p1 } \ -core \ -extension { stop:design_boundary_and_generate_pin } complile_pg -strategies SM6 Vinay Kr. Ladwal 12 Stage: Power Planning Description: Commands Used! Solution: • Variables ME2 layer create_pg_std_cell_conn_pattern \ -check_std_cell_drc true P_std_cell_rail \ -layers { ME2 } set_pg_strategy S_std_cell_rail_VSS_VDD \ -core \ -blockage { macros_with_keepout:$all_macro } \ -pattern {\ { pattern:P_std_cell_rail } \ { nets: { VSS VDD } } \ compile_pg \ } -strategies \ { S_std_cell_rail_VSS_VDD } Vinay Kr. Ladwal 13 Stage: Power Planning Description: Issues! Solution: • Floating Macros • Missing Vias • • Floating Nets Less than required Spacing Vinay Kr. Ladwal 14 Stage: Floorplanning Description: Pre-placement preparation Solution: • • • • • Adding boundary/end-cap cells and tap cells to the design. Create pg connections between power/ground and cells in design. Using “connect_pg_nets” Verify the continuity of boundary cells Verify PG connectivity and logical legality. Import Low power Setup. Vinay Kr. Ladwal 15 Stage: Floorplanning Description: Sanity checks issues! Solution: • Check PG DRC • Check Boundary cells • • • • • • Check Physical DRC Check WELL connectivity Check PG connectivity Check Legality Check scan-chain(s) Report Timing and QoR Vinay Kr. Ladwal 16 Placement Vinay Kr. Ladwal 17 Stage: Placement Description: Inputs to placement stage. Solution: • • • • • • Updated Block from Floor plan Stage Timing Setup (max corners) Design Constraints App options setting files NDR Rules Design Library (continuing from Floor plan stage) Vinay Kr. Ladwal 18 Stage: Placement Description: Flow! Solution: • • • • • • • • Import the layout from floor plan and save Setup the timing scenarios for setup analysis Perform the customization tool settings and Insert Spare cells Placement Create P/G connections Run DRC / Timing checks Save the block Vinay Kr. Ladwal 19 Stage: Placement Description: Two pass Placement Solution: • • • Initial Place is the very elementary stage in which the algorithm starts by disconnecting the scan chain and then simply run a course placement. Keeping prime criteria as the interconnect lengths between cells should be minimum. If we run SPG flow since the course placement is already done this step is skipped during two pass placement. Vinay Kr. Ladwal 20 Stage: Placement Description: Two pass Placement Solution: • • • • • Initial DRC also known as HFS/DRC stage is responsible for buffer tree generation. In a design when we have high fanout signal like set, reset, clear .etc. We need to generate a buffer tree for this similar to clock tree. The stage runs high fan-out synthesis and then clear all the possible DRC. Synthesis occurs in three steps: generate VR, insert buffers and improve transition, delete the VR. VR stands for virtual route also known as global route. Vinay Kr. Ladwal 21 Stage: Placement Description: Two pass Placement Solution: • • • Initial opto is a timing optimization stage where algorithm simply run Direct Timing Driven Placement (DTDP). Final Place stage the algorithm runs am incremental placement where based on efforts set power, performance and timing optimization are done at the same time controlling routing congestion. Final opto is again responsible for final effort in timing optimization then legalizing the whole design and later recreating new scan chain. Vinay Kr. Ladwal 22 Stage: Placement Description: Checks! Solution: • Check P/G connectivity • Check Legality • • • • • Check DRC, Check Routability Check WELL connectivity Check ports Abnormality Report Timings and analyse Vinay Kr. Ladwal 23 Stage: Placement Description: Issues! Solution: • • Controlling congestion Cells cells) • • not legalized (overlapping Overlapping metal layers PG DRC Shorts • Blocked Ports (min/max constraints) • Swapped WELL connections • • • • Unconnected WELL connections Abnormal Port Shape/Size Over Core utilization Setup Timing violations Vinay Kr. Ladwal 24 Stage: General Description: Extra Scripts Used! Solution: • add_spare_cells.tcl • dont_use_cells.tcl • • • connect_pg_nets.tcl pg_connections.tcl set_lib_cell_purpose.tcl Vinay Kr. Ladwal 25 Clock Tree Synthesis Vinay Kr. Ladwal 26 Stage: Clock Tree Synthesis Description: Inputs to CTS stage. Solution: • • • • • • Updated Stage Block from placement Timing Setup (All corners) Design Constraints App options setting files NDR Rules Design Library (continuing from Floor plan stage) Vinay Kr. Ladwal 27 Stage: Clock Tree Synthesis Description: Flow! Solution: • • • • • • • • • Import the layout from placement stage and save Setup the timing scenarios for hold and setup analysis. Set uncertainty value for each clock domain Perform the customization tool settings and Clock_opt Compute new latency Create P/G connections Run DRC / Timing checks Save the block Vinay Kr. Ladwal 28 Stage: Clock Tree Synthesis Description: Clock_opt Solution: • • • Build_clock is the primitive stage in clock tree synthesis. Here the tree generation is similar like the High fan-out buffer tree. Difference is we have some targets to satisfy together with clearing Hold violations. It starts with Building a virtual route. There after it adds buffers or inverters as required to improve transition. The virtual route structure follows the NDR rules given by user. Vinay Kr. Ladwal 29 Stage: Clock Tree Synthesis Description: Clock_opt Solution: • • • • Route_clock stage based on the greated virtual route the tool creates metal traces for the same following the NDR rules. It starts as track assignments and then detailed route. Tracks are the path that tool uses as reference to place metal layer and intersection of two orthogonal tracks are used for via insertions. The clock tree is almost ready at this stage with improved transition in clock signal. Vinay Kr. Ladwal 30 Stage: Clock Tree Synthesis Description: Clock_opt Solution: • • • • Final_opto stage is responsible for CCD or classic optimization. The tool tries to meet all the hold violations in the design keeping a track of setup time such that clearing hold should not affect a already meeting setup time. Also the tool is responsible to meet a skew target while optimizing the clock tree which should be ideally zero but practically is kept between 5%-10% of the clock period. CCD stands for concurrent clock and data optimization. Vinay Kr. Ladwal 31 Stage: Clock Tree Synthesis Description: CCD ( concurrent clock and data optimization ) Solution: • • • • CCD is a algorithm that is responsible for Hold analysis and optimization considering the data path also. By the name suggested it optimizes clock capture and data path both. Added perform optimizations also. further PPA For example when it need to increase AT to clear hold violation it considers that the setup time shouldn't violate while doing that hence optimizes the data path also. Vinay Kr. Ladwal 32 Stage: Clock Tree Synthesis Description: NDR Rules Solution: • • • NDR rules stands for non default routing rules . Here we set the maximum allowable layer and minimum allowable layers for routing. Added special spacing rules can also be added for example in CTS thick nets that have twice the width than minimum width will have double spacing also called as “double with double spacing”. Vinay Kr. Ladwal 33 Stage: Clock Tree Synthesis Description: CTS optimization Solution: • • • CTS optimization is generally done using global skew. The tool checks for the maximum and minimum skew from a node and the their difference should be present in target range. If it is achieved it checks next level else transition is improved at that node. Similarly the tool can also use local skew with each related flop as parameter for optimization only at cost of increased runtime. Vinay Kr. Ladwal 34 Stage: Clock Tree Synthesis Description: Checks! Solution: • Check P/G DRC • Check P/G Connectivity • • • • • • Check Physical DRC Check routes Check LVS Check Routability Check Legality Report Timing and analyse Vinay Kr. Ladwal 35 Stage: Clock Tree Synthesis Description: Issues! Solution: • Zroutes issues shorts and opens • Un-routed clock nets • Minimum Spacing • • • • Clock/power shorts Clock/clock shorts Blocked ports. Minimum Area Vinay Kr. Ladwal 36 Routing Vinay Kr. Ladwal 37 Stage: Routing Description: Inputs to Routing stage. Solution: • Updated Block from CTS stage • Design Constraints • • • • Timing Setup (All corners) App options setting files NDR Rules Design Library (continuing from Floor plan stage) Vinay Kr. Ladwal 38 Stage: Routing Description: Flow! Solution: • • • • • • • • Import the layout from CTS and save Setup the timing scenarios for hold and setup analysis. Set latest latency and compute new uncertainty. Perform the customization tool settings and Route_opt Create P/G connections Run DRC / Timing checks Save the block Vinay Kr. Ladwal 39 Stage: Routing Description: Route_opt Solution: • • • • Routing is done in three stages first a new global route is created. As according to NDR if 2W2S was used it might have consumed a lot of resources and we need to take care of spacing issues to that if FAT metals. So a new global_route is created then track assignment is done, at last it performs detailed routing. Apply DFM rules. Last step of detailed_route stage is called “search and fix” where it scans the design and fix all possible DRC and antenna violation. Vinay Kr. Ladwal 40 Stage: Routing Description: Checks! Solution: • Check P/G DRC • Check P/G Connectivity • • • • • Check Physical DRC Check routes Check LVS Check Legality Report Timing and analyse Vinay Kr. Ladwal 41 Stage: Routing Description: Issues! Solution: • Zroutes issues shorts and opens • Minimum Spacing • • • Un-routed nets Minimum Area Antenna Issues Vinay Kr. Ladwal 42 What Else? Stage: Logic Equivalence Check Stage: Physical Verification Stage: Layout Versus Schematic Solution: Solution: Solution: Description: Inputs to LEC stage. • • Updated Netlist after Routing First synthesised Netlist Description: Inputs to PV stage. • • Current Layout Technology File (design rules) Vinay Kr. Ladwal Description: Inputs to LVS stage. • • Final Layout Latest updated Netlist 43 Solutions! Vinay Kr. Ladwal 44 Floating Macros Cause and Solution • As visible the Pitch select for power mesh was properly making power mesh to have VDD/VSS strips on each macro and hence they will not get floating. Illustration • If pitch was little larger than what this result is for it might happen that a metal rail will not cross the macro and hence now PG connections will be made for that. This leads to floating macro. • We usually take height of the smallest macro as reference to start out pitch value and then increase/decrease it slowly to meet our requirement. • Some time when a trace misses a macro by a small factor offset can be used to move the whole mesh and solve this floating issue. Vinay Kr. Ladwal 45 Floating Nets Cause and Solution • Blue(ME7) main power strips that supplies to red (ME6) for Macro power planning and further they need to supply yellow (ME) for std.cells. Illustration • So if we see carefully if both the red strips are connected using via, then the ME2 yellow strip second from top supposed to be receiving a connection might fail to connect if the via belongs to second pole in the circuit. That means since tool will experience a DRC violation here such that a VDD via is too close to VSS via going to ME2 from ME7. The tool will not drop a via and it will end up a missing via. • Ways to prevent is using proper pitch to maintain that distance or can use offset if there exist very few cases. Vinay Kr. Ladwal 46 Missing Vias Cause and Solution • Floating nets are due to missing vias, so the solution is kind of similar. Illustration • Other cause may be different width nets that are needed to be connected. If the net from which a via is dropped to another is thinner then the other one then also this missing via issue may arise. • Usual issues in power plan can be solved by adjusting Pitch and offset value. Vinay Kr. Ladwal 47 Less than Required Spacing Cause and Solution • As shown in the figure how width, spacing, pitch and offset. Illustration • One thing to keep in mind is spacing is directly related to width. And by that we mean is according to fat metal information in technology file. The spacing between two signal/power nets is based on the width of the individuals and their parallel running length. • So increase parallel running length will increase spacing similarly increase in width also increases spacing requirement. • So the spacing calculation should be done using fat table values and then the issue will be resolved. Vinay Kr. Ladwal 48 Understanding Fat-Metal Rules Cause and Solution • Fat table is available in technology files within layer information. • Tool refers that when it needs to verify the spacing between two metal tracks are correct or not. Illustration fatmetaltabdimentions fatmetaltabparallellength = { 0.00 0.10 0.20 0.30 0.40 0.50 } fatmetaltabspacing = { 0.07 0.09 0.10 0.20 0.40 0.50 fatmetaltabwidth • It starts as parallel length of the nets are measured and then the fattest metal width is taken. • Based on the values the tool uses the 2D spacing table with rows as parallel running length and column as width a best spacing value is selected that is used for both verifying post routing and deciding spacing before routing. =6 = { 0.00 0.07 0.09 0.10 0.14 0.20 } 0.09 0.10 0.20 0.40 0.50 0.50 0.10 0.20 0.40 0.50 0.50 0.50 0.20 0.40 0.50 0.50 0.50 0.50 0.40 0.50 0.50 0.50 0.50 0.50 } 0.50 0.50 0.50 0.50 0.50 0.50 • Example if of a 6x6 fat table. Vinay Kr. Ladwal 49 Boundary Cells Continuity Cause and Solution • Yellow coloured area is blockage and blue colour cells are boundary cells. Illustration • If the blockage that assigned is soft then according to tool that place is open for std. cell placement. • And such area should be capped by boundary cells, but when its visible that area is very small so tool will not place any boundary cell there and will show boundary cell continuity error. • To solve the issue simply use hard keepout or hard placement blockages. Vinay Kr. Ladwal 50 Swapped WELL Connections Cause and Solution • Usual case when the command for connecting PG nets and well pins was faulty. • Verify properly the Nwell and Pwell pins using command report_cells. • Then use that reference name in command connect_pg_nets –nets VDD/VSS and create individual connections. Vinay Kr. Ladwal 51 Scan-Chain Discrepancies Cause and Solution • Scan chain issues arises only if there some changes took place at the floor plan stage after importing scan chain info due to any unknown cause. • Only solution in such issues is re-import the scan.def and verify if it works or else proceed with next step in flow reporting the issue with DFT team. • Here proceeding ahead is allowed as at placement stage an new scan chain will be build. Where the issue will be most probably resolved. Vinay Kr. Ladwal 52 Blk-Blk Overlap/Macro overlap Cause and Solution • A human fault while arranging macros makes this issues. • Point to take care is use align and distribute tool, this helps to reduce the issues to a great extent. Apart from that is using a keepout margin in macro take care to use include_keepout option in align command to prevent blk-blk overlap issues. Vinay Kr. Ladwal 53 Congestion Cause and Solution • After placement due to optimization tool inserts a lot of cells in design and tries its best to control congestion where even then at some places there exist routing congestion. • So for congestion in core area we try controlling cell and pin density to reduce routing congestions. Here various types of partial blockages can be used. Illustration • Channel Width = . ∗ • Channel Width = ∗ • For specific channel congestion formulas are available that are used to calculate channels width to create a vacant space which can be used for easy routing to reduce congestion. Vinay Kr. Ladwal 54 Un-legalised Cells Cause and Solution • If un-legalised cells are present due to over utilization of core are consider re-designing/reconstraining the design. • Causes can be over use of blockages. • And if cells are randomly looking un-legalised then the reason could be the cells were added after the placement stage was finished. • So legalise then using legalise_placement –cell <name> • Or manually arrange legalise_placement. and command simply run Vinay Kr. Ladwal 55 Blocked Ports Cause and Solution • Usual cause of blocked ports is the min/max constraint. • Else this can be due to a poor floor plan where the macro cells that were supposed to be talking with each other were kept far away in design. • If floor plan in the cause the only solution is redoing the floor plan. • Else if min/max constraint is the issues verify the NDR rules and correct them if needed referring to the top level designers. Vinay Kr. Ladwal 56 Unconnected WELL’s Cause and Solution • Unconnected well will only when you forgot to create PG connections. • Use command connect_pg_nets to create those power ground connection with the cells. • This is a logical DRC issues as we define the power connectivity only and are not physically routing them yet. Vinay Kr. Ladwal 57 Zroute Shorts/Opens Cause and Solution • During routing if tool experience to cross to nets and due to some reason or rules it cannot use second metal layer while routing. That case we create short error. Illustration • To solve we simply create metal jump using one higher metal layer. • For opens we use commands first to solve such as route_groups or route_eco, if this is not working we go for manual routing. Vinay Kr. Ladwal 58 Minimum Spacing Cause and Solution • Minimum spacing is value provided in technology file. So if the spacing is smaller than minimum this issues will arise. Another case if metal in fat than minimum then also this issue will come condition is spacing required will be larger than minimum. • To solve calculate the accurate spacing and edit the route to solve. Can use snipping/stretching tools. Vinay Kr. Ladwal 59 Minimum Area Cause and Solution • Minimum area is a requirement to meet DFM and value is specified in technology file. Whenever the area of a net is less the minimum value this DRC error will be shown. • To solve take minimum area value from technology file and divide that by width of track. Then edit and stretch the track length equal to calculated value. Vinay Kr. Ladwal 60 Antenna Violations Cause and Solution • Antenna is a phenomenon that occurs during manufacturing plasma etching process. The large exposed metal behaves as antenna and charge in kV range gets induced in them. Illustration • At that moment if the metal is connected to a gate of device the equivalent area of gate is larger than the gate area connected to it creates antenna violation under DFM category. • To solve the issues we use two methods as illustrated in second and third figures the jumping method or antenna diode insertion method. • Both are effective priority is given to jumping as it is easy since after placement on substrate you will hardly find any space for diode placement. Vinay Kr. Ladwal DIODE 61