Reconfigurable Computing - Verifying Circuits John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound, Western.

Slides:



Advertisements
Similar presentations
Lecture 13: Sequential Circuits
Advertisements

Voltage and Current Division
Introduction So far, we have studied the basic skills of designing combinational and sequential logic using schematic and Verilog-HDL Now, we are going.
Theoretical Program Checking Greg Bronevetsky. Background The field of Program Checking is about 13 years old. Pioneered by Manuel Blum, Hal Wasserman,
Reconfigurable Computing - Clocks John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound, Western Australia.
Reliability of Disk Systems. Reliability So far, we looked at ways to improve the performance of disk systems. Next, we will look at ways to improve the.
1 Introduction to Computability Theory Lecture12: Reductions Prof. Amos Israeli.
Parallel Adder Recap To add two n-bit numbers together, n full-adders should be cascaded. Each full-adder represents a column in the long addition. The.
CSE-221 Digital Logic Design (DLD)
S. Reda EN160 SP’07 Design and Implementation of VLSI Systems (EN0160) Lecture 28: Datapath Subsystems 2/3 Prof. Sherief Reda Division of Engineering,
Sigaba 1 Sigaba Sigaba 2 Sigaba  Used by Americans during WWII o And afterwards (to about 1948)  Never broken o Germans quit collecting, considered.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Computer Structure - The ALU Goal: Build an ALU  The Arithmetic Logic Unit or ALU is the device that performs arithmetic and logical operations in the.
Arithmetic-Logic Units CPSC 321 Computer Architecture Andreas Klappenecker.
2/9/2007EECS150 Lab Lecture #41 Debugging EECS150 Spring2007 – Lab Lecture #4 Laura Pelton Greg Gibeling.
Copyright 2008 Koren ECE666/Koren Part.6a.1 Israel Koren Spring 2008 UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering Digital Computer.
02/10/06EECS150 Lab Lecture #41 Debugging EECS150 Spring 2006 – Lab Lecture #4 Philip Godoy Greg Gibeling.
Chapter 5 Arithmetic Logic Functions. Page 2 This Chapter..  We will be looking at multi-valued arithmetic and logic functions  Bitwise AND, OR, EXOR,
Propositional Calculus Math Foundations of Computer Science.
 Arithmetic circuit  Addition  Subtraction  Division  Multiplication.
Chapter 6-2 Multiplier Multiplier Next Lecture Divider
Systems Architecture I1 Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they.
Coverage – “Systematic” Testing Chapter 20. Dividing the input space for failure search Testing requires selecting inputs to try on the program, but how.
Reconfigurable Computing - Verifying Circuits Performance! John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn.
WEEK #10 FUNCTIONS OF COMBINATIONAL LOGIC (ADDERS)
Reconfigurable Computing - Assignment Feedback John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound, Western.
Very Large Scale Integrated chips (VLSI) The complexity of the digital computation chips is increasing in line with Moore’s law.The complexity of the digital.
Chapter 6-1 ALU, Adder and Subtractor
Checking data GCSE ICT.
Reconfigurable Computing - Multipliers: Options in Circuit Design John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on.
Digital Logic Computer Organization 1 © McQuain Logic Design Goal:to become literate in most common concepts and terminology of digital.
Reconfigurable Computing - Type conversions and the standard libraries John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots.
Basic Addition Review Basic Adders and the Carry Problem
Reconfigurable Computing - FPGA structures John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound, Western.
Computer Science 101 Circuit Design - Examples. Sum of Products Algorithm Identify each row of the output that has a 1. Identify each row of the output.
Reconfigurable Computing - VHDL John Morris Computer Science/ Electrical and Computer Engineering The University of Auckland Iolanthe racing off Fremantle,
Reconfigurable Computing - Verifying Circuit Performance! John Morris Chung-Ang University The University of Auckland ‘Iolanthe II’ in a good breeze on.
Half Adder & Full Adder Patrick Marshall. Intro Adding binary digits Half adder Full adder Parallel adder (ripple carry) Arithmetic overflow.
1 Lecture 12 Time/space trade offs Adders. 2 Time vs. speed: Linear chain 8-input OR function with 2-input gates Gates: 7 Max delay: 7.
Binary Adder DesignSpring Binary Adders. Binary Adder DesignSpring n-bit Addition –Ripple Carry Adder –Conditional Sum Adder –(Carry Lookahead.
Universal college of engineering & technology. .By Harsh Patel)
Sep 29, 2004Subtraction (lvk)1 Negative Numbers and Subtraction The adders we designed can add only non-negative numbers – If we can represent negative.
Topics covered: Arithmetic CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
Reconfigurable Computing - Pipelined Systems John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound, Western.
Unconventional Fixed-Radix Number Systems
Reconfigurable Computing - Options in Circuit Design John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound,
Computer Architecture
1 Lecture 12: Adders, Sequential Circuits Today’s topics:  Carry-lookahead adder  Clocks, latches, sequential circuits.
Silicon Programming--Testing1 Completing a successful project (introduction) Design for testability.
Introduction to Computing Systems and Programming Digital Logic Structures.
Arithmetic-Logic Units. Logic Gates AND gate OR gate NOT gate.
Reconfigurable Computing - Verifying Circuits Performance! John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn.
Reconfigurable Computing - Options in Circuit Design John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound,
COMPSYS 304 Computer Architecture Cache John Morris Electrical & Computer Enginering/ Computer Science, The University of Auckland Iolanthe at 13 knots.
Basic Addition Review Basic Adders and the Carry Problem Carry Propagation Speedup Speed/Cost Tradeoffs Two-operand Versus Multi-operand Adders.
Reconfigurable Computing - Options in Circuit Design John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound,
Addition and multiplication1 Arithmetic is the most basic thing you can do with a computer, but it’s not as easy as you might expect! These next few lectures.
Finite Automata (FA) with Output FA discussed so far, is just associated with R.Es or language. Is there exist an FA which generates an output string corresponding.
Reconfigurable Computing - Performance Issues John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound, Western.
Combinational Circuits
EKT 221 : Digital 2 Serial Transfers & Microoperations
Reconfigurable Computing - Verifying Circuits
Summary Half-Adder Basic rules of binary addition are performed by a half adder, which has two binary inputs (A and B) and two binary outputs (Carry out.
Polynomial Construction for Arithmetic Circuits
Subtraction The arithmetic we did so far was limited to unsigned (positive) integers. Today we’ll consider negative numbers and subtraction. The main problem.
Combinational Circuits
ECE 352 Digital System Fundamentals
ECE 352 Digital System Fundamentals
ECE 352 Digital System Fundamentals
A Practical Approach to Arithmetic Circuit Verification
Presentation transcript:

Reconfigurable Computing - Verifying Circuits John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound, Western Australia

Verification  Circuits need to be verified  This is completely obvious!  A circuit with an error  Costs money How much did Intel’s Pentium divide bug cost them?  May endanger lives Medical systems Aircraft control Spacecraft guidance  Spoil your reputation!  Testing is expensive!

Verification  Circuits need to be verified  Testing is expensive!  32-bit adder – inputs a, b, c  Naïve approach - Test all possibilities a – 4  10 9 ( all possible 32-bit numbers ) b – 4  10 9 ( do ) c – 2 ( 0 or 1 ) Total 4  4  2  = 1.6 x GHz machine – 10 9 cases / sec (optimistic!) 1.6  seconds – about 6 months will do it! What about the rest of the machine? -, x, /, ^, v, >, … We should be finished in about 5 years Hmmmm … our 4 GHz machine should be about 30 GHz now!  Clearly we need to be more efficient about testing!

Case study – Ripple carry adder  Composed of full adder circuits and carry chains  Test the full adders  3 inputs, each with 2 possible values  2 3 = 8 possible inputs  In this case, exhaustive testing (trying every possible combination of inputs) will work fine! 1.We can probably work out how to check all the full adders individually at the same time  If there are no carries, then they all operate independently  Input pairs (a=0,b=0) (a=0,b=1) and (a=1,b=0) all generate no carries, so we can test the inputs (a,b,c) = (0,0,0) (0,1,0) (1,0,0) (3 out of 8 cases) for each FA in parallel with the patterns 0000…0000 and 0000… …0000 and 1111… …1111 and 0000…0000 (3 tests)

Case study – Ripple carry adder  Composed of full adder circuits and carry chains  Test the full adders  3 inputs, each with 2 possible values  2 3 = 8 possible inputs  Exhaustive testing … 2.We can also check the cases where a carry is generated or propagated when there is a carry in  Input pairs (a=1,b=0) (a=0,b=1) and (a=1,b=1) all generate a carry, so we can test the inputs (a,b,c) = (1,0,1) (0,1,1) (1,0,1) (3 out of 8 cases) for each FA in parallel with the patterns 1111…1111 and 0000… …0000 and 1111… …1111 and 1111…1111 and a carry in set to 1

Case study – Ripple carry adder  Composed of full adder circuits and carry chains  Test the full adders  3 inputs, each with 2 possible values  2 3 = 8 possible inputs  Exhaustive testing … 3.Finally we have the cases where  a carry in is ‘absorbed’ (ie not propagated) (0,0,1)  a carry is generated when there is no carry in (1,1,0)  We can try to be efficient here and generate alternating patterns that test every second FA for these two cases  4 tests  Total tests so far  = 10

Case study – Ripple carry adder  Composed of full adder circuits and carry chains  Test the full adders  3 inputs, each with 2 possible values  2 3 = 8 possible inputs  Exhaustive testing …  Total tests so far  = 10  Now we’ve checked  Each FA block  Carry links between each block  Carry out (whenever carry is generated, we check the carry out from the whole circuit too!)  Carry in (needed to generate carry input to FA 0 ) so we could possibly claim that we’ve verified everything!

Case study – Ripple carry adder  Composed of full adder circuits and carry chains  Test the full adders  3 inputs, each with 2 possible values  2 3 = 8 possible inputs  Exhaustive testing …  10 tests adequate?  A formal argument certainly claims it!  A thorough tester would probably want to check  Different carry chain lengths Testing so far has only checked a carry propagated Across 1 link Along the full adder (there may be some circuit loading or cross-talk patterns that produce glitches)  Different numbers of sum bits  … possibly some more  But we can certainly get away with far less than 1.6 x tests!

Equivalence Classes  We reduced the number of tests by just working out which tests were ‘different’  They processed the inputs in a different way  We avoided tests which – although the inputs differed – were basically similar to other tests  This is formally known as identifying the equivalence classes  An equivalence class contains all the inputs which cause basically the same actions to occur  In the RC adder case, random inputs would just apply the 8 input patterns for each FA block to different parts of the adder  Our tests ensured that  all 8 possible patterns were tried  for each FA in the full circuit

Random Testing  With automated test generation  For example, use an FPGA to generate test vectors!  Testing can be very fast  ~10 9 tests / second is possible  Programmed generation of random numbers can apply large numbers of tests in reasonable times  However  There’s always a (non-zero) probability that some vital test will be missed  It is sometimes difficult to calculate (or generate) the expected answer After all, that’s what the circuit you’re testing is supposed to do!!  Random testing sometimes relies on the absence of exceptions rather than checking that the answer is right!