Eetop - CN Ahb SVT Uvm User Guide
Eetop - CN Ahb SVT Uvm User Guide
AMBA AHB
UVM User Guide
Version O-2018.09, September 2018
Copyright Notice and Proprietary Information
© 2018 Synopsys, Inc. All rights reserved. This Synopsys software and all associated documentation are proprietary to Synopsys,
Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use,
reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
Synopsys, Inc.
690 E. Middlefield Road
Mountain View, CA 94043
www.synopsys.com
VC VIP AMBA AHB
UVM User Guide Contents
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Guide Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Web Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Chapter 1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Product Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Language and Methodology Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Feature Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6.1 Protocol Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6.2 Verification Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6.3 Methodology Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7 Features Not Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Chapter 2
Installation and Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1 Verifying the Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Verifying the Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 Platform/OS and Simulator Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Synopsys Common Licensing (SCL) Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.3 Other Third Party Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Preparing for Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Downloading and Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.1 Downloading From the Electronic Software Transfer (EST) System (Download Center) . . . . 15
2.4.2 Downloading Using FTP with a Web Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5 What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5.1 Licensing Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5.2 Environment Variable and Path Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.3 Determining Your Model Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.4 Integrating a VIP into Your Testbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.5 Include and Import Model Files into Your Testbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.6 Compile and Run Time Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Chapter 3
General Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1 Introduction to UVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Feedback SolvNet
Synopsys, Inc. 3
Contents VC VIP AMBA AHB
UVM User Guide
Chapter 4
AHB VIP Programming Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.1 Configuration Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2 Transaction Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.1 Analysis Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3 Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.1 Callbacks in the Master Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.2 Callbacks in Slave Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.4 Interfaces and Modports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.4.1 Bind Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.4.2 Parameterized Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.5 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.6 Overriding System Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.7 Verification Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.7.1 Sequence Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.7.2 Performance Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.7.3 Performance Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.7.4 Metrics Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.7.5 Protocol Analyzer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.7.6 Verification Planner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Chapter 5
Using AHB Verification IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.1 SystemVerilog UVM Example Testbenches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2 Installing and Running the Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2.1 Defines for Increasing Number of Masters and Slaves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2.2 Support for UVM version 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3 Common Clock Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.4 Why the User Needs to Disable Auto Item Recording . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.5 Support for TLM Generic Payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.5.1 Generating TLM Generic Payload Stimulus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.5.2 Mapping TLM Generic Payload to AHB Master Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.5.3 Connecting a TLM 2.0 Master . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.5.4 Connecting a TLM 2.0 Slave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.6 VIP configuration while using bus VIP, multiple masters (VIPs, DUTs), multiple slaves (VIPs and
DUTs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.6.1 Using AHB VIP in Lite Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.6.2 Verifying AHB Lite Master DUT using Slave VIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.7 Support for AHB5 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.7.1 Multiple Slave Select Signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
SolvNet Feedback
4 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Contents
Chapter 6
Backward Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Appendix A
Reporting Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.2 Debug Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.3 Enabling and Specifying Debug Automation Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.4 Debug Automation Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
A.5 FSDB File Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
A.5.1 VCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
A.5.2 Questa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
A.5.3 Incisive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
A.6 Initial Customer Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
A.7 Sending Debug Information to Synopsys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
A.8 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Feedback SolvNet
Synopsys, Inc. 5
Contents VC VIP AMBA AHB
UVM User Guide
SolvNet Feedback
6 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide
Preface
Guide Organization
The chapters of this databook are organized as follows:
❖ Chapter 1, “Introduction”, introduces the Synopsys AHB VIP and its features.
❖ Chapter 2, “Installation and Setup”, describes system requirements and provides instructions on
how to install, configure, and begin using the Synopsys AHB VIP.
❖ Chapter 3, “General Concepts”, introduces the AHB VIP within a UVM environment and describes
the data objects and components that comprise the VIP.
❖ Chapter 4, “AHB VIP Programming Interface”, presents the programming or user interface into the
functionality of the AHB Verification IP.
❖ Chapter 5, “Using AHB Verification IP”, shows how to install and run a getting started example.
❖ Chapter 6, “Backward Compatibility”, provides the details of backward compatibility of the VIP
with respect to previous releases.
❖ Appendix A, “Reporting Problems”, outlines the process for working through and reporting
Synopsys AHB VIP issues.
Web Resources
❖ Documentation through SolvNet: https://solvnet.synopsys.com (Synopsys password required)
❖ Synopsys Common Licensing (SCL): http://www.synopsys.com/keys
Feedback SolvNet
Synopsys, Inc. 7
Preface VC VIP AMBA AHB
UVM User Guide
Customer Support
To obtain support for your product, choose one of the following:
❖ Open a Case through SolvNet.
✦ Go to https://onlinecase.synopsys.com/Support/OpenCase.aspx and provide the requested
information, including:
✧ Product: Verification IP
✧ Sub Product: AMBA SVT
✧ Tool Version: O-2018.09
✧ Fill in the remaining fields according to your environment and your issue.
✦ If applicable, provide the information noted in Appendix A, “Reporting Problems” on page 77.
❖ Send an e-mail message to [email protected].
✦ Include the Product name, Sub Product name, and Tool Version (as noted above) in your e-mail
so it can be routed correctly.
✦ If applicable, provide the information noted in Appendix A, “Reporting Problems” on page 77.
❖ Telephone your local support center.
✦ North America:
Call 1-800-245-8005 from 7 AM to 5:30 PM Pacific time, Monday through Friday.
✦ All other countries:
http://www.synopsys.com/Support/GlobalSupportCenters
SolvNet Feedback
8 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide
1
Introduction
This chapter gives a basic introduction, overview and features of the AMBA® AHB VIP.
This chapter discusses the following topics:
❖ “Introduction” on page 9
❖ “Prerequisites” on page 9
❖ “References” on page 10
❖ “Product Overview” on page 10
❖ “Language and Methodology Support” on page 10
❖ “Feature Support” on page 10
❖ “Features Not Supported” on page 11
1.1 Introduction
The AHB VIP supports verification of designs that include interfaces implementing the AHB Specification.
This document describes the use of AHB VIP in testbenches that comply with the SystemVerilog Universal
Verification Methodology (UVM).
This approach leverages advanced verification technologies and tools that provide:
❖ Protocol functionality and abstraction
❖ Constrained random verification
❖ Functional coverage
❖ Rapid creation of complex tests
❖ Modular testbench architecture that provides maximum reuse, scalability and modularity
❖ Proven verification approach and methodology
❖ Transaction-level models
❖ Self-checking tests
❖ Object oriented interface that allows OOP techniques
1.2 Prerequisites
❖ Familiarize with AHB, object oriented programming, SystemVerilog, and the current version of
UVM
Feedback SolvNet
Synopsys, Inc. 9
Introduction VC VIP AMBA AHB
UVM User Guide
1.3 References
For more information on AHB Verification IP, refer to the following:
❖ Class Reference for VC Verification IP for AMBA AHB is available at:
$DESIGNWARE_HOME/vip/svt/amba_svt/latest/doc/ahb_svt_uvm_class_reference/html/index.html
SolvNet Feedback
10 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Introduction
Feedback SolvNet
Synopsys, Inc. 11
Introduction VC VIP AMBA AHB
UVM User Guide
SolvNet Feedback
12 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide
2
Installation and Setup
This chapter leads you through installing and setting up the Synopsys AHB UVM VIP. When you complete
the checklist mentioned below, the provided example testbench will be operational and the Synopsys AHB
UVM VIP will be ready to use.
The checklist consists of the following major steps:
1. “Verifying the Hardware Requirements”
2. “Verifying the Software Requirements”
3. “Preparing for Installation”
4. “Downloading and Installing”
5. “What’s Next?”
If you encounter any problems with installing the Synopsys AHB VIP, see “Customer Support” on
Note page 8.
Feedback SolvNet
Synopsys, Inc. 13
Installation and Setup VC VIP AMBA AHB
UVM User Guide
The Electronic Software Transfer (EST) system only displays products your site is
Attention entitled to download. If the product you are looking for is not available, contact
[email protected].
Follow the instructions below for downloading the software from Synopsys. You can download from the
Download Center using either HTTPS or FTP, or with a command-line FTP session. If your Synopsys
SolvNet password is unknown or forgotten, go to http://solvnet.synopsys.com.
Passive mode FTP is required. The passive command toggles between passive and active mode. If your FTP
utility does not support passive mode, use http. For additional information, refer to the following web page:
https://www.synopsys.com/apps/protected/support/EST-FTP_Accelerator_Help_Page.html
SolvNet Feedback
14 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Installation and Setup
2.4.1 Downloading From the Electronic Software Transfer (EST) System (Download Center)
a. Point your web browser to http://solvnet.synopsys.com.
b. Enter your Synopsys SolvNet Username and Password.
c. Click Sign In button.
d. Make the following selections on SolvNet to download the .run file of the VIP (See Figure 2-1).
i. Downloads tab
ii. VC VIP Library product releases
iii. <release_version>
iv. Download Here button
v. Yes, I Agree to the Above Terms button
vi. Download .run file for the VIP
e. Set the DESIGNWARE_HOME environment variable to a path where you want to install the VIP.
% setenv DESIGNWARE_HOME VIP_installation_path
f. Execute the .run file by invoking its filename. The VIP is unpacked and all files and directories
are installed under the path specified by the DESIGNWARE_HOME environment variable. The .run
file can be executed from any directory. The important step is to set the DESIGNWARE_HOME
environment variable before executing the .run file.
Feedback SolvNet
Synopsys, Inc. 15
Installation and Setup VC VIP AMBA AHB
UVM User Guide
Note
The Synopsys AMBA VIP suite includes VIP models for all AMBA interfaces (AHB, APB, AXI, and ATB).
You must download the VC VIP for AMBA suite to access the VIP models for AHB, APB, AXI, and ATB.
Note
If you are unable to download the Verification IP using above instructions, refer to “Customer Support”
section to obtain support for download and installation.
SolvNet Feedback
16 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Installation and Setup
❖ VIP-SOC-LIBRARY-SVT
VIP-LIBRARY-SVT + DesignWare-Regression
These licenses enable the AMBA VIP components as follows:
❖ VIP-AMBA-ATB-SVT enables ATB components.
❖ VIP-AMBA-APB-SVT enables APB2, APB3, APB4 components.
❖ VIP-AMBA-AHB-SVT enables AHB2, AHB3, AHB-Lite, AHB Multi-Layer components.
❖ VIP-AMBA-AHB5-SVT enables AHB2, AHB3, AHB5, AHB-Lite, AHB Multi-Layer components.
❖ VIP-AMBA-STREAM-SVT enables AXI4 Stream components.
❖ VIP-AMBA-AXI-SVT enables AXI3, AXI4, AXI4-Lite components.
❖ VIP-AMBA-ACE-SVT enables AXI3, AXI4, AXI4-Lite, ACE, ACE-Lite components.
❖ VIP-AMBA-SVT enables ATB/APB2/APB3/APB4/AHB2/AHB3/AHB5/AHB-Lite/AHB-
Multilayer/AXI4-Stream/AXI3/AXI4/AXI4-Lite/ACE/ACE-Lite components.
The order in which licenses are checked out is as describes below. The table below summarizes the license
requirements for different AMBA interfaces.
The sequence in which the licenses are checked out are described in Table 2-1.
ATB VIP-AMBA-ATB-SVT
-OR-
VIP-AMBA-SVT
-OR-
VIP-PROTOCOL-SVT
-OR-
VIP-LIBRARY-SVT + DesignWare-Regression
APB2/APB3/APB4 VIP-AMBA-APB-SVT
-OR-
VIP-AMBA-SVT
-OR-
VIP-PROTOCOL-SVT
-OR-
VIP-LIBRARY-SVT + DesignWare-Regression
Feedback SolvNet
Synopsys, Inc. 17
Installation and Setup VC VIP AMBA AHB
UVM User Guide
AXI3/AXI4/AXI4-Lite VIP-AMBA-AXI-SVT
-OR-
VIP-AMBA-SVT
-OR-
VIP-PROTOCOL-SVT
-OR-
VIP-LIBRARY-SVT + DesignWare-Regression
AXI3/AXI4/AXI4-Lite/ACE/ACE-Lite VIP-AMBA-ACE-SVT
-OR-
VIP-AMBA-SVT
-OR-
VIP-PROTOCOL-SVT
-OR-
VIP-LIBRARY-SVT + DesignWare-Regression
ATB/APB2/APB3/APB4/AHB2/AHB3/AH VIP-AMBA-SVT
B5/AHB-Lite/AHB-Multilayer/AXI4- -OR-
Stream/AXI3/AXI4/AXI4-Lite/ACE/ACE- VIP-PROTOCOL-SVT
Lite
-OR-
VIP-LIBRARY-SVT + DesignWare-Regression
The following is the description of license consumption for each license type:
❖ VIP-AMBA-ATB-SVT, VIP-AMBA-APB-SVT, VIP-AMBA-AHB-SVT, VIP-AMBA-STREAM-SVT,
VIP-AMBA-AXI-SVT, VIP-AMBA-ACE-SVT: Single license enables multiple instances of any of
AHB/APB/AXI/ACE/ATB/AXI4-STREAM VIP in a single simulation session.
❖ VIP-AMBA-SVT: Single license enables multiple instances of AMBA VIP in a single simulation
session.
SolvNet Feedback
18 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Installation and Setup
❖ VIP-PROTOCOL-SVT: Single license enables multiple instances of a single protocol suite of VIP in a
single simulation session. Multiple licenses required to enable multiple VIP protocol suites in a
single simulation session or multiple simultaneous simulation sessions.
❖ VIP-SOC-LIBRARY-SVT
❖ VIP-LIBRARY-SVT + DesignWare-Regression: Single license enables multiple instances of any
number of protocol suites in a single simulation session.
The licensing key must reside in files that are indicated by specific environment variables. For more
information about setting these licensing environment variables, see “Environment Variable and Path
Settings” on page 19.
Note This capability is simulator-specific; not all simulators support license check-in during suspension.
Note
For faster license checkout of Synopsys VIP software please ensure to place the desired license files at the
front of the list of arguments to SNPSLMD_LICENSE_FILE.
❖ LM_LICENSE_FILE: The absolute path to a file that contains the license keys for both Synopsys
software and/or your third-party tools.
Note
The Synopsys VIP License can be set in either of the 3 license variables mentioned above with the order of
precedence for checking the variables being:
Feedback SolvNet
Synopsys, Inc. 19
Installation and Setup VC VIP AMBA AHB
UVM User Guide
Verification IP products are released and versioned by the suite and not by individual model. The
Note version number of a model indicates the suite version.
❖ To determine the versions of VIP models installed in your $DESIGNWARE_HOME tree, use the
setup utility as follows:
% $DESIGNWARE_HOME/bin/dw_vip_setup -i home
❖ To determine the versions of VIP models in your design directory, use the setup utility as follows:
% $DESIGNWARE_HOME/bin/dw_vip_setup -p design_dir_path -i design
If you move a design directory, the references in your testbenches to the include files will need to be
Note revised to point to the new location. Also, any simulation scripts in the examples directory will need to
be recreated.
A design directory gives you control over the version of the Synopsys VIP in your testbench because it is
isolated from the DESIGNWARE_HOME installation. When you want, you can use dw_vip_setup to
SolvNet Feedback
20 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Installation and Setup
update the VIP in your design directory. Figure 2-2 shows this process and the contents of a design
directory.
$DESIGNWARE_HOME
dw_vip_setup
<example_1>
<sim_script>
<example_n>
Note
Do not modify this file because dw_vip_setup depends on the original contents.
Note
When using a design_dir, you have to make sure that the DESIGNWARE_HOME that was used to setup
the design_dir is the same one used in the shell when running the simulation.
In other words when using a design_dir, you have to make sure that the SVT version identified in the
design_dir is available in the DESIGNWARE_HOME used in the shell when running the simulation.
Feedback SolvNet
Synopsys, Inc. 21
Installation and Setup VC VIP AMBA AHB
UVM User Guide
The setup process gathers together all the required component files you need to incorporate into your
testbench required for simulation runs.
You have the choice to set up all of them, or only specific ones. For example, the AHB VIP contains the
following components.
❖ ahb_master_agent_svt
❖ ahb_slave_agent_svt
❖ ahb_system_env_svt
You can set up either an individual component, or the entire set of components within one protocol suite.
Use the Synopsys provided tool called dw_vip_setup for these tasks. It resides in
$DESIGNWARE_HOME/bin.
To get help on dw_vip_setup, invoke the following:
% $DESIGNWARE_HOME/bin/dw_vip_setup --help
You can set up either an individual component, or the entire set of components within one protocol suite.
Use the Synopsys provided tool called dw_vip_setup for these tasks. It resides in
$DESIGNWARE_HOME/bin.
To get help on dw_vip_setup, invoke the following:
% $DESIGNWARE_HOME/bin/dw_vip_setup --help
The following command adds a model to the directory design_dir.
% $DESIGNWARE_HOME/bin/dw_vip_setup -path /tmp/design_dir -add ahb_system_env_svt
-svlog
This command sets up all the required files in /tmp/design_dir.
The utility dw_vip_setup creates three directories under design_dir which contain all the necessary model
files. Files for every VIP are included in these three directories.
❖ examples: Each VIP includes example testbenches. The dw_vip_setup utility adds them in this
directory, along with a script for simulation. If an example testbench is specified on the command
line, this directory contains all files required for model, suite, and system testbenches.
❖ include: Language-specific include files that contain critical information for Synopsys models. This
directory "include/sverilog" is specified in simulator commands to locate model files.
❖ src: Synopsys-specific include files This directory "src/sverilog/vcs" must be included in the
simulator command to locate model files.
Note that some components are “top level” and will setup the entire suite. You have the choice to set up the
entire suite, or just one component such as a monitor.
There must be only one design_dir installation per simulation, regardless of the
Attention number of Synopsys Verification and Implementation IPs you have in your project. Do
create this directory in $DESIGNWARE_HOME.
2.5.4.3 Installing and Setting Up More than One VIP Protocol Suite
All VIPs for a particular project must be set up in a single common directory once you execute the *.run file.
You may have different projects. In this case, the projects can use their own VIP setup directory. However,
all the VIPs used by that specific project must reside in a common directory.
The examples in this chapter call that directory as design_dir, but you can use any name.
SolvNet Feedback
22 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Installation and Setup
In this example, assume you have the AXI suite set up in the design_dir directory. In addition to the AXI
VIP, you require the Ethernet and USB VIP suites.
First, follow the previous instructions on downloading and installing the Ethernet VIP and USB suites.
Once installed, the Ethernet and USB suites must be set up in and located in the same design_dir location
as AMBA. Use the following commands:
// First install AXI
%unix> $DESIGNWARE_HOME/bin/dw_vip_setup -path /tmp/design_dir
-add axi_system_env_svt -svlog
//Add Ethernet to the same design_dir as AXI
%unix> $DESIGNWARE_HOME/bin/dw_vip_setup -path /tmp/design_dir
-add ethernet_system_env_svt -svlog
Feedback SolvNet
Synopsys, Inc. 23
Installation and Setup VC VIP AMBA AHB
UVM User Guide
Note
You must have PA installed if you use the -pa or PA=1 switches.
SolvNet Feedback
24 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Installation and Setup
Switch Description
-a[dd] ( model Adds the specified model or models to the specified design directory or
[-v[ersion] version] ) … current working directory. If you do not specify a version, the latest version is
assumed. The model names are:
• ahb_master_agent_svt
• ahb_slave_agent_svt
• ahb_system_env_svt
The -add switch causes dw_vip_setup to build suite libraries from the same
suite as the specified models, and to copy the other necessary files from
$DESIGNWARE_HOME.
Feedback SolvNet
Synopsys, Inc. 25
Installation and Setup VC VIP AMBA AHB
UVM User Guide
Switch Description
-r[emove] model Removes all versions of the specified model or models from the design. The
dw_vip_setup program does not attempt to remove any include files used
solely by the specified model or models. The model names are:
• ahb_master_agent_svt
• ahb_slave_agent_svt
• ahb_system_env_svt
-u[pdate] ( model Updates to the specified model version for the specified model or models. The
[-v[ersion] version] ) … dw_vip_setup script updates to the latest models when you do not specify a
version. The model names are:
• ahb_master_agent_svt
• ahb_slave_agent_svt
• ahb_system_env_svt
The -update switch causes dw_vip_setup to build suite libraries from the
same suite as the specified models, and to copy the other necessary files
from $DESIGNWARE_HOME.
-e[xample] {scenario | The dw_vip_setup script configures a testbench example for a single model or
model/scenario} a system testbench for a group of models. The program creates a simulator
[-v[ersion] version] run program for all supported simulators.
If you specify a scenario (or system) example testbench, the models needed
for the testbench are included automatically and do not need to be specified in
the command.
Note: Use the -info switch to list all available system examples.
-svtb Use this switch to set up models and example testbenches for SystemVerilog
UVM. The resulting design directory is streamlined and can only be used in
SystemVerilog simulations.
-c[lean] {scenario | model/scenario} Cleans the specified scenario/testbench in either the design directory (as
specified by the -path switch) or the current working directory. This switch
deletes all files in the specified directory, then restores all Synopsys created
files to their original contents.
SolvNet Feedback
26 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Installation and Setup
Switch Description
-h[elp] Returns a list of valid dw_vip_setup switches and the correct syntax for each.
-m/odel_list <filename> Specifies a file name, which contains a list of suite names to be added,
updated, or removed from the design directory. This switch is valid during the
following switch operations; for example, -add, -update, or -remove. The -
m/odel_list switch displays one model name per line and each model includes
a version selector. The default version is the latest. This switch is optional, but
the filename argument is required whenever mentioned. Lines in the file
starting with the pound symbol (#) are ignored.
-pa Enables the run scripts and Makefiles generated by dw_vip_setup to support
PA. If this switch is enabled, and the testbench example produces XML files,
PA will be launched and the XML files will be read at the end of the example
execution.
For run scripts, specify -pa.
For Makefiles, specify -pa = 1.
-waves Enables the run scripts and Makefiles generated by dw_vip_setup to support
the fsdb waves option . To support this capability, the testbench example
must generate an FSDB file when compiled with the WAVES Verilog macro
set to fsdb, that is, +define+WAVES=\"fsdb\". If a .fsdb file is generated
by the example, the Verdi nWave viewer will be launched.
For run scripts, specify -waves fsdb.
For Makefiles, specify WAVES=fsdb.
-doc Creates a doc directory in the specified design directory which is populated
with symbolic links to the DESIGNWARE_HOME installation for documents
related to the given model or example being added or updated.
-methodology <name> When specified with -doc, only documents associated with the specified
methodology name are added to the design directory. Valid methodology
names include: OVM, RVM, UVM, VMM, and VLOG.
Feedback SolvNet
Synopsys, Inc. 27
Installation and Setup VC VIP AMBA AHB
UVM User Guide
Switch Description
-copy When specified with -doc, documents are copied into the design directory, not
linked.
-s/uite_list <filename> Specifies a file name, which contains a list of suite names to be added,
updated, or removed from the design directory. This switch is valid during the
following switch operations; for example, -add, -update, or -remove. The -
s/uite_list switch displays one suite name per line and each suite includes a
version selector. The default version is the latest. This switch is optional, but
the filename argument is required whenever mentioned. Lines in the file
starting with the pound symbol (#) are ignored.
-simulator <vendor> When used with the -example switch, only simulator flows associated with
the specified vendor are supported with the generated run script and Makefile.
Note: Currently the vendors VCS, MTI, and NCV are supported.
The dw_vip_setup program treats all lines beginning with “#” as comments.
Note
SolvNet Feedback
28 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Installation and Setup
❖ +incdir+<design_dir>/src/verilog/<vendor>
❖ +incdir+<design_dir>/src/sverilog/<vendor>
Supported vendors are vcs, mti and ncv. For example:
+incdir+<design_dir>/src/sverilog/vcs
Using the previous examples, the directory <design_dir> would be /tmp/design_dir.
These files contain both optional and required switches. For AHB VIP, following are the contents of each
file, listing optional and required switches:
vcs_build_options
Required: +define+UVM_PACKER_MAX_BYTES=1500000
Required: +define+UVM_DISABLE_AUTO_ITEM_RECORDING
Optional: -timescale=1ns/1ps
Required: +define+SVT_<model>_INCLUDE_USER_DEFINES
Note
UVM_PACKER_MAX_BYTES define needs to be set to maximum value as required by each VIP title in
your testbench. For example, if VIP title 1 needs UVM_PACKER_MAX_BYTES to be set to 8192, and VIP title
2 needs UVM_PACKER_MAX_BYTES to be set to 500000, you need to set UVM_PACKER_MAX_BYTES to
500000.
vcs_run_options
Required: +UVM_TESTNAME=$scenario
Note
The “scenario” is the UVM test name you pass to VCS.
Feedback SolvNet
Synopsys, Inc. 29
Installation and Setup VC VIP AMBA AHB
UVM User Guide
SolvNet Feedback
30 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide
3
General Concepts
This chapter describes the usage of AHB VIP in an UVM environment, and its user interface. This chapter
discusses the following topics:
❖ “Introduction to UVM” on page 29
❖ “AHB VIP in an UVM Environment” on page 29
❖ “Reset Functionality” on page 40
Feedback SolvNet
Synopsys, Inc. 29
General Concepts VC VIP AMBA AHB
UVM User Guide
Within the master agent, the master driver gets sequences from the master sequencer. The master driver
then drives the AHB transactions on the AHB port.
The master driver and master monitor components within the master agent call callback methods at various
phases of execution of the AHB transaction. Details of callbacks are covered in later sections. After the AHB
transaction on the bus is complete, the completed sequence item is provided to the analysis port of master
monitor, which can be used by the testbench.
SolvNet Feedback
30 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide General Concepts
The slave driver and slave monitor components within the slave agent call the callback methods at various
phases of execution of the AHB transaction. Details of callbacks are covered in later sections. After the AHB
transaction on the bus is complete, the completed sequence item is provided to the analysis port of slave
monitor, which can be used by the testbench.
Feedback SolvNet
Synopsys, Inc. 31
General Concepts VC VIP AMBA AHB
UVM User Guide
SolvNet Feedback
32 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide General Concepts
Feedback SolvNet
Synopsys, Inc. 33
General Concepts VC VIP AMBA AHB
UVM User Guide
3.2.5.3 Arbiter
Every Master has its own bus request pin to indicate the Arbiter when it wants bus ownership. In general,
the Arbiter monitors the request pins of all active Masters and decides which Master gains bus ownership
based on an arbitration algorithm. The Arbiter asserts that Master's HGRANT pin. In every cycle, only one
Master will be granted the bus. The arbiter currently supports round robin arbitration algorithm.
The control of HGRANT by BUS VIP will be as follows:
1. Hgrant is asserted by BUS VIP based on Hbusreq.
2. Hgrant is de-asserted for the penultimate beat for fixed length burst that is, Hgrant signal is
maintained HIGH all through the transaction for fixed length burst.
However, Early Burst Termination can still occur when Grant is taken away for the penultimate beat, if
BUSY cycles are driven between last two beats of fixed length burst.
The LOCK support has been added in Bus VIP for all response types for the following response policies:
❖ CONTINUE_ON_ERROR
❖ ABORT_ON_ERROR
Note
LOCK functionality is not supported for RETRY response with
max_num_rebuild_attempts_on_retry_resp feature being enabled.
SolvNet Feedback
34 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide General Concepts
3.2.5.7 Decoder
The Decoder takes the system address that is an output of the Control Signals Multiplexer, then decodes the
address and asserts the select pin for the selected Slave. At any time, only one Slave is selected. The decoder
uses the address map specified in the system configuration for selecting the slave.
3.2.6.1 Introduction
Multi-layer AHB is an interconnection scheme, based on the AHB protocol that enables parallel access paths
between multiple masters and slaves in a system.
Figure 3-4 has two AHB bus (Layer), each layer can have one or more masters and zero or more slaves based
on requirements. The architecture shown in Figure 3-4 is used to access the common slaves (slave1, slave2,
and slave3) from both the layers through ICM.
Feedback SolvNet
Synopsys, Inc. 35
General Concepts VC VIP AMBA AHB
UVM User Guide
Figure 3-4 AHB multilayer with multiple masters on same layer (source: ARM spec
DVI0045B_multilayer_ahb_overview)
Note
Currently, the topology which contains only one master per layer is supported. All other topologies shown
in ARM spec "DVI0045B_multilayer_ahb_overview" are not yet supported.
SolvNet Feedback
36 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide General Concepts
Figure 3-5 AHB lite multilayer with Common Slave for both Layers
3.2.6.3 Configuration
All connections are required to be done explicitly, so you must define
SVT_AHB_DISABLE_IMPLICIT_BUS_CONNECTION compile time macro.
You must set the following the configuration in the extended svt_ahb_system_configuration class:
1. To set it to AHB lite mode, you must set the config:
ahb_lite = 1;
2. To support multiple masters in same env:
ahb_lite_multilayer = 1;
3. To create system with 2 masters and 1 slave:
✦ create_sub_cfgs(2,1);
✦ num_masters = 2;
✦ num_slaves = 1;
3.2.6.4 Example
The example shown in Figure 3-6 consists of:
❖ Master 1 has a dedicated layer; layer1
❖ Master 2 also has a dedicated layer; layer2
❖ The interconnect matrix has one slave ports, accessible from either layer.
Feedback SolvNet
Synopsys, Inc. 37
General Concepts VC VIP AMBA AHB
UVM User Guide
// Interface Signals
assign dut_s.hclk = ahb_if.hclk;
assign dut_s.hresetn = ahb_if.hresetn;
SolvNet Feedback
38 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide General Concepts
In active mode, Master and Slave components generate In passive mode, master and slave components do not
transactions on the signal interface. generate transactions on the signal interface. These
components only sample the signal interface.
Master and Slave components continue to perform In passive mode, master and slave components monitor
passive functionality of coverage and protocol checking. the input and output signals, and perform passive
You can enable/disable this functionality through functionality of coverage and protocol checking. You can
configuration. enable/disable this functionality through configuration.
In active mode, the Port Monitor within the component In passive mode, the port monitor within the component
performs protocol checks only on sampled (input) performs protocol checks on all signals. In passive
signals, that is, it does not perform checks on the mode, signals are considered as input signals.
signals that are driven (output signals) by the
component. This is because when the component is
driving an exception (exceptions are not supported in
this release) the monitor should not flag an error, since
it knows that it is driving an exception. Exception means
error injection.
In active mode, the delay values reported in the AHB In passive mode, the delay values reported in the AHB
transaction provided by the master and slave transaction provided by the master and slave
component, are the values provided by the user, and components, are the actual sampled delay values on
not the sampled delay values. the bus.
Feedback SolvNet
Synopsys, Inc. 39
General Concepts VC VIP AMBA AHB
UVM User Guide
SolvNet Feedback
40 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide
4
AHB VIP Programming Interface
This chapter describes the programming interface used by the AHB VIP and discusses the following topics:
❖ “Configuration Objects” on page 41
❖ “Transaction Objects” on page 42
❖ “Callbacks” on page 44
❖ “Interfaces and Modports” on page 45
❖ “Events” on page 46
❖ “Overriding System Constants” on page 46
❖ “Verification Features” on page 47
Feedback SolvNet
Synopsys, Inc. 41
AHB VIP Programming Interface VC VIP AMBA AHB
UVM User Guide
User needs to provide the system configuration to the system Env from the environment or the
testcase. The system configuration mainly specifies:
✦ Number of master and slave agents in the system Env
✦ Sub-configurations for master and slave agents
✦ Virtual top level AHB interface
✦ Address map
✦ Endian mode
❖ Master and Slave configuration (svt_ahb_master_configuration and svt_ahb_slave_configuration)
The master and slave configuration class contains configuration information which is applicable to
the AHB master and slave agents in the system Env. Some of the important information provided by
the slave configuration class is:
✦ Active/Passive mode of the agent
✦ Address and Data bus widths
✦ Enable/disable protocol checks
✦ Enable/disable port level coverage
✦ Values to be driven on bus during idle periods
The master and slave configuration objects within the system configuration object are created in the
constructor of the system configuration.
Please refer to the AHB VIP Class Reference HTML documentation for details on individual members of
configuration classes.
SolvNet Feedback
42 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide AHB VIP Programming Interface
Feedback SolvNet
Synopsys, Inc. 43
AHB VIP Programming Interface VC VIP AMBA AHB
UVM User Guide
4.3 Callbacks
Callbacks are an access mechanism that enable the insertion of user-defined code and allow access to objects
for scoreboarding and functional coverage. Each master and slave driver and monitor is associated with a
callback class that contains a set of callback methods. These methods are called as part of the normal flow of
procedural code. There are a few differences between callback methods and other methods that set them
apart.
❖ Callbacks are virtual methods with no code initially, so they do not provide any functionality unless
they are extended. The exception to this rule is that some of the callback methods for functional
coverage already contain a default implementation of a coverage model.
❖ The callback class is accessible to users so the class can be extended and user code inserted,
potentially including testbench specific extensions of the default callback methods, and testbench
specific variables and/or methods used to control whatever behavior the testbench is using the
callbacks to support.
❖ Callbacks are called within the sequential flow at places where external access would be useful. In
addition, the arguments to the methods include references to relevant data objects. For example, just
before a monitor puts a transaction object into an analysis port is a good place to sample for
functional coverage since the object reflects the activity that just happened on the pins. A callback at
this point with an argument referencing the transaction object allows this exact scenario.
❖ There is no need to invoke callback methods for callbacks that are not extended. To avoid a loss of
performance, callbacks are not executed by default. To execute callback methods, callback class must
be registered with the component using `uvm_register_cb macro.
SolvNet Feedback
44 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide AHB VIP Programming Interface
Feedback SolvNet
Synopsys, Inc. 45
AHB VIP Programming Interface VC VIP AMBA AHB
UVM User Guide
4.5 Events
Master and slave driver and monitor issue EVENT_XACT_STARTED and EVENT_XACT_ENDED events.
These events denote the start of transaction and end of transaction events. These notifications are issued by
the master and slave component as described below, in both active and passive modes.
❖ EVENT_XACT_STARTED is issued on the rising clock edge when address phase of transaction is
sampled on the bus.
❖ EVENT_XACT_ENDED is issued on the rising clock edge when the hready signal is sampled high
for last data beat.
SolvNet Feedback
46 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide AHB VIP Programming Interface
Reporting and measurement of performance parameters are made for each interval specified by the user.
The interval is a configuration specified by the user in svt_axi_port_configuration::perf_recording_interval.
The entire simulation time is divided into intervals specified in this configuration and performance metrics
are reported for each of these intervals at the end of the simulation. To get a performance report, the
simulation must be run with UVM_HIGH verbosity. The performance report can be seen under the header
"PERFORMANCE REPORT" in the log.
The following additional members are added for performance analysis feature:
❖ svt_ahb_system_configuration:: display_perf_summary_report
❖ svt_ahb_configuration::perf_exclude_inactive_periods_for_throughput
See the HTML Class Reference doc for description of these members.
Feedback SolvNet
Synopsys, Inc. 47
AHB VIP Programming Interface VC VIP AMBA AHB
UVM User Guide
Figure 4-1 Final View Of Performance Metric With Graph and Data Details
Note
For more information, see Verdi_Performance_Analyzer.pdf.
SolvNet Feedback
48 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide AHB VIP Programming Interface
Note
* indicates the protocol name.( Eg. for AXI *_trans_read_latency will be axi_trans_read_latency)
For more information, see $DESIGNWARE_HOME/vip/svt/amba_svt/latest/doc/ahb_performance_metrics.pdf
Feedback SolvNet
Synopsys, Inc. 49
AHB VIP Programming Interface VC VIP AMBA AHB
UVM User Guide
Note
Protocol Analyzer has been enhanced to read FSDB transactions and Verdi can load the FSDB
transactions into Browser.
SolvNet Feedback
50 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide AHB VIP Programming Interface
❖ Invoking Protocol Analyzer: Perform the following steps to invoke Protocol Analyzer in interactive
or post-processing mode:
✦ Post-processing Mode:
✧ Load the transaction dump data and issue the following command to invoke the GUI:
verdi -ssf <dump.fsdb> -lib work.lib++
✧ In Verdi, navigate to Tools > Transaction Debug > Transaction and Protocol Analyzer.
✦ Interactive Mode:
✧ Issue the following command to invoke Protocol Analyzer in an interactive mode:
<simv> -gui=verdi
Runtime Switch:
+svt_enable_pa=fsdb
Enables FSDB output of transaction and memory information for display in Verdi.
You can invoke the Protocol Analyzer as described above using Verdi. The Protocol Analyzer transaction
view gets updated during the simulation.
Feedback SolvNet
Synopsys, Inc. 51
AHB VIP Programming Interface VC VIP AMBA AHB
UVM User Guide
SolvNet Feedback
52 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide
5
Using AHB Verification IP
This chapter discusses the UVM concepts and techniques for quickly achieving a basic constrained random
testbench that incorporates the AHB VIP.
This chapter discusses the following topic:
❖ “SystemVerilog UVM Example Testbenches” on page 53
❖ “Installing and Running the Examples” on page 54
❖ “Common Clock Mode” on page 56
❖ “Why the User Needs to Disable Auto Item Recording” on page 57
❖ “Support for TLM Generic Payload” on page 58
❖ “VIP configuration while using bus VIP, multiple masters (VIPs, DUTs), multiple slaves (VIPs and
DUTs)” on page 61
❖ “Support for AHB5 Features” on page 64
Feedback SolvNet
Synopsys, Inc. 53
Using AHB Verification IP VC VIP AMBA AHB
UVM User Guide
tb_ahb_svt_uvm_basic_bus_sys Basic This example demonstrates the use of AHB Bus VIP
derivative
tb_ahb_svt_uvm_basic_param_if_ Basic This example shows how to implement a basic functioning UVM
sys derivative testbench using AHB Verification IP with parameterized
interface.
The example consists of the following:
• A top-level testbench in SystemVerilog
• A dummy DUT in the testbench, which has two AHB
interfaces
• A system level parameter interface
• UVM verification environment
• AHB System component in the UVM verification environment
• Three test files illustrating
- A base test that performs common functions for all tests
- Directed transaction generation
- Random transaction generation
SolvNet Feedback
54 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Using AHB Verification IP
Feedback SolvNet
Synopsys, Inc. 55
Using AHB Verification IP VC VIP AMBA AHB
UVM User Guide
Note
AHB Bus VIP does not support different clock frequencies on different ports.
SolvNet Feedback
56 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Using AHB Verification IP
Feedback SolvNet
Synopsys, Inc. 57
Using AHB Verification IP VC VIP AMBA AHB
UVM User Guide
Note
VIPs for pipelined and non-pipelined protocols are designed to work correctly when
UVM_DISABLE_AUTO_ITEM_RECORDING macro is defined.
cfg.master_cfg[1].use_tlm_generic_payload = 1;
uvm_config_db#(svt_ahb_system_configuration)::set(this,
"ahb_env",
"cfg", cfg);
ahb_env = ahb_system_env::type_id::create("ahb_env", this);
endfunction
Enabling this functionality causes the instantiation of svt_ahb_tlm_generic_payload_sequencer in the
svt_ahb_master_agent::tlm_generic_payload_sequencer property and the execution of a layering sequence
on the AHB master transaction sequencer. The layering sequence pulls generated TLM generic payload
sequence items from the generic payload sequencer, maps them to one or more AHB master transactions,
and executes them on the driver. The layering sequence executes with a normal priority.
It is still possible to execute normal AHB master transaction sequences on the AHB master transaction
sequencer, in parallel with the TLM generic payload layering sequence.
The response from the execution of the generic payload item is annotated in the generic payload sequence
item itself. It is valid only when the completed generic payload sequence item is returned by the
uvm_sequence::get_response() method.
class my_gp_seq extends uvm_sequence#(uvm_tlm_generic_payload);
...
task body();
`uvm_create(req);
req.set_command(UVM_TLM_READ_COMMAND);
req.set_address('h123456789);
req.set_length(64);
`uvm_send(req);
get_response(rsp);
SolvNet Feedback
58 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Using AHB Verification IP
if (rsp.is_response_ok()) begin
// gp.m_data[] is now valid
end
endtask
endclass
The TLM generic payload sequence items are mapped into one or more AHB master transactions that
implement the semantics of the Generic Payload transaction, as defined by the TLM 2.0 standard. It is not
possible to generate all possible AHB master transactions from generic payload stimulus.
By default, generic payload WRITE and READ commands are mapped to WRITE and READ AHB INCR
burst transactions respectively, with individual transfer size matching the configured port size. In case
different AHB transactions are required, the generic payload sequence item must be annotated with an
instance of the svt_amba_pv_extension generic payload extension.
class my_gp_seq extends uvm_sequence#(uvm_tlm_generic_payload);
...
task body();
svt_amba_pv_extension pv;
`uvm_create(req);
pv = new("pv");
req.set_extension(pv);
...
pv.set_size(1);
pv.set_length(64);
`uvm_send(gp);
endtask
endclass
The various attributes of the AMBA PV extension can be set to specify the characteristics of the AHB
transaction(s) used to implement the annotated generic payload transaction. Should the annotation be
present, it will be further annotated with the relevant response from the execution of the AHB transactions.
Feedback SolvNet
Synopsys, Inc. 59
Using AHB Verification IP VC VIP AMBA AHB
UVM User Guide
The uvm_tlm_generic_payload sequence item field and the optional field svt_ahb_pv_extension are
mapped to the randomized svt_ahb_master_transaction as specified in Table 5-2. All other properties are
randomized.
Table 5-2
get_command() xact_type
get_address() addr
get_data() data
is_bufferable() / NO prot2_type
is_cacheable / NO prot3_type
randomized control_huser
randomized num_busy_cycles
cfg.master_cfg[1].use_pv_socket = 1;
uvm_config_db#(svt_ahb_system_configuration)::set(this,
"ahb_env",
"cfg", cfg);
ahb_env = ahb_system_env::type_id::create("ahb_env", this);
endfunction
Enabling this functionality implies the enabling of TLM generic payload stimulus (see Section 5.5.2).
Enabling this functionality causes the instantiation of uvm_tlm_b_target_socket interface in the
svt_ahb_master_agent::b_fwd property.
SolvNet Feedback
60 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Using AHB Verification IP
Note
Support for TLM GP in the AHB slave is through sockets. Therefore, the configuration attribute
svt_ahb_configuration::use_pv_socket must be set to 1 to enable TLM GP at the slave for the
corresponding AHB Slave, prior to the execution of the build_phase.
function void my_env::build_phase(uvm_phase phase);
super.build_phase(phase);
cfg.slave_cfg[0].use_pv_socket = 1;
uvm_config_db#(svt_axi_system_configuration)::set(this,
"ahb_env",
"cfg", cfg);
ahb_env = ahb_system_env::type_id::create("ahb_env", this);
endfunction
Enabling this functionality causes the instantiation of an uvm_tlm_b_initiator_socket interface in the
svt_ahb_slave_agent::resp_socket property.
For demonstration of the usage for AHB, see the ts.amba_pv_test.sv test within the
tb_ahb_svt_uvm_basic_sys example.
5.6 VIP configuration while using bus VIP, multiple masters (VIPs, DUTs),
multiple slaves (VIPs and DUTs)
While using a bus VIP, two master VIPs, two master DUTs, two slave VIPs, and two slave DUTs, the
configuration is as follows:
num_masters=5;
Note
One dummy master built-in to bus VIP, two VIP masters configured as active to drive the stimulus and two
master VIPs configured in passive mode connected across the master DUTs
num_slaves=5;
Note
One default slave built-in to bus VIP, two slave VIPs configured as active to respond to transactions, and
two slave VIPs configured in passive mode to monitor the slave DUTs
use_bus=1;
Feedback SolvNet
Synopsys, Inc. 61
Using AHB Verification IP VC VIP AMBA AHB
UVM User Guide
Note
This will create an instance of bus VIP inside the system_env
create_sub_cfgs(5,5,5,5);
dummy_master=0;
default_master=0;
Note
Can be configured as 1 also
default_slave=0;
system_monitor_enable=1;
Note
If you want to use a system monitor
set_addr_range(1, vip1_start_addr, vip1_end_addr);
set_addr_range(2, vip2_start_addr, vip2_end_addr);
set_addr_range(3, dut1_start_addr, dut1_end_addr);
set_addr_range(4, dut2_start_addr, dut2_end_addr);
The requirement for num_masters must be equal to num_bus_masters. num_slaves must be equal to
num_bus_slaves. Thus, we need to create a passive VIP agent for each of the DUT components.
5.6.1.1.2 Example
The example shown in Figure 5-1 contains one Master VIP and Slave DUT in AHB lite mode.
SolvNet Feedback
62 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Using AHB Verification IP
5.6.2.1 Configuration
All connections are required to be done explicitly, so you must define
SVT_AHB_DISABLE_IMPLICIT_BUS_CONNECTION compile time macro.
You must set the following configurations in the extended svt_ahb_system_configuration class:
1. To set it to AHB lite mode, you must set the config:
this.ahb_lite = 1;
2. To connect Slave VIP to Master DUT, do the following cfg settings of 0 master and 1 slave:
this.create_sub_cfgs(0,1);
this.num_masters = 0;
this.num_slaves = 1;
5.6.2.2 Example
The example shown in Figure 5-2 contains one Slave VIP and Master DUT in AHB lite mode.
Feedback SolvNet
Synopsys, Inc. 63
Using AHB Verification IP VC VIP AMBA AHB
UVM User Guide
Note
Note that if you are using AHB5 feature, you need to define the macro SVT_AHB5_ENABLE in
svt_ahb_user_defines.svi files. Refer to section “Overriding System Constants” on page 46 for details on
how to define a macro through user defines file.
SolvNet Feedback
64 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Using AHB Verification IP
approach removes the need for a slave to support the address decode to differentiate between the logical
interfaces.
The new hsel signal is added to the AHB Bus interface
1. The Multiple Slave select signal in svt_ahb_if interface block:
logic [('SVT_AHB_MAX_HSEL_WIDTH -1) :0] hsel [(`SVT_AHB_MAX_NUM_SLAVES -1):0];
2. The Multiple Slave select signal in svt_ahb_slave_if interface block:
logic [('SVT_AHB_MAX_HSEL_WIDTH -1) :0] hsel;
To make use of Multiple Slave Select Signal, the following System configuration parameter has been added
in svt_ahb_system_configuration class
❖ ahb5
❖ multi_hsel_enable
❖ multi_hsel_width
For more information on this parameters, please refer the AHB class reference html.
A new method set_hsel_addr_range is added to define the range of address for each multiple select signal
for a given selected slave. This method is added in svt_ahb_slave_addr_range class.
Address map for each selected slave components is declared with help of hsel_ranges[],
set_hsel_addr_range() functions.
Use Model:
`define SVT_AHB_MAX_HSEL_WIDTH 10
Feedback SolvNet
Synopsys, Inc. 65
Using AHB Verification IP VC VIP AMBA AHB
UVM User Guide
/** Set necessary configuration parameter for each master and slave configuration */
for (int i=0; i<this.num_masters; i++) begin
this.master_cfg[i].addr_width = 32;
this.master_cfg[i].data_width = 32;
end
for (int i=0; i<this.num_slaves; i++) begin
this.slave_cfg[i].addr_width = 32;
this.slave_cfg[i].data_width = 32;
end
this.master_cfg[2].is_active = 1;
this.slave_cfg[2].is_active = 1;
/** define the Multiple Select Signal Address range with a Slave 1 */
this.slave_addr_ranges[1].hsel_ranges = new[6]
(this.slave_addr_ranges[1].hsel_ranges);
foreach(this.slave_addr_ranges[1].hsel_ranges[i]) begin
case(i)
0:this.slave_addr_ranges[1].set_hsel_addr_range(0,32'h0200_0001,32'h0200_00FF);
1:this.slave_addr_ranges[1].set_hsel_addr_range(1,32'h0200_0100,32'h0200_0FFF);
2:this.slave_addr_ranges[1].set_hsel_addr_range(2,32'h0200_1000,32'h0200_FFFE);
3:this.slave_addr_ranges[1].set_hsel_addr_range(3,32'h0300_0001,32'h0300_00FF);
4:this.slave_addr_ranges[1].set_hsel_addr_range(4,32'h0300_0100,32'h0300_0FFF);
5:this.slave_addr_ranges[1].set_hsel_addr_range(5,32'h0300_1000,32'h0300_FFFE);
endcase
end
/** define the Multiple Select Signal Address range with a Slave 1 */
this.slave_addr_ranges[2].hsel_ranges = new[3]
(this.slave_addr_ranges[2].hsel_ranges);
foreach(this.slave_addr_ranges[2].hsel_ranges[i]) begin
case(i)
0:this.slave_addr_ranges[2].set_hsel_addr_range(0,32'h0a00_0001,32'h0a00_00FF);
1:this.slave_addr_ranges[2].set_hsel_addr_range(1,32'h0a00_0100,32'h0a00_FFFF);
2:this.slave_addr_ranges[2].set_hsel_addr_range(2,32'h0b00_1000,32'h0b00_FFFE);
endcase
end
endfunction // new
endclass
SolvNet Feedback
66 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Using AHB Verification IP
USE model:
class cust_svt_ahb_system_configuration extends svt_ahb_system_configuration;
/** Constructor. Also Assign the Common configuration parameters for all
topologies. */
function new(string str="cust_svt_ahb_system_configuration");
Feedback SolvNet
Synopsys, Inc. 67
Using AHB Verification IP VC VIP AMBA AHB
UVM User Guide
super.new(str);
this.use_bus = 1;
this.system_monitor_enable = 1;
this.num_masters = 3;
this.num_slaves = 3;
this.ahb_lite = 0;
this.ahb5 = 1;
this.little_endian =0; //Reconfiguring to set to big-endian format
this.default_slave = 0;
/** Set necessary configuration parameter for each master and slave configuration */
for (int i=0; i<this.num_masters; i++) begin
this.master_cfg[i].addr_width = 32;
this.master_cfg[i].data_width = 32;
this.master_cfg[i].invariant_mode = svt_ahb_configuration::BYTE_INVARIANT;
end
for (int i=0; i<this.num_slaves; i++) begin
this.slave_cfg[i].addr_width = 32;
this.slave_cfg[i].data_width = 32;
this.slave_cfg[i].invariant_mode = svt_ahb_configuration::WORD_INVARIANT;
end
this.master_cfg[2].is_active = 1;
this.slave_cfg[2].is_active = 1;
SolvNet Feedback
68 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Using AHB Verification IP
Feedback SolvNet
Synopsys, Inc. 69
Using AHB Verification IP VC VIP AMBA AHB
UVM User Guide
/** Check if regmodel is passed to env if not then create and lock it. */
if (regmodel == null) begin
regmodel = ral_sys_slave::type_id::create("regmodel");
regmodel.build();
regmodel.set_hdl_path_root(hdl_path);
`uvm_info("build_phase", "Reg Model created", UVM_LOW)
regmodel.lock_model();
end
uvm_config_db#(uvm_reg_block)::set(this,"ahb_system_env.master[0]",
"ahb_regmodel", regmodel);
..
endfunction : build_phase
3. Call the reset() function of the regmodel from the reset_phase of uvm_env.
// Reset the register model
task reset_phase(uvm_phase phase);
phase.raise_objection(this, "Resetting regmodel");
regmodel.reset();
phase.drop_objection(this);
endtask
4. To enable the uvm_reg adapter of the AHB Master agent, user need to do the following
Set the uvm_reg_enable, svt_ahb_master_configuration attribute to one for the desired AHB
Master agent.
this.master_cfg[i].uvm_reg_enable= 1;
5. Modify the uvm_reg tests if required, and execute them.
The complete example is available in the VIP installation (tb_ahb_svt_uvm_basic_ral_sys).
Note
Download the example using the dw_vip_setup_utility (see "5.2 Installing and Running the
Examples" on page 54).
SolvNet Feedback
70 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Using AHB Verification IP
Feedback SolvNet
Synopsys, Inc. 71
Using AHB Verification IP VC VIP AMBA AHB
UVM User Guide
SolvNet Feedback
72 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide
6
Backward Compatibility
Certain changes were introduced in svt_ahb_if interface signals from AMBA SVT EA 1.48a onwards, for
ease of use, which are not backwards compatible. This chapter provides the details of all such changes.
Following are the details of these changes:
❖ The common signals from the bus to all the masters and all slaves are added to svt_ahb_if with '_bus'
suffix.
✦ Multiplexed Outputs to All Slaves
These signals will be connected to corresponding slave interface input signals. Table 6-1 shows
the list of these signals:
Table 6-1 Multiplexed Output Signals to All Slaves
haddr_bus haddr
hburst_bus hburst
hmaster_bus hmaster
hmastlock_bus hmastlock
hprot_bus hprot
hsize_bus hsize
htrans_bus htrans
hwdata_bus hwdata
hwrite_bus hwrite
hready_bus hready_in
control_huser_bus control_huser
Feedback SolvNet
Synopsys, Inc. 73
Backward Compatibility VC VIP AMBA AHB
UVM User Guide
hrdata_bus hrdata
hready_bus hready
hresp_bus hresp
❖ These respective '_bus' signals are passed by svt_ahb_if onto an array of master and slave interfaces
as applicable, so that the implicit connectivity happens between the bus signals and all connected
master and slave corresponding input signals.
svt_ahb_master_if master_if[`SVT_AHB_MAX_NUM_MASTERS-1:0](hclk,
hresetn,
hrdata_bus,
hready_bus,
hresp_bus);
svt_ahb_slave_if slave_if[`SVT_AHB_MAX_NUM_SLAVES-1:0](hclk,
hresetn,
haddr_bus,
hburst_bus,
hmaster_bus,
hmastlock_bus,
hprot_bus,
hsize_bus,
htrans_bus,
hwdata_bus,
hwrite_bus,
hready_bus,
control_huser_bus);
This helps when the VIP bus ENV is enabled such that there is an implicit connectivity among the
master agents, slave agents and the bus ENV. Even when bus ENV is not used, still the bus signals
can be used to minimize the number of connections in the test bench.
The test bench connectivity looks like as follows:
For Example:
You can observe that the "_bus" signals are used in below port map, which replaced the
corresponding master and slave interface input signals as mentioned in Table 6-1 and Table 6-2. In
the following example, master 0 is active master, and slave 1 is active slave.
DW_ahb u_DW_ahb (
.hclk (ahb_if.hclk),
.hresetn (ahb_if.hresetn),
/*master 1 side of ahb protocol interface signals*/
.haddr_m1 (ahb_if.master_if[0].haddr),
.hburst_m1 (ahb_if.master_if[0].hburst),
.hbusreq_m1 (ahb_if.master_if[0].hbusreq),
.hlock_m1 (ahb_if.master_if[0].hlock),
.hsize_m1 (ahb_if.master_if[0].hsize),
.htrans_m1 (ahb_if.master_if[0].htrans),
.hwdata_m1 (ahb_if.master_if[0].hwdata),
SolvNet Feedback
74 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Backward Compatibility
.hwrite_m1 (ahb_if.master_if[0].hwrite),
.hprot_m1 (ahb_if.master_if[0].hprot),
.hgrant_m1 (ahb_if.master_if[0].hgrant),
.hready (ahb_if.hready_bus), // Earlier: ahb_if.master_if[0].hready
.hresp (ahb_if.hresp_bus), // Earlier: ahb_if.master_if[0].hresp
.hrdata (ahb_if.hresp_bus), // Earlier: ahb_if.master_if[0].hrdata
❖ If the master VIP agent and slave VIP agent are connected back to back without any module in
between, then such usage also needs similar update for all the signals highlighted above. The same
applies to all such signals from master-to-slave and slave-to-master.
For Example,
Previous code: assign ahb_if.master_if[0].hresp = ahb_if.slave_if[0].hresp
Modified code: ahb_if.hresp_bus = ahb_if.slave_if[0].hresp
Feedback SolvNet
Synopsys, Inc. 75
Backward Compatibility VC VIP AMBA AHB
UVM User Guide
SolvNet Feedback
76 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide
A
Reporting Problems
A.1 Introduction
This chapter outlines the process for working through and reporting VIP transactor issues encountered in
the field. It describes the data you must submit when a problem is initially reported to Synopsys. After a
review of the initial information, Synopsys may decide to request adjustments to the information being
requested, which is the focus of the next section. This section outlines the process for working through and
reporting problems. It shows how to use Debug Automation to enable all the debug capabilities of any VIP.
In addition, the VIP provides a case submittal tool to help you pack and send all pertinent debug
information to Synopsys Support.
Feedback SolvNet
Synopsys, Inc. 77
Reporting Problems VC VIP AMBA AHB
UVM User Guide
command control specification is not supplied, then the feature will default to being enabled on all VIP
instances with the default options listed as follows:
Note the following about the plusarg:
❖ The command control string is a comma separated string that is split into the multiple fields.
❖ All fields are optional and can be supplied in any order.
The command control string uses the following format (white space is disallowed):
inst:<inst>,type:<string>,feature:<string>,start_time:<longint>,end_time:<longint>,verb
osity:<string>
The following table explains each control string:
Field Description
inst Identifies the VIP instance to apply the debug automation features. Regular expressions can be
used to identify multiple VIP instances. If this value is not supplied, and if a type value is not
supplied, then the debug automation feature will be enabled on all VIP instances.
type Identifies a class type to apply the debug automation features. When this value is supplied then
debug automation will be enabled for all instances of this class type.
feature Identifies a sub-feature that can be defined by VIP designers to identify smaller grouping of
functionality that is specific to that title. The definition and implementation of this field is left to VIP
designers, and by default it has no effect on the debug automation feature. (Specific to VIP titles)
start_time Identifies when the debug verbosity settings will be applied. The time must be supplied in terms
of the timescale that the VIP is compiled. If this value is not supplied, then the verbosity settings
will be applied at time zero.
end_time Identifies when the debug verbosity settings will be removed. The time must be supplied in terms
of the timescale that the VIP is compiled. If this value is not supplied, then the debug verbosity
remains in effect until the end of the simulation.
verbosity Message verbosity setting that is applied at the start_time. Two values are accepted in all
methodologies: DEBUG and VERBOSE. UVM and OVM users can also supply the verbosity that
is native to their respective methodologies (UVM_HIGH/UVM_FULL and
OVM_HIGH/OVM_FULL). If this value is not supplied then the verbosity defaults to
DEBUG/UVM_HIGH/OVM_HIGH. When this feature is enabled, then all VIP instances that are
enabled for debug will have their messages routed to a file named svt_debug.transcript.
Examples:
Enable on all VIP instances with default options:
+svt_debug_opts
Enable on all instances:
❖ containing the string "endpoint" with a verbosity of UVM_HIGH
❖ starting at time zero (default) until the end of the simulation (default):
+svt_debug_opts=inst:/.*endpoint.*/,verbosity:UVM_HIGH
Enable on all instances:
SolvNet Feedback
78 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Reporting Problems
Feedback SolvNet
Synopsys, Inc. 79
Reporting Problems VC VIP AMBA AHB
UVM User Guide
needs to be replaced based on the platform being used). The ability to write to an FSDB file requires that the
user supplies the Verdi dumper libraries when they compile their testbench. If these are not supplied then
the VIP will not be enabled to generate the svt_model_log.fsdb file.
A.5.1 VCS
The following must be added to the compile-time command:
-debug_access
For more information on how to set the FSDB dumping libraries, see Appendix B section in Linking Novas
Files with Simulators and Enabling FSDB Dumping guide available at:
$VERDI_HOME/doc/linking_dumping.pdf.
A.5.2 Questa
The following must be added to the compile-time command:
+define+SVT_FSDB_ENABLE -pli novas_fli.so
A.5.3 Incisive
The following must be added to the compile-time command:
+define+SVT_FSDB_ENABLE -access +r
SolvNet Feedback
80 Synopsys, Inc.
VC VIP AMBA AHB
UVM User Guide Reporting Problems
The tool will generate a “<username>.<uniqid>.svd” file in the current directory. The following files
are packed into a single file:
✧ FSDB
✧ HISTL
✧ MISC
✧ SLID
✧ SVTO
✧ SVTX
✧ TRACE
✧ VCD
✧ VPD
✧ XML
If any one of the above files are present, then the files will be saved in the
"<username>.<uniqid>.svd" in the current directory. The simulation transcript file will not be part of
this and it will be saved separately.
The -directory switch can be specified to select an alternate source directory.
4. You will be prompted by the case submittal tool with the option to include additional files within the
SVD file. The simulation transcript files cannot be automatically identified and it must be provided
during this step.
5. The case submittal tool will display options on how to send the file to Synopsys.
A.8 Limitations
Enabling DEBUG or VERBOSE verbosity is an expensive operation, both in terms of runtime and disk space
utilization. The following steps can be used to minimize this cost:
❖ Only enable the VIP instance necessary for debug. By default, the +svt_debug_opts command
enables Debug Opts on all instances, but the 'inst' argument can be used to select a specific instance.
❖ Use the start_time and end_time arguments to limit the verbosity changes to the specific time
window that needs to be debugged.
Feedback SolvNet
Synopsys, Inc. 81
Reporting Problems VC VIP AMBA AHB
UVM User Guide
SolvNet Feedback
82 Synopsys, Inc.