HW/SW- Codesign Verification and Debugging. HW versus SW Ondrej Cevan.

Slides:



Advertisements
Similar presentations
SOC Design: From System to Transistor
Advertisements

CMSC 611: Advanced Computer Architecture
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Apr. 20, 2001VLSI Test: Bushnell-Agrawal/Lecture 311 Lecture 31 System Test n Definition n Functional test n Diagnostic test  Fault dictionary  Diagnostic.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Evolution and History of Programming Languages Software/Hardware/System.
The Design Process Outline Goal Reading Design Domain Design Flow
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
What Great Research ?s Can RAMP Help Answer? What Are RAMP’s Grand Challenges ?
DSI Division of Integrated Systems Design Functional Verification Environments Development Goals Our main goals are in the field of developing modular.
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
Introduction to Software Testing
Software Testing & Strategies
VerificationTechniques for Macro Blocks (IP) Overview Inspection as Verification Adversarial Testing Testbench Design Timing Verification.
1  Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997  Gajski, Vahid, Narayan and Gong, “Specification,
Computer Programming and Basic Software Engineering 4. Basic Software Engineering 1 Writing a Good Program 4. Basic Software Engineering.
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CPIS 357 Software Quality & Testing
CMSC 345 Fall 2000 Unit Testing. The testing process.
CAD Techniques for IP-Based and System-On-Chip Designs Allen C.-H. Wu Department of Computer Science Tsing Hua University Hsinchu, Taiwan, R.O.C {
Instructor: Peter Clarke
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Digitaalsüsteemide verifitseerimise kursus1 Digitaalsüsteemide verifitseerimine IAF0620, 5.0 AP, E Jaan Raik IT-208,
Design Verification An Overview. Powerful HDL Verification Solutions for the Industry’s Highest Density Devices  What is driving the FPGA Verification.
Hardware Design Environment Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Testing Workflow In the Unified Process and Agile/Scrum processes.
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
Languages for HW and SW Development Ondrej Cevan.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
The Macro Design Process The Issues 1. Overview of IP Design 2. Key Features 3. Planning and Specification 4. Macro Design and Verification 5. Soft Macro.
An Unobtrusive Debugging Methodology for Actel AX and RTAX-S FPGAs Jonathan Alexander Applications Consulting Manager Actel Corporation MAPLD 2004.
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
Safety Critical Systems 5 Testing T Safety Critical Systems.
25 April 2000 SEESCOASEESCOA STWW - Programma Evaluation of on-chip debugging techniques Deliverable D5.1 Michiel Ronsse.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
1 Extending FPGA Verification Through The PLI Charles Howard Senior Research Engineer Southwest Research Institute San Antonio, Texas (210)
1 Copyright  2001 Pao-Ann Hsiung SW HW Module Outline l Introduction l Unified HW/SW Representations l HW/SW Partitioning Techniques l Integrated HW/SW.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
1 IAF0620, 5.0 AP, Exam Jaan Raik ICT-524, , Digital systems verification.
November 29, 2011 Final Presentation. Team Members Troy Huguet Computer Engineer Post-Route Testing Parker Jacobs Computer Engineer Post-Route Testing.
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
© 2000 Morgan Kaufman Overheads for Computers as Components Host/target design  Use a host system to prepare software for target system: target system.
Test Plan: Introduction o Primary focus: developer testing –Implementation phase –Release testing –Maintenance and enhancement o Secondary focus: formal.
Chapter 11 System-Level Verification Issues. The Importance of Verification Verifying at the system level is the last opportunity to find errors before.
Evaluating the Fault Tolerance Capabilities of Embedded Systems via BDM M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dipartimento di Automatica.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
1 The user’s view  A user is a person employing the computer to do useful work  Examples of useful work include spreadsheets word processing developing.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
EMT 351/4 DIGITAL IC DESIGN Week # 1 EDA & HDL.
System-on-Chip Design
Programmable Hardware: Hardware or Software?
ASIC Design Methodology
An Unobtrusive Debugging Methodology for Actel AX and RTAX-S FPGAs
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
VLSI Testing Lecture 14: System Diagnosis
THE PROCESS OF EMBEDDED SYSTEM DEVELOPMENT
Verification and Testing
VLSI Testing Lecture 15: System Diagnosis
Figure 1 PC Emulation System Display Memory [Embedded SOC Software]
Introduction to Software Testing
Bus-Based Computer Systems
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
PSS verification and validation
Presentation transcript:

HW/SW- Codesign Verification and Debugging. HW versus SW Ondrej Cevan

Outline what is testing embedding testing in design process of HW & SW testing tools in HW, SW Simulator, Emulator, Monitor

HW/SW Codesign Verification and Debugging3 What is Testing? “to place a product or piece of equipment under everyday and/or extreme conditions and examine it for its durability, etc.” (wiktionary.org) with testing we want to achieve:  the object meets its specification  estimation for reliability  save cost (maintenance)  improve quality debugging: the activity of locating, analyzing and removing a bug (an error state) from the system.

HW/SW Codesign Verification and Debugging4 Design Flow and Testing V-model in SW design assigns testing activities to development activities (figure from Yilin's slide)

HW/SW Codesign Verification and Debugging5 Design Flow and Testing model in HW- design extension of every test process in V-model Simulations are checks for the designer to make sure correct behavior is being implemented we need to simulate the HW-clock

HW/SW Codesign Verification and Debugging6 Abstraction Levels SW:  System Specification Language  High-level Language  Assembler  Computer Instructions HW:  System Level  Algorithmic Level  Register Transfer Level  Logic Level  Circuit Level  Chip

HW/SW Codesign Verification and Debugging7 HW-model Behavior Simulation  verifies the correctness of the HDL description  not every code is synthesis-able Functional Simulation  verification after synthesis, design with internal components Pre Layout Simulation  after technology mapping, design with components of the target technology Post Layout Simulation  to verify the results of place and route process  timing and functionality of the design checked

HW/SW Codesign Verification and Debugging8 Verification Methods (HW/SW) Review (of documents & code) Formal Verification (model checking, theorem proving) Dynamic Verification:  functional testing, structural testing, performance, reliability, security testing  simulations, black-box, white-box, code coverage, path coverage, throughput, resource usage, response time, stress/load testing, fault injection, simulation of attack...

HW/SW Codesign Verification and Debugging9 Verification Methods/Tools HW Hardware Implemented Fault Injection (HIFI) Hardware in the Loop Remote debugging tools (in-circuit emulator (ICE) = on-circuit debugger (OCD)= background debug module (BDM)) Logic Analyzer Oscilloscope (manual I/O testing) Simulation-based fault injection (inject faults in a simulation model- on electrical level, gate level, register level, VHDL level, system level) FPGA Prototyping

HW/SW Codesign Verification and Debugging10 SW/HW-Simulator simulator resembles real-world environment Hardware in the Loop, Software in the Loop, Model in the Loop Testbench (generates stimuli- input vector, emulates test cases) test case created from the specification document

HW/SW Codesign Verification and Debugging11 SW/HW-Debugger an analyze tool for developers to test and debug other programs program or fraction of code is processed line by line one can stop the program, read the values of variables and set new values to the variables certain test environments, test situations can be enforced also good for failure reproduction and fault analysis examples: GNU debugger (gdb), dbx, vhdldbx, Eclipse

HW/SW Codesign Verification and Debugging12 SW/HW- Emulator ability of a program or device to imitate other program or device in theoretical sense, Church-Turing thesis implies that any operating environment can be emulated within any other (in practice it can be quite difficult to achieve it) enables to test code for specific HW on a common PC we can emulate HW faults in the design phase (e.g. with fault injection) also SW faults can be emulated (Ballista tool) other ex.: wine, Commodore 64 emulator,...

HW/SW Codesign Verification and Debugging13 HW-Emulator Simulation: executes RTL code serially, good debug environment, user interface, easy, flexible, low cost, BUT: not fast enough for large designs Prototype: executes fully in parallel, fast, BUT needs logic analyzer to analyze limited number of signals, little to no debug capability HW-Emulator: rich debug environment, parallel execution, provides many features that can be found in logic simulators, a specific case of HW Emulator: In-Circuit Emulator

HW/SW Codesign Verification and Debugging14 In-Circuit Emulator (ICE) provides a “window” (UI) into the embedded system often emulates the CPU recent ICEs enable a programmer to access the on chip debug circuit that is integrated into the CPU of the embedded system computer accessed via JTAG or BDM (background debug mode) offers to the developer a full control over the system under test (code loading, debugging, memory analysis, monitoring of signals...)

HW/SW Codesign Verification and Debugging15 Monitor software tool or hardware unit acts concurrent with the system or component observes /monitors, verifies, analyses and records the execution of the system  e.g. measures the response time depending on the amount of user transactions (performance testing)

HW/SW Codesign Verification and Debugging16 When do we have tested enough? exhaustive testing is infeasible in practice we define coverage criteria that have to be met by a testing functional coverage (black-box view) structural coverage (white-box view)  code coverage: path coverage, state coverage, statement coverage, decision coverage, MCDC...  data flow coverage in industry safety standards are used that describe the testing procedure and also the system development (RTCA/DO-178b, IEC 61508), certification is also used in some domains

HW/SW Codesign Verification and Debugging17 Effort and Time many factors influence the time spent on testing  know-how, experience, test-object (is it new to the test team?), test strategy, requirements on the object: is it safety critical?, how intensive must the object be tested?, what quality of the object should be achieved?... in theory in SW the test effort should be approximately 50% of the total development effort (rule of thumb according to the book Basiswissen Softwaretest) in HW it should be approximately 70-80% (according to the slides from VL Hardware Modeling) in practice: much much less 10-20% (according to the slides VL Hardware Modeling)

HW/SW Codesign Verification and Debugging18 Summary HW:  verification needs HW an SW tools  more effort is needed: no possibility for patches, the whole system/component must be replaced in case of failure SW:  SW tools for verification are sufficient  no need for extra testing hardware (oscilloscope..)

HW/SW Codesign Verification and Debugging19 List of used sources slides: VO Testing of Embedded Systems (Raimund Kirner, Astrid Ademaj) slides: VL Hardware Modeling (Martin Delvai) slides: VO Embedded System Engineering (Wilfried Elmenreich) book: Basiswissen Softwaretest, Andreas Spillner and Tilo Linz wikipedia.org wiktionary.org