I Didn t Know Constraints Could Do That!

Size: px
Start display at page:

Download "I Didn t Know Constraints Could Do That!"

Transcription

1 I Didn t Know Constraints Could Do That! John Dickol Samsung Austin R&D Center 6 February 2018 DVClub Europe DVClub Europe 6 Feb

2 Agenda Introduction SystemVerilog Constraint Techniques Constraint Examples DVClub Europe 6 Feb

3 Introduction SystemVerilog constraint solvers continue to improve Solvers can handle more complex constraint problems Why use complex constraints? Use constraints to define legal stimulus Add constraints to steer stimulus Complex stimulus needs complex constraints DVClub Europe 6 Feb

4 Constraint Techniques DVClub Europe 6 Feb

5 Constraint Basics SystemVerilog constraints are declarative, not procedural. Describe what you want - Solver will figure out how Constraints specify expressions which must be true Can be any SV expression using variables & constants of integral type Constraint solver chooses values for random variables to ensure all constraints are satisfied All constraints solved simultaneously (usually some exceptions) Full specification in SystemVerilog Language Reference Latest version: IEEE Std Download free copy from IEEE Get Program: DVClub Europe 6 Feb

6 Constraint Expressions Simple Complex 1; 0; x == 1; x inside {[0:10]; x < y; (x + y) == z; if(a>b) c<d; if(x==y) { 0; foreach(n_txns_per_slave[s]) { n_txns_per_slave[s] == txn_map.sum with( (item.index(2) == s)? item : 0); ); map.ranges.or(r) with ( item.addr inside {[r.start_addr : (r.end_addr - item.size)] && item.cache_type == r.cache_type ); DVClub Europe 6 Feb

7 Soft Constraints Are applied only if not contradicted by other constraints with higher priority In general, last constraint specified has higher priority See SV LRM for complete list of priorities Good for specifying default values for UVM sequence/sequence_item which can be overridden in higher-level sequence DVClub Europe 6 Feb

8 Soft Constraint Example class myseq extends uvm_sequence#(mytxn); rand int count // number of transactions Default constraint for count Soft constraint may be overridden constraint c_count { soft count inside {[10:20]; task body; mytxn txn; repeat(count) begin `uvm_do(txn) end endtask endclass class topseq extends uvm_sequence#(mytxn); task body; myseq seq; `uvm_do(seq) `uvm_do_with(seq, {count == 1000; endtask endclass Default soft constraint applies Inline hard constraint overrides soft constraint DVClub Europe 6 Feb

9 Unique Constraints Constrain set of variables to have unique values: Scalar integral values Unpacked arrays of integral values rand int x, y, z; rand int arr[10]; int q[$] = {1, 2, 7, 11; constraint c_unique { unique {x, y, z; unique {arr; unique {x, y, arr; unique {x, y, q; Equivalent to: x!=y; y!=z; z!=x; Fill arr with unique values Can mix scalars and arrays Pick x & y not equal to elements of non-rand queue DVClub Europe 6 Feb

10 Array Iterative Constraints foreach constraint applies to each element of array Array size can be constrained LRM requirement: array size solved before iterative constraints rand int arr[10]; rand int q[$]; constraint c_foreach { foreach(arr[i]) arr[i] inside {[0:15]; q.size() inside {[5:10]; Constrain each array element Constrain queue size foreach(q[i]) { if(i>0) q[i] > q[i-1]; Create sorted queue: q[0] < q[1], q[2] Constraint guard avoids index out of bounds error DVClub Europe 6 Feb

11 Array Reduction Constraints Operate on unpacked arrays of integral values Apply specified operation between each element of the array rand int a[10]; a.sum == a[0] + a[1] + a.product == a[0] * a[1] * a.and == a[0] & a[1] & a.or == a[0] a[1] a.xor == a[0] ^ a[1] ^ Methods return single value of the same type as array element i.e sum of int returns int. xor of bit returns bit, etc. Optional with expression applied to each element before reduction operation Inside with expression: item refers to current array element item.index refers to current array index DVClub Europe 6 Feb

12 Array Reduction Constraint Examples Constrain number of 1s in array of bits: rand bit bq[$]; constraint c_sum { bq.size inside {[10:20]; (bq.sum with (int (item))) == 7; Constrain sum of first 3 elements of array: sum() of bit is single bit Cast to int to avoid overflow sum with( ) equivalent to: foreach(a[i]) if(i<3) sum+= a[i] rand int a[10]; constraint c_sum_first_3 { (a.sum with ((item.index < 3)? item : 0)) == 10; item.index equivalent to i item equivalent to a[i] DVClub Europe 6 Feb

13 Global (Hierarchical) Constraints Class with rand variables may be rand member of another class When top-level object is randomized, all rand class members are also randomized Top-level object may constrain lower-level object variables DVClub Europe 6 Feb

14 Global Constraint Example: Line Drawing Rand instances of XY point class class XY; rand int x; rand int y; constraint c_valid { x inside {[0:100]; y inside {[0:100]; endclass class Line; rand XY pt1; rand XY pt2; rand enum {HORIZONTAL, VERTICAL direction; function new; if(pt1==null) pt1 = new; if(pt2==null) pt2 = new; endfunction constraint c_valid { if(direction == VERTICAL) { pt1.x == pt2.x; pt1.y!= pt2.y; Top-level object constrains lower-level if(direction == HORIZONTAL) { pt1.y == pt2.y; pt1.x!= pt2.x; endclass DVClub Europe 6 Feb

15 Reusing Constraints: Policy Classes Problem: Define constraints once and reuse in multiple objects Add additional constraints to object at runtime Implementation: Variation of hierarchical constraints: Lower-level object constrains parent object Define reusable constraints in policy class container Policy classes extended from common base class item variable in policy class refers to parent object Parent object has rand queue of policy base class More info in DVCon 2015 paper: SystemVerilog Constraint Layering via Reusable Randomization Policy Classes DVClub Europe 6 Feb

16 Policy Class Example class rand_policy_base #(type T=uvm_object); T item; virtual function void set_item(t item); this.item = item; endfunction endclass item refers to parent Line object Rand queue of policy base class class line_direction_policy extends rand_policy_base#(line); constraint c_direction { item.direction dist { Line::VERT := 5, Line::HORIZ := 1 ; endclass class Line; rand enum {HORIZ, VERT direction; rand rand_policy_base#(line) pcy[$]; function void pre_randomize; foreach(pcy[i]) pcy[i].set_item(this); endfunction... endclass Test case Line l = new; line_direction_policy dir_pcy = new; l.pcy = {dir_pcy; l.randomize; Set item in policy objects to point to this Line instance Add policy to queue DVClub Europe 6 Feb

17 Example 1: Bus Interconnect Testbench DVClub Europe 6 Feb

18 Bus Interconnect Testbench Master Agent Master Agent Tests may want to control: Total number of transactions for all masters Number of transactions per master Bus Interconnect DUT Number of transactions per slave Number of transactions from one master to a particular slave Slave Agent Slave Agent Use/avoid using certain masters or slaves Etc. DVClub Europe 6 Feb

19 Bus Interconnect Configuration Constraints Use 2-D array to model number of transactions rand int unsigned txn_map[n_master][n_slave]; Add rand variables and constraints for provide knobs controllable by test S0 S1 S2 S3 S4 S5 Total txns per master Sum rows to get txns per master M Sum columns to get txns per slave M M M M Sum entire array to get total txns Total Txns per slave Total txns 1151 DVClub Europe 6 Feb

20 Constrain Total Number of Transactions class ms_config#(n_master=5, N_SLAVE=6); rand int unsigned txn_map[n_master][n_slave]; rand int unsigned total_txns; sum with( )is equivalent to: foreach(txn_map[m,s]) sum += txn_map[m][s]; constraint c_valid { total_txns == txn_map.sum; endclass DVClub Europe 6 Feb

21 Constrain Transactions Per Master class ms_config#(n_master=5, N_SLAVE=6); rand int unsigned txn_map[n_master][n_slave]; rand int unsigned n_txns_per_master[n_master]; Sum each row of txn_map array constraint c_valid { foreach(n_txns_per_master[m]) { n_txns_per_master[m] == txn_map[m].sum; endclass DVClub Europe 6 Feb

22 Constrain Transactions Per Slave class ms_config#(n_master=5, N_SLAVE=6);... rand int unsigned n_txns_per_slave[n_slave]; sum with( ) is equivalent to: foreach(txn_map[m,s]) if(s == s) sum += txn_map[m][s]; else sum += 0; constraint c_valid { foreach(n_txns_per_slave[s]) { n_txns_per_slave[s] == txn_map.sum with( (item.index(2) == s)? item : 0); ); endclass item.index(2) returns Index for 2 nd array dimension; DVClub Europe 6 Feb

23 Constrain Individual Masters/Slaves class ms_config#(n_master=5, N_SLAVE=6);... rand bit use_master[n_master]; rand bit use_slave[n_master]; rand int unsigned use_n_masters; rand int unsigned use_n_slaves; constraint c_valid { foreach(use_master[m]) { (use_master[m] == 1) == (n_txns_per_master[m] > 0); use_n_masters == use_master.sum with (int'(item)); Master is used if it has at least 1 transaction Count number of used masters foreach(use_slave[s]) { (use_slave[s] == 1) == (n_txns_per_slave[s] > 0); use_n_slaves == use_slave.sum with (int'(item)) endclass DVClub Europe 6 Feb

24 Test Scenario Constraints ms_config cfg = new; cfg.randomize with { total_txns == 10000; use_n_masters inside {[2:4]; use_master[1] == 1; use_slave[3] == 0; Generate a total of transactions Use between 2 and 4 masters Use Master 1 Don t use Slave 3 DVClub Europe 6 Feb

25 Command Line Control of Constraints function void ms_config::get_plusargs; if($value$plusargs("total_txns=%d", total_txns)) total_txns.rand_mode(0); if($value$plusargs("use_n_masters=%d", use_n_masters)) use_n_masters.rand_mode(0); foreach(use_master[m]) begin string format = $sformatf("use_master[%0d]=%%b", m); if($value$plusargs(format, use_master[m])) use_master[m].rand_mode(0); end... endfunction If plusarg specified on command line, disable randomization for corresponding variable Compute plusarg names for individual array elements Test case configuration ms_config cfg = new; cfg.get_plusargs; cfg.randomize; Simulator command line {irun simv vsim +total_txns= use_n_masters=3 +use_master[1]=1... DVClub Europe 6 Feb

26 Example 2: Memory Map Generation See Appendix DVClub Europe 6 Feb

27 Summary Constraint techniques: Soft constraints Unique constraints Array constraints (foreach, size) Array reduction constraints (sum, and, ) Reusable constraints: policy classes Constraint solver can handle complex problems use it! DVClub Europe 6 Feb

28 Thank You DVClub Europe 6 Feb

29 Appendix DVClub Europe 6 Feb

30 Example 2: Memory Map Generation DVClub Europe 6 Feb

31 Memory Map Generation Memory Management Unit Features: 32-bit address 3 address range (page) sizes: 1KB, 4KB, 1MB Range starting address aligned to range size Range can be Non-cacheable, Write-through cacheable, write-back cacheable Problem: Generate interesting sets of non-overlapping memory ranges Select memory transactions from mapped ranges DVClub Europe 6 Feb

32 Memory Map Generation Implementation: mem_range class describes single range mem_map class has rand array of mem_range (plus constraints) mem_range array fixed maximum size; randomize number of valid ranges (workaround for solve size before foreach limitation) Configurable constraint policy classes select number & types of ranges map range[0] range[1] range[2] range[3] range[n-1] range[n] valid size cache... valid size cache... valid size cache... valid size cache invalid size cache... invalid size cache... DVClub Europe 6 Feb

33 Memory Range Class typedef bit [31:0] addr_t; typedef enum addr_t { SIZE_1K='h400, SIZE_4K='h1000, SIZE_1M='h size_t; typedef enum { NONCACHEABLE, WT_CACHEABLE, WB_CACHEABLE cache_t; This range is valid (will be constrained) class mem_range; rand bit rand size_t rand addr_t rand addr_t rand cache_t valid; size; start_addr; end_addr; cache_type; constraint c_valid { size == (1 + end_addr - start_addr); (start_addr & (size - 1)) == 0; endclass Ensure size, start, end are in sync Size-align start address DVClub Europe 6 Feb

34 Memory Map Class class mem_map; int max_ranges = 10; rand int num_ranges; rand mem_range ranges[]; rand rand_policy_base#(mem_map) pcy[$]; function new(int max_ranges); this.max_ranges = max_ranges; endfunction function void pre_randomize; ranges = new[max_ranges]; foreach (ranges[i]) ranges[i] = new(); foreach(pcy[i]) pcy[i].set_item(this); endfunction... Rand array of mem_ranges Ensure all mem_range instances are constructed before randomizing DVClub Europe 6 Feb

35 Memory Map Class class mem_map; int max_ranges = 10; rand int num_ranges; rand mem_range ranges[]; rand rand_policy_base#(mem_map) pcy[$]; Non-overlapping valid ranges sorted by address function new(int max_ranges); this.max_ranges = max_ranges; endfunction function void pre_randomize; ranges = new[max_ranges]; foreach (ranges[i]) ranges[i] = new(); foreach(pcy[i]) pcy[i].set_item(this); endfunction... Ensure first num_ranges entries are valid, remainder invalid... constraint c_valid { foreach(ranges[i]) if(i>0) { if(ranges[i].valid) ranges[i].start_addr > ranges[i-1].end_addr; num_ranges inside {[1:max_ranges]; foreach(ranges[i]) { ranges[i].valid == ((i < num_ranges)? 1 : 0); endclass DVClub Europe 6 Feb

36 Memory Range Allocation Policies Allocate between min and max pages of specified size class page_count_policy extends rand_policy_base#(mem_map); addr_t size; int min; // minimum number of pages of given size int max; // maximum number of pages of given size Constrain number of valid pages of desired size constraint c_count { item.ranges.sum(r) with (int'(r.valid && (r.size == size))) inside {[min:max]; function new(addr_t size, int min, int max=min); this.size = size; this.min = min; this.max = max; endfunction endclass DVClub Europe 6 Feb

37 Memory Range Allocation Policies Allocate between min and max bytes of a specified cache type class cache_size_policy extends rand_policy_base#(mem_map); cache_t cache_type; addr_t min; addr_t max; constraint c_cache { item.ranges.sum(r) with ( (r.valid && (r.cache_type == cache_type))? r.size : 0 ) inside {[min:max]; Constrain number of valid pages of desired cache type function new(cache_t cache_type, addr_t min, addr_t max='1); this.cache_type = cache_type; this.min = min; this.max = max; endfunction endclass DVClub Europe 6 Feb

38 Configuring the Memory Map // Allocate memory map with: // Any number of 1K pages // At most 2 4KB pages // No 1MB pages // At least 4KB of non-cacheable memory // At least 8KB of write-back cacheable memory // No write-though cacheable memory Construct policies with desired characteristics mem_map map = new; page_count_policy count_4k_pcy = new(size_4k, 0, 2); page_count_policy count_1m_pcy = new(size_1m, 0); Add policies to map cache_size_policy NC_pcy = new(noncacheable, SIZE_4K); cache_size_policy WB_pcy = new(wb_cacheable, 2*SIZE_4K); cache_size_policy WT_pcy = new(wt_cacheable, 0,0); map.pcy = { NC_pcy, WB_pcy, WT_pcy, count_4k_pcy, count_1m_pcy; map.randomize; DVClub Europe 6 Feb

39 Using the Memory Map Problem: Generate Memory Transactions Using Memory Map Transactions may be 1, 2 or 4 bytes. All bytes of a transaction must be within a single memory range Transaction addresses must be size-aligned Transaction s cache type must match its memory range cache type Implementation Use policy class to inject memory map constraints into memory transaction DVClub Europe 6 Feb

40 Memory Transaction class mem_txn; rand addr_t addr; rand addr_t size; rand cache_t cache_type; rand rand_policy_base#(mem_txn) pcy[$]; Constrain sizes and alignment constraint c_size { size inside {1, 2, 4; constraint c_align { (addr & (size-1)) == 0; function void pre_randomize; foreach(pcy[i]) pcy[i].set_item(this); endfunction endclass DVClub Europe 6 Feb

41 Transaction Selection Policy class mem_txn; rand addr_t addr; rand addr_t size; rand cache_t cache_type; rand rand_policy_base#(mem_txn) pcy[$]; class txn_pick_policy extends rand_policy_base#(mem_txn); constraint c_size mem_map { size map; inside {1, 2, 4; constraint c_align { (addr & (size-1)) == 0; function new(mem_map map); function void pre_randomize; this.map = map; foreach(pcy[i]) endfunction pcy[i].set_item(this); endfunction endclass constraint c_pick { map.ranges.or(r) with ( item.addr inside {[r.start_addr : (r.end_addr - item.size)] && item.cache_type == r.cache_type ); endclass Use the policy when randomizing txn txn_pick_policy pick_pcy = new(mem_map); mem_txn txn = new; txn.pcy = {pick_pcy; txn.randomize; Non-rand mem_map used as state variable Use OR-reduction to constrain txn to fit within range with same cache type DVClub Europe 6 Feb

The Top Most Common SystemVerilog Constrained Random Gotchas

The Top Most Common SystemVerilog Constrained Random Gotchas The Top Most Common SystemVerilog Constrained Random Gotchas Author: Ahmed Yehia Presenter: Gabriel Chidolue Accellera Systems Initiative 1 Motivation More time is taken in debug than any other project

More information

The Top Most Common SystemVerilog Constrained Random Gotchas

The Top Most Common SystemVerilog Constrained Random Gotchas The Top Most Common SystemVerilog Constrained Random Gotchas Ahmed Yehia, Mentor Graphics Corp., Cairo, Egypt, ahmed_yehia@mentor.com Abstract The Constrained Random (CR) portion in any verification environment

More information

Use the Sequence, Luke

Use the Sequence, Luke Use the Sequence, Luke Guidelines to Reach the Full Potential of UVM Sequences Jeff Vance, Jeff Montesano, Mark Litterick Verilab October 23, 2018 Austin SNUG 2018 1 Agenda Introduction Sequence API Strategy

More information

Set a longer list of transaction attributes as per protocol legality Perform the cache data/state update at end of transaction, as needed

Set a longer list of transaction attributes as per protocol legality Perform the cache data/state update at end of transaction, as needed Cache Coherent Interface Verification IP How a Cache Controller and Generic APIs Can Make It Easier to Generate Stimulus. by Amit Kumar Jain, Questa VIP Product Team, Mentor Graphics ABSTRACT In a multi-processor

More information

Verification Prowess with the UVM Harness

Verification Prowess with the UVM Harness Verification Prowess with the UVM Harness Interface Techniques for Advanced Verification Strategies Jeff Vance, Jeff Montesano Verilab Inc. October 19, 2017 Austin SNUG 2017 1 Agenda Introduction UVM Harness

More information

Configuring a Date with a Model

Configuring a Date with a Model Configuring a Date with a Model A Guide to Configuration Objects and Register Models Jeff Montesano, Jeff Vance Verilab, Inc. copyright (c) 2016 Verilab & SNUG September 29, 2016 SNUG Austin SNUG 2016

More information

User Experience with UVM

User Experience with UVM User Experience with UVM Stephen D Onofrio & Peter D Antonio Stacking Verification Components in UVM 2012 The MITRE Corporation. All Rights Reserved. Approved for Public Release: 12-0309 Distribution Unlimited

More information

List of Code Samples. xiii

List of Code Samples. xiii xiii List of Code Samples Sample 1-1 Driving the APB pins 16 Sample 1-2 A task to drive the APB pins 17 Sample 1-3 Low-level Verilog test 17 Sample 1-4 Basic transactor code 21 Sample 2-1 Using the logic

More information

Interconnect Shared Cache

Interconnect Shared Cache 2016 17th International Workshop on Microprocessor and SOC Test and Verification : A Flexible and Simulation Cost-Effective UVC for Testing Shared Caches Saddam Jamil Quirem Samsung Austin R&D Center Austin,

More information

My Testbench Used to Break! Now it Bends: Adapting to Changing Design Configurations

My Testbench Used to Break! Now it Bends: Adapting to Changing Design Configurations My Testbench Used to Break! Now it Bs: Adapting to Changing Design Configurations Jeff Vance, Jeff Montesano, Kevin Vasconcellos, Kevin Johnston Verilab Inc. 609 Castle Ridge Road Suite 210, Austin, TX

More information

Creating Stimulus and Stimulating Creativity:

Creating Stimulus and Stimulating Creativity: Creating Stimulus and Stimulating Creativity: Using the VMM Scenario Generator Jonathan Bromley Doulos Ltd, Ringwood, UK jonathan.bromley@doulos.com 2 Outline Introduction: motivation for scenarios The

More information

Practical Experience in Automatic Functional Coverage Convergence and Reusable Collection Infrastructure in UVM

Practical Experience in Automatic Functional Coverage Convergence and Reusable Collection Infrastructure in UVM Practical Experience in Automatic Functional Coverage Convergence and Reusable Collection Infrastructure in UVM Roman Wang roman.wang@amd.com Suresh Babu & Mike Bartley sureshbabu.p@testandverification.com

More information

Self- Tuning Coverage

Self- Tuning Coverage Self- Tuning Coverage Jonathan Bromley 1 Overview Coverage reuse needs flexibility, configurability SELF TUNING in response to configuration, parameters etc Coverage can mislead! SV covergroups are not

More information

Modeling Usable & Reusable Transactors in SystemVerilog Janick Bergeron, Scientist

Modeling Usable & Reusable Transactors in SystemVerilog Janick Bergeron, Scientist Modeling Usable & Reusable Transactors in SystemVerilog Janick Bergeron, Scientist Verification Group, Synopsys Inc janick@synopsys.com Transactors Definition Building blocks of verification environments

More information

Verification Prowess with the UVM Harness

Verification Prowess with the UVM Harness Interface Techniques for Advanced Verification Strategies Jeff Vance, Jeff Montesano, Kevin Johnston Verilab Inc. Austin, Texas www.verilab.com ABSTRACT In this paper we show how to create a UVM testbench

More information

Title: Using Test-IP Based Verification Techniques in a UVM Environment

Title: Using Test-IP Based Verification Techniques in a UVM Environment Title: Using Test-IP Based Verification Techniques in a UVM Environment Vidya Bellippady Sundar Haran Jay O Donnell Microsemi Corporation Microsemi Corporation Mentor Graphics San Jose, CA Hyderabad, India

More information

Easier UVM Functional Verification for Mainstream Designers

Easier UVM Functional Verification for Mainstream Designers Easier UVM Functional Verification for Mainstream Designers John Aynsley, Doulos 1 Easier UVM Functional Verification for Mainstream Designers Introducing UVM Transactions and Components Sequencers and

More information

DesignCon Modeling Data and Transactions in SystemVerilog. Janick Bergeron, Synopsys

DesignCon Modeling Data and Transactions in SystemVerilog. Janick Bergeron, Synopsys DesignCon 2005 Modeling Data and Transactions in SystemVerilog Janick Bergeron, Synopsys janick@synopsys.com Abstract This paper describes how to properly use the object-oriented features of SystemVerilog

More information

Constrained Random Data Generation Using SystemVerilog

Constrained Random Data Generation Using SystemVerilog Constrained Random Data Generation Using SystemVerilog Tim Pylant, Cadence Design Systems, Inc. 1 Ideal Stimulus Generation Need a way to generate stimulus without long, manual process Data should be random

More information

Hiding the Guts by Ray Salemi, Senior Verification Consultant, Mentor Graphics

Hiding the Guts by Ray Salemi, Senior Verification Consultant, Mentor Graphics Hiding the Guts by Ray Salemi, Senior Verification Consultant, Mentor Graphics We verification test bench designers are happy sausage makers, merrily turning out complex and powerful verification environments.

More information

Yet Another Memory Manager (YAMM)

Yet Another Memory Manager (YAMM) by Ionut Tolea, Andrei Vintila AMIQ Consulting SRL Bucharest, Romania http://www.amiq.com/consulting ABSTRACT This paper presents an implementation of a memory manager (MM) verification component suitable

More information

SVA in a UVM Class-based Environment by Ben Cohen, author, consultant, and trainer

SVA in a UVM Class-based Environment by Ben Cohen, author, consultant, and trainer SVA in a UVM Class-based Environment by Ben Cohen, author, consultant, and trainer INTRODUCTION Verification can be defined as the check that the design meets the requirements. How can this be achieved?

More information

Graph-Based Verification in a UVM Environment

Graph-Based Verification in a UVM Environment Graph-Based Verification in a UVM Environment Staffan Berg European Applications Engineer July 2012 Graph-Based Intelligent Testbench Automation (itba) Welcome DVClub Attendees Organizers Presenters Verification

More information

Getting Started with OVM 2.0

Getting Started with OVM 2.0 A Series of Tutorials based on a set of Simple, Complete Examples Introduction In this tutorial, the emphasis is on getting a simple example working rather than on understanding the broad flow of the constrained

More information

3) Cache, money. Dollar bills, y all. (24 min, 15 pts)

3) Cache, money. Dollar bills, y all. (24 min, 15 pts) Login: cs61c- Answers 3) Cache, money. Dollar bills, y all. (24 min, 15 pts) Suppose we have a standard 32-bit byte-addressed MIPS machine, a single direct-mapped 32KiB cache, a write-through policy, and

More information

Responding to TAT Improvement Challenge through Testbench Configurability and Re-use

Responding to TAT Improvement Challenge through Testbench Configurability and Re-use Responding to TAT Improvement Challenge through Testbench Configurability and Re-use Akhila M, Kartik Jain, Renuka Devi, Mukesh Bhartiya Accellera Systems Initiative 1 Motivation Agenda Generic AMBA based

More information

This paper was presented at DVCon-Europe in November It received the conference Best Paper award based on audience voting.

This paper was presented at DVCon-Europe in November It received the conference Best Paper award based on audience voting. This paper was presented at DVCon-Europe in November 2015. It received the conference Best Paper award based on audience voting. It is a very slightly updated version of a paper that was presented at SNUG

More information

Getting Started with UVM. Agenda

Getting Started with UVM. Agenda Getting Started with UVM Vanessa Cooper Verification Consultant 1 Agenda Testbench Architecture Using the Configuration Database Connecting the Scoreboard Register Model: UVM Reg Predictor Register Model:

More information

Stacking UVCs Methodology. Revision 1.2

Stacking UVCs Methodology. Revision 1.2 Methodology Revision 1.2 Table of Contents 1 Stacking UVCs Overview... 3 2 References... 3 3 Terms, Definitions, and Abbreviations... 3 4 Stacking UVCs Motivation... 4 5 What is a Stacked UVC... 6 5.1

More information

OVERVIEW: ============================================================ REPLACE

OVERVIEW: ============================================================ REPLACE OVERVIEW: With mantis 928, formal arguments to properties and sequences are defined to apply to a list of arguments that follow, much like tasks and function arguments. Previously, the type had to be replicated

More information

Slicing Through the UVM's Red Tape A Frustrated User's Survival Guide

Slicing Through the UVM's Red Tape A Frustrated User's Survival Guide Slicing Through the UVM's Red Tape A Frustrated User's Survival Guide Jonathan Bromley Accellera Systems Initiative 1 UVM!= Straitjacket Doesn't cover everything Some key common requirements unsatisfied

More information

Practical experience in automatic functional coverage convergence and reusable collection infrastructure in UVM verification

Practical experience in automatic functional coverage convergence and reusable collection infrastructure in UVM verification Practical experience in automatic functional coverage convergence and reusable collection infrastructure in UVM verification Roman Wang, +8613482890029, Advanced Micro Devices, Inc., Shanghai, China (roman.wang@amd.com)

More information

5 Developing Acceleratable Universal Verification Components (UVCs)

5 Developing Acceleratable Universal Verification Components (UVCs) 5 Developing Acceleratable Universal Verification Components (UVCs) This chapter discusses the following topics: Introduction to UVM Acceleration UVC Architecture UVM Acceleration Package Interfaces SCE-MI

More information

Easy migration between frameworks using UVM Multi- Language (UVM-ML) Dr. Mike Bartley, Test and Verification Solutions

Easy migration between frameworks using UVM Multi- Language (UVM-ML) Dr. Mike Bartley, Test and Verification Solutions Easy migration between frameworks using UVM Multi- Language (UVM-ML) Dr. Mike Bartley, Test and Verification Solutions Agenda The need for UVM-ML UVM-ML : A background TVS Test Environment UVM-ML Use Cases

More information

CSE 591: Advanced Hardware Design Professor: Kyle Gilsdorf

CSE 591: Advanced Hardware Design Professor: Kyle Gilsdorf CSE 591: Advanced Hardware Design Professor: Kyle Gilsdorf (Kyle.Gilsdorf@asu.edu) What: System Verilog Verification Environment for Lab #2 Table of Contents 1. Overview 2 1. Verification 3 2. Feature

More information

February 24-26, 2009

February 24-26, 2009 Divide and conquer: February 24-26, 2009 Techniques for creating a highly reusable stimulus generation process Ning Guo Paradigm Works Outline Introduction Stimulus Representation Stimulus Generation Implementation

More information

Seven Separate Sequence Styles Speed Stimulus Scenarios

Seven Separate Sequence Styles Speed Stimulus Scenarios Seven Separate Sequence Styles Speed Stimulus Scenarios Mark Peryer Mentor Graphics (UK) Ltd Rivergate, London Road, Newbury, Berkshire, RG14 2QB., UK mark_peryer@mentor.com Abstract Writing effective

More information

Optimizing Session Caches in PowerCenter

Optimizing Session Caches in PowerCenter Optimizing Session Caches in PowerCenter 1993-2015 Informatica Corporation. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording or otherwise)

More information

package uvm_svid_monitor_package; import uvm_pkg::*; // //svid_transmit_packet_configuration

package uvm_svid_monitor_package; import uvm_pkg::*; // //svid_transmit_packet_configuration `include "uvm_macros.svh" package uvm_svid_monitor_package; import uvm_pkg::*; //---------------------------------------------------------- //svid_transmit_packet_configuration //----------------------------------------------------------

More information

List of Examples List of Figures List of Tables. Acknowledgments 1. VERIFICATION GUIDELINES 1

List of Examples List of Figures List of Tables. Acknowledgments 1. VERIFICATION GUIDELINES 1 Contents List of Examples List of Figures List of Tables Preface Acknowledgments xiii xxvii xxix xxxi xxxvii 1. VERIFICATION GUIDELINES 1 1.1 The Verification Process 2 1.2 The Verification Methodology

More information

Graph-Based IP Verification in an ARM SoC Environment by Andreas Meyer, Verification Technologist, Mentor Graphics Corporation

Graph-Based IP Verification in an ARM SoC Environment by Andreas Meyer, Verification Technologist, Mentor Graphics Corporation Graph-Based IP Verification in an ARM SoC Environment by Andreas Meyer, Verification Technologist, Mentor Graphics Corporation The use of graph-based verification methods for block designs has been shown

More information

Vertical Reuse of functional verification from subsystem to SoC level (with seamless SoC emulation)

Vertical Reuse of functional verification from subsystem to SoC level (with seamless SoC emulation) Vertical Reuse of functional verification from subsystem to SoC level (with seamless SoC emulation) Pranav Kumar, Staff Engineer Digvijaya Pratap SINGH, Sr. Staff Engineer STMicroelectronics, Greater NOIDA,

More information

Non-numeric types, boolean types, arithmetic. operators. Comp Sci 1570 Introduction to C++ Non-numeric types. const. Reserved words.

Non-numeric types, boolean types, arithmetic. operators. Comp Sci 1570 Introduction to C++ Non-numeric types. const. Reserved words. , ean, arithmetic s s on acters Comp Sci 1570 Introduction to C++ Outline s s on acters 1 2 3 4 s s on acters Outline s s on acters 1 2 3 4 s s on acters ASCII s s on acters ASCII s s on acters Type: acter

More information

SystemVerilog 3.1: It s What The DAVEs In Your Company Asked For

SystemVerilog 3.1: It s What The DAVEs In Your Company Asked For February 24-26, 2003 SystemVerilog 3.1: It s What The DAVEs In Your Company Asked For Stuart HDL, Inc. www.sutherland-hdl.com 2/27/2003 1 This presentation will Define what is SystemVerilog Provide an

More information

Beyond UVM Registers Better, Faster, Smarter

Beyond UVM Registers Better, Faster, Smarter Beyond UVM Registers Better, Faster, Smarter Rich Edelman, Bhushan Safi Mentor Graphics, US, India Accellera Systems Initiative 1 What are UVM Registers good for? Standard Runs on all the simulators High

More information

No RTL Yet? No Problem UVM Testing a SystemVerilog Fabric Model

No RTL Yet? No Problem UVM Testing a SystemVerilog Fabric Model No RTL Yet? No Problem UVM Testing a SystemVerilog Fabric Model Rich Edelman Mentor Graphics, Fremont, CA rich_edelman@mentor.com 510-354-7436 Abstract-SystemVerilog is a powerful language which can be

More information

NoC Generic Scoreboard VIP by François Cerisier and Mathieu Maisonneuve, Test and Verification Solutions

NoC Generic Scoreboard VIP by François Cerisier and Mathieu Maisonneuve, Test and Verification Solutions NoC Generic Scoreboard VIP by François Cerisier and Mathieu Maisonneuve, Test and Verification Solutions Abstract The increase of SoC complexity with more cores, IPs and other subsystems has led SoC architects

More information

Boost Verification Results by Bridging the Hardware/Software Testbench Gap

Boost Verification Results by Bridging the Hardware/Software Testbench Gap Boost Verification Results by Bridging the Hardware/Software Testbench Gap Matthew Ballance Mentor Graphics Corporation Design Verification Technology Division Wilsonville, Oregon matt_ballance@mentor.com

More information

Module- or Class-Based URM? A Pragmatic Guide to Creating Verification Environments in SystemVerilog. Paradigm Works, Inc. Dr.

Module- or Class-Based URM? A Pragmatic Guide to Creating Verification Environments in SystemVerilog. Paradigm Works, Inc. Dr. Module- or Class-Based URM? A Pragmatic Guide to Creating Verification Environments in SystemVerilog Paradigm Works, Inc. Dr. Ambar Sarkar Session # 2.15 Presented at Module- or Class-Based URM? A Pragmatic

More information

INF5430. SystemVerilog for Verification. Chapter Randomization

INF5430. SystemVerilog for Verification. Chapter Randomization INF5430 SystemVerilog for Verification Chapter 6.1-12 Randomization Chapter 6: Randomization Directed testing: Checks only anticipated bugs Scales poorly as requirements change Little upfront work Linear

More information

HDL Introduction and Reuse

HDL Introduction and Reuse Verilog HDL Introduction and Reuse P. Bakowski bako@ieee.org Verilog HDL Verilog IEEE 13641 1995 95 P. Bakowski 2 Verilog HDL Verilog IEEE 13641 Verilog AMS 1995 95 1998 P. Bakowski 3 Verilog HDL Verilog

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

Fast Track to Productivity Using Questa Verification IP by David Aerne and Ankur Jain, Verification Technologists, Mentor Graphics

Fast Track to Productivity Using Questa Verification IP by David Aerne and Ankur Jain, Verification Technologists, Mentor Graphics Fast Track to Productivity Using Questa Verification IP by David Aerne and Ankur Jain, Verification Technologists, Mentor Graphics ABSTRACT The challenges inherent in verifying today s complex designs

More information

UVM Tips & Tricks. By: Shankar Arora. Logic Fruit Technologies. White Paper

UVM Tips & Tricks. By: Shankar Arora. Logic Fruit Technologies. White Paper Logic Fruit Technologies White Paper 806, 8th Floor BPTP Park Centra, Sector 30, Gurgaon. Pin: 122001 T: +91-124-4117336 W: http://www.logic-fruit.com UVM Tips & Tricks By: Shankar Arora UVM is the most

More information

Slaying the UVM Reuse Dragon Issues and Strategies for Achieving UVM Reuse

Slaying the UVM Reuse Dragon Issues and Strategies for Achieving UVM Reuse Slaying the UVM Reuse Dragon Issues and Strategies for Achieving UVM Reuse Mike Baird WHDL Willamette, OR mike@whdl.com Bob Oden UVM Field Specialist Mentor Graphics Raleigh, NC bob_oden@mentor.com Abstract

More information

Warmup January 9th, What is the value of the following C expression? 8*9 % 10/ 2

Warmup January 9th, What is the value of the following C expression? 8*9 % 10/ 2 Warmup January 9th, 2018 What is the value of the following C expression? 8*9 % 10/ 2 Warmup January 11th, 2018 What is the value of the following C expression? ( -42 3!= 3) && ( -3 < -2 < -1) Warmup January

More information

What, If Anything, In SystemVerilog Will Help Me With FPGA-based Design. Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc.

What, If Anything, In SystemVerilog Will Help Me With FPGA-based Design. Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc. What, If Anything, In SystemVerilog Will Help Me With FPGA-based Design Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc. About the Presenter... Stuart Sutherland, SystemVerilog wizard Independent

More information

Sunburst Design - SystemVerilog UVM Verification Training by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

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

More information

Easy Steps Towards Virtual Prototyping using the SystemVerilog DPI

Easy Steps Towards Virtual Prototyping using the SystemVerilog DPI Easy Steps Towards Virtual Prototyping using the SystemVerilog DPI Dave Rich Mentor Graphics, Inc. Fremont, CA dave_rich@mentor.com Abstract The hardware and software worlds have been drifting apart ever

More information

Perplexing Parameter Permutation Problems? Immunize Your Testbench

Perplexing Parameter Permutation Problems? Immunize Your Testbench Immunize Your Testbench Alex Melikian Paul Marriott Verilab Montreal, Quebec, Canada verilab.com @verilab ABSTRACT RTL parameters are used frequently in designs, especially IPs, in order to increase flexibility

More information

System Verilog Tagged Unions and Pattern Matching

System Verilog Tagged Unions and Pattern Matching System Verilog Tagged Unions and Pattern Matching (An extension to System Verilog 3.1 proposed to Accellera) Bluespec, Inc. Contact: Rishiyur S. Nikhil, CTO, Bluespec, Inc. 200 West Street, 4th Flr., Waltham,

More information

A short introduction to SystemVerilog. For those who know VHDL We aim for synthesis

A short introduction to SystemVerilog. For those who know VHDL We aim for synthesis A short introduction to SystemVerilog For those who know VHDL We aim for synthesis 1 Verilog & SystemVerilog 1984 Verilog invented, C-like syntax First standard Verilog 95 Extra features Verilog 2001 A

More information

Kampala August, Agner Fog

Kampala August, Agner Fog Advanced microprocessor optimization Kampala August, 2007 Agner Fog www.agner.org Agenda Intel and AMD microprocessors Out Of Order execution Branch prediction Platform, 32 or 64 bits Choice of compiler

More information

A New Class Of Registers

A New Class Of Registers A New Class Of s M. Peryer Mentor Graphics (UK) Ltd., Rivergate, London Road, Newbury, Berkshire, RG14 2QB, United Kingdom D. Aerne Mentor Graphics Corp., 8005 SW Boeckman Road, Wilsonville, OR USA 97070-7777

More information

Development of UVM based Reusabe Verification Environment for SHA-3 Cryptographic Core

Development of UVM based Reusabe Verification Environment for SHA-3 Cryptographic Core Development of UVM based Reusabe Verification Environment for SHA-3 Cryptographic Core M. N. Kubavat Dept. of VLSI & Embedded Systems Design, GTU PG School Gujarat Technological University Ahmedabad, India

More information

Final Exam. Name: Student ID: Section: Signature:

Final Exam. Name: Student ID: Section: Signature: Final Exam PIC 10B, Spring 2016 Name: Student ID: Section: Discussion 3A (2:00 2:50 with Kelly) Discussion 3B (3:00 3:50 with Andre) I attest that the work presented in this exam is my own. I have not

More information

Chapter 2. Procedural Programming

Chapter 2. Procedural Programming Chapter 2 Procedural Programming 2: Preview Basic concepts that are similar in both Java and C++, including: standard data types control structures I/O functions Dynamic memory management, and some basic

More information

Open Verification Methodology (OVM)

Open Verification Methodology (OVM) Open Verification Methodology (OVM) Built on the success of the Advanced Verification Methodology (AVM) from Mentor Graphics and the Universal Reuse Methodology (URM) from Cadence, the OVM brings the combined

More information

C# Fundamentals. Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh

C# Fundamentals. Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh C# Fundamentals Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 1 2018/19 H-W. Loidl (Heriot-Watt Univ) F20SC/F21SC 2018/19

More information

A User s Experience with SystemVerilog

A User s Experience with SystemVerilog A User s Experience with SystemVerilog and Doulos Ltd Ringwood, U.K. BH24 1AW jonathan.bromley@doulos.com michael.smith@doulos.com 2 Objectives Practical use of SystemVerilog Synopsys tools (VCS, Design

More information

C++ For Science and Engineering Lecture 15

C++ For Science and Engineering Lecture 15 C++ For Science and Engineering Lecture 15 John Chrispell Tulane University Wednesday September 29, 2010 Function Review Recall the basics you already know about functions. Provide a function definition.

More information

166 SystemVerilog Assertions Handbook, 4th Edition

166 SystemVerilog Assertions Handbook, 4th Edition 166 SystemVerilog Assertions Handbook, 4th Edition example, suppose that a cache controller performs behavior A when there is a cache hit (e.g., fetch data from the cache), or performs behavior B when

More information

The Verification Future needs an Easier UVM

The Verification Future needs an Easier UVM Verification Futures The Verification Future needs an Easier UVM John Aynsley, CTO, Doulos 1 The Verification Future needs an Easier UVM Motivation Introducing Easier UVM Coding Guidelines Code Generation

More information

Final Exam Solutions PIC 10B, Spring 2016

Final Exam Solutions PIC 10B, Spring 2016 Final Exam Solutions PIC 10B, Spring 2016 Problem 1. (10 pts) Consider the Fraction class, whose partial declaration was given by 1 class Fraction { 2 public : 3 Fraction ( int num, int den ); 4... 5 int

More information

Sunburst Design - Advanced SystemVerilog for Design & Verification by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Sunburst Design - Advanced SystemVerilog for Design & Verification by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. World Class Verilog & SystemVerilog Training Sunburst Design - Advanced SystemVerilog for Design & Verification by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. Cliff

More information

Three Things You Need to Know to Use the Accellera PSS

Three Things You Need to Know to Use the Accellera PSS Three Things You Need to Know to Use the Accellera PSS Sharon Rosenberg, Senior Solutions Architect, Cadence Three primary considerations for adopting the Accellera Portable Stimulus Standard (PSS) are

More information

OVM/UVM Update. Universal Verification Methodology. Open Verification Methodology. Tom Fitzpatrick Verification Technologist Mentor Graphics Corp.

OVM/UVM Update. Universal Verification Methodology. Open Verification Methodology. Tom Fitzpatrick Verification Technologist Mentor Graphics Corp. Open Verification Methodology Universal Verification Methodology OVM/UVM Update Tom Fitzpatrick Verification Technologist Mentor Graphics Corp. Sharon Rosenberg Solutions Architect Cadence Design Systems

More information

System Verilog Tagged Unions and Pattern Matching

System Verilog Tagged Unions and Pattern Matching System Verilog Tagged Unions and Pattern Matching (An extension to System Verilog 3.1 proposed to Accellera) Bluespec, Inc. Contact: Rishiyur S. Nikhil, CTO, Bluespec, Inc. 200 West Street, 4th Flr., Waltham,

More information

SystemVerilog Essentials Simulation & Synthesis

SystemVerilog Essentials Simulation & Synthesis SystemVerilog Essentials Simulation & Synthesis Course Description This course provides all necessary theoretical and practical know-how to design programmable logic devices using SystemVerilog standard

More information

CSE 306/506 Operating Systems Process Address Space. YoungMin Kwon

CSE 306/506 Operating Systems Process Address Space. YoungMin Kwon CSE 306/506 Operating Systems Process Address Space YoungMin Kwon Process s Address Space Memory allocation for user processes On request, a right to use a new range of linear address is given to the process

More information

Submission instructions (read carefully): SS17 / Assignment 4 Instructor: Markus Püschel. ETH Zurich

Submission instructions (read carefully): SS17 / Assignment 4 Instructor: Markus Püschel. ETH Zurich 263-2300-00: How To Write Fast Numerical Code Assignment 4: 120 points Due Date: Th, April 13th, 17:00 http://www.inf.ethz.ch/personal/markusp/teaching/263-2300-eth-spring17/course.html Questions: fastcode@lists.inf.ethz.ch

More information

Stick a fork in It: Applications for SystemVerilog Dynamic Processes. Doug Smith and David Long Doulos

Stick a fork in It: Applications for SystemVerilog Dynamic Processes. Doug Smith and David Long Doulos Stick a fork in It: Applications for SystemVerilog Dynamic Processes Doug Smith and David Long Doulos Processes Fine-grained process control Foreign code adapters Creating stimulus Summary APPLICATIONS

More information

M1-R4: Programing and Problem Solving using C (JAN 2019)

M1-R4: Programing and Problem Solving using C (JAN 2019) M1-R4: Programing and Problem Solving using C (JAN 2019) Max Marks: 100 M1-R4-07-18 DURATION: 03 Hrs 1. Each question below gives a multiple choice of answers. Choose the most appropriate one and enter

More information

Memory, Arrays & Pointers

Memory, Arrays & Pointers 1 Memory, Arrays & Pointers Memory int main() { char c; int i,j; double x; c i j x 2 Arrays Defines a block of consecutive cells int main() { int i; int a[3]; i a[0] a[1] a[2] Arrays - the [ ] operator

More information

Lecture 2: Snooping and Directory Protocols. Topics: Snooping wrap-up and directory implementations

Lecture 2: Snooping and Directory Protocols. Topics: Snooping wrap-up and directory implementations Lecture 2: Snooping and Directory Protocols Topics: Snooping wrap-up and directory implementations 1 Split Transaction Bus So far, we have assumed that a coherence operation (request, snoops, responses,

More information

IMPORTANT QUESTIONS IN C FOR THE INTERVIEW

IMPORTANT QUESTIONS IN C FOR THE INTERVIEW IMPORTANT QUESTIONS IN C FOR THE INTERVIEW 1. What is a header file? Header file is a simple text file which contains prototypes of all in-built functions, predefined variables and symbolic constants.

More information

C Language Advanced Concepts. Microcomputer Architecture and Interfacing Colorado School of Mines Professor William Hoff

C Language Advanced Concepts. Microcomputer Architecture and Interfacing Colorado School of Mines Professor William Hoff C Language Advanced Concepts 1 Switch Statement Syntax Example switch (expression) { } case const_expr1: statement1; case const_expr2: : statement2; default: statementn; The break statement causes control

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

Simulation-Based FlexRay TM Conformance Testing - An OVM Success Story

Simulation-Based FlexRay TM Conformance Testing - An OVM Success Story Simulation-Based FlexRay TM Conformance Testing - An OVM Success Story Mark Litterick Consultant & Co-Founder Verilab Agenda FlexRay overview What we mean by conformance testing What OVM brings to the

More information

Syntax Syntax for file I/O error detection system function (not in Annex A)

Syntax Syntax for file I/O error detection system function (not in Annex A) writes any buffered output to the file(s) specified by mcd, to the file specified by fd, or if $fflush is invoked with no arguments, to all open files. 21.3.7 I/O error status file_error_detect_function

More information

Complex Signal Processing Verification under DO-254 Constraints by François Cerisier, AEDVICES Consulting

Complex Signal Processing Verification under DO-254 Constraints by François Cerisier, AEDVICES Consulting Complex Signal Processing Verification under DO-254 Constraints by François Cerisier, AEDVICES Consulting Building a complex signal processing function requires a deep understanding of the signal characteristics

More information

(6) The specification of a name with its type in a program. (7) Some memory that holds a value of a given type.

(6) The specification of a name with its type in a program. (7) Some memory that holds a value of a given type. CS 7A - Fall 2016 - Midterm 1 10/20/16 Write responses to questions 1 and 2 on this paper or attach additional sheets, as necessary For all subsequent problems, use separate paper Do not use a computer

More information

CS61C Sample Final. 1 Opening a New Branch. 2 Thread Level Parallelism

CS61C Sample Final. 1 Opening a New Branch. 2 Thread Level Parallelism CS61C Sample Final 1 Opening a New Branch struct market { char *name; struct item *inventory; // array of items int invsize; // size of array }; struct item { int id; int price; }; typedef struct market

More information

Monitors, Monitors Everywhere Who Is Monitoring the Monitors

Monitors, Monitors Everywhere Who Is Monitoring the Monitors Monitors, Monitors Everywhere Who Is Monitoring the Monitors Rich Edelman Mentor Graphics Raghu Ardeishar Mentor Graphics Abstract The reader of this paper should be interested in predicting the behavior

More information

Bentley Rules for Optimizing Work

Bentley Rules for Optimizing Work 6.172 Performance Engineering of Software Systems SPEED LIMIT PER ORDER OF 6.172 LECTURE 2 Bentley Rules for Optimizing Work Charles E. Leiserson September 11, 2012 2012 Charles E. Leiserson and I-Ting

More information

Last class: Today: Deadlocks. Memory Management

Last class: Today: Deadlocks. Memory Management Last class: Deadlocks Today: Memory Management CPU il1 L2 Memory Bus (e.g. PC133) Main Memory dl1 On-chip I/O Bus (e.g. PCI) Disk Ctrller Net. Int. Ctrller Network Binding of Programs to Addresses Address

More information

UVM: The Next Generation in Verification Methodology

UVM: The Next Generation in Verification Methodology UVM: The Next Generation in Verification Methodology Mark Glasser, Methodology Architect February 4, 2011 UVM is a new verification methodology that was developed by the verification community for the

More information

Architecture Validation of VFP Control for the WiNC2R Platform

Architecture Validation of VFP Control for the WiNC2R Platform Architecture Validation of VFP Control for the WiNC2R Platform BY AKSHAY JOG A Thesis submitted to the Graduate School -- New Brunswick Rutgers, The State University of New Jersey in partial fulfillment

More information

AXI4-Stream Verification IP v1.0

AXI4-Stream Verification IP v1.0 AXI4-Stream Verification IP v1.0 LogiCORE IP Product Guide Vivado Design Suite Table of Contents IP Facts Chapter 1: Overview Feature Summary..................................................................

More information

UVM-SystemC Standardization Status and Latest Developments

UVM-SystemC Standardization Status and Latest Developments 2/27/2017 UVM-SystemC Standardization Status and Latest Developments Trevor Wieman, SystemC CCI WG Chair Slides by Michael Meredith, Cadence Design Systems 2 Outline Why UVM-SystemC? UVM layered architecture

More information