The Concept of Electronic Design Automation:Implementation and Verification

Implementation and Verification

Every step of an ASIC design flow can be categorized as either implementation or verification. In this section we will work out a better understanding of those terms.

Implementation is always a creative process. Within the context of ASIC development, the result of an implementation step will be one of the representations listed in section 2.2. This can be the creation of a specification, an RTL model, or a gate level netlist as well as the creation of a test program. In general, implementation is the transformation of a more abstract level into a lower, more detailed level.

An implementation task will always be ambiguous. The number of solutions for modeling the multiplier of Section 2.2.3 in RTL is virtually un- limited. The reverse operation, the transformation into a higher, more abstract level, must be unique. In our example the RTL model has to show a multiplier behavior. Assume we had initialized the loop counter in Figure 2.3 to zero and have it increment in each clock cycle. The result of the whole sequence (16 cycles) would be:

(reversed bit order)

and would not meet the requirements.

Now we bring up the definition for verification:

Verification is the task to verify a previous im- plementation step.

Whilst the human genius can efficiently carry out the implementation tasks, we tend to be blind to mistakes we have made before. Data volumes in ASIC design have grown beyond any limit that could be overseen; therefore powerful tools are needed for verification. Traditionally simulators have been used for verification tasks. In the previous example we can use a VHDL simulator and choose arbitrary values for A and B and find out whether the expected result of A · B can be found in result register C after the 16th clock cycle. However, even if we find a match would we know whether the circuit works for other input values as well? To be very sure we would have to repeat the simulation for all possible input combinations. This requires us to simulate 65 536 · 65 536 different multiplication operations. Since each multiply operation requires 16 clock cycles, no less than 66 · 109 clock cycles would be necessary. A powerful VHDL simulator may simulate 1000 cycles per second and would then need approximately 2 years for an exhaustive verification. Very frustrating, indeed.

The previous conclusion tells us that we cannot achieve exhaustive verification by means of simulation. Therefore we need to select a set of vectors which is capable of detecting all potential errors. The selection of the vectors and the evaluation of simulation results can be very time consuming. For a typical ASIC project more time and resources will be spent on verification than implementation.

An ideal design flow provides for a verification step after each implementation.

It is also meaningful to perform small – local – verification runs during an implementation task to un- cover obvious mistakes. It is of utmost importance, however, to perform a comprehensive verification after each of the implementation steps mentioned in sections 2.2.2 up to 2.2.6. Usually verification is a comparison relative to the previous, more abstract level. If an error introduced at an implementation step is not immediately detected at the subsequent verification step, the implementation result will become the reference for the next implementation and verification steps. This would eventually lead to faulty masks, and the resulting chip would not work properly. A redesign step would become necessary and generate a huge cost overhead. However, real life has shown that things can become even worse:

In 1995 it became known that the core of the Pentium processor – in those days the working horse of more than 80 % of all PCs shipped – under very rare circumstances would generate incorrect results. Because the error happens so infrequently the manufacturer of the chip, Intel Corporation, had not discovered it. Once that flaw had been un- covered, the message was spread among PC users. Finally, Intel offered to replace every affected chip. The cost of that operation is said to have been in the order of 100 million US$.

Comments

Popular posts from this blog

Design using Standard Description Languages:The simulation model in VHDL

EDA Tutorial:Place and Route in a Standard Cell Design Style

Overview of EDA Tools and Design Concepts:Major Classes of EDA Tools.