Silicon Programming--Testing1 Completing a successful project (introduction) Design for testability.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Digital Integrated Circuits© Prentice Hall 1995 Design Methodologies Design for Test.
Test process essentials Riitta Viitamäki,
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
1 Software Engineering Lecture 11 Software Testing.
Software Failure: Reasons Incorrect, missing, impossible requirements * Requirement validation. Incorrect specification * Specification verification. Faulty.
9. Fault Modeling Reliable System Design 2011 by: Amir M. Rahmani.
Testing: General Requirements, DFT, Multilevel Testing Testing: General Requirements DFT Multilevel Testing-- System, Black Box, White Box Tests.
EE466: VLSI Design Lecture 17: Design for Testability
Copyright 2001, Agrawal & BushnellDay-1 AM Lecture 11 Design for Testability Theory and Practice January 15 – 17, 2005 Vishwani D. Agrawal James J. Danaher.
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
1 Presented by Yifat Kapach jtag course What is SCITT? Static Component Interconnection Test Technology Standard IEEE P1581.
Design for Testability
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 11 Lecture 1 Introduction n VLSI realization process n Verification and test n Ideal and real tests.
Spring 07, Jan 16 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Introduction Vishwani D. Agrawal James J. Danaher.
Testing: General Requirements, DFT, Multilevel Testing Testing: General Requirements DFT Multilevel Testing-- System, Black Box, White or Glass Box Tests.
1 Introduction VLSI Testing. 2 Overview First digital products (mid 1940's) Complexity:low MTTF:hours Cost:high Present day products (mid 1980's) Complexity:high.
Vishwani D. Agrawal James J. Danaher Professor
Testing of Logic Circuits. 2 Outline  Testing –Logic Verification –Silicon Debug –Manufacturing Test  Fault Models  Observability and Controllability.
Testing: General Requirements, DFT, Multilevel Testing Testing: General Requirements DFT Multilevel Testing-- System, Black Box, White Box Tests.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Copyright 2001, Agrawal & BushnellDay-1 AM-1 Lecture 11 Testing Analog & Digital Products Dr. Vishwani D. Agrawal James J. Danaher Professor of Electrical.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
1 Principles of testing TESTING BASICS: Basic principles of testing: Testing must be:  thorough  ongoing  developed with design  efficient most effective--independent.
Introduction to Software Testing
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
EE 587 SoC Design & Test Partha Pande School of EECS Washington State University
Copyright 2001, Agrawal & BushnellLecture 1 Introduction1 VLSI Testing Dr. Vishwani D. Agrawal James J. Danaher Professor of Electrical and Computer Engineering.
System/Software Testing
공과대학 > IT 공학부 Embedded Processor Design Chapter 8: Test EMBEDDED SYSTEM DESIGN 공과대학 > IT 공학부 Embedded Processor Design Presenter: Yvette E. Gelogo Professor:
EE 447/EE547 1 VLSI DESIGN Lecture 10 Design for Testability.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Introduction to CMOS VLSI Design Test. CMOS VLSI DesignTestSlide 2 Outline  Testing –Logic Verification –Silicon Debug –Manufacturing Test  Fault Models.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Embedded Systems: Testing. Testing needs to occur at many levels and at many stages in the development process. Testing is needed to verify adherence.
August VLSI Testing and Verification Shmuel Wimer Bar Ilan University, School of Engineering.
CSE477 L28 DFT.1Irwin&Vijay, PSU, 2003 CSE477 VLSI Digital Circuits Fall 2003 Lecture 28: Design for Test Mary Jane Irwin ( )
1 Note on Testing for Hardware Components. 2 Steps in successful hardware design (basic “process”): 1.Understand the requirements (“product’) 2.Write.
Testing: General Requirements, DFT, Multilevel Testing Testing: General Requirements DFT Multilevel Testing-- System, Black Box, White or Glass Box Tests.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
CS/EE 3700 : Fundamentals of Digital System Design
Software Engineering Saeed Akhtar The University of Lahore.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
Testing: General Requirements; DFT; Multilevel Testing.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Software Quality Assurance and Testing Fazal Rehman Shamil.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Embedded Systems: Testing. Combinational Logic Main issues in testing embedded systems hardware: The world is ANALOG, not digital; even in designing.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Speaker: Nansen Huang VLSI Design and Test Seminar (ELEC ) March 9, 2016 Simulation-Based Equivalence Checking.
Lecture 5: Design for Testability. CMOS VLSI DesignCMOS VLSI Design 4th Ed. 12: Design for Testability2 Outline  Testing –Logic Verification –Silicon.
Software Testing.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Testing Tutorial 7.
Rekayasa Perangkat Lunak Part-13
John D. McGregor Session 9 Testing Vocabulary
ELEC 7770 Advanced VLSI Design Spring 2016 Introduction
Verification and Testing
John D. McGregor Session 9 Testing Vocabulary
ELEC 7770 Advanced VLSI Design Spring 2014 Introduction
John D. McGregor Session 9 Testing Vocabulary
Software testing strategies 2
Introduction to Software Testing
ELEC 7770 Advanced VLSI Design Spring 2012 Introduction
ELEC 7770 Advanced VLSI Design Spring 2010 Introduction
Presentation transcript:

