An Introduction to Digital Systems Simulation Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)

Slides:



Advertisements
Similar presentations
Module 5 : Component Libraries Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
Advertisements

Programming Types of Testing.
1 Lecture 13 VHDL 3/16/09. 2 VHDL VHDL is a hardware description language. The behavior of a digital system can be described (specified) by writing a.
Some examples Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
The Design Process Outline Goal Reading Design Domain Design Flow
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
HDL-Based Digital Design Part I: Introduction to VHDL (I) Dr. Yingtao Jiang Department Electrical and Computer Engineering University of Nevada Las Vegas.
Overview of Software Requirements
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts,
Combinational Logic Design
1 Lecture 11 Chap 13: Test Benches Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Introduction to Software Testing
BY: SACHIN SHRIVASTAVA Operating System By : Sachin Shrivastava 1.
Guest Lecture by Ben Magstadt CprE 281: Digital Logic.
Logic level sequential blocks Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
Guest Lecture by Ben Magstadt CprE 281: Digital Logic.
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
1 Validation & Verification Chapter VALIDATION & VERIFICATION Very Difficult Very Important Conceptually distinct, but performed simultaneously.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Lecture 12 – Design Procedure.
IAY 0600 Digitaalsüsteemide disain Event-Driven Simulation Alexander Sudnitson Tallinn University of Technology.
VTT-STUK assessment method for safety evaluation of safety-critical computer based systems - application in BE-SECBS project.
ITEC224 Database Programming
RT level combinational blocks Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
Introduction to Computers and Programming – Computer Programming.
Geometric interpretation & Cubes Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
HDL Bencher FPGA Design Workshop. For Academic Use Only Presentation Name 2 Objectives After completing this module, you will be able to:  Describe the.
Approaches to design entry Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
Digital networks classification Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
1 Introduction to Software Engineering Lecture 1.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
Language Concepts Ver 1.1, Copyright 1997 TS, Inc. VHDL L a n g u a g e C o n c e p t s Page 1.
CWRU EECS 317 EECS 317 Computer Design LECTURE 1: The VHDL Adder Instructor: Francis G. Wolff Case Western Reserve University.
Introduction to Computer Application (IC) MH Room 517 Time : 7:00-9:30pm.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
Basic Boolean Functions Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Introduction to VLSI Design – Lec01. Chapter 1 Introduction to VLSI Design Lecture # 11 High Desecration Language- Based Design.
 Seattle Pacific University EE Logic System DesignCAD-VHDL-1 The Grunt Work of Design Many design tasks require a lot of time and effort Forming.
