EE534VLSI Design SystemLecture 14:Design for TestabilityIC PackagingPart 1: Design for TestabilityWhat is it?Why do we need it?How do we get it?TestabilityWhy is testing so important in IC’s?Typical device may contain 120,000,000 transistors1 bad transistor means that the part probably will not work correctlyQuestion: How do you make sure every single transistor is working?TerminologyThe terms used in testability and reliability analysis can be very confusing…A fault is some sort of flaw or mistake in the systemA failure is some sort of observably incorrect behavior in the systemNot every fault is a failure!For example, if a system has a redundant component, a fault in one component will not lead to a failureAside: Measuring QualitySo why the concern about faults and failures?You want to make sure that you are shipping products that work!In volume manufacturing, there are two ratios of concern:Yield: Of all the parts I make, how many do I consider “good”?Product quality: Of all the parts that I ship to customers, how many do they consider “good”?The former (some number of parts being bad) is considered “normal” in the IC industryMany factors cause a certain number of parts to be bad in every batchThe latter is what we are concerned about – how many parts that I ship are considered “bad”?Quality MetricsThe number of defective, shipped parts is normally expressed as “defective parts per million” or DPPMThe number of defective parts out of every lot of 1,000,000Some industries may require even higher rates of quality and use more stringent metrics, such as DPPBThought questions: How do you guarantee a certain DPPM rate? Does that mean you have to completely test every single part?Which is more expensive – a lot of testing or shipping some bad parts?These questions have no single right answer!Test Philosophy, ctd.Coming back to integrated circuits…So how do you test a single circuit?You have to apply every possible input and observe the correct output in every caseThere is no shortcut here – if you don’t do both, then there is the possibility that the circuit will not work under untested input conditionsThis drives two very important issues in testing:Controllability: Can you apply every single input case?Observability: Can you sense if the input is correct or not?Consider a simple example…2-input NOR gate:Apply all four input combinationsCheck the output for each casePiece of cake, right?But what if that gate is in the middle of a bunch of other logic?011001010100FBAABFConsider another example…Consider the following circuitABCDEFGWhat combinations of inputs and outputs test all 4 gates?Must apply every input combination and observe every output1234Consider another example…My answer…ABCDEFG12341111110010110000001000011011010100101100100000000GFEDCBAEach combinations of inputs and outputs is called a test vectorThis example has 7 vectorsGoal is to maximize coverage with minimal number of test vectorsNot-so-simple example…How do you control and observe every single gate in a complex circuit?For example, how do you apply all 4 combinations to the NOR gate above?How do you observe the output of all 4 input combinations?That may be impossible – the clock will cause the output to be non-observable ½ of the timeABFWe need a computer to keep track of it all!It soon becomes clear that we need special software tools to track every single transistorFind every instance where the output of the gate directly affects a measurable outputFind the input combination for that outputTrack how many input combinations have been applied and then observedThe overall result is the fraction of the chip that has been testedSimple example: 4 logic gates14/20 = 70% test coverage3441420Total683242341# actually tested# of possible combinationsGateHow good is “good enough”?Studies show how much testing is needed to achieve a certain level of reliabilitySource: sina.sharif.edu/~hessabi/Test/lec4.pdf 1000 DPPM = 99% coverage100 DPPM = 99.9% coverage10 DPPM = 99.99% coverageAnd so the problem emerges…If you want 10 to 100 DPPM (typical quality numbers), you need 99.9% to 99.99% test coverage.Example: 120,000,000 transistors = 30,000,000 gates = 120,000,000 input combinationsMust test about 119,880,000 out of 120,000,000 combinations to achieve 100 DPPMThe approach of simply applying inputs and checking outputs “runs out of gas” at around 90% - 95% test coverage.What shortcuts can we take?Eliminate input combinationsExample: Multiplier array (2-dimensional array of adders)Some combinations of inputs are physically impossible and can be eliminatedVery regular logic structuresExample: CountersMost input combinations are tested by exhaustively testing the states of the structureAside: The evil of counters…Counters are notorious in testability circlesExample: A 32-bit counter is only completely tested after a sequence of 232= 4 x 109iterationsClassic solution: Add logic to break a single big counter into several smaller countersExample: Break 32-bit counter into 4 8-bit countersSegues into the next step: Add testability logicTestability LogicIt soon becomes clear that extra logic will be needed just to finish the testingExample: Breaking up countersExample: Injecting number patterns into arithmetic logicExample: Observing internal logic states on outputsWhat if the testability logic is itself broken?Doesn’t really matter, as long as faults are manifested in observable waysYou cannot fix an IC – you only want to throw it away if it is broken – so it doesn’t matter if the testability logic is broken or the logic under test is brokenHow do we get controllability and observability?In general, digital circuits consist of patches of combination logic strung between flip-flopsIf you can control the flip-flops, you can force input combinations into the combinational logicIf you can observe the flip-flops, you can read the internal behaviors of the combinational logicCombinationalLogicclockOutputsStateRegistersNextStateCurrentStateInputsStateRegistersStateRegistersMethod 1: Built-in Self-Test (BIST)It is easy to build circuits that create repeatable bit patternsBuilt up from networks of XOR
View Full Document