Silicon Programming--Testing1 Completing a successful project (introduction) Design for testability

Silicon Programming--Testing2 Completing a successful project Project components: product—your desired end result process—steps to achieve the result people—team that works together, using the process, to achieve the result We need all 3 components to complete a successful project

Silicon Programming--Testing3 Steps in successful hardware design (basic “process”): 1.Understand the requirements (“product’) 2.Write a complete specification 3.Make a modular design 4.Use incremental implementation 5.Write well-structured, well-commented code 6.Use standard testing strategies, including: design for testability hierarchical testing scan path testing

Silicon Programming--Testing4 One area that is often overlooked: TESTING In particular, we need to use the strategy of “design for testability”, i.e., we need to include steps that will support hierarchical testing in our process from the very beginning of the project

Silicon Programming--Testing5 System testing goals: verification--functions correctly implemented validation--we are implementing the correct functions (according to requirements) (which task is more difficult?) TEST: does the system perform as required? DIAGNOSIS: if not, what is causing the error(s)? (Here we are concentrating more on verification)

Silicon Programming--Testing6 Basic requirements (not hardware-specific)--a testing strategy must be: thorough ongoing DEVELOPED WITH DESIGN (design for testability) note: this implies that several LEVELS of testing will be carried out efficient able to ensure observability of the results of each test applied

Silicon Programming--Testing7 Successful testing strategy requires a different perspective from that of the designer and/or implementer: good test: has a high probability of finding an error ("bad test": not likely to find anything new) successful test: finds a new error Testing should be done by a person or team that is INDEPENDENT of the designer /implementer

Silicon Programming--Testing8 Testing cannot be exhaustive (“testing is NP-complete”): Example: suppose we wish to test the functionality of a VLSI chip which has 90 inputs 2,304 flip-flops (16,384 RAM bits) How many tests to we require for exhaustive testing? What is the overall time to test if we can do 1 test / msec? 1 test /  sec?  test  sec?

Silicon Programming--Testing9 Some strategies for dealing with the complexity of testing: heuristics (genetic algorithms, random testing, testing of critical cases, boundary cases, …) to choose a reasonable set of test cases to ensure good “fault coverage” integration of each new test identified into a test suite which can be reapplied to the system under test whenever a new error is found or a change is made modularity, with hierarchical design and testing incremental development, with thorough testing at each stage

Silicon Programming--Testing10 example: for an ALU containing adder, complementer, ander, multiplier: what testing strategy should we use? What about for a 16-bit adder?

Silicon Programming--Testing11 General testing hierarchy (hardware or software): white box: individual component black box: module (only look at inputs and outputs) system: are overall specifications met? For your homeworks and project: you need to use hierarchical testing each VHDL component should have an associated.vec file.vec file needs to include comments to show what you are trying to test

Silicon Programming--Testing12 Where can errors arise in hardware? How can we detect these errors? specification errors design errors fabrication defects physical failures wrong outputs (behavior) timing errors other errors such as “glitches”

Silicon Programming--Testing13 design errors include: incomplete or inconsistent specifications incorrect mappings between design levels and / or views failure to follow design rules errors made by the designer (“coding errors”) errors due to undiscovered bugs in the design tools

Silicon Programming--Testing14 fabrication defects include: unwanted shorts or open circuits improper doping mask alignment errors Improvement in the fabrication process can reduce these types of errors and increase the yield (% of good chips per wafer) of the given process

Silicon Programming--Testing15 physical failures arise from wear on the system and from environmental factors physical faults include fabrication defects and physical failures a physical fault may be permanent, intermittent, or transient for purposes of testing physical faults are usually modeled as logical faults, for example “stuck at 1” or “stuck at 0”

Silicon Programming--Testing16 testing methods: in this course we will use simulation to “test” our circuits; when results of the simulation are acceptable, the actual circuit can then be tested through downloading onto the board we will mainly be concerned with two types of design errors: behavioral errors (the output values are not what was predicted) timing errors (delay between registers is too long for the correct values to be saved)

Silicon Programming--Testing17 controllability and observability: in the physical device, we need to be able to 1. control the internal state of each flip-flop and of inputs 2. observe the output values at various points in the circuit we do not have enough I/O pins to access all desired sites directly solution: use scan path testing

Silicon Programming--Testing18 using a scan path: flip-flop outputs flip-flop inputs normal operation mode: f_i gets input in_i, produces output out_i scan mode: f_i gets input from f_(i+1) (f_3 gets input from scanin) protocol: scan in a vector; perform test; scan out results note: only 3 pins needed (scanin, scanout, one-bit control line) instead of 8 pins (in general, 3 pins instead of 2N pins for N ff’s) f_3f_2f_1f_0 scanout scanin in_3in_1in_2 out_0out_1out_2 out_3 in_0

Silicon Programming--Testing19 Some important testing terms: ATG: "automatic test generation” (for stuck-at faults) BIST: "built-in-self test” (either for new components or “in the field”)

Silicon Programming--Testing20 For your homeworks and project--simulation will support logic testing and some timing analysis--for overall chip, this should be verified in the actual circuit 1. Use hierarchical testing; test as you design; use incremental design and testing, with system tests each time a new component is integrated 2. Implement scan path(s) to test register and flip-flop behavior 3. Document your testing through well-commented.vec files