Real life experiences of PSL. Magnus Björk Hardware Description and Verificatoin

Size: px
Start display at page:

Download "Real life experiences of PSL. Magnus Björk Hardware Description and Verificatoin"

Transcription

1 Real life experiences of PSL Magnus Björk Hardware Description and Verificatoin

2 Saab Space / RUAG Aerospace Was owned by SAAB group Sold to RUAG Aerospace, summer 2008 Most interesting division: Digital products hardware systems ASIC software systems Other products: antennas, frequency converters, separation systems

3 Sentinel 1 satellite To be launched by ESA in 2011 Surveillance of: Polar ice (thickness, coverage) Continental drift, earthquakes Pollution (oil leaks in oceans) Forest fires Synthetic Aperture Radar

4 Sentinel 1 satellite

5 RUAG s formal verification approach Want to save effort (money) on testbenches and debugging Start by using FV on some small modules Increase usage with experience

6 Case studies Old modules One module under development (memory interface for Sentinel 1 Thermal Control Unit)

7 PSL: harder than expected DMA interface DmaAddr DmaReq DmaAck DmaRdy DmaReadData DmaErr PWT Packet wire interface PwtClock PwtValid PwtData PwtReady Control interface BusClk Reset How to express that the PWT is in a certain state? What is the minimal delay between packets currently set to? Addr Wr WrData

8 Clarification: Packet delays End of packet Minimal delay configurable (in nr of PwtClocks) Start of next packet PwtValid PwtData PwtClock BusClock PwtClock speed configurable (divisor of BusClock)

9 Attempt in PSL impure function WritePwtRegV(register:integer, value:integer) return BOOLEAN impure function SetClkMultiplier(mul:integer) return BOOLEAN... sequence initialize is {WritePwtRegV(PWT_CMDCLR, 1); -- no manual control WritePwtRegV(PWT_DELAY, DELAY); -- set minimal packet delay SetClkMultiplier(MULT)}; -- set transmission speed impure function deinit() return boolean is begin return WritePwtReg(PWT_DELAY) or WritePwtReg(PWT_CLK) or WritePwtReg(PWT_CMDSET); end function deinit; sequence deinit_seq is {{deinit()} within {[*MULT*(DELAY+1)]}}; prop_delay: assert always ({{initialize; not deinit()[*]} && {[*]; PwtValid; not PwtValid}} -> {{not PwtValid[*MULT*(DELAY+1)]} {deinit_seq}});

10 VHDL observers Implement an observer in VHDL which keeps track of specific properties E.g. listen to writes to the register controlling minimal delays

11 Adding an observer for packet delay DMA interface DmaAddr DmaReq DmaAck DmaRdy DmaReadData DmaErr PWT Packet wire interface PwtClock PwtValid PwtData PwtReady Trivial VHDL implementation (~10 lines) Control interface BusClk Addr Reset Wr WrData Delay observer CurrentDelay

12 A new property prop_delay: assert always ({PwtValid; not PwtValid} -> {not PwtValid[*CurrentDelay]}); Indexing over nonconstants may not be supported by tool!

13 Doing more in the observer DMA interface DmaAddr DmaReq DmaAck DmaRdy DmaReadData DmaErr PWT Packet wire interface PwtClock PwtValid PwtData PwtReady Simple VHDL implementation (~20 lines) Control interface BusClk Addr Reset Wr WrData Delay observer DelayOk prop_delay: assert always(delayok);

14 VHDL in properties Either 20 lines of advanced PSL Or 20 lines of trivial VHDL More general No constants MULT and DELAY Initialization not fixed Easier to write Easier for designers to understand Easier for tools to handle

15 Combining PSL and VHDL VHDL can be embedded in PSL PSL can be embedded in VHDL You are supposed to mix them! Mix them if it makes the verification clearer

16 Bottom line PSL is very powerful in many cases In such cases, use PSL! In other cases, VHDL is better suited In such cases, use VHDL!

17 A note on verification libraries Open verification library (OVL) Questa verification library (QVL) Mentor s extension of OVL, also open source Open source verification libraries Contains loads of ready observers Ranging from simple and, prev, and fifo to advanced ones like USB 2.0 and AMBA.

18 Designing with verification in mind DMA interface Transmission logic Serial interface Control interface is easier to use in properties Register bank Control interface Easy to verify formally

19 Designing with verification in mind DMA interface Transmission logic Serial interface Register bank Control interface Spend less effort on full module

20 Reactions from staff Quick feedback to designers Short counter examples easy to understand Very intricate bugs found Easy to use, once there infra structure exists Expect to continue and increase formal verification usage

21 Lessons learned Different tools interpret PSL differently Jasper: assume statements are local to the respective vunit Mentor: assume statements are global In this case: Jasper correct according to IEEE-1850 Different tools support different subsets of PSL

22 More lessons learned CTL and LTL are like assembly language Low level, close to the underlying mechanism PSL might be compared to C Introduces convenient notation for common constructs but we really want the equivalent of high level languages like C++, Java, or Haskell State machines, hierarchical structures (matching begin-end-constructs), consensus about interpretation Future work!

23 More on PSL some examples, some pitfalls Based on Mary Sheeran s slides from 2008

24 start FSM continue continue idle p1 p2 p3 cancel cancel done

25 Low level assertions assert always ((state = idle and start) -> next (state = p1)); assert always ((state = idle and not start) -> next (state = idle)); assert always ((state = p1 and continue) -> next (state = p2)); and so on one for each transition good, but very localised

26 Low level assertions assert always ((state = idle and start) -> next (state = p1)); Bit-vector assert always ((state = idle and not start) -> next (state = idle)); assert always ((state = p1 and continue) -> next (state = p2)); and so on one for each transition good, but very localised

