Page 206 - A Practical Guide from Design Planning to Manufacturing
P. 206

Logic Design  179

          Imagine you are the chief validation engineer for a processor project.
        The team has been working for years and is finally ready to begin pro-
        ducing the first test chips. An HDL model has been created and match-
        ing circuits and layout produced for the entire design. Now you are asked
        whether the entire project should move forward with the creation of the
        first actual silicon chips or continue to modify the design. The essential
        question is whether the current design is logically correct or not. If test
        chips are produced, will they actually work? The wrong answer to this
        question will cost the project time and money.
          Pre-silicon validation attempts to answer this question by first check-
        ing the HDL model for correctness and then checking to make sure the
        implementation will match the behavior of the model. These two tasks are
        called design verification and implementation verification. Design
        verification relies on using the HDL model to simulate the behavior of
        the processor running different programs. This behavior is compared to
        the microarchitectural specification of what the behavior should be.
        Usually there are also compatibility checks where the “correct” behavior
        is simply what the previous generation processor did.
          Without HDL models processors with today’s complexity could never be
        validated and probably could never be made to function properly at all.
        However, HDL models have a serious limitation. They are very, very slow.
        The HDL model of a 3-GHz processor might simulate instructions at the
                                               1
        rate of a physical processor running at 1 Hz. This means that years of pre-
        silicon simulation are required to test the behavior of just a few minutes
        of actual operation. The design team could purchase more or faster com-
        puters to perform the simulations, but this would make only a tiny differ-
        ence in the vast gap between software simulation and hardware. Perhaps
        with twice as many computers that are each twice as fast, the validation
        team could in years of simulation duplicate the behavior of half an hour
        of operation instead of just a few minutes. This still comes nowhere near
        testing all the software programs that might be considered important.
          To improve the speed of simulation, some projects use hardware emu-
        lation. Field programmable gate arrays (FPGAs) contain logic and memory
        elements that can be programmed to provide a particular behavior. By pro-
        gramming FPGAs to imitate the behavior of an RTL or structural model,
        the behavior of the processor might be simulated in hardware at a few
        megahertz. This might be thousands of times slower than the actual
        processor will run but millions of times faster than pure software simu-
        lation. FPGAs were used extensively in the pre-silicon validation of AMD’s
        K6 processor. 2



          1
           Bentley, “Validating the Intel Pentium 4,” 245.
          2
           Shriver and Smith, Anatomy of a Microprocessor, 28.
   201   202   203   204   205   206   207   208   209   210   211