1 IRAM Testing / Verification Sam Williams UC Berkeley

Slides:



Advertisements
Similar presentations
Detecting Bugs Using Assertions Ben Scribner. Defining the Problem  Bugs exist  Unexpected errors happen Hardware failures Loss of data Data may exist.
Advertisements

Slides Prepared from the CI-Tutor Courses at NCSA By S. Masoud Sadjadi School of Computing and Information Sciences Florida.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir.
Presenter: Jyun-Yan Li Design Fault Directed Test Generation for Microprocessor Validation Deepak A. Mathaikutty, Sandeep K. Shukla FERMAT Lab, Virginia.
ECE 720T5 Fall 2012 Cyber-Physical Systems Rodolfo Pellizzoni.
MCTS GUIDE TO MICROSOFT WINDOWS 7 Chapter 10 Performance Tuning.
MotoHawk Training Model-Based Design of Embedded Systems.
1 Steps for Production Code Generation Wind Turbine Pitch Controller 1. Generate test data and extract controller 2. Discretize Change integrator blocks.
1 RAMP White RAMP Retreat, BWRC, Berkeley, CA 20 January 2006 RAMP collaborators: Arvind (MIT), Krste Asanovíc (MIT), Derek Chiou (Texas), James Hoe (CMU),
1 CS294 Project VIRAM-1 Verification Retreat – Winter 2001 Sam Williams.
7/14/2000 Page 1 Design of the IRAM FPU Ioannis Mavroidis IRAM retreat July 12-14, 2000.
Incremental Network Programming for Wireless Sensors NEST Retreat June 3 rd, 2004 Jaein Jeong UC Berkeley, EECS Introduction Background – Mechanisms of.
Order-Independent Texture Synthesis Li-Yi Wei Marc Levoy Gcafe 1/30/2003.
DISTRIBUTED CONSISTENCY MANAGEMENT IN A SINGLE ADDRESS SPACE DISTRIBUTED OPERATING SYSTEM Sombrero.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
CMSC 414 Computer and Network Security Lecture 9 Jonathan Katz.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
SiliconAid Solutions, Inc. Confidential SAJE SiliconAid JTAG Environment Overview – Very Short.
ARM HARDWARE DEBUGGER Shane Mahon, Lyndsi Parker, and Drew Shafer.
1 Chapter 7 Design Implementation. 2 Overview 3 Main Steps of an FPGA Design ’ s Implementation Design architecture Defining the structure, interface.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Multicore experiment: Plurality Hypercore Processor Performed by: Anton Fulman Ze’ev Zilberman Supervised by: Mony Orbach Characterization presentation.
Mapping Physical Formats to Logical Models to Extract Data and Metadata Tara Talbott IPAW ‘06.
Processor Types And Instruction Sets Barak Perelman CS147 Prof. Lee.
Bottom-Up Integration Testing After unit testing of individual components the components are combined together into a system. Bottom-Up Integration: each.
Process-oriented System Automation Executable Process Modeling & Process Automation.
Impromptu Data Extraction and Analysis Data Mining and Analytics Framework for VLSI Designs Sandeep P
Cortex-M3 Debugging System
Włodzimierz Funika, Filip Szura Automation of decision making for monitoring systems.
MCTS Guide to Microsoft Windows 7
Designing For Testability. Incorporate design features that facilitate testing Include features to: –Support test automation at all levels (unit, integration,
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
Chapter 1 Introduction to SAS ® Enterprise Guide ®
Presenter : Ching-Hua Huang 2013/7/15 A Unified Methodology for Pre-Silicon Verification and Post-Silicon Validation Citation : 15 Adir, A., Copty, S.
ES 3 Takes the Provenance Challenge J AMES F REW Donald Bren School of Environmental Science and Management University of California, Santa Barbara
SPREE RTL Generator RTL Simulator RTL CAD Flow 3. Area 4. Frequency 5. Power Correctness1. 2. Cycle count SPREE Benchmarks Verilog Results 3. Architecture.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
CS1104 – Computer Organization PART 2: Computer Architecture Lecture 12 Overview and Concluding Remarks.
CEN 5070 – Software V&V Automation for Program Testing © , E.L. Jones.
Implementing Precise Interrupts in Pipelined Processors James E. Smith Andrew R.Pleszkun Presented By: Ravikumar Source:
Capabilities of Software. Object Linking & Embedding (OLE) OLE allows information to be shared between different programs For example, a spreadsheet created.
Computer Architecture And Organization UNIT-II General System Architecture.
Requirements Engineering Southern Methodist University CSE 7316 – Chapter 3.
Extending ISA/IAG beyond the limit. AGAT Security suite - introduction AGAT Security suite is a set of unique components that allow extending ISA / IAG.
1 Extending FPGA Verification Through The PLI Charles Howard Senior Research Engineer Southwest Research Institute San Antonio, Texas (210)
Lecture 2 Conditional Statement. chcslonline.org Conditional Statements in PHP Conditional Statements are used for decision making. Different actions.
HOW a Computer Works ? Anatomy of Microprocessor.
The Design of XML-Based Model and Experiment Description Languages for Network Simulation Andrew Hallagan Bucknell University Dept. of Computer Science.
The Instruction Set Architecture. Hardware – Software boundary Java Program C Program Ada Program Compiler Instruction Set Architecture Microcode Hardware.
Implementing Precise Interrupts in Pipelined Processors James E. Smith Andrew R.Pleszkun Presented By: Shrikant G.
Elements of Computing Systems, Nisan & Schocken, MIT Press, Chapter 6: Assembler slide 1www.nand2tetris.org Building a Modern Computer.
Random Test Generation of Unit Tests: Randoop Experience
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
Edexcel OnCourse Databases Unit 9. Edexcel OnCourse Database Structure Presentation Unit 9Slide 2 What is a Database? Databases are everywhere! Student.
December 1, 2006©2006 Craig Zilles1 Threads & Atomic Operations in Hardware  Previously, we introduced multi-core parallelism & cache coherence —Today.
Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir. A.C. Verschueren Eindhoven University of Technology Section of Digital.
Distributed Shared Memory
Database Systems Unit 16.
ACOE301: Computer Architecture II Labs
Lecture 14 Virtual Memory and the Alpha Memory Hierarchy
Page Replacement.
ChipScope Pro Software
Virtual Memory Overcoming main memory size limitation
ChipScope Pro Software
Course Outline for Computer Architecture
Sam Williams IRAM Summer Retreat 2000
Presentation transcript:

1 IRAM Testing / Verification Sam Williams UC Berkeley

2 Testing Intro Testing will be performed on each level of the design from ISA simulator through a VERILOG netlist, and also on actual parts. Level of testing will vary depending on capabilities. For functionality, tests are just snippets of assembly code in a specific test file format.

3 Pass/Fail Determination Self-checking: provide register/memory true values to compare output of simulator against. Trace Comparison: each simulator produces an architectural trace (instruction, PC, registers modified, new values, memory addresses/values). Then compare any two simulators Directed: require user inspection, e.g. cache replacement policy

4 Test File Format Simple text file divided into multiple sections (code, initialization, self-checking, simulator specific controls, variables, memory image) Random variables/sets can be used to produce very simple random self-checking tests Simulator controls allow configuration of simulators for a specific test Init/self-checking sections can set any register in any register file Wrapper incorporates all and creates the file(s) best suited for the simulators in question

5 Wrapper (verify script) Parse, random test generation Temp files args Source file(s) Simulators Output files Comparator pass/fail unique failing random tests

6 Comparator Gives pass/fail condition Compare traces generated from simulators. Looks for data miscompares, missing instructions, wrong destinations, etc… Currently only works on instruction level, not virtual processor. Can be used to generate/compare memory images from traces.

7 Random Test Generator Single configuration file used to determine number of instructions, probability distributions, exceptions allowed, control structures, speculative, etc… Control structures: e.g. for-loop, if-else, jsr primitives Can insert code to prevent exceptions from occurring, e.g. prevent misaligned accesses Insert vsync’s to ensure vector-scalar memory coherency Complex primitives, e.g. dot products, matrix operations, etc… Can be used to create random regressions where paramaters are automatically varied

8 Testing on Different Simulators ISA and performance simulator can take advantage of all methods For VERILOG and VERILOG netlist it is more difficult to implement a trace generator For silicon, it is essentially impossible to generate traces, and will not be possible to capture or even drive all pins. Solution is test through the JTAG interface. Requires the wrapper to run code to drive this interface with instructions, and extract results.

9 Future Work Further develop “unique fail” determination code in verify script Fully implement trace generator for VERILOG simulator. (Allows more than simple self-checking tests and memory image generation) Implement code to drive JTAG interface to perform silicon testing. Support for testing external / asynchronous events Write many more self-checking and directed tests