A brief introduction to EDA systems Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
Assignment write a short notes on 1.Manufacturing Testing. 2.Functional Testing. 3.Files and Text I/O. 4.Differentiate the cpld and fpga architecture.
5-1 Logic System Design I VHDL Design Principles ECGR2181 Reading: Chapter 5.0, 5.1, 5.3 port ( I: in STD_LOGIC_VECTOR (1 to 9); EVEN, ODD: out STD_LOGIC.
EE121 John Wakerly Lecture #17
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Software Requirements Specification Document (SRS)
IAY 0600 Digital Systems Design Event-Driven Simulation VHDL Discussion Alexander Sudnitson Tallinn University of Technology.
Winter 2007SEG2101 Chapter 121 Chapter 12 Verification and Validation.
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
CprE 281: Verilog Tutorial Ben Magstadt – Master’s Student Electrical Engineering.
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Computer Systems Architecture Edited by Original lecture by Ian Sunley Areas: Computer users Basic topics What is a computer?
EECE 320 L8: Combinational Logic design Principles 1Chehab, AUB, 2003 EECE 320 Digital Systems Design Lecture 8: Combinational Logic Design Principles.
George Mason University Finite State Machines Refresher ECE 545 Lecture 11.
Advanced Computer Systems
Testing Tutorial 7.
IAY 0600 Digitaalsüsteemide disain
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
ECE 434 Advanced Digital System L08
Floating Point Hardware and Algorithms
CPE 528: Lecture #3 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
CMP 131 Introduction to Computer Programming
ECE 448 Lecture 6 Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL code ECE 448 – FPGA and ASIC Design.
Digital Designs – What does it take
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Chapter 10 Introduction to VHDL
Presentation transcript:

An Introduction to Digital Systems Simulation Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Lecture 10.1

Goal  This lecture presents a brief introduction to digital system simulation  The use of a simulation tool for Validation & Verification is targeted as well.

Prerequisites  Module 4

Homework  No particular homework is foreseen

Further readings  Students interested in a deeper knowledge of simulation algorithms can refer, for instance, to:  M. Abramovici, M.A. Breuer, A.D. Friedman: “Digital System Testing and Testable Design (revised printing),” IEEE Press, Piscataway, NJ (USA), 1990 (chapter 3, pp )

Outline  Introduction  Simulation tool architecture  Using a simulation tool for Validation & Verification.

Simulating a system consists in analyzing the behavior of a model of the system itself. Simulation

Simulating a system consists in analyzing the behavior of a model of the system itself. Simulation Usually extracted from the system description

Simulating a system consists in analyzing the behavior of a model of the system itself. Simulation Usually generated from the system description According to its accuracy, different information can be extracted from the simulation experiment

Status Simulation is the industrial usual approach for:  project debugging  verification  validation  design rule checking  performances analysis  timing analysis  …

Outline  Introduction  Simulation tool architecture  Using a simulation tool for Validation & Verification

Circuit description InputWaveformsGeneratorSimulationCommands Output Waveforms Analyzer Simulation Engine Libraries

Circuit description InputWaveformsGeneratorSimulationCommands Output Waveforms Analyzer Simulation Engine Libraries Computes the output waveforms of the system, starting from the circuit description and the input waveforms

Circuit description InputWaveformsGeneratorSimulationCommands Output Waveforms Analyzer Simulation Engine Libraries pattern i pattern i < file1.pat 10=1 (200=0 200=1)*2 wfm (1000 = inc by 1\D)*4

Circuit description SimulationCommands Output Waveforms Analyzer Simulation Engine Libraries Waveforminterpreter Inputwaveforms

Circuit description SimulationCommands Output Waveforms Analyzer Simulation Engine Libraries Waveforminterpreter Inputwaveforms |Simulate the circuit RUN sim 10ns cycle 10 step next

Circuit description Output Waveforms Analyzer Simulation Engine Libraries Waveforminterpreter Inputwaveforms Commandinterpreter Simulationcommands

Output Waveforms Analyzer Simulation Engine Libraries Waveforminterpreter Inputwaveforms Commandinterpreter Simulationcommands Design Data Base Networkdescription Networklinker Hardwaremodeller

Output Waveforms Analyzer Simulation Engine Libraries Waveforminterpreter Inputwaveforms Command interpreter Simulation commands Design Data Base Network description Network linker Hardware modeller ABCDE

Simulation Engine Libraries Waveforminterpreter Inputwaveforms Commandinterpreter Simulationcommands Outputwaveforms Waveformanalyzer Design Data Base Networkdescription Networklinker Hardwaremodeller

Simulation Engine Libraries Waveforminterpreter Inputwaveforms Commandinterpreter Simulationcommands Outputwaveforms Waveformanalyzer Design Data Base Networkdescription Networklinker Hardwaremodeller Libraries

Outline  Introduction  Simulation tool architecture  Using a simulation tool for Validation & Verification

Be careful: Exhaustive Simulation is mostly unfeasible

Just an example... Exhaustively simulating a 32 bit adder requires applying 2 65 input values Assuming simulating a single value require 1 ns, the whole simulation process would requires 1,100+ years !!!!

A further example... CPU Intel 8080:  about 120 latches  256 machine instructions  8-bit and 16-bit operands: 3.15  instructions

A further example... CPU Intel 8080:  about 120 latches  256 machine instructions  8-bit and 16-bit operands: 3.15  instructions years 2 · The life of our Universe is estimated 2 · years !

A basic approach to V&V  Identify the set of peculiar aspects, or properties, of the design that need to be checked

A basic approach to V&V  Identify the set of peculiar aspects, or properties, of the design that need to be checked  Organize your V&V operations as a set of independent sessions, each aiming at checking the correctness of some of the above selected peculiar aspects or properties.

A simulation session  For each target aspect or property:  State how to check it  Select the minimum set of input values needed  For each selected value, state the expected output  Identify the most efficient way for:  applying the input values  analyzing the circuit behavior.

A simulation session (cont’d)  Hints:  Simulate the basic behaviors of the system, first  Then, focus on potential critical situations:  Identify border line conditions between alternative behaviors (e.g., change the status of the circuit)  Force the circuit to reach border line conditions

Identify the most efficient way to perform simulation experiments A simulation experiment can be performed in either way:  resorting to a VHDL Test Bench (highly recommended)  controlling the experiment manually, in a highly interactive manner (for expert designers or for fine tuning and debugging).

The basic principle VHDL Description of the target system

The basic principle VHDL Description of the target system Test Bench

The basic principle VHDL Description of the target system Test Bench

The basic principle VHDL Description of the target system Test Bench Implemented as 2 structural Descriptions: - the VHDL Circuit - the Test Bench

The basic principle VHDL Description of the target system Test Bench The entity of the target circuit must be the actual one

Test Bench characteristics  The same Test Bench should be used though the overall design process, from specs to netlist

Test Bench characteristics (cont’d)  The Test Bench is described for simulation purposes, only, and therefore it does not have to be synthesizable  It may thus contains not-synthesizable statements, such as:  timing specification (e.g., wait) to generate the input waveforms  assertions to check the output waveforms and to generate error messages.

Test Bench characteristics (cont’d)  The Test Bench can have different complexities, to perform different tasks during the various V&V steps:  just apply input values:  generated internally  read from external files  apply input values & check output values  save output values on external files ...

Some examples We shall consider some cases.

Case #1  The input values are explicitly specified within the Test Bench process  The correctness of the output values is evaluated analyzing the displayed output waveforms, using the facilities of the simulation tools.

Case #2  The input values and the corresponding expected outputs are stored inside the Test Bench, resorting to an array  The Test Bench process reads from the array the input values, and applies them to the target system  The correctness of the output values is evaluated inside the Test Bench process. Using an assert statement, the output values of the target circuit are compared with the expected ones, stored into the array.

Case #3  The input values and the corresponding expected outputs are stored into two distinct files  First, the Test Bench process reads, from an input file, the input values and applies them to the target system  Then, the Test Bench process writes, on an output file, the output values generated by the target circuit

Case #3 (cont’d)  The correctness of the output values is evaluated externally to the Test Bench process: the generated output file is compared with a file of expected output values, defined by the designer.

Case #3: typical usage  The proposed approach is typically used for both design validation and verification.

Simulation for Design Validation Comparator Input values Simulator Simulation results Expected results