ASIC
ASIC
ASIC
H A P T E R
1.1 Introduction
This chapter provides an overview of the entire Application-Specic Integrated Ciruit (ASIC) development process. Starting from feasibility, it breaks the process down into a set of project phases that must be carried out to obtain fully validated silicon that can be used by production. The main activities in each phase are described, as are the roles and responsibilities of the different members of the project team during these phases. Because this chapter is intended to serve as an overview, the reader is referred to subsequent chapters in the book for detailed treatment of many of the issues covered here.
The main phases of an ASIC project are: Top-Level Design Module Specication Module Implementation Subsystem Simulation System Simulation and Synthesis Layout and Backend Preparation for Testing of the Silicon ASIC Sign-Off Testing of the Silicon
Project Phases
Prestudy Top-Level Design Module Specification Module Implementation
Subsystem Simulation System Simulation and Synthesis Layout and Backend ASIC Sign-Off Preparation for Testing of Silicon
The following subsections describe the phases of the project in greater detail. The phases are generally sequential in time, although there can be some element of overlap. The initial prestudy, top-level design and specication stages have a crucial impact on the chances of success of the entire project. It is, therefore, important to allow adequate
Prestudy Phase
time and appropriate resources for the initial phases and to avoid the tendency to rush too quickly into the implementation phase.
General Tasks: Initial architecture design Initial planning and estimation of resource requirements Risk and cost analysis The prestudy phase is the initial stage of the project where development and marketing work closely together. The prestudy work must identify a business opportunity and some initial product architectures to satisfy the opportunity. The opportunity may arise as a result of a new market area or a new design to reduce costs or add new system features. Often, ASIC projects integrate a number of functions into one chip, reducing cost and power and typically increasing performance and providing additional features. This is a key characteristic of the emerging SoC (system-on-a-chip) market, where entire systems are integrated onto one chip, typically by reusing a combination of inhouse and bought-in third-party IP (intellectual property). The deliverable from the prestudy phase will be a business case that projects the nancial returns, development timescales and risks. The development part of the business case should provide estimates for product costs, timescales and resources needed. It should also provide a detailed assessment of the risks. If the purpose of the ASIC is to replace a currently successful product, cost and/or feature enhancement is often the driving requirement. When the purpose is to address a new market area or to replace a struggling product, timescales are often the highest priority. The project leader should establish the driving factors before starting the pre-
study phase, because these will affect the architecture options. The project leader will usually require resources during the prestudy phase. These should include experienced engineers who are good at top-level design. It is important to have access to both hardware and software resources. This is a good time to build the core of a strong team. The team that works on the prestudy phase should ideally be involved throughout the full duration of the project and especially during the top-level and design phases. During this prestudy phase, the ASIC team must identify the major building blocks of the ASIC and obtain some initial ASIC cost quotations. This will involve talking to ASIC vendors to get a current range of prices. It is useful to consider a number of product solutions and architectures that differ in terms of cost, development timescales, resource requirements, etc. A set of options can then be presented to the management team with a recommended option identied. The team should justify why a particular option is recommended. For SoC designs or very large devices, any external third-party IP block requirements must be identied and initial cost quotations obtained. If any such IP blocks are not already predeveloped by the IP provider, development timescales and delivery dates must be determined. The team should be wary of selecting IP that has not been proven on silicon because it presents an obvious additional risk to the project. Large, deep submicron designs may require the use and purchase of new EDA (electronic design automation) tools. Any such requirements should be identied and discussed at this stage with the ASIC vendor and the IP provider because the costs may be signicant and should, therefore, be incorporated in the business case. As part of the process of identifying product solutions, the team should weigh the merits of an ASIC-based solution against the possibility of using third-party silicon. The ASIC may be cheaper or may provide important features or a performance advantage. It must provide some marketable benet. Otherwise, it is pointless to embark on an ASIC development. There are no major risks during the prestudy phase. As always, however, there are two conicting pressures; the rst is to generate an accurate business plan dening a winning product, and the second is the pressure of timescales. The prestudy phase can take a reasonable length of time. In this phase, product innovation is very important. Dening the right product and the right development approach makes a winning product. If the prestudy phase is rushed, the chances of success are reduced. The project leader can reduce the risk of lengthy prestudy timescales by requesting appropriate resource in a timely manner and having all relevant information available when the management team assesses the business case.
Good product or development ideas can be generated when a number of engineers brainstorm ideas together. Several brainstorming sessions should be held. These should include both hardware and software representatives, and participation should not be limited exclusively to those working full time on the prestudy. It can prove benecial to draft additional contributors because of their known expertise in the area or because of their known capacity for innovation and creative thinking. Competing products should be compared with the product ideas.
Many of the classic engineering trade-offs are made in this phase. Factors such as cost of the product, cost of the design, time to market, resource requirements and risk are compared with each other as part of the process of developing the top-level design. Innovation at this time can have dramatic effects on the success of the product. The innovation can take the form of product ideas, top-level architecture ideas and design process ideas. The resource requirements during this stage will again be a small number of skilled engineers who are talented architects and system designers. The team should make trade-offs between functions performed by standard offthe-shelf chips, existing ASICs, software and the new ASIC. Chapter 8, Planning and Tracking ASIC Projects, outlines some ideas for reducing timescales through careful architectural design. One of the deliverables at the end of this stage is a top-level architecture document, which clearly denes the partition between board, software and ASIC functions. Often, the ASIC represents such a signicant part of the design that the top-level ASIC functions are also dened in the architecture specication. It is important to review the top-level architecture specication with selected experts within the company, including representatives from other project teams. At this stage, an initial ASIC plan should be developed. This plan and the resource requirements should be reviewed and agreed with senior management. At the same time, the design route document should be written. This denes the tools, techniques and methodologies that will be used at each stage. It will aid the planning process because it forces the team to think about required tools and equipment early on. It may be necessary to start booking these at this stage. From the point of view of the design team, the design route document provides a good overview of the design ow and explains the reasons for some of the project rules. The design route document is described in Chapter 3, A Quality Design Approach. Any new tool identied in the design route document should be tested before the tool is needed, and the plan should include time for testing and contingency options if any of the tools are not sufciently reliable or simply do not work. Toward the end of this stage, the team members are selected. The project manager should identify any training requirements and ensure that courses are booked. It is helpful at this stage to assign an engineer familiar with the ASIC architecture to prepare a presentation explaining the architecture. This can then be used to get new team members up to speed as they join the project. During this phase of the project, many factors will be unknown. The project leader must make educated guesses about resources, timescales, costs, risks and what the competitors are likely to do. Modules, which are critical from the point of view of
timescale or risk, should be identied and, if necessary, work should be started on these early. One method of reducing risk and improving timescales is to consider design reuse (see Chapter 2, Design Reuse and System-on-a-Chip Designs, for details). For SoC designs or very large designs, IP reuse is a common design approach. It may be necessary to source IP blocks from third-party vendors. Such large designs will typically require signicant effort during the top-level design phase because the size of the chip often implies a high level of complexity. One or more team members should be assigned the task of identifying IP blocks from other companies, analyzing their specications and assessing the impact on the chip architecture. This task should actually begin in the prestudy phase, but the level of detailed analysis is greater during this phase. The project manager should begin contacting IP providers to start negotiating price, deliverables and support. Some of the issues associated with the use of external third-party IP are considered in Chapter 2, Design Reuse and System-on-a-Chip Designs. Equally important, existing IP blocks from within the company should be analyzed. The advantages of using in-house IP are lower cost, in-house expert support and the possibility of making minor modications to the IP (although, wherever possible, reusable blocks should not be modied). The disadvantage associated with in-house IP blocks is that if they were not originally designed and documented with reuse in mind, they may not facilitate easy reuse. In extreme cases, reusing blocks not designed with reuse in mind can take longer than redesigning them from scratch. In less extreme cases, when the blocks are being used in a different environment or in a different way than before, they may exhibit previously undiscovered bugs. The project manager should ensure that either sufcient in-house expert support is available for the project or, alternatively, that the design has been certied as a reusable block that is compliant with the companys reuse standards. For projects that are using deep submicron technology, the design route should be identied at this stage. Any new tools required should be sourced and tested, and any necessary training programs on the use of these tools should be organized. During the top-level design phase, there is a risk of moving too quickly to the next stage, before the top-level design document and a top-level plan are available. The next phase of the project is when the majority of the team comes on board. Time can be wasted when many people join a project if the top-level architecture is not properly dened and documented. Toward the end of the top-level design phase, it is useful to start thinking about which engineers will work on which blocks. This can be particularly useful for the less experienced engineers. They can be overwhelmed by the system in its entirety and may
feel more comfortable focusing at an early stage on specic parts of the design. When the resource requirements are not available within the organization, the project manager must hire new staff. This recruitment process should start early in this phase because there is usually a signicant lead time in recruiting good engineers. Chapter 13, Project Manager Skills, provides some guidelines on interviewing.
Risks: Some team members can feel isolated during the architecture design. The team may not understand the project goals.
During this phase, the majority of the team joins the project. It is convenient to split the task descriptions into two sections. Tasks for the bulk of the team are described rst. This is followed by a summary of the other tasks that are also part of this phase.
10
tions to make. Even if they do not, keeping them involved improves the learning process for them. Every team member is important and should be made to feel part of the team.
Module Design
11
will result in better engineer role-matching than would be the case if the project leader assigns the roles without consultation. One of the key roles in the project is that of the testbench engineer. During this phase, the testbench top-level objectives and architecture must be dened. The testbench engineer should also attend the architecture design sessions because this will add to his or her understanding and result in a better testbench. It will also help make testbench engineers feel part of the team, because they tend to work more in isolation than those working directly on the chip design itself.
12
The silicon gate count may exceed maximum estimatesconsider modications to architecture. During this phase, most of the team members are assigned to address a number of mainstream tasks, while the rest of the team undertakes the remaining miscellaneous tasks. Again, it is convenient to subdivide the phase into two activity streams. Tasks for the bulk of the team are described rst, then the remaining tasks are covered.
Detailed specication involves capturing the design function for the block or blocks in question and tying down the interface denition. Team members should frequently consult each other during this period if there are any ambiguities in interface signal denitions or implemented functions, or if it becomes apparent during this lowlevel block specication phase that new interface signals or design functions are required. The design itself involves translating the specication into a design solution. There are several different methodologies for doing this but, in essence, they all involve similar sets of steps. Typically, the blocks can be described by process owcharts and subsequently dened by block diagrams, timing diagrams and state machine diagrams. There is a temptation to start coding before this initial paperwork design stage is fully worked through. This should be avoided because it can often require the reworking of code to cover the function of the module fully. The design process during this phase is described in detail in Chapter 3, A Quality Design Approach. Generation of appropriate design documentation is part of a quality design process. This design documentation should be reviewed before coding has started in ear-
Module Design
13
nest. The process of translating the design documentation into code often leads to minor changes in the detailed design approachperhaps because there were some undetected aws in the initial approach or perhaps because the designer has thought of a better or simpler way of implementing a particular function. Any design changes made during the coding should be reected back into the design documentation, and the complete documentation and coding package should then be further reviewed. It is important to review the code before exhaustive testing is carried out, because there may not be time to rework sections of the code at this later stage. Simulation and initial trial synthesis should be done in parallel. There is no point to having a fully functioning module that will not synthesize to the correct speed or that translates into an unacceptably large gate count. Encouraging early synthesis also has the advantage that the size of the chip can be monitored from an early stage in the design. If the ASIC size becomes too large, changes to the higher-level architecture or to the design of the module may have to be made. The earlier any such changes are implemented, the smaller the impact will be on the end date. After the initial synthesis, some initial gate-level simulations should be carried out. This will prove that the RTL (register-transfer-level) code not only functions correctly but that it synthesizes as intended. It also derisks the later top-level gate-level simulation phase.
14
dors (see Chapter 14, Design Tools). Any third-party simulation and/or synthesis models required should be identied, and sourcing of these models should be entered like all other tasks into the project plan. Two versions of third-party simulation models may be requiredone version that models the functionality to the required maximum level of detail and a second, simpler model. Simpler models simulate faster and are often adequate for the majority of simulations. The speed difference is not usually particularly noticeable in individual module or subsystem simulations, but the effect can be signicant when simulating at the system level. Conversely, detailed models simulate more slowly. This is due to the level of detail being modeled and checked. However, detailed models are required for at least a subset of the simulations because these allow for a more rigorous level of testing and parameter checking. The project leader should explain the design review process to the team early in the design phase and set out expectations for these reviews. This involves providing guidelines on the level of design documentation required and drawing attention to any design procedures and coding styles being adopted. For companies employing a structured design approach, this type of information is often available in company standards documentation. However, it is usually worth reminding the design team of the most important aspects of these standards and explaining the reason for them. It is also important to explain the reasons for the design reviewit is an essential part of a quality design process and not a performance review of the designer. Full team meetings should start at this stage. They should be held at regular intervalsideally once per weekat a time that is convenient for all team members. A good time to do this is before lunch because this tends to limit the length of the meetings, and the participants are still fresh. The purpose of the meetings is to ascertain progress against the plan and to keep the team informed of general developments in the projects that are of interest to them. During the team meetings, open communications between team members should be encouraged. It is a good opportunity for team members to highlight any issues or problems that have arisen or are foreseeable. During this phase of the project, the project leader should start planning the testing of the silicon. This initial planning mainly involves estimating the laboratory space and identifying the equipment that will be needed. These resources should be booked or purchased, if not available. A further activity, that arises at this stage of the project is that of dealing with the ASIC vendor. The following list identies some important items that need to be considered at this point and tracked from here on in:
Subsystem Simulation
15
1) Device pin list: The pin list has to be generated, reviewed and frozen many weeks before the nal netlist is delivered. The pin list should be agreed by the ASIC vendor, the manufacturing team and the printed circuit board (PCB) design engineers. 2) Package: If the package is new to production, space models (chips with the correct package but with basic test silicon rather than the real silicon) can be obtained from the vendor so that trial PCBs can be manufactured. The quality of the solder joints can be analyzed and the production techniques rened, if necessary. 3) Sample and preproduction volumes: The vendor normally dictates the number of initial samples available. There are a number of different types of samples available with different turnaround and delivery times. For initial testing, it is very important that a sufcient number of development units are available to verify the silicon and the system quickly. With good negotiating, the preproduction volumes can be increased, which can be useful to improve production ramp-up times.
16
Subsystem simulation is that part of the project where a collection of separately designed but logically related modules are now connected together and tested as subsystems. For certain designs, subsystem simulation may not be appropriate or necessary. However, for larger designs, it often pays dividends. This phase will typically run in parallel with the module design phase. The subsystem simulation can be carried out by a team containing some of the design engineers who designed the modules in question with the assistance of the testbench engineer. This section is treated under two separate headings: First we look at the tasks and activities of the subsystem simulation team, then we look at the project leaders responsibilities during this phase.
System Simulation/Synthesis
17
18
Initial synthesized netlist available (trial netlist) Tasks: Write and review test list document. Write test pseudocode (i.e., CPU register accesses, testbench conguration). Run RTL and gate-level simulations. Record and track resolution of bugs using a fault-reporting system. Check chip design rules. Write chip device user guide. Create synthesis scripts and rst trial netlist. Create layout oor plan and documentation. Project Manager-Specic Tasks: Closely monitor plan; arrange regular, quick meetings to discuss progress. Arrange layout meeting with ASIC vendor. Risks: Poor communication between engineers can signicantly increase the time required to get rst system simulation running. The two main tasks during this phase are the top-level simulations and the synthesis of the netlist. As with some of the earlier phases, it is useful to examine separately the activities of the team and those of the project leader. Many tasks during this phase will overlap with the layout and the backend phase that is covered in the next subsection.
System Simulation/Synthesis
19
ing modes for complex transactors. The testbench engineer should also give a formal presentation to the team before simulation begins, explaining the architecture of the testbench and how best to use it. It is usually a good idea to split the team into a number of subteams of one to three people each for each of the areas in system simulation. Each team is assigned a different area to focus on during the system simulations. Each team must dene a list of tests that comprehensively test its area. The list of tests should be reviewed by the full team to ensure that there are no obvious omissions. The test list will typically include a subset of the tests carried out during unit and subsystem simulations as well as any additional tests that can be run only at the chip level. For some modules, the time taken to create truly representative input stimuli at the module level can be prohibitively long. For these modules, chip level testing is the only way to validate the module fully. The system simulations should be run rst on the RTL code and subsequently on the gate-level netlist, when the gate-level netlist is available from the synthesis team. The RTL simulations should be carried out rst, because these simulate faster and the RTL description is always available before the gate-level netlist. The RTL simulations prove that the entire chip implements the functions and algorithms dened in the toplevel specication. Gate-level simulations are discussed in the layout and backend phase that is covered in the following subsection. For large designs, where it is difcult to plan the coincident completion of all blocks, initial top-level system simulations can be done without all the modules being available. In this case, simple dummy modules to allow the netlist to elaborate or compile can replace any missing modules. The project should develop some guidelines to ensure a systematic and consistent approach to system simulation. These can be drawn from the best practices and experiences on previous projects and should be improved and updated with each passing project. Among other things, the guidelines should cover test directory structure, test naming conventions, netlist version management, result logging, etc. One method of approaching directory structures is to have separate directories for each test category. These can be further divided into subdirectories, as appropriate. Ideally, the test le names will match the test names in the test list to allow easy cross referencing. For example, a test le named error_corrector_4.3 would correspond to test 4.3 in the test list. Clearly from its title, it involves testing some aspect of the error corrector. It is important that tests are run on the latest version of the netlist. There are, of course, limits to this. If the netlist is being updated on a daily basis, it may not be practical or efcient to rerun all tests on all new versions of the netlist. In such a scenario, perhaps releasing the codebase once a week, for example, is more appropriate. The
20
RTL and gate-level code should be under ofcial revision control, and the simulation teams need to understand the simulation directory structure and to know how to link to relevant versions of the netlist. During the system simulations, changes to the VHDL or Verilog code should be done in a controlled way so that everyone knows when changes have been made and what tests they are likely to affect. Time is often lost trying to understand why a particular module under test has stopped working when the problem has been caused by changes to other modules. The team should agree when and how code is released, and who is allowed to release it. These issues are discussed further in Chapter 7, Quality Framework. Ofcially tracking problems and their resolution is essential to ensure that problems are xed before the nal netlist is sent for fabrication. The project manager can also use tracking statistics as an indication of how well the netlist has been tested. At the start of system simulations, the rate of problems identied will be high. Toward the end, the rate should tend toward zero. Clearly, the netlist should not be released if the rate of problem detection is still rising. Last-minute changes to the netlist may not affect all modules. In such cases, it is valid to rerun only a subset of system simulations to reduce timescales. There is a number of steps that can be taken to reduce the duration of the system simulation phase. Create self-checking scripts that will automatically run a series of system simulations and log results. This is useful for rerunning the tests following a change to the netlist. Because the tests are invoked via scripts, it is easy to set them off overnight, for example, instead of having to run each in series interactively. Wherever possible, use the same tests for RTL and gate-level simulations. Limit the use of internal probing and node forcing. Nodes that are available in the RTL code may not be available in the gate-level netlist. Start trial system simulations early, with the testbench engineer and a single design engineer. This ensures that time taken to iron out the basic testbench problems does not affect the entire system simulation team. It is a form of testing the testbench and gives an early indication of how user-friendly the testbench is and whether the documentation on using the testbench is adequate. Typically, the system simulations will take several man-months of effort to complete. For complex designs, the system simulations can never fully test the netlist without incurring very long simulation times. In these cases, an early sign-off can signicantly reduce the time before production silicon is available. The idea here is to fabricate the netlist before the all system simulations have been completed. However, a subset of both RTL and gate-level simulations must have been completed before the early sign-off takes place. This early silicon is used to test the functionality of the design rather than testing at all environmental conditions. Therefore, the netlist can be
System Simulation/Synthesis
21
sent for prototyping before the gate-level netlist has achieved the required synthesis speed. The advantage of this approach is that, once the trial silicon is available, testing with test equipment is much faster than testing by simulation. Consequently, a very large number of tests can be executed in a fraction of the equivalent simulation time. There should be a planned second version of the silicon that is fabricated only after initial testing of the rst silicon has been completed. Avoid the tendency to fabricate the second silicon too early before the initial testing has been completed, because bugs will often be found toward the end of the testing. Toward the end of the top-level system simulations, the list of tests and the results should be carefully reviewed, because the quality of these tests have a direct bearing on the success of the project. Often, as the test teams become more familiar with the complete design, they will come up with additional tests that were not thought of at the time of formulating the initial test list. If these new tests are testing functionality that was not otherwise being tested, they need to be added to the test list.
22
case timings and can take many days to simulate, depending on the size of the netlist and the processing platform. Test insertion should be done as soon as the top-level netlist is available. This allows the maximum amount of time to get the tools working correctly. After test vector generation, the fault coverage can be assessed. Doing this early in the system simulation phase allows time for possible changes to the code to increase fault coverage. Functional vectors and parametric tests must be planned into the synthesis phase. These tests can be tricky to generate and can cause delays to the ASIC sign-off, if left to the last moment. Some ASIC vendors require extensions to the basic Verilog simulator to generate the test vectors in the required format. This requirement should be identied early and the extension incorporated and tested in the design environment. The layout ow should be discussed and agreed on between the team and the ASIC vendor early in the project. Trial netlists should be sent to the vendor at this stage and the results analyzed (see the following subsection on postlayout simulations). The layout will be improved by ensuring good communications between the ASIC team and the ASIC vendor. The design engineers and the layout team should jointly develop a oor plan, and layout information should be generated and documented. Relevant information includes the clocking strategy, identication of blocks requiring specic placement on the die (typically for speed or noise reasons) and identication of critical paths. Timing-driven layout is a useful method of increasing the timing performance of the nal silicon by focusing on the most time-critical paths rst. Some synthesis tools are capable of automatically generating constraint les that can be read by the timingdriven layout tools. For deep submicron designs, the synthesis and layout tasks constitute a signicant area of risk in the project. This is because the technology geometries are so small that interconnect delays become the dominant part of timing delays, rather than the gate delays. This can result in large differences between prelayout and postlayout timing gures, consequently making it difcult to achieve timing closure on the design. New tools that take oor-planning information into account as part of the synthesis operation are starting to appear on the market to address this particular problem. For large deep submicron designs, it is essential to agree early on with the ASIC vendor how the timing closure will be managed. It requires closer cooperation with the ASIC vendor than was traditionally the case in previous generation designs and requires careful planning of the division of roles and responsibilities between the ASIC vendor and the design team.
23
phase as were faced during the subsystem simulation phase (see above). Getting the rst system simulation running properly is a major milestone. It is advisable to hold daily progress meetings from the start of this phase to identify and track problems. Common problems include testbench bugs or functionality limitations, inadequate testbench documentation, intermodule interface bugs, lack of hardware resources (hard disk storage and workstation memory), shortage of available simulation licenses, etc. These problems need to be prioritized and the task of resolving each problem assigned to various team members. The management of the ASIC vendor becomes critical during this stage. This is covered in the following section, Layout and the Backend Phase. Understanding the layout ow can help to reduce timescales. The project manager should arrange meetings to agree on the layout ow and discuss layout issues, synthesis scripts and delivery dates. It is useful to have an understanding of the task breakdown in the vendors layout group and how it is addressing these tasks.
24
with the size and speed of the design. The risks are further increased if the ASIC is substantially different from ones that the vendor has previously processed. Differences could include different technology, very large gate counts, or the use of complex compiled cells, etc. Trial layouts will reduce the risks by identifying any potential problems as early as possible. The project should plan for at least two trial netlists, and the number should be agreed on with the ASIC vendor at the start of the project. It is important that the trial netlists are passed through the complete layout ow. The rst trial layout should identify any major problems, such as design rule errors, modules that cannot be routed and major postlayout timing violations. The rst trial netlist does not need to meet all nal timing requirements. However, the extent to which timing requirements are violated at this stage will give an idea of how realizable the design is. It is also useful to examine the extent to which prelayout and postlayout timings differ. The second trial netlist should meet all timing requirements. Meanwhile, some initial system simulations should have been run on the RTL and gate-level code. If the project is lucky, this second trial netlist becomes the nal netlist, and the sign-off can be completed earlier than planned. If simple bugs are found during the system simulations, these can often be xed in the layout, using an engineering change order (ECO). These ECOs dene gate-level changes to the netlist, which can be done manually by the layout engineer. The ECO approach varies for each ASIC vendor, and the options available for ECOs should be discussed at the start of this phase. The project team and the ASIC vendor should agree on a release naming convention for the VHDL or Verilog code. It is important that the ASIC vendor has enough time to complete the layout ow before the next netlist is sent, so the number of revisions should be kept to a minimum, even if the netlist seems to be changing on a daily basis. The layout process involves oor planning, cell placement, clock-tree insertion, routing and timing analysis. Postlayout timing information is generated as part of the layout process, and this is used for postlayout simulation and synthesis. As mentioned in previous sections, timing delays can be signicantly longer after layout, especially for deep submicron technology. It may take several iterations of design, synthesis and layout to meet the target timing requirements. Newer synthesis tools can generate timing and routing constraints that are used to guide the placement and routing layout tools.
Postlayout Simulation/Synthesis
25
Tasks: Synthesis, test insertion and test vector generation Generation of a layout document Support layout (oor planning, checking timing, etc.) Resynthesis after layout (xing overloads, timings violations) Running gate-level simulations and static timing analysis with nal netlist, using back-annotated timings
Project Manager-Specic Tasks: Arrange meetings with layout engineers/synthesis engineers. Review progress/milestones of layout. Risks: Pin-out errors are commonreview this several times. There may be issues with layout (routing, timing after layout, etc.)do trial netlist as early as possible. Test vector generation can take a long timestart generation of vectors early. Gate-level simulations are polluted with unknowns (Xs)emphasize the need for reset conditions on all registers early in the design. During layout, a number of les are generated that can be used to analyze the impact of the layout on the circuit. The les are back-annotated onto the netlist, and some processes are rerun. There is a number of steps in the layout process. Some of these les can be extracted after the initial layout stages of oor planning and cell placement. This gives an indication of the layout but is not yet fully accurate, because it
26
does not contain the routing information. After the layout has been completed, a custom wire-load le, a capacitance load le and a standard delay format (SDF) le are generated. Normally, an updated netlist is also sent back by the vendor, because the clock tree will have been added during the layout. The custom wire-load gives the average wire length for a module or chip. Before a custom wire-load is available, the synthesis tool uses an estimated wire-load le. The wire-load values in this are estimated based on the synthesized gate count. The custom wire-load le from a trial placement can be used as the starting point for a complete resynthesis, if desired. Alternatively, the custom wire-load from a nal or almost nal layout can be used in combination with an SDF le for minor resynthesis or in-place optimization. In this scenario, the SDF timing information is used for all cells and nets that do not change, whereas the wire-load le is used in calculating delays for the small number of new nets created in the resynthesis. The SDF le denes the time delays between each pin in the netlist. This includes delays through the cells and interconnect delays. It is used for both synthesis and simulation. The synthesis tool will use it to do static timing analysis and for resynthesis to solve timing violations. At this point, the synthesis script should now use a propagated clock, rather than the ideal clock that was used prelayout. Postlayout timing analysis is a critical stage in the project and should be carried out as quickly as possible and the results analyzed. This is typically done using a static timing analysis tool. Results from the trial netlist could indicate the need for a different layout, changes to the code, or resynthesis. With current small geometry technologies, the interconnect delay is increasingly important in dening the critical timing path in large gate-count designs. The static timing analysis will highlight particularly long nets. Sometimes, altering the oor plan or cell placement, or simply rerouting some nets can resolve timing violations. Another approach to resolving timing problems is to resynthesize with back-annotated SDF, custom wire-load and capacitance les. The synthesis tool will try to meet the timing requirements based on the actual delay and capacitance le. Anything other than trivial changes to the code to x timing problems will inevitably require changes to the plan and possibly also changes to the test list. The test plan can be rescheduled to focus initial tests on parts of the design that will not change. This minimizes the effect of any redesign on the testing schedule. The capacitance le denes the capacitance that each cell output drives. The technology library will dene a maximum capacitance that the outputs can drive. If this is exceeded, the ASIC vendors design rule check (DRC) will fail. The synthesis tool can read the capacitance le and rebuffer the overloaded nets. It can be set to allow
ASIC Sign-Off
27
rebuffering only (preferred, because it has least impact on the layout but might not x all violations) or to allow restructuring so that an overloaded net is replaced by a number of parallel nets. The overloaded nets should be xed before timing analysis is done, because the overloaded nets result in poor timings. Traditionally, the project team, rather than the ASIC vendor, xes design rule violations, but some ASIC vendors have tools that can automatically x design rule violations that have arisen as a result of layout. Tip: The cell timing models are based on standard industry-dened worst-case temperature and voltage. If the design team is condent in advance that the power consumption or operating voltages are, in reality, going to be more favorable than the standard worst-case conditions, custom worst-case operating conditions can be used for the cell timing models. This helps to achieve the required timing performance. If the cell models are not designed to take variable operating environment parameters, the ASIC vendor will need to provide a custom synthesis library. Even if the cell models can take variable operating environment parameters, it is important to establish with the ASIC vendor that the models are sufciently accurate at these nonstandard operating points.
28
sign-off. This can be a lengthy process. With some persuasion, the vendor may agree to send the netlist for fabrication before these simulations have completed. However, because this prevents the vendor from properly testing the fabricated silicon, the vendor will disown responsibility for fabrication problems until the test vector simulations have all passed.
29
signicant effort and should be carefully planned. The work is often done in parallel with top-level simulations, and the risk is that it may be pushed aside as more pressing issues with the simulations arise. To avoid this, the preparation tasks are ideally assigned to engineers who have little involvement with the top-level simulations. The preparation requires the involvement of a number of different engineering disciplines, including ASIC, software, PCB and test engineering. There is a number of aspects to preparation for testing. Laboratory space must be booked in advance. Standard and specialized test equipment must be booked and purchased or hired, if not available in-house. Special attention should be paid to the purchase of specialized test equipment, because lead times may be long. Test PCBs must be designed, manufactured and populated in advance if test boards, rather than IC testers, are being used. If the ASIC is to form part of a production PCB, the design of the board should be done in conjunction with the ASIC engineers. The ASIC pin-out should be dened with help from the PCB designers because the pin-out can have a major impact on the PCB track routing. IO timings, output pad load capacitance, output voltage levels and input requirements should be discussed with the PCB designers. The ASIC should contain circuitry to allow easy debugging. This should allow access to internal status registers, access to internal nodes via output test pins, built-in self-test, error-checking circuits, etc. It is important that these debugging features are discussed with the PCB designers so that test equipment can be easily connected to the ASIC. IC clips can be bought that t over some ASICs, giving access to the chip inputs and outputs. However, for high pin counts, these can be very expensive and not fully reliable. Modern ASICs can often have packages with very high pin count requirements. There is a range of packages available, such as BGAs, micro BGAs, ip-chip, or TAB. These give cheap, reliable packaging but require some experimenting to achieve high yields in the PCB assembly process. The production team can practice on empty packages before the silicon is available, which ensures that the rst samples are mounted on the board as quickly and reliably as possible. It is important that the number of PCBs required is agreed on at an early stage to allow time for the purchase of components and for manufacturing resource to be allocated. Development of test software must be planned and the code written and tested as well as it can be tested in the absence of the silicon. The testing can be done using a software emulation model of the ASIC/board. Alternatively parts of the test software can be tested within the simulation environment (see Chapter 5, ASIC Simulation and Testbenches). Automating the tests will signicantly reduce test times but, of course, requires
30
additional effort. The automation can be done using specialized test equipment or based on PCs/workstations with application-specic test software. The test software is based on the test list specied by the design and test teams. The test list should be reviewed by the team to ensure that it is adequate to test the ASIC comprehensively. One approach to creating the test software is to provide a set of common low-level driver routines for setting up various chip congurations and register settings. If these routines are sufciently comprehensive and well documented, it is then easy for members of the test and design teams to write a layer of higher-level test code to sit on top of these. For register-intensive designs with many possible operating modes or congurations, it can be useful to design the test code to initialize the chip based on test conguration les. Changing the operating mode can then be as simple as changing a number of ASCII text elds in a conguration le. SoC or large designs may have IP blocks from third-party vendors. These blocks should be initially tested wherever possible in a stand-alone mode based on a test suite provided by the vendor. Once the block has been tested in a stand-alone mode, it can then be tested operating within the integrated device. The stand-alone tests may require specialist test equipment, and this should be sourced and tested well before silicon is available. Some IP providers produce reference boards that can be used to check the test equipment and test setup. Sometimes, part of the test list includes interoperability testing. This means testing the silicon within its system environment with a range of existing products. These tests must be dened at an early stage so that the existing equipment can be acquired. During testing, problems will be found. There is a number of potential sources of such problems, such as PCB errors, software bugs, test equipment failures, etc., in addition to any possible problems in the silicon itself. However, each failing test must be recorded in a database that can be easily accessed by the entire team. The fault-tracking database must be created and the bug tracking process dened. A template for the test report is also needed before the start of the evaluation.
Testing of Silicon
31
Run the tests. Track test failures in a fault report database. Analyze failing tests. Identify workarounds for ASIC bugs. Identify netlist changes for ASIC bugs. Evaluate silicon at different voltages and temperatures (environmental testing). Do interoperability testing. Risks: A shortage of working PCBs can signicantly increase the time to complete the initial testing of the silicon. Modications to the PCBs, as part of the debugging process, can make them unreliable, resulting in a shortage of working PCBs. The preparation for the testing of the silicon should result in a test list and project plan for this crucial phase. The silicon will typically need to be mounted onto a printed circuit board. Ideally, a number of printed circuit boards with the new ASIC should be manufactured. It is important that an adequate number of working PCBs are available for the ASIC, software and PCB engineers. The rst tests should prove the basic operation of the silicon. Initial problems will always be encountered when running the tests. However, these may not be due to the design. Faults in the PCB, problems with manufacturing of the silicon, assembly of the board, software bugs or faulty test equipment can all cause tests to fail. To identify the problem area quickly, there should be an agreed-on approach when tests fail. Some options are suggested below: Run the same tests on multiple boards and ensure that the failure mechanism is repeatable. Check the test setup. Check register congurations (read the internal registers). Check internal ASIC debug registers. Check external ASIC signals and internal debug signals that can be multiplexed to output pins using logic analyzers and oscilloscopes. Create a simulation test that mimics the failing test. Analyze the VHDL/Verilog code for the failure mechanism. Brainstorm ideas for devising different tests that will identify the problem.
32
Test at different voltages and/or temperatures to determine whether the problem is related to environmental conditions. Which of the above options are followed and in what sequence will depend on whether the failure occurs during the initial tests or after many tests have been successfully run. Test failures should be noted in the fault report database. One of the most important administration tasks is to keep an accurate track of the location and status of the PCBs. Whenever a test is nished, the result and the serial number of the board should be noted in the test report. This allows the test setup to be reproduced at a later date when tracking problems. A spreadsheet should be created which denes the status and location of each PCB, and this should be available on a common server/intranet. It is useful to record which boards have passed/failed which tests on a regular basis. It is also important to record the modication state of the PCBs. This is often the responsibility of the PCB engineers. These engineers should also be responsible for having PCB manufacturing problems xed.
Summary
33
are necessary for the successful completion of the product. The list of open bug reports should be reviewed periodically with senior management. Two ratios are useful as a guide to the level of testing and the condence in the silicon. The rst is the number of completed tests, compared with the total number of tests. The second is the rate of nding bugs, compared with resolving bugs. On completion of the silicon testing, the test results should be reviewed by the team.
1.14 Summary
With more and more of the electronic circuitry in new products integrated into ASICs, the ASIC design activity in a new product development can appear a daunting task to senior managers, project team leaders and ASIC specialists alikethe latter often being expert in one or more parts of the ASIC development process but lacking an adequate understanding of other parts. However, like most engineering problems, the way to approach this one is to break it into a series of smaller, more manageable tasks or phases. Each phase consists of a series of related design and support activities that can be collectively grouped and classied under one heading. This rst chapter attempts to capture the entire ASIC development process in overview form by dividing it into a number of mainly sequential phases and describing the main aspects of each such phase. It is a useful chapter for the entire project team to read before embarking on a new ASIC development. More detailed information on specic phases is provided in the subsequent chapters of the book.
34