|
||||||||||
Design Rule Violation fixing in timing closureMitul Soni, Gourav Kapoor,Nikhil Wadhwa,Nalin Gupta (Freescale Semiconductor India Pvt. Ltd.) Design Rule violation is one of the major challenges being faced by VLSI industry. With ever shrinking technology nodes, and ever increasing gate counts, reaching to more than 40 million on a single die, the complexity of the design is momentous! Often, the so called “high priority goals” be it timing, power or the area utilization take precedence and fixing the DRVs is relegated till the very end of the backend design cycle. However, due to very limited time, and congestions, DRVs often become a bottleneck to the tapeout. It is therefore prudent to fix DRVs earlier in the design cycle. First, let us introduce the concept of Design Rule Violation. It is the job of the library characterization teams to characterize the standard cells/basic building blocks. The range over which these are characterized depends upon two factors:
Each cell in the cell library is provided with a lookup-table representative of the characterized characteristics. Given below is a table corresponding to the delay of a buffer for different slews and output capacitances. This kind of representation is a discrete representation. The value corresponding to any input slew and output load is calculated by the tool by interpolating between these points. The delay calculated so is accurate for small deviations from these values. However, once the transition and/or load go out of this range, the tool has to extrapolate the delay from these points, which is less accurate than interpolating since there is now only one bounding value. This inaccuracy increases further once the operating point shifts away from the extreme values given in the lookup table. Beyond this point, the actual silicon results and the delays predicted by tools will not match. Moreover, the delays predicted by different tools over extrapolation differ by a great amount since different tools use different algorithms for delay calculation. Hence, extrapolation should be avoided at all costs. Violating the limits could be a serious impediment to the yield and hence the gross margins! For the sake of clarity, let us consider following graph of a hypothetical buffer wherein the delay is plotted against load capacitance for different input transitions. As can be seen, at loads far greater than the characterized limits, the delay calculated by extrapolation can vary a lot with respect to the actual delay. Given below is the library snapshot representing the delay of a buffer: cell_rise(tmg_ntin_oload_7x7) { In any of timing paths, if the input slew is less than 0.0016ns or more than 0.329ns or output load is less than 0.0001fF or more than 0.563fF, the delay of this buffer gets extrapolated and the calculated delay “X” may not be true in the Silicon. Let us discuss the approach one should follow while fixing DRV. One of the most important rules we should obey is “NEVER LEAVE DRV TO BE FIXED AT THE LAST STAGE OF DESIGN CYCLE”. It is so because usually, the DRVs which directly impact timing are proactively fixed by the designers, but the ones which do not impact timing (or having sufficient positive setup slack) are often left till the last phase of the design cycle, since timing closure is the topmost priority job. At that time, however, congestion could make the DRV fixing quite difficult, apart from impacting the timing! DRVs impacting hold critical paths are mostly overlooked since these are usually not seen as hold violating paths, but after fixing DRV, these emerge as hold violations as discussed below. Another reason not to overlook DRVs? Let us say, we have a timing path as shown in figure below. As we know, hold slack equation is given as: Slack = Tck->q + Tdata - Thold Now, if the net has a DRV, then the transition/load on the net will be very high, which will increase Tck->q and Tdata, but wiil decrease Thold. And the delay shown will not be true, it can have inaccuracies of large degree. Thus, there is every possibility of a DRV masking a hold violation. If these kind of DRVs are left till end, then not only you have to fix the DRV, but also the hold violation resulting from fixing that DRV. DRV fixing - Approach to be followed The best approach to fix DRV’s is through implementation tool. One should try to get fixed as many as possible at implementation time only so that there is minimum work to be done manually. However, since, all the modes are not visible at the implementation tool, there are still a few of DRVs left to be fixed manually. Not only modes, there are DRV violations observed across corners. Since, setup optimization is carried only for WCS corner, the DRV violations of BCS corner are not taken care of by implementation tool. A general approach to DRV fixing (as we approach tape-out to minimize the disturbance due to cell movement/sizing and/or addition) can include the following steps:
Special careabouts/heuristic approach to fix DRVs If all the DRVs are not fixed, one can try the following steps. First thing to find is the main reason behind the occurring of DRV. There may be many reasons for this, some of the prominent reasons being congestion or timing impact due to fixing the DRV.
One of the most important thing to be checked beforehand. One should verify the scaling of tran and cap limit across the timing corners. In some designs, the limits are not scaled properly in a particular PVT corner, hence there are huge no. of violations in that corner. For example - Due to improper scaling of tran and cap limit in best case we saw 10000 drv violations in best corner in comparison to 100 in worst corner. Slack based Approach: This is the step which we can use in the last stage for the leftover DRV’s. For example, if we have left over DRVs in best case and also hold timing is more critical in this corner than worst. So If we can ensure that the hold slack of the timing path is more than the load pin (output load of the DRV net) cell delay, then even if the delay of that cell tends to zero still the hold timing of that path is met. Hence if this condition is met we can consider to waive off the DRVs which are not getting fixed. Conclusion: As from the above, we have seen that there are different ways to fix DRVs, but each and every step has its own challenges as they are dependent on timing / power / area utilization. Hence one should try to fix the DRVs in the earlier stages of design cycle so that they can have proper feedbacks for timing and congestion issues. General flow one should follow, while DRV fixing
If you wish to download a copy of this white paper, click here
|
Home | Feedback | Register | Site Map |
All material on this site Copyright © 2017 Design And Reuse S.A. All rights reserved. |