PD
PD
PD
What is PD?
Mechanical activity towards preparation of artwork for the mask preparation Electrical activity towards making the design meets its constraints at silicon level
Semiconductor knowledge (minimal) SoC architecture (the more the better) SoC design (knowledge on constraints) Technology library (mandatory, dont play with strange things) Methodology (good understanding on why this way and why not the other way) EDA tool (mandatory to work hands-on) Scripting (to reduce pain) System design (to understand the application requirement)
Full-custom Vs Semi-custom
Integrity Full custom Area Full custom Power Full custom Performance Full custom Yield Full custom Cost Large volume full custom Development cycle semi custom Development cost semi custom Reusability semi custom Myth: All digital design are Semi custom and analog designs are full custom.
PD Project cycle
ASIC / SoC requirement feasibility plan Implementation verification tapeout fabrication package assembly tester characterization validation respin (if required)
PD Feasibility analysis
At introductory level, Feasibility analysis is needed to avoid surprises halfway into the design For better planning and prediction of time, resource and success rate upfront Scope of feasibility analysis: Can the constraints be met Can the chip be designed Will the chip work What are the risks involved Will revisit feasibility analysis in detail
PD Plan
Project management comprises of
Requirement to meet Time to complete Cost for the project including resource, tool
PD Implementation
Full chip/ subchip/ top level/ chip closure ? (die-size) (die-shape) (timing) (IR) (EM) (powerplan) (floorplan) (IO) (CTS) (routing) (SI) (rail) (DRC/LVS) (STA) (dyn. Sim) (XRC) (sign-off) (tapeout) (metal slot) (metal fill) (PO/OD fill) (GDSII) (seal & scribe) (constraints analysis)
What more? Where to start & where to end?
PD verification
What to verify?
Will the chip work? Will the chip perform? Will the chip be reliable? Can the chip be manufactured? Will all the functions required be met? Will the chip be testable?
PD design closure
What is design closure?
Timing closure Power closure DRC/LVS cleanup SI closure
PD chip closure
What is chip closure?
Dummy metal fill Poly / Oxide fill Wirebond check Seal ring and seal scribe Stress release pattern Scribe and scribe lane
PD tools
What for PD tools? Implementation Analysis Verification Major tool vendors Cadence Synopsys Mentor graphics Magma Tools are task simplifiers. They are not problem solvers, instead they can also be source for problem
PD Methodology
What is methodology? What is flow ? Need for flow flush
PD Requirement analysis
Name Of the Design Application domain New Design / Respin Design If it is Respin Design a. Reasons for failure of the earlier Design b. Nature of Enhancements on Respin Design Synthesis tool used Design Tool & Sign off Tool to be used a. Physical design b. Physical verification c. STA d. SI e. Power analysis Targeted package Name of the Foundry Data input for the Design (RTL/NETLIST/GDS II/ECO) a. RTL b. Netlist with DFT c. Netlist without DFT d. Optimzation f. IO list and pad order
Design Details Explanation of Design including Architecture Estimated No. Of Logic Gates in the design Total gate count of the design. No. of IO pins in the Design Max I/P Frequency of the Design Max O/P Frequency of the Design Max Internal Frequency of the Design No. of clocks in the Design High Fan-out Nets Defined that require Buffer Tree Synthesis Gated clock used or not Synchronous Reset / Asynchronous Reset used in the Design Any Latch used in the Design (specify) Wirebond or flip chip Timing Report of Synthesis Design Constraint Format Tool used for dumping the SDC Usage if thru' - thru' constraints in SDC Need for recovery / removal
Customer input
Library Details Name of the Library Vendor Which process technology to be used (for e.g. 0.18u,0.13u) Target library to be used (for e.g. LV/Generic/Multi Vt Library) Core and IO Voltage to be used No. of Metal Layers to be used and Routing Guidelines
Customer input
Macro Details a. SP RAMs (size, mux factor, no.of instances) Analog IP Block used (Provide details)
LEF, DEF, .lib, .db, Constraints and GDSII for hard Macros b. DP RAMs ( size, mux factor, no.of instances) Onchip Memory Requirements (Provide details)
Customer inputs
Floorplan Details Die size requirement Die aspect ratio
Customer input
Estimated core power Estimated IO power
Customer input
Clock Tree Synthesis Details Propogated clock details Clock domains with multicycle paths Bugeted clock duty cycle variation Budgeted clock jitter margin clock tree diagram for the design Inter & intra clock phase matching constraints Clock domains with half cycle paths Budgeted Clock Skew in the Design No. of clocks in the design Required setup margin Required setup margin Target insertion delay Clock gating details clock details Derived clocks details
Clock frequencies
DFT input
JTAG pin list (Muxed / non muxed) No. of scan chains Length of each scan chain No. of MBIST controllers MBIST controller details (groupings) Max scan clock frequency Estimated switching activity during scan test Clock gating details Test SDC Common functional & test mode paths with constraints Size of DFT logic a. MBIST logic b. LBIST logic c. JTAG controller Scan chain report with pipe line logic for scan tracing Required set-up margin Required hold margin
Technology input
Runsets for the sign-off tool Standard cell library- full viewSynopsys Milkyway a. DRC b. LVS
c. Antenna
d. Metal slotting e. Metal filling f. Poly & Oxide filling g. wire bond DRC h. Sample GDSII of seal ring with CSR
IO pad library Library for special IO pads Bond pads De-cap and endcap cells Macros Filler cells and pad fillers
b. operating voltage
c. operating current d. Dimension e. pitch of the pads f. pad delay characteristics
From Design Rule a. current density of different layers b. Sheet resistance c. electrical rules
Memory input
SL .N o Memor y instance name Memory (type/size/mux factor) X dimen sion Y dimen sion M Area (um2) Bit cells Power * Cloc k1 Cloc k2 BIST group
BIST logic for the memory logic is incorporated Memeory data sheet to be referred for the layer details, power ring details and the placement and routing blockages for the memory macros Check with the foundry MT form for the required memory details and generate them upfront
Check for the maximum dimensions and feasibility of fitting in the die area
Macro input
SL.N o Macro instance name Macro type X dimens ion Y dimens ion Area (um2) Logic gates Pow er No. of clocks Clk. Frequ.
In the GDS view check for the metal layer, blockages and the power plan used for the macro internally
Check for the clocks, clock constraints, matching or latency requirements if any at the macro input Run the DRC, LVS, Antenna runsets on the macros in stand alone mode and check they pass the checks before going for full design
IO input
SL. No Signal Group Pad instance name Directi on SSO group Toggle rate pad order pin/ ball map
Check for requirement of power cut diodes, power on control cells for the design
Check for the type and availability of the bond pads to be used in the design (staggered/ in-line) Check for the pre driver and post driver power requirements
Check for the power on sequence for the core and IO powers
Check for the availability of proper power pads for the IO and core power Analyze the current surges that could occur due to simultaneous switching of the SSO group signals Check the availability of pad fillers in the technology library for forming the pad ring
Clock input
Sl. No
Cloc k name
F req ue nc y
M ax tra ns
Ma x Ca p
U Sync. Points
Feasibility Analysis
Technology information
Floorplanning
PD- Floorplanning
FP is the critical part in PD High quality FP ensures accurate circuit timing & performance Poor FP results in timing failure, routing congestion, larger power, larger area, huge IR drop and SI issues
More FP tips
At any level, avoid routing that goes against the preferred routing direction for that level. When creating metal rings around cores and blocks, remember to allow room for routing access to pins
More FP tips
When placing blocks, avoid creating four-way intersections in top-level channels T intersections create much less congestion. This consideration can be critical to leaving the necessary space for routing channels, depending on how much over-the-cell routing is possible. Using flylines can help determine optimized placement and orientation
More FP tips
For placing block-level pins,
First determine the correct layer for the pins Spread out the pins to reduce congestion. Avoid placing pins in corners where routing access is limited Use multiple pin layers for less congestion Never place cells within the perimeter of hard macros. To keep from blocking access to signal pins, avoid placing cells under power straps unless the straps are on metal layers higher than metal2 Use density constraints or placement-blockage arrays to reduce congestion Avoid creating any blockage that increases congestion.
More FP tips
Need to supply power and ground to areas where they might be useful for placing buffers or repeaters during the postplacement timing-convergence optimization and for top level buffers Consider grouping multiple instances of any logical hierarchical element to form one hierarchical physical element. Look for logical modules in the RTL design representation that can be grouped in hierarchical blocks Also group small blocks into one larger block It is easier to floorplan with same-sized blocks. Try to work with midsized blocks. A design partitioned in six to 12 roughly equivalent-sized blocks constitutes a reasonable candidate for floorplanning Depending on the package design, you usually want to start the floorplan with I/Os at the periphery
More tips on FP
Consider parts of the design that are not typical standard cells:
memories analog circuitry (PLLs) logic that works with a double-speed clock blocks that require a different voltage exceptionally large blocks unusual design-specific instances (flash)
place these elements first to ensure that their special needs are accommodated
More tips on FP
If two or more large blocks or other features that make a reasonable floorplan impossible, you may have to increase the die size or rearrange I/Os If any of the large blocks are soft IP, repartitioning that block into smaller pieces Arrange rest of the blocks in the remaining space based on their I/Os and power consumption Avoid placing blocks that consume lot of power near center For average libraries, the usage is around 70% High percentage of registers or hard IP increases the percentage Large numbers of multiplexers or other small, pin-dense cells decrease percentage Run initial synthesis to find out how big the blocks are
POWERPLAN
Power planning
Power-plan guidelines
Place filler cells before cell placement for the rails to get formed correctly Do a power only DRC after completion of power plan before doing placement Do metal slotting for the thick power network prior to placement Plan for power cut diodes wherever isolation is required between two power domains (e.g. analog and digital) Plan for power on sequence cells as required in the design
Power-plan guidelines
Over design of power network would result in suboptimum die-size Placement blockages under the power mesh would result in congestion Select higher metal layers having higher current density for power network Having higher metal layers for power would also act as heatsink If power network is inadequate IR and EM violations are foreseen
Powerplan guidelines
Fill any open spaces with power-mesh metal. Make sure the extra metal does not push signal wires closer together, thus increasing capacitance, powerconsumption, and signal-integrity problems. Floorplanning and power planning constitute an integrated process
Placement
PD Placement flows
PD placement
Placement guidelines
In order to meet the tight design specifications under schedule and design resource constraint, the decision whether to implement a specific block in a semi-custom flow or ASIC flow had to be made at the early definition stages. Each datapath is first synthesized in a standard ASIC flow to check timing and power feasibility. Only in cases where the results did not meet the design target it is needed to proceed to implement the block in the semi-custom design flow
Placement
It is easier to analyze and work in block level for complex designs even if hierarchical flow is not required It helps in identifying the issues and bottlenecks at the block level It eases the design by allowing constraint relaxations where the margins are available Flat implementation gives better results than hierarchical For block level analysis we need to generate block level constraints separately.
Placement
Even for flat designs, look for RTL hierarchy for grouping datapath Where constraints are stringent, consider creating cluster groups and regions for their placement For boundary scan cells create space closer to IO pads for the placement. This would help reducing routing congestion Also for high fanout inputs consider buffering at the input pad
Placement
Do a Zero RC analysis upfront to check the consistency of the timing results with synthesis results Perform a scan trace and compare with the DFT report for consistency of the scan chain report In case of scan tracing getting stuck it is necessary the get it closed by seeking help from DFT team Detach the scan chain even before the preplacement stage With pre-placement results analyze the trans, cap and fanout numbers and optimally set these numbers for the flow. Consider grouping the MBIST controller logic closer to the corresponding memory macros During inplace optimization runs study the convergence w.r.t optimization options Suitably order the sequence of optimization options and the number of iterations required. This would yield better result as well as reduce run time Make the optimized placements as dont touch when working with subsequent optimizations Its is a good practice to do DRC/LVS check after each optimization
Placement
Set the setup margins to small +ve value (few ps). This will take care of CTS degradation (non-ideal clock) Alternately have some clock uncertainty number for clocks to account for CTS needs Enabling hold for timing check is waste of time during placement Check the placement for both functional and DFT constraints Choose appropriate report summary so that time for report generation and report size are minimized Try and achieve timing closure at placement stage, legal placement of the cells happen during placement Non convergence at placement stage would call for floorplan change No significant timing improvement is expected in the subsequent stages Too large a under performance may need a re-look of the design or consideration of a better library
PD Journey
Fanout based delay modeling no more valid Layout base delay modeling needed Latest trend is Physical Virtual Prototyping
Power management
Power reduction
Methodology evolution
Utilization Area
Note that utilization ratio is the total cell area over the boundingbox area. On the one hand The layout area has to leave enough room for physical synthesis to buffer interconnects, size drivers and restructure logic and for CTS and routing to route the design; not leaving enough room will cause either an impact on timing or even the failure to complete the route. On the other hand The layout area should be minimized to minimize the die size and thus the cost of the chip.
Therefore it is hard for the user to come up with the right utilization ratios.