27 Low level assertions assert always ((state = idle and start) -> next (state = p1)); constant assert always ((state = idle and not start) -> next (state = idle)); assert always ((state = p1 and continue) -> next (state = p2)); and so on one for each transition good, but very localised

28 Low level assertions assert always ((state = idle and start) -> next (state = p1)); assert always ((state = idle and not start) -> next (state = idle)); assert always ((state = p1 and continue) Implicit -> self-loop next (state = p2)); and so on one for each transition good, but very localised

29 Higher level assertion assert always (not (state = idle) -> eventually! (state = idle) Note: not a safety property! Will also likely need to link the state machine to the system that it is controlling and check that the desired functionality is achieved Message: try to raise level of abstraction of properties (while keeping them short and simple)

30 Example: simple bus interface spec (1) 1. 2 commands, read and write(with corresponding signals) 2. Command can be issued only after requesting the bus, indicated by a pulsed assertion of signal bus_req, and receiving a grant, indicated by the assertion of signal gnt one cycle after the assertion of bus_req 3. If the bus was not requested, it shouldn t be granted 4. Command is issued the cycle following receipt of grant 5. Either a read or a write can be issued, not both simultaneously

31 Example: simple bus interface spec (2) 6. Reads and writes come with an address, on addr[7 downto 0], that should be valid in the following cycle 7. Address validity is indicated by signal addr_valid 8. If a read is issued, then one pulse of data on data_in[63 downto 0] is expected the following cycle 9. If a write is issued, then one pulse of data on data_out[63 downto 0] is expected the following cycle 10. Valid read data is indicated by data_in_valid and valid write data by data_out_valid

32 Example: simple bus interface low level checks 2, 4. assert always ((read or write) -> ended(bus_req; gnt; true)) Built in function Returns true when the SERE has just ended

33 Example: simple bus interface low level checks 3. assert always (not bus_req -> next (not gnt))

34 Example: simple bus interface low level checks 5. assert never (read and write)

35 part of 6,7. Example: simple bus interface low level checks assert always ((read or write) -> next addr_valid) assert always (not (read or write) -> next (not addr_valid))

36 Example: simple bus interface low level checks 10. assert always (read-> next data_in_valid) assert always (not read -> next (not data_in_valid)) assert always (write-> next data_out_valid) assert always (not write -> next (not data_out_valid))

37 Example: simple bus interface low level checks Have checked the protocol but not mentioned the addr, data_in or data_out buses Need to think about overall functionality as well as low level details

38 Example: simple bus interface high level checks Let s assume two input signals get_data and put_data indicating that a read or write is needed Assume also we have a way to recognise, at the assertion of get_data or put_data, the data that needs to be read or written (from address get_addr[7 downto 0] to read_buffer[63 downto 0] or from write_buffer[63 downto 0] to address put_addr[7 downto 0]) Assume also a suitable memory

39 Example: simple bus interface high level checks assert forall ADR[7 downto 0] in boolean: always ((get_data and get_adr[7 downto 0] = ADR[7 downto 0]) -> eventually! (read_buffer[63 downto 0] = mem[adr[7 downto 0]])) Notes: have made some assumptions e.g. about memory not changing after read included to show some of the fancier PSL constructs and use of bus structures

40 Main message Write both low level and high level checks Low level checks will be easier to write often transcribed from spec. High level specs consider desired functionality, which may be implicit in the spec. Hard to write but high pay-off For one approach to a methodology for use of PSL, see the Prosyd Eu project web page ( Contains many interesting examples both small and large (including the following example) OVL and QVL may be helpful to write higher level properties.

41 Common PSL errors Mixing up logical implication and suffix implication assert always {req; ack} -> {start;busy[*]; end} Probably meant suffix implication: assert always {req; ack} -> {start;busy[*]; end} or assert always {req; ack} => {start;busy[*]; end} Source: the PSL book (Eisner and Fisman)

42 Confusing andwith implication Every high priority request (req and high_pri) should be followed immediately by an ack and then by a gnt assert always (req and high_pri) -> next (ack -> next gnt) or assert always (req and high_pri) -> next (ack and next gnt) or assert always (req and high_pri) => {ack; gnt} Which? Why? First attempt really means: Every high priority request that is followed immediately by an ack should be followed by a gnt.

43 Confusing concatentation with implication Are any of these equivalent? assert always {a; b; c} assert always( {a} => {b; c} ) Equivalent assert always( {a;b} => {c} ) At all points in time, the sequence {a; b; c} begins. Silly property. More likely: assert never {a; b; c} a is always followed by b and thereafter c. Whenever a is followed by b, c follows. assert always ( a -> (next b -> next[2] c)) assert always ( a -> (next b and next[2] c)) Equivalent! If a and thereafter b, then thereafter c.

44 Confusing concatentation with suffix implication Are these equivalent? assert always {a; b[+]; c} => {d} assert always {a; b[+]; c; d} Equivalent! Same mistake as last slide. assert never {a; b[+]; c; not d}

45 Using never with implication req is always followed by ack: assert always (req -> next ack) Two consecutive reqs are not allowed: assert never (req -> next req) or assert always (req -> next (not req)) Or Assert never (req and next req) or assert never {req; req} General rule: a -> b = (not a) or b never (a->b) = always (a and not b) Which? Why?

46 Negating implications High priority req gives an immediate ack assert always ((high_pri and req) -> ack) Low priority requests never give an immediate ack assert never ((low_pri and req) -> ack)???? What should it be? assert always ((low_pri and req) -> not ack) assert never (low_pri and req and ack)

47 Incorrect nesting of implications (1) If a request (assertion of req) is acknowledged (assertion of ack the following cycle), then it must receive a grant (assertion of gnt) the cycle following ack assert always ((req -> next ack) -> next gnt) assert always (req -> (next ack -> next gnt)) a -> (b -> c) = (a and b) -> c (a -> b) -> c = (a and not b) or c Almost never seen assert always ((req and next ack) -> next gnt)

48 Incorrect nesting of implications (2) If there is a granted read request (assertion of req followed by ack followed by gnt), then if there follows a complete data transfer {start; data[*], end}, then the whole thing should be followed by an assertion of signal read_complete. assert always ({req; gnt; ack} => {start; data[*]; end}) => {read_complete}?? Fault? Nested sequence implications does not make sense. What should it be? assert always ({req; gnt; ack; start; data[*]; end}) => {read_complete}

49 Are you missing a first match operator? On the cycle after the first ack following a request, a data transfer should begin assert always ({req; [*]; ack} => {start; data[*]; end})?? Wrong: Demands a transfer after every assertion of ack after the req. assert always ({req; ack[->]} => {start; data[*]; end})

50 Extraneous assertions of signals assert always {ack} => {start ; busy[*] ; done} ack start busy done

51 Extraneous assertions of signals assert always {ack} => {start ; busy[*] ; done} ack start busy done

52 May wish to rule out some behaviours assert always (ack -> not (start or busy or done)) assert always {ack} => {start and not busy and not done ; {not start and busy and not done}[*]; not start and not busy and done} or add properties like: assert never (busy and done); assert never (busy and start);

Sugar 2.0 An Introduction

Sugar 2.0 An Introduction Sugar 2.0 An Introduction Cindy Eisner 1 Dana Fisman 1,2 1 IBM Haifa Research Laboratory 2 Weizmann Institute of Science, Rehovot, Israel {eisner,danaf}@il.ibm.com 1 Introduction Sugar is a language for

More information

Specifying circuit properties in PSL. (Some of this material is due to Cindy Eisner and Dana Fisman, with thanks) See also the Jasper PSL Quick Ref.

Specifying circuit properties in PSL. (Some of this material is due to Cindy Eisner and Dana Fisman, with thanks) See also the Jasper PSL Quick Ref. Specifying circuit properties in PSL (Some of this material is due to Cindy Eisner and Dana Fisman, with thanks) See also the Jasper PSL Quick Ref. Background: Model Checking property G(p -> F q) yes MC

More information

Specifying circuit properties in PSL

Specifying circuit properties in PSL Specifying circuit properties in PSL Formal methods Mathematical and logical methods used in system development Aim to increase confidence in riktighet of system Apply to both hardware and software 1 Formal

More information

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers ECE 545 Lecture 12 Design of Controllers Finite State Machines and Algorithmic State Machine (ASM) Charts Required reading P. Chu, using VHDL Chapter 1, Finite State Machine: Principle & Practice Chapter

More information

Property-based design with HORUS / SYNTHORUS

Property-based design with HORUS / SYNTHORUS Property-based design with HORUS / SYNTHORUS Dominique Borrione, Negin Javaheri, Katell Morin-Allory, Yann Oddos, Alexandre Porcher Radboud University, Nijmegen 1 March 27, 2013 Functional specifications

More information

Introduction to Verilog

Introduction to Verilog Introduction to Verilog Synthesis and HDLs Verilog: The Module Continuous (Dataflow) Assignment Gate Level Description Procedural Assignment with always Verilog Registers Mix-and-Match Assignments The

More information

ON THE EFFECTIVENESS OF ASSERTION-BASED VERIFICATION

ON THE EFFECTIVENESS OF ASSERTION-BASED VERIFICATION ON THE EFFECTIVENESS OF ASSERTION-BASED VERIFICATION IN AN INDUSTRIAL CONTEXT L.Pierre, F.Pancher, R.Suescun, J.Quévremont TIMA Laboratory, Grenoble, France Dolphin Integration, Meylan, France Thales Communications

More information

SIMULATION DIAGRAM SHOWING ZERO LATENCY ON RECEIVE

SIMULATION DIAGRAM SHOWING ZERO LATENCY ON RECEIVE FEATURES Implements UDP, IPv4, ARP protocols Zero latency between UDP and MAC layer (combinatorial transfer during user data phase) See simulation diagram below Allows full control of UDP src & dst ports

More information

Data path verification on cross-domain with formal scoreboard

Data path verification on cross-domain with formal scoreboard Data path verification on cross-domain with formal scoreboard Liu Jun, Intel Mobile Communications, Munich, Germany (jun.b.liut@intel.com) Abstract In today s complex System on Chip (SOC) designs, multiple

More information

Part 6: VHDL simulation. Introduction to Modeling and Verification of Digital Systems. Elaboration and simulation. Elaboration and simulation

Part 6: VHDL simulation. Introduction to Modeling and Verification of Digital Systems. Elaboration and simulation. Elaboration and simulation M Informatique / MOIG Introduction to Modeling and Verification of Digital ystems Part 6: VHDL simulation Laurence PIERRE http://users-tima.imag.fr/amfors/lpierre/marc 27/28 37 Elaboration and simulation

More information

Certitude Functional Qualification with Formal Verification. Jean-Marc Forey November 2012

Certitude Functional Qualification with Formal Verification. Jean-Marc Forey November 2012 Certitude Functional Qualification with Formal Verification Jean-Marc Forey November 2012 Springsoft Proprietary Topics Case study presentation Why Verification Verification efficiency Formal verification

More information

Leveraging Formal Verification Throughout the Entire Design Cycle

Leveraging Formal Verification Throughout the Entire Design Cycle Leveraging Formal Verification Throughout the Entire Design Cycle Verification Futures Page 1 2012, Jasper Design Automation Objectives for This Presentation Highlight several areas where formal verification

More information

Functional Programming in Hardware Design

Functional Programming in Hardware Design Functional Programming in Hardware Design Tomasz Wegrzanowski Saarland University Tomasz.Wegrzanowski@gmail.com 1 Introduction According to the Moore s law, hardware complexity grows exponentially, doubling

More information

Assertions: Too good to be reserved for verification only.

Assertions: Too good to be reserved for verification only. Assertions: Too good to be reserved for verification only. Written by Brian Bailey Abstract There has been a lot of talk in the industry about the usefulness of assertions as part of a complete verification

More information

Abstraction Layers for Hardware Design

Abstraction Layers for Hardware Design SYSTEMC Slide -1 - Abstraction Layers for Hardware Design TRANSACTION-LEVEL MODELS (TLM) TLMs have a common feature: they implement communication among processes via function calls! Slide -2 - Abstraction

More information

CREATIVE ASSERTION AND CONSTRAINT METHODS FOR FORMAL DESIGN VERIFICATION

CREATIVE ASSERTION AND CONSTRAINT METHODS FOR FORMAL DESIGN VERIFICATION CREATIVE ASSERTION AND CONSTRAINT METHODS FOR FORMAL DESIGN VERIFICATION Joseph Richards SGI, High Performance Systems Development Mountain View, CA richards@sgi.com Abstract The challenges involved in

More information

Focussing Assertion Based Verification Effort for Best Results

Focussing Assertion Based Verification Effort for Best Results Focussing Assertion Based Verification Effort for Best Results Mark Litterick (Verification Consultant) mark.litterick@verilab.com 2 Introduction Project background Overview of ABV including methodology

More information

7.3.3 Same Inputs in Antecedent and Consequent

7.3.3 Same Inputs in Antecedent and Consequent Formal Verification Using Assertions 249 There are some special scenarios in which the user may want to intentionally toggle the reset signal during a session. This may be needed to check conditions such

More information

IP Core Design. Lecture 11 Introduction to PSL

IP Core Design. Lecture 11 Introduction to PSL IP Core Design Lecture 11 Juinn-Dar Huang, Ph.D. Assistant Professor jdhuang@mail.nctu.edu.tw November 2004 1 Content Overview Fundamentals Boolean Layer Temporal Layer SERE Temporal Layer FL Property

More information

Contents 1 Introduction 2 Functional Verification: Challenges and Solutions 3 SystemVerilog Paradigm 4 UVM (Universal Verification Methodology)

Contents 1 Introduction 2 Functional Verification: Challenges and Solutions 3 SystemVerilog Paradigm 4 UVM (Universal Verification Methodology) 1 Introduction............................................... 1 1.1 Functional Design Verification: Current State of Affair......... 2 1.2 Where Are the Bugs?.................................... 3 2 Functional

More information

EECS150 - Digital Design Lecture 7 - Computer Aided Design (CAD) - Part II (Logic Simulation) Finite State Machine Review

EECS150 - Digital Design Lecture 7 - Computer Aided Design (CAD) - Part II (Logic Simulation) Finite State Machine Review EECS150 - Digital Design Lecture 7 - Computer Aided Design (CAD) - Part II (Logic Simulation) Feb 9, 2010 John Wawrzynek Spring 2010 EECS150 - Lec7-CAD2 Page 1 Finite State Machine Review State Transition

More information

EECS150 - Digital Design Lecture 6 - Logic Simulation

EECS150 - Digital Design Lecture 6 - Logic Simulation EECS150 - Digital Design Lecture 6 - Logic Simulation Sep. 17, 013 Prof. Ronald Fearing Electrical Engineering and Computer Sciences University of California, Berkeley (slides courtesy of Prof. John Wawrzynek)

More information

Post processing techniques to accelerate assertion development Ajay Sharma

Post processing techniques to accelerate assertion development Ajay Sharma Post processing techniques to accelerate assertion development Ajay Sharma 2014 Synopsys, Inc. All rights reserved. 1 Agenda Introduction to Assertions Traditional flow for using ABV in Simulations/Emulation/Prototyping

More information

Overview. Discrete Event Systems - Verification of Finite Automata. What can finite automata be used for? What can finite automata be used for?

Overview. Discrete Event Systems - Verification of Finite Automata. What can finite automata be used for? What can finite automata be used for? Computer Engineering and Networks Overview Discrete Event Systems - Verification of Finite Automata Lothar Thiele Introduction Binary Decision Diagrams Representation of Boolean Functions Comparing two

More information

Accelerating RTL Simulation Techniques by Lior Grinzaig, Verification Engineer, Marvell Semiconductor Ltd.

Accelerating RTL Simulation Techniques by Lior Grinzaig, Verification Engineer, Marvell Semiconductor Ltd. Accelerating RTL Simulation Techniques by Lior Grinzaig, Verification Engineer, Marvell Semiconductor Ltd. Long simulation run times are a bottleneck in the verification process. A lengthy delay between

More information

CA314 Object Oriented Analysis & Design - 7. File name: CA314_Section_07_Ver01 Author: L Tuohey No. of pages: 16

CA314 Object Oriented Analysis & Design - 7. File name: CA314_Section_07_Ver01 Author: L Tuohey No. of pages: 16 CA314 Object Oriented Analysis & Design - 7 File name: CA314_Section_07_Ver01 Author: L Tuohey No. of pages: 16 Table of Contents 7. UML State & Activity Diagrams (see ref 1, Chap. 11, 12)...3 7.1 Introduction...3

More information

Synthesis of Synchronous Assertions with Guarded Atomic Actions

Synthesis of Synchronous Assertions with Guarded Atomic Actions Synthesis of Synchronous Assertions with Guarded Atomic Actions Michael Pellauer, Mieszko Lis, Donald Baltus, Rishiyur Nikhil Massachusetts Institute of Technology Bluespec, Inc. pellauer@csail.mit.edu,

More information

Hardware Design Verification: Simulation and Formal Method-Based Approaches William K Lam Prentice Hall Modern Semiconductor Design Series

Hardware Design Verification: Simulation and Formal Method-Based Approaches William K Lam Prentice Hall Modern Semiconductor Design Series Design Verification An Introduction Main References Hardware Design Verification: Simulation and Formal Method-Based Approaches William K Lam Prentice Hall Modern Semiconductor Design Series A Roadmap

More information

THANG LUONG CAO. Serial bus adapter design for FPGA. Master of Science Thesis

THANG LUONG CAO. Serial bus adapter design for FPGA. Master of Science Thesis THANG LUONG CAO Serial bus adapter design for FPGA Master of Science Thesis Examiner: Prof. Timo D. Hämäläinen Examiner and topic approved by the Faculty Council of the Faculty of Computing and Electrical

More information

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 6, 2006 Classes November 6 and 8 are in 429 Dana! Lecture 15: Homework 5: Datapath How to write a testbench for synchronous

More information

Model Checking. Automatic Verification Model Checking. Process A Process B. when not possible (not AI).

Model Checking. Automatic Verification Model Checking. Process A Process B. when not possible (not AI). Sérgio Campos scampos@dcc.ufmg.br Why? Imagine the implementation of a complex hardware or software system: A 100K gate ASIC perhaps 100 concurrent modules; A flight control system dozens of concurrent

More information

CSC2108: Automated Verification Assignment 1 - Solutions

CSC2108: Automated Verification Assignment 1 - Solutions 8 CSC218: Automated Verification Assignment 1 - Solutions 1. Solve the following problem: Use the definition of between states and CTL formulas to explain why means that is true infinitely often along

More information

Design Creation & Synthesis Division Avoid FPGA Project Delays by Adopting Advanced Design Methodologies

Design Creation & Synthesis Division Avoid FPGA Project Delays by Adopting Advanced Design Methodologies Design Creation & Synthesis Division Avoid FPGA Project Delays by Adopting Advanced Design Methodologies Alex Vals, Technical Marketing Engineer Mentor Graphics Corporation June 2008 Introduction Over

More information

6.170 Lecture 6 Procedure specifications MIT EECS

6.170 Lecture 6 Procedure specifications MIT EECS 6.170 Lecture 6 Procedure specifications MIT EECS Outline Satisfying a specification; substitutability Stronger and weaker specifications Comparing by hand Comparing via logical formulas Comparing via

More information

ADVANCED DIGITAL IC DESIGN. Digital Verification Basic Concepts

ADVANCED DIGITAL IC DESIGN. Digital Verification Basic Concepts 1 ADVANCED DIGITAL IC DESIGN (SESSION 6) Digital Verification Basic Concepts Need for Verification 2 Exponential increase in the complexity of ASIC implies need for sophisticated verification methods to

More information

Administrivia. ECE/CS 5780/6780: Embedded System Design. Acknowledgements. What is verification?

Administrivia. ECE/CS 5780/6780: Embedded System Design. Acknowledgements. What is verification? Administrivia ECE/CS 5780/6780: Embedded System Design Scott R. Little Lab 8 status report. Set SCIBD = 52; (The Mclk rate is 16 MHz.) Lecture 18: Introduction to Hardware Verification Scott R. Little

More information

Design and Verification of Network Router

Design and Verification of Network Router Design and Verification of Network Router 1 G.V.Ravikrishna, 2 M. KiranKumar 1 M.Tech. Scholar, 2 Assistant Professor Department of ECE, ANURAG Group of Institutions, Andhra Pradesh, India 1 gvravikrishna@gmail.com,

More information

Formal Verification Applied to the Renesas MCU Design Platform Using the OneSpin Tools

Formal Verification Applied to the Renesas MCU Design Platform Using the OneSpin Tools Formal Verification Applied to the Renesas MCU Design Platform Using the OneSpin Tools Toru Shimizu, Ph.D. and Satoshi Nakano, Renesas Electronics Corp. Colin Mason, OneSpin Solutions Japan K.K. 2013.02.03

More information

ASIC world. Start Specification Design Verification Layout Validation Finish

ASIC world. Start Specification Design Verification Layout Validation Finish AMS Verification Agenda ASIC world ASIC Industrial Facts Why Verification? Verification Overview Functional Verification Formal Verification Analog Verification Mixed-Signal Verification DFT Verification

More information

VHDL simulation and synthesis

VHDL simulation and synthesis VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis

More information

Comparing procedure specifications

Comparing procedure specifications Comparing procedure specifications CSE 331 University of Washington Michael Ernst Outline Satisfying a specification; substitutability Stronger and weaker specifications Comparing by hand Comparing via

More information

MITOCW watch?v=kz7jjltq9r4

MITOCW watch?v=kz7jjltq9r4 MITOCW watch?v=kz7jjltq9r4 PROFESSOR: We're going to look at the most fundamental of all mathematical data types, namely sets, and let's begin with the definitions. So informally, a set is a collection

More information

Universal Serial Bus Host Interface on an FPGA

Universal Serial Bus Host Interface on an FPGA Universal Serial Bus Host Interface on an FPGA Application Note For many years, designers have yearned for a general-purpose, high-performance serial communication protocol. The RS-232 and its derivatives

More information

TKT-1212 Digitaalijärjestelmien toteutus. Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008

TKT-1212 Digitaalijärjestelmien toteutus. Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008 TKT-1212 Digitaalijärjestelmien toteutus Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008 Contents Purpose of test benches Structure of simple test bench Side note about delay modeling in VHDL

More information

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial

More information

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Hardware Design Environments Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Outline Welcome to COE 405 Digital System Design Design Domains and Levels of Abstractions Synthesis

More information

ProgRock Operating manual _Pr1.01a_

ProgRock Operating manual _Pr1.01a_ 1. Introduction ProgRock Operating manual _Pr1.01a_ This is the operating manual for the ProgRock synthesiser kit. It should be read together with the assembly instructions for the ProgRock kit and Si5351A

More information

Programming Embedded Systems

Programming Embedded Systems Programming Embedded Systems Lecture 8 Overview of software testing Wednesday Feb 8, 2012 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/53 Lecture outline Testing in general Unit testing

More information

EECS 373 Design of Microprocessor-Based Systems

EECS 373 Design of Microprocessor-Based Systems EECS 373 Design of Microprocessor-Based Systems Mark Brehob University of Michigan Lecture 5: Memory-mapped I/O review, APB, start interrupts. Mostly APB though Sept. 19 th 2018 1 Today Memory-mapped I/O

More information

CS/ECE 5780/6780: Embedded System Design

CS/ECE 5780/6780: Embedded System Design CS/ECE 5780/6780: Embedded System Design John Regehr Lecture 18: Introduction to Verification What is verification? Verification: A process that determines if the design conforms to the specification.

More information

To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 COPYRIGHT 2011 ALCATEL-LUCENT. ALL RIGHTS RESERVED.

To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 COPYRIGHT 2011 ALCATEL-LUCENT. ALL RIGHTS RESERVED. To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 Introduction SDN research directions as outlined in IRTF RG outlines i) need for more flexibility and programmability

More information

IP Core Design. Lecture 10 Property/Assertion-Based Verification

IP Core Design. Lecture 10 Property/Assertion-Based Verification IP Core Design Lecture 10 Property/Assertion-Based Verification Juinn-Dar Huang, Ph.D. Assistant Professor jdhuang@mail.nctu.edu.tw October 2004 1 Outline Verification challenge Introduction to PBV Property

More information

Portable VHDL Testbench Automation with Intelligent Testbench Automation by Matthew Ballance, Mentor Graphics

Portable VHDL Testbench Automation with Intelligent Testbench Automation by Matthew Ballance, Mentor Graphics Portable VHDL Testbench Automation with Intelligent Testbench Automation by Matthew Ballance, Mentor Graphics We ve come a long way since digital designs were sketched as schematics by hand on paper and

More information

Lecture 8. RTL Design Methodology. Transition from Pseudocode & Interface to a Corresponding Block Diagram

Lecture 8. RTL Design Methodology. Transition from Pseudocode & Interface to a Corresponding Block Diagram Lecture 8 RTL Design Methodology Transition from Pseudocode & Interface to a Corresponding Block Diagram Structure of a Typical Digital Data Inputs Datapath (Execution Unit) Data Outputs System Control

More information

General Transducer Architecture

General Transducer Architecture General Transducer Architecture D Gajski, Hansu Cho, Samar Abdi Technical Report CECS-05-08 August 8, 2005 Center for Embedded Computer Systems University of California, Irvine Irvine, CA 92697-3425, USA

More information

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language

More information

Unit 3 and Unit 4: Chapter 4 INPUT/OUTPUT ORGANIZATION

Unit 3 and Unit 4: Chapter 4 INPUT/OUTPUT ORGANIZATION Unit 3 and Unit 4: Chapter 4 INPUT/OUTPUT ORGANIZATION Introduction A general purpose computer should have the ability to exchange information with a wide range of devices in varying environments. Computers

More information

SystemC AssertionLibrary

SystemC AssertionLibrary SystemC AssertionLibrary SystemC Users Group 22 August 2005 Jacob Smit, Michael Velten, Volkan Esen Thomas Steininger, Wolfgang Ecker, Michael Mrva Infineon Technologies Motivation SystemC gains more and

More information

A More Sophisticated Snooping-Based Multi-Processor

A More Sophisticated Snooping-Based Multi-Processor Lecture 16: A More Sophisticated Snooping-Based Multi-Processor Parallel Computer Architecture and Programming CMU 15-418/15-618, Spring 2014 Tunes The Projects Handsome Boy Modeling School (So... How

More information

IODINE: A Tool to Automatically Infer Dynamic Invariants for Hardware Designs

IODINE: A Tool to Automatically Infer Dynamic Invariants for Hardware Designs IODINE: A Tool to Automatically Infer Dynamic Invariants for Hardware Designs Design Automation Conference 2005 16 th June, 2005 Sudheendra Hangal Sun Microsystems Bangalore Naveen Chandra Sun Microsystems

More information

Digital Logic Level. Buses PCI (..continued) PTE MIK MIT

Digital Logic Level. Buses PCI (..continued) PTE MIK MIT Digital Logic Level Buses PCI (..continued) varady.geza@mik.pte.hu PTE MIK MIT PCI - arbitration REQ# GNT# REQ# GNT# PCI arbiter REQ# GNT# The PCI bus has to be acquired before use by the devices PCI uses

More information

DEVELOPMENT AND VERIFICATION OF AHB2APB BRIDGE PROTOCOL USING UVM TECHNIQUE

DEVELOPMENT AND VERIFICATION OF AHB2APB BRIDGE PROTOCOL USING UVM TECHNIQUE DEVELOPMENT AND VERIFICATION OF AHB2APB BRIDGE PROTOCOL USING UVM TECHNIQUE N.G.N.PRASAD Assistant Professor K.I.E.T College, Korangi Abstract: The AMBA AHB is for high-performance, high clock frequency

More information

Research Collection. Formal background and algorithms. Other Conference Item. ETH Library. Author(s): Biere, Armin. Publication Date: 2001

Research Collection. Formal background and algorithms. Other Conference Item. ETH Library. Author(s): Biere, Armin. Publication Date: 2001 Research Collection Other Conference Item Formal background and algorithms Author(s): Biere, Armin Publication Date: 2001 Permanent Link: https://doi.org/10.3929/ethz-a-004239730 Rights / License: In Copyright

More information

Problem Set 10 Solutions

Problem Set 10 Solutions CSE 260 Digital Computers: Organization and Logical Design Problem Set 10 Solutions Jon Turner thru 6.20 1. The diagram below shows a memory array containing 32 words of 2 bits each. Label each memory

More information

Test Scenarios and Coverage

Test Scenarios and Coverage Test Scenarios and Coverage Testing & Verification Dept. of Computer Science & Engg,, IIT Kharagpur Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in in-charge, AVLSI Design Lab,

More information

On the Design and Verification Methodology of the Look-Aside Interface

On the Design and Verification Methodology of the Look-Aside Interface On the Design and Verification Methodology of the Look-Aside Interface Ali Habibi, Asif Iqbal Ahmed, Otmane Ait Mohamed and Sofiène Tahar Department of Electrical and Computer Engineering Concordia University

More information

Protocol Specification. Using Finite State Machines

Protocol Specification. Using Finite State Machines Protocol Specification Using Finite State Machines Introduction Specification Phase of Protocol Design allows the designer to prepare an abstract model of the protocol for testing and analysis. Finite

More information

Assertion-Based Verification

Assertion-Based Verification Assertion-Based Verification Introduction to SVA Harry Foster Chief Scientist Verification info@verificationacademy.com www.verificationacademy.com Session Overview After completing this session you will...

More information

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1)

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1) September 3, 2018 GETTING STARTED WITH VHDL 2 Top-down design VHDL history Main elements of VHDL Entities and architectures Signals and processes Data types Configurations Simulator basics The testbench

More information

Behaviour Driven Development for Hardware Design

Behaviour Driven Development for Hardware Design [DOI: 10.2197/ipsjtsldm.11.29] Invited Paper Behaviour Driven Development for Hardware Design Melanie Diepenbeck 1 Ulrich Kühne 2,a) Mathias Soeken 3,b) Daniel Grosse 1,4,c) Rolf Drechsler 1,4,d) Received:

More information

Inst: Chris Davison

Inst: Chris Davison ICS 153 Introduction to Computer Networks Inst: Chris Davison cbdaviso@uci.edu ICS 153 Data Link Layer Contents Simplex and Duplex Communication Frame Creation Flow Control Error Control Performance of

More information

Part 2: Principles for a System-Level Design Methodology

Part 2: Principles for a System-Level Design Methodology Part 2: Principles for a System-Level Design Methodology Separation of Concerns: Function versus Architecture Platform-based Design 1 Design Effort vs. System Design Value Function Level of Abstraction

More information

System Correctness. EEC 421/521: Software Engineering. System Correctness. The Problem at Hand. A system is correct when it meets its requirements

System Correctness. EEC 421/521: Software Engineering. System Correctness. The Problem at Hand. A system is correct when it meets its requirements System Correctness EEC 421/521: Software Engineering A Whirlwind Intro to Software Model Checking A system is correct when it meets its requirements a design without requirements cannot be right or wrong,

More information

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis Logic Synthesis Verilog and VHDL started out as simulation languages, but quickly people wrote programs to automatically convert Verilog code into low-level circuit descriptions (netlists). EECS150 - Digital

More information

An Evaluation of the Advantages of Moving from a VHDL to a UVM Testbench by Shaela Rahman, Baker Hughes

An Evaluation of the Advantages of Moving from a VHDL to a UVM Testbench by Shaela Rahman, Baker Hughes An Evaluation of the Advantages of Moving from a VHDL to a UVM Testbench by Shaela Rahman, Baker Hughes FPGA designs are becoming too large to verify by visually checking waveforms, as the functionality

More information

Secure understanding of multiplication of whole numbers by 10, 100 or 1000.

Secure understanding of multiplication of whole numbers by 10, 100 or 1000. Secure understanding of multiplication of whole numbers by 10, 100 or 1000. Begin to identify common factors. Identify multiples and factors, including finding all factor pairs of a number, and common

More information

Modeling and Verification of the Fairisle ATM Null Port Controller in VIS

Modeling and Verification of the Fairisle ATM Null Port Controller in VIS Modeling and Verification of the Fairisle ATM Null Port Controller in VIS Jianping Lu and Sofiène Tahar Electrical & Computer Engineering Department, Concordia University Montreal, Quebec, H3G 1M8 Canada

More information

JasperGold. Agenda. High-Level Formal Verification

JasperGold. Agenda. High-Level Formal Verification JasperGold High-Level Formal Verification Vigyan Singhal Harry D. Foster 1 Agenda Jasper introduction Model checking Block-level verification - High-level requirements - Formal testplan - Coverage Formal

More information

Debugging Inconclusive Assertions and a Case Study

Debugging Inconclusive Assertions and a Case Study Debugging Inconclusive Assertions and a Case Study by Jin Hou Mentor, A Siemens Business INTRODUCTION Formal assertion-based verification uses formal technologies to analyze if a design satisfies a given

More information

CS Bootcamp Boolean Logic Autumn 2015 A B A B T T T T F F F T F F F F T T T T F T F T T F F F

CS Bootcamp Boolean Logic Autumn 2015 A B A B T T T T F F F T F F F F T T T T F T F T T F F F 1 Logical Operations 1.1 And The and operator is a binary operator, denoted as, &,, or sometimes by just concatenating symbols, is true only if both parameters are true. A B A B F T F F F F The expression

More information

With design complexity increasing significantly

With design complexity increasing significantly With design complexity increasing significantly over the years, the verification of asynchronous designs has become one of the biggest challenges in modern systems-on-a-chip (SoCs). Functional simulation,

More information

Advanced Digital Verification Nathan Nipper. Cadence NCSim Demonstration John Martiney. Harris Corporation, 10/16/2007. assuredcommunications

Advanced Digital Verification Nathan Nipper. Cadence NCSim Demonstration John Martiney. Harris Corporation, 10/16/2007. assuredcommunications Advanced Digital Verification Nathan Nipper Cadence NCSim Demonstration John Martiney Harris Corporation, 10/16/2007 What is Verification Functional Verification is the task of verifying that the logic

More information

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems EE 3610: Digital Systems 1 Lecture 3: Modeling in VHDL VHDL: Overview 2 VHDL VHSIC Hardware Description Language VHSIC=Very High Speed Integrated Circuit Programming language for modelling of hardware

More information

Chapter 8 VHDL Code Examples

Chapter 8 VHDL Code Examples APPENDIX I Chapter 8 VHDL Code Examples I.1 Introduction Two example VHDL code designs are presented in Chapter 8, the first for controlling the AD7524 digital-to-analogue converter and the second for

More information

EECS150 - Digital Design Lecture 6 - Logic Simulation. Encoder Example

EECS150 - Digital Design Lecture 6 - Logic Simulation. Encoder Example EECS150 - Digital Design Lecture 6 - Logic Simulation Feb 7, 2013 John Wawrzynek Spring 2013 EECS150 - Lec06-sim Page 1 Encoder Example What is y if x == 4 b1111? always @(x) : encode if (x == 4'b0001)

More information

Tutorial for I 2 C Serial Protocol

Tutorial for I 2 C Serial Protocol Tutorial for I 2 C Serial Protocol (original document written by Jon Valdez, Jared Becker at Texas Instruments) The I 2 C bus is a very popular and powerful bus used for communication between a master

More information

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7

More information

Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. World Class SystemVerilog & UVM Training Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. Cliff Cummings

More information

APPLICATION NOTE PACE P1754 PIC SYSTEM TEST

APPLICATION NOTE PACE P1754 PIC SYSTEM TEST APPLICATION NOTE PACE P1754 PIC SYSTEM TEST The PACE1754 PIC chip provides the system designer with a system test which may be run at power-up if enabled. This test is very useful for establishing the

More information

Warm-Up Problem. Let be a set of well-formed Predicate logic formulas. Let be well-formed Predicate logic formulas. Prove or disprove the following.

Warm-Up Problem. Let be a set of well-formed Predicate logic formulas. Let be well-formed Predicate logic formulas. Prove or disprove the following. Warm-Up Problem Let be a set of well-formed Predicate logic formulas Let be well-formed Predicate logic formulas Prove or disprove the following If then 1/35 Program Verification Carmen Bruni Lecture 18

More information

High-Level Information Interface

High-Level Information Interface High-Level Information Interface Deliverable Report: SRC task 1875.001 - Jan 31, 2011 Task Title: Exploiting Synergy of Synthesis and Verification Task Leaders: Robert K. Brayton and Alan Mishchenko Univ.

More information

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis Spring 2007 Lec #8 -- HW Synthesis 1 Logic Synthesis Verilog and VHDL started out

More information

Formal Technology in the Post Silicon lab

Formal Technology in the Post Silicon lab Formal Technology in the Post Silicon lab Real-Life Application Examples Haifa Verification Conference Jamil R. Mazzawi Lawrence Loh Jasper Design Automation Focus of This Presentation Finding bugs in

More information

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: Components and Design Techniques for Digital Systems Lab CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Announcements & Outline Lab 4 due; demo signup times listed on the cse140l site Check

More information

A Basic Snooping-Based Multi-Processor Implementation

A Basic Snooping-Based Multi-Processor Implementation Lecture 15: A Basic Snooping-Based Multi-Processor Implementation Parallel Computer Architecture and Programming CMU 15-418/15-618, Spring 2015 Tunes Pushing On (Oliver $ & Jimi Jules) Time for the second

More information

Formal Verification: Practical Exercise Model Checking with NuSMV

Formal Verification: Practical Exercise Model Checking with NuSMV Formal Verification: Practical Exercise Model Checking with NuSMV Jacques Fleuriot Daniel Raggi Semester 2, 2017 This is the first non-assessed practical exercise for the Formal Verification course. You

More information

Property Specification Language. Reference Manual. Version 1.01

Property Specification Language. Reference Manual. Version 1.01 Property Specification Language Reference Manual Version.0 April, 03 Copyright 03 by Accellera. All rights reserved. No part of this work covered by the copyright hereon may be reproduced or used in any

More information

Distributed Systems Fault Tolerance

Distributed Systems Fault Tolerance Distributed Systems Fault Tolerance [] Fault Tolerance. Basic concepts - terminology. Process resilience groups and failure masking 3. Reliable communication reliable client-server communication reliable

More information

PowerAware RTL Verification of USB 3.0 IPs by Gayathri SN and Badrinath Ramachandra, L&T Technology Services Limited

PowerAware RTL Verification of USB 3.0 IPs by Gayathri SN and Badrinath Ramachandra, L&T Technology Services Limited PowerAware RTL Verification of USB 3.0 IPs by Gayathri SN and Badrinath Ramachandra, L&T Technology Services Limited INTRODUCTION Power management is a major concern throughout the chip design flow from

More information

FTMCTRL: BCH EDAC with multiple 8-bit wide PROM and SRAM banks. Application note Doc. No GRLIB-AN-0003 Issue 1.0

FTMCTRL: BCH EDAC with multiple 8-bit wide PROM and SRAM banks. Application note Doc. No GRLIB-AN-0003 Issue 1.0 Template: GQMS-TPLT-1-1-0 FTMCTRL: BCH EDAC with multiple 8-bit wide PROM and SRAM banks Application note 2017-04-21 Doc. No Issue 1.0 Date: 2017-04-21 Page: 2 of 9 CHANGE RECORD Issue Date Section / Page

More information