Defining UVM Coverage in IDesignSpec Sandeep Thakur Agnisys Support Team
|
|
- Kerrie Adele Carr
- 6 years ago
- Views:
Transcription
1 Defining UVM Coverage in IDesignSpec Sandeep Thakur Agnisys Support Team Table of Contents DEFINING UVM COVERAGE IN IDESIGNSPEC... 1 Customize Auto-generated Coverage... 5 User-Defined Coverage... 6 Mention the Coverage Identifiers and their "one-hot" values Linking the Covergroups and Its respective Identifiers Control the user-defined coverage... 8 Summary... 9 Defining UVM Coverage in IDesignSpec UVM Register Model has its default coverage types i.e. fields, bits and address-map coverage types.idesignspec (IDS) automatically generate the coverage code for all the components inside the top level block. User can also control, what type of coverage code should be generated for any particular register or block. This is done using IDS property coverage which support values on, off, a, b and f which generates: a Coverage code for the addresses read or written in an address map. b Coverage code for the bits read or written in registers. f Coverage code for the values of fields. on Coverage code for all the above mentioned types off No coverage code will be generated For a register or block, user can define multiple coverage types like ab, fb and so on. For this, coverage code will be generated for multiple types. coverage=on is similar to coverage=abf. In case of f and b types of coverage, two read and write access type covergroups are generated for each type of coverages(f.rd, f.wr, b.rd, b.wr). e.g. in case of f type coverage rd_cg_vals and wr_cg_vals are generated. User can also restrict covergroups generation based on read or write access types using property coverage=f.rd, will generate only read access type 1
2 covergroups(rd_cg_vals) or coverage=f.wr will generate write access type(wr_cg_vals).user can generate whatever access types of covergroups using rd/wr to the coverage property value. This coverage property is hierarchical, if mentioned in the block,it will be applied for all the registers that are inside the block. User can also mention this property for a particular register, which will over-ride this property value if mentioned above in its (parent) block. Coverage code is generated for Blocks, Memories and Registers deping on where coverage property value. For Register (reg1) having fields(fld1& fld2), there are two types of covergroups that can be generated, covergroups according to values of fields(f) read and written and covergroups for bits read and written in registers(b). Deping on the coverage property value either b, f, bf or on the coverage code will be generated for that register. Following coverage code will be generated for reg1 register having coverage property value equal to on or bf : Tip: Coverage code is in blue colour. class basic_blk_reg1 exts uvm_reg; randuvm_reg_field fld1; randuvm_reg_field fld2; localuvm_reg_data_tm_current; localuvm_reg_data_tm_data; localuvm_reg_data_tm_be; local bit m_is_read; covergroupwr_cg_bits; field_0: coverpoint {m_current[0],m_data[0]} iff (!m_is_read&&m_be[0]); field_1: coverpoint {m_current[1],m_data[1]} iff (!m_is_read&&m_be[0]); field_2: coverpoint {m_current[2],m_data[2]} iff (!m_is_read&&m_be[0]); field_3: coverpoint {m_current[3],m_data[3]} iff (!m_is_read&&m_be[0]); field_4: coverpoint {m_current[4],m_data[4]} iff (!m_is_read&&m_be[0]); field_5: coverpoint {m_current[5],m_data[5]} iff (!m_is_read&&m_be[0]); field_6: coverpoint {m_current[6],m_data[6]} iff (!m_is_read&&m_be[0]); field_7: coverpoint {m_current[7],m_data[7]} iff (!m_is_read&&m_be[0]); covergrouprd_cg_bits; field_0: coverpoint {m_current[0],m_data[0]} iff (m_is_read&&m_be[0]); field_1: coverpoint {m_current[1],m_data[1]} iff (m_is_read&&m_be[0]); field_2: coverpoint {m_current[2],m_data[2]} iff (m_is_read&&m_be[0]); field_3: coverpoint {m_current[3],m_data[3]} iff (m_is_read&&m_be[0]); field_4: coverpoint {m_current[4],m_data[4]} iff (m_is_read&&m_be[0]); field_5: coverpoint {m_current[5],m_data[5]} iff (m_is_read&&m_be[0]); field_6: coverpoint {m_current[6],m_data[6]} iff (m_is_read&&m_be[0]); field_7: coverpoint {m_current[7],m_data[7]} iff (m_is_read&&m_be[0]); covergroupwr_cg_vals; fld1: coverpointfld1.value[3:0]; fld2: coverpointfld2.value[3:0]; covergrouprd_cg_vals; fld1: coverpointfld1.value[3:0]; fld2: coverpointfld2.value[3:0]; function new(string name = "basic_blk_reg1"); 2
3 super.new(name, 8, build_coverage(uvm_cvr_reg_bits + UVM_CVR_FIELD_VALS)); add_coverage(build_coverage(uvm_cvr_reg_bits + UVM_CVR_FIELD_VALS)); //Added because build coverage in the line above doesn t work due to a bug in UVM 1.1 library if (has_coverage(uvm_cvr_reg_bits)) wr_cg_bits = new(); rd_cg_bits = new(); if (has_coverage(uvm_cvr_field_vals)) wr_cg_vals = new(); rd_cg_vals = new(); function virtual function void sample(uvm_reg_data_t data, uvm_reg_data_tbyte_en, bit is_read, uvm_reg_map map); super.sample(data, byte_en, is_read, map); if (get_coverage(uvm_cvr_reg_bits)) m_current = get(); m_data = data; m_be = byte_en; m_is_read = is_read; if(!is_read) wr_cg_bits.sample(); if(is_read) rd_cg_bits.sample(); if (get_coverage(uvm_cvr_field_vals)) if(!is_read) wr_cg_vals.sample(); if(is_read) rd_cg_vals.sample(); function virtual function void sample_values(); super.sample_values(); if (get_coverage(uvm_cvr_field_vals)) wr_cg_vals.sample(); rd_cg_vals.sample(); function virtual function void build(); this.fld1 = uvm_reg_field::type_id::create("fld1"); this.fld2 = uvm_reg_field::type_id::create("fld2"); this.fld1.configure(this, 4, 0, "RW", 0, 'd2, 1, 1, 0); this.fld2.configure(this, 4, 4, "RW", 0, 'd12, 1, 1, 0); function `uvm_object_utils(basic_blk_reg1) class If coverage property has value on or a for Memory(DMA_MEM) following coverage code will be generated for DMA_MEM memory: classbasic_blk_dma_mem exts uvm_mem; 3
4 localuvm_reg_addr_tm_offset; covergroupcg_addr; QUADRANTS :coverpointm_offset { bins FIRST = {[0:63]}; bins SECOND = {[64:127]}; bins THIRD = {[128:191]}; bins FOURTH = {[192:255]}; } function new(string name = "basic_blk_dma_mem"); super.new(name, 'h400, 32, "RW", build_coverage(uvm_cvr_addr_map)); if (has_coverage(uvm_cvr_addr_map)) cg_addr = new(); function virtual function void sample(uvm_reg_addr_t offset, bit is_read, uvm_reg_map map); if (get_coverage(uvm_cvr_addr_map)) m_offset = offset; cg_addr.sample(); function `uvm_object_utils(basic_blk_dma_mem) class And when coverage is on or a for block(basic_blk) following coverage code will be generated for basic_blk block: classbasic_blk_block exts uvm_reg_block; randbasic_blk_dma_memdma_mem; rand basic_blk_reg1 reg1; localuvm_reg_addr_tm_offset; covergroupcg_addr; basic_blk_dma_mem :coverpointm_offset { bins hit = { ['h2000 : 'h23ff] }; } basic_blk_reg1 :coverpointm_offset { bins hit = { 'h2400 }; } function new(string name = "basic_blk"); super.new(name, build_coverage(uvm_cvr_addr_map)); if (has_coverage(uvm_cvr_addr_map)) cg_addr = new(); function virtual function void build();..... function virtual function void sample(uvm_reg_addr_t offset, bit is_read, uvm_reg_map map); if (get_coverage(uvm_cvr_addr_map)) m_offset = offset; cg_addr.sample(); function `uvm_object_utils(basic_blk_block) class :basic_blk_block 4
5 Customize Auto-generated Coverage User can also customize the auto generated covergroups of coverage types a, b or f by adding bins to the coverpoints, include new coverpoints or include cross between different coverpoints in the covergroups. IDS provide the customization of such auto-generated coverage code. In IDS this is possible using *uvm+ <custom code>*/uvm+ tags. Through this user can modify/customize the covergroups, coverpoints that are automatically generated for a, b and f coverage types. The entire syntax is as follows: [uvmloc = (coverpoint/covergroup).(abf/b/f/a).(rd/wr) ] <user code> where, rd or wr is optional. If wr or rd is not mentioned then the code inside uvm tags will be added for both read and write access type covergroups/coverpoints. In this syntax, a is valid only for blocks and memories, b is valid for registers and f for fields/registers. User can specify this in block as well, which IDS interprets that it will be for all the registers inside the block i.e. it is by default hierarchical. User can also specify individually for each or particular register, memory or register-file. If user has specified both in block as well as in register, IDS will take which is nearest to it i.e. the [uvm] tags mentioned in the register. For examples: [uvmloc=coverpoint.b] ignore_binsig_b = {1,2}; This will generate the code inside it for all the Register bits coverpoints: covergroupwr_cg_bits; field_0: coverpoint {m_current[0],m_data[0]} iff (!m_is_read&&m_be[0]) { ignore_bins ig_b1 = {1,2}; } covergrouprd_cg_bits; field_0: coverpoint {m_current[0],m_data[0]} iff (m_is_read&&m_be[0]) { ignore_bins ig_b1 = {1,2}; } Using ignore_bins ig_b1 =,1,2-; auto bins auto*1+ & auto*2+ won t be generated. [uvmloc= coverpoint.f.rd] binssome_range = [0:3] }; This will generate the code inside it for read access of Field Values coverpoints: covergrouprd_cg_vals; fld1: coverpointfld1.value[31:0]{ binssome_range = { [0:3] }; } [uvmloc= covergroup.f.wr] my_cross: cross cpt_field0, cpt_field1; 5
6 Through this user can make own coverpoints and cross inside the auto generated covergroups for register bits and fields. covergroupwr_cg_vals; my_cross: cross cpt_field0, cpt_field1; User-Defined Coverage But, often these default coverage types provided by UVM are not enough. What if the user has specific coverage code that needs to be generated? In IDS, it is possible to generate the user-defined coverage code and also control the covergroups included in the coverage of that element in the auto-generated register or block UVM Register Model classes. Following are the steps/controls that IDS provides for generating the user-defined coverage code: Mention the Coverage Identifiers and their "one-hot" values. Coverage Identifiers are the identifiers for the user defined covergroups which the user wants to include in the UVM register model. Through these identifiers user can control the coverage. For details about how it is controlled, please refer the UVM User Guide 1.1. In IDS, user can specify all the identifiers globally at the top level of the register specification in the block description using a property, as follows: {uvm.user_coverage= <IDENTIFIER_NAME1>:<its_value>, <IDENTIFIER_NAME2>:<its_value> } This will generate an enum of type uvm_reg_cvr_t typedefenumuvm_reg_cvr_t { COV_ID_1 = 'h01000, COV_ID_2 = 'h02000, COV_ID_3 = 'h04000 } my_uvm_coverage_model_e; Note: Values of the coverage identifiers should be one-hot values. This is to avoid collisions with pre-defined UVM, vor-defined, and user-defined coverage modelidentifiers, bits 0 through 7 are reserved for UVM, bits 8 through 15 are reserved for vors, and bits 16through 23 are reserved for users. Linking the Covergroups and Its respective Identifiers. Using IDS user can write the user-defined coverage code inside the uvm tags, [uvm]<>. That code will be automatically included in the component class of that register or block. In UVM, user has to link its covergroup with the coverage Identifier, in order to include that covergroup(s) in the coverage database on running simulation 6
7 environment.in IDS, user has to add the coverage identifier in the comment like a pragma in the first line of thecovergroup, inside the [uvm] tags for register/block,using property user_coverage=<identifier> or uvm.user_coverage=<identifier>, as follows : [uvm] covergroup cg_vals_my_cov1; //user_coverage=<identifier_name1> covergroup cg_vals_my_cov2; //uvm.user_coverage=<identifier_name2>, <IDENTIFIER_NAME3>,.. In UVM Register Model, this willinclude code for coverage in new() function of register/block and also create the sample() and sample_values() functions for the user defined covergroup(s). classmy_reg exts uvm_reg; `uvm_object_utils(my_reg).... //USER-CODE START covergroup cg_vals_my_cov1; // user_coverage=cov_id_1 fld1: coverpointfld1.value[7:0]{ binshdmi_dvi_bin = fld1.value [0:3]; binsmipi_bin = fld1.value[7] ; } covergroup cg_vals_my_cov2; // user_coverage= COV_ID_2, COV_ID_3 fld2: coverpointfld1.value[8:31] { binshdmi_dvi_bin = fld1.value [24:8]; binsmipi_bin = fld1.value[28] ; } function new(); if (has_coverage(cov_id_1)) cg_vals_my_cov1 = new(); if (has_coverage(cov_id_2)) cg_vals_my_cov2 = new(); if (has_coverage(cov_id_3)) cg_vals_my_cov2 = new(); function : new 7
8 virtual function void sample(uvm_reg_data_t data, uvm_reg_data_tbyte_en, bit is_read, uvm_reg_map map); function class super.sample(data, byte_en, is_read, map); if (get_coverage(cov_id_1)) cg_vals_my_cov1.sample(); if (get_coverage(cov_id_2)) cg_vals_my_cov2.sample(); if (get_coverage(cov_id_3)) cg_vals_my_cov2.sample(); virtual function void sample_values(); super.sample_values(); if (get_coverage(cov_id_1)) cg_vals_my_cov1.sample(); if (get_coverage(cov_id_2)) cg_vals_my_cov2.sample(); if (get_coverage(cov_id_3)) cg_vals_my_cov2.sample(); function Note: Single covergroup can link with multiple coverage identifiers or vice-versa. Control the user-defined coverage UVM provides a control for coverage collection where user can control for which identifiers containing covergroups are to be included in coverage database on running the simulation environment. In IDS, user has to add the identifier(s) linked to that covergroup(s) using the coverage property, where its value is separated by comma, : {coverage=f, <IDENTIFIER_NAME1>, <IDENTIFIER_NAME3> } In this case, coverage will be build for fields, bits and user-defined covergroup(s) which is/are linked to <IDENTIFIER_NAME1> and <IDENTIFIER_NAME3>, no matter there are multiple covergroups in that linked to the Identifier(s)in the UVMRegister Model. 8
9 In UVM register model,itwill create the add_coverage() for the listed coverage model identifiers. classmy_reg exts uvm_reg;... function new(string name = "my_reg"); super.new(name, 16, build_coverage(uvm_cvr_field_vals)); add_coverage(build_coverage(uvm_cvr_field_vals + COV_ID_1 + COV_ID_3)); function class Summary Property Value Component Code coverage a Block/Memory Covergroup: cg_addr f Register/Register Covergroups: rd_cg_vals& wr_cg_vals f.rd Register/Register Covergroup: rd_cg_vals f.wr Register/Register Covergroup: wr_cg_vals b Register/Register Covergroups: rd_cg_bits& wr_cg_bits b.rd Register/Register Covergroup: rd_cg_bits b.wr Register/Register Covergroup: wr_cg_bits IDENTIFIER_NAME1 Block/Register/R This is used to identify user, IDENTIFIER_NAME2 egiste/me defined covergroups., mory [uvmloc= covergroup.a] [uvmloc= covergroup.b.rd] [uvmloc= covergroup.b.wr] [uvmloc= covergroup.b] Memory/Block covergroupcg_addr; Register/Field covergrouprd_cg_bits; Register/Field covergroupwr_cg_bits; Register/Field covergrouprd_cg_bits; covergroupwr_cg_bits; [uvmloc= covergroup.f.rd] Register/Field covergrouprd_cg_vals; 9
10 [uvmloc= covergroup.f.wr] [uvmloc= covergroup.f] [uvmloc= coverpoint.f.rd] [uvmloc= coverpoint.f.wr] [uvmloc= coverpoint.f] [uvmloc= coverpoint.b.rd] [uvmloc= coverpoint.b.wr] [uvmloc= coverpoint.b] Register/Field covergroupwr_cg_vals; Register/Field covergrouprd_cg_vals; covergroupwr_cg_vals; Register/Field covergrouprd_cg_vals; fld1: coverpoint fld1.value[31:0]{ } Register/Field covergroupwr_cg_vals; fld1: coverpoint fld1.value[31:0]{ } Register/Field covergrouprd_cg_vals; fld1: coverpoint fld1.value[31:0]{ } covergroupwr_cg_vals; fld1: coverpoint fld1.value[31:0]{ } Register covergrouprd_cg_bits; field_0: coverpoint {m_current[0],m_data[0]} iff (!m_is_read&&m_be[0]) { } Register covergroupwr_cg_bits; field_0: coverpoint {m_current[0],m_data[0]} iff (!m_is_read&&m_be[0]) { } Register covergrouprd_cg_bits; field_0: coverpoint {m_current[0],m_data[0]} iff (!m_is_read&&m_be[0]) { } covergroupwr_cg_bits; field_0: coverpoint {m_current[0],m_data[0]} iff(!m_is_read&&m_be[0]) { } 10
11 [uvmloc= covergroup.(f/b/a).(wr/rd)] my_cross: cross cvpt1, cvpt2; uvm.user_coverage my_cross: cross cvpt1, cvpt2; <IDENTIFIER_NA ME1>:<its_value>,<IDENTIFIER_NA ME2>:<its_value> Block/Memory/R egister/field covergroup xxx; cvpt1: coverpoint ; my_cross: cross cvpt1, cvpt2; Block typedefenumuvm_reg_cvr_t { IDENTIFIER_NAME1 = 'h01000, IDENTIFIER_NAME2 = 'h02000, } my_uvm_coverage_model_e; 11
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 informationNext Generation Design and Verification Today UVM REG: Path Towards Coverage Automation in AMS Simulations
Next Generation Design and Verification Today UVM REG: Path Towards Coverage Automation in AMS Simulations Kyle Newman, Texas Instruments Agenda UVM REG Overview Automated UVM REG Generation UVM REG Support
More informationFunctional Coverage Development Tips: Do s and Don ts by Samrat Patel, ASIC Verification Engineer, and Vipul Patel, ASIC Engineer, einfochips
Functional Coverage Development Tips: Do s and Don ts by Samrat Patel, ASIC Verification Engineer, and Vipul Patel, ASIC Engineer, einfochips INTRODUCTION A verification engineer s fundamental goal is
More informationIDesignSpec Quick Start Guide Version 3.9
IDesignSpec Quick Start Guide Version 3.9 Introduction... 3 Basic Concept... 3 Creating Specification... 3 IDS Word/OpenOffice Templates... 4 System... 4 Board... 4 Chip... 4 Block... 5 RegGroup... 5 Register...
More informationHow to use IDesignSpec with UVM?
1 How to use IDesignSpec with UVM? This document discusses the use of IDesignSpec: Automatic Register Model Generator to generate a Register Model for an IP of SoC. Agnisys, Inc. 1255 Middlesex St. Unit
More informationSystemVerilog Functional Coverage
SystemVerilog Functional Coverage Ahmed Hemani System Architecture and Methodology Group Department of Electronic and Computer Systems School of ICT, KTH Functional Coverage Functional Coverage is used
More informationPractical 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 informationRelieving the Parameterized Coverage Headache
Relieving the Parameterized Coverage Headache Christine Lovett, Bryan Ramirez, Stacey Secatch Xilinx, Inc. 3100 Logic Dr. Longmont, CO 80503 cristi.lovett@xilinx.com, byran.ramirez@xilinx.com, stacey.secatch@xilinx.com
More informationHow to Automate A Complete Register. Verification Environment
How to Automate A Complete Register Verification Environment Executive Summary Memory mapped registers provide re-configurability and control to an Intellectual Property Block (IP) or System on Chip design
More informationSelf- 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 informationPractical 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 informationAutomated Generation of Functional Coverage Metrics for Input Stimulus by Mike Andrews, Verification Technologist, Mentor Graphics
Automated Generation of Functional Coverage Metrics for Input Stimulus by Mike Andrews, Verification Technologist, Mentor Graphics Questa infact intelligent testbench automation has allowed many verification
More informationBRINGING CONTINUOUS DOMAIN INTO SYSTEMVERILOG COVERGROUPS
BRINGING CONTINUOUS DOMAIN INTO SYSTEMVERILOG COVERGROUPS Prabal K Bhattacharya Cadence Design Systems 2655 Seely Avenue, San Jose, USA 1-408-894-2508 prabal@cadence.com Swapnajit Chakraborti Cadence Design
More informationpackage 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 informationPerplexing 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 informationOVERVIEW: ============================================================ 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 informationSVA 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 informationUVM-RAL: Registers on demand Elimination of the unnecessary
UVM-RAL: Registers on demand Elimination of the unnecessary Sailaja Akkem Microsemi Corporation, Hyderabad Accellera Systems Initiative 1 Agenda UVM RAL high level overview. Conventional Register Modelling.
More informationVerification Planning with Questa Verification Management
Verification Planning with Questa Verification Management by Kishan Kalavadiya and Bhavinkumar Rajubhai Patel, einfochips Verification of complex SoC (System on Chip) requires tracking of all low level
More informationThis slide, and the following two, are lifted directly from another Verilab paper from DVCon 2015 in which Mark Litterick described many of the
1 2 This slide, and the following two, are lifted directly from another Verilab paper from DVCon 2015 in which Mark Litterick described many of the pitfalls caused by careless, thoughtless or even dishonest
More informationGuidelines for uploading and downloading documents through Logicaldoc
1: Logging in into Logicaldoc 1.1 Use this URL for login: http://172.16.2.9:8080/logicaldoc/ 2.1 Enter login id and password and click on Sign In Following window will appear after logging in: 2: Creating
More information166 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 informationAn Introduction to the Unified Coverage Interoperability Standard UCIS Technical Committee
An Introduction to the Unified Coverage Interoperability Standard UCIS Technical Committee Motivation for UCIS Verification is hard -
More informationUCIS APPLICATIONS: IMPROVING VERIFICATION PRODUCTIVITY, SIMULATION THROUGHPUT, AND COVERAGE CLOSURE PROCESS
UCIS APPLICATIONS: IMPROVING VERIFICATION PRODUCTIVITY, SIMULATION THROUGHPUT, AND COVERAGE CLOSURE PROCESS Ahmed Yehia Mentor Graphics Corp. Cairo, Egypt ahmed_yehia@mentor.com ABSTRACT Given today s
More informationCiviX Author Custom Actions Cheat Sheet
Amendment Bylaw Elements CiviX Author Custom Actions Cheat Sheet 1 Alt + 6 Add Amendment Explanatory Note Add an amendment explan note which explains the purpose of the amendment - Occurs above an amendment
More informationCreating Portable Stimulus Models with the Upcoming Accellera Standard
Creating Portable Stimulus Models with the Upcoming Accellera Standard Part 3 Coverage in Portable Stimulus The Hardware/Software Interface Library Conclusion Srivatsa Vasudevan, Synopsys COVERAGE IN PORTABLE
More informationLecture 10 Graph algorithms: testing graph properties
Lecture 10 Graph algorithms: testing graph properties COMP 523: Advanced Algorithmic Techniques Lecturer: Dariusz Kowalski Lecture 10: Testing Graph Properties 1 Overview Previous lectures: Representation
More informationYikes! Why is My SystemVerilog Still So Slooooow?
DVCon-2019 San Jose, CA Voted Best Paper 1st Place World Class SystemVerilog & UVM Training Still So Slooooow? Cliff Cummings Sunburst Design, Inc. cliffc@sunburst-design.com www.sunburst-design.com John
More informationPL/SQL Developer and TOAD IDE Integration Configuration
PL/SQL Developer and TOAD IDE Integration Configuration SCM Solutions provides this document as a guideline only and does not guarantee error free usage of either ID integration solutions discussed in
More informationAP Computer Science. Gridworld, inheritance
AP Computer Science Gridworld, inheritance 1 Interfaces Establish a is-a relationship without code sharing One way of addressing the software crisis Allow dividing up a complex task all developers code
More informationUVM RAL: Registers on demand
UVM RAL: Registers on demand Elimination of the Unnecessary* Sailaja Akkem MicroSemi Corporation Pvt. Ltd. Hyderabad, India sailaja.akkem@microsemi.com Abstract This paper puts forward a novel approach
More informationPG DIPLOMA COURSE IN VERIFICATION USING SYSTEMVERILOG & UVM NEOSCHIP TECHNOLOGIES
PG DIPLOMA COURSE IN VERIFICATION USING SYSTEMVERILOG & UVM An Initiative by Industry Experts With Qualification from IITs and IISCs Address: NEOSCHIP TECHNOLOGIES 3rd Floor, Sai Durga Enclave, 1099/833-1,
More informationContext-Free Languages & Grammars (CFLs & CFGs) Reading: Chapter 5
Context-Free Languages & Grammars (CFLs & CFGs) Reading: Chapter 5 1 Not all languages are regular So what happens to the languages which are not regular? Can we still come up with a language recognizer?
More informationwidth: 10, 20 or 40-bit interface maximum number of lanes in any direction
MIPI LLI Verification using Questa Verification IP by Vaibhav Gupta, Lead Member Technical Staff and Yogesh Chaudhary, Consulting Staff, Mentor Graphics This article describes how incorporating LLI Questa
More informationSmall, Maintainable Tests
Small, Maintainable Tests by Ashley Winn, Sondrel IC Design Services In any verification environment it takes a significant amount of work to keep all the tests running and to ensure that each test continues
More information(created by professor Marina Tanasyuk) FUNCTIONS
FUNCTIONS (created by professor Marina Tanasyuk) In C++, a function is a group of statements that is given a name, and which can be called from some point of the program. The most common syntax to define
More informationCSE Computer Architecture I Fall 2011 Homework 07 Memory Hierarchies Assigned: November 8, 2011, Due: November 22, 2011, Total Points: 100
CSE 30321 Computer Architecture I Fall 2011 Homework 07 Memory Hierarchies Assigned: November 8, 2011, Due: November 22, 2011, Total Points: 100 Problem 1: (30 points) Background: One possible organization
More informationFP&A Simulation. A Complete Step-by-Step Guide. Ray Salemi
FP&A Simulation A Complete Step-by-Step Guide Ray Salemi Contents Acknowledgments vii Foreword ix Preface xi The Boiled Frog 1 A Boiled Story 3 Root Cause Analysis 4 The "Verification Complete" Milestone
More informationDetecting Boundary Condition Bugs through System Verilog Functional Coverage Jayabrata Chakraborty HCL Technologies Ltd. Noida, India.
Detecting Boundary Condition Bugs through System Verilog Functional Coverage Jayabrata Chakraborty HCL Technologies Ltd. Noida, India. November,2008 Abstract This document describes the necessity to identify
More informationThe 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 informationC expressions. (Reek, Ch. 5) 1 CS 3090: Safety Critical Programming in C
C expressions (Reek, Ch. 5) 1 Shift operations Left shift: value > n Two definitions: logical version: discard the n
More informationWelcome to Fetch. Welcome 3. Connect Fetch to your home Wi-Fi 4. Tips to improve Wi-Fi in your home 8. Can t connect to Wi-Fi 10
Wi-Fi User Guide Welcome to Fetch Welcome 3 Connect Fetch to your home Wi-Fi 4 Tips to improve Wi-Fi in your home 8 Can t connect to Wi-Fi 10 Advanced Wi-Fi troubleshooting 1 Welcome This guide will help
More informationContents 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 informationUVM-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 informationFigure 1: Organisation for 128KB Direct Mapped Cache with 16-word Block Size and Word Addressable
Tutorial 12: Cache Problem 1: Direct Mapped Cache Consider a 128KB of data in a direct-mapped cache with 16 word blocks. Determine the size of the tag, index and offset fields if a 32-bit architecture
More information1Identify and generate
Then You related arithmetic sequences to linear functions. (Lesson -5) Now Geometric Sequences as Exponential Functions 1Identify and generate geometric sequences. 2Relate geometric sequences to exponential
More informationEffective SystemVerilog Functional Coverage: design and coding recommendations
: design and coding recommendations Jonathan Bromley 1, Mark Litterick 2 (1) Verilab Ltd, Oxford, England (2) Verilab GmbH, Munich, Germany www.verilab.com ABSTRACT This paper gives practical recommendations
More informationVisit ::: Original Website For Placement Papers. ::: Data Structure
Data Structure 1. What is data structure? A data structure is a way of organizing data that considers not only the items stored, but also their relationship to each other. Advance knowledge about the relationship
More information5 th Grade Math Pacing Guide
00-0 First Nine Weeks Lessons - A Compose and order integers, decimals to the nearest ten thousandths, like and B C Identify factors and multiples of whole numbers F A C D D Determine the value of variables
More informationCSE Computer Architecture I Fall 2009 Homework 08 Pipelined Processors and Multi-core Programming Assigned: Due: Problem 1: (10 points)
CSE 30321 Computer Architecture I Fall 2009 Homework 08 Pipelined Processors and Multi-core Programming Assigned: November 17, 2009 Due: December 1, 2009 This assignment can be done in groups of 1, 2,
More informationCOMP 110/401 WINDOWS COMMAND INTERPRETER. Instructor: Prasun Dewan (FB 150,
COMP 110/401 WINDOWS COMMAND INTERPRETER Instructor: Prasun Dewan (FB 150, dewan@unc.edu) WINDOWS COMMAND INTERPRETER 2 COMMAND INTERPRETER? Interprets Command Lines Provides alternative to (OS and Application)
More informationVerification of I2C module for Multiprotocol Serial Controller
e-issn 2455 1392 Volume 2 Issue 4, April 2016 pp. 548-555 Scientific Journal Impact Factor : 3.468 http://www.ijcter.com Verification of I2C module for Multiprotocol Serial Controller Subham Punit Patro1,
More informationGeometry. Zachary Friggstad. Programming Club Meeting
Geometry Zachary Friggstad Programming Club Meeting Points #i n c l u d e typedef complex p o i n t ; p o i n t p ( 1. 0, 5. 7 ) ; p. r e a l ( ) ; // x component p. imag ( ) ; // y component
More informationJAVA An overview for C++ programmers
JAVA An overview for C++ programmers Wagner Truppel wagner@cs.ucr.edu edu March 1st, 2004 The early history James Gosling, Sun Microsystems Not the usual start for a prog.. language Consumer electronics,
More informationVMM PRIMER. Using the Register Abstraction Layer. Author(s): Janick Bergeron. Updated By: John Choi. Brett Kobernat. Version 1.
VMM PRIMER Using the Register Abstraction Layer Author(s): Janick Bergeron Updated By: John Choi Brett Kobernat Version 1.4 / March 27, 2008 VMM Primer Using the Register Abstraction Layer 1 Introduction
More informationCS 152 Computer Architecture and Engineering
CS 152 Computer rchitecture and Engineering Lecture 10 Pipelining III 2005-2-17 John Lazzaro (www.cs.berkeley.edu/~lazzaro) Ts: Ted Hong and David arquardt www-inst.eecs.berkeley.edu/~cs152/ Last time:
More informationBlock & Inline Elements
Block & Inline Elements Every tag in HTML can classified as a block or inline element. > Block elements always start on a new line (Paragraph, List items, Blockquotes, Tables) > Inline elements do not
More informationReview. Steps to writing (stateless) circuits: Create a logic function (one per output)
MIPS ALU Review Steps to writing (stateless) circuits: Create a truth table Go through all different combinations of inputs For each row, generate each output based on the problem description Create a
More informationSunburst 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 informationVERIFICATION HORIZONS
A College Championship, Our NBA Finals Expectations, and Dreaded Feature Creep By Tom Fitzpatrick, Editor and Verification Technologist VERIFICATION HORIZONS A PUBLICATION OF MENTOR, A SIEMENS BUSINESS
More informationCOS 126 Midterm 1 Written Exam Fall 2012
Name:!! Login ID:!!! Precept: COS 126 Midterm 1 Written Exam Fall 2012 is test has 8 questions, weighted as indicated. e exam is closed book, except that you are allowed to use a one page single-sided
More informationPolygons in the Coordinate Plane
Polygons in the Coordinate Plane LAUNCH (8 MIN) Before How can you find the perimeter of the sandbox that the park worker made? During How will you determine whether the park worker s plan for the sandbox
More informationPCIe Dual Port Gigabit Server. Adapter
PCIe Dual Port Gigabit Server Adapter User Manual Ver. 2.01 All brand names and trademarks are properties of their respective owners. Contents: Chapter 1: Introduction... 3 1.1 Product Introduction...
More informationSimplified UVM for FPGA Reliability UVM for Sufficient Elemental Analysis in DO-254 Flows by Shashi Bhutada, Mentor Graphics
Simplified UVM for FPGA Reliability UVM for Sufficient Elemental Analysis in DO-254 Flows by Shashi Bhutada, Mentor Graphics INTRODUCTION DO-254 and other safety critical applications require meticulous
More informationCaching Prof. James L. Frankel Harvard University. Version of 5:16 PM 5-Apr-2016 Copyright 2016 James L. Frankel. All rights reserved.
Caching Prof. James L. Frankel Harvard University Version of 5:16 PM 5-Apr-2016 Copyright 2016 James L. Frankel. All rights reserved. Memory Hierarchy Extremely limited number of registers in CPU Lots
More informationEECS 4340: Computer Hardware Design Unit 4: Validation
EECS 4340: Unit 4: Validation Prof. Simha Sethumadhavan Reference Book: System Verilog for Verification Agenda Last Unit Design abstractions Basic primitives This Unit Validation Forthcoming Design Tips
More informationI-7530 Series FAQ. ICP DAS Co., LTD 1
I-7530 Series FAQ Q1 How do I configure the I-7530, such as baud, Acceptance Code, Acceptance Mask and so forth? (2011/1/5,Bear)... 3 Q2 How does these two parameter, Acceptance Code and Acceptance Mask,
More informationby Kalagaan What is VertExmotion? VertExmotion is a shader based softbody system coupled with a procedural animation system.
by Kalagaan What is VertExmotion? VertExmotion is a shader based softbody system coupled with a procedural animation system. You can easily animate parts of your mesh like hair, cloths, fatness... within
More informationSIMPLE INPUT and OUTPUT:
SIMPLE INPUT and OUTPUT: (A) Printing to the screen. The disp( ) command. If you want to print out the values of a variable to the screen, you simply can type the variable at the command line. > x = 5
More informationComputer Organization. Structure of a Computer. Registers. Register Transfer. Register Files. Memories
Computer Organization Structure of a Computer Computer design as an application of digital logic design procedures Computer = processing unit + memory system Processing unit = control + Control = finite
More informationConstrained 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 informationIncisive Coverage Introduction and RAK Overview
Incisive Coverage Introduction and RAK Overview This also includes Incisive 12.2 workshop/labs overview 2013 Cadence Design Systems, Inc. Coverage Workshop Agenda Introduction to Metric-Driven Verification
More informationOverview The Auto Number functionality allows users to configure auto numbering on an Attribute for a specific Entity within Dynamics 365.
Overview The Auto Number functionality allows users to configure auto numbering on an Attribute for a specific Entity within Dynamics 365. An Auto Number Header will need to be created. This allows you
More informationPortable 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 informationUVM Tips and Tricks - Runtime Tips
2014-2016, www.verifworks.com UVM Tips and Tricks - Runtime Tips Presented by Srivatsa Vasudevan - Synopsys, Inc. Slides by Srinivasan Venkataramanan, VerifWorks 2014-2016, www.verifworks.com 2 UVM TB
More informationDRAFT. Technical Note. MxMessageSystem
Technical Note MxMessageSystem 1. Abstract The MxMessageSystem is a communication system where participants can send and receive messages. A message is distributed to all participants. The MxMessageSystem
More informationUsing Dreamweaver CC. 6 Styles in Websites. Exercise 1 Linked Styles vs Embedded Styles
Using Dreamweaver CC 6 So far we have used CSS to arrange the elements on our web page. We have also used CSS for some limited formatting. In this section we will take full advantage of using CSS to format
More informationData Storage. August 9, Indiana University. Geoffrey Brown, Bryce Himebaugh 2015 August 9, / 19
Data Storage Geoffrey Brown Bryce Himebaugh Indiana University August 9, 2016 Geoffrey Brown, Bryce Himebaugh 2015 August 9, 2016 1 / 19 Outline Bits, Bytes, Words Word Size Byte Addressable Memory Byte
More informationPremiere Pro Manual Basics - Toolbars, Options and Panels
Premiere Pro Manual 01 - Basics - Toolbars, Options and Panels 2017 1st edition This Premiere Pro Manual is one of an introductory series specially written for the Arts and Humanities Students at UEA by
More informationNationBuilder Handbook: How to get the most out of your database
NationBuilder Handbook: How to get the most out of your database Table of Contents Introduction... 1 Creating an Account & Accessing NationBuilder... 2 Profiles & Logging Information... 2 Finding & Tagging
More informationMy 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 information18-642: Code Style for Compilers
18-642: Code Style for Compilers 9/25/2017 1 Anti-Patterns: Coding Style: Language Use Code compiles with warnings Warnings are turned off or over-ridden Insufficient warning level set Language safety
More informationQuintiq Projects. Release Notes 2016 Release 5 03 Sep QP/People Team
Quintiq Projects Release Notes 2016 Release 5 03 Sep 2016 QP/People Team. All rights reserved. Quintiq is a registered mark of Quintiq Holding B.V. Agenda Main Changes/Features Conversion and Data Changes
More informationBlog Pro for Magento 2 User Guide
Blog Pro for Magento 2 User Guide Table of Contents 1. Blog Pro Configuration 1.1. Accessing the Extension Main Setting 1.2. Blog Index Page 1.3. Post List 1.4. Post Author 1.5. Post View (Related Posts,
More informationVersion 4.30 changes
Version 4.30 changes Verbiage has been changed on the Print Accumulated Checks window: Print Void Check has been changed to Void Check (Print). A new Utility Setting is available that will prevent the
More informationTypesetting spectral sequences in L A TEX with luasseq.sty
Typesetting spectral sequences in L A TEX with luasseq.sty Tilman Bauer November 6, 1 1 Introduction The present package, luasseq, facilitates the typesetting of mathematical objects called spectral sequence
More informationModule 4: Advanced Development
Module 4: Advanced Development Objective Create and build a Standard Make Project from source files in CVS Contents Version control Standard Make Projects Fortran Refactoring Searching LACSI 2006 Version
More informationAgilent LC Firmware. Background information. Status: August 2017
Agilent LC Firmware Background information Status: August 2017 1 Overview The following slide deck provides background information to - Customers - Partners - Non-Agilent Chromatographic Data System providers
More informationImport Statements, Instance Members, and the Default Constructor
Import Statements, Instance Members, and the Default Constructor Introduction In this article from my free Java 8 course, I will be discussing import statements, instance members, and the default constructor.
More informationKENTUCKY YOUTH SOCCER ASSOCIATION
Table of Contents Stack Sports TIPS... 2 Setting Up/Opening Player Registration... 3-12 Registration Forms... 3-4 Creating Folders (Tree Builder/Copy/Roll Forward)... 4 Stack Sports Quick Resource Links...
More informationAppendix B Boost.Python
Financial Modelling in Python By S. Fletcher & C. Gardner 2009 John Wiley & Sons Ltd Appendix B Boost.Python The Boost.Python library provides a framework for seamlessly wrapping C++ classes, functions
More informationList 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 informationProgramming. We will be introducing various new elements of Python and using them to solve increasingly interesting and complex problems.
Plan for the rest of the semester: Programming We will be introducing various new elements of Python and using them to solve increasingly interesting and complex problems. We saw earlier that computers
More informationFunctions and Inverses ID1050 Quantitative & Qualitative Reasoning
Functions and Inverses ID1050 Quantitative & Qualitative Reasoning Function and Inverse Function Gun Analogy Functions take a number, perform an operation on it, and return another number. The inverse
More informationUtica First Agency Link Quick Tips
Utica First Agency Link Quick Tips Initial Login The Agency Link Login Screen accepts the entry of your User ID (for example, UISAgent) followed by your password (remember your password is case sensitive).
More informationC PROGRAMMING QUESTIONS AND
8/26/2011 C C PROGRAMMING QUESTIONS AND ANSWER http://cquestionbank.blogspot.com Ritesh kumar (1) What will be output if you will compile and execute the following c code? struct marks{ int p:3; int c:3;
More informationUsing Dreamweaver CC. Logo. 4 Creating a Template. Page Heading. Page content in this area. About Us Gallery Ordering Contact Us Links
Using Dreamweaver CC 4 Creating a Template Now that the main page of our website is complete, we need to create the rest of the pages. Each of them will have a layout that follows the plan shown below.
More informationCS162 Operating Systems and Systems Programming Lecture 14. Caching and Demand Paging
CS162 Operating Systems and Systems Programming Lecture 14 Caching and Demand Paging October 17, 2007 Prof. John Kubiatowicz http://inst.eecs.berkeley.edu/~cs162 Review: Hierarchy of a Modern Computer
More informationAssignment 3 Suggested solutions
ECE-250 Algorithms and Data Structures (Winter 2012) Assignment 3 Suggested solutions 1 - Provide the definition of a function swap nodes that swaps two elements in a doubly-linked list by readjusting
More informationA UVM-based AES IP Verification Platform with Automatic Testcases Generation
Advances in Engineering Research (AER), volume 82 2016 International Conference on Engineering and Advanced Technology (ICEAT-16) A UVM-based AES IP Verification Platform with Automatic Testcases Generation